diff options
514 files changed, 52913 insertions, 8863 deletions
diff --git a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/.project b/features/org.eclipse.emf.cdo.releng.setup-feature/.project index 7cea4e3c28..b096c45541 100644 --- a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/.project +++ b/features/org.eclipse.emf.cdo.releng.setup-feature/.project @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <projectDescription> - <name>org.eclipse.emf.cdo.releng.setup.ide-feature</name> + <name>org.eclipse.emf.cdo.releng.setup-feature</name> <comment></comment> <projects> </projects> diff --git a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/.settings/org.eclipse.ltk.core.refactoring.prefs b/features/org.eclipse.emf.cdo.releng.setup-feature/.settings/org.eclipse.ltk.core.refactoring.prefs index 2e4a92ec2a..2e4a92ec2a 100644 --- a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/.settings/org.eclipse.ltk.core.refactoring.prefs +++ b/features/org.eclipse.emf.cdo.releng.setup-feature/.settings/org.eclipse.ltk.core.refactoring.prefs diff --git a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs b/features/org.eclipse.emf.cdo.releng.setup-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs index d573634502..d573634502 100644 --- a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs +++ b/features/org.eclipse.emf.cdo.releng.setup-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs diff --git a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/.settings/org.eclipse.mylyn.team.ui.prefs b/features/org.eclipse.emf.cdo.releng.setup-feature/.settings/org.eclipse.mylyn.team.ui.prefs index 4d86eb45ba..4d86eb45ba 100644 --- a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/.settings/org.eclipse.mylyn.team.ui.prefs +++ b/features/org.eclipse.emf.cdo.releng.setup-feature/.settings/org.eclipse.mylyn.team.ui.prefs diff --git a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/build.properties b/features/org.eclipse.emf.cdo.releng.setup-feature/build.properties index d71e9cdafe..d71e9cdafe 100644 --- a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/build.properties +++ b/features/org.eclipse.emf.cdo.releng.setup-feature/build.properties diff --git a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/feature.properties b/features/org.eclipse.emf.cdo.releng.setup-feature/feature.properties index 304eb9af77..304eb9af77 100644 --- a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/feature.properties +++ b/features/org.eclipse.emf.cdo.releng.setup-feature/feature.properties diff --git a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/feature.xml b/features/org.eclipse.emf.cdo.releng.setup-feature/feature.xml index 1dd2f9447b..620d8bb917 100644 --- a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/feature.xml +++ b/features/org.eclipse.emf.cdo.releng.setup-feature/feature.xml @@ -10,7 +10,7 @@ Eike Stepper - initial API and implementation --> <feature - id="org.eclipse.emf.cdo.releng.setup.ide" + id="org.eclipse.emf.cdo.releng.setup" label="%featureName" version="1.0.0.qualifier" provider-name="%providerName" @@ -36,38 +36,10 @@ </url> <plugin - id="org.eclipse.emf.cdo.releng.setup.ui" - download-size="0" - install-size="0" - version="0.0.0" - unpack="false"/> - - <plugin - id="org.eclipse.emf.cdo.releng.setup.ide" - download-size="0" - install-size="0" - version="0.0.0" - unpack="false"/> - - <plugin id="org.eclipse.emf.cdo.releng.setup" download-size="0" install-size="0" version="0.0.0" unpack="false"/> - <plugin - id="org.eclipse.emf.cdo.releng.setup.edit" - download-size="0" - install-size="0" - version="0.0.0" - unpack="false"/> - - <plugin - id="org.eclipse.emf.cdo.releng.setup.editor" - download-size="0" - install-size="0" - version="0.0.0" - unpack="false"/> - </feature> diff --git a/features/org.eclipse.emf.cdo.releng.setup.editor-feature/feature.xml b/features/org.eclipse.emf.cdo.releng.setup.editor-feature/feature.xml index 42694f5b18..f04b9895da 100644 --- a/features/org.eclipse.emf.cdo.releng.setup.editor-feature/feature.xml +++ b/features/org.eclipse.emf.cdo.releng.setup.editor-feature/feature.xml @@ -35,12 +35,9 @@ <discovery label="%updateSiteName" url="http://www.eclipse.org/modeling/updates/"/> </url> - <plugin + <includes id="org.eclipse.emf.cdo.releng.setup" - download-size="0" - install-size="0" - version="0.0.0" - unpack="false"/> + version="0.0.0"/> <plugin id="org.eclipse.emf.cdo.releng.setup.edit" diff --git a/features/org.eclipse.emf.cdo.releng.setup.product-feature/.settings/org.eclipse.core.resources.prefs b/features/org.eclipse.emf.cdo.releng.setup.product-feature/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000..ea8ba69565 --- /dev/null +++ b/features/org.eclipse.emf.cdo.releng.setup.product-feature/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/Setup.product=UTF-8 diff --git a/features/org.eclipse.emf.cdo.releng.setup.product-feature/feature.xml b/features/org.eclipse.emf.cdo.releng.setup.product-feature/feature.xml index 7e3e1fecd8..9fa6694ed9 100644 --- a/features/org.eclipse.emf.cdo.releng.setup.product-feature/feature.xml +++ b/features/org.eclipse.emf.cdo.releng.setup.product-feature/feature.xml @@ -48,13 +48,6 @@ unpack="false"/> <plugin - id="org.eclipse.emf.cdo.releng.setup.ui" - download-size="0" - install-size="0" - version="0.0.0" - unpack="false"/> - - <plugin id="org.eclipse.emf.cdo.releng.setup.product" download-size="0" install-size="0" @@ -88,4 +81,18 @@ install-size="0" version="0.0.0"/> + <plugin + id="org.eclipse.equinox.p2.updatesite" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="org.eclipse.emf.cdo.releng.setup.editor.rcp" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + </feature> diff --git a/features/org.eclipse.emf.cdo.releng.workingsets-feature/feature.xml b/features/org.eclipse.emf.cdo.releng.workingsets-feature/feature.xml index 3d4b8f4f78..8fb33fd88f 100644 --- a/features/org.eclipse.emf.cdo.releng.workingsets-feature/feature.xml +++ b/features/org.eclipse.emf.cdo.releng.workingsets-feature/feature.xml @@ -56,4 +56,18 @@ version="0.0.0" unpack="false"/> + <plugin + id="org.eclipse.emf.cdo.releng.predicates" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + + <plugin + id="org.eclipse.emf.cdo.releng.predicates.edit" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + </feature> diff --git a/features/org.eclipse.emf.cdo.site-feature/feature.xml b/features/org.eclipse.emf.cdo.site-feature/feature.xml index eaaafbbdd6..aa42882e84 100644 --- a/features/org.eclipse.emf.cdo.site-feature/feature.xml +++ b/features/org.eclipse.emf.cdo.site-feature/feature.xml @@ -47,7 +47,7 @@ <includes id="org.eclipse.emf.cdo.releng.projectcopy" version="0.0.0"/> <includes id="org.eclipse.emf.cdo.releng.relativepaths" version="0.0.0"/> <includes id="org.eclipse.emf.cdo.releng.setup.editor" version="0.0.0"/> - <includes id="org.eclipse.emf.cdo.releng.setup.ide" version="0.0.0"/> + <includes id="org.eclipse.emf.cdo.releng.setup" version="0.0.0"/> <includes id="org.eclipse.emf.cdo.releng.setup.product" version="0.0.0"/> <includes id="org.eclipse.emf.cdo.releng.tasks" version="0.0.0"/> <includes id="org.eclipse.emf.cdo.releng.version" version="0.0.0"/> diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.classpath b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.classpath new file mode 100644 index 0000000000..3bc247511f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.project b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.project new file mode 100644 index 0000000000..67b5648e49 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.project @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.emf.cdo.releng.predicates.edit</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.emf.cdo.releng.version.VersionBuilder</name> + <arguments> + <dictionary> + <key>ignore.schema.builder</key> + <value>true</value> + </dictionary> + <dictionary> + <key>release.path</key> + <value>/org.eclipse.emf.cdo.releng.release/release.xml</value> + </dictionary> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.emf.cdo.releng.version.VersionNature</nature> + </natures> +</projectDescription> diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..b3af741094 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,405 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +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.doc.comment.support=enabled +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.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +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.includeNullInfoFromAsserts=disabled +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.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +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.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +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.unusedObjectAllocation=ignore +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.unusedTypeParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled +org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW +org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED +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=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=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true +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=false +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=120 +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=2 +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=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=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=do not 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=space +org.eclipse.jdt.core.formatter.tabulation.size=2 +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/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.jdt.ui.prefs index 3fc140fcdc..3fc140fcdc 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.jdt.ui.prefs +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.jdt.ui.prefs diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.ltk.core.refactoring.prefs index 864e30fe5d..864e30fe5d 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.ltk.core.refactoring.prefs +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.ltk.core.refactoring.prefs diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs index b050639a54..b050639a54 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.mylyn.tasks.ui.prefs +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.mylyn.team.ui.prefs index 2f50f36c0c..2f50f36c0c 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.mylyn.team.ui.prefs +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.mylyn.team.ui.prefs diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.pde.api.tools.prefs index 0c17d59e45..0c17d59e45 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.pde.api.tools.prefs +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.pde.api.tools.prefs diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.pde.prefs index fd493c44ac..fe01bb701d 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.pde.prefs +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.pde.prefs @@ -1,26 +1,25 @@ +#Thu Feb 04 09:44:24 CET 2010 compilers.f.unresolved-features=1 compilers.f.unresolved-plugins=1 compilers.incompatible-environment=1 compilers.p.build=1 compilers.p.build.bin.includes=1 -compilers.p.build.encodings=2 -compilers.p.build.java.compiler=2 compilers.p.build.java.compliance=1 compilers.p.build.missing.output=2 compilers.p.build.output.library=1 compilers.p.build.source.library=1 compilers.p.build.src.includes=1 compilers.p.deprecated=2 -compilers.p.discouraged-class=2 +compilers.p.discouraged-class=1 compilers.p.internal=1 -compilers.p.missing-packages=2 +compilers.p.missing-packages=1 compilers.p.missing-version-export-package=1 compilers.p.missing-version-import-package=1 compilers.p.missing-version-require-bundle=1 compilers.p.no-required-att=0 compilers.p.not-externalized-att=2 compilers.p.unknown-attribute=1 -compilers.p.unknown-class=2 +compilers.p.unknown-class=1 compilers.p.unknown-element=1 compilers.p.unknown-identifier=1 compilers.p.unknown-resource=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..cf12e30141 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/META-INF/MANIFEST.MF @@ -0,0 +1,15 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: org.eclipse.emf.cdo.releng.predicates.edit;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: . +Bundle-Activator: org.eclipse.emf.cdo.releng.predicates.provider.PredicatesEditPlugin$Implementation +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.eclipse.emf.cdo.releng.predicates.provider +Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", + org.eclipse.emf.cdo.releng.predicates;bundle-version="[1.0.0,2.0.0)";visibility:=reexport, + org.eclipse.emf.edit;bundle-version="[2.6.0,3.0.0)";visibility:=reexport +Bundle-ActivationPolicy: lazy diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/build.properties b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/build.properties new file mode 100644 index 0000000000..6e3e902e80 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/build.properties @@ -0,0 +1,10 @@ +# + +bin.includes = .,\ + icons/,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = . +source.. = src/ +output.. = bin/ diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/AndPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/AndPredicate.gif Binary files differnew file mode 100644 index 0000000000..d1fde2b075 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/AndPredicate.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/BuilderPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/BuilderPredicate.gif Binary files differnew file mode 100644 index 0000000000..895f0cfa47 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/BuilderPredicate.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/AndPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/AndPredicate.gif Binary files differnew file mode 100644 index 0000000000..498364f1c1 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/AndPredicate.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/BuilderPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/BuilderPredicate.gif Binary files differnew file mode 100644 index 0000000000..2b69256029 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/BuilderPredicate.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/FilePredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/FilePredicate.gif Binary files differnew file mode 100644 index 0000000000..1e5345fb32 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/FilePredicate.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/NaturePredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/NaturePredicate.gif Binary files differnew file mode 100644 index 0000000000..8a5c70cbd7 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/NaturePredicate.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/NotPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/NotPredicate.gif Binary files differnew file mode 100644 index 0000000000..ed87474740 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/NotPredicate.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/OrPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/OrPredicate.gif Binary files differnew file mode 100644 index 0000000000..14af8aaee9 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/OrPredicate.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/Predicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/Predicate.gif Binary files differnew file mode 100644 index 0000000000..9500f6ee59 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/Predicate.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/RepositoryPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/RepositoryPredicate.gif Binary files differnew file mode 100644 index 0000000000..134551bff7 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/RepositoryPredicate.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/FilePredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/FilePredicate.gif Binary files differnew file mode 100644 index 0000000000..ad6a8e9252 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/FilePredicate.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/icons/full/obj16/NamePredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NamePredicate.gif Binary files differindex b983f27e28..b983f27e28 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/icons/full/obj16/NamePredicate.gif +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NamePredicate.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NaturePredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NaturePredicate.gif Binary files differnew file mode 100644 index 0000000000..2379f71de3 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NaturePredicate.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NotPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NotPredicate.gif Binary files differnew file mode 100644 index 0000000000..83fcadfe9a --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NotPredicate.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/OrPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/OrPredicate.gif Binary files differnew file mode 100644 index 0000000000..f6ffb2ea58 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/OrPredicate.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Predicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Predicate.gif Binary files differnew file mode 100644 index 0000000000..200df9b48e --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Predicate.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/RepositoryPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/RepositoryPredicate.gif Binary files differnew file mode 100644 index 0000000000..7b4fe4abaf --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/RepositoryPredicate.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/plugin.properties new file mode 100644 index 0000000000..7a2524492c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/plugin.properties @@ -0,0 +1,38 @@ +# + +pluginName = Predicates Edit Support +providerName = www.example.org + +_UI_CreateChild_text = {0} +_UI_CreateChild_text2 = {1} {0} +_UI_CreateChild_text3 = {1} +_UI_CreateChild_tooltip = Create New {0} Under {1} Feature +_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}. +_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent. + +_UI_PropertyDescriptor_description = The {0} of the {1} + +_UI_Predicate_type = Predicate +_UI_NamePredicate_type = Name Predicate +_UI_RepositoryPredicate_type = Repository Predicate +_UI_AndPredicate_type = And Predicate +_UI_OrPredicate_type = Or Predicate +_UI_NotPredicate_type = Not Predicate +_UI_NaturePredicate_type = Nature Predicate +_UI_BuilderPredicate_type = Builder Predicate +_UI_Unknown_type = Object + +_UI_Unknown_datatype= Value + +_UI_NamePredicate_pattern_feature = Pattern +_UI_RepositoryPredicate_project_feature = Project +_UI_AndPredicate_operands_feature = Operands +_UI_OrPredicate_operands_feature = Operands +_UI_NotPredicate_operand_feature = Operand +_UI_NaturePredicate_nature_feature = Nature +_UI_BuilderPredicate_builder_feature = Builder +_UI_Unknown_feature = Unspecified + +_UI_FilePredicate_type = File Predicate +_UI_FilePredicate_filePattern_feature = File Pattern +_UI_FilePredicate_contentPattern_feature = Content Pattern diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/plugin.xml new file mode 100644 index 0000000000..1619d79f11 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/plugin.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> + +<!-- +--> + +<plugin> + + <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories"> + <!-- @generated predicates --> + <factory + uri="http://www.eclipse.org/CDO/releng/predicates/1.0" + class="org.eclipse.emf.cdo.releng.predicates.provider.PredicatesItemProviderAdapterFactory" + supportedTypes= + "org.eclipse.emf.edit.provider.IEditingDomainItemProvider + org.eclipse.emf.edit.provider.IStructuredItemContentProvider + org.eclipse.emf.edit.provider.ITreeItemContentProvider + org.eclipse.emf.edit.provider.IItemLabelProvider + org.eclipse.emf.edit.provider.IItemPropertySource"/> + </extension> + +</plugin> diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/AndPredicateItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/AndPredicateItemProvider.java new file mode 100644 index 0000000000..a2dbae205c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/AndPredicateItemProvider.java @@ -0,0 +1,201 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.provider; + +import org.eclipse.emf.cdo.releng.predicates.AndPredicate; +import org.eclipse.emf.cdo.releng.predicates.PredicatesFactory; +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.provider.IChildCreationExtender; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import java.util.Collection; +import java.util.List; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.predicates.AndPredicate} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class AndPredicateItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public AndPredicateItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) + { + if (childrenFeatures == null) + { + super.getChildrenFeatures(object); + childrenFeatures.add(PredicatesPackage.Literals.AND_PREDICATE__OPERANDS); + } + return childrenFeatures; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EStructuralFeature getChildFeature(Object object, Object child) + { + // Check the type of the specified child object and return the proper feature to use for + // adding (see {@link AddCommand}) it as a child. + + return super.getChildFeature(object, child); + } + + /** + * This returns AndPredicate.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/AndPredicate")); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() + { + return true; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) + { + return "And"; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(AndPredicate.class)) + { + case PredicatesPackage.AND_PREDICATE__OPERANDS: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.AND_PREDICATE__OPERANDS, + PredicatesFactory.eINSTANCE.createNamePredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.AND_PREDICATE__OPERANDS, + PredicatesFactory.eINSTANCE.createRepositoryPredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.AND_PREDICATE__OPERANDS, + PredicatesFactory.eINSTANCE.createAndPredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.AND_PREDICATE__OPERANDS, + PredicatesFactory.eINSTANCE.createOrPredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.AND_PREDICATE__OPERANDS, + PredicatesFactory.eINSTANCE.createNotPredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.AND_PREDICATE__OPERANDS, + PredicatesFactory.eINSTANCE.createNaturePredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.AND_PREDICATE__OPERANDS, + PredicatesFactory.eINSTANCE.createBuilderPredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.AND_PREDICATE__OPERANDS, + PredicatesFactory.eINSTANCE.createFilePredicate())); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() + { + return ((IChildCreationExtender)adapterFactory).getResourceLocator(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/BuilderPredicateItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/BuilderPredicateItemProvider.java new file mode 100644 index 0000000000..10252e020d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/BuilderPredicateItemProvider.java @@ -0,0 +1,198 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.provider; + +import org.eclipse.emf.cdo.releng.predicates.BuilderPredicate; +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IChildCreationExtender; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import org.eclipse.core.resources.ICommand; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class BuilderPredicateItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + private static final IWorkspaceRoot WORKSPACE_ROOT = ResourcesPlugin.getWorkspace().getRoot(); + + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public BuilderPredicateItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + addBuilderPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Builder feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + protected void addBuilderPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory) + .getRootAdapterFactory(), getResourceLocator(), getString("_UI_BuilderPredicate_builder_feature"), getString( + "_UI_PropertyDescriptor_description", "_UI_BuilderPredicate_builder_feature", "_UI_BuilderPredicate_type"), + PredicatesPackage.Literals.BUILDER_PREDICATE__BUILDER, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null) + { + @Override + public Collection<?> getChoiceOfValues(Object object) + { + List<String> result = new ArrayList<String>(); + for (IProject project : WORKSPACE_ROOT.getProjects()) + { + try + { + for (ICommand command : project.getDescription().getBuildSpec()) + { + String name = command.getBuilderName(); + if (!result.contains(name)) + { + result.add(name); + } + } + } + catch (CoreException ex) + { + // Ignore + } + } + Collections.sort(result); + return result; + } + }); + } + + /** + * This returns BuilderPredicate.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/BuilderPredicate")); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() + { + return true; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) + { + String label = ((BuilderPredicate)object).getBuilder(); + return label == null ? "" : label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(BuilderPredicate.class)) + { + case PredicatesPackage.BUILDER_PREDICATE__BUILDER: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() + { + return ((IChildCreationExtender)adapterFactory).getResourceLocator(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/FilePredicateItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/FilePredicateItemProvider.java new file mode 100644 index 0000000000..5fbe4c56e6 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/FilePredicateItemProvider.java @@ -0,0 +1,189 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.provider; + +import org.eclipse.emf.cdo.releng.predicates.FilePredicate; +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IChildCreationExtender; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import java.util.Collection; +import java.util.List; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.predicates.FilePredicate} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class FilePredicateItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FilePredicateItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + addFilePatternPropertyDescriptor(object); + addContentPatternPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the File Pattern feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addFilePatternPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_FilePredicate_filePattern_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_FilePredicate_filePattern_feature", + "_UI_FilePredicate_type"), PredicatesPackage.Literals.FILE_PREDICATE__FILE_PATTERN, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); + } + + /** + * This adds a property descriptor for the Content Pattern feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addContentPatternPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_FilePredicate_contentPattern_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_FilePredicate_contentPattern_feature", + "_UI_FilePredicate_type"), PredicatesPackage.Literals.FILE_PREDICATE__CONTENT_PATTERN, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); + } + + /** + * This returns FilePredicate.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/FilePredicate")); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() + { + return true; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) + { + FilePredicate filePredicate = (FilePredicate)object; + String label = filePredicate.getFilePattern(); + label = label == null ? "" : label; + String contentPattern = filePredicate.getContentPattern(); + if (contentPattern != null) + { + label += " -> " + contentPattern; + } + return label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(FilePredicate.class)) + { + case PredicatesPackage.FILE_PREDICATE__FILE_PATTERN: + case PredicatesPackage.FILE_PREDICATE__CONTENT_PATTERN: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() + { + return ((IChildCreationExtender)adapterFactory).getResourceLocator(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/NamePredicateItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NamePredicateItemProvider.java index 1992103019..9052c5552f 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/NamePredicateItemProvider.java +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NamePredicateItemProvider.java @@ -1,22 +1,15 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation +/** */ -package org.eclipse.emf.cdo.releng.workingsets.provider; +package org.eclipse.emf.cdo.releng.predicates.provider; -import org.eclipse.emf.cdo.releng.workingsets.NamePredicate; -import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage; +import org.eclipse.emf.cdo.releng.predicates.NamePredicate; +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.util.ResourceLocator; import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IChildCreationExtender; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; @@ -31,7 +24,7 @@ import java.util.Collection; import java.util.List; /** - * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.workingsets.NamePredicate} object. + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.predicates.NamePredicate} object. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -76,12 +69,19 @@ public class NamePredicateItemProvider extends ItemProviderAdapter implements IE */ protected void addPatternPropertyDescriptor(Object object) { - itemPropertyDescriptors.add(createItemPropertyDescriptor( - ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), - getString("_UI_NamePredicate_pattern_feature"), - getString("_UI_PropertyDescriptor_description", "_UI_NamePredicate_pattern_feature", "_UI_NamePredicate_type"), - WorkingSetsPackage.Literals.NAME_PREDICATE__PATTERN, true, false, false, - ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_NamePredicate_pattern_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_NamePredicate_pattern_feature", "_UI_NamePredicate_type"), + PredicatesPackage.Literals.NAME_PREDICATE__PATTERN, + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); } /** @@ -134,9 +134,9 @@ public class NamePredicateItemProvider extends ItemProviderAdapter implements IE switch (notification.getFeatureID(NamePredicate.class)) { - case WorkingSetsPackage.NAME_PREDICATE__PATTERN: - fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); - return; + case PredicatesPackage.NAME_PREDICATE__PATTERN: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; } super.notifyChanged(notification); } @@ -163,7 +163,7 @@ public class NamePredicateItemProvider extends ItemProviderAdapter implements IE @Override public ResourceLocator getResourceLocator() { - return WorkingSetsEditPlugin.INSTANCE; + return ((IChildCreationExtender)adapterFactory).getResourceLocator(); } } diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NaturePredicateItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NaturePredicateItemProvider.java new file mode 100644 index 0000000000..2b1990e702 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NaturePredicateItemProvider.java @@ -0,0 +1,180 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.provider; + +import org.eclipse.emf.cdo.releng.predicates.NaturePredicate; +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IChildCreationExtender; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import org.eclipse.core.resources.IProjectNatureDescriptor; +import org.eclipse.core.resources.IWorkspace; +import org.eclipse.core.resources.ResourcesPlugin; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class NaturePredicateItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + private static final IWorkspace WORKSPACE = ResourcesPlugin.getWorkspace(); + + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NaturePredicateItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + addNaturePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Nature feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + protected void addNaturePropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory) + .getRootAdapterFactory(), getResourceLocator(), getString("_UI_NaturePredicate_nature_feature"), getString( + "_UI_PropertyDescriptor_description", "_UI_NaturePredicate_nature_feature", "_UI_NaturePredicate_type"), + PredicatesPackage.Literals.NATURE_PREDICATE__NATURE, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null) + { + @Override + public Collection<?> getChoiceOfValues(Object object) + { + List<String> result = new ArrayList<String>(); + for (IProjectNatureDescriptor descriptor : WORKSPACE.getNatureDescriptors()) + { + result.add(descriptor.getNatureId()); + } + return result; + } + }); + } + + /** + * This returns NaturePredicate.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/NaturePredicate")); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() + { + return true; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) + { + String label = ((NaturePredicate)object).getNature(); + return label == null ? "" : label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(NaturePredicate.class)) + { + case PredicatesPackage.NATURE_PREDICATE__NATURE: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() + { + return ((IChildCreationExtender)adapterFactory).getResourceLocator(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NotPredicateItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NotPredicateItemProvider.java new file mode 100644 index 0000000000..246761d577 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NotPredicateItemProvider.java @@ -0,0 +1,201 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.provider; + +import org.eclipse.emf.cdo.releng.predicates.NotPredicate; +import org.eclipse.emf.cdo.releng.predicates.PredicatesFactory; +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.provider.IChildCreationExtender; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import java.util.Collection; +import java.util.List; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.predicates.NotPredicate} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class NotPredicateItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotPredicateItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) + { + if (childrenFeatures == null) + { + super.getChildrenFeatures(object); + childrenFeatures.add(PredicatesPackage.Literals.NOT_PREDICATE__OPERAND); + } + return childrenFeatures; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EStructuralFeature getChildFeature(Object object, Object child) + { + // Check the type of the specified child object and return the proper feature to use for + // adding (see {@link AddCommand}) it as a child. + + return super.getChildFeature(object, child); + } + + /** + * This returns NotPredicate.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/NotPredicate")); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() + { + return true; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) + { + return "Not"; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(NotPredicate.class)) + { + case PredicatesPackage.NOT_PREDICATE__OPERAND: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.NOT_PREDICATE__OPERAND, + PredicatesFactory.eINSTANCE.createNamePredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.NOT_PREDICATE__OPERAND, + PredicatesFactory.eINSTANCE.createRepositoryPredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.NOT_PREDICATE__OPERAND, + PredicatesFactory.eINSTANCE.createAndPredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.NOT_PREDICATE__OPERAND, + PredicatesFactory.eINSTANCE.createOrPredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.NOT_PREDICATE__OPERAND, + PredicatesFactory.eINSTANCE.createNotPredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.NOT_PREDICATE__OPERAND, + PredicatesFactory.eINSTANCE.createNaturePredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.NOT_PREDICATE__OPERAND, + PredicatesFactory.eINSTANCE.createBuilderPredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.NOT_PREDICATE__OPERAND, + PredicatesFactory.eINSTANCE.createFilePredicate())); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() + { + return ((IChildCreationExtender)adapterFactory).getResourceLocator(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/OrPredicateItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/OrPredicateItemProvider.java new file mode 100644 index 0000000000..4fe4f2710a --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/OrPredicateItemProvider.java @@ -0,0 +1,201 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.provider; + +import org.eclipse.emf.cdo.releng.predicates.OrPredicate; +import org.eclipse.emf.cdo.releng.predicates.PredicatesFactory; +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.provider.IChildCreationExtender; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import java.util.Collection; +import java.util.List; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.predicates.OrPredicate} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class OrPredicateItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public OrPredicateItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) + { + if (childrenFeatures == null) + { + super.getChildrenFeatures(object); + childrenFeatures.add(PredicatesPackage.Literals.OR_PREDICATE__OPERANDS); + } + return childrenFeatures; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EStructuralFeature getChildFeature(Object object, Object child) + { + // Check the type of the specified child object and return the proper feature to use for + // adding (see {@link AddCommand}) it as a child. + + return super.getChildFeature(object, child); + } + + /** + * This returns OrPredicate.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/OrPredicate")); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() + { + return true; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) + { + return "Or"; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(OrPredicate.class)) + { + case PredicatesPackage.OR_PREDICATE__OPERANDS: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.OR_PREDICATE__OPERANDS, + PredicatesFactory.eINSTANCE.createNamePredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.OR_PREDICATE__OPERANDS, + PredicatesFactory.eINSTANCE.createRepositoryPredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.OR_PREDICATE__OPERANDS, + PredicatesFactory.eINSTANCE.createAndPredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.OR_PREDICATE__OPERANDS, + PredicatesFactory.eINSTANCE.createOrPredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.OR_PREDICATE__OPERANDS, + PredicatesFactory.eINSTANCE.createNotPredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.OR_PREDICATE__OPERANDS, + PredicatesFactory.eINSTANCE.createNaturePredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.OR_PREDICATE__OPERANDS, + PredicatesFactory.eINSTANCE.createBuilderPredicate())); + + newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.OR_PREDICATE__OPERANDS, + PredicatesFactory.eINSTANCE.createFilePredicate())); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() + { + return ((IChildCreationExtender)adapterFactory).getResourceLocator(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/PredicatesEditPlugin.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/PredicatesEditPlugin.java new file mode 100644 index 0000000000..e4e95e2a5d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/PredicatesEditPlugin.java @@ -0,0 +1,96 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.provider; + +import org.eclipse.emf.common.EMFPlugin; + +import org.eclipse.emf.common.util.ResourceLocator; + +/** + * This is the central singleton for the Predicates edit plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public final class PredicatesEditPlugin extends EMFPlugin +{ + /** + * Keep track of the singleton. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final PredicatesEditPlugin INSTANCE = new PredicatesEditPlugin(); + + /** + * Keep track of the singleton. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static Implementation plugin; + + /** + * Create the instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PredicatesEditPlugin() + { + super + (new ResourceLocator [] + { + }); + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the singleton instance. + * @generated + */ + @Override + public ResourceLocator getPluginResourceLocator() + { + return plugin; + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the singleton instance. + * @generated + */ + public static Implementation getPlugin() + { + return plugin; + } + + /** + * The actual implementation of the Eclipse <b>Plugin</b>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static class Implementation extends EclipsePlugin + { + /** + * Creates an instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Implementation() + { + super(); + + // Remember the static instance. + // + plugin = this; + } + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/PredicatesItemProviderAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/PredicatesItemProviderAdapterFactory.java new file mode 100644 index 0000000000..215f8d579d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/PredicatesItemProviderAdapterFactory.java @@ -0,0 +1,444 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.provider; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; + +import org.eclipse.emf.cdo.releng.predicates.util.PredicatesAdapterFactory; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.common.util.ResourceLocator; + +import org.eclipse.emf.edit.domain.EditingDomain; + +import org.eclipse.emf.edit.provider.ChangeNotifier; +import org.eclipse.emf.edit.provider.ChildCreationExtenderManager; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.ComposedAdapterFactory; +import org.eclipse.emf.edit.provider.IChangeNotifier; +import org.eclipse.emf.edit.provider.IChildCreationExtender; +import org.eclipse.emf.edit.provider.IDisposable; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.INotifyChangedListener; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; + +/** + * This is the factory that is used to provide the interfaces needed to support Viewers. + * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}. + * The adapters also support Eclipse property sheets. + * Note that most of the adapters are shared among multiple instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class PredicatesItemProviderAdapterFactory extends PredicatesAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable, IChildCreationExtender +{ + /** + * This keeps track of the root adapter factory that delegates to this adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ComposedAdapterFactory parentAdapterFactory; + + /** + * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IChangeNotifier changeNotifier = new ChangeNotifier(); + + /** + * This helps manage the child creation extenders. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(PredicatesEditPlugin.INSTANCE, PredicatesPackage.eNS_URI); + + /** + * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<Object> supportedTypes = new ArrayList<Object>(); + + /** + * This constructs an instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PredicatesItemProviderAdapterFactory() + { + supportedTypes.add(IEditingDomainItemProvider.class); + supportedTypes.add(IStructuredItemContentProvider.class); + supportedTypes.add(ITreeItemContentProvider.class); + supportedTypes.add(IItemLabelProvider.class); + supportedTypes.add(IItemPropertySource.class); + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.predicates.NamePredicate} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected NamePredicateItemProvider namePredicateItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.predicates.NamePredicate}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createNamePredicateAdapter() + { + if (namePredicateItemProvider == null) + { + namePredicateItemProvider = new NamePredicateItemProvider(this); + } + + return namePredicateItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected RepositoryPredicateItemProvider repositoryPredicateItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createRepositoryPredicateAdapter() + { + if (repositoryPredicateItemProvider == null) + { + repositoryPredicateItemProvider = new RepositoryPredicateItemProvider(this); + } + + return repositoryPredicateItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.predicates.AndPredicate} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected AndPredicateItemProvider andPredicateItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.predicates.AndPredicate}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createAndPredicateAdapter() + { + if (andPredicateItemProvider == null) + { + andPredicateItemProvider = new AndPredicateItemProvider(this); + } + + return andPredicateItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.predicates.OrPredicate} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected OrPredicateItemProvider orPredicateItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.predicates.OrPredicate}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createOrPredicateAdapter() + { + if (orPredicateItemProvider == null) + { + orPredicateItemProvider = new OrPredicateItemProvider(this); + } + + return orPredicateItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.predicates.NotPredicate} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected NotPredicateItemProvider notPredicateItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.predicates.NotPredicate}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createNotPredicateAdapter() + { + if (notPredicateItemProvider == null) + { + notPredicateItemProvider = new NotPredicateItemProvider(this); + } + + return notPredicateItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected NaturePredicateItemProvider naturePredicateItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createNaturePredicateAdapter() + { + if (naturePredicateItemProvider == null) + { + naturePredicateItemProvider = new NaturePredicateItemProvider(this); + } + + return naturePredicateItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected BuilderPredicateItemProvider builderPredicateItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createBuilderPredicateAdapter() + { + if (builderPredicateItemProvider == null) + { + builderPredicateItemProvider = new BuilderPredicateItemProvider(this); + } + + return builderPredicateItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.predicates.FilePredicate} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected FilePredicateItemProvider filePredicateItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.predicates.FilePredicate}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createFilePredicateAdapter() + { + if (filePredicateItemProvider == null) + { + filePredicateItemProvider = new FilePredicateItemProvider(this); + } + + return filePredicateItemProvider; + } + + /** + * This returns the root adapter factory that contains this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ComposeableAdapterFactory getRootAdapterFactory() + { + return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory(); + } + + /** + * This sets the composed adapter factory that contains this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) + { + this.parentAdapterFactory = parentAdapterFactory; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isFactoryForType(Object type) + { + return supportedTypes.contains(type) || super.isFactoryForType(type); + } + + /** + * This implementation substitutes the factory itself as the key for the adapter. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter adapt(Notifier notifier, Object type) + { + return super.adapt(notifier, this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object adapt(Object object, Object type) + { + if (isFactoryForType(type)) + { + Object adapter = super.adapt(object, type); + if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) + { + return adapter; + } + } + + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List<IChildCreationExtender> getChildCreationExtenders() + { + return childCreationExtenderManager.getChildCreationExtenders(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain) + { + return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ResourceLocator getResourceLocator() + { + return childCreationExtenderManager; + } + + /** + * This adds a listener. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void addListener(INotifyChangedListener notifyChangedListener) + { + changeNotifier.addListener(notifyChangedListener); + } + + /** + * This removes a listener. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void removeListener(INotifyChangedListener notifyChangedListener) + { + changeNotifier.removeListener(notifyChangedListener); + } + + /** + * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void fireNotifyChanged(Notification notification) + { + changeNotifier.fireNotifyChanged(notification); + + if (parentAdapterFactory != null) + { + parentAdapterFactory.fireNotifyChanged(notification); + } + } + + /** + * This disposes all of the item providers created by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void dispose() + { + if (namePredicateItemProvider != null) namePredicateItemProvider.dispose(); + if (repositoryPredicateItemProvider != null) repositoryPredicateItemProvider.dispose(); + if (andPredicateItemProvider != null) andPredicateItemProvider.dispose(); + if (orPredicateItemProvider != null) orPredicateItemProvider.dispose(); + if (notPredicateItemProvider != null) notPredicateItemProvider.dispose(); + if (naturePredicateItemProvider != null) naturePredicateItemProvider.dispose(); + if (builderPredicateItemProvider != null) builderPredicateItemProvider.dispose(); + if (filePredicateItemProvider != null) filePredicateItemProvider.dispose(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/RepositoryPredicateItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/RepositoryPredicateItemProvider.java new file mode 100644 index 0000000000..1558b5f6f2 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/RepositoryPredicateItemProvider.java @@ -0,0 +1,180 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.provider; + +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; +import org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IChildCreationExtender; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class RepositoryPredicateItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + private static final IWorkspaceRoot WORKSPACE_ROOT = ResourcesPlugin.getWorkspace().getRoot(); + + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public RepositoryPredicateItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + addProjectPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Project feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + protected void addProjectPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory) + .getRootAdapterFactory(), getResourceLocator(), getString("_UI_RepositoryPredicate_project_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_RepositoryPredicate_project_feature", + "_UI_RepositoryPredicate_type"), PredicatesPackage.Literals.REPOSITORY_PREDICATE__PROJECT, true, false, + false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null) + { + @Override + public Collection<?> getChoiceOfValues(Object object) + { + List<IProject> result = new ArrayList<IProject>(); + for (IProject project : WORKSPACE_ROOT.getProjects()) + { + result.add(project); + } + return result; + } + }); + } + + /** + * This returns RepositoryPredicate.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/RepositoryPredicate")); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() + { + return true; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) + { + IProject project = ((RepositoryPredicate)object).getProject(); + return project == null ? "" : project.getName(); + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(RepositoryPredicate.class)) + { + case PredicatesPackage.REPOSITORY_PREDICATE__PROJECT: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() + { + return ((IChildCreationExtender)adapterFactory).getResourceLocator(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/.classpath b/plugins/org.eclipse.emf.cdo.releng.predicates/.classpath new file mode 100644 index 0000000000..ff7f2117f3 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.classpath @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <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"> + <accessrules> + <accessrule kind="accessible" pattern="org/eclipse/egit/core/**"/> + </accessrules> + </classpathentry> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.project b/plugins/org.eclipse.emf.cdo.releng.predicates/.project index f657bfbe45..d9d0447b12 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.project +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.project @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <projectDescription> - <name>org.eclipse.emf.cdo.releng.setup.ide</name> + <name>org.eclipse.emf.cdo.releng.predicates</name> <comment></comment> <projects> </projects> diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000..172e111380 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding//model/predicates.ecorediag=UTF-8 diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.jdt.core.prefs index 48aafaf7ea..48aafaf7ea 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.jdt.core.prefs diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.jdt.ui.prefs index 3fc140fcdc..3fc140fcdc 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.jdt.ui.prefs +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.jdt.ui.prefs diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.ltk.core.refactoring.prefs index 864e30fe5d..864e30fe5d 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.ltk.core.refactoring.prefs +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.ltk.core.refactoring.prefs diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.mylyn.tasks.ui.prefs index b050639a54..b050639a54 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.mylyn.tasks.ui.prefs diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.mylyn.team.ui.prefs index 2f50f36c0c..2f50f36c0c 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.mylyn.team.ui.prefs +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.mylyn.team.ui.prefs diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.pde.api.tools.prefs index 0c17d59e45..0c17d59e45 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.pde.api.tools.prefs +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.pde.api.tools.prefs diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.pde.prefs new file mode 100644 index 0000000000..fe01bb701d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.pde.prefs @@ -0,0 +1,31 @@ +#Thu Feb 04 09:44:24 CET 2010 +compilers.f.unresolved-features=1 +compilers.f.unresolved-plugins=1 +compilers.incompatible-environment=1 +compilers.p.build=1 +compilers.p.build.bin.includes=1 +compilers.p.build.java.compliance=1 +compilers.p.build.missing.output=2 +compilers.p.build.output.library=1 +compilers.p.build.source.library=1 +compilers.p.build.src.includes=1 +compilers.p.deprecated=2 +compilers.p.discouraged-class=1 +compilers.p.internal=1 +compilers.p.missing-packages=1 +compilers.p.missing-version-export-package=1 +compilers.p.missing-version-import-package=1 +compilers.p.missing-version-require-bundle=1 +compilers.p.no-required-att=0 +compilers.p.not-externalized-att=2 +compilers.p.unknown-attribute=1 +compilers.p.unknown-class=1 +compilers.p.unknown-element=1 +compilers.p.unknown-identifier=1 +compilers.p.unknown-resource=1 +compilers.p.unresolved-ex-points=0 +compilers.p.unresolved-import=0 +compilers.s.create-docs=false +compilers.s.doc-folder=doc +compilers.s.open-tags=1 +eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.predicates/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..97af82bc76 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/META-INF/MANIFEST.MF @@ -0,0 +1,18 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-SymbolicName: org.eclipse.emf.cdo.releng.predicates;singleton:=true +Bundle-Version: 1.0.200.qualifier +Bundle-ClassPath: . +Bundle-Name: %pluginName +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", + org.eclipse.emf.ecore;visibility:=reexport;bundle-version="[2.9.0,3.0.0)", + org.eclipse.core.resources;visibility:=reexport;bundle-version="[3.5.0,4.0.0)", + org.eclipse.team.core;bundle-version="[3.7.0,4.0.0)", + org.eclipse.egit.core;bundle-version="[3.0.1,5.0.0)" +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.eclipse.emf.cdo.releng.predicates, + org.eclipse.emf.cdo.releng.predicates.impl, + org.eclipse.emf.cdo.releng.predicates.util diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/about.html b/plugins/org.eclipse.emf.cdo.releng.predicates/about.html index d35d5aed64..d35d5aed64 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/about.html +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/about.html diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/about.ini b/plugins/org.eclipse.emf.cdo.releng.predicates/about.ini index 32006ae5d6..32006ae5d6 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/about.ini +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/about.ini diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/about.mappings b/plugins/org.eclipse.emf.cdo.releng.predicates/about.mappings index bddaab4310..bddaab4310 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/about.mappings +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/about.mappings diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/about.properties b/plugins/org.eclipse.emf.cdo.releng.predicates/about.properties index a77a8cabda..9134ef220b 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/about.properties +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/about.properties @@ -1,4 +1,4 @@ -# Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. +# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at @@ -16,8 +16,16 @@ # append it to the end of the file, and change the code to use the new name. # ============================================================================== -featureName = Setup Development Environment Product IDE -featureText = Setup Development Environment Product IDE\n\ +featureName = CDO Release Engineering Dynamic Working Sets +featureText = CDO Release Engineering Dynamic Working Sets\n\ Version: {featureVersion}\n\ Build id: {0}\n\ \n\ +Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. All rights reserved.\n\ +\n\ +Visit http://www.eclipse.org/cdo + +# ============================================================================== +# %%% END OF TRANSLATED PROPERTIES %%% +# The above properties have been shipped for translation. +# ============================================================================== diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/build.properties b/plugins/org.eclipse.emf.cdo.releng.predicates/build.properties index 87627c2c7a..eb09361899 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/build.properties +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/build.properties @@ -1,4 +1,4 @@ -# Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. +# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at @@ -11,19 +11,18 @@ source.. = src/ output.. = bin/ -bin.includes = plugin.xml,\ - META-INF/,\ +bin.includes = META-INF/,\ .,\ + plugin.xml,\ about.html,\ - copyright.txt,\ - plugin.properties,\ - icons/,\ about.ini,\ about.mappings,\ about.properties,\ - modeling32.png -src.includes = about.html,\ copyright.txt,\ - Setup IDE.launch + modeling32.png,\ + plugin.properties,\ + model/ +src.includes = about.html,\ + copyright.txt generateSourceReferences = true diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/copyright.txt b/plugins/org.eclipse.emf.cdo.releng.predicates/copyright.txt index 1c77978050..1c77978050 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/copyright.txt +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/copyright.txt diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.ecore b/plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.ecore new file mode 100644 index 0000000000..a8aad151d9 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.ecore @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="predicates" nsURI="http://www.eclipse.org/CDO/releng/predicates/1.0" + nsPrefix="predicates"> + <eClassifiers xsi:type="ecore:EClass" name="Predicate" abstract="true" interface="true"> + <eOperations name="matches" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> + <eParameters name="project" eType="#//Project"/> + </eOperations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="Project" instanceClassName="org.eclipse.core.resources.IProject"/> + <eClassifiers xsi:type="ecore:EClass" name="NamePredicate" eSuperTypes="#//Predicate"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="pattern" lowerBound="1" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="RepositoryPredicate" eSuperTypes="#//Predicate"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="project" eType="#//Project"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="AndPredicate" eSuperTypes="#//Predicate"> + <eStructuralFeatures xsi:type="ecore:EReference" name="operands" upperBound="-1" + eType="#//Predicate" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OrPredicate" eSuperTypes="#//Predicate"> + <eStructuralFeatures xsi:type="ecore:EReference" name="operands" upperBound="-1" + eType="#//Predicate" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="NotPredicate" eSuperTypes="#//Predicate"> + <eStructuralFeatures xsi:type="ecore:EReference" name="operand" eType="#//Predicate" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="NaturePredicate" eSuperTypes="#//Predicate"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="nature" lowerBound="1" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="BuilderPredicate" eSuperTypes="#//Predicate"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="builder" lowerBound="1" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="FilePredicate" eSuperTypes="#//Predicate"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="filePattern" lowerBound="1" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="contentPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> +</ecore:EPackage> diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.ecorediag b/plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.ecorediag new file mode 100644 index 0000000000..4c5f0a16a9 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.ecorediag @@ -0,0 +1,286 @@ +<?xml version="1.0" encoding="UTF-8"?> +<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_mmJkYAvBEeOoPqB4RyWmHw" type="EcoreTools" measurementUnit="Pixel"> + <children xmi:type="notation:Node" xmi:id="_mmQ5IAvBEeOoPqB4RyWmHw" type="1001"> + <children xmi:type="notation:Node" xmi:id="_mmSHQAvBEeOoPqB4RyWmHw" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_mmSHQQvBEeOoPqB4RyWmHw" type="5001"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_mmSHQgvBEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_mmSHQwvBEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_mmSHRAvBEeOoPqB4RyWmHw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_mmSuUAvBEeOoPqB4RyWmHw" type="5002"> + <children xmi:type="notation:Node" xmi:id="_mmSuVAvBEeOoPqB4RyWmHw" type="2002"> + <element xmi:type="ecore:EOperation" href="predicates.ecore#//Predicate/matches"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_mmSuVQvBEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_mmSuUQvBEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_mmSuUgvBEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_mmSuUwvBEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_mmQ5IQvBEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="predicates.ecore#//Predicate"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mmQ5IgvBEeOoPqB4RyWmHw" x="495" y="45"/> + </children> + <children xmi:type="notation:Node" xmi:id="_mmTVYAvBEeOoPqB4RyWmHw" type="1004"> + <children xmi:type="notation:Node" xmi:id="_mmT8cAvBEeOoPqB4RyWmHw" type="4008"/> + <children xmi:type="notation:Node" xmi:id="_mmT8cQvBEeOoPqB4RyWmHw" type="4009"/> + <styles xmi:type="notation:ShapeStyle" xmi:id="_mmTVYQvBEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EDataType" href="predicates.ecore#//Project"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mmTVYgvBEeOoPqB4RyWmHw" x="45" y="45"/> + </children> + <children xmi:type="notation:Node" xmi:id="_mmT8cgvBEeOoPqB4RyWmHw" type="1001"> + <children xmi:type="notation:Node" xmi:id="_mmUjgAvBEeOoPqB4RyWmHw" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_mmUjgQvBEeOoPqB4RyWmHw" type="5001"> + <children xmi:type="notation:Node" xmi:id="_mmUjiQvBEeOoPqB4RyWmHw" type="2001"> + <element xmi:type="ecore:EAttribute" href="predicates.ecore#//NamePredicate/pattern"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_mmUjigvBEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_mmUjggvBEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_mmUjgwvBEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_mmUjhAvBEeOoPqB4RyWmHw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_mmUjhQvBEeOoPqB4RyWmHw" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_mmUjhgvBEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_mmUjhwvBEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_mmUjiAvBEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_mmT8cwvBEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="predicates.ecore#//NamePredicate"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mmT8dAvBEeOoPqB4RyWmHw" x="60" y="225"/> + </children> + <children xmi:type="notation:Node" xmi:id="__o53MAvBEeOoPqB4RyWmHw" type="1001"> + <children xmi:type="notation:Node" xmi:id="__o7FUAvBEeOoPqB4RyWmHw" type="4001"/> + <children xmi:type="notation:Node" xmi:id="__o7sYAvBEeOoPqB4RyWmHw" type="5001"> + <children xmi:type="notation:Node" xmi:id="_MyEF0AvCEeOoPqB4RyWmHw" type="2001"> + <element xmi:type="ecore:EAttribute" href="predicates.ecore#//RepositoryPredicate/project"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_MyEF0QvCEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="__o7sYQvBEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="__o7sYgvBEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="__o7sYwvBEeOoPqB4RyWmHw"/> + </children> + <children xmi:type="notation:Node" xmi:id="__o8TcAvBEeOoPqB4RyWmHw" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="__o8TcQvBEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="__o8TcgvBEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="__o8TcwvBEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="__o53MQvBEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="predicates.ecore#//RepositoryPredicate"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="__o53MgvBEeOoPqB4RyWmHw" x="270" y="225"/> + </children> + <children xmi:type="notation:Node" xmi:id="_aN9qQAvCEeOoPqB4RyWmHw" type="1001"> + <children xmi:type="notation:Node" xmi:id="_aN_fcAvCEeOoPqB4RyWmHw" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_aN_fcQvCEeOoPqB4RyWmHw" type="5001"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_aN_fcgvCEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_aN_fcwvCEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_aN_fdAvCEeOoPqB4RyWmHw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_aOAGgAvCEeOoPqB4RyWmHw" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_aOAGgQvCEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_aOAGggvCEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_aOAGgwvCEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_aN9qQQvCEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="predicates.ecore#//AndPredicate"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aN9qQgvCEeOoPqB4RyWmHw" x="735" y="390"/> + </children> + <children xmi:type="notation:Node" xmi:id="_b-qy4AvCEeOoPqB4RyWmHw" type="1001"> + <children xmi:type="notation:Node" xmi:id="_b-soEAvCEeOoPqB4RyWmHw" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_b-soEQvCEeOoPqB4RyWmHw" type="5001"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_b-soEgvCEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_b-soEwvCEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_b-soFAvCEeOoPqB4RyWmHw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_b-tPIAvCEeOoPqB4RyWmHw" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_b-tPIQvCEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_b-tPIgvCEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_b-tPIwvCEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_b-qy4QvCEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="predicates.ecore#//OrPredicate"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b-qy4gvCEeOoPqB4RyWmHw" x="945" y="390"/> + </children> + <children xmi:type="notation:Node" xmi:id="_eGA54AvCEeOoPqB4RyWmHw" type="1001"> + <children xmi:type="notation:Node" xmi:id="_eGCIAAvCEeOoPqB4RyWmHw" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_eGCvEAvCEeOoPqB4RyWmHw" type="5001"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_eGCvEQvCEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_eGCvEgvCEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_eGCvEwvCEeOoPqB4RyWmHw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_eGDWIAvCEeOoPqB4RyWmHw" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_eGDWIQvCEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_eGDWIgvCEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_eGDWIwvCEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_eGA54QvCEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="predicates.ecore#//NotPredicate"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eGA54gvCEeOoPqB4RyWmHw" x="1125" y="405"/> + </children> + <children xmi:type="notation:Node" xmi:id="_BkwqcAvDEeOoPqB4RyWmHw" type="1001"> + <children xmi:type="notation:Node" xmi:id="_Bkx4kAvDEeOoPqB4RyWmHw" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_Bkx4kQvDEeOoPqB4RyWmHw" type="5001"> + <children xmi:type="notation:Node" xmi:id="_HMg9IAvDEeOoPqB4RyWmHw" type="2001"> + <element xmi:type="ecore:EAttribute" href="predicates.ecore#//NaturePredicate/nature"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_HMg9IQvDEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_Bkx4kgvDEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_Bkx4kwvDEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_Bkx4lAvDEeOoPqB4RyWmHw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_BkyfoAvDEeOoPqB4RyWmHw" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_BkyfoQvDEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_BkyfogvDEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_BkyfowvDEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_BkwqcQvDEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="predicates.ecore#//NaturePredicate"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BkwqcgvDEeOoPqB4RyWmHw" x="135" y="510"/> + </children> + <children xmi:type="notation:Node" xmi:id="_L3QN8AvDEeOoPqB4RyWmHw" type="1001"> + <children xmi:type="notation:Node" xmi:id="_L3Q1AAvDEeOoPqB4RyWmHw" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_L3Q1AQvDEeOoPqB4RyWmHw" type="5001"> + <children xmi:type="notation:Node" xmi:id="_NrDG0AvDEeOoPqB4RyWmHw" type="2001"> + <element xmi:type="ecore:EAttribute" href="predicates.ecore#//BuilderPredicate/builder"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_NrDG0QvDEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_L3Q1AgvDEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_L3Q1AwvDEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_L3Q1BAvDEeOoPqB4RyWmHw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_L3RcEAvDEeOoPqB4RyWmHw" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_L3RcEQvDEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_L3RcEgvDEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_L3RcEwvDEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_L3QN8QvDEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="predicates.ecore#//BuilderPredicate"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_L3QN8gvDEeOoPqB4RyWmHw" x="435" y="510"/> + </children> + <children xmi:type="notation:Node" xmi:id="_Wr3uoAvlEeOoPqB4RyWmHw" type="1001"> + <children xmi:type="notation:Node" xmi:id="_Wr5j0AvlEeOoPqB4RyWmHw" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_Wr6K4AvlEeOoPqB4RyWmHw" type="5001"> + <children xmi:type="notation:Node" xmi:id="_aFHiYAvlEeOoPqB4RyWmHw" type="2001"> + <element xmi:type="ecore:EAttribute" href="predicates.ecore#//FilePredicate/filePattern"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_aFHiYQvlEeOoPqB4RyWmHw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_ghyD0AvlEeOoPqB4RyWmHw" type="2001"> + <element xmi:type="ecore:EAttribute" href="predicates.ecore#//FilePredicate/contentPattern"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_ghyD0QvlEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_Wr6K4QvlEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_Wr6K4gvlEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_Wr6K4wvlEeOoPqB4RyWmHw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_Wr6K5AvlEeOoPqB4RyWmHw" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_Wr6K5QvlEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_Wr6K5gvlEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_Wr6x8AvlEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_Wr3uoQvlEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="predicates.ecore#//FilePredicate"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wr3uogvlEeOoPqB4RyWmHw" x="675" y="525"/> + </children> + <styles xmi:type="notation:DiagramStyle" xmi:id="_mmJkYQvBEeOoPqB4RyWmHw"/> + <element xmi:type="ecore:EPackage" href="predicates.ecore#/"/> + <edges xmi:type="notation:Edge" xmi:id="_mmVxoAvBEeOoPqB4RyWmHw" type="3003" source="_mmT8cgvBEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_mmVxoQvBEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_mmVxogvBEeOoPqB4RyWmHw" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mmVxowvBEeOoPqB4RyWmHw" points="[0, 0, 0, 70]$[0, -70, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_muV3EAvBEeOoPqB4RyWmHw" id="(0.5,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_muV3EQvBEeOoPqB4RyWmHw" id="(0.49794238683127573,1.0)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_LQ7qQAvCEeOoPqB4RyWmHw" type="3003" source="__o53MAvBEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_LQ7qQQvCEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_LQ7qQgvCEeOoPqB4RyWmHw" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LQ7qQwvCEeOoPqB4RyWmHw" points="[6, -12, -62, 105]$[6, -101, -62, 16]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LRCX8AvCEeOoPqB4RyWmHw" id="(0.31976744186046513,0.20408163265306123)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LRCX8QvCEeOoPqB4RyWmHw" id="(0.757201646090535,0.746031746031746)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_n8z_4AvCEeOoPqB4RyWmHw" type="3003" source="_aN9qQAvCEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_n8z_4QvCEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_n8z_4gvCEeOoPqB4RyWmHw" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_n8z_4wvCEeOoPqB4RyWmHw" points="[8, -3, 4, 120]$[8, -92, 4, 31]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n844YAvCEeOoPqB4RyWmHw" id="(0.7154471544715447,0.08163265306122448)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_pGe9sAvCEeOoPqB4RyWmHw" type="3003" source="_b-qy4AvCEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_pGe9sQvCEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_pGe9sgvCEeOoPqB4RyWmHw" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pGe9swvCEeOoPqB4RyWmHw" points="[-17, -23, 97, 120]$[7, -136, 121, 7]"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_pxSOMAvCEeOoPqB4RyWmHw" type="3003" source="_eGA54AvCEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_pxSOMQvCEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_pxSOMgvCEeOoPqB4RyWmHw" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pxSOMwvCEeOoPqB4RyWmHw" points="[-14, -9, 169, 122]$[-181, -159, 2, -28]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pxV4kAvCEeOoPqB4RyWmHw" id="(0.39669421487603307,0.20408163265306123)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pxWfoAvCEeOoPqB4RyWmHw" id="(0.8065843621399177,0.4603174603174603)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_sdUWoAvCEeOoPqB4RyWmHw" type="3002" source="_eGA54AvCEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw"> + <children xmi:type="notation:Node" xmi:id="_sdbrYAvCEeOoPqB4RyWmHw" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_sdbrYQvCEeOoPqB4RyWmHw" x="-10" y="-10"/> + </children> + <children xmi:type="notation:Node" xmi:id="_sdcScAvCEeOoPqB4RyWmHw" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_sdcScQvCEeOoPqB4RyWmHw" x="10" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_sdUWoQvCEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_sdUWogvCEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="predicates.ecore#//NotPredicate/operand"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sdUWowvCEeOoPqB4RyWmHw" points="[0, -21, 204, 141]$[0, -156, 204, 6]$[-193, -156, 11, 6]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sddgkAvCEeOoPqB4RyWmHw" id="(0.8760330578512396,0.4489795918367347)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sdeHoAvCEeOoPqB4RyWmHw" id="(0.9547325102880658,0.15873015873015872)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_xy7wcAvCEeOoPqB4RyWmHw" type="3002" source="_b-qy4AvCEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw"> + <children xmi:type="notation:Node" xmi:id="_xy8-kAvCEeOoPqB4RyWmHw" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_xy8-kQvCEeOoPqB4RyWmHw" x="-10" y="-4"/> + </children> + <children xmi:type="notation:Node" xmi:id="_xy9loAvCEeOoPqB4RyWmHw" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_xy9loQvCEeOoPqB4RyWmHw" x="10" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_xy7wcQvCEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_xy7wcgvCEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="predicates.ecore#//OrPredicate/operands"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xy7wcwvCEeOoPqB4RyWmHw" points="[-15, -38, 6, 98]$[-15, -127, 6, 9]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xzBQAAvCEeOoPqB4RyWmHw" id="(0.27927927927927926,0.8163265306122449)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xzBQAQvCEeOoPqB4RyWmHw" id="(0.7860082304526749,0.8571428571428571)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_7Mb2cAvCEeOoPqB4RyWmHw" type="3002" source="_aN9qQAvCEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw"> + <children xmi:type="notation:Node" xmi:id="_7MdEkAvCEeOoPqB4RyWmHw" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_7MdEkQvCEeOoPqB4RyWmHw" x="-10" y="6"/> + </children> + <children xmi:type="notation:Node" xmi:id="_7MdroAvCEeOoPqB4RyWmHw" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_7MdroQvCEeOoPqB4RyWmHw" x="10" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_7Mb2cQvCEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_7Mb2cgvCEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="predicates.ecore#//AndPredicate/operands"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7McdgAvCEeOoPqB4RyWmHw" points="[-10, -8, 1, 99]$[-10, -97, 1, 10]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7MjLMAvCEeOoPqB4RyWmHw" id="(0.21138211382113822,0.1836734693877551)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7MjLMQvCEeOoPqB4RyWmHw" id="(0.18518518518518517,0.8412698412698413)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_KbL4kAvDEeOoPqB4RyWmHw" type="3003" source="_BkwqcAvDEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_KbL4kQvDEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_KbL4kgvDEeOoPqB4RyWmHw" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KbL4kwvDEeOoPqB4RyWmHw" points="[16, -11, -320, 226]$[337, -220, 1, 17]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KbQKAAvDEeOoPqB4RyWmHw" id="(0.3466666666666667,0.19047619047619047)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KbQKAQvDEeOoPqB4RyWmHw" id="(0.17695473251028807,0.7301587301587301)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_Q6NxgAvDEeOoPqB4RyWmHw" type="3003" source="_L3QN8AvDEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_Q6NxgQvDEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_Q6NxggvDEeOoPqB4RyWmHw" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Q6NxgwvDEeOoPqB4RyWmHw" points="[2, -12, -31, 219]$[34, -221, 1, 10]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q6SC8AvDEeOoPqB4RyWmHw" id="(0.5555555555555556,0.20634920634920634)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q6SC8QvDEeOoPqB4RyWmHw" id="(0.1111111111111111,0.8412698412698413)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_YkCxMAvlEeOoPqB4RyWmHw" type="3003" source="_Wr3uoAvlEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_YkCxMQvlEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_YkCxMgvlEeOoPqB4RyWmHw" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YkCxMwvlEeOoPqB4RyWmHw" points="[-6, -28, 77, 450]$[-203, -477, -120, 1]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YkF0gAvlEeOoPqB4RyWmHw" id="(0.20512820512820512,0.6122448979591837)"/> + </edges> +</notation:Diagram> diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.genmodel b/plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.genmodel new file mode 100644 index 0000000000..61785f83a7 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.genmodel @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" + xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.cdo.releng.predicates/src" creationIcons="false" + modelPluginID="org.eclipse.emf.cdo.releng.predicates" modelName="Predicates" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" + importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" copyrightFields="false" + operationReflection="true" importOrganizing="true" decoration="Live"> + <foreignModel>predicates.ecore</foreignModel> + <genPackages prefix="Predicates" basePackage="org.eclipse.emf.cdo.releng" disposableProviderFactory="true" + extensibleProviderFactory="true" ecorePackage="predicates.ecore#/"> + <genDataTypes ecoreDataType="predicates.ecore#//Project"/> + <genClasses image="false" ecoreClass="predicates.ecore#//Predicate"> + <genOperations ecoreOperation="predicates.ecore#//Predicate/matches"> + <genParameters ecoreParameter="predicates.ecore#//Predicate/matches/project"/> + </genOperations> + </genClasses> + <genClasses ecoreClass="predicates.ecore#//NamePredicate"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute predicates.ecore#//NamePredicate/pattern"/> + </genClasses> + <genClasses ecoreClass="predicates.ecore#//RepositoryPredicate"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute predicates.ecore#//RepositoryPredicate/project"/> + </genClasses> + <genClasses ecoreClass="predicates.ecore#//AndPredicate"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference predicates.ecore#//AndPredicate/operands"/> + </genClasses> + <genClasses ecoreClass="predicates.ecore#//OrPredicate"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference predicates.ecore#//OrPredicate/operands"/> + </genClasses> + <genClasses ecoreClass="predicates.ecore#//NotPredicate"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference predicates.ecore#//NotPredicate/operand"/> + </genClasses> + <genClasses ecoreClass="predicates.ecore#//NaturePredicate"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute predicates.ecore#//NaturePredicate/nature"/> + </genClasses> + <genClasses ecoreClass="predicates.ecore#//BuilderPredicate"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute predicates.ecore#//BuilderPredicate/builder"/> + </genClasses> + </genPackages> +</genmodel:GenModel> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/modeling32.png b/plugins/org.eclipse.emf.cdo.releng.predicates/modeling32.png Binary files differindex 6b08de2ada..6b08de2ada 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/modeling32.png +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/modeling32.png diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.predicates/plugin.properties index 54d279aee2..63fbb1d409 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/plugin.properties +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/plugin.properties @@ -1,4 +1,4 @@ -# Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. +# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at @@ -7,5 +7,5 @@ # Contributors: # Eike Stepper - initial API and implementation -pluginName = CDO Release Engineering Setup IDE +pluginName = CDO Release Engineering Dynamic Working Sets providerName = Eclipse Modeling Project diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.predicates/plugin.xml new file mode 100644 index 0000000000..7439d1080b --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/plugin.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.4"?> +<!-- + Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + Eike Stepper - initial API and implementation +--> + +<plugin> + + <extension point="org.eclipse.emf.ecore.generated_package"> + <!-- @generated predicates --> + <package + uri="http://www.eclipse.org/CDO/releng/predicates/1.0" + class="org.eclipse.emf.cdo.releng.predicates.PredicatesPackage" + genModel="model/predicates.genmodel"/> + </extension> + +</plugin> diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/AndPredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/AndPredicate.java new file mode 100644 index 0000000000..2498715be5 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/AndPredicate.java @@ -0,0 +1,42 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates; + +import org.eclipse.emf.common.util.EList; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>And Predicate</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.predicates.AndPredicate#getOperands <em>Operands</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getAndPredicate() + * @model + * @generated + */ +public interface AndPredicate extends Predicate +{ + /** + * Returns the value of the '<em><b>Operands</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.predicates.Predicate}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Operands</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Operands</em>' containment reference list. + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getAndPredicate_Operands() + * @model containment="true" + * @generated + */ + EList<Predicate> getOperands(); + +} // AndPredicate diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/BuilderPredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/BuilderPredicate.java new file mode 100644 index 0000000000..06b1d7d698 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/BuilderPredicate.java @@ -0,0 +1,50 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Builder Predicate</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate#getBuilder <em>Builder</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getBuilderPredicate() + * @model + * @generated + */ +public interface BuilderPredicate extends Predicate +{ + /** + * Returns the value of the '<em><b>Builder</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Builder</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Builder</em>' attribute. + * @see #setBuilder(String) + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getBuilderPredicate_Builder() + * @model required="true" + * @generated + */ + String getBuilder(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate#getBuilder <em>Builder</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Builder</em>' attribute. + * @see #getBuilder() + * @generated + */ + void setBuilder(String value); + +} // BuilderPredicate diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/FilePredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/FilePredicate.java new file mode 100644 index 0000000000..997ad79615 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/FilePredicate.java @@ -0,0 +1,77 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>File Predicate</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate#getFilePattern <em>File Pattern</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate#getContentPattern <em>Content Pattern</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getFilePredicate() + * @model + * @generated + */ +public interface FilePredicate extends Predicate +{ + /** + * Returns the value of the '<em><b>File Pattern</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>File Pattern</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>File Pattern</em>' attribute. + * @see #setFilePattern(String) + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getFilePredicate_FilePattern() + * @model required="true" + * @generated + */ + String getFilePattern(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate#getFilePattern <em>File Pattern</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>File Pattern</em>' attribute. + * @see #getFilePattern() + * @generated + */ + void setFilePattern(String value); + + /** + * Returns the value of the '<em><b>Content Pattern</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Content Pattern</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Content Pattern</em>' attribute. + * @see #setContentPattern(String) + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getFilePredicate_ContentPattern() + * @model + * @generated + */ + String getContentPattern(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate#getContentPattern <em>Content Pattern</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Content Pattern</em>' attribute. + * @see #getContentPattern() + * @generated + */ + void setContentPattern(String value); + +} // FilePredicate diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/NamePredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NamePredicate.java index daabac1170..8f4803a362 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/NamePredicate.java +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NamePredicate.java @@ -1,14 +1,7 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation +/** */ -package org.eclipse.emf.cdo.releng.workingsets; +package org.eclipse.emf.cdo.releng.predicates; + /** * <!-- begin-user-doc --> @@ -18,11 +11,11 @@ package org.eclipse.emf.cdo.releng.workingsets; * <p> * The following features are supported: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.workingsets.NamePredicate#getPattern <em>Pattern</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.predicates.NamePredicate#getPattern <em>Pattern</em>}</li> * </ul> * </p> * - * @see org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage#getNamePredicate() + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getNamePredicate() * @model * @generated */ @@ -38,14 +31,14 @@ public interface NamePredicate extends Predicate * <!-- end-user-doc --> * @return the value of the '<em>Pattern</em>' attribute. * @see #setPattern(String) - * @see org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage#getNamePredicate_Pattern() + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getNamePredicate_Pattern() * @model required="true" * @generated */ String getPattern(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.workingsets.NamePredicate#getPattern <em>Pattern</em>}' attribute. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.NamePredicate#getPattern <em>Pattern</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Pattern</em>' attribute. diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NaturePredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NaturePredicate.java new file mode 100644 index 0000000000..cc21efc2d6 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NaturePredicate.java @@ -0,0 +1,50 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Nature Predicate</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate#getNature <em>Nature</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getNaturePredicate() + * @model + * @generated + */ +public interface NaturePredicate extends Predicate +{ + /** + * Returns the value of the '<em><b>Nature</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Nature</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Nature</em>' attribute. + * @see #setNature(String) + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getNaturePredicate_Nature() + * @model required="true" + * @generated + */ + String getNature(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate#getNature <em>Nature</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Nature</em>' attribute. + * @see #getNature() + * @generated + */ + void setNature(String value); + +} // NaturePredicate diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NotPredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NotPredicate.java new file mode 100644 index 0000000000..1888936d80 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NotPredicate.java @@ -0,0 +1,50 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates; + + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Not Predicate</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.predicates.NotPredicate#getOperand <em>Operand</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getNotPredicate() + * @model + * @generated + */ +public interface NotPredicate extends Predicate +{ + /** + * Returns the value of the '<em><b>Operand</b></em>' containment reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Operand</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Operand</em>' containment reference. + * @see #setOperand(Predicate) + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getNotPredicate_Operand() + * @model containment="true" + * @generated + */ + Predicate getOperand(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.NotPredicate#getOperand <em>Operand</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Operand</em>' containment reference. + * @see #getOperand() + * @generated + */ + void setOperand(Predicate value); + +} // NotPredicate diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/OrPredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/OrPredicate.java new file mode 100644 index 0000000000..14456d3f87 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/OrPredicate.java @@ -0,0 +1,41 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates; + +import org.eclipse.emf.common.util.EList; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Or Predicate</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.predicates.OrPredicate#getOperands <em>Operands</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getOrPredicate() + * @model + * @generated + */ +public interface OrPredicate extends Predicate +{ + /** + * Returns the value of the '<em><b>Operands</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.predicates.Predicate}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Operands</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Operands</em>' containment reference list. + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getOrPredicate_Operands() + * @model containment="true" + * @generated + */ + EList<Predicate> getOperands(); + +} // OrPredicate diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/Predicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/Predicate.java new file mode 100644 index 0000000000..e5d45cddcc --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/Predicate.java @@ -0,0 +1,29 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates; + +import org.eclipse.core.resources.IProject; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Predicate</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getPredicate() + * @model interface="true" abstract="true" + * @generated + */ +public interface Predicate extends EObject +{ + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model projectDataType="org.eclipse.emf.cdo.releng.predicates.Project" + * @generated + */ + boolean matches(IProject project); + +} // Predicate diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesFactory.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesFactory.java new file mode 100644 index 0000000000..475fa0faf3 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesFactory.java @@ -0,0 +1,106 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates; + +import org.eclipse.emf.ecore.EFactory; + +/** + * <!-- begin-user-doc --> + * The <b>Factory</b> for the model. + * It provides a create method for each non-abstract class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage + * @generated + */ +public interface PredicatesFactory extends EFactory +{ + /** + * The singleton instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + PredicatesFactory eINSTANCE = org.eclipse.emf.cdo.releng.predicates.impl.PredicatesFactoryImpl.init(); + + /** + * Returns a new object of class '<em>Name Predicate</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Name Predicate</em>'. + * @generated + */ + NamePredicate createNamePredicate(); + + /** + * Returns a new object of class '<em>Repository Predicate</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Repository Predicate</em>'. + * @generated + */ + RepositoryPredicate createRepositoryPredicate(); + + /** + * Returns a new object of class '<em>And Predicate</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>And Predicate</em>'. + * @generated + */ + AndPredicate createAndPredicate(); + + /** + * Returns a new object of class '<em>Or Predicate</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Or Predicate</em>'. + * @generated + */ + OrPredicate createOrPredicate(); + + /** + * Returns a new object of class '<em>Not Predicate</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Not Predicate</em>'. + * @generated + */ + NotPredicate createNotPredicate(); + + /** + * Returns a new object of class '<em>Nature Predicate</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Nature Predicate</em>'. + * @generated + */ + NaturePredicate createNaturePredicate(); + + /** + * Returns a new object of class '<em>Builder Predicate</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Builder Predicate</em>'. + * @generated + */ + BuilderPredicate createBuilderPredicate(); + + /** + * Returns a new object of class '<em>File Predicate</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>File Predicate</em>'. + * @generated + */ + FilePredicate createFilePredicate(); + + /** + * Returns the package supported by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the package supported by this factory. + * @generated + */ + PredicatesPackage getPredicatesPackage(); + +} //PredicatesFactory diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesPackage.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesPackage.java new file mode 100644 index 0000000000..3ca78cee5f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesPackage.java @@ -0,0 +1,903 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +/** + * <!-- begin-user-doc --> + * The <b>Package</b> for the model. + * It contains accessors for the meta objects to represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesFactory + * @model kind="package" + * @generated + */ +public interface PredicatesPackage extends EPackage +{ + /** + * The package name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNAME = "predicates"; + + /** + * The package namespace URI. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_URI = "http://www.eclipse.org/CDO/releng/predicates/1.0"; + + /** + * The package namespace name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_PREFIX = "predicates"; + + /** + * The singleton instance of the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + PredicatesPackage eINSTANCE = org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl.init(); + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.Predicate <em>Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.Predicate + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getPredicate() + * @generated + */ + int PREDICATE = 0; + + /** + * The number of structural features of the '<em>Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREDICATE_FEATURE_COUNT = 0; + + /** + * The operation id for the '<em>Matches</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREDICATE___MATCHES__IPROJECT = 0; + + /** + * The number of operations of the '<em>Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREDICATE_OPERATION_COUNT = 1; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.NamePredicateImpl <em>Name Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.impl.NamePredicateImpl + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getNamePredicate() + * @generated + */ + int NAME_PREDICATE = 1; + + /** + * The feature id for the '<em><b>Pattern</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NAME_PREDICATE__PATTERN = PREDICATE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Name Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NAME_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1; + + /** + * The operation id for the '<em>Matches</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NAME_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT; + + /** + * The number of operations of the '<em>Name Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NAME_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.RepositoryPredicateImpl <em>Repository Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.impl.RepositoryPredicateImpl + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getRepositoryPredicate() + * @generated + */ + int REPOSITORY_PREDICATE = 2; + + /** + * The feature id for the '<em><b>Project</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int REPOSITORY_PREDICATE__PROJECT = PREDICATE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Repository Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int REPOSITORY_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1; + + /** + * The operation id for the '<em>Matches</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int REPOSITORY_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT; + + /** + * The number of operations of the '<em>Repository Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int REPOSITORY_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.AndPredicateImpl <em>And Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.impl.AndPredicateImpl + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getAndPredicate() + * @generated + */ + int AND_PREDICATE = 3; + + /** + * The feature id for the '<em><b>Operands</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AND_PREDICATE__OPERANDS = PREDICATE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>And Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AND_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1; + + /** + * The operation id for the '<em>Matches</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AND_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT; + + /** + * The number of operations of the '<em>And Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AND_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.OrPredicateImpl <em>Or Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.impl.OrPredicateImpl + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getOrPredicate() + * @generated + */ + int OR_PREDICATE = 4; + + /** + * The feature id for the '<em><b>Operands</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int OR_PREDICATE__OPERANDS = PREDICATE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Or Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int OR_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1; + + /** + * The operation id for the '<em>Matches</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int OR_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT; + + /** + * The number of operations of the '<em>Or Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int OR_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.NotPredicateImpl <em>Not Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.impl.NotPredicateImpl + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getNotPredicate() + * @generated + */ + int NOT_PREDICATE = 5; + + /** + * The feature id for the '<em><b>Operand</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NOT_PREDICATE__OPERAND = PREDICATE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Not Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NOT_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1; + + /** + * The operation id for the '<em>Matches</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NOT_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT; + + /** + * The number of operations of the '<em>Not Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NOT_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.NaturePredicateImpl <em>Nature Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.impl.NaturePredicateImpl + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getNaturePredicate() + * @generated + */ + int NATURE_PREDICATE = 6; + + /** + * The feature id for the '<em><b>Nature</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NATURE_PREDICATE__NATURE = PREDICATE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Nature Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NATURE_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1; + + /** + * The operation id for the '<em>Matches</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NATURE_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT; + + /** + * The number of operations of the '<em>Nature Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NATURE_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.BuilderPredicateImpl <em>Builder Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.impl.BuilderPredicateImpl + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getBuilderPredicate() + * @generated + */ + int BUILDER_PREDICATE = 7; + + /** + * The feature id for the '<em><b>Builder</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BUILDER_PREDICATE__BUILDER = PREDICATE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Builder Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BUILDER_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1; + + /** + * The operation id for the '<em>Matches</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BUILDER_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT; + + /** + * The number of operations of the '<em>Builder Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BUILDER_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.FilePredicateImpl <em>File Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.impl.FilePredicateImpl + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getFilePredicate() + * @generated + */ + int FILE_PREDICATE = 8; + + /** + * The feature id for the '<em><b>File Pattern</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FILE_PREDICATE__FILE_PATTERN = PREDICATE_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Content Pattern</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FILE_PREDICATE__CONTENT_PATTERN = PREDICATE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>File Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FILE_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 2; + + /** + * The operation id for the '<em>Matches</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FILE_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT; + + /** + * The number of operations of the '<em>File Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FILE_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '<em>Project</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.core.resources.IProject + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getProject() + * @generated + */ + int PROJECT = 9; + + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.Predicate <em>Predicate</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Predicate</em>'. + * @see org.eclipse.emf.cdo.releng.predicates.Predicate + * @generated + */ + EClass getPredicate(); + + /** + * Returns the meta object for the '{@link org.eclipse.emf.cdo.releng.predicates.Predicate#matches(org.eclipse.core.resources.IProject) <em>Matches</em>}' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the '<em>Matches</em>' operation. + * @see org.eclipse.emf.cdo.releng.predicates.Predicate#matches(org.eclipse.core.resources.IProject) + * @generated + */ + EOperation getPredicate__Matches__IProject(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.NamePredicate <em>Name Predicate</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Name Predicate</em>'. + * @see org.eclipse.emf.cdo.releng.predicates.NamePredicate + * @generated + */ + EClass getNamePredicate(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.predicates.NamePredicate#getPattern <em>Pattern</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Pattern</em>'. + * @see org.eclipse.emf.cdo.releng.predicates.NamePredicate#getPattern() + * @see #getNamePredicate() + * @generated + */ + EAttribute getNamePredicate_Pattern(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate <em>Repository Predicate</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Repository Predicate</em>'. + * @see org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate + * @generated + */ + EClass getRepositoryPredicate(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate#getProject <em>Project</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Project</em>'. + * @see org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate#getProject() + * @see #getRepositoryPredicate() + * @generated + */ + EAttribute getRepositoryPredicate_Project(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.AndPredicate <em>And Predicate</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>And Predicate</em>'. + * @see org.eclipse.emf.cdo.releng.predicates.AndPredicate + * @generated + */ + EClass getAndPredicate(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.predicates.AndPredicate#getOperands <em>Operands</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Operands</em>'. + * @see org.eclipse.emf.cdo.releng.predicates.AndPredicate#getOperands() + * @see #getAndPredicate() + * @generated + */ + EReference getAndPredicate_Operands(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.OrPredicate <em>Or Predicate</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Or Predicate</em>'. + * @see org.eclipse.emf.cdo.releng.predicates.OrPredicate + * @generated + */ + EClass getOrPredicate(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.predicates.OrPredicate#getOperands <em>Operands</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Operands</em>'. + * @see org.eclipse.emf.cdo.releng.predicates.OrPredicate#getOperands() + * @see #getOrPredicate() + * @generated + */ + EReference getOrPredicate_Operands(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.NotPredicate <em>Not Predicate</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Not Predicate</em>'. + * @see org.eclipse.emf.cdo.releng.predicates.NotPredicate + * @generated + */ + EClass getNotPredicate(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.emf.cdo.releng.predicates.NotPredicate#getOperand <em>Operand</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Operand</em>'. + * @see org.eclipse.emf.cdo.releng.predicates.NotPredicate#getOperand() + * @see #getNotPredicate() + * @generated + */ + EReference getNotPredicate_Operand(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate <em>Nature Predicate</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Nature Predicate</em>'. + * @see org.eclipse.emf.cdo.releng.predicates.NaturePredicate + * @generated + */ + EClass getNaturePredicate(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate#getNature <em>Nature</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Nature</em>'. + * @see org.eclipse.emf.cdo.releng.predicates.NaturePredicate#getNature() + * @see #getNaturePredicate() + * @generated + */ + EAttribute getNaturePredicate_Nature(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate <em>Builder Predicate</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Builder Predicate</em>'. + * @see org.eclipse.emf.cdo.releng.predicates.BuilderPredicate + * @generated + */ + EClass getBuilderPredicate(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate#getBuilder <em>Builder</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Builder</em>'. + * @see org.eclipse.emf.cdo.releng.predicates.BuilderPredicate#getBuilder() + * @see #getBuilderPredicate() + * @generated + */ + EAttribute getBuilderPredicate_Builder(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate <em>File Predicate</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>File Predicate</em>'. + * @see org.eclipse.emf.cdo.releng.predicates.FilePredicate + * @generated + */ + EClass getFilePredicate(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate#getFilePattern <em>File Pattern</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>File Pattern</em>'. + * @see org.eclipse.emf.cdo.releng.predicates.FilePredicate#getFilePattern() + * @see #getFilePredicate() + * @generated + */ + EAttribute getFilePredicate_FilePattern(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate#getContentPattern <em>Content Pattern</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Content Pattern</em>'. + * @see org.eclipse.emf.cdo.releng.predicates.FilePredicate#getContentPattern() + * @see #getFilePredicate() + * @generated + */ + EAttribute getFilePredicate_ContentPattern(); + + /** + * Returns the meta object for data type '{@link org.eclipse.core.resources.IProject <em>Project</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for data type '<em>Project</em>'. + * @see org.eclipse.core.resources.IProject + * @model instanceClass="org.eclipse.core.resources.IProject" + * @generated + */ + EDataType getProject(); + + /** + * Returns the factory that creates the instances of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the factory that creates the instances of the model. + * @generated + */ + PredicatesFactory getPredicatesFactory(); + + /** + * <!-- begin-user-doc --> + * Defines literals for the meta objects that represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @generated + */ + interface Literals + { + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.Predicate <em>Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.Predicate + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getPredicate() + * @generated + */ + EClass PREDICATE = eINSTANCE.getPredicate(); + + /** + * The meta object literal for the '<em><b>Matches</b></em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EOperation PREDICATE___MATCHES__IPROJECT = eINSTANCE.getPredicate__Matches__IProject(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.NamePredicateImpl <em>Name Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.impl.NamePredicateImpl + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getNamePredicate() + * @generated + */ + EClass NAME_PREDICATE = eINSTANCE.getNamePredicate(); + + /** + * The meta object literal for the '<em><b>Pattern</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute NAME_PREDICATE__PATTERN = eINSTANCE.getNamePredicate_Pattern(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.RepositoryPredicateImpl <em>Repository Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.impl.RepositoryPredicateImpl + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getRepositoryPredicate() + * @generated + */ + EClass REPOSITORY_PREDICATE = eINSTANCE.getRepositoryPredicate(); + + /** + * The meta object literal for the '<em><b>Project</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute REPOSITORY_PREDICATE__PROJECT = eINSTANCE.getRepositoryPredicate_Project(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.AndPredicateImpl <em>And Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.impl.AndPredicateImpl + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getAndPredicate() + * @generated + */ + EClass AND_PREDICATE = eINSTANCE.getAndPredicate(); + + /** + * The meta object literal for the '<em><b>Operands</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference AND_PREDICATE__OPERANDS = eINSTANCE.getAndPredicate_Operands(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.OrPredicateImpl <em>Or Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.impl.OrPredicateImpl + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getOrPredicate() + * @generated + */ + EClass OR_PREDICATE = eINSTANCE.getOrPredicate(); + + /** + * The meta object literal for the '<em><b>Operands</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference OR_PREDICATE__OPERANDS = eINSTANCE.getOrPredicate_Operands(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.NotPredicateImpl <em>Not Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.impl.NotPredicateImpl + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getNotPredicate() + * @generated + */ + EClass NOT_PREDICATE = eINSTANCE.getNotPredicate(); + + /** + * The meta object literal for the '<em><b>Operand</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference NOT_PREDICATE__OPERAND = eINSTANCE.getNotPredicate_Operand(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.NaturePredicateImpl <em>Nature Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.impl.NaturePredicateImpl + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getNaturePredicate() + * @generated + */ + EClass NATURE_PREDICATE = eINSTANCE.getNaturePredicate(); + + /** + * The meta object literal for the '<em><b>Nature</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute NATURE_PREDICATE__NATURE = eINSTANCE.getNaturePredicate_Nature(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.BuilderPredicateImpl <em>Builder Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.impl.BuilderPredicateImpl + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getBuilderPredicate() + * @generated + */ + EClass BUILDER_PREDICATE = eINSTANCE.getBuilderPredicate(); + + /** + * The meta object literal for the '<em><b>Builder</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute BUILDER_PREDICATE__BUILDER = eINSTANCE.getBuilderPredicate_Builder(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.FilePredicateImpl <em>File Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.impl.FilePredicateImpl + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getFilePredicate() + * @generated + */ + EClass FILE_PREDICATE = eINSTANCE.getFilePredicate(); + + /** + * The meta object literal for the '<em><b>File Pattern</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute FILE_PREDICATE__FILE_PATTERN = eINSTANCE.getFilePredicate_FilePattern(); + + /** + * The meta object literal for the '<em><b>Content Pattern</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute FILE_PREDICATE__CONTENT_PATTERN = eINSTANCE.getFilePredicate_ContentPattern(); + + /** + * The meta object literal for the '<em>Project</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.core.resources.IProject + * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getProject() + * @generated + */ + EDataType PROJECT = eINSTANCE.getProject(); + + } + +} //PredicatesPackage diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/RepositoryPredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/RepositoryPredicate.java new file mode 100644 index 0000000000..f345e173de --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/RepositoryPredicate.java @@ -0,0 +1,51 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates; + +import org.eclipse.core.resources.IProject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Repository Predicate</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate#getProject <em>Project</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getRepositoryPredicate() + * @model + * @generated + */ +public interface RepositoryPredicate extends Predicate +{ + /** + * Returns the value of the '<em><b>Project</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Project</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Project</em>' attribute. + * @see #setProject(IProject) + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getRepositoryPredicate_Project() + * @model dataType="org.eclipse.emf.cdo.releng.predicates.Project" + * @generated + */ + IProject getProject(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate#getProject <em>Project</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Project</em>' attribute. + * @see #getProject() + * @generated + */ + void setProject(IProject value); + +} // RepositoryPredicate diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/AndPredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/AndPredicateImpl.java new file mode 100644 index 0000000000..9afc3075e7 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/AndPredicateImpl.java @@ -0,0 +1,199 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.impl; + +import org.eclipse.emf.cdo.releng.predicates.AndPredicate; +import org.eclipse.emf.cdo.releng.predicates.Predicate; +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; + +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.core.resources.IProject; + +import java.lang.reflect.InvocationTargetException; +import java.util.Collection; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>And Predicate</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.AndPredicateImpl#getOperands <em>Operands</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class AndPredicateImpl extends MinimalEObjectImpl.Container implements AndPredicate +{ + /** + * The cached value of the '{@link #getOperands() <em>Operands</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getOperands() + * @generated + * @ordered + */ + protected EList<Predicate> operands; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected AndPredicateImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return PredicatesPackage.Literals.AND_PREDICATE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<Predicate> getOperands() + { + if (operands == null) + { + operands = new EObjectContainmentEList<Predicate>(Predicate.class, this, PredicatesPackage.AND_PREDICATE__OPERANDS); + } + return operands; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public boolean matches(IProject project) + { + for (Predicate operand : getOperands()) + { + if (!operand.matches(project)) + { + return false; + } + } + return true; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case PredicatesPackage.AND_PREDICATE__OPERANDS: + return ((InternalEList<?>)getOperands()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case PredicatesPackage.AND_PREDICATE__OPERANDS: + return getOperands(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case PredicatesPackage.AND_PREDICATE__OPERANDS: + getOperands().clear(); + getOperands().addAll((Collection<? extends Predicate>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case PredicatesPackage.AND_PREDICATE__OPERANDS: + getOperands().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case PredicatesPackage.AND_PREDICATE__OPERANDS: + return operands != null && !operands.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException + { + switch (operationID) + { + case PredicatesPackage.AND_PREDICATE___MATCHES__IPROJECT: + return matches((IProject)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + +} // AndPredicateImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/BuilderPredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/BuilderPredicateImpl.java new file mode 100644 index 0000000000..a39130189b --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/BuilderPredicateImpl.java @@ -0,0 +1,227 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.impl; + +import org.eclipse.emf.cdo.releng.predicates.BuilderPredicate; +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.core.resources.ICommand; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.CoreException; + +import java.lang.reflect.InvocationTargetException; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Builder Predicate</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.BuilderPredicateImpl#getBuilder <em>Builder</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class BuilderPredicateImpl extends MinimalEObjectImpl.Container implements BuilderPredicate +{ + /** + * The default value of the '{@link #getBuilder() <em>Builder</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getBuilder() + * @generated + * @ordered + */ + protected static final String BUILDER_EDEFAULT = null; + + /** + * The cached value of the '{@link #getBuilder() <em>Builder</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getBuilder() + * @generated + * @ordered + */ + protected String builder = BUILDER_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected BuilderPredicateImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return PredicatesPackage.Literals.BUILDER_PREDICATE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getBuilder() + { + return builder; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setBuilder(String newBuilder) + { + String oldBuilder = builder; + builder = newBuilder; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.BUILDER_PREDICATE__BUILDER, oldBuilder, builder)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public boolean matches(IProject project) + { + String builder = getBuilder(); + if (builder != null) + { + try + { + for (ICommand command : project.getDescription().getBuildSpec()) + { + String name = command.getBuilderName(); + if (builder.equals(name)) + { + return true; + } + } + } + catch (CoreException ex) + { + // Ignore + } + } + return false; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case PredicatesPackage.BUILDER_PREDICATE__BUILDER: + return getBuilder(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case PredicatesPackage.BUILDER_PREDICATE__BUILDER: + setBuilder((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case PredicatesPackage.BUILDER_PREDICATE__BUILDER: + setBuilder(BUILDER_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case PredicatesPackage.BUILDER_PREDICATE__BUILDER: + return BUILDER_EDEFAULT == null ? builder != null : !BUILDER_EDEFAULT.equals(builder); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException + { + switch (operationID) + { + case PredicatesPackage.BUILDER_PREDICATE___MATCHES__IPROJECT: + return matches((IProject)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (builder: "); + result.append(builder); + result.append(')'); + return result.toString(); + } + +} // BuilderPredicateImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/FilePredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/FilePredicateImpl.java new file mode 100644 index 0000000000..4fce36e583 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/FilePredicateImpl.java @@ -0,0 +1,392 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.impl; + +import org.eclipse.emf.cdo.releng.predicates.FilePredicate; +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceVisitor; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.Status; + +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.lang.reflect.InvocationTargetException; +import java.util.regex.Pattern; +import java.util.regex.PatternSyntaxException; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>File Predicate</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.FilePredicateImpl#getFilePattern <em>File Pattern</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.FilePredicateImpl#getContentPattern <em>Content Pattern</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class FilePredicateImpl extends MinimalEObjectImpl.Container implements FilePredicate +{ + /** + * The default value of the '{@link #getFilePattern() <em>File Pattern</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFilePattern() + * @generated + * @ordered + */ + protected static final String FILE_PATTERN_EDEFAULT = null; + + /** + * The cached value of the '{@link #getFilePattern() <em>File Pattern</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFilePattern() + * @generated + * @ordered + */ + protected String filePattern = FILE_PATTERN_EDEFAULT; + + /** + * The default value of the '{@link #getContentPattern() <em>Content Pattern</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getContentPattern() + * @generated + * @ordered + */ + protected static final String CONTENT_PATTERN_EDEFAULT = null; + + /** + * The cached value of the '{@link #getContentPattern() <em>Content Pattern</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getContentPattern() + * @generated + * @ordered + */ + protected String contentPattern = CONTENT_PATTERN_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected FilePredicateImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return PredicatesPackage.Literals.FILE_PREDICATE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getFilePattern() + { + return filePattern; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setFilePattern(String newFilePattern) + { + String oldFilePattern = filePattern; + filePattern = newFilePattern; + if (eNotificationRequired()) + { + eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.FILE_PREDICATE__FILE_PATTERN, + oldFilePattern, filePattern)); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getContentPattern() + { + return contentPattern; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setContentPattern(String newContentPattern) + { + String oldContentPattern = contentPattern; + contentPattern = newContentPattern; + if (eNotificationRequired()) + { + eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.FILE_PREDICATE__CONTENT_PATTERN, + oldContentPattern, contentPattern)); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public boolean matches(IProject project) + { + String filePattern = getFilePattern(); + if (filePattern != null) + { + StringBuilder pattern = new StringBuilder(); + for (int i = 0, length = filePattern.length(); i < length; ++i) + { + char character = filePattern.charAt(i); + if (!Character.isJavaIdentifierPart(character)) + { + if (character == '*') + { + if (i + 1 < length && filePattern.charAt(i + 1) == '*') + { + ++i; + pattern.append(".*"); + } + else + { + pattern.append("[^/]*"); + } + } + else if (character == '?') + { + pattern.append("[^/]"); + } + else + { + pattern.append('\\'); + pattern.append(character); + } + } + else + { + pattern.append(character); + } + } + + try + { + final Pattern regex = Pattern.compile(pattern.toString()); + final CoreException matched = new CoreException(Status.OK_STATUS); + final Pattern contentPattern = getContentPattern() == null ? null : Pattern.compile(getContentPattern()); + try + { + project.accept(new IResourceVisitor() + { + public boolean visit(IResource resource) throws CoreException + { + String path = resource.getProjectRelativePath().toString(); + if (regex.matcher(path).matches()) + { + if (contentPattern == null) + { + throw matched; + } + + if (resource.getType() == IResource.FILE) + { + IFile file = (IFile)resource; + String charset = file.getCharset(); + InputStream inputStream = null; + try + { + inputStream = file.getContents(); + BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream); + byte[] input = new byte[bufferedInputStream.available()]; + bufferedInputStream.read(input); + String contents = charset == null ? new String(input) : new String(input, charset); + if (contentPattern.matcher(contents).find()) + { + throw matched; + } + } + catch (IOException ex) + { + // Ignore. + } + finally + { + if (inputStream != null) + { + try + { + inputStream.close(); + } + catch (IOException ex) + { + // Ignore. + } + } + } + } + } + return true; + } + }); + } + catch (CoreException ex) + { + if (ex == matched) + { + return true; + } + } + } + catch (PatternSyntaxException exception) + { + // Ignore + } + } + return false; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case PredicatesPackage.FILE_PREDICATE__FILE_PATTERN: + return getFilePattern(); + case PredicatesPackage.FILE_PREDICATE__CONTENT_PATTERN: + return getContentPattern(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case PredicatesPackage.FILE_PREDICATE__FILE_PATTERN: + setFilePattern((String)newValue); + return; + case PredicatesPackage.FILE_PREDICATE__CONTENT_PATTERN: + setContentPattern((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case PredicatesPackage.FILE_PREDICATE__FILE_PATTERN: + setFilePattern(FILE_PATTERN_EDEFAULT); + return; + case PredicatesPackage.FILE_PREDICATE__CONTENT_PATTERN: + setContentPattern(CONTENT_PATTERN_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case PredicatesPackage.FILE_PREDICATE__FILE_PATTERN: + return FILE_PATTERN_EDEFAULT == null ? filePattern != null : !FILE_PATTERN_EDEFAULT.equals(filePattern); + case PredicatesPackage.FILE_PREDICATE__CONTENT_PATTERN: + return CONTENT_PATTERN_EDEFAULT == null ? contentPattern != null : !CONTENT_PATTERN_EDEFAULT + .equals(contentPattern); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException + { + switch (operationID) + { + case PredicatesPackage.FILE_PREDICATE___MATCHES__IPROJECT: + return matches((IProject)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + { + return super.toString(); + } + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (filePattern: "); + result.append(filePattern); + result.append(", contentPattern: "); + result.append(contentPattern); + result.append(')'); + return result.toString(); + } + +} // FilePredicateImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/NamePredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NamePredicateImpl.java index b0fe91c634..9ffaa7f784 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/NamePredicateImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NamePredicateImpl.java @@ -1,17 +1,9 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation +/** */ -package org.eclipse.emf.cdo.releng.workingsets.impl; +package org.eclipse.emf.cdo.releng.predicates.impl; -import org.eclipse.emf.cdo.releng.workingsets.NamePredicate; -import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage; +import org.eclipse.emf.cdo.releng.predicates.NamePredicate; +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.util.EList; @@ -30,7 +22,7 @@ import java.lang.reflect.InvocationTargetException; * <p> * The following features are implemented: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.workingsets.impl.NamePredicateImpl#getPattern <em>Pattern</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.NamePredicateImpl#getPattern <em>Pattern</em>}</li> * </ul> * </p> * @@ -76,7 +68,7 @@ public class NamePredicateImpl extends MinimalEObjectImpl.Container implements N @Override protected EClass eStaticClass() { - return WorkingSetsPackage.Literals.NAME_PREDICATE; + return PredicatesPackage.Literals.NAME_PREDICATE; } /** @@ -99,8 +91,7 @@ public class NamePredicateImpl extends MinimalEObjectImpl.Container implements N String oldPattern = pattern; pattern = newPattern; if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, WorkingSetsPackage.NAME_PREDICATE__PATTERN, oldPattern, - pattern)); + eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.NAME_PREDICATE__PATTERN, oldPattern, pattern)); } /** @@ -123,8 +114,8 @@ public class NamePredicateImpl extends MinimalEObjectImpl.Container implements N { switch (featureID) { - case WorkingSetsPackage.NAME_PREDICATE__PATTERN: - return getPattern(); + case PredicatesPackage.NAME_PREDICATE__PATTERN: + return getPattern(); } return super.eGet(featureID, resolve, coreType); } @@ -139,9 +130,9 @@ public class NamePredicateImpl extends MinimalEObjectImpl.Container implements N { switch (featureID) { - case WorkingSetsPackage.NAME_PREDICATE__PATTERN: - setPattern((String)newValue); - return; + case PredicatesPackage.NAME_PREDICATE__PATTERN: + setPattern((String)newValue); + return; } super.eSet(featureID, newValue); } @@ -156,9 +147,9 @@ public class NamePredicateImpl extends MinimalEObjectImpl.Container implements N { switch (featureID) { - case WorkingSetsPackage.NAME_PREDICATE__PATTERN: - setPattern(PATTERN_EDEFAULT); - return; + case PredicatesPackage.NAME_PREDICATE__PATTERN: + setPattern(PATTERN_EDEFAULT); + return; } super.eUnset(featureID); } @@ -173,8 +164,8 @@ public class NamePredicateImpl extends MinimalEObjectImpl.Container implements N { switch (featureID) { - case WorkingSetsPackage.NAME_PREDICATE__PATTERN: - return PATTERN_EDEFAULT == null ? pattern != null : !PATTERN_EDEFAULT.equals(pattern); + case PredicatesPackage.NAME_PREDICATE__PATTERN: + return PATTERN_EDEFAULT == null ? pattern != null : !PATTERN_EDEFAULT.equals(pattern); } return super.eIsSet(featureID); } @@ -189,8 +180,8 @@ public class NamePredicateImpl extends MinimalEObjectImpl.Container implements N { switch (operationID) { - case WorkingSetsPackage.NAME_PREDICATE___MATCHES__IPROJECT: - return matches((IProject)arguments.get(0)); + case PredicatesPackage.NAME_PREDICATE___MATCHES__IPROJECT: + return matches((IProject)arguments.get(0)); } return super.eInvoke(operationID, arguments); } @@ -203,8 +194,7 @@ public class NamePredicateImpl extends MinimalEObjectImpl.Container implements N @Override public String toString() { - if (eIsProxy()) - return super.toString(); + if (eIsProxy()) return super.toString(); StringBuffer result = new StringBuffer(super.toString()); result.append(" (pattern: "); diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NaturePredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NaturePredicateImpl.java new file mode 100644 index 0000000000..90efa6ca20 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NaturePredicateImpl.java @@ -0,0 +1,222 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.impl; + +import org.eclipse.emf.cdo.releng.predicates.NaturePredicate; +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.CoreException; + +import java.lang.reflect.InvocationTargetException; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Nature Predicate</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.NaturePredicateImpl#getNature <em>Nature</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class NaturePredicateImpl extends MinimalEObjectImpl.Container implements NaturePredicate +{ + /** + * The default value of the '{@link #getNature() <em>Nature</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getNature() + * @generated + * @ordered + */ + protected static final String NATURE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getNature() <em>Nature</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getNature() + * @generated + * @ordered + */ + protected String nature = NATURE_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected NaturePredicateImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return PredicatesPackage.Literals.NATURE_PREDICATE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getNature() + { + return nature; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setNature(String newNature) + { + String oldNature = nature; + nature = newNature; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.NATURE_PREDICATE__NATURE, oldNature, nature)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public boolean matches(IProject project) + { + try + { + String[] natureIds = project.getDescription().getNatureIds(); + for (String natureId : natureIds) + { + if (natureId.equals(nature)) + { + return true; + } + } + } + catch (CoreException ex) + { + // Ignore + } + return false; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case PredicatesPackage.NATURE_PREDICATE__NATURE: + return getNature(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case PredicatesPackage.NATURE_PREDICATE__NATURE: + setNature((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case PredicatesPackage.NATURE_PREDICATE__NATURE: + setNature(NATURE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case PredicatesPackage.NATURE_PREDICATE__NATURE: + return NATURE_EDEFAULT == null ? nature != null : !NATURE_EDEFAULT.equals(nature); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException + { + switch (operationID) + { + case PredicatesPackage.NATURE_PREDICATE___MATCHES__IPROJECT: + return matches((IProject)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (nature: "); + result.append(nature); + result.append(')'); + return result.toString(); + } + +} // NaturePredicateImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NotPredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NotPredicateImpl.java new file mode 100644 index 0000000000..188006e1b5 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NotPredicateImpl.java @@ -0,0 +1,225 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.impl; + +import org.eclipse.emf.cdo.releng.predicates.NotPredicate; +import org.eclipse.emf.cdo.releng.predicates.Predicate; +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.core.resources.IProject; + +import java.lang.reflect.InvocationTargetException; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Not Predicate</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.NotPredicateImpl#getOperand <em>Operand</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class NotPredicateImpl extends MinimalEObjectImpl.Container implements NotPredicate +{ + /** + * The cached value of the '{@link #getOperand() <em>Operand</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getOperand() + * @generated + * @ordered + */ + protected Predicate operand; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected NotPredicateImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return PredicatesPackage.Literals.NOT_PREDICATE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Predicate getOperand() + { + return operand; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetOperand(Predicate newOperand, NotificationChain msgs) + { + Predicate oldOperand = operand; + operand = newOperand; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, PredicatesPackage.NOT_PREDICATE__OPERAND, oldOperand, newOperand); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setOperand(Predicate newOperand) + { + if (newOperand != operand) + { + NotificationChain msgs = null; + if (operand != null) + msgs = ((InternalEObject)operand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - PredicatesPackage.NOT_PREDICATE__OPERAND, null, msgs); + if (newOperand != null) + msgs = ((InternalEObject)newOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - PredicatesPackage.NOT_PREDICATE__OPERAND, null, msgs); + msgs = basicSetOperand(newOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.NOT_PREDICATE__OPERAND, newOperand, newOperand)); + } + + /** + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public boolean matches(IProject project) + { + Predicate operand = getOperand(); + return operand == null || !operand.matches(project); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case PredicatesPackage.NOT_PREDICATE__OPERAND: + return basicSetOperand(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case PredicatesPackage.NOT_PREDICATE__OPERAND: + return getOperand(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case PredicatesPackage.NOT_PREDICATE__OPERAND: + setOperand((Predicate)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case PredicatesPackage.NOT_PREDICATE__OPERAND: + setOperand((Predicate)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case PredicatesPackage.NOT_PREDICATE__OPERAND: + return operand != null; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException + { + switch (operationID) + { + case PredicatesPackage.NOT_PREDICATE___MATCHES__IPROJECT: + return matches((IProject)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + +} // NotPredicateImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/OrPredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/OrPredicateImpl.java new file mode 100644 index 0000000000..808b6dee95 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/OrPredicateImpl.java @@ -0,0 +1,199 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.impl; + +import org.eclipse.emf.cdo.releng.predicates.OrPredicate; +import org.eclipse.emf.cdo.releng.predicates.Predicate; +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; + +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.core.resources.IProject; + +import java.lang.reflect.InvocationTargetException; +import java.util.Collection; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Or Predicate</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.OrPredicateImpl#getOperands <em>Operands</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class OrPredicateImpl extends MinimalEObjectImpl.Container implements OrPredicate +{ + /** + * The cached value of the '{@link #getOperands() <em>Operands</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getOperands() + * @generated + * @ordered + */ + protected EList<Predicate> operands; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected OrPredicateImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return PredicatesPackage.Literals.OR_PREDICATE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<Predicate> getOperands() + { + if (operands == null) + { + operands = new EObjectContainmentEList<Predicate>(Predicate.class, this, PredicatesPackage.OR_PREDICATE__OPERANDS); + } + return operands; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public boolean matches(IProject project) + { + for (Predicate operand : getOperands()) + { + if (operand.matches(project)) + { + return true; + } + } + return false; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case PredicatesPackage.OR_PREDICATE__OPERANDS: + return ((InternalEList<?>)getOperands()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case PredicatesPackage.OR_PREDICATE__OPERANDS: + return getOperands(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case PredicatesPackage.OR_PREDICATE__OPERANDS: + getOperands().clear(); + getOperands().addAll((Collection<? extends Predicate>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case PredicatesPackage.OR_PREDICATE__OPERANDS: + getOperands().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case PredicatesPackage.OR_PREDICATE__OPERANDS: + return operands != null && !operands.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException + { + switch (operationID) + { + case PredicatesPackage.OR_PREDICATE___MATCHES__IPROJECT: + return matches((IProject)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + +} // OrPredicateImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesFactoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesFactoryImpl.java new file mode 100644 index 0000000000..856beb9893 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesFactoryImpl.java @@ -0,0 +1,265 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.impl; + +import org.eclipse.emf.cdo.releng.predicates.AndPredicate; +import org.eclipse.emf.cdo.releng.predicates.BuilderPredicate; +import org.eclipse.emf.cdo.releng.predicates.NamePredicate; +import org.eclipse.emf.cdo.releng.predicates.NaturePredicate; +import org.eclipse.emf.cdo.releng.predicates.NotPredicate; +import org.eclipse.emf.cdo.releng.predicates.OrPredicate; +import org.eclipse.emf.cdo.releng.predicates.PredicatesFactory; +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; +import org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.impl.EFactoryImpl; +import org.eclipse.emf.ecore.plugin.EcorePlugin; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.emf.cdo.releng.predicates.*; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Factory</b>. + * <!-- end-user-doc --> + * @generated + */ +public class PredicatesFactoryImpl extends EFactoryImpl implements PredicatesFactory +{ + private static final IWorkspaceRoot WORKSPACE_ROOT = ResourcesPlugin.getWorkspace().getRoot(); + + /** + * Creates the default factory implementation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static PredicatesFactory init() + { + try + { + PredicatesFactory thePredicatesFactory = (PredicatesFactory)EPackage.Registry.INSTANCE.getEFactory(PredicatesPackage.eNS_URI); + if (thePredicatesFactory != null) + { + return thePredicatesFactory; + } + } + catch (Exception exception) + { + EcorePlugin.INSTANCE.log(exception); + } + return new PredicatesFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PredicatesFactoryImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EObject create(EClass eClass) + { + switch (eClass.getClassifierID()) + { + case PredicatesPackage.NAME_PREDICATE: return createNamePredicate(); + case PredicatesPackage.REPOSITORY_PREDICATE: return createRepositoryPredicate(); + case PredicatesPackage.AND_PREDICATE: return createAndPredicate(); + case PredicatesPackage.OR_PREDICATE: return createOrPredicate(); + case PredicatesPackage.NOT_PREDICATE: return createNotPredicate(); + case PredicatesPackage.NATURE_PREDICATE: return createNaturePredicate(); + case PredicatesPackage.BUILDER_PREDICATE: return createBuilderPredicate(); + case PredicatesPackage.FILE_PREDICATE: return createFilePredicate(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object createFromString(EDataType eDataType, String initialValue) + { + switch (eDataType.getClassifierID()) + { + case PredicatesPackage.PROJECT: + return createProjectFromString(eDataType, initialValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String convertToString(EDataType eDataType, Object instanceValue) + { + switch (eDataType.getClassifierID()) + { + case PredicatesPackage.PROJECT: + return convertProjectToString(eDataType, instanceValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NamePredicate createNamePredicate() + { + NamePredicateImpl namePredicate = new NamePredicateImpl(); + return namePredicate; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public RepositoryPredicate createRepositoryPredicate() + { + RepositoryPredicateImpl repositoryPredicate = new RepositoryPredicateImpl(); + return repositoryPredicate; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public AndPredicate createAndPredicate() + { + AndPredicateImpl andPredicate = new AndPredicateImpl(); + return andPredicate; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public OrPredicate createOrPredicate() + { + OrPredicateImpl orPredicate = new OrPredicateImpl(); + return orPredicate; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotPredicate createNotPredicate() + { + NotPredicateImpl notPredicate = new NotPredicateImpl(); + return notPredicate; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NaturePredicate createNaturePredicate() + { + NaturePredicateImpl naturePredicate = new NaturePredicateImpl(); + return naturePredicate; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public BuilderPredicate createBuilderPredicate() + { + BuilderPredicateImpl builderPredicate = new BuilderPredicateImpl(); + return builderPredicate; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FilePredicate createFilePredicate() + { + FilePredicateImpl filePredicate = new FilePredicateImpl(); + return filePredicate; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public IProject createProjectFromString(EDataType eDataType, String initialValue) + { + if (initialValue == null) + { + return null; + } + return WORKSPACE_ROOT.getProject(initialValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public String convertProjectToString(EDataType eDataType, Object instanceValue) + { + if (instanceValue == null) + { + return null; + } + IProject project = (IProject)instanceValue; + return project.getName(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PredicatesPackage getPredicatesPackage() + { + return (PredicatesPackage)getEPackage(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @deprecated + * @generated + */ + @Deprecated + public static PredicatesPackage getPackage() + { + return PredicatesPackage.eINSTANCE; + } + +} // PredicatesFactoryImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesPackageImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesPackageImpl.java new file mode 100644 index 0000000000..ed68ffe2fc --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesPackageImpl.java @@ -0,0 +1,507 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.impl; + +import org.eclipse.core.resources.IProject; + +import org.eclipse.emf.cdo.releng.predicates.AndPredicate; +import org.eclipse.emf.cdo.releng.predicates.BuilderPredicate; +import org.eclipse.emf.cdo.releng.predicates.FilePredicate; +import org.eclipse.emf.cdo.releng.predicates.NamePredicate; +import org.eclipse.emf.cdo.releng.predicates.NaturePredicate; +import org.eclipse.emf.cdo.releng.predicates.NotPredicate; +import org.eclipse.emf.cdo.releng.predicates.OrPredicate; +import org.eclipse.emf.cdo.releng.predicates.Predicate; +import org.eclipse.emf.cdo.releng.predicates.PredicatesFactory; +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; +import org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +import org.eclipse.emf.ecore.impl.EPackageImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Package</b>. + * <!-- end-user-doc --> + * @generated + */ +public class PredicatesPackageImpl extends EPackageImpl implements PredicatesPackage +{ + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass predicateEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass namePredicateEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass repositoryPredicateEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass andPredicateEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass orPredicateEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass notPredicateEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass naturePredicateEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass builderPredicateEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass filePredicateEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EDataType projectEDataType = null; + + /** + * Creates an instance of the model <b>Package</b>, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + * <p>Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#eNS_URI + * @see #init() + * @generated + */ + private PredicatesPackageImpl() + { + super(eNS_URI, PredicatesFactory.eINSTANCE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. + * + * <p>This method is used to initialize {@link PredicatesPackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static PredicatesPackage init() + { + if (isInited) return (PredicatesPackage)EPackage.Registry.INSTANCE.getEPackage(PredicatesPackage.eNS_URI); + + // Obtain or create and register package + PredicatesPackageImpl thePredicatesPackage = (PredicatesPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof PredicatesPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new PredicatesPackageImpl()); + + isInited = true; + + // Create package meta-data objects + thePredicatesPackage.createPackageContents(); + + // Initialize created meta-data + thePredicatesPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + thePredicatesPackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(PredicatesPackage.eNS_URI, thePredicatesPackage); + return thePredicatesPackage; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getPredicate() + { + return predicateEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EOperation getPredicate__Matches__IProject() + { + return predicateEClass.getEOperations().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getNamePredicate() + { + return namePredicateEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getNamePredicate_Pattern() + { + return (EAttribute)namePredicateEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getRepositoryPredicate() + { + return repositoryPredicateEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getRepositoryPredicate_Project() + { + return (EAttribute)repositoryPredicateEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getAndPredicate() + { + return andPredicateEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getAndPredicate_Operands() + { + return (EReference)andPredicateEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getOrPredicate() + { + return orPredicateEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getOrPredicate_Operands() + { + return (EReference)orPredicateEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getNotPredicate() + { + return notPredicateEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getNotPredicate_Operand() + { + return (EReference)notPredicateEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getNaturePredicate() + { + return naturePredicateEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getNaturePredicate_Nature() + { + return (EAttribute)naturePredicateEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getBuilderPredicate() + { + return builderPredicateEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getBuilderPredicate_Builder() + { + return (EAttribute)builderPredicateEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getFilePredicate() + { + return filePredicateEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getFilePredicate_FilePattern() + { + return (EAttribute)filePredicateEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getFilePredicate_ContentPattern() + { + return (EAttribute)filePredicateEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EDataType getProject() + { + return projectEDataType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PredicatesFactory getPredicatesFactory() + { + return (PredicatesFactory)getEFactoryInstance(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createPackageContents() + { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + predicateEClass = createEClass(PREDICATE); + createEOperation(predicateEClass, PREDICATE___MATCHES__IPROJECT); + + namePredicateEClass = createEClass(NAME_PREDICATE); + createEAttribute(namePredicateEClass, NAME_PREDICATE__PATTERN); + + repositoryPredicateEClass = createEClass(REPOSITORY_PREDICATE); + createEAttribute(repositoryPredicateEClass, REPOSITORY_PREDICATE__PROJECT); + + andPredicateEClass = createEClass(AND_PREDICATE); + createEReference(andPredicateEClass, AND_PREDICATE__OPERANDS); + + orPredicateEClass = createEClass(OR_PREDICATE); + createEReference(orPredicateEClass, OR_PREDICATE__OPERANDS); + + notPredicateEClass = createEClass(NOT_PREDICATE); + createEReference(notPredicateEClass, NOT_PREDICATE__OPERAND); + + naturePredicateEClass = createEClass(NATURE_PREDICATE); + createEAttribute(naturePredicateEClass, NATURE_PREDICATE__NATURE); + + builderPredicateEClass = createEClass(BUILDER_PREDICATE); + createEAttribute(builderPredicateEClass, BUILDER_PREDICATE__BUILDER); + + filePredicateEClass = createEClass(FILE_PREDICATE); + createEAttribute(filePredicateEClass, FILE_PREDICATE__FILE_PATTERN); + createEAttribute(filePredicateEClass, FILE_PREDICATE__CONTENT_PATTERN); + + // Create data types + projectEDataType = createEDataType(PROJECT); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void initializePackageContents() + { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + namePredicateEClass.getESuperTypes().add(this.getPredicate()); + repositoryPredicateEClass.getESuperTypes().add(this.getPredicate()); + andPredicateEClass.getESuperTypes().add(this.getPredicate()); + orPredicateEClass.getESuperTypes().add(this.getPredicate()); + notPredicateEClass.getESuperTypes().add(this.getPredicate()); + naturePredicateEClass.getESuperTypes().add(this.getPredicate()); + builderPredicateEClass.getESuperTypes().add(this.getPredicate()); + filePredicateEClass.getESuperTypes().add(this.getPredicate()); + + // Initialize classes, features, and operations; add parameters + initEClass(predicateEClass, Predicate.class, "Predicate", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + EOperation op = initEOperation(getPredicate__Matches__IProject(), ecorePackage.getEBoolean(), "matches", 0, 1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getProject(), "project", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(namePredicateEClass, NamePredicate.class, "NamePredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getNamePredicate_Pattern(), ecorePackage.getEString(), "pattern", null, 1, 1, NamePredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(repositoryPredicateEClass, RepositoryPredicate.class, "RepositoryPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getRepositoryPredicate_Project(), this.getProject(), "project", null, 0, 1, RepositoryPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(andPredicateEClass, AndPredicate.class, "AndPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAndPredicate_Operands(), this.getPredicate(), null, "operands", null, 0, -1, AndPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(orPredicateEClass, OrPredicate.class, "OrPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getOrPredicate_Operands(), this.getPredicate(), null, "operands", null, 0, -1, OrPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(notPredicateEClass, NotPredicate.class, "NotPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getNotPredicate_Operand(), this.getPredicate(), null, "operand", null, 0, 1, NotPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(naturePredicateEClass, NaturePredicate.class, "NaturePredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getNaturePredicate_Nature(), ecorePackage.getEString(), "nature", null, 1, 1, NaturePredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(builderPredicateEClass, BuilderPredicate.class, "BuilderPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getBuilderPredicate_Builder(), ecorePackage.getEString(), "builder", null, 1, 1, BuilderPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(filePredicateEClass, FilePredicate.class, "FilePredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getFilePredicate_FilePattern(), ecorePackage.getEString(), "filePattern", null, 1, 1, FilePredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getFilePredicate_ContentPattern(), ecorePackage.getEString(), "contentPattern", null, 0, 1, FilePredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Initialize data types + initEDataType(projectEDataType, IProject.class, "Project", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); + + // Create resource + createResource(eNS_URI); + } + +} //PredicatesPackageImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/RepositoryPredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/RepositoryPredicateImpl.java new file mode 100644 index 0000000000..71ea579298 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/RepositoryPredicateImpl.java @@ -0,0 +1,229 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.impl; + +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; +import org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.IPath; +import org.eclipse.egit.core.GitProvider; +import org.eclipse.egit.core.project.GitProjectData; +import org.eclipse.egit.core.project.RepositoryMapping; +import org.eclipse.team.core.RepositoryProvider; + +import java.lang.reflect.InvocationTargetException; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Repository Predicate</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.RepositoryPredicateImpl#getProject <em>Project</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class RepositoryPredicateImpl extends MinimalEObjectImpl.Container implements RepositoryPredicate +{ + /** + * The default value of the '{@link #getProject() <em>Project</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getProject() + * @generated + * @ordered + */ + protected static final IProject PROJECT_EDEFAULT = null; + + /** + * The cached value of the '{@link #getProject() <em>Project</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getProject() + * @generated + * @ordered + */ + protected IProject project = PROJECT_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected RepositoryPredicateImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return PredicatesPackage.Literals.REPOSITORY_PREDICATE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IProject getProject() + { + return project; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setProject(IProject newProject) + { + IProject oldProject = project; + project = newProject; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.REPOSITORY_PREDICATE__PROJECT, oldProject, project)); + } + + private IPath getGitDirAbsolutePath(IProject project) + { + if (project != null) + { + RepositoryProvider provider = RepositoryProvider.getProvider(project); + if (provider instanceof GitProvider) + { + GitProvider gitProvider = (GitProvider)provider; + GitProjectData data = gitProvider.getData(); + RepositoryMapping repositoryMapping = data.getRepositoryMapping(project); + return repositoryMapping.getGitDirAbsolutePath(); + } + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public boolean matches(IProject project) + { + IPath prototypeGitDirAbsolutePath = getGitDirAbsolutePath(getProject()); + IPath gitDirAbsolutePath = getGitDirAbsolutePath(project); + return prototypeGitDirAbsolutePath != null && prototypeGitDirAbsolutePath.equals(gitDirAbsolutePath); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case PredicatesPackage.REPOSITORY_PREDICATE__PROJECT: + return getProject(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case PredicatesPackage.REPOSITORY_PREDICATE__PROJECT: + setProject((IProject)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case PredicatesPackage.REPOSITORY_PREDICATE__PROJECT: + setProject(PROJECT_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case PredicatesPackage.REPOSITORY_PREDICATE__PROJECT: + return PROJECT_EDEFAULT == null ? project != null : !PROJECT_EDEFAULT.equals(project); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException + { + switch (operationID) + { + case PredicatesPackage.REPOSITORY_PREDICATE___MATCHES__IPROJECT: + return matches((IProject)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (project: "); + result.append(project); + result.append(')'); + return result.toString(); + } + +} // RepositoryPredicateImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesAdapterFactory.java new file mode 100644 index 0000000000..c1e7d939f7 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesAdapterFactory.java @@ -0,0 +1,292 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.util; + +import org.eclipse.emf.cdo.releng.predicates.*; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * The <b>Adapter Factory</b> for the model. + * It provides an adapter <code>createXXX</code> method for each class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage + * @generated + */ +public class PredicatesAdapterFactory extends AdapterFactoryImpl +{ + /** + * The cached model package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static PredicatesPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PredicatesAdapterFactory() + { + if (modelPackage == null) + { + modelPackage = PredicatesPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * <!-- begin-user-doc --> + * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model. + * <!-- end-user-doc --> + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) + { + if (object == modelPackage) + { + return true; + } + if (object instanceof EObject) + { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch that delegates to the <code>createXXX</code> methods. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PredicatesSwitch<Adapter> modelSwitch = + new PredicatesSwitch<Adapter>() + { + @Override + public Adapter casePredicate(Predicate object) + { + return createPredicateAdapter(); + } + @Override + public Adapter caseNamePredicate(NamePredicate object) + { + return createNamePredicateAdapter(); + } + @Override + public Adapter caseRepositoryPredicate(RepositoryPredicate object) + { + return createRepositoryPredicateAdapter(); + } + @Override + public Adapter caseAndPredicate(AndPredicate object) + { + return createAndPredicateAdapter(); + } + @Override + public Adapter caseOrPredicate(OrPredicate object) + { + return createOrPredicateAdapter(); + } + @Override + public Adapter caseNotPredicate(NotPredicate object) + { + return createNotPredicateAdapter(); + } + @Override + public Adapter caseNaturePredicate(NaturePredicate object) + { + return createNaturePredicateAdapter(); + } + @Override + public Adapter caseBuilderPredicate(BuilderPredicate object) + { + return createBuilderPredicateAdapter(); + } + @Override + public Adapter caseFilePredicate(FilePredicate object) + { + return createFilePredicateAdapter(); + } + @Override + public Adapter defaultCase(EObject object) + { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the <code>target</code>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param target the object to adapt. + * @return the adapter for the <code>target</code>. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) + { + return modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.Predicate <em>Predicate</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.predicates.Predicate + * @generated + */ + public Adapter createPredicateAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.NamePredicate <em>Name Predicate</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.predicates.NamePredicate + * @generated + */ + public Adapter createNamePredicateAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate <em>Repository Predicate</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate + * @generated + */ + public Adapter createRepositoryPredicateAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.AndPredicate <em>And Predicate</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.predicates.AndPredicate + * @generated + */ + public Adapter createAndPredicateAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.OrPredicate <em>Or Predicate</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.predicates.OrPredicate + * @generated + */ + public Adapter createOrPredicateAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.NotPredicate <em>Not Predicate</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.predicates.NotPredicate + * @generated + */ + public Adapter createNotPredicateAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate <em>Nature Predicate</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.predicates.NaturePredicate + * @generated + */ + public Adapter createNaturePredicateAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate <em>Builder Predicate</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.predicates.BuilderPredicate + * @generated + */ + public Adapter createBuilderPredicateAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate <em>File Predicate</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.predicates.FilePredicate + * @generated + */ + public Adapter createFilePredicateAdapter() + { + return null; + } + + /** + * Creates a new adapter for the default case. + * <!-- begin-user-doc --> + * This default implementation returns null. + * <!-- end-user-doc --> + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() + { + return null; + } + +} //PredicatesAdapterFactory diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesSwitch.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesSwitch.java new file mode 100644 index 0000000000..359d1eac38 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesSwitch.java @@ -0,0 +1,311 @@ +/** + */ +package org.eclipse.emf.cdo.releng.predicates.util; + +import org.eclipse.emf.cdo.releng.predicates.*; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.util.Switch; + +/** + * <!-- begin-user-doc --> + * The <b>Switch</b> for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the <code>caseXXX</code> method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage + * @generated + */ +public class PredicatesSwitch<T> extends Switch<T> +{ + /** + * The cached model package + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static PredicatesPackage modelPackage; + + /** + * Creates an instance of the switch. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PredicatesSwitch() + { + if (modelPackage == null) + { + modelPackage = PredicatesPackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @parameter ePackage the package in question. + * @return whether this is a switch for the given package. + * @generated + */ + @Override + protected boolean isSwitchFor(EPackage ePackage) + { + return ePackage == modelPackage; + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) + { + switch (classifierID) + { + case PredicatesPackage.PREDICATE: + { + Predicate predicate = (Predicate)theEObject; + T result = casePredicate(predicate); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatesPackage.NAME_PREDICATE: + { + NamePredicate namePredicate = (NamePredicate)theEObject; + T result = caseNamePredicate(namePredicate); + if (result == null) result = casePredicate(namePredicate); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatesPackage.REPOSITORY_PREDICATE: + { + RepositoryPredicate repositoryPredicate = (RepositoryPredicate)theEObject; + T result = caseRepositoryPredicate(repositoryPredicate); + if (result == null) result = casePredicate(repositoryPredicate); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatesPackage.AND_PREDICATE: + { + AndPredicate andPredicate = (AndPredicate)theEObject; + T result = caseAndPredicate(andPredicate); + if (result == null) result = casePredicate(andPredicate); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatesPackage.OR_PREDICATE: + { + OrPredicate orPredicate = (OrPredicate)theEObject; + T result = caseOrPredicate(orPredicate); + if (result == null) result = casePredicate(orPredicate); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatesPackage.NOT_PREDICATE: + { + NotPredicate notPredicate = (NotPredicate)theEObject; + T result = caseNotPredicate(notPredicate); + if (result == null) result = casePredicate(notPredicate); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatesPackage.NATURE_PREDICATE: + { + NaturePredicate naturePredicate = (NaturePredicate)theEObject; + T result = caseNaturePredicate(naturePredicate); + if (result == null) result = casePredicate(naturePredicate); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatesPackage.BUILDER_PREDICATE: + { + BuilderPredicate builderPredicate = (BuilderPredicate)theEObject; + T result = caseBuilderPredicate(builderPredicate); + if (result == null) result = casePredicate(builderPredicate); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatesPackage.FILE_PREDICATE: + { + FilePredicate filePredicate = (FilePredicate)theEObject; + T result = caseFilePredicate(filePredicate); + if (result == null) result = casePredicate(filePredicate); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Predicate</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Predicate</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePredicate(Predicate object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Name Predicate</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Name Predicate</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNamePredicate(NamePredicate object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Repository Predicate</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Repository Predicate</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRepositoryPredicate(RepositoryPredicate object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>And Predicate</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>And Predicate</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAndPredicate(AndPredicate object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Or Predicate</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Or Predicate</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseOrPredicate(OrPredicate object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Not Predicate</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Not Predicate</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNotPredicate(NotPredicate object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Nature Predicate</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Nature Predicate</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNaturePredicate(NaturePredicate object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Builder Predicate</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Builder Predicate</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBuilderPredicate(BuilderPredicate object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>File Predicate</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>File Predicate</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFilePredicate(FilePredicate object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>EObject</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) + { + return null; + } + +} //PredicatesSwitch diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.classpath b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.classpath new file mode 100644 index 0000000000..3bc247511f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.project b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.project new file mode 100644 index 0000000000..26912e0d08 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.emf.cdo.releng.preferences.edit</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + </natures> +</projectDescription> diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000..a4a4bde1e6 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding//model/preferences.ecorediag=UTF-8 diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..b3af741094 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,405 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +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.doc.comment.support=enabled +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.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +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.includeNullInfoFromAsserts=disabled +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.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +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.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +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.unusedObjectAllocation=ignore +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.unusedTypeParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled +org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW +org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED +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=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=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true +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=false +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=120 +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=2 +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=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=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=do not 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=space +org.eclipse.jdt.core.formatter.tabulation.size=2 +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/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000000..3fc140fcdc --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,119 @@ +cleanup.add_default_serial_version_id=true +cleanup.add_generated_serial_version_id=false +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=false +cleanup.always_use_this_for_non_static_method_access=false +cleanup.convert_to_enhanced_for_loop=false +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=false +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=false +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=false +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=false +cleanup.qualify_static_method_accesses_with_declaring_class=false +cleanup.remove_private_constructors=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_parentheses_in_expressions=true +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=true +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=true +cleanup_profile=_EMFT +cleanup_settings_version=2 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +formatter_profile=_EMFT +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=ex +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.ignorelowercasenames=true +org.eclipse.jdt.ui.importorder=org.eclipse.emf.cdo;org.eclipse.emf.internal.cdo;org.eclipse.net4j;org.eclipse.internal.net4j;org.eclipse.emf;org.eclipse;com;org;javax;java; +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=false +org.eclipse.jdt.ui.ondemandthreshold=99 +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.staticondemandthreshold=99 +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" 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 * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made 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 * Eike Stepper - initial API and implementation\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 * @author Eike Stepper\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" 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">${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${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}</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> +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=false +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=false +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=false +sp_cleanup.make_parameters_final=false +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=false +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=true +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=true +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.ltk.core.refactoring.prefs new file mode 100644 index 0000000000..864e30fe5d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.ltk.core.refactoring.prefs @@ -0,0 +1,3 @@ +#Thu Feb 04 09:44:24 CET 2010 +eclipse.preferences.version=1 +org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs new file mode 100644 index 0000000000..b050639a54 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs @@ -0,0 +1,4 @@ +#Thu Feb 04 09:44:24 CET 2010 +eclipse.preferences.version=1 +project.repository.kind=bugzilla +project.repository.url=https\://bugs.eclipse.org/bugs diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.mylyn.team.ui.prefs new file mode 100644 index 0000000000..2f50f36c0c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.mylyn.team.ui.prefs @@ -0,0 +1,3 @@ +#Thu Feb 04 09:44:24 CET 2010 +commit.comment.template=[${task.id}] ${task.description} \r\n${task.url} +eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.pde.api.tools.prefs new file mode 100644 index 0000000000..0c17d59e45 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.pde.api.tools.prefs @@ -0,0 +1,95 @@ +#Thu Feb 04 09:44:24 CET 2010 +ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error +ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error +CLASS_ELEMENT_TYPE_ADDED_METHOD=Error +CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error +CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error +CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error +CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error +ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error +ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error +ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +FIELD_ELEMENT_TYPE_ADDED_VALUE=Error +FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error +FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error +FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error +FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error +ILLEGAL_EXTEND=Warning +ILLEGAL_IMPLEMENT=Warning +ILLEGAL_INSTANTIATE=Warning +ILLEGAL_OVERRIDE=Warning +ILLEGAL_REFERENCE=Warning +INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error +INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error +INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error +INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +INVALID_JAVADOC_TAG=Ignore +INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error +MISSING_EE_DESCRIPTIONS=Warning +LEAK_EXTEND=Warning +LEAK_FIELD_DECL=Warning +LEAK_IMPLEMENT=Warning +LEAK_METHOD_PARAM=Warning +LEAK_METHOD_RETURN_TYPE=Warning +METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error +METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error +UNUSED_PROBLEM_FILTERS=Ignore +automatically_removed_unused_problem_filters=Disabled +eclipse.preferences.version=1 +incompatible_api_component_version=Error +incompatible_api_component_version_include_major_without_breaking_change=Disabled +incompatible_api_component_version_include_minor_without_api_change=Disabled +invalid_since_tag_version=Error +malformed_since_tag=Error +missing_since_tag=Error +report_api_breakage_when_major_version_incremented=Disabled +report_resolution_errors_api_component=Warning diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.pde.prefs new file mode 100644 index 0000000000..fe01bb701d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.pde.prefs @@ -0,0 +1,31 @@ +#Thu Feb 04 09:44:24 CET 2010 +compilers.f.unresolved-features=1 +compilers.f.unresolved-plugins=1 +compilers.incompatible-environment=1 +compilers.p.build=1 +compilers.p.build.bin.includes=1 +compilers.p.build.java.compliance=1 +compilers.p.build.missing.output=2 +compilers.p.build.output.library=1 +compilers.p.build.source.library=1 +compilers.p.build.src.includes=1 +compilers.p.deprecated=2 +compilers.p.discouraged-class=1 +compilers.p.internal=1 +compilers.p.missing-packages=1 +compilers.p.missing-version-export-package=1 +compilers.p.missing-version-import-package=1 +compilers.p.missing-version-require-bundle=1 +compilers.p.no-required-att=0 +compilers.p.not-externalized-att=2 +compilers.p.unknown-attribute=1 +compilers.p.unknown-class=1 +compilers.p.unknown-element=1 +compilers.p.unknown-identifier=1 +compilers.p.unknown-resource=1 +compilers.p.unresolved-ex-points=0 +compilers.p.unresolved-import=0 +compilers.s.create-docs=false +compilers.s.doc-folder=doc +compilers.s.open-tags=1 +eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..02c8a05c89 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/META-INF/MANIFEST.MF @@ -0,0 +1,15 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: org.eclipse.emf.cdo.releng.preferences.edit;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: . +Bundle-Activator: org.eclipse.emf.cdo.releng.preferences.provider.PreferencesEditPlugin$Implementation +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.eclipse.emf.cdo.releng.preferences.provider +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.emf.cdo.releng.preferences;visibility:=reexport, + org.eclipse.emf.edit;visibility:=reexport +Bundle-ActivationPolicy: lazy diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/build.properties b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/build.properties new file mode 100644 index 0000000000..6e3e902e80 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/build.properties @@ -0,0 +1,10 @@ +# + +bin.includes = .,\ + icons/,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = . +source.. = src/ +output.. = bin/ diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/icons/full/obj16/PreferenceNode.gif b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/icons/full/obj16/PreferenceNode.gif Binary files differnew file mode 100644 index 0000000000..e8cb49fb5f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/icons/full/obj16/PreferenceNode.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/icons/full/obj16/Property.gif b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/icons/full/obj16/Property.gif Binary files differnew file mode 100644 index 0000000000..99b7fa68d9 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/icons/full/obj16/Property.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/plugin.properties new file mode 100644 index 0000000000..8ca07b08ce --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/plugin.properties @@ -0,0 +1,30 @@ +# + +pluginName = Preferences Edit Support +providerName = www.example.org + +_UI_CreateChild_text = {0} +_UI_CreateChild_text2 = {1} {0} +_UI_CreateChild_text3 = {1} +_UI_CreateChild_tooltip = Create New {0} Under {1} Feature +_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}. +_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent. + +_UI_PropertyDescriptor_description = The {0} of the {1} + +_UI_PreferenceNode_type = Preference Node +_UI_Property_type = Property +_UI_Unknown_type = Object + +_UI_Unknown_datatype= Value + +_UI_PreferenceNode_children_feature = Children +_UI_PreferenceNode_parent_feature = Parent +_UI_PreferenceNode_properties_feature = Properties +_UI_PreferenceNode_name_feature = Name +_UI_Property_name_feature = Name +_UI_Property_parent_feature = Parent +_UI_Property_value_feature = Value +_UI_Unknown_feature = Unspecified + +_UI_PreferenceNode_location_feature = Location diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/plugin.xml new file mode 100644 index 0000000000..0550154313 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/plugin.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> + +<!-- +--> + +<plugin> + + <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories"> + <!-- @generated preferences --> + <factory + uri="http://www.eclipse.org/CDO/releng/preferences/1.0" + class="org.eclipse.emf.cdo.releng.preferences.provider.PreferencesItemProviderAdapterFactory" + supportedTypes= + "org.eclipse.emf.edit.provider.IEditingDomainItemProvider + org.eclipse.emf.edit.provider.IStructuredItemContentProvider + org.eclipse.emf.edit.provider.ITreeItemContentProvider + org.eclipse.emf.edit.provider.IItemLabelProvider + org.eclipse.emf.edit.provider.IItemPropertySource"/> + </extension> + +</plugin> diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferenceNodeItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferenceNodeItemProvider.java new file mode 100644 index 0000000000..290ddc5e91 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferenceNodeItemProvider.java @@ -0,0 +1,243 @@ +/** + */ +package org.eclipse.emf.cdo.releng.preferences.provider; + +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; +import org.eclipse.emf.cdo.releng.preferences.PreferencesFactory; +import org.eclipse.emf.cdo.releng.preferences.PreferencesPackage; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import java.util.Collection; +import java.util.List; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class PreferenceNodeItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferenceNodeItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + addNamePropertyDescriptor(object); + addLocationPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Name feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addNamePropertyDescriptor(Object object) + { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_PreferenceNode_name_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_PreferenceNode_name_feature", "_UI_PreferenceNode_type"), + PreferencesPackage.Literals.PREFERENCE_NODE__NAME, + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Location feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addLocationPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_PreferenceNode_location_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_PreferenceNode_location_feature", "_UI_PreferenceNode_type"), + PreferencesPackage.Literals.PREFERENCE_NODE__LOCATION, + false, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) + { + if (childrenFeatures == null) + { + super.getChildrenFeatures(object); + childrenFeatures.add(PreferencesPackage.Literals.PREFERENCE_NODE__CHILDREN); + childrenFeatures.add(PreferencesPackage.Literals.PREFERENCE_NODE__PROPERTIES); + } + return childrenFeatures; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EStructuralFeature getChildFeature(Object object, Object child) + { + // Check the type of the specified child object and return the proper feature to use for + // adding (see {@link AddCommand}) it as a child. + + return super.getChildFeature(object, child); + } + + /** + * This returns PreferenceNode.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PreferenceNode")); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() + { + return true; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) + { + String label = ((PreferenceNode)object).getName(); + return label == null ? "" : label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(PreferenceNode.class)) + { + case PreferencesPackage.PREFERENCE_NODE__NAME: + case PreferencesPackage.PREFERENCE_NODE__LOCATION: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case PreferencesPackage.PREFERENCE_NODE__CHILDREN: + case PreferencesPackage.PREFERENCE_NODE__PROPERTIES: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add + (createChildParameter + (PreferencesPackage.Literals.PREFERENCE_NODE__CHILDREN, + PreferencesFactory.eINSTANCE.createPreferenceNode())); + + newChildDescriptors.add + (createChildParameter + (PreferencesPackage.Literals.PREFERENCE_NODE__PROPERTIES, + PreferencesFactory.eINSTANCE.createProperty())); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() + { + return PreferencesEditPlugin.INSTANCE; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferencesEditPlugin.java b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferencesEditPlugin.java new file mode 100644 index 0000000000..1c27a3f555 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferencesEditPlugin.java @@ -0,0 +1,96 @@ +/** + */ +package org.eclipse.emf.cdo.releng.preferences.provider; + +import org.eclipse.emf.common.EMFPlugin; + +import org.eclipse.emf.common.util.ResourceLocator; + +/** + * This is the central singleton for the Preferences edit plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public final class PreferencesEditPlugin extends EMFPlugin +{ + /** + * Keep track of the singleton. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final PreferencesEditPlugin INSTANCE = new PreferencesEditPlugin(); + + /** + * Keep track of the singleton. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static Implementation plugin; + + /** + * Create the instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferencesEditPlugin() + { + super + (new ResourceLocator [] + { + }); + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the singleton instance. + * @generated + */ + @Override + public ResourceLocator getPluginResourceLocator() + { + return plugin; + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the singleton instance. + * @generated + */ + public static Implementation getPlugin() + { + return plugin; + } + + /** + * The actual implementation of the Eclipse <b>Plugin</b>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static class Implementation extends EclipsePlugin + { + /** + * Creates an instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Implementation() + { + super(); + + // Remember the static instance. + // + plugin = this; + } + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferencesItemProviderAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferencesItemProviderAdapterFactory.java new file mode 100644 index 0000000000..86a86d9a2b --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferencesItemProviderAdapterFactory.java @@ -0,0 +1,241 @@ +/** + */ +package org.eclipse.emf.cdo.releng.preferences.provider; + +import java.util.ArrayList; +import java.util.Collection; + +import org.eclipse.emf.cdo.releng.preferences.util.PreferencesAdapterFactory; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.edit.provider.ChangeNotifier; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.ComposedAdapterFactory; +import org.eclipse.emf.edit.provider.IChangeNotifier; +import org.eclipse.emf.edit.provider.IDisposable; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.INotifyChangedListener; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; + +/** + * This is the factory that is used to provide the interfaces needed to support Viewers. + * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}. + * The adapters also support Eclipse property sheets. + * Note that most of the adapters are shared among multiple instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class PreferencesItemProviderAdapterFactory extends PreferencesAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable +{ + /** + * This keeps track of the root adapter factory that delegates to this adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ComposedAdapterFactory parentAdapterFactory; + + /** + * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IChangeNotifier changeNotifier = new ChangeNotifier(); + + /** + * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<Object> supportedTypes = new ArrayList<Object>(); + + /** + * This constructs an instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferencesItemProviderAdapterFactory() + { + supportedTypes.add(IEditingDomainItemProvider.class); + supportedTypes.add(IStructuredItemContentProvider.class); + supportedTypes.add(ITreeItemContentProvider.class); + supportedTypes.add(IItemLabelProvider.class); + supportedTypes.add(IItemPropertySource.class); + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PreferenceNodeItemProvider preferenceNodeItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createPreferenceNodeAdapter() + { + if (preferenceNodeItemProvider == null) + { + preferenceNodeItemProvider = new PreferenceNodeItemProvider(this); + } + + return preferenceNodeItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.preferences.Property} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PropertyItemProvider propertyItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.preferences.Property}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createPropertyAdapter() + { + if (propertyItemProvider == null) + { + propertyItemProvider = new PropertyItemProvider(this); + } + + return propertyItemProvider; + } + + /** + * This returns the root adapter factory that contains this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ComposeableAdapterFactory getRootAdapterFactory() + { + return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory(); + } + + /** + * This sets the composed adapter factory that contains this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) + { + this.parentAdapterFactory = parentAdapterFactory; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isFactoryForType(Object type) + { + return supportedTypes.contains(type) || super.isFactoryForType(type); + } + + /** + * This implementation substitutes the factory itself as the key for the adapter. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter adapt(Notifier notifier, Object type) + { + return super.adapt(notifier, this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object adapt(Object object, Object type) + { + if (isFactoryForType(type)) + { + Object adapter = super.adapt(object, type); + if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) + { + return adapter; + } + } + + return null; + } + + /** + * This adds a listener. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void addListener(INotifyChangedListener notifyChangedListener) + { + changeNotifier.addListener(notifyChangedListener); + } + + /** + * This removes a listener. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void removeListener(INotifyChangedListener notifyChangedListener) + { + changeNotifier.removeListener(notifyChangedListener); + } + + /** + * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void fireNotifyChanged(Notification notification) + { + changeNotifier.fireNotifyChanged(notification); + + if (parentAdapterFactory != null) + { + parentAdapterFactory.fireNotifyChanged(notification); + } + } + + /** + * This disposes all of the item providers created by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void dispose() + { + if (preferenceNodeItemProvider != null) preferenceNodeItemProvider.dispose(); + if (propertyItemProvider != null) propertyItemProvider.dispose(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PropertyItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PropertyItemProvider.java new file mode 100644 index 0000000000..062549536f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PropertyItemProvider.java @@ -0,0 +1,194 @@ +/** + */ +package org.eclipse.emf.cdo.releng.preferences.provider; + +import org.eclipse.emf.cdo.releng.preferences.PreferencesPackage; +import org.eclipse.emf.cdo.releng.preferences.Property; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import java.util.Collection; +import java.util.List; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.preferences.Property} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class PropertyItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PropertyItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + addNamePropertyDescriptor(object); + addValuePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Name feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addNamePropertyDescriptor(Object object) + { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Property_name_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Property_name_feature", "_UI_Property_type"), + PreferencesPackage.Literals.PROPERTY__NAME, + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Value feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addValuePropertyDescriptor(Object object) + { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Property_value_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Property_value_feature", "_UI_Property_type"), + PreferencesPackage.Literals.PROPERTY__VALUE, + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns Property.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Property")); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() + { + return true; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) + { + String name = ((Property)object).getName(); + String value = ((Property)object).getValue(); + return (name == null ? "" : name) + (value == null ? "" : "=" + crop(value)); + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(Property.class)) + { + case PreferencesPackage.PROPERTY__NAME: + case PreferencesPackage.PROPERTY__VALUE: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() + { + return PreferencesEditPlugin.INSTANCE; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.classpath b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.classpath new file mode 100644 index 0000000000..3bc247511f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.project b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.project new file mode 100644 index 0000000000..2eadbeae48 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.emf.cdo.releng.preferences.editor</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + </natures> +</projectDescription> diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000..a4a4bde1e6 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding//model/preferences.ecorediag=UTF-8 diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.jdt.core.prefs index 48aafaf7ea..48aafaf7ea 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.jdt.core.prefs diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000000..3fc140fcdc --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,119 @@ +cleanup.add_default_serial_version_id=true +cleanup.add_generated_serial_version_id=false +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=false +cleanup.always_use_this_for_non_static_method_access=false +cleanup.convert_to_enhanced_for_loop=false +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=false +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=false +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=false +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=false +cleanup.qualify_static_method_accesses_with_declaring_class=false +cleanup.remove_private_constructors=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_parentheses_in_expressions=true +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=true +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=true +cleanup_profile=_EMFT +cleanup_settings_version=2 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +formatter_profile=_EMFT +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=ex +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.ignorelowercasenames=true +org.eclipse.jdt.ui.importorder=org.eclipse.emf.cdo;org.eclipse.emf.internal.cdo;org.eclipse.net4j;org.eclipse.internal.net4j;org.eclipse.emf;org.eclipse;com;org;javax;java; +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=false +org.eclipse.jdt.ui.ondemandthreshold=99 +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.staticondemandthreshold=99 +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" 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 * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made 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 * Eike Stepper - initial API and implementation\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 * @author Eike Stepper\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" 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">${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${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}</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> +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=false +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=false +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=false +sp_cleanup.make_parameters_final=false +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=false +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=true +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=true +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.ltk.core.refactoring.prefs new file mode 100644 index 0000000000..864e30fe5d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.ltk.core.refactoring.prefs @@ -0,0 +1,3 @@ +#Thu Feb 04 09:44:24 CET 2010 +eclipse.preferences.version=1 +org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.mylyn.tasks.ui.prefs new file mode 100644 index 0000000000..b050639a54 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.mylyn.tasks.ui.prefs @@ -0,0 +1,4 @@ +#Thu Feb 04 09:44:24 CET 2010 +eclipse.preferences.version=1 +project.repository.kind=bugzilla +project.repository.url=https\://bugs.eclipse.org/bugs diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.mylyn.team.ui.prefs new file mode 100644 index 0000000000..2f50f36c0c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.mylyn.team.ui.prefs @@ -0,0 +1,3 @@ +#Thu Feb 04 09:44:24 CET 2010 +commit.comment.template=[${task.id}] ${task.description} \r\n${task.url} +eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.pde.api.tools.prefs new file mode 100644 index 0000000000..0c17d59e45 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.pde.api.tools.prefs @@ -0,0 +1,95 @@ +#Thu Feb 04 09:44:24 CET 2010 +ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error +ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error +CLASS_ELEMENT_TYPE_ADDED_METHOD=Error +CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error +CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error +CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error +CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error +ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error +ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error +ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +FIELD_ELEMENT_TYPE_ADDED_VALUE=Error +FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error +FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error +FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error +FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error +ILLEGAL_EXTEND=Warning +ILLEGAL_IMPLEMENT=Warning +ILLEGAL_INSTANTIATE=Warning +ILLEGAL_OVERRIDE=Warning +ILLEGAL_REFERENCE=Warning +INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error +INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error +INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error +INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +INVALID_JAVADOC_TAG=Ignore +INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error +MISSING_EE_DESCRIPTIONS=Warning +LEAK_EXTEND=Warning +LEAK_FIELD_DECL=Warning +LEAK_IMPLEMENT=Warning +LEAK_METHOD_PARAM=Warning +LEAK_METHOD_RETURN_TYPE=Warning +METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error +METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error +UNUSED_PROBLEM_FILTERS=Ignore +automatically_removed_unused_problem_filters=Disabled +eclipse.preferences.version=1 +incompatible_api_component_version=Error +incompatible_api_component_version_include_major_without_breaking_change=Disabled +incompatible_api_component_version_include_minor_without_api_change=Disabled +invalid_since_tag_version=Error +malformed_since_tag=Error +missing_since_tag=Error +report_api_breakage_when_major_version_incremented=Disabled +report_resolution_errors_api_component=Warning diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.pde.prefs new file mode 100644 index 0000000000..fe01bb701d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.pde.prefs @@ -0,0 +1,31 @@ +#Thu Feb 04 09:44:24 CET 2010 +compilers.f.unresolved-features=1 +compilers.f.unresolved-plugins=1 +compilers.incompatible-environment=1 +compilers.p.build=1 +compilers.p.build.bin.includes=1 +compilers.p.build.java.compliance=1 +compilers.p.build.missing.output=2 +compilers.p.build.output.library=1 +compilers.p.build.source.library=1 +compilers.p.build.src.includes=1 +compilers.p.deprecated=2 +compilers.p.discouraged-class=1 +compilers.p.internal=1 +compilers.p.missing-packages=1 +compilers.p.missing-version-export-package=1 +compilers.p.missing-version-import-package=1 +compilers.p.missing-version-require-bundle=1 +compilers.p.no-required-att=0 +compilers.p.not-externalized-att=2 +compilers.p.unknown-attribute=1 +compilers.p.unknown-class=1 +compilers.p.unknown-element=1 +compilers.p.unknown-identifier=1 +compilers.p.unknown-resource=1 +compilers.p.unresolved-ex-points=0 +compilers.p.unresolved-import=0 +compilers.s.create-docs=false +compilers.s.doc-folder=doc +compilers.s.open-tags=1 +eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..09f2ecf960 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/META-INF/MANIFEST.MF @@ -0,0 +1,20 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: org.eclipse.emf.cdo.releng.preferences.editor;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: . +Bundle-Activator: org.eclipse.emf.cdo.releng.preferences.presentation.PreferencesEditorPlugin$Implementation +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.eclipse.emf.cdo.releng.preferences.action, + org.eclipse.emf.cdo.releng.preferences.presentation +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.core.resources;visibility:=reexport, + org.eclipse.emf.cdo.releng.preferences.edit;visibility:=reexport, + org.eclipse.emf.ecore.xmi;visibility:=reexport, + org.eclipse.emf.edit.ui;visibility:=reexport, + org.eclipse.ui.ide;visibility:=reexport, + org.eclipse.core.filesystem +Bundle-ActivationPolicy: lazy diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/build.properties b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/build.properties new file mode 100644 index 0000000000..5fb07711cf --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/build.properties @@ -0,0 +1,10 @@ +# + +bin.includes = .,\ + icons/,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = . +source.. = src/ +output.. = bin diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/icons/full/obj16/PreferencesModelFile.gif b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/icons/full/obj16/PreferencesModelFile.gif Binary files differnew file mode 100644 index 0000000000..e8cb49fb5f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/icons/full/obj16/PreferencesModelFile.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/icons/full/wizban/NewPreferences.gif b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/icons/full/wizban/NewPreferences.gif Binary files differnew file mode 100644 index 0000000000..0ed73ab4fd --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/icons/full/wizban/NewPreferences.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/plugin.properties new file mode 100644 index 0000000000..d5012d3ed8 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/plugin.properties @@ -0,0 +1,53 @@ +# + +pluginName = Preferences Editor +providerName = www.example.org + +_UI_PreferencesEditor_menu = &Preferences Editor + +_UI_CreateChild_menu_item = &New Child +_UI_CreateSibling_menu_item = N&ew Sibling + +_UI_ShowPropertiesView_menu_item = Show &Properties View +_UI_RefreshViewer_menu_item = &Refresh + +_UI_SelectionPage_label = Selection +_UI_ParentPage_label = Parent +_UI_ListPage_label = List +_UI_TreePage_label = Tree +_UI_TablePage_label = Table +_UI_TreeWithColumnsPage_label = Tree with Columns +_UI_ObjectColumn_label = Object +_UI_SelfColumn_label = Self + +_UI_NoObjectSelected = Selected Nothing +_UI_SingleObjectSelected = Selected Object: {0} +_UI_MultiObjectSelected = Selected {0} Objects + +_UI_OpenEditorError_label = Open Editor + +_UI_Wizard_category = Release Engineering + +_UI_CreateModelError_message = Problems encountered in file "{0}" + +_UI_PreferencesModelWizard_label = Preferences Model +_UI_PreferencesModelWizard_description = Create a new Preferences model + +_UI_PreferencesEditor_label = Preferences Model Editor + +_UI_PreferencesEditorFilenameDefaultBase = My +_UI_PreferencesEditorFilenameExtensions = preferences + +_UI_Wizard_label = New + +_WARN_FilenameExtension = The file name must end in ''.{0}'' +_WARN_FilenameExtensions = The file name must have one of the following extensions: {0} + +_UI_ModelObject = &Model Object +_UI_XMLEncoding = &XML Encoding +_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1 +_UI_Wizard_initial_object_description = Select a model object to create + +_UI_FileConflict_label = File Conflict +_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes? + diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/plugin.xml new file mode 100644 index 0000000000..b36238842f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/plugin.xml @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> + +<!-- +--> + +<plugin> + + <extension + point="org.eclipse.ui.preferencePages"> + <page + category="org.eclipse.emf.cdo.releng.ui.preferences.RelengPreferencePage" + class="org.eclipse.emf.cdo.releng.preferences.presentation.AllPreferencesPreferencePage" + id="org.eclipse.emf.cdo.releng.preferences.presentation.AllPreferencesPreferencePage" + name="All Preferences"> + </page> + </extension> + + <extension point="org.eclipse.ui.newWizards"> + <!-- @generated preferences --> + <category + id="org.eclipse.emf.ecore.Wizard.category.ID" + name="%_UI_Wizard_category"/> + <category + id="org.eclipse.emf.cdo.releng" + name="%_UI_Wizard_category"/> + <wizard + id="org.eclipse.emf.cdo.releng.preferences.presentation.PreferencesModelWizardID" + name="%_UI_PreferencesModelWizard_label" + class="org.eclipse.emf.cdo.releng.preferences.presentation.PreferencesModelWizard" + category="org.eclipse.emf.cdo.releng" + icon="icons/full/obj16/PreferencesModelFile.gif"> + <description>%_UI_PreferencesModelWizard_description</description> + <selection class="org.eclipse.core.resources.IResource"/> + </wizard> + </extension> + + <extension point="org.eclipse.ui.editors"> + <!-- @generated preferences --> + <editor + id="org.eclipse.emf.cdo.releng.preferences.presentation.PreferencesEditorID" + name="%_UI_PreferencesEditor_label" + icon="icons/full/obj16/PreferencesModelFile.gif" + extensions="preferences" + class="org.eclipse.emf.cdo.releng.preferences.presentation.PreferencesEditor" + contributorClass="org.eclipse.emf.cdo.releng.preferences.presentation.PreferencesActionBarContributor"> + </editor> + </extension> + + + <extension point="org.eclipse.ui.popupMenus"> + <objectContribution + id="org.eclipse.emf.cdo.releng.preferences.action.OpenEditor" + objectClass="org.eclipse.emf.cdo.releng.preferences.PreferenceNode"> + <action + id="org.eclipse.emf.cdo.releng.preferences.action.OpenEditorAction" + label="Open Editor" + menubarPath="additions" + class="org.eclipse.emf.cdo.releng.preferences.action.OpenEditorAction" + enablesFor="1"/> + </objectContribution> + </extension> + + <extension point="org.eclipse.ui.popupMenus"> + <objectContribution + id="org.eclipse.emf.cdo.releng.preferences.action.ShowInExplorer" + objectClass="org.eclipse.emf.cdo.releng.preferences.PreferenceNode"> + <action + id="org.eclipse.emf.cdo.releng.preferences.action.ShowInExplorerAction" + label="Show in Package Explorer" + menubarPath="additions" + class="org.eclipse.emf.cdo.releng.preferences.action.ShowInExplorerAction" + enablesFor="1"/> + </objectContribution> + </extension> + +</plugin> diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/action/OpenEditorAction.java b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/action/OpenEditorAction.java new file mode 100644 index 0000000000..48d0e9a14a --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/action/OpenEditorAction.java @@ -0,0 +1,89 @@ +/** + * Copyright (c) 2002-2006 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - Initial API and implementation + */ +package org.eclipse.emf.cdo.releng.preferences.action; + +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; + +import org.eclipse.core.filesystem.EFS; +import org.eclipse.core.filesystem.IFileStore; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.actions.ActionDelegate; +import org.eclipse.ui.ide.IDE; + +import java.io.File; +import java.net.URI; + +public class OpenEditorAction extends ActionDelegate +{ + protected String path; + + public OpenEditorAction() + { + super(); + } + + @Override + public void run(IAction action) + { + IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); + IWorkbenchPage page = workbenchWindow.getActivePage(); + + // Open an editor on the new file. + // + try + { + File file = new File(path); + URI uri = file.toURI(); + + IFile[] files = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocationURI(uri); + if (files.length > 0) + { + IDE.openEditor(page, files[0]); + } + else + { + IFileStore fileStore = EFS.getStore(uri); + IDE.openEditorOnFileStore(page, fileStore); + } + } + catch (Exception exception) + { + MessageDialog.openError(workbenchWindow.getShell(), "Open Editor", exception.getMessage()); + } + } + + @Override + public void selectionChanged(IAction action, ISelection selection) + { + if (selection instanceof IStructuredSelection) + { + Object object = ((IStructuredSelection)selection).getFirstElement(); + if (object instanceof PreferenceNode) + { + path = ((PreferenceNode)object).getLocation(); + + action.setEnabled(path != null); + + return; + } + } + path = null; + action.setEnabled(false); + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/action/ShowInExplorerAction.java b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/action/ShowInExplorerAction.java new file mode 100644 index 0000000000..c475e98cee --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/action/ShowInExplorerAction.java @@ -0,0 +1,121 @@ +/** + * Copyright (c) 2002-2006 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM - Initial API and implementation + */ +package org.eclipse.emf.cdo.releng.preferences.action; + +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; +import org.eclipse.emf.cdo.releng.preferences.presentation.PreferencesEditorPlugin; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.ui.IViewPart; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.actions.ActionDelegate; +import org.eclipse.ui.part.IShowInTarget; +import org.eclipse.ui.part.ShowInContext; + +import java.io.File; +import java.net.URI; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class ShowInExplorerAction extends ActionDelegate +{ + private static final IWorkspaceRoot WORKSPACE_ROOT = ResourcesPlugin.getWorkspace().getRoot(); + + protected ISelection targetSelection; + + public ShowInExplorerAction() + { + super(); + } + + @Override + public void run(IAction action) + { + IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); + IWorkbenchPage page = workbenchWindow.getActivePage(); + try + { + IViewPart packageExplorerView = page.showView("org.eclipse.jdt.ui.PackageExplorer"); + IShowInTarget showInTarget = (IShowInTarget)packageExplorerView.getAdapter(IShowInTarget.class); + showInTarget.show(new ShowInContext(null, targetSelection)); + } + catch (PartInitException ex) + { + PreferencesEditorPlugin.INSTANCE.log(ex); + } + } + + @Override + public void selectionChanged(IAction action, ISelection selection) + { + if (selection instanceof IStructuredSelection) + { + List<IResource> resources = new ArrayList<IResource>(); + for (Object object : ((IStructuredSelection)selection).toArray()) + { + if (object instanceof PreferenceNode) + { + PreferenceNode preferenceNode = (PreferenceNode)object; + String path = preferenceNode.getLocation(); + + if (path != null) + { + File file = new File(path); + URI uri = file.toURI(); + + IFile[] files = WORKSPACE_ROOT.findFilesForLocationURI(uri); + if (files.length > 0) + { + resources.addAll(Arrays.asList(files)); + } + } + else + { + PreferenceNode parent = preferenceNode.getParent(); + if (parent != null && "project".equals(parent.getName())) + { + PreferenceNode grandParent = parent.getParent(); + if (grandParent != null && "".equals(grandParent.getName())) + { + IProject project = WORKSPACE_ROOT.getProject(preferenceNode.getName()); + if (project.isAccessible()) + { + resources.add(project); + } + } + } + } + } + } + if (!resources.isEmpty()) + { + targetSelection = new StructuredSelection(resources); + action.setEnabled(true); + return; + } + } + + targetSelection = null; + action.setEnabled(false); + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/AllPreferencesPreferencePage.java b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/AllPreferencesPreferencePage.java new file mode 100644 index 0000000000..b7d14eeee5 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/AllPreferencesPreferencePage.java @@ -0,0 +1,150 @@ +/* + * Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.preferences.presentation; + +import org.eclipse.emf.cdo.releng.preferences.provider.PreferencesItemProviderAdapterFactory; +import org.eclipse.emf.cdo.releng.preferences.util.PreferencesUtil; + +import org.eclipse.emf.common.ui.URIEditorInput; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; + +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.preference.IPreferencePageContainer; +import org.eclipse.jface.preference.PreferencePage; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IPageLayout; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchPreferencePage; +import org.eclipse.ui.IWorkbenchWindow; + +import java.lang.reflect.Method; + +/** + * @author Eike Stepper + */ +public class AllPreferencesPreferencePage extends PreferencePage implements IWorkbenchPreferencePage +{ + private IWorkbench workbench; + + public AllPreferencesPreferencePage() + { + super("<taken from plugin.xml>"); + setDescription("Manage all preferences:"); + noDefaultAndApplyButton(); + } + + public void init(IWorkbench workbench) + { + this.workbench = workbench; + } + + @Override + protected Control createContents(Composite parent) + { + GridLayout layout = new GridLayout(); + layout.marginWidth = 0; + layout.marginHeight = 0; + layout.numColumns = 1; + + Composite composite = new Composite(parent, SWT.NONE); + composite.setLayout(layout); + + TreeViewer treeViewer = new TreeViewer(composite); + PreferencesItemProviderAdapterFactory adapterFactory = new PreferencesItemProviderAdapterFactory(); + treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + treeViewer.setInput(PreferencesUtil.getRootPreferenceNode()); + treeViewer.getControl().setLayoutData( + new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL)); + + return composite; + } + + @Override + protected void contributeButtons(Composite parent) + { + super.contributeButtons(parent); + + GridLayout gridLayout = (GridLayout)parent.getLayout(); + gridLayout.numColumns = 1; + + Button editButton = new Button(parent, SWT.PUSH); + editButton.setText("Edit..."); + + Dialog.applyDialogFont(editButton); + int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH); + Point minButtonSize = editButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true); + GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL); + data.widthHint = Math.max(widthHint, minButtonSize.x); + + editButton.setLayoutData(data); + editButton.addSelectionListener(new SelectionAdapter() + { + @Override + public void widgetSelected(SelectionEvent e) + { + // Invoke the close method on the preference dialog, but avoid using internal API, so do it reflectively. + IPreferencePageContainer container = getContainer(); + + try + { + Method method = container.getClass().getMethod("close"); + method.invoke(container); + } + catch (Throwable ex) + { + PreferencesEditorPlugin.INSTANCE.log(ex); + } + + openWorkingSetsEditor(); + } + }); + + } + + protected void openWorkingSetsEditor() + { + final IWorkbenchWindow activeWorkbenchWindow = workbench.getActiveWorkbenchWindow(); + Display display = activeWorkbenchWindow.getShell().getDisplay(); + display.asyncExec(new Runnable() + { + public void run() + { + try + { + IEditorInput editorInput = new URIEditorInput(PreferencesUtil.ROOT_PREFERENCE_NODE_URI.trimSegments(1) + .appendSegment("All.preferences"), "All Preferences"); + IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage(); + activePage.openEditor(editorInput, "org.eclipse.emf.cdo.releng.preferences.presentation.PreferencesEditorID"); + activePage.showView(IPageLayout.ID_PROP_SHEET); + } + catch (Exception ex) + { + PreferencesEditorPlugin.INSTANCE.log(ex); + } + } + }); + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesActionBarContributor.java b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesActionBarContributor.java new file mode 100644 index 0000000000..9cc4e96326 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesActionBarContributor.java @@ -0,0 +1,469 @@ +/** + */ +package org.eclipse.emf.cdo.releng.preferences.presentation; + +import java.util.ArrayList; +import java.util.Collection; + +import org.eclipse.emf.common.ui.viewer.IViewerProvider; + +import org.eclipse.emf.edit.domain.EditingDomain; +import org.eclipse.emf.edit.domain.IEditingDomainProvider; + +import org.eclipse.emf.edit.ui.action.ControlAction; +import org.eclipse.emf.edit.ui.action.CreateChildAction; +import org.eclipse.emf.edit.ui.action.CreateSiblingAction; +import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor; +import org.eclipse.emf.edit.ui.action.LoadResourceAction; +import org.eclipse.emf.edit.ui.action.ValidateAction; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.ActionContributionItem; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.action.IContributionItem; +import org.eclipse.jface.action.IContributionManager; +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.action.Separator; +import org.eclipse.jface.action.SubContributionItem; + +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.Viewer; + +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.PartInitException; + +/** + * This is the action bar contributor for the Preferences model editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class PreferencesActionBarContributor + extends EditingDomainActionBarContributor + implements ISelectionChangedListener +{ + /** + * This keeps track of the active editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IEditorPart activeEditorPart; + + /** + * This keeps track of the current selection provider. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ISelectionProvider selectionProvider; + + /** + * This action opens the Properties view. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IAction showPropertiesViewAction = + new Action(PreferencesEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) + { + @Override + public void run() + { + try + { + getPage().showView("org.eclipse.ui.views.PropertySheet"); + } + catch (PartInitException exception) + { + PreferencesEditorPlugin.INSTANCE.log(exception); + } + } + }; + + /** + * This action refreshes the viewer of the current editor if the editor + * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IAction refreshViewerAction = + new Action(PreferencesEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) + { + @Override + public boolean isEnabled() + { + return activeEditorPart instanceof IViewerProvider; + } + + @Override + public void run() + { + if (activeEditorPart instanceof IViewerProvider) + { + Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer(); + if (viewer != null) + { + viewer.refresh(); + } + } + } + }; + + /** + * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor + * generated for the current selection by the item provider. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<IAction> createChildActions; + + /** + * This is the menu manager into which menu contribution items should be added for CreateChild actions. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IMenuManager createChildMenuManager; + + /** + * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor + * generated for the current selection by the item provider. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<IAction> createSiblingActions; + + /** + * This is the menu manager into which menu contribution items should be added for CreateSibling actions. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IMenuManager createSiblingMenuManager; + + /** + * This creates an instance of the contributor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferencesActionBarContributor() + { + super(ADDITIONS_LAST_STYLE); + loadResourceAction = new LoadResourceAction(); + validateAction = new ValidateAction(); + controlAction = new ControlAction(); + } + + /** + * This adds Separators for editor additions to the tool bar. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void contributeToToolBar(IToolBarManager toolBarManager) + { + toolBarManager.add(new Separator("preferences-settings")); + toolBarManager.add(new Separator("preferences-additions")); + } + + /** + * This adds to the menu bar a menu and some separators for editor additions, + * as well as the sub-menus for object creation items. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void contributeToMenu(IMenuManager menuManager) + { + super.contributeToMenu(menuManager); + + IMenuManager submenuManager = new MenuManager(PreferencesEditorPlugin.INSTANCE.getString("_UI_PreferencesEditor_menu"), "org.eclipse.emf.cdo.releng.preferencesMenuID"); + menuManager.insertAfter("additions", submenuManager); + submenuManager.add(new Separator("settings")); + submenuManager.add(new Separator("actions")); + submenuManager.add(new Separator("additions")); + submenuManager.add(new Separator("additions-end")); + + // Prepare for CreateChild item addition or removal. + // + createChildMenuManager = new MenuManager(PreferencesEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); + submenuManager.insertBefore("additions", createChildMenuManager); + + // Prepare for CreateSibling item addition or removal. + // + createSiblingMenuManager = new MenuManager(PreferencesEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); + submenuManager.insertBefore("additions", createSiblingMenuManager); + + // Force an update because Eclipse hides empty menus now. + // + submenuManager.addMenuListener + (new IMenuListener() + { + public void menuAboutToShow(IMenuManager menuManager) + { + menuManager.updateAll(true); + } + }); + + addGlobalActions(submenuManager); + } + + /** + * When the active editor changes, this remembers the change and registers with it as a selection provider. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setActiveEditor(IEditorPart part) + { + super.setActiveEditor(part); + activeEditorPart = part; + + // Switch to the new selection provider. + // + if (selectionProvider != null) + { + selectionProvider.removeSelectionChangedListener(this); + } + if (part == null) + { + selectionProvider = null; + } + else + { + selectionProvider = part.getSite().getSelectionProvider(); + selectionProvider.addSelectionChangedListener(this); + + // Fake a selection changed event to update the menus. + // + if (selectionProvider.getSelection() != null) + { + selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection())); + } + } + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener}, + * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings + * that can be added to the selected object and updating the menus accordingly. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void selectionChanged(SelectionChangedEvent event) + { + // Remove any menu items for old selection. + // + if (createChildMenuManager != null) + { + depopulateManager(createChildMenuManager, createChildActions); + } + if (createSiblingMenuManager != null) + { + depopulateManager(createSiblingMenuManager, createSiblingActions); + } + + // Query the new selection for appropriate new child/sibling descriptors + // + Collection<?> newChildDescriptors = null; + Collection<?> newSiblingDescriptors = null; + + ISelection selection = event.getSelection(); + if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) + { + Object object = ((IStructuredSelection)selection).getFirstElement(); + + EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain(); + + newChildDescriptors = domain.getNewChildDescriptors(object, null); + newSiblingDescriptors = domain.getNewChildDescriptors(null, object); + } + + // Generate actions for selection; populate and redraw the menus. + // + createChildActions = generateCreateChildActions(newChildDescriptors, selection); + createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection); + + if (createChildMenuManager != null) + { + populateManager(createChildMenuManager, createChildActions, null); + createChildMenuManager.update(true); + } + if (createSiblingMenuManager != null) + { + populateManager(createSiblingMenuManager, createSiblingActions, null); + createSiblingMenuManager.update(true); + } + } + + /** + * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>, + * and returns the collection of these actions. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) + { + Collection<IAction> actions = new ArrayList<IAction>(); + if (descriptors != null) + { + for (Object descriptor : descriptors) + { + actions.add(new CreateChildAction(activeEditorPart, selection, descriptor)); + } + } + return actions; + } + + /** + * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>, + * and returns the collection of these actions. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) + { + Collection<IAction> actions = new ArrayList<IAction>(); + if (descriptors != null) + { + for (Object descriptor : descriptors) + { + actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor)); + } + } + return actions; + } + + /** + * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s + * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection, + * by inserting them before the specified contribution item <code>contributionID</code>. + * If <code>contributionID</code> is <code>null</code>, they are simply added. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) + { + if (actions != null) + { + for (IAction action : actions) + { + if (contributionID != null) + { + manager.insertBefore(contributionID, action); + } + else + { + manager.add(action); + } + } + } + } + + /** + * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s + * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) + { + if (actions != null) + { + IContributionItem[] items = manager.getItems(); + for (int i = 0; i < items.length; i++) + { + // Look into SubContributionItems + // + IContributionItem contributionItem = items[i]; + while (contributionItem instanceof SubContributionItem) + { + contributionItem = ((SubContributionItem)contributionItem).getInnerItem(); + } + + // Delete the ActionContributionItems with matching action. + // + if (contributionItem instanceof ActionContributionItem) + { + IAction action = ((ActionContributionItem)contributionItem).getAction(); + if (actions.contains(action)) + { + manager.remove(contributionItem); + } + } + } + } + } + + /** + * This populates the pop-up menu before it appears. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void menuAboutToShow(IMenuManager menuManager) + { + super.menuAboutToShow(menuManager); + MenuManager submenuManager = null; + + submenuManager = new MenuManager(PreferencesEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); + populateManager(submenuManager, createChildActions, null); + menuManager.insertBefore("edit", submenuManager); + + submenuManager = new MenuManager(PreferencesEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); + populateManager(submenuManager, createSiblingActions, null); + menuManager.insertBefore("edit", submenuManager); + } + + /** + * This inserts global actions before the "additions-end" separator. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void addGlobalActions(IMenuManager menuManager) + { + menuManager.insertAfter("additions-end", new Separator("ui-actions")); + menuManager.insertAfter("ui-actions", showPropertiesViewAction); + + refreshViewerAction.setEnabled(refreshViewerAction.isEnabled()); + menuManager.insertAfter("ui-actions", refreshViewerAction); + + super.addGlobalActions(menuManager); + } + + /** + * This ensures that a delete action will clean up all references to deleted objects. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected boolean removeAllReferencesOnDelete() + { + return true; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesEditor.java b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesEditor.java new file mode 100644 index 0000000000..32f6f1e0d6 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesEditor.java @@ -0,0 +1,1795 @@ +/** + */ +package org.eclipse.emf.cdo.releng.preferences.presentation; + +import org.eclipse.emf.cdo.releng.preferences.impl.PreferencesURIHandlerImpl; +import org.eclipse.emf.cdo.releng.preferences.provider.PreferencesItemProviderAdapterFactory; +import org.eclipse.emf.cdo.releng.preferences.util.PreferencesUtil; + +import org.eclipse.emf.common.command.BasicCommandStack; +import org.eclipse.emf.common.command.Command; +import org.eclipse.emf.common.command.CommandStack; +import org.eclipse.emf.common.command.CommandStackListener; +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.ui.MarkerHelper; +import org.eclipse.emf.common.ui.editor.ProblemEditorPart; +import org.eclipse.emf.common.ui.viewer.IViewerProvider; +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.util.EContentAdapter; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; +import org.eclipse.emf.edit.domain.EditingDomain; +import org.eclipse.emf.edit.domain.IEditingDomainProvider; +import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator; +import org.eclipse.emf.edit.provider.ComposedAdapterFactory; +import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory; +import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory; +import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor; +import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor; +import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter; +import org.eclipse.emf.edit.ui.dnd.LocalTransfer; +import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; +import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider; +import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper; +import org.eclipse.emf.edit.ui.util.EditUIUtil; +import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IMarker; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceChangeEvent; +import org.eclipse.core.resources.IResourceChangeListener; +import org.eclipse.core.resources.IResourceDelta; +import org.eclipse.core.resources.IResourceDeltaVisitor; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.IStatusLineManager; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.action.Separator; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.dialogs.ProgressMonitorDialog; +import org.eclipse.jface.util.LocalSelectionTransfer; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.StructuredViewer; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.CTabFolder; +import org.eclipse.swt.dnd.DND; +import org.eclipse.swt.dnd.FileTransfer; +import org.eclipse.swt.dnd.Transfer; +import org.eclipse.swt.events.ControlAdapter; +import org.eclipse.swt.events.ControlEvent; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.Tree; +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IEditorSite; +import org.eclipse.ui.IPartListener; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.actions.WorkspaceModifyOperation; +import org.eclipse.ui.dialogs.SaveAsDialog; +import org.eclipse.ui.ide.IGotoMarker; +import org.eclipse.ui.part.FileEditorInput; +import org.eclipse.ui.part.MultiPageEditorPart; +import org.eclipse.ui.views.contentoutline.ContentOutline; +import org.eclipse.ui.views.contentoutline.ContentOutlinePage; +import org.eclipse.ui.views.contentoutline.IContentOutlinePage; +import org.eclipse.ui.views.properties.IPropertySheetPage; +import org.eclipse.ui.views.properties.PropertySheet; +import org.eclipse.ui.views.properties.PropertySheetPage; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.EventObject; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * This is an example of a Preferences model editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class PreferencesEditor extends MultiPageEditorPart implements IEditingDomainProvider, ISelectionProvider, + IMenuListener, IViewerProvider, IGotoMarker +{ + /** + * This keeps track of the editing domain that is used to track all changes to the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected AdapterFactoryEditingDomain editingDomain; + + /** + * This is the one adapter factory used for providing views of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ComposedAdapterFactory adapterFactory; + + /** + * This is the content outline page. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IContentOutlinePage contentOutlinePage; + + /** + * This is a kludge... + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IStatusLineManager contentOutlineStatusLineManager; + + /** + * This is the content outline page's viewer. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TreeViewer contentOutlineViewer; + + /** + * This is the property sheet page. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>(); + + /** + * This is the viewer that shadows the selection in the content outline. + * The parent relation must be correctly defined for this to work. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TreeViewer selectionViewer; + + /** + * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Viewer currentViewer; + + /** + * This listens to which ever viewer is active. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ISelectionChangedListener selectionChangedListener; + + /** + * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>(); + + /** + * This keeps track of the selection of the editor as a whole. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ISelection editorSelection = StructuredSelection.EMPTY; + + /** + * The MarkerHelper is responsible for creating workspace resource markers presented + * in Eclipse's Problems View. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected MarkerHelper markerHelper = new EditUIMarkerHelper(); + + /** + * This listens for when the outline becomes active + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IPartListener partListener = new IPartListener() + { + public void partActivated(IWorkbenchPart p) + { + if (p instanceof ContentOutline) + { + if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) + { + getActionBarContributor().setActiveEditor(PreferencesEditor.this); + + setCurrentViewer(contentOutlineViewer); + } + } + else if (p instanceof PropertySheet) + { + if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) + { + getActionBarContributor().setActiveEditor(PreferencesEditor.this); + handleActivate(); + } + } + else if (p == PreferencesEditor.this) + { + handleActivate(); + } + } + + public void partBroughtToTop(IWorkbenchPart p) + { + // Ignore. + } + + public void partClosed(IWorkbenchPart p) + { + // Ignore. + } + + public void partDeactivated(IWorkbenchPart p) + { + // Ignore. + } + + public void partOpened(IWorkbenchPart p) + { + // Ignore. + } + }; + + /** + * Resources that have been removed since last activation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<Resource> removedResources = new ArrayList<Resource>(); + + /** + * Resources that have been changed since last activation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<Resource> changedResources = new ArrayList<Resource>(); + + /** + * Resources that have been saved. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<Resource> savedResources = new ArrayList<Resource>(); + + /** + * Map to store the diagnostic associated with a resource. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>(); + + /** + * Controls whether the problem indication should be updated. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected boolean updateProblemIndication = true; + + /** + * Adapter used to update the problem indication when resources are demanded loaded. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EContentAdapter problemIndicationAdapter = new EContentAdapter() + { + @Override + public void notifyChanged(Notification notification) + { + if (notification.getNotifier() instanceof Resource) + { + switch (notification.getFeatureID(Resource.class)) + { + case Resource.RESOURCE__IS_LOADED: + case Resource.RESOURCE__ERRORS: + case Resource.RESOURCE__WARNINGS: + { + Resource resource = (Resource)notification.getNotifier(); + Diagnostic diagnostic = analyzeResourceProblems(resource, null); + if (diagnostic.getSeverity() != Diagnostic.OK) + { + resourceToDiagnosticMap.put(resource, diagnostic); + } + else + { + resourceToDiagnosticMap.remove(resource); + } + + if (updateProblemIndication) + { + getSite().getShell().getDisplay().asyncExec(new Runnable() + { + public void run() + { + updateProblemIndication(); + } + }); + } + break; + } + } + } + else + { + super.notifyChanged(notification); + } + } + + @Override + protected void setTarget(Resource target) + { + basicSetTarget(target); + } + + @Override + protected void unsetTarget(Resource target) + { + basicUnsetTarget(target); + resourceToDiagnosticMap.remove(target); + if (updateProblemIndication) + { + getSite().getShell().getDisplay().asyncExec(new Runnable() + { + public void run() + { + updateProblemIndication(); + } + }); + } + } + }; + + /** + * This listens for workspace changes. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IResourceChangeListener resourceChangeListener = new IResourceChangeListener() + { + public void resourceChanged(IResourceChangeEvent event) + { + IResourceDelta delta = event.getDelta(); + try + { + class ResourceDeltaVisitor implements IResourceDeltaVisitor + { + protected ResourceSet resourceSet = editingDomain.getResourceSet(); + + protected Collection<Resource> changedResources = new ArrayList<Resource>(); + + protected Collection<Resource> removedResources = new ArrayList<Resource>(); + + public boolean visit(IResourceDelta delta) + { + if (delta.getResource().getType() == IResource.FILE) + { + if (delta.getKind() == IResourceDelta.REMOVED || delta.getKind() == IResourceDelta.CHANGED + && delta.getFlags() != IResourceDelta.MARKERS) + { + Resource resource = resourceSet.getResource( + URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false); + if (resource != null) + { + if (delta.getKind() == IResourceDelta.REMOVED) + { + removedResources.add(resource); + } + else if (!savedResources.remove(resource)) + { + changedResources.add(resource); + } + } + } + return false; + } + + return true; + } + + public Collection<Resource> getChangedResources() + { + return changedResources; + } + + public Collection<Resource> getRemovedResources() + { + return removedResources; + } + } + + final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor(); + delta.accept(visitor); + + if (!visitor.getRemovedResources().isEmpty()) + { + getSite().getShell().getDisplay().asyncExec(new Runnable() + { + public void run() + { + removedResources.addAll(visitor.getRemovedResources()); + if (!isDirty()) + { + getSite().getPage().closeEditor(PreferencesEditor.this, false); + } + } + }); + } + + if (!visitor.getChangedResources().isEmpty()) + { + getSite().getShell().getDisplay().asyncExec(new Runnable() + { + public void run() + { + changedResources.addAll(visitor.getChangedResources()); + if (getSite().getPage().getActiveEditor() == PreferencesEditor.this) + { + handleActivate(); + } + } + }); + } + } + catch (CoreException exception) + { + PreferencesEditorPlugin.INSTANCE.log(exception); + } + } + }; + + /** + * Handles activation of the editor or it's associated views. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void handleActivate() + { + // Recompute the read only state. + // + if (editingDomain.getResourceToReadOnlyMap() != null) + { + editingDomain.getResourceToReadOnlyMap().clear(); + + // Refresh any actions that may become enabled or disabled. + // + setSelection(getSelection()); + } + + if (!removedResources.isEmpty()) + { + if (handleDirtyConflict()) + { + getSite().getPage().closeEditor(PreferencesEditor.this, false); + } + else + { + removedResources.clear(); + changedResources.clear(); + savedResources.clear(); + } + } + else if (!changedResources.isEmpty()) + { + changedResources.removeAll(savedResources); + handleChangedResources(); + changedResources.clear(); + savedResources.clear(); + } + } + + /** + * Handles what to do with changed resources on activation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void handleChangedResources() + { + if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) + { + if (isDirty()) + { + changedResources.addAll(editingDomain.getResourceSet().getResources()); + } + editingDomain.getCommandStack().flush(); + + updateProblemIndication = false; + for (Resource resource : changedResources) + { + if (resource.isLoaded()) + { + resource.unload(); + try + { + resource.load(Collections.EMPTY_MAP); + } + catch (IOException exception) + { + if (!resourceToDiagnosticMap.containsKey(resource)) + { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + } + } + } + + if (AdapterFactoryEditingDomain.isStale(editorSelection)) + { + setSelection(StructuredSelection.EMPTY); + } + + updateProblemIndication = true; + updateProblemIndication(); + } + } + + /** + * Updates the problems indication with the information described in the specified diagnostic. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void updateProblemIndication() + { + if (updateProblemIndication) + { + BasicDiagnostic diagnostic = new BasicDiagnostic(Diagnostic.OK, "org.eclipse.emf.cdo.releng.preferences.editor", + 0, null, new Object[] { editingDomain.getResourceSet() }); + for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) + { + if (childDiagnostic.getSeverity() != Diagnostic.OK) + { + diagnostic.add(childDiagnostic); + } + } + + int lastEditorPage = getPageCount() - 1; + if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) + { + ((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic); + if (diagnostic.getSeverity() != Diagnostic.OK) + { + setActivePage(lastEditorPage); + } + } + else if (diagnostic.getSeverity() != Diagnostic.OK) + { + ProblemEditorPart problemEditorPart = new ProblemEditorPart(); + problemEditorPart.setDiagnostic(diagnostic); + problemEditorPart.setMarkerHelper(markerHelper); + try + { + addPage(++lastEditorPage, problemEditorPart, getEditorInput()); + setPageText(lastEditorPage, problemEditorPart.getPartName()); + setActivePage(lastEditorPage); + showTabs(); + } + catch (PartInitException exception) + { + PreferencesEditorPlugin.INSTANCE.log(exception); + } + } + + if (markerHelper.hasMarkers(editingDomain.getResourceSet())) + { + markerHelper.deleteMarkers(editingDomain.getResourceSet()); + if (diagnostic.getSeverity() != Diagnostic.OK) + { + try + { + markerHelper.createMarkers(diagnostic); + } + catch (CoreException exception) + { + PreferencesEditorPlugin.INSTANCE.log(exception); + } + } + } + } + } + + /** + * Shows a dialog that asks if conflicting changes should be discarded. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected boolean handleDirtyConflict() + { + return MessageDialog.openQuestion(getSite().getShell(), getString("_UI_FileConflict_label"), + getString("_WARN_FileConflict")); + } + + /** + * This creates a model editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferencesEditor() + { + super(); + initializeEditingDomain(); + } + + protected void initializeEditingDomain() + { + initializeEditingDomainGen(); + + editingDomain.getResourceSet().getURIConverter().getURIHandlers().add(0, new PreferencesURIHandlerImpl()); + } + + /** + * This sets up the editing domain for the model editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void initializeEditingDomainGen() + { + // Create an adapter factory that yields item providers. + // + adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE); + + adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new PreferencesItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory()); + + // Create the command stack that will notify this editor as commands are executed. + // + BasicCommandStack commandStack = new BasicCommandStack(); + + // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus. + // + commandStack.addCommandStackListener(new CommandStackListener() + { + public void commandStackChanged(final EventObject event) + { + getContainer().getDisplay().asyncExec(new Runnable() + { + public void run() + { + firePropertyChange(IEditorPart.PROP_DIRTY); + + // Try to select the affected objects. + // + Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand(); + if (mostRecentCommand != null) + { + setSelectionToViewer(mostRecentCommand.getAffectedObjects()); + } + for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext();) + { + PropertySheetPage propertySheetPage = i.next(); + if (propertySheetPage.getControl().isDisposed()) + { + i.remove(); + } + else + { + propertySheetPage.refresh(); + } + } + } + }); + } + }); + + // Create the editing domain with a special command stack. + // + editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>()); + } + + /** + * This is here for the listener to be able to call it. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void firePropertyChange(int action) + { + super.firePropertyChange(action); + } + + /** + * This sets the selection into whichever viewer is active. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setSelectionToViewer(Collection<?> collection) + { + final Collection<?> theSelection = collection; + // Make sure it's okay. + // + if (theSelection != null && !theSelection.isEmpty()) + { + Runnable runnable = new Runnable() + { + public void run() + { + // Try to select the items in the current content viewer of the editor. + // + if (currentViewer != null) + { + currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true); + } + } + }; + getSite().getShell().getDisplay().asyncExec(runnable); + } + } + + /** + * This returns the editing domain as required by the {@link IEditingDomainProvider} interface. + * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain} + * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EditingDomain getEditingDomain() + { + return editingDomain; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider + { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object[] getElements(Object object) + { + Object parent = super.getParent(object); + return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object[] getChildren(Object object) + { + Object parent = super.getParent(object); + return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean hasChildren(Object object) + { + Object parent = super.getParent(object); + return parent != null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getParent(Object object) + { + return null; + } + } + + /** + * This makes sure that one content viewer, either for the current page or the outline view, if it has focus, + * is the current one. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setCurrentViewer(Viewer viewer) + { + // If it is changing... + // + if (currentViewer != viewer) + { + if (selectionChangedListener == null) + { + // Create the listener on demand. + // + selectionChangedListener = new ISelectionChangedListener() + { + // This just notifies those things that are affected by the section. + // + public void selectionChanged(SelectionChangedEvent selectionChangedEvent) + { + setSelection(selectionChangedEvent.getSelection()); + } + }; + } + + // Stop listening to the old one. + // + if (currentViewer != null) + { + currentViewer.removeSelectionChangedListener(selectionChangedListener); + } + + // Start listening to the new one. + // + if (viewer != null) + { + viewer.addSelectionChangedListener(selectionChangedListener); + } + + // Remember it. + // + currentViewer = viewer; + + // Set the editors selection based on the current viewer's selection. + // + setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection()); + } + } + + /** + * This returns the viewer as required by the {@link IViewerProvider} interface. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Viewer getViewer() + { + return currentViewer; + } + + /** + * This creates a context menu for the viewer and adds a listener as well registering the menu for extension. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void createContextMenuFor(StructuredViewer viewer) + { + MenuManager contextMenu = new MenuManager("#PopUp"); + contextMenu.add(new Separator("additions")); + contextMenu.setRemoveAllWhenShown(true); + contextMenu.addMenuListener(this); + Menu menu = contextMenu.createContextMenu(viewer.getControl()); + viewer.getControl().setMenu(menu); + getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer)); + + int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK; + Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), + FileTransfer.getInstance() }; + viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer)); + viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer)); + } + + private class SelectChangesListener extends EContentAdapter + { + protected List<Object> selection; + + @Override + public synchronized void notifyChanged(Notification notification) + { + super.notifyChanged(notification); + + boolean dispatch = false; + if (selection == null) + { + selection = new ArrayList<Object>(); + dispatch = true; + } + + switch (notification.getEventType()) + { + case Notification.ADD: + { + selection.add(notification.getNewValue()); + break; + } + case Notification.ADD_MANY: + { + selection.addAll((List<?>)notification.getNewValue()); + break; + } + default: + { + selection.add(notification.getNotifier()); + break; + } + } + + if (dispatch) + { + final Display display = getSite().getShell().getDisplay(); + display.asyncExec(new Runnable() + { + public void run() + { + if (!selectionViewer.getControl().isDisposed()) + { + display.timerExec(5000, new Runnable() + { + public void run() + { + synchronized (SelectChangesListener.this) + { + if (!selectionViewer.getControl().isDisposed()) + { + List<Object> newSelection = selection; + selection = null; + setSelectionToViewer(newSelection); + } + } + } + }); + } + } + }); + } + } + } + + public void createModel() + { + editingDomain.getResourceSet().getLoadOptions().put(PreferencesUtil.OPTION_SYNCHRONIZED_PREFERENCES, Boolean.TRUE); + + createModelGen(); + + URI resourceURI = EditUIUtil.getURI(getEditorInput()); + if (resourceURI.segmentCount() == 1) + { + editingDomain.getResourceSet().eAdapters().add(new SelectChangesListener()); + } + } + + /** + * This is the method called to load a resource into the editing domain's resource set based on the editor's input. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createModelGen() + { + URI resourceURI = EditUIUtil.getURI(getEditorInput()); + Exception exception = null; + Resource resource = null; + try + { + // Load the resource through the editing domain. + // + resource = editingDomain.getResourceSet().getResource(resourceURI, true); + } + catch (Exception e) + { + exception = e; + resource = editingDomain.getResourceSet().getResource(resourceURI, false); + } + + Diagnostic diagnostic = analyzeResourceProblems(resource, exception); + if (diagnostic.getSeverity() != Diagnostic.OK) + { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter); + } + + /** + * Returns a diagnostic describing the errors and warnings listed in the resource + * and the specified exception (if any). + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) + { + if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) + { + BasicDiagnostic basicDiagnostic = new BasicDiagnostic(Diagnostic.ERROR, + "org.eclipse.emf.cdo.releng.preferences.editor", 0, getString("_UI_CreateModelError_message", + resource.getURI()), new Object[] { exception == null ? (Object)resource : exception }); + basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true)); + return basicDiagnostic; + } + else if (exception != null) + { + return new BasicDiagnostic(Diagnostic.ERROR, "org.eclipse.emf.cdo.releng.preferences.editor", 0, getString( + "_UI_CreateModelError_message", resource.getURI()), new Object[] { exception }); + } + else + { + return Diagnostic.OK_INSTANCE; + } + } + + @Override + public void createPages() + { + createPagesGen(); + + EList<Resource> resources = editingDomain.getResourceSet().getResources(); + if (!resources.isEmpty()) + { + selectionViewer.setInput(resources.get(0).getContents().get(0)); + } + } + + /** + * This is the method used by the framework to install your own controls. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createPagesGen() + { + // Creates the model from the editor input + // + createModel(); + + // Only creates the other pages if there is something that can be edited + // + if (!getEditingDomain().getResourceSet().getResources().isEmpty()) + { + // Create a page for the selection tree view. + // + Tree tree = new Tree(getContainer(), SWT.MULTI); + selectionViewer = new TreeViewer(tree); + setCurrentViewer(selectionViewer); + + selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + selectionViewer.setInput(editingDomain.getResourceSet()); + selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true); + + new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory); + + createContextMenuFor(selectionViewer); + int pageIndex = addPage(tree); + setPageText(pageIndex, getString("_UI_SelectionPage_label")); + + getSite().getShell().getDisplay().asyncExec(new Runnable() + { + public void run() + { + setActivePage(0); + } + }); + } + + // Ensures that this editor will only display the page's tab + // area if there are more than one page + // + getContainer().addControlListener(new ControlAdapter() + { + boolean guard = false; + + @Override + public void controlResized(ControlEvent event) + { + if (!guard) + { + guard = true; + hideTabs(); + guard = false; + } + } + }); + + getSite().getShell().getDisplay().asyncExec(new Runnable() + { + public void run() + { + updateProblemIndication(); + } + }); + } + + /** + * If there is just one page in the multi-page editor part, + * this hides the single tab at the bottom. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void hideTabs() + { + if (getPageCount() <= 1) + { + setPageText(0, ""); + if (getContainer() instanceof CTabFolder) + { + ((CTabFolder)getContainer()).setTabHeight(1); + Point point = getContainer().getSize(); + getContainer().setSize(point.x, point.y + 6); + } + } + } + + /** + * If there is more than one page in the multi-page editor part, + * this shows the tabs at the bottom. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void showTabs() + { + if (getPageCount() > 1) + { + setPageText(0, getString("_UI_SelectionPage_label")); + if (getContainer() instanceof CTabFolder) + { + ((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT); + Point point = getContainer().getSize(); + getContainer().setSize(point.x, point.y - 6); + } + } + } + + /** + * This is used to track the active viewer. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void pageChange(int pageIndex) + { + super.pageChange(pageIndex); + + if (contentOutlinePage != null) + { + handleContentOutlineSelection(contentOutlinePage.getSelection()); + } + } + + /** + * This is how the framework determines which interfaces we implement. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("rawtypes") + @Override + public Object getAdapter(Class key) + { + if (key.equals(IContentOutlinePage.class)) + { + return showOutlineView() ? getContentOutlinePage() : null; + } + else if (key.equals(IPropertySheetPage.class)) + { + return getPropertySheetPage(); + } + else if (key.equals(IGotoMarker.class)) + { + return this; + } + else + { + return super.getAdapter(key); + } + } + + /** + * This accesses a cached version of the content outliner. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IContentOutlinePage getContentOutlinePage() + { + if (contentOutlinePage == null) + { + // The content outline is just a tree. + // + class MyContentOutlinePage extends ContentOutlinePage + { + @Override + public void createControl(Composite parent) + { + super.createControl(parent); + contentOutlineViewer = getTreeViewer(); + contentOutlineViewer.addSelectionChangedListener(this); + + // Set up the tree viewer. + // + contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + contentOutlineViewer.setInput(editingDomain.getResourceSet()); + + // Make sure our popups work. + // + createContextMenuFor(contentOutlineViewer); + + if (!editingDomain.getResourceSet().getResources().isEmpty()) + { + // Select the root object in the view. + // + contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources() + .get(0)), true); + } + } + + @Override + public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, + IStatusLineManager statusLineManager) + { + super.makeContributions(menuManager, toolBarManager, statusLineManager); + contentOutlineStatusLineManager = statusLineManager; + } + + @Override + public void setActionBars(IActionBars actionBars) + { + super.setActionBars(actionBars); + getActionBarContributor().shareGlobalActions(this, actionBars); + } + } + + contentOutlinePage = new MyContentOutlinePage(); + + // Listen to selection so that we can handle it is a special way. + // + contentOutlinePage.addSelectionChangedListener(new ISelectionChangedListener() + { + // This ensures that we handle selections correctly. + // + public void selectionChanged(SelectionChangedEvent event) + { + handleContentOutlineSelection(event.getSelection()); + } + }); + } + + return contentOutlinePage; + } + + /** + * This accesses a cached version of the property sheet. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IPropertySheetPage getPropertySheetPage() + { + PropertySheetPage propertySheetPage = new ExtendedPropertySheetPage(editingDomain) + { + @Override + public void setSelectionToViewer(List<?> selection) + { + PreferencesEditor.this.setSelectionToViewer(selection); + PreferencesEditor.this.setFocus(); + } + + @Override + public void setActionBars(IActionBars actionBars) + { + super.setActionBars(actionBars); + getActionBarContributor().shareGlobalActions(this, actionBars); + } + }; + propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory)); + propertySheetPages.add(propertySheetPage); + + return propertySheetPage; + } + + /** + * This deals with how we want selection in the outliner to affect the other views. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void handleContentOutlineSelection(ISelection selection) + { + if (selectionViewer != null && !selection.isEmpty() && selection instanceof IStructuredSelection) + { + Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator(); + if (selectedElements.hasNext()) + { + // Get the first selected element. + // + Object selectedElement = selectedElements.next(); + + ArrayList<Object> selectionList = new ArrayList<Object>(); + selectionList.add(selectedElement); + while (selectedElements.hasNext()) + { + selectionList.add(selectedElements.next()); + } + + // Set the selection to the widget. + // + selectionViewer.setSelection(new StructuredSelection(selectionList)); + } + } + } + + /** + * This is for implementing {@link IEditorPart} and simply tests the command stack. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isDirty() + { + return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded(); + } + + /** + * This is for implementing {@link IEditorPart} and simply saves the model file. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void doSave(IProgressMonitor progressMonitor) + { + // Save only resources that have actually changed. + // + final Map<Object, Object> saveOptions = new HashMap<Object, Object>(); + saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER); + saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED); + + // Do the work within an operation because this is a long running activity that modifies the workbench. + // + WorkspaceModifyOperation operation = new WorkspaceModifyOperation() + { + // This is the method that gets invoked when the operation runs. + // + @Override + public void execute(IProgressMonitor monitor) + { + // Save the resources to the file system. + // + boolean first = true; + for (Resource resource : editingDomain.getResourceSet().getResources()) + { + if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) + && !editingDomain.isReadOnly(resource)) + { + try + { + long timeStamp = resource.getTimeStamp(); + resource.save(saveOptions); + if (resource.getTimeStamp() != timeStamp) + { + savedResources.add(resource); + } + } + catch (Exception exception) + { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + first = false; + } + } + } + }; + + updateProblemIndication = false; + try + { + // This runs the options, and shows progress. + // + new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation); + + // Refresh the necessary state. + // + ((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone(); + firePropertyChange(IEditorPart.PROP_DIRTY); + } + catch (Exception exception) + { + // Something went wrong that shouldn't. + // + PreferencesEditorPlugin.INSTANCE.log(exception); + } + updateProblemIndication = true; + updateProblemIndication(); + } + + /** + * This returns whether something has been persisted to the URI of the specified resource. + * The implementation uses the URI converter from the editor's resource set to try to open an input stream. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected boolean isPersisted(Resource resource) + { + boolean result = false; + try + { + InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI()); + if (stream != null) + { + result = true; + stream.close(); + } + } + catch (IOException e) + { + // Ignore + } + return result; + } + + /** + * This always returns true because it is not currently supported. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isSaveAsAllowed() + { + return true; + } + + /** + * This also changes the editor's input. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void doSaveAs() + { + SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell()); + saveAsDialog.open(); + IPath path = saveAsDialog.getResult(); + if (path != null) + { + IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path); + if (file != null) + { + doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file)); + } + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void doSaveAs(URI uri, IEditorInput editorInput) + { + editingDomain.getResourceSet().getResources().get(0).setURI(uri); + setInputWithNotify(editorInput); + setPartName(editorInput.getName()); + IProgressMonitor progressMonitor = getActionBars().getStatusLineManager() != null ? getActionBars() + .getStatusLineManager().getProgressMonitor() : new NullProgressMonitor(); + doSave(progressMonitor); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void gotoMarker(IMarker marker) + { + List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker); + if (!targetObjects.isEmpty()) + { + setSelectionToViewer(targetObjects); + } + } + + /** + * This is called during startup. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void init(IEditorSite site, IEditorInput editorInput) + { + setSite(site); + setInputWithNotify(editorInput); + setPartName(editorInput.getName()); + site.setSelectionProvider(this); + site.getPage().addPartListener(partListener); + ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setFocus() + { + getControl(getActivePage()).setFocus(); + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void addSelectionChangedListener(ISelectionChangedListener listener) + { + selectionChangedListeners.add(listener); + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void removeSelectionChangedListener(ISelectionChangedListener listener) + { + selectionChangedListeners.remove(listener); + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ISelection getSelection() + { + return editorSelection; + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection. + * Calling this result will notify the listeners. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setSelection(ISelection selection) + { + editorSelection = selection; + + for (ISelectionChangedListener listener : selectionChangedListeners) + { + listener.selectionChanged(new SelectionChangedEvent(this, selection)); + } + setStatusLineManager(selection); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setStatusLineManager(ISelection selection) + { + IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ? contentOutlineStatusLineManager + : getActionBars().getStatusLineManager(); + + if (statusLineManager != null) + { + if (selection instanceof IStructuredSelection) + { + Collection<?> collection = ((IStructuredSelection)selection).toList(); + switch (collection.size()) + { + case 0: + { + statusLineManager.setMessage(getString("_UI_NoObjectSelected")); + break; + } + case 1: + { + String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next()); + statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text)); + break; + } + default: + { + statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size()))); + break; + } + } + } + else + { + statusLineManager.setMessage(""); + } + } + } + + /** + * This looks up a string in the plugin's plugin.properties file. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static String getString(String key) + { + return PreferencesEditorPlugin.INSTANCE.getString(key); + } + + /** + * This looks up a string in plugin.properties, making a substitution. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static String getString(String key, Object s1) + { + return PreferencesEditorPlugin.INSTANCE.getString(key, new Object[] { s1 }); + } + + /** + * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void menuAboutToShow(IMenuManager menuManager) + { + ((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EditingDomainActionBarContributor getActionBarContributor() + { + return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IActionBars getActionBars() + { + return getActionBarContributor().getActionBars(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public AdapterFactory getAdapterFactory() + { + return adapterFactory; + } + + @Override + public void dispose() + { + disposeGen(); + + for (Resource resource : editingDomain.getResourceSet().getResources()) + { + resource.unload(); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void disposeGen() + { + updateProblemIndication = false; + + ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener); + + getSite().getPage().removePartListener(partListener); + + adapterFactory.dispose(); + + if (getActionBarContributor().getActiveEditor() == this) + { + getActionBarContributor().setActiveEditor(null); + } + + for (PropertySheetPage propertySheetPage : propertySheetPages) + { + propertySheetPage.dispose(); + } + + if (contentOutlinePage != null) + { + contentOutlinePage.dispose(); + } + + super.dispose(); + } + + /** + * Returns whether the outline view should be presented to the user. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected boolean showOutlineView() + { + return false; + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesEditorPlugin.java b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesEditorPlugin.java new file mode 100644 index 0000000000..39806b2150 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesEditorPlugin.java @@ -0,0 +1,98 @@ +/** + */ +package org.eclipse.emf.cdo.releng.preferences.presentation; + +import org.eclipse.emf.common.EMFPlugin; + +import org.eclipse.emf.common.ui.EclipseUIPlugin; + +import org.eclipse.emf.common.util.ResourceLocator; + +/** + * This is the central singleton for the Preferences editor plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public final class PreferencesEditorPlugin extends EMFPlugin +{ + /** + * Keep track of the singleton. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final PreferencesEditorPlugin INSTANCE = new PreferencesEditorPlugin(); + + /** + * Keep track of the singleton. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static Implementation plugin; + + /** + * Create the instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferencesEditorPlugin() + { + super + (new ResourceLocator [] + { + }); + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the singleton instance. + * @generated + */ + @Override + public ResourceLocator getPluginResourceLocator() + { + return plugin; + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the singleton instance. + * @generated + */ + public static Implementation getPlugin() + { + return plugin; + } + + /** + * The actual implementation of the Eclipse <b>Plugin</b>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static class Implementation extends EclipseUIPlugin + { + /** + * Creates an instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Implementation() + { + super(); + + // Remember the static instance. + // + plugin = this; + } + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesModelWizard.java b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesModelWizard.java new file mode 100644 index 0000000000..c734961afe --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesModelWizard.java @@ -0,0 +1,686 @@ +/** + */ +package org.eclipse.emf.cdo.releng.preferences.presentation; + + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.MissingResourceException; +import java.util.StringTokenizer; + +import org.eclipse.emf.common.CommonPlugin; + +import org.eclipse.emf.common.util.URI; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; + +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; + +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.emf.ecore.xmi.XMLResource; + +import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry; + +import org.eclipse.core.resources.IContainer; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IFolder; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.ResourcesPlugin; + +import org.eclipse.core.runtime.IProgressMonitor; + +import org.eclipse.jface.dialogs.MessageDialog; + +import org.eclipse.jface.viewers.IStructuredSelection; + +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.jface.wizard.WizardPage; + +import org.eclipse.swt.SWT; + +import org.eclipse.swt.events.ModifyListener; +import org.eclipse.swt.events.ModifyEvent; + +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; + +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; + +import org.eclipse.ui.INewWizard; +import org.eclipse.ui.IWorkbench; + +import org.eclipse.ui.actions.WorkspaceModifyOperation; + +import org.eclipse.ui.dialogs.WizardNewFileCreationPage; + +import org.eclipse.ui.part.FileEditorInput; +import org.eclipse.ui.part.ISetSelectionTarget; + +import org.eclipse.emf.cdo.releng.preferences.PreferencesFactory; +import org.eclipse.emf.cdo.releng.preferences.PreferencesPackage; +import org.eclipse.emf.cdo.releng.preferences.provider.PreferencesEditPlugin; + + +import org.eclipse.core.runtime.Path; + +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.StructuredSelection; + +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PartInitException; + + +/** + * This is a simple wizard for creating a new model file. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class PreferencesModelWizard extends Wizard implements INewWizard +{ + /** + * The supported extensions for created files. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final List<String> FILE_EXTENSIONS = + Collections.unmodifiableList(Arrays.asList(PreferencesEditorPlugin.INSTANCE.getString("_UI_PreferencesEditorFilenameExtensions").split("\\s*,\\s*"))); + + /** + * A formatted list of supported file extensions, suitable for display. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final String FORMATTED_FILE_EXTENSIONS = + PreferencesEditorPlugin.INSTANCE.getString("_UI_PreferencesEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", "); + + /** + * This caches an instance of the model package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PreferencesPackage preferencesPackage = PreferencesPackage.eINSTANCE; + + /** + * This caches an instance of the model factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PreferencesFactory preferencesFactory = preferencesPackage.getPreferencesFactory(); + + /** + * This is the file creation page. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PreferencesModelWizardNewFileCreationPage newFileCreationPage; + + /** + * This is the initial object creation page. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PreferencesModelWizardInitialObjectCreationPage initialObjectCreationPage; + + /** + * Remember the selection during initialization for populating the default container. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IStructuredSelection selection; + + /** + * Remember the workbench during initialization. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IWorkbench workbench; + + /** + * Caches the names of the types that can be created as the root object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected List<String> initialObjectNames; + + /** + * This just records the information. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void init(IWorkbench workbench, IStructuredSelection selection) + { + this.workbench = workbench; + this.selection = selection; + setWindowTitle(PreferencesEditorPlugin.INSTANCE.getString("_UI_Wizard_label")); + setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(PreferencesEditorPlugin.INSTANCE.getImage("full/wizban/NewPreferences"))); + } + + /** + * Returns the names of the types that can be created as the root object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<String> getInitialObjectNames() + { + if (initialObjectNames == null) + { + initialObjectNames = new ArrayList<String>(); + for (EClassifier eClassifier : preferencesPackage.getEClassifiers()) + { + if (eClassifier instanceof EClass) + { + EClass eClass = (EClass)eClassifier; + if (!eClass.isAbstract()) + { + initialObjectNames.add(eClass.getName()); + } + } + } + Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator()); + } + return initialObjectNames; + } + + /** + * Create a new model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EObject createInitialModel() + { + EClass eClass = (EClass)preferencesPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName()); + EObject rootObject = preferencesFactory.create(eClass); + return rootObject; + } + + /** + * Do the work after everything is specified. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean performFinish() + { + try + { + // Remember the file. + // + final IFile modelFile = getModelFile(); + + // Do the work within an operation. + // + WorkspaceModifyOperation operation = + new WorkspaceModifyOperation() + { + @Override + protected void execute(IProgressMonitor progressMonitor) + { + try + { + // Create a resource set + // + ResourceSet resourceSet = new ResourceSetImpl(); + + // Get the URI of the model file. + // + URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true); + + // Create a resource for this file. + // + Resource resource = resourceSet.createResource(fileURI); + + // Add the initial model object to the contents. + // + EObject rootObject = createInitialModel(); + if (rootObject != null) + { + resource.getContents().add(rootObject); + } + + // Save the contents of the resource to the file system. + // + Map<Object, Object> options = new HashMap<Object, Object>(); + options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding()); + resource.save(options); + } + catch (Exception exception) + { + PreferencesEditorPlugin.INSTANCE.log(exception); + } + finally + { + progressMonitor.done(); + } + } + }; + + getContainer().run(false, false, operation); + + // Select the new file resource in the current view. + // + IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow(); + IWorkbenchPage page = workbenchWindow.getActivePage(); + final IWorkbenchPart activePart = page.getActivePart(); + if (activePart instanceof ISetSelectionTarget) + { + final ISelection targetSelection = new StructuredSelection(modelFile); + getShell().getDisplay().asyncExec + (new Runnable() + { + public void run() + { + ((ISetSelectionTarget)activePart).selectReveal(targetSelection); + } + }); + } + + // Open an editor on the new file. + // + try + { + page.openEditor + (new FileEditorInput(modelFile), + workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId()); + } + catch (PartInitException exception) + { + MessageDialog.openError(workbenchWindow.getShell(), PreferencesEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage()); + return false; + } + + return true; + } + catch (Exception exception) + { + PreferencesEditorPlugin.INSTANCE.log(exception); + return false; + } + } + + /** + * This is the one page of the wizard. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public class PreferencesModelWizardNewFileCreationPage extends WizardNewFileCreationPage + { + /** + * Pass in the selection. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferencesModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) + { + super(pageId, selection); + } + + /** + * The framework calls this to see if the file is correct. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected boolean validatePage() + { + if (super.validatePage()) + { + String extension = new Path(getFileName()).getFileExtension(); + if (extension == null || !FILE_EXTENSIONS.contains(extension)) + { + String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension"; + setErrorMessage(PreferencesEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS })); + return false; + } + return true; + } + return false; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IFile getModelFile() + { + return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName())); + } + } + + /** + * This is the page where the type of object to create is selected. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public class PreferencesModelWizardInitialObjectCreationPage extends WizardPage + { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Combo initialObjectField; + + /** + * @generated + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + */ + protected List<String> encodings; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Combo encodingField; + + /** + * Pass in the selection. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferencesModelWizardInitialObjectCreationPage(String pageId) + { + super(pageId); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createControl(Composite parent) + { + Composite composite = new Composite(parent, SWT.NONE); + { + GridLayout layout = new GridLayout(); + layout.numColumns = 1; + layout.verticalSpacing = 12; + composite.setLayout(layout); + + GridData data = new GridData(); + data.verticalAlignment = GridData.FILL; + data.grabExcessVerticalSpace = true; + data.horizontalAlignment = GridData.FILL; + composite.setLayoutData(data); + } + + Label containerLabel = new Label(composite, SWT.LEFT); + { + containerLabel.setText(PreferencesEditorPlugin.INSTANCE.getString("_UI_ModelObject")); + + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + containerLabel.setLayoutData(data); + } + + initialObjectField = new Combo(composite, SWT.BORDER); + { + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + data.grabExcessHorizontalSpace = true; + initialObjectField.setLayoutData(data); + } + + for (String objectName : getInitialObjectNames()) + { + initialObjectField.add(getLabel(objectName)); + } + + if (initialObjectField.getItemCount() == 1) + { + initialObjectField.select(0); + } + initialObjectField.addModifyListener(validator); + + Label encodingLabel = new Label(composite, SWT.LEFT); + { + encodingLabel.setText(PreferencesEditorPlugin.INSTANCE.getString("_UI_XMLEncoding")); + + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + encodingLabel.setLayoutData(data); + } + encodingField = new Combo(composite, SWT.BORDER); + { + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + data.grabExcessHorizontalSpace = true; + encodingField.setLayoutData(data); + } + + for (String encoding : getEncodings()) + { + encodingField.add(encoding); + } + + encodingField.select(0); + encodingField.addModifyListener(validator); + + setPageComplete(validatePage()); + setControl(composite); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ModifyListener validator = + new ModifyListener() + { + public void modifyText(ModifyEvent e) + { + setPageComplete(validatePage()); + } + }; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected boolean validatePage() + { + return getInitialObjectName() != null && getEncodings().contains(encodingField.getText()); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setVisible(boolean visible) + { + super.setVisible(visible); + if (visible) + { + if (initialObjectField.getItemCount() == 1) + { + initialObjectField.clearSelection(); + encodingField.setFocus(); + } + else + { + encodingField.clearSelection(); + initialObjectField.setFocus(); + } + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getInitialObjectName() + { + String label = initialObjectField.getText(); + + for (String name : getInitialObjectNames()) + { + if (getLabel(name).equals(label)) + { + return name; + } + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getEncoding() + { + return encodingField.getText(); + } + + /** + * Returns the label for the specified type name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected String getLabel(String typeName) + { + try + { + return PreferencesEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type"); + } + catch(MissingResourceException mre) + { + PreferencesEditorPlugin.INSTANCE.log(mre); + } + return typeName; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<String> getEncodings() + { + if (encodings == null) + { + encodings = new ArrayList<String>(); + for (StringTokenizer stringTokenizer = new StringTokenizer(PreferencesEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) + { + encodings.add(stringTokenizer.nextToken()); + } + } + return encodings; + } + } + + /** + * The framework calls this to create the contents of the wizard. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void addPages() + { + // Create a page, set the title, and the initial model file name. + // + newFileCreationPage = new PreferencesModelWizardNewFileCreationPage("Whatever", selection); + newFileCreationPage.setTitle(PreferencesEditorPlugin.INSTANCE.getString("_UI_PreferencesModelWizard_label")); + newFileCreationPage.setDescription(PreferencesEditorPlugin.INSTANCE.getString("_UI_PreferencesModelWizard_description")); + newFileCreationPage.setFileName(PreferencesEditorPlugin.INSTANCE.getString("_UI_PreferencesEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0)); + addPage(newFileCreationPage); + + // Try and get the resource selection to determine a current directory for the file dialog. + // + if (selection != null && !selection.isEmpty()) + { + // Get the resource... + // + Object selectedElement = selection.iterator().next(); + if (selectedElement instanceof IResource) + { + // Get the resource parent, if its a file. + // + IResource selectedResource = (IResource)selectedElement; + if (selectedResource.getType() == IResource.FILE) + { + selectedResource = selectedResource.getParent(); + } + + // This gives us a directory... + // + if (selectedResource instanceof IFolder || selectedResource instanceof IProject) + { + // Set this for the container. + // + newFileCreationPage.setContainerFullPath(selectedResource.getFullPath()); + + // Make up a unique new name here. + // + String defaultModelBaseFilename = PreferencesEditorPlugin.INSTANCE.getString("_UI_PreferencesEditorFilenameDefaultBase"); + String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0); + String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension; + for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) + { + modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension; + } + newFileCreationPage.setFileName(modelFilename); + } + } + } + initialObjectCreationPage = new PreferencesModelWizardInitialObjectCreationPage("Whatever2"); + initialObjectCreationPage.setTitle(PreferencesEditorPlugin.INSTANCE.getString("_UI_PreferencesModelWizard_label")); + initialObjectCreationPage.setDescription(PreferencesEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description")); + addPage(initialObjectCreationPage); + } + + /** + * Get the file from the page. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IFile getModelFile() + { + return newFileCreationPage.getModelFile(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.classpath b/plugins/org.eclipse.emf.cdo.releng.preferences/.classpath index 304e86186a..64c5e31b7a 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.classpath +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.classpath @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"/> <classpathentry kind="output" path="bin"/> </classpath> diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/.project b/plugins/org.eclipse.emf.cdo.releng.preferences/.project new file mode 100644 index 0000000000..50872be487 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.project @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.emf.cdo.releng.preferences</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.emf.cdo.releng.version.VersionNature</nature> + </natures> +</projectDescription> diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000..a4a4bde1e6 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding//model/preferences.ecorediag=UTF-8 diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..48aafaf7ea --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,381 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +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.doc.comment.support=enabled +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.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +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.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +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=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +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=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +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.unusedObjectAllocation=ignore +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.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled +org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW +org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED +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=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=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true +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=false +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=120 +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=2 +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=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=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=do not 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=space +org.eclipse.jdt.core.formatter.tabulation.size=2 +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/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000000..3fc140fcdc --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,119 @@ +cleanup.add_default_serial_version_id=true +cleanup.add_generated_serial_version_id=false +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=false +cleanup.always_use_this_for_non_static_method_access=false +cleanup.convert_to_enhanced_for_loop=false +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=false +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=false +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=false +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=false +cleanup.qualify_static_method_accesses_with_declaring_class=false +cleanup.remove_private_constructors=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_parentheses_in_expressions=true +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=true +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=true +cleanup_profile=_EMFT +cleanup_settings_version=2 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +formatter_profile=_EMFT +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=ex +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.ignorelowercasenames=true +org.eclipse.jdt.ui.importorder=org.eclipse.emf.cdo;org.eclipse.emf.internal.cdo;org.eclipse.net4j;org.eclipse.internal.net4j;org.eclipse.emf;org.eclipse;com;org;javax;java; +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=false +org.eclipse.jdt.ui.ondemandthreshold=99 +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.staticondemandthreshold=99 +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" 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 * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made 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 * Eike Stepper - initial API and implementation\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 * @author Eike Stepper\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" 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">${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${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}</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> +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=false +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=false +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=false +sp_cleanup.make_parameters_final=false +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=false +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=true +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=true +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.ltk.core.refactoring.prefs new file mode 100644 index 0000000000..864e30fe5d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.ltk.core.refactoring.prefs @@ -0,0 +1,3 @@ +#Thu Feb 04 09:44:24 CET 2010 +eclipse.preferences.version=1 +org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.mylyn.tasks.ui.prefs new file mode 100644 index 0000000000..b050639a54 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.mylyn.tasks.ui.prefs @@ -0,0 +1,4 @@ +#Thu Feb 04 09:44:24 CET 2010 +eclipse.preferences.version=1 +project.repository.kind=bugzilla +project.repository.url=https\://bugs.eclipse.org/bugs diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.mylyn.team.ui.prefs new file mode 100644 index 0000000000..2f50f36c0c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.mylyn.team.ui.prefs @@ -0,0 +1,3 @@ +#Thu Feb 04 09:44:24 CET 2010 +commit.comment.template=[${task.id}] ${task.description} \r\n${task.url} +eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.pde.api.tools.prefs new file mode 100644 index 0000000000..0c17d59e45 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.pde.api.tools.prefs @@ -0,0 +1,95 @@ +#Thu Feb 04 09:44:24 CET 2010 +ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error +ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error +CLASS_ELEMENT_TYPE_ADDED_METHOD=Error +CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error +CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error +CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error +CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error +ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error +ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error +ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +FIELD_ELEMENT_TYPE_ADDED_VALUE=Error +FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error +FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error +FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error +FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error +ILLEGAL_EXTEND=Warning +ILLEGAL_IMPLEMENT=Warning +ILLEGAL_INSTANTIATE=Warning +ILLEGAL_OVERRIDE=Warning +ILLEGAL_REFERENCE=Warning +INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error +INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error +INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error +INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +INVALID_JAVADOC_TAG=Ignore +INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error +MISSING_EE_DESCRIPTIONS=Warning +LEAK_EXTEND=Warning +LEAK_FIELD_DECL=Warning +LEAK_IMPLEMENT=Warning +LEAK_METHOD_PARAM=Warning +LEAK_METHOD_RETURN_TYPE=Warning +METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error +METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error +UNUSED_PROBLEM_FILTERS=Ignore +automatically_removed_unused_problem_filters=Disabled +eclipse.preferences.version=1 +incompatible_api_component_version=Error +incompatible_api_component_version_include_major_without_breaking_change=Disabled +incompatible_api_component_version_include_minor_without_api_change=Disabled +invalid_since_tag_version=Error +malformed_since_tag=Error +missing_since_tag=Error +report_api_breakage_when_major_version_incremented=Disabled +report_resolution_errors_api_component=Warning diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.pde.prefs new file mode 100644 index 0000000000..fe01bb701d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.pde.prefs @@ -0,0 +1,31 @@ +#Thu Feb 04 09:44:24 CET 2010 +compilers.f.unresolved-features=1 +compilers.f.unresolved-plugins=1 +compilers.incompatible-environment=1 +compilers.p.build=1 +compilers.p.build.bin.includes=1 +compilers.p.build.java.compliance=1 +compilers.p.build.missing.output=2 +compilers.p.build.output.library=1 +compilers.p.build.source.library=1 +compilers.p.build.src.includes=1 +compilers.p.deprecated=2 +compilers.p.discouraged-class=1 +compilers.p.internal=1 +compilers.p.missing-packages=1 +compilers.p.missing-version-export-package=1 +compilers.p.missing-version-import-package=1 +compilers.p.missing-version-require-bundle=1 +compilers.p.no-required-att=0 +compilers.p.not-externalized-att=2 +compilers.p.unknown-attribute=1 +compilers.p.unknown-class=1 +compilers.p.unknown-element=1 +compilers.p.unknown-identifier=1 +compilers.p.unknown-resource=1 +compilers.p.unresolved-ex-points=0 +compilers.p.unresolved-import=0 +compilers.s.create-docs=false +compilers.s.doc-folder=doc +compilers.s.open-tags=1 +eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.preferences/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..3ebff5f668 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/META-INF/MANIFEST.MF @@ -0,0 +1,16 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-SymbolicName: org.eclipse.emf.cdo.releng.preferences;singleton:=true +Bundle-Version: 1.0.200.qualifier +Bundle-ClassPath: . +Bundle-Name: %pluginName +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", + org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)";visibility:=reexport, + org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)" +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.eclipse.emf.cdo.releng.preferences, + org.eclipse.emf.cdo.releng.preferences.impl, + org.eclipse.emf.cdo.releng.preferences.util diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/about.html b/plugins/org.eclipse.emf.cdo.releng.preferences/about.html index d35d5aed64..d35d5aed64 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/about.html +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/about.html diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/about.ini b/plugins/org.eclipse.emf.cdo.releng.preferences/about.ini new file mode 100644 index 0000000000..32006ae5d6 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/about.ini @@ -0,0 +1,15 @@ +# about.ini +# contains information about a feature +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# "%key" are externalized strings defined in about.properties +# This file does not need to be translated. + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=%featureText + +# Property "featureImage" contains path to feature image (32x32) +featureImage=modeling32.png + +# Property "appName" contains name of the application (translated) +appName=%featureName + diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/about.mappings b/plugins/org.eclipse.emf.cdo.releng.preferences/about.mappings new file mode 100644 index 0000000000..bddaab4310 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/about.mappings @@ -0,0 +1,6 @@ +# about.mappings +# contains fill-ins for about.properties +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file does not need to be translated. + +0=@build@
\ No newline at end of file diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/about.properties b/plugins/org.eclipse.emf.cdo.releng.preferences/about.properties new file mode 100644 index 0000000000..9134ef220b --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/about.properties @@ -0,0 +1,31 @@ +# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Eike Stepper - initial API and implementation + +# NLS_MESSAGEFORMAT_VAR + +# ============================================================================== +# Do not change the properties between this line and the last line containing: +# %%% END OF TRANSLATED PROPERTIES %%% +# Instead, either redefine an existing property, or create a new property, +# append it to the end of the file, and change the code to use the new name. +# ============================================================================== + +featureName = CDO Release Engineering Dynamic Working Sets +featureText = CDO Release Engineering Dynamic Working Sets\n\ +Version: {featureVersion}\n\ +Build id: {0}\n\ +\n\ +Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. All rights reserved.\n\ +\n\ +Visit http://www.eclipse.org/cdo + +# ============================================================================== +# %%% END OF TRANSLATED PROPERTIES %%% +# The above properties have been shipped for translation. +# ============================================================================== diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/build.properties b/plugins/org.eclipse.emf.cdo.releng.preferences/build.properties new file mode 100644 index 0000000000..eb09361899 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/build.properties @@ -0,0 +1,28 @@ +# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Eike Stepper - initial API and implementation + +# NLS_MESSAGEFORMAT_VAR + +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml,\ + about.html,\ + about.ini,\ + about.mappings,\ + about.properties,\ + copyright.txt,\ + modeling32.png,\ + plugin.properties,\ + model/ +src.includes = about.html,\ + copyright.txt + +generateSourceReferences = true diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/copyright.txt b/plugins/org.eclipse.emf.cdo.releng.preferences/copyright.txt index 1c77978050..1c77978050 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/copyright.txt +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/copyright.txt diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.ecore b/plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.ecore new file mode 100644 index 0000000000..cf39a96d45 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.ecore @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="preferences" nsURI="http://www.eclipse.org/CDO/releng/preferences/1.0" + nsPrefix="preferences"> + <eClassifiers xsi:type="ecore:EClass" name="PreferenceNode"> + <eOperations name="getNode" eType="#//PreferenceNode"> + <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eOperations> + <eOperations name="getProperty" eType="#//Property"> + <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EReference" name="children" upperBound="-1" + eType="#//PreferenceNode" containment="true" eOpposite="#//PreferenceNode/parent" + eKeys="#//PreferenceNode/name"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//PreferenceNode" + eOpposite="#//PreferenceNode/children"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1" + eType="#//Property" containment="true" eOpposite="#//Property/parent" eKeys="#//Property/name"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="location" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" volatile="true" transient="true" derived="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Property"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//PreferenceNode" + eOpposite="#//PreferenceNode/properties"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//EscapedString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EscapedString" instanceClassName="java.lang.String"/> +</ecore:EPackage> diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.ecorediag b/plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.ecorediag new file mode 100644 index 0000000000..4521c46fac --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.ecorediag @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="UTF-8"?> +<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_nIq4kAWgEeOo7_Wc1UIK7A" type="EcoreTools" measurementUnit="Pixel"> + <children xmi:type="notation:Node" xmi:id="_xuHNQAWgEeOo7_Wc1UIK7A" type="1001"> + <children xmi:type="notation:Node" xmi:id="_xuJCcAWgEeOo7_Wc1UIK7A" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_xuKQkAWgEeOo7_Wc1UIK7A" type="5001"> + <children xmi:type="notation:Node" xmi:id="_ixYSwAWhEeOo7_Wc1UIK7A" type="2001"> + <element xmi:type="ecore:EAttribute" href="preferences.ecore#//PreferenceNode/name"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_ixYSwQWhEeOo7_Wc1UIK7A"/> + </children> + <children xmi:type="notation:Node" xmi:id="_fbxAcAfTEeOoPqB4RyWmHw" type="2001"> + <element xmi:type="ecore:EAttribute" href="preferences.ecore#//PreferenceNode/location"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_fbxAcQfTEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_xuKQkQWgEeOo7_Wc1UIK7A"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_xuKQkgWgEeOo7_Wc1UIK7A"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_xuKQkwWgEeOo7_Wc1UIK7A"/> + </children> + <children xmi:type="notation:Node" xmi:id="_xuK3oAWgEeOo7_Wc1UIK7A" type="5002"> + <children xmi:type="notation:Node" xmi:id="_bXFZcAZnEeOxTbyYFvrvrA" type="2002"> + <element xmi:type="ecore:EOperation" href="preferences.ecore#//PreferenceNode/getNode"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_bXFZcQZnEeOxTbyYFvrvrA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_uu_CQAZnEeOxTbyYFvrvrA" type="2002"> + <element xmi:type="ecore:EOperation" href="preferences.ecore#//PreferenceNode/getProperty"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_uu_CQQZnEeOxTbyYFvrvrA"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_xuK3oQWgEeOo7_Wc1UIK7A"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_xuK3ogWgEeOo7_Wc1UIK7A"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_xuK3owWgEeOo7_Wc1UIK7A"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_xuHNQQWgEeOo7_Wc1UIK7A" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="preferences.ecore#//PreferenceNode"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xuHNQgWgEeOo7_Wc1UIK7A" x="195" y="45" width="378" height="138"/> + </children> + <children xmi:type="notation:Node" xmi:id="_aTA_UAWhEeOo7_Wc1UIK7A" type="1001"> + <children xmi:type="notation:Node" xmi:id="_aTCNcAWhEeOo7_Wc1UIK7A" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_aTC0gAWhEeOo7_Wc1UIK7A" type="5001"> + <children xmi:type="notation:Node" xmi:id="_lyxAIAWhEeOo7_Wc1UIK7A" type="2001"> + <element xmi:type="ecore:EAttribute" href="preferences.ecore#//Property/name"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_lyxAIQWhEeOo7_Wc1UIK7A"/> + </children> + <children xmi:type="notation:Node" xmi:id="_7mlRwAWhEeOo7_Wc1UIK7A" type="2001"> + <element xmi:type="ecore:EAttribute" href="preferences.ecore#//Property/value"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_7mlRwQWhEeOo7_Wc1UIK7A"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_aTC0gQWhEeOo7_Wc1UIK7A"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_aTC0ggWhEeOo7_Wc1UIK7A"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_aTC0gwWhEeOo7_Wc1UIK7A"/> + </children> + <children xmi:type="notation:Node" xmi:id="_aTDbkAWhEeOo7_Wc1UIK7A" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_aTDbkQWhEeOo7_Wc1UIK7A"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_aTDbkgWhEeOo7_Wc1UIK7A"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_aTDbkwWhEeOo7_Wc1UIK7A"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_aTA_UQWhEeOo7_Wc1UIK7A" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="preferences.ecore#//Property"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aTA_UgWhEeOo7_Wc1UIK7A" x="195" y="360"/> + </children> + <children xmi:type="notation:Node" xmi:id="_Z3I7YAZAEeOo7_Wc1UIK7A" type="1004"> + <children xmi:type="notation:Node" xmi:id="_Z3JicAZAEeOo7_Wc1UIK7A" type="4008"/> + <children xmi:type="notation:Node" xmi:id="_Z3JicQZAEeOo7_Wc1UIK7A" type="4009"/> + <styles xmi:type="notation:ShapeStyle" xmi:id="_Z3I7YQZAEeOo7_Wc1UIK7A" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EDataType" href="preferences.ecore#//EscapedString"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z3I7YgZAEeOo7_Wc1UIK7A" x="690" y="60"/> + </children> + <styles xmi:type="notation:DiagramStyle" xmi:id="_nIq4kQWgEeOo7_Wc1UIK7A"/> + <element xmi:type="ecore:EPackage" href="preferences.ecore#/"/> + <edges xmi:type="notation:Edge" xmi:id="_3HgT0AWgEeOo7_Wc1UIK7A" type="3002" source="_xuHNQAWgEeOo7_Wc1UIK7A" target="_xuHNQAWgEeOo7_Wc1UIK7A"> + <children xmi:type="notation:Node" xmi:id="_3Hhh8AWgEeOo7_Wc1UIK7A" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_3Hhh8QWgEeOo7_Wc1UIK7A" x="-43" y="15"/> + </children> + <children xmi:type="notation:Node" xmi:id="_3Hhh8gWgEeOo7_Wc1UIK7A" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_3Hhh8wWgEeOo7_Wc1UIK7A" x="6" y="25"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_3HgT0QWgEeOo7_Wc1UIK7A" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_3HgT0gWgEeOo7_Wc1UIK7A" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="preferences.ecore#//PreferenceNode/children"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3HgT0wWgEeOo7_Wc1UIK7A" points="[294, 45, 156, 45]$[294, 165, 156, 165]$[204, 165, 66, 165]$[204, 45, 66, 45]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8Y6GUQZAEeOo7_Wc1UIK7A" id="(0.10416666666666667,0.5102040816326531)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8Y6GUgZAEeOo7_Wc1UIK7A" id="(0.5,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_7i4S8AWgEeOo7_Wc1UIK7A" type="3002" source="_xuHNQAWgEeOo7_Wc1UIK7A" target="_xuHNQAWgEeOo7_Wc1UIK7A"> + <children xmi:type="notation:Node" xmi:id="_7i4S9AWgEeOo7_Wc1UIK7A" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_7i4S9QWgEeOo7_Wc1UIK7A" x="-3" y="19"/> + </children> + <children xmi:type="notation:Node" xmi:id="_7i46AAWgEeOo7_Wc1UIK7A" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_7i46AQWgEeOo7_Wc1UIK7A" x="24" y="-26"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_7i4S8QWgEeOo7_Wc1UIK7A" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_7i4S8gWgEeOo7_Wc1UIK7A" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="preferences.ecore#//PreferenceNode/parent"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7i4S8wWgEeOo7_Wc1UIK7A" points="[66, 45, 204, 45]$[66, 165, 204, 165]$[156, 165, 294, 165]$[156, 45, 294, 45]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sGYoUAZnEeOxTbyYFvrvrA" id="(0.5,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sGYoUQZnEeOxTbyYFvrvrA" id="(0.10416666666666667,0.5102040816326531)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_cXdjUAWhEeOo7_Wc1UIK7A" type="3002" source="_xuHNQAWgEeOo7_Wc1UIK7A" target="_aTA_UAWhEeOo7_Wc1UIK7A"> + <children xmi:type="notation:Node" xmi:id="_cXexcAWhEeOo7_Wc1UIK7A" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_cXexcQWhEeOo7_Wc1UIK7A" x="-14" y="-66"/> + </children> + <children xmi:type="notation:Node" xmi:id="_cXfYgAWhEeOo7_Wc1UIK7A" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_cXfYgQWhEeOo7_Wc1UIK7A" x="-14" y="36"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_cXdjUQWhEeOo7_Wc1UIK7A" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_cXdjUgWhEeOo7_Wc1UIK7A" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="preferences.ecore#//PreferenceNode/properties"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cXdjUwWhEeOo7_Wc1UIK7A" points="[-84, 45, 4, -237]$[-84, 270, 4, -12]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tbLRAgZnEeOxTbyYFvrvrA" id="(0.5,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tbLRAwZnEeOxTbyYFvrvrA" id="(0.45098039215686275,0.14285714285714285)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_03JlUAWhEeOo7_Wc1UIK7A" type="3002" source="_aTA_UAWhEeOo7_Wc1UIK7A" target="_xuHNQAWgEeOo7_Wc1UIK7A"> + <children xmi:type="notation:Node" xmi:id="_03KzcAWhEeOo7_Wc1UIK7A" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_03KzcQWhEeOo7_Wc1UIK7A" x="-20" y="-35"/> + </children> + <children xmi:type="notation:Node" xmi:id="_03LagAWhEeOo7_Wc1UIK7A" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_03LagQWhEeOo7_Wc1UIK7A" x="-20" y="28"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_03JlUQWhEeOo7_Wc1UIK7A" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_03JlUgWhEeOo7_Wc1UIK7A" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="preferences.ecore#//Property/parent"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_03JlUwWhEeOo7_Wc1UIK7A" points="[4, -12, -84, 270]$[4, -237, -84, 45]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5ttEkAWhEeOo7_Wc1UIK7A" id="(0.45098039215686275,0.14285714285714285)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5ttEkQWhEeOo7_Wc1UIK7A" id="(0.5,0.5)"/> + </edges> +</notation:Diagram> diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.genmodel b/plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.genmodel new file mode 100644 index 0000000000..62596def78 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.genmodel @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" + xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.cdo.releng.preferences/src" creationIcons="false" + modelPluginID="org.eclipse.emf.cdo.releng.preferences" modelName="Preferences" + rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" importerID="org.eclipse.emf.importer.ecore" + complianceLevel="5.0" copyrightFields="false" operationReflection="true" importOrganizing="true"> + <foreignModel>preferences.ecore</foreignModel> + <genPackages prefix="Preferences" basePackage="org.eclipse.emf.cdo.releng" disposableProviderFactory="true" + multipleEditorPages="false" ecorePackage="preferences.ecore#/"> + <genClasses ecoreClass="preferences.ecore#//PreferenceNode"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference preferences.ecore#//PreferenceNode/children"/> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference preferences.ecore#//PreferenceNode/parent"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference preferences.ecore#//PreferenceNode/properties"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute preferences.ecore#//PreferenceNode/name"/> + </genClasses> + <genClasses ecoreClass="preferences.ecore#//Property"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute preferences.ecore#//Property/name"/> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference preferences.ecore#//Property/parent"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute preferences.ecore#//Property/value"/> + </genClasses> + </genPackages> +</genmodel:GenModel> diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/modeling32.png b/plugins/org.eclipse.emf.cdo.releng.preferences/modeling32.png Binary files differnew file mode 100644 index 0000000000..6b08de2ada --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/modeling32.png diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.preferences/plugin.properties new file mode 100644 index 0000000000..63fbb1d409 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/plugin.properties @@ -0,0 +1,11 @@ +# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Eike Stepper - initial API and implementation + +pluginName = CDO Release Engineering Dynamic Working Sets +providerName = Eclipse Modeling Project diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.preferences/plugin.xml new file mode 100644 index 0000000000..479676ab3c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/plugin.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.4"?> +<!-- + Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + Eike Stepper - initial API and implementation +--> + +<plugin> + <extension point="org.eclipse.emf.ecore.generated_package"> + <!-- @generated preferences --> + <package + uri="http://www.eclipse.org/CDO/releng/preferences/1.0" + class="org.eclipse.emf.cdo.releng.preferences.PreferencesPackage" + genModel="model/preferences.genmodel"/> + </extension> + +</plugin> diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferenceNode.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferenceNode.java new file mode 100644 index 0000000000..35c5597b3c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferenceNode.java @@ -0,0 +1,152 @@ +/** + */ +package org.eclipse.emf.cdo.releng.preferences; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Preference Node</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getChildren <em>Children</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getParent <em>Parent</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getProperties <em>Properties</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getLocation <em>Location</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getPreferenceNode() + * @model + * @generated + */ +public interface PreferenceNode extends EObject +{ + /** + * Returns the value of the '<em><b>Children</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode}. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getParent <em>Parent</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Children</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Children</em>' containment reference list. + * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getPreferenceNode_Children() + * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getParent + * @model opposite="parent" containment="true" keys="name" + * @generated + */ + EList<PreferenceNode> getChildren(); + + /** + * Returns the value of the '<em><b>Parent</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getChildren <em>Children</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Parent</em>' container reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Parent</em>' container reference. + * @see #setParent(PreferenceNode) + * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getPreferenceNode_Parent() + * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getChildren + * @model opposite="children" transient="false" + * @generated + */ + PreferenceNode getParent(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getParent <em>Parent</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Parent</em>' container reference. + * @see #getParent() + * @generated + */ + void setParent(PreferenceNode value); + + /** + * Returns the value of the '<em><b>Properties</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.preferences.Property}. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.preferences.Property#getParent <em>Parent</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Properties</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Properties</em>' containment reference list. + * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getPreferenceNode_Properties() + * @see org.eclipse.emf.cdo.releng.preferences.Property#getParent + * @model opposite="parent" containment="true" keys="name" + * @generated + */ + EList<Property> getProperties(); + + /** + * Returns the value of the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Name</em>' attribute. + * @see #setName(String) + * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getPreferenceNode_Name() + * @model required="true" + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getName <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Name</em>' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the '<em><b>Location</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Location</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Location</em>' attribute. + * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getPreferenceNode_Location() + * @model transient="true" changeable="false" volatile="true" derived="true" + * @generated + */ + String getLocation(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model + * @generated + */ + PreferenceNode getNode(String name); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model + * @generated + */ + Property getProperty(String name); + +} // PreferenceNode diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferencesFactory.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferencesFactory.java new file mode 100644 index 0000000000..427a8cb217 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferencesFactory.java @@ -0,0 +1,52 @@ +/** + */ +package org.eclipse.emf.cdo.releng.preferences; + +import org.eclipse.emf.ecore.EFactory; + +/** + * <!-- begin-user-doc --> + * The <b>Factory</b> for the model. + * It provides a create method for each non-abstract class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage + * @generated + */ +public interface PreferencesFactory extends EFactory +{ + /** + * The singleton instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + PreferencesFactory eINSTANCE = org.eclipse.emf.cdo.releng.preferences.impl.PreferencesFactoryImpl.init(); + + /** + * Returns a new object of class '<em>Preference Node</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Preference Node</em>'. + * @generated + */ + PreferenceNode createPreferenceNode(); + + /** + * Returns a new object of class '<em>Property</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Property</em>'. + * @generated + */ + Property createProperty(); + + /** + * Returns the package supported by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the package supported by this factory. + * @generated + */ + PreferencesPackage getPreferencesPackage(); + +} //PreferencesFactory diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferencesPackage.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferencesPackage.java new file mode 100644 index 0000000000..d8b8bf4ece --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferencesPackage.java @@ -0,0 +1,495 @@ +/** + */ +package org.eclipse.emf.cdo.releng.preferences; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +/** + * <!-- begin-user-doc --> + * The <b>Package</b> for the model. + * It contains accessors for the meta objects to represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.preferences.PreferencesFactory + * @model kind="package" + * @generated + */ +public interface PreferencesPackage extends EPackage +{ + /** + * The package name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNAME = "preferences"; + + /** + * The package namespace URI. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_URI = "http://www.eclipse.org/CDO/releng/preferences/1.0"; + + /** + * The package namespace name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_PREFIX = "preferences"; + + /** + * The singleton instance of the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + PreferencesPackage eINSTANCE = org.eclipse.emf.cdo.releng.preferences.impl.PreferencesPackageImpl.init(); + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.preferences.impl.PreferenceNodeImpl <em>Preference Node</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.preferences.impl.PreferenceNodeImpl + * @see org.eclipse.emf.cdo.releng.preferences.impl.PreferencesPackageImpl#getPreferenceNode() + * @generated + */ + int PREFERENCE_NODE = 0; + + /** + * The feature id for the '<em><b>Children</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_NODE__CHILDREN = 0; + + /** + * The feature id for the '<em><b>Parent</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_NODE__PARENT = 1; + + /** + * The feature id for the '<em><b>Properties</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_NODE__PROPERTIES = 2; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_NODE__NAME = 3; + + /** + * The feature id for the '<em><b>Location</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_NODE__LOCATION = 4; + + /** + * The number of structural features of the '<em>Preference Node</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_NODE_FEATURE_COUNT = 5; + + /** + * The operation id for the '<em>Get Node</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_NODE___GET_NODE__STRING = 0; + + /** + * The operation id for the '<em>Get Property</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_NODE___GET_PROPERTY__STRING = 1; + + /** + * The number of operations of the '<em>Preference Node</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_NODE_OPERATION_COUNT = 2; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.preferences.impl.PropertyImpl <em>Property</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.preferences.impl.PropertyImpl + * @see org.eclipse.emf.cdo.releng.preferences.impl.PreferencesPackageImpl#getProperty() + * @generated + */ + int PROPERTY = 1; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PROPERTY__NAME = 0; + + /** + * The feature id for the '<em><b>Parent</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PROPERTY__PARENT = 1; + + /** + * The feature id for the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PROPERTY__VALUE = 2; + + /** + * The number of structural features of the '<em>Property</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PROPERTY_FEATURE_COUNT = 3; + + /** + * The number of operations of the '<em>Property</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PROPERTY_OPERATION_COUNT = 0; + + + /** + * The meta object id for the '<em>Escaped String</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see java.lang.String + * @see org.eclipse.emf.cdo.releng.preferences.impl.PreferencesPackageImpl#getEscapedString() + * @generated + */ + int ESCAPED_STRING = 2; + + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode <em>Preference Node</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Preference Node</em>'. + * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode + * @generated + */ + EClass getPreferenceNode(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getChildren <em>Children</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Children</em>'. + * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getChildren() + * @see #getPreferenceNode() + * @generated + */ + EReference getPreferenceNode_Children(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getParent <em>Parent</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Parent</em>'. + * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getParent() + * @see #getPreferenceNode() + * @generated + */ + EReference getPreferenceNode_Parent(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getProperties <em>Properties</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Properties</em>'. + * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getProperties() + * @see #getPreferenceNode() + * @generated + */ + EReference getPreferenceNode_Properties(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getName <em>Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getName() + * @see #getPreferenceNode() + * @generated + */ + EAttribute getPreferenceNode_Name(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getLocation <em>Location</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Location</em>'. + * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getLocation() + * @see #getPreferenceNode() + * @generated + */ + EAttribute getPreferenceNode_Location(); + + /** + * Returns the meta object for the '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getNode(java.lang.String) <em>Get Node</em>}' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the '<em>Get Node</em>' operation. + * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getNode(java.lang.String) + * @generated + */ + EOperation getPreferenceNode__GetNode__String(); + + /** + * Returns the meta object for the '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getProperty(java.lang.String) <em>Get Property</em>}' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the '<em>Get Property</em>' operation. + * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getProperty(java.lang.String) + * @generated + */ + EOperation getPreferenceNode__GetProperty__String(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.preferences.Property <em>Property</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Property</em>'. + * @see org.eclipse.emf.cdo.releng.preferences.Property + * @generated + */ + EClass getProperty(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.preferences.Property#getName <em>Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.emf.cdo.releng.preferences.Property#getName() + * @see #getProperty() + * @generated + */ + EAttribute getProperty_Name(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.preferences.Property#getParent <em>Parent</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Parent</em>'. + * @see org.eclipse.emf.cdo.releng.preferences.Property#getParent() + * @see #getProperty() + * @generated + */ + EReference getProperty_Parent(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.preferences.Property#getValue <em>Value</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Value</em>'. + * @see org.eclipse.emf.cdo.releng.preferences.Property#getValue() + * @see #getProperty() + * @generated + */ + EAttribute getProperty_Value(); + + /** + * Returns the meta object for data type '{@link java.lang.String <em>Escaped String</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for data type '<em>Escaped String</em>'. + * @see java.lang.String + * @model instanceClass="java.lang.String" + * @generated + */ + EDataType getEscapedString(); + + /** + * Returns the factory that creates the instances of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the factory that creates the instances of the model. + * @generated + */ + PreferencesFactory getPreferencesFactory(); + + /** + * <!-- begin-user-doc --> + * Defines literals for the meta objects that represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @generated + */ + interface Literals + { + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.preferences.impl.PreferenceNodeImpl <em>Preference Node</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.preferences.impl.PreferenceNodeImpl + * @see org.eclipse.emf.cdo.releng.preferences.impl.PreferencesPackageImpl#getPreferenceNode() + * @generated + */ + EClass PREFERENCE_NODE = eINSTANCE.getPreferenceNode(); + + /** + * The meta object literal for the '<em><b>Children</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PREFERENCE_NODE__CHILDREN = eINSTANCE.getPreferenceNode_Children(); + + /** + * The meta object literal for the '<em><b>Parent</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PREFERENCE_NODE__PARENT = eINSTANCE.getPreferenceNode_Parent(); + + /** + * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PREFERENCE_NODE__PROPERTIES = eINSTANCE.getPreferenceNode_Properties(); + + /** + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute PREFERENCE_NODE__NAME = eINSTANCE.getPreferenceNode_Name(); + + /** + * The meta object literal for the '<em><b>Location</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute PREFERENCE_NODE__LOCATION = eINSTANCE.getPreferenceNode_Location(); + + /** + * The meta object literal for the '<em><b>Get Node</b></em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EOperation PREFERENCE_NODE___GET_NODE__STRING = eINSTANCE.getPreferenceNode__GetNode__String(); + + /** + * The meta object literal for the '<em><b>Get Property</b></em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EOperation PREFERENCE_NODE___GET_PROPERTY__STRING = eINSTANCE.getPreferenceNode__GetProperty__String(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.preferences.impl.PropertyImpl <em>Property</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.preferences.impl.PropertyImpl + * @see org.eclipse.emf.cdo.releng.preferences.impl.PreferencesPackageImpl#getProperty() + * @generated + */ + EClass PROPERTY = eINSTANCE.getProperty(); + + /** + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute PROPERTY__NAME = eINSTANCE.getProperty_Name(); + + /** + * The meta object literal for the '<em><b>Parent</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PROPERTY__PARENT = eINSTANCE.getProperty_Parent(); + + /** + * The meta object literal for the '<em><b>Value</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute PROPERTY__VALUE = eINSTANCE.getProperty_Value(); + + /** + * The meta object literal for the '<em>Escaped String</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see java.lang.String + * @see org.eclipse.emf.cdo.releng.preferences.impl.PreferencesPackageImpl#getEscapedString() + * @generated + */ + EDataType ESCAPED_STRING = eINSTANCE.getEscapedString(); + + } + +} //PreferencesPackage diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/Property.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/Property.java new file mode 100644 index 0000000000..2df74423c5 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/Property.java @@ -0,0 +1,107 @@ +/** + */ +package org.eclipse.emf.cdo.releng.preferences; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Property</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.preferences.Property#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.preferences.Property#getParent <em>Parent</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.preferences.Property#getValue <em>Value</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getProperty() + * @model + * @generated + */ +public interface Property extends EObject +{ + /** + * Returns the value of the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Name</em>' attribute. + * @see #setName(String) + * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getProperty_Name() + * @model required="true" + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.preferences.Property#getName <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Name</em>' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the '<em><b>Parent</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getProperties <em>Properties</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Parent</em>' container reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Parent</em>' container reference. + * @see #setParent(PreferenceNode) + * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getProperty_Parent() + * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getProperties + * @model opposite="properties" transient="false" + * @generated + */ + PreferenceNode getParent(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.preferences.Property#getParent <em>Parent</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Parent</em>' container reference. + * @see #getParent() + * @generated + */ + void setParent(PreferenceNode value); + + /** + * Returns the value of the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Value</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Value</em>' attribute. + * @see #setValue(String) + * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getProperty_Value() + * @model dataType="org.eclipse.emf.cdo.releng.preferences.EscapedString" + * @generated + */ + String getValue(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.preferences.Property#getValue <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Value</em>' attribute. + * @see #getValue() + * @generated + */ + void setValue(String value); + +} // Property diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferenceNodeImpl.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferenceNodeImpl.java new file mode 100644 index 0000000000..92abb11f66 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferenceNodeImpl.java @@ -0,0 +1,543 @@ +/** + */ +package org.eclipse.emf.cdo.releng.preferences.impl; + +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; +import org.eclipse.emf.cdo.releng.preferences.PreferencesPackage; +import org.eclipse.emf.cdo.releng.preferences.Property; +import org.eclipse.emf.cdo.releng.preferences.util.PreferencesUtil; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.core.runtime.IPath; + +import org.osgi.service.prefs.BackingStoreException; +import org.osgi.service.prefs.Preferences; + +import java.lang.reflect.InvocationTargetException; +import java.util.Collection; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Preference Node</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.preferences.impl.PreferenceNodeImpl#getChildren <em>Children</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.preferences.impl.PreferenceNodeImpl#getParent <em>Parent</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.preferences.impl.PreferenceNodeImpl#getProperties <em>Properties</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.preferences.impl.PreferenceNodeImpl#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.preferences.impl.PreferenceNodeImpl#getLocation <em>Location</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class PreferenceNodeImpl extends MinimalEObjectImpl.Container implements PreferenceNode +{ + /** + * The cached value of the '{@link #getChildren() <em>Children</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getChildren() + * @generated + * @ordered + */ + protected EList<PreferenceNode> children; + + /** + * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getProperties() + * @generated + * @ordered + */ + protected EList<Property> properties; + + /** + * The default value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * The default value of the '{@link #getLocation() <em>Location</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLocation() + * @generated + * @ordered + */ + protected static final String LOCATION_EDEFAULT = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PreferenceNodeImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return PreferencesPackage.Literals.PREFERENCE_NODE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<PreferenceNode> getChildren() + { + if (children == null) + { + children = new EObjectContainmentWithInverseEList<PreferenceNode>(PreferenceNode.class, this, + PreferencesPackage.PREFERENCE_NODE__CHILDREN, PreferencesPackage.PREFERENCE_NODE__PARENT); + } + return children; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferenceNode getParent() + { + if (eContainerFeatureID() != PreferencesPackage.PREFERENCE_NODE__PARENT) + { + return null; + } + return (PreferenceNode)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetParent(PreferenceNode newParent, NotificationChain msgs) + { + msgs = eBasicSetContainer((InternalEObject)newParent, PreferencesPackage.PREFERENCE_NODE__PARENT, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setParent(PreferenceNode newParent) + { + if (newParent != eInternalContainer() || eContainerFeatureID() != PreferencesPackage.PREFERENCE_NODE__PARENT + && newParent != null) + { + if (EcoreUtil.isAncestor(this, newParent)) + { + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + } + NotificationChain msgs = null; + if (eInternalContainer() != null) + { + msgs = eBasicRemoveFromContainer(msgs); + } + if (newParent != null) + { + msgs = ((InternalEObject)newParent).eInverseAdd(this, PreferencesPackage.PREFERENCE_NODE__CHILDREN, + PreferenceNode.class, msgs); + } + msgs = basicSetParent(newParent, msgs); + if (msgs != null) + { + msgs.dispatch(); + } + } + else if (eNotificationRequired()) + { + eNotify(new ENotificationImpl(this, Notification.SET, PreferencesPackage.PREFERENCE_NODE__PARENT, newParent, + newParent)); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<Property> getProperties() + { + if (properties == null) + { + properties = new EObjectContainmentWithInverseEList<Property>(Property.class, this, + PreferencesPackage.PREFERENCE_NODE__PROPERTIES, PreferencesPackage.PROPERTY__PARENT); + } + return properties; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() + { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + { + eNotify(new ENotificationImpl(this, Notification.SET, PreferencesPackage.PREFERENCE_NODE__NAME, oldName, name)); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getLocation() + { + try + { + Preferences preferences = PreferencesUtil.getPreferences(this, false); + IPath path = PreferencesUtil.getLocation(preferences); + return path == null ? null : path.toString(); + } + catch (BackingStoreException ex) + { + // Ignore + return null; + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public PreferenceNode getNode(String name) + { + for (PreferenceNode node : getChildren()) + { + if (name.equals(node.getName())) + { + return node; + } + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public Property getProperty(String name) + { + for (Property property : getProperties()) + { + if (name.equals(property.getName())) + { + return property; + } + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case PreferencesPackage.PREFERENCE_NODE__CHILDREN: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getChildren()).basicAdd(otherEnd, msgs); + case PreferencesPackage.PREFERENCE_NODE__PARENT: + if (eInternalContainer() != null) + { + msgs = eBasicRemoveFromContainer(msgs); + } + return basicSetParent((PreferenceNode)otherEnd, msgs); + case PreferencesPackage.PREFERENCE_NODE__PROPERTIES: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getProperties()).basicAdd(otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case PreferencesPackage.PREFERENCE_NODE__CHILDREN: + return ((InternalEList<?>)getChildren()).basicRemove(otherEnd, msgs); + case PreferencesPackage.PREFERENCE_NODE__PARENT: + return basicSetParent(null, msgs); + case PreferencesPackage.PREFERENCE_NODE__PROPERTIES: + return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) + { + switch (eContainerFeatureID()) + { + case PreferencesPackage.PREFERENCE_NODE__PARENT: + return eInternalContainer().eInverseRemove(this, PreferencesPackage.PREFERENCE_NODE__CHILDREN, + PreferenceNode.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case PreferencesPackage.PREFERENCE_NODE__CHILDREN: + return getChildren(); + case PreferencesPackage.PREFERENCE_NODE__PARENT: + return getParent(); + case PreferencesPackage.PREFERENCE_NODE__PROPERTIES: + return getProperties(); + case PreferencesPackage.PREFERENCE_NODE__NAME: + return getName(); + case PreferencesPackage.PREFERENCE_NODE__LOCATION: + return getLocation(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case PreferencesPackage.PREFERENCE_NODE__CHILDREN: + getChildren().clear(); + getChildren().addAll((Collection<? extends PreferenceNode>)newValue); + return; + case PreferencesPackage.PREFERENCE_NODE__PARENT: + setParent((PreferenceNode)newValue); + return; + case PreferencesPackage.PREFERENCE_NODE__PROPERTIES: + getProperties().clear(); + getProperties().addAll((Collection<? extends Property>)newValue); + return; + case PreferencesPackage.PREFERENCE_NODE__NAME: + setName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case PreferencesPackage.PREFERENCE_NODE__CHILDREN: + getChildren().clear(); + return; + case PreferencesPackage.PREFERENCE_NODE__PARENT: + setParent((PreferenceNode)null); + return; + case PreferencesPackage.PREFERENCE_NODE__PROPERTIES: + getProperties().clear(); + return; + case PreferencesPackage.PREFERENCE_NODE__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case PreferencesPackage.PREFERENCE_NODE__CHILDREN: + return children != null && !children.isEmpty(); + case PreferencesPackage.PREFERENCE_NODE__PARENT: + return getParent() != null; + case PreferencesPackage.PREFERENCE_NODE__PROPERTIES: + return properties != null && !properties.isEmpty(); + case PreferencesPackage.PREFERENCE_NODE__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case PreferencesPackage.PREFERENCE_NODE__LOCATION: + return LOCATION_EDEFAULT == null ? getLocation() != null : !LOCATION_EDEFAULT.equals(getLocation()); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException + { + switch (operationID) + { + case PreferencesPackage.PREFERENCE_NODE___GET_NODE__STRING: + return getNode((String)arguments.get(0)); + case PreferencesPackage.PREFERENCE_NODE___GET_PROPERTY__STRING: + return getProperty((String)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + + @Override + public String eURIFragmentSegment(EStructuralFeature eStructuralFeature, EObject eObject) + { + if (eStructuralFeature == PreferencesPackage.Literals.PREFERENCE_NODE__CHILDREN) + { + PreferenceNode child = (PreferenceNode)eObject; + String name = child.getName(); + if (name != null) + { + String encodedName = URI.encodeSegment(name, false); + if (encodedName.startsWith("@")) + { + encodedName = "%40" + encodedName.substring(1); + } + return encodedName; + } + } + + if (eStructuralFeature == PreferencesPackage.Literals.PREFERENCE_NODE__PROPERTIES) + { + Property property = (Property)eObject; + String name = property.getName(); + if (name != null) + { + return "^" + URI.encodeSegment(name, false); + } + } + + return super.eURIFragmentSegment(eStructuralFeature, eObject); + } + + @Override + public EObject eObjectForURIFragmentSegment(String uriFragmentSegment) + { + if (uriFragmentSegment.startsWith("^")) + { + String preferenceNodeName = URI.decode(uriFragmentSegment.substring(1)); + return getProperty(preferenceNodeName); + } + if (!uriFragmentSegment.startsWith("@")) + { + String preferenceNodeName = URI.decode(uriFragmentSegment); + return getNode(preferenceNodeName); + } + return super.eObjectForURIFragmentSegment(uriFragmentSegment); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + { + return super.toString(); + } + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} // PreferenceNodeImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesFactoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesFactoryImpl.java new file mode 100644 index 0000000000..73af81b8a4 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesFactoryImpl.java @@ -0,0 +1,246 @@ +/** + */ +package org.eclipse.emf.cdo.releng.preferences.impl; + +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; +import org.eclipse.emf.cdo.releng.preferences.PreferencesFactory; +import org.eclipse.emf.cdo.releng.preferences.PreferencesPackage; +import org.eclipse.emf.cdo.releng.preferences.Property; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.impl.EFactoryImpl; +import org.eclipse.emf.ecore.plugin.EcorePlugin; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Factory</b>. + * <!-- end-user-doc --> + * @generated + */ +public class PreferencesFactoryImpl extends EFactoryImpl implements PreferencesFactory +{ + /** + * Creates the default factory implementation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static PreferencesFactory init() + { + try + { + PreferencesFactory thePreferencesFactory = (PreferencesFactory)EPackage.Registry.INSTANCE.getEFactory(PreferencesPackage.eNS_URI); + if (thePreferencesFactory != null) + { + return thePreferencesFactory; + } + } + catch (Exception exception) + { + EcorePlugin.INSTANCE.log(exception); + } + return new PreferencesFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferencesFactoryImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EObject create(EClass eClass) + { + switch (eClass.getClassifierID()) + { + case PreferencesPackage.PREFERENCE_NODE: return createPreferenceNode(); + case PreferencesPackage.PROPERTY: return createProperty(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object createFromString(EDataType eDataType, String initialValue) + { + switch (eDataType.getClassifierID()) + { + case PreferencesPackage.ESCAPED_STRING: + return createEscapedStringFromString(eDataType, initialValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String convertToString(EDataType eDataType, Object instanceValue) + { + switch (eDataType.getClassifierID()) + { + case PreferencesPackage.ESCAPED_STRING: + return convertEscapedStringToString(eDataType, instanceValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferenceNode createPreferenceNode() + { + PreferenceNodeImpl preferenceNode = new PreferenceNodeImpl(); + return preferenceNode; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Property createProperty() + { + PropertyImpl property = new PropertyImpl(); + return property; + } + + private static final String[] ESCAPES = { "\\000", "\\001", "\\002", "\\003", "\\004", "\\005", "\\006", "\\007", + "\\010", "\\t", "\\n", "\\013", "\\014", "\\r", "\\016", "\\017", "\\020", "\\021", "\\022", "\\023", "\\024", + "\\025", "\\026", "\\027", "\\030", "\\031", "\\032", "\\033", "\\034", "\\035", "\\036", "\\037" }; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public String createEscapedStringFromString(EDataType eDataType, String initialValue) + { + if (initialValue == null) + { + return null; + } + + StringBuilder result = new StringBuilder(); + for (int i = 0, length = initialValue.length(); i < length; ++i) + { + char c = initialValue.charAt(i); + if (c == '\\') + { + if (++i < length) + { + c = initialValue.charAt(i); + if (c == 't') + { + result.append('\t'); + continue; + } + else if (c == 'r') + { + result.append('\r'); + continue; + } + else if (c == 'n') + { + result.append('\n'); + continue; + } + else if (c == '\\') + { + result.append('\\'); + continue; + } + else if (i + 2 < length && c >= '0' && c <= '7' && initialValue.charAt(i + 1) >= '0' + && initialValue.charAt(i + 1) <= '7' && initialValue.charAt(i + 2) >= '0' + && initialValue.charAt(i + 2) <= '7') + { + result.append((char)Integer.parseInt(initialValue.substring(i, i + 3), 8)); + i += 2; + continue; + } + } + } + result.append(c); + } + return result.toString(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public String convertEscapedStringToString(EDataType eDataType, Object instanceValue) + { + if (instanceValue == null) + { + return null; + } + + String initialValue = instanceValue.toString(); + StringBuilder result = new StringBuilder(); + for (int i = 0, length = initialValue.length(); i < length; ++i) + { + char c = initialValue.charAt(i); + if (c < ESCAPES.length) + { + result.append(ESCAPES[c]); + } + else if (c == '\\') + { + result.append("\\\\"); + } + else + { + result.append(c); + } + } + return result.toString(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferencesPackage getPreferencesPackage() + { + return (PreferencesPackage)getEPackage(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @deprecated + * @generated + */ + @Deprecated + public static PreferencesPackage getPackage() + { + return PreferencesPackage.eINSTANCE; + } + +} // PreferencesFactoryImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesPackageImpl.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesPackageImpl.java new file mode 100644 index 0000000000..dcc7b03510 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesPackageImpl.java @@ -0,0 +1,347 @@ +/** + */ +package org.eclipse.emf.cdo.releng.preferences.impl; + +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; +import org.eclipse.emf.cdo.releng.preferences.PreferencesFactory; +import org.eclipse.emf.cdo.releng.preferences.PreferencesPackage; +import org.eclipse.emf.cdo.releng.preferences.Property; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +import org.eclipse.emf.ecore.impl.EPackageImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Package</b>. + * <!-- end-user-doc --> + * @generated + */ +public class PreferencesPackageImpl extends EPackageImpl implements PreferencesPackage +{ + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass preferenceNodeEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass propertyEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EDataType escapedStringEDataType = null; + + /** + * Creates an instance of the model <b>Package</b>, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + * <p>Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#eNS_URI + * @see #init() + * @generated + */ + private PreferencesPackageImpl() + { + super(eNS_URI, PreferencesFactory.eINSTANCE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. + * + * <p>This method is used to initialize {@link PreferencesPackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static PreferencesPackage init() + { + if (isInited) return (PreferencesPackage)EPackage.Registry.INSTANCE.getEPackage(PreferencesPackage.eNS_URI); + + // Obtain or create and register package + PreferencesPackageImpl thePreferencesPackage = (PreferencesPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof PreferencesPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new PreferencesPackageImpl()); + + isInited = true; + + // Create package meta-data objects + thePreferencesPackage.createPackageContents(); + + // Initialize created meta-data + thePreferencesPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + thePreferencesPackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(PreferencesPackage.eNS_URI, thePreferencesPackage); + return thePreferencesPackage; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getPreferenceNode() + { + return preferenceNodeEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getPreferenceNode_Children() + { + return (EReference)preferenceNodeEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getPreferenceNode_Parent() + { + return (EReference)preferenceNodeEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getPreferenceNode_Properties() + { + return (EReference)preferenceNodeEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getPreferenceNode_Name() + { + return (EAttribute)preferenceNodeEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getPreferenceNode_Location() + { + return (EAttribute)preferenceNodeEClass.getEStructuralFeatures().get(4); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EOperation getPreferenceNode__GetNode__String() + { + return preferenceNodeEClass.getEOperations().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EOperation getPreferenceNode__GetProperty__String() + { + return preferenceNodeEClass.getEOperations().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getProperty() + { + return propertyEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getProperty_Name() + { + return (EAttribute)propertyEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getProperty_Parent() + { + return (EReference)propertyEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getProperty_Value() + { + return (EAttribute)propertyEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EDataType getEscapedString() + { + return escapedStringEDataType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferencesFactory getPreferencesFactory() + { + return (PreferencesFactory)getEFactoryInstance(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createPackageContents() + { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + preferenceNodeEClass = createEClass(PREFERENCE_NODE); + createEReference(preferenceNodeEClass, PREFERENCE_NODE__CHILDREN); + createEReference(preferenceNodeEClass, PREFERENCE_NODE__PARENT); + createEReference(preferenceNodeEClass, PREFERENCE_NODE__PROPERTIES); + createEAttribute(preferenceNodeEClass, PREFERENCE_NODE__NAME); + createEAttribute(preferenceNodeEClass, PREFERENCE_NODE__LOCATION); + createEOperation(preferenceNodeEClass, PREFERENCE_NODE___GET_NODE__STRING); + createEOperation(preferenceNodeEClass, PREFERENCE_NODE___GET_PROPERTY__STRING); + + propertyEClass = createEClass(PROPERTY); + createEAttribute(propertyEClass, PROPERTY__NAME); + createEReference(propertyEClass, PROPERTY__PARENT); + createEAttribute(propertyEClass, PROPERTY__VALUE); + + // Create data types + escapedStringEDataType = createEDataType(ESCAPED_STRING); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void initializePackageContents() + { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + + // Initialize classes, features, and operations; add parameters + initEClass(preferenceNodeEClass, PreferenceNode.class, "PreferenceNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getPreferenceNode_Children(), this.getPreferenceNode(), this.getPreferenceNode_Parent(), "children", null, 0, -1, PreferenceNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + getPreferenceNode_Children().getEKeys().add(this.getPreferenceNode_Name()); + initEReference(getPreferenceNode_Parent(), this.getPreferenceNode(), this.getPreferenceNode_Children(), "parent", null, 0, 1, PreferenceNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getPreferenceNode_Properties(), this.getProperty(), this.getProperty_Parent(), "properties", null, 0, -1, PreferenceNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + getPreferenceNode_Properties().getEKeys().add(this.getProperty_Name()); + initEAttribute(getPreferenceNode_Name(), ecorePackage.getEString(), "name", null, 1, 1, PreferenceNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getPreferenceNode_Location(), ecorePackage.getEString(), "location", null, 0, 1, PreferenceNode.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + EOperation op = initEOperation(getPreferenceNode__GetNode__String(), this.getPreferenceNode(), "getNode", 0, 1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, ecorePackage.getEString(), "name", 0, 1, IS_UNIQUE, IS_ORDERED); + + op = initEOperation(getPreferenceNode__GetProperty__String(), this.getProperty(), "getProperty", 0, 1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, ecorePackage.getEString(), "name", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(propertyEClass, Property.class, "Property", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getProperty_Name(), ecorePackage.getEString(), "name", null, 1, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getProperty_Parent(), this.getPreferenceNode(), this.getPreferenceNode_Properties(), "parent", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getProperty_Value(), this.getEscapedString(), "value", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Initialize data types + initEDataType(escapedStringEDataType, String.class, "EscapedString", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); + + // Create resource + createResource(eNS_URI); + } + +} //PreferencesPackageImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesURIHandlerImpl.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesURIHandlerImpl.java new file mode 100644 index 0000000000..dc98b11f88 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesURIHandlerImpl.java @@ -0,0 +1,174 @@ +/* + * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.preferences.impl; + +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; +import org.eclipse.emf.cdo.releng.preferences.util.PreferencesUtil; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.URIConverter; +import org.eclipse.emf.ecore.resource.impl.URIHandlerImpl; + +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.preferences.IEclipsePreferences; + +import org.osgi.service.prefs.BackingStoreException; +import org.osgi.service.prefs.Preferences; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.Collections; +import java.util.Map; + +/** + * @author Eike Stepper + */ +public class PreferencesURIHandlerImpl extends URIHandlerImpl +{ + private static final IEclipsePreferences ROOT = Platform.getPreferencesService().getRootNode(); + + @Override + public boolean canHandle(URI uri) + { + return "preference".equals(uri.scheme()); + } + + protected static class PreferenceAccessor + { + private final Preferences preferences; + + private final String key; + + public PreferenceAccessor(URI uri) + { + Preferences node = ROOT; + for (String name : uri.trimSegments(1).segments()) + { + node = node.node(name); + } + key = uri.lastSegment(); + preferences = node; + } + + public String get() + { + return preferences.get(key, null); + + } + + public void put(String value) throws IOException + { + preferences.put(key, value); + flush(); + } + + public void remove() throws IOException + { + preferences.remove(key); + flush(); + } + + private void flush() throws IOException + { + try + { + preferences.flush(); + } + catch (BackingStoreException ex) + { + throw new IOException(ex); + } + } + } + + @Override + public InputStream createInputStream(URI uri, final Map<?, ?> options) throws IOException + { + if (uri.segmentCount() == 1) + { + class PreferencesInput extends InputStream implements URIConverter.Loadable + { + private PreferenceNode preferencesNode = PreferencesUtil.getRootPreferenceNode(Boolean.TRUE.equals(options + .get(PreferencesUtil.OPTION_SYNCHRONIZED_PREFERENCES))); + + private InputStream in; + + public void loadResource(Resource resource) throws IOException + { + resource.getContents().add(preferencesNode); + } + + @Override + public int read() throws IOException + { + if (in == null) + { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + preferencesNode.eResource().save(out, null); + in = new ByteArrayInputStream(out.toByteArray()); + } + return in.read(); + } + } + + return new PreferencesInput(); + } + URI preferencePath = uri.trimSegments(1); + String value = new PreferenceAccessor(preferencePath).get(); + if (value == null) + { + throw new IOException("No preference value available for " + preferencePath); + } + return new URIConverter.ReadableInputStream(value); + } + + @Override + public OutputStream createOutputStream(URI uri, Map<?, ?> options) throws IOException + { + final PreferenceAccessor accessor = new PreferenceAccessor(uri.trimSegments(1)); + return new ByteArrayOutputStream() + { + @Override + public void close() throws IOException + { + accessor.put(new String(toByteArray(), "UTF-8")); + } + }; + } + + @Override + public void delete(URI uri, Map<?, ?> options) throws IOException + { + new PreferenceAccessor(uri.trimSegments(1)).remove(); + } + + @Override + public boolean exists(URI uri, Map<?, ?> options) + { + return new PreferenceAccessor(uri.trimSegments(1)).get() != null; + } + + @Override + public Map<String, ?> getAttributes(URI uri, Map<?, ?> options) + { + return Collections.emptyMap(); + } + + @Override + public void setAttributes(URI uri, Map<String, ?> attributes, Map<?, ?> options) throws IOException + { + // Do nothing. + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PropertyImpl.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PropertyImpl.java new file mode 100644 index 0000000000..8319e1e9b7 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PropertyImpl.java @@ -0,0 +1,344 @@ +/** + */ +package org.eclipse.emf.cdo.releng.preferences.impl; + +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; +import org.eclipse.emf.cdo.releng.preferences.PreferencesPackage; +import org.eclipse.emf.cdo.releng.preferences.Property; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Property</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.preferences.impl.PropertyImpl#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.preferences.impl.PropertyImpl#getParent <em>Parent</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.preferences.impl.PropertyImpl#getValue <em>Value</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class PropertyImpl extends MinimalEObjectImpl.Container implements Property +{ + /** + * The default value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * The default value of the '{@link #getValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getValue() + * @generated + * @ordered + */ + protected static final String VALUE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getValue() + * @generated + * @ordered + */ + protected String value = VALUE_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PropertyImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return PreferencesPackage.Literals.PROPERTY; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() + { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, PreferencesPackage.PROPERTY__NAME, oldName, name)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferenceNode getParent() + { + if (eContainerFeatureID() != PreferencesPackage.PROPERTY__PARENT) return null; + return (PreferenceNode)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetParent(PreferenceNode newParent, NotificationChain msgs) + { + msgs = eBasicSetContainer((InternalEObject)newParent, PreferencesPackage.PROPERTY__PARENT, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setParent(PreferenceNode newParent) + { + if (newParent != eInternalContainer() || (eContainerFeatureID() != PreferencesPackage.PROPERTY__PARENT && newParent != null)) + { + if (EcoreUtil.isAncestor(this, newParent)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newParent != null) + msgs = ((InternalEObject)newParent).eInverseAdd(this, PreferencesPackage.PREFERENCE_NODE__PROPERTIES, PreferenceNode.class, msgs); + msgs = basicSetParent(newParent, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, PreferencesPackage.PROPERTY__PARENT, newParent, newParent)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getValue() + { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setValue(String newValue) + { + String oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, PreferencesPackage.PROPERTY__VALUE, oldValue, value)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case PreferencesPackage.PROPERTY__PARENT: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetParent((PreferenceNode)otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case PreferencesPackage.PROPERTY__PARENT: + return basicSetParent(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) + { + switch (eContainerFeatureID()) + { + case PreferencesPackage.PROPERTY__PARENT: + return eInternalContainer().eInverseRemove(this, PreferencesPackage.PREFERENCE_NODE__PROPERTIES, PreferenceNode.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case PreferencesPackage.PROPERTY__NAME: + return getName(); + case PreferencesPackage.PROPERTY__PARENT: + return getParent(); + case PreferencesPackage.PROPERTY__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case PreferencesPackage.PROPERTY__NAME: + setName((String)newValue); + return; + case PreferencesPackage.PROPERTY__PARENT: + setParent((PreferenceNode)newValue); + return; + case PreferencesPackage.PROPERTY__VALUE: + setValue((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case PreferencesPackage.PROPERTY__NAME: + setName(NAME_EDEFAULT); + return; + case PreferencesPackage.PROPERTY__PARENT: + setParent((PreferenceNode)null); + return; + case PreferencesPackage.PROPERTY__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case PreferencesPackage.PROPERTY__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case PreferencesPackage.PROPERTY__PARENT: + return getParent() != null; + case PreferencesPackage.PROPERTY__VALUE: + return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(", value: "); + result.append(value); + result.append(')'); + return result.toString(); + } + +} //PropertyImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesAdapterFactory.java new file mode 100644 index 0000000000..41057ad260 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesAdapterFactory.java @@ -0,0 +1,152 @@ +/** + */ +package org.eclipse.emf.cdo.releng.preferences.util; + +import org.eclipse.emf.cdo.releng.preferences.*; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * The <b>Adapter Factory</b> for the model. + * It provides an adapter <code>createXXX</code> method for each class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage + * @generated + */ +public class PreferencesAdapterFactory extends AdapterFactoryImpl +{ + /** + * The cached model package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static PreferencesPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferencesAdapterFactory() + { + if (modelPackage == null) + { + modelPackage = PreferencesPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * <!-- begin-user-doc --> + * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model. + * <!-- end-user-doc --> + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) + { + if (object == modelPackage) + { + return true; + } + if (object instanceof EObject) + { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch that delegates to the <code>createXXX</code> methods. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PreferencesSwitch<Adapter> modelSwitch = + new PreferencesSwitch<Adapter>() + { + @Override + public Adapter casePreferenceNode(PreferenceNode object) + { + return createPreferenceNodeAdapter(); + } + @Override + public Adapter caseProperty(Property object) + { + return createPropertyAdapter(); + } + @Override + public Adapter defaultCase(EObject object) + { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the <code>target</code>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param target the object to adapt. + * @return the adapter for the <code>target</code>. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) + { + return modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode <em>Preference Node</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode + * @generated + */ + public Adapter createPreferenceNodeAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.preferences.Property <em>Property</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.preferences.Property + * @generated + */ + public Adapter createPropertyAdapter() + { + return null; + } + + /** + * Creates a new adapter for the default case. + * <!-- begin-user-doc --> + * This default implementation returns null. + * <!-- end-user-doc --> + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() + { + return null; + } + +} //PreferencesAdapterFactory diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesSwitch.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesSwitch.java new file mode 100644 index 0000000000..c4de14a7f7 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesSwitch.java @@ -0,0 +1,142 @@ +/** + */ +package org.eclipse.emf.cdo.releng.preferences.util; + +import org.eclipse.emf.cdo.releng.preferences.*; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.util.Switch; + +/** + * <!-- begin-user-doc --> + * The <b>Switch</b> for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the <code>caseXXX</code> method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage + * @generated + */ +public class PreferencesSwitch<T> extends Switch<T> +{ + /** + * The cached model package + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static PreferencesPackage modelPackage; + + /** + * Creates an instance of the switch. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferencesSwitch() + { + if (modelPackage == null) + { + modelPackage = PreferencesPackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @parameter ePackage the package in question. + * @return whether this is a switch for the given package. + * @generated + */ + @Override + protected boolean isSwitchFor(EPackage ePackage) + { + return ePackage == modelPackage; + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) + { + switch (classifierID) + { + case PreferencesPackage.PREFERENCE_NODE: + { + PreferenceNode preferenceNode = (PreferenceNode)theEObject; + T result = casePreferenceNode(preferenceNode); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PreferencesPackage.PROPERTY: + { + Property property = (Property)theEObject; + T result = caseProperty(property); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Preference Node</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Preference Node</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePreferenceNode(PreferenceNode object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Property</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Property</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseProperty(Property object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>EObject</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) + { + return null; + } + +} //PreferencesSwitch diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesUtil.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesUtil.java new file mode 100644 index 0000000000..f0b0510d4f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesUtil.java @@ -0,0 +1,341 @@ +/* + * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.preferences.util; + +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; +import org.eclipse.emf.cdo.releng.preferences.PreferencesFactory; +import org.eclipse.emf.cdo.releng.preferences.Property; + +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.notify.impl.AdapterImpl; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; + +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.preferences.IEclipsePreferences; +import org.eclipse.core.runtime.preferences.IEclipsePreferences.NodeChangeEvent; +import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent; + +import org.osgi.service.prefs.BackingStoreException; +import org.osgi.service.prefs.Preferences; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** + * @author Eike Stepper + */ +public final class PreferencesUtil +{ + /** + * A resource load option to load an instance using {@link #getRootPreferenceNode(boolean) PreferencesUtil.getRootPreferenceNode(true)}. + * The resource must be {@link Resource#unload() unloaded}, to avoid dangling listeners. + */ + public static final String OPTION_SYNCHRONIZED_PREFERENCES = "SYNCHRONIZED_PREFERENCES"; + + private static final IEclipsePreferences ROOT = Platform.getPreferencesService().getRootNode(); + + public static final URI ROOT_PREFERENCE_NODE_URI = URI.createURI("preference:/"); + + private static class PreferencesAdapter extends AdapterImpl implements IEclipsePreferences.INodeChangeListener, + IEclipsePreferences.IPreferenceChangeListener + { + protected IEclipsePreferences preferences; + + public PreferencesAdapter(IEclipsePreferences preferences) + { + this.preferences = preferences; + + preferences.addNodeChangeListener(this); + preferences.addPreferenceChangeListener(this); + } + + @Override + public boolean isAdapterForType(Object type) + { + return type == PreferencesAdapter.class; + } + + public void preferenceChange(PreferenceChangeEvent event) + { + PreferenceNode preferenceNode = (PreferenceNode)target; + String name = event.getKey(); + Object value = event.getNewValue(); + EList<Property> properties = preferenceNode.getProperties(); + for (int i = 0, size = properties.size(); i < size; ++i) + { + Property property = properties.get(i); + int comparison = property.getName().compareTo(name); + if (comparison == 0) + { + if (value == null) + { + properties.remove(i); + } + else + { + property.setValue(value.toString()); + } + return; + } + else if (comparison > 0) + { + if (value != null) + { + property = PreferencesFactory.eINSTANCE.createProperty(); + property.setName(name); + property.setValue(value.toString()); + properties.add(i, property); + } + return; + } + } + Property property = PreferencesFactory.eINSTANCE.createProperty(); + property.setName(name); + property.setValue(value.toString()); + properties.add(property); + } + + public void added(NodeChangeEvent event) + { + PreferenceNode preferenceNode = (PreferenceNode)target; + Preferences childNode = event.getChild(); + PreferenceNode childPreferenceNode = PreferencesFactory.eINSTANCE.createPreferenceNode(); + String name = childNode.name(); + childPreferenceNode.setName(name); + traverse(childPreferenceNode, childNode, true); + EList<PreferenceNode> children = preferenceNode.getChildren(); + for (int i = 0, size = children.size(); i < size; ++i) + { + PreferenceNode otherChildPreferenceNode = children.get(i); + if (otherChildPreferenceNode.getName().compareTo(name) >= 0) + { + children.add(i, childPreferenceNode); + return; + } + } + children.add(childPreferenceNode); + } + + public void removed(NodeChangeEvent event) + { + PreferenceNode preferenceNode = (PreferenceNode)target; + Preferences childNode = event.getChild(); + String name = childNode.name(); + EList<PreferenceNode> children = preferenceNode.getChildren(); + for (int i = 0, size = children.size(); i < size; ++i) + { + PreferenceNode childPreferenceNode = children.get(i); + if (childPreferenceNode.getName().equals(name)) + { + children.remove(i); + return; + } + } + } + + @Override + public void unsetTarget(Notifier oldTarget) + { + super.unsetTarget(oldTarget); + + preferences.removeNodeChangeListener(this); + preferences.removePreferenceChangeListener(this); + } + } + + public static PreferenceNode getRootPreferenceNode() + { + return getRootPreferenceNode(false); + } + + public static PreferenceNode getRootPreferenceNode(boolean isSynchronized) + { + ResourceSet resourceSet = new ResourceSetImpl(); + Resource resource = resourceSet.createResource(ROOT_PREFERENCE_NODE_URI.appendSegment("*.preferences")); + PreferenceNode root = PreferencesFactory.eINSTANCE.createPreferenceNode(); + traverse(root, ROOT, isSynchronized); + resource.getContents().add(root); + + return root; + } + + private static void traverse(PreferenceNode preferenceNode, Preferences node, boolean isSynchronized) + { + try + { + if (isSynchronized && node instanceof IEclipsePreferences) + { + preferenceNode.eAdapters().add(new PreferencesAdapter((IEclipsePreferences)node)); + } + + preferenceNode.setName(node.name()); + + EList<PreferenceNode> children = preferenceNode.getChildren(); + String[] childrenNames = node.childrenNames(); + Arrays.sort(childrenNames); + for (String name : childrenNames) + { + Preferences childNode = node.node(name); + PreferenceNode childPreferenceNode = PreferencesFactory.eINSTANCE.createPreferenceNode(); + traverse(childPreferenceNode, childNode, isSynchronized); + children.add(childPreferenceNode); + } + EList<Property> properties = preferenceNode.getProperties(); + String[] keys = node.keys(); + Arrays.sort(keys); + for (String name : keys) + { + Property property = PreferencesFactory.eINSTANCE.createProperty(); + property.setName(name); + property.setValue(node.get(name, null)); + properties.add(property); + } + } + catch (BackingStoreException ex) + { + // Ignore + } + } + + public static Preferences getPreferences(PreferenceNode preferenceNode, boolean demandCreate) + throws BackingStoreException + { + if (preferenceNode == null) + { + return ROOT; + } + + Preferences parentPreferences = getPreferences(preferenceNode.getParent(), demandCreate); + if (parentPreferences != null) + { + String name = preferenceNode.getName(); + if (demandCreate || parentPreferences.nodeExists(name)) + { + return parentPreferences.node(name); + } + } + return null; + } + + public static IPath getLocation(Preferences preferences) + { + if (preferences == null) + { + return null; + } + + try + { + Method getLocationMethod = preferences.getClass().getDeclaredMethod("getLocation"); + getLocationMethod.setAccessible(true); + IPath location = (IPath)getLocationMethod.invoke(preferences); + return location; + } + catch (Exception ex) + { + // Ignore + } + + return null; + } + + private static List<PreferenceNode> getPath(PreferenceNode preferenceNode) + { + List<PreferenceNode> path = new ArrayList<PreferenceNode>(); + while (preferenceNode != null) + { + path.add(preferenceNode); + preferenceNode = preferenceNode.getParent(); + } + Collections.reverse(path); + return path; + } + + public static PreferenceNode getAncestor(PreferenceNode preferenceNode) + { + List<PreferenceNode> path = getPath(preferenceNode); + int size = path.size(); + if (size > 1) + { + PreferenceNode root = path.get(0); + if ("".equals(root.getName())) + { + PreferenceNode base = path.get(1); + String name = base.getName(); + int start = 2; + if ("project".equals(name)) + { + name = "instance"; + PreferenceNode result = root.getNode(name); + for (int i = ++start; result != null && i < size; ++i) + { + result = result.getNode(path.get(i).getName()); + } + if (result != null) + { + return result; + } + } + + if ("instance".equals(name)) + { + name = "default"; + PreferenceNode result = root.getNode(name); + for (int i = start; result != null && i < size; ++i) + { + result = result.getNode(path.get(i).getName()); + } + if (result != null) + { + return result; + } + } + + if ("default".equals(name)) + { + name = "configuration"; + PreferenceNode result = root.getNode(name); + for (int i = start; result != null && i < size; ++i) + { + result = result.getNode(path.get(i).getName()); + } + if (result != null) + { + return result; + } + } + + if ("configuration".equals(name)) + { + name = "bundle_defaults"; + PreferenceNode result = root.getNode(name); + for (int i = start; result != null && i < size; ++i) + { + result = result.getNode(path.get(i).getName()); + } + if (result != null) + { + return result; + } + } + } + } + return null; + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.classpath b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.classpath new file mode 100644 index 0000000000..3bc247511f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.project b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.project new file mode 100644 index 0000000000..f5a4d7c604 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.emf.cdo.releng.projectconfig.edit</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + </natures> +</projectDescription> diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000..0483dbc8d5 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding//model/projectconfig.ecorediag=UTF-8 diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..b3af741094 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,405 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +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.doc.comment.support=enabled +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.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +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.includeNullInfoFromAsserts=disabled +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.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +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.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +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.unusedObjectAllocation=ignore +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.unusedTypeParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled +org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW +org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED +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=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=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true +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=false +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=120 +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=2 +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=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=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=do not 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=space +org.eclipse.jdt.core.formatter.tabulation.size=2 +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/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000000..3fc140fcdc --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,119 @@ +cleanup.add_default_serial_version_id=true +cleanup.add_generated_serial_version_id=false +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=false +cleanup.always_use_this_for_non_static_method_access=false +cleanup.convert_to_enhanced_for_loop=false +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=false +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=false +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=false +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=false +cleanup.qualify_static_method_accesses_with_declaring_class=false +cleanup.remove_private_constructors=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_parentheses_in_expressions=true +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=true +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=true +cleanup_profile=_EMFT +cleanup_settings_version=2 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +formatter_profile=_EMFT +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=ex +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.ignorelowercasenames=true +org.eclipse.jdt.ui.importorder=org.eclipse.emf.cdo;org.eclipse.emf.internal.cdo;org.eclipse.net4j;org.eclipse.internal.net4j;org.eclipse.emf;org.eclipse;com;org;javax;java; +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=false +org.eclipse.jdt.ui.ondemandthreshold=99 +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.staticondemandthreshold=99 +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" 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 * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made 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 * Eike Stepper - initial API and implementation\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 * @author Eike Stepper\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" 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">${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${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}</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> +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=false +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=false +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=false +sp_cleanup.make_parameters_final=false +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=false +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=true +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=true +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.ltk.core.refactoring.prefs new file mode 100644 index 0000000000..864e30fe5d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.ltk.core.refactoring.prefs @@ -0,0 +1,3 @@ +#Thu Feb 04 09:44:24 CET 2010 +eclipse.preferences.version=1 +org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs new file mode 100644 index 0000000000..b050639a54 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs @@ -0,0 +1,4 @@ +#Thu Feb 04 09:44:24 CET 2010 +eclipse.preferences.version=1 +project.repository.kind=bugzilla +project.repository.url=https\://bugs.eclipse.org/bugs diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.mylyn.team.ui.prefs new file mode 100644 index 0000000000..2f50f36c0c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.mylyn.team.ui.prefs @@ -0,0 +1,3 @@ +#Thu Feb 04 09:44:24 CET 2010 +commit.comment.template=[${task.id}] ${task.description} \r\n${task.url} +eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.pde.api.tools.prefs new file mode 100644 index 0000000000..0c17d59e45 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.pde.api.tools.prefs @@ -0,0 +1,95 @@ +#Thu Feb 04 09:44:24 CET 2010 +ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error +ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error +CLASS_ELEMENT_TYPE_ADDED_METHOD=Error +CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error +CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error +CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error +CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error +ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error +ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error +ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +FIELD_ELEMENT_TYPE_ADDED_VALUE=Error +FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error +FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error +FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error +FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error +ILLEGAL_EXTEND=Warning +ILLEGAL_IMPLEMENT=Warning +ILLEGAL_INSTANTIATE=Warning +ILLEGAL_OVERRIDE=Warning +ILLEGAL_REFERENCE=Warning +INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error +INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error +INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error +INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +INVALID_JAVADOC_TAG=Ignore +INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error +MISSING_EE_DESCRIPTIONS=Warning +LEAK_EXTEND=Warning +LEAK_FIELD_DECL=Warning +LEAK_IMPLEMENT=Warning +LEAK_METHOD_PARAM=Warning +LEAK_METHOD_RETURN_TYPE=Warning +METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error +METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error +UNUSED_PROBLEM_FILTERS=Ignore +automatically_removed_unused_problem_filters=Disabled +eclipse.preferences.version=1 +incompatible_api_component_version=Error +incompatible_api_component_version_include_major_without_breaking_change=Disabled +incompatible_api_component_version_include_minor_without_api_change=Disabled +invalid_since_tag_version=Error +malformed_since_tag=Error +missing_since_tag=Error +report_api_breakage_when_major_version_incremented=Disabled +report_resolution_errors_api_component=Warning diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.pde.prefs new file mode 100644 index 0000000000..fe01bb701d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.pde.prefs @@ -0,0 +1,31 @@ +#Thu Feb 04 09:44:24 CET 2010 +compilers.f.unresolved-features=1 +compilers.f.unresolved-plugins=1 +compilers.incompatible-environment=1 +compilers.p.build=1 +compilers.p.build.bin.includes=1 +compilers.p.build.java.compliance=1 +compilers.p.build.missing.output=2 +compilers.p.build.output.library=1 +compilers.p.build.source.library=1 +compilers.p.build.src.includes=1 +compilers.p.deprecated=2 +compilers.p.discouraged-class=1 +compilers.p.internal=1 +compilers.p.missing-packages=1 +compilers.p.missing-version-export-package=1 +compilers.p.missing-version-import-package=1 +compilers.p.missing-version-require-bundle=1 +compilers.p.no-required-att=0 +compilers.p.not-externalized-att=2 +compilers.p.unknown-attribute=1 +compilers.p.unknown-class=1 +compilers.p.unknown-element=1 +compilers.p.unknown-identifier=1 +compilers.p.unknown-resource=1 +compilers.p.unresolved-ex-points=0 +compilers.p.unresolved-import=0 +compilers.s.create-docs=false +compilers.s.doc-folder=doc +compilers.s.open-tags=1 +eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..c2d3e0ec4b --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/META-INF/MANIFEST.MF @@ -0,0 +1,20 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: org.eclipse.emf.cdo.releng.projectconfig.edit;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: . +Bundle-Activator: org.eclipse.emf.cdo.releng.projectconfig.provider.ProjectConfigEditPlugin$Implementation +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.eclipse.emf.cdo.releng.projectconfig.provider +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.emf.cdo.releng.projectconfig;visibility:=reexport, + org.eclipse.emf.edit;visibility:=reexport, + org.eclipse.emf.cdo.releng.predicates;visibility:=reexport, + org.eclipse.emf.cdo.releng.predicates.edit;visibility:=reexport, + org.eclipse.emf.cdo.releng.preferences;visibility:=reexport, + org.eclipse.emf.cdo.releng.preferences.edit;visibility:=reexport, + org.eclipse.core.resources +Bundle-ActivationPolicy: lazy diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/build.properties b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/build.properties new file mode 100644 index 0000000000..6e3e902e80 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/build.properties @@ -0,0 +1,10 @@ +# + +bin.includes = .,\ + icons/,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = . +source.. = src/ +output.. = bin/ diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/IncomingLinks.gif b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/IncomingLinks.gif Binary files differnew file mode 100644 index 0000000000..fcf5652a86 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/IncomingLinks.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/OutgoingLinks.gif b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/OutgoingLinks.gif Binary files differnew file mode 100644 index 0000000000..1745824683 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/OutgoingLinks.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/PreferenceFilter.gif b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/PreferenceFilter.gif Binary files differnew file mode 100644 index 0000000000..3b581018ef --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/PreferenceFilter.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/PreferenceProfile.gif b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/PreferenceProfile.gif Binary files differnew file mode 100644 index 0000000000..79f235321a --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/PreferenceProfile.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/Project.gif b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/Project.gif Binary files differnew file mode 100644 index 0000000000..94dba8854a --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/Project.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/WorkspaceConfiguration.gif b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/WorkspaceConfiguration.gif Binary files differnew file mode 100644 index 0000000000..1e9e8f0f79 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/WorkspaceConfiguration.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/plugin.properties new file mode 100644 index 0000000000..53bbe57454 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/plugin.properties @@ -0,0 +1,43 @@ +# + +pluginName = Project Config Edit Support +providerName = www.example.org + +_UI_CreateChild_text = {0} +_UI_CreateChild_text2 = {1} {0} +_UI_CreateChild_text3 = {1} +_UI_CreateChild_tooltip = Create New {0} Under {1} Feature +_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}. +_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent. + +_UI_PropertyDescriptor_description = The {0} of the {1} + +_UI_WorkspaceConfiguration_type = Workspace Configuration +_UI_Project_type = Project +_UI_PreferenceProfile_type = Preference Profile +_UI_PreferenceFilter_type = Preference Filter +_UI_Unknown_type = Object + +_UI_Unknown_datatype= Value + +_UI_WorkspaceConfiguration_projects_feature = Projects +_UI_WorkspaceConfiguration_defaultPreferenceNode_feature = Default Preference Node +_UI_WorkspaceConfiguration_instancePrefenceNode_feature = Instance Preference Node +_UI_Project_configuration_feature = Configuration +_UI_Project_preferenceProfiles_feature = Preference Profiles +_UI_Project_preferenceNode_feature = Preference Node +_UI_Project_preferenceProfileReferences_feature = Preference Profile References +_UI_PreferenceProfile_preferenceFilters_feature = Preference Filters +_UI_PreferenceProfile_referentProjects_feature = Referent Projects +_UI_PreferenceProfile_name_feature = Name +_UI_PreferenceFilter_preferenceNode_feature = Preference Node +_UI_PreferenceFilter_preferenceProfile_feature = Preference Profile +_UI_PreferenceFilter_pattern_feature = Pattern +_UI_Unknown_feature = Unspecified + +_UI_PreferenceProfile_project_feature = Project +_UI_PreferenceProfile_predicates_feature = Predicates +_UI_PreferenceFilter_inclusions_feature = Inclusions +_UI_PreferenceFilter_exclusions_feature = Exclusions +_UI_PreferenceProfile_prerequisites_feature = Prerequisites +_UI_WorkspaceConfiguration_instancePreferenceNode_feature = Instance Preference Node diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/plugin.xml new file mode 100644 index 0000000000..2bdfb649a8 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/plugin.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> + +<!-- +--> + +<plugin> + + <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories"> + <!-- @generated projectconfig --> + <factory + uri="http://www.eclipse.org/CDO/releng/projectconfig/1.0" + class="org.eclipse.emf.cdo.releng.projectconfig.provider.ProjectConfigItemProviderAdapterFactory" + supportedTypes= + "org.eclipse.emf.edit.provider.IEditingDomainItemProvider + org.eclipse.emf.edit.provider.IStructuredItemContentProvider + org.eclipse.emf.edit.provider.ITreeItemContentProvider + org.eclipse.emf.edit.provider.IItemLabelProvider + org.eclipse.emf.edit.provider.IItemPropertySource"/> + </extension> + +</plugin> diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/PreferenceFilterItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/PreferenceFilterItemProvider.java new file mode 100644 index 0000000000..b8d5db404b --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/PreferenceFilterItemProvider.java @@ -0,0 +1,335 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.provider; + +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; +import org.eclipse.emf.cdo.releng.preferences.Property; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile; +import org.eclipse.emf.cdo.releng.projectconfig.Project; +import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage; +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.edit.EMFEditPlugin; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.ComposedImage; +import org.eclipse.emf.edit.provider.DelegatingWrapperItemProvider; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.IWrapperItemProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ViewerNotification; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class PreferenceFilterItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferenceFilterItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + addPreferenceNodePropertyDescriptor(object); + addInclusionsPropertyDescriptor(object); + addExclusionsPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Preference Node feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + protected void addPreferenceNodePropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory) + .getRootAdapterFactory(), getResourceLocator(), getString("_UI_PreferenceFilter_preferenceNode_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_PreferenceFilter_preferenceNode_feature", + "_UI_PreferenceFilter_type"), ProjectConfigPackage.Literals.PREFERENCE_FILTER__PREFERENCE_NODE, true, + false, true, null, null, null) + { + @Override + public Collection<?> getChoiceOfValues(Object object) + { + Collection<Object> result = new ArrayList<Object>(); + PreferenceFilter preferenceFilter = (PreferenceFilter)object; + PreferenceProfile preferenceProfile = preferenceFilter.getPreferenceProfile(); + if (preferenceProfile != null) + { + Project project = preferenceProfile.getProject(); + if (project != null) + { + PreferenceNode preferenceNode = project.getPreferenceNode(); + if (preferenceNode != null) + { + result.addAll(preferenceNode.getChildren()); + } + } + } + return result; + } + }); + } + + /** + * This adds a property descriptor for the Inclusions feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addInclusionsPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_PreferenceFilter_inclusions_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_PreferenceFilter_inclusions_feature", "_UI_PreferenceFilter_type"), + ProjectConfigPackage.Literals.PREFERENCE_FILTER__INCLUSIONS, + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Exclusions feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addExclusionsPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_PreferenceFilter_exclusions_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_PreferenceFilter_exclusions_feature", "_UI_PreferenceFilter_type"), + ProjectConfigPackage.Literals.PREFERENCE_FILTER__EXCLUSIONS, + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns PreferenceFilter.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PreferenceFilter")); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() + { + return true; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) + { + PreferenceFilter preferenceFilter = (PreferenceFilter)object; + String label = preferenceFilter.getInclusions().toString(); + String exclusions = preferenceFilter.getExclusions().toString(); + if (!"".equals(exclusions)) + { + label += " - " + exclusions; + } + + if (label == null) + { + label = "<unnamed>"; + } + + PreferenceNode preferenceNode = preferenceFilter.getPreferenceNode(); + if (preferenceNode != null) + { + String name = preferenceNode.getName(); + if (name != null) + { + label = name + " -> " + label; + } + } + + return label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(PreferenceFilter.class)) + { + case ProjectConfigPackage.PREFERENCE_FILTER__INCLUSIONS: + case ProjectConfigPackage.PREFERENCE_FILTER__EXCLUSIONS: + case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_NODE: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, true)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + Map<Property, IWrapperItemProvider> wrappers = new HashMap<Property, IWrapperItemProvider>(); + + private IWrapperItemProvider wrap(final PreferenceFilter preferenceFilter, int i, Property project) + { + IWrapperItemProvider wrapper = wrappers.get(project); + if (wrapper == null) + { + wrapper = new DelegatingWrapperItemProvider(project, preferenceFilter, null, i, adapterFactory) + { + @Override + public Object getParent(Object object) + { + return preferenceFilter; + } + + @Override + public Object getImage(Object object) + { + Object image = super.getImage(object); + List<Object> images = new ArrayList<Object>(2); + images.add(image); + images.add(EMFEditPlugin.INSTANCE.getImage("full/ovr16/ControlledObject")); + return image = new ComposedImage(images); + } + + @Override + public boolean hasChildren(Object object) + { + return false; + } + + @Override + public Collection<?> getChildren(Object object) + { + return Collections.emptyList(); + } + }; + wrappers.put(project, wrapper); + } + else + { + wrapper.setIndex(i); + } + return wrapper; + } + + @Override + public Collection<?> getChildren(Object object) + { + Collection<Object> result = new ArrayList<Object>(); + + PreferenceFilter preferenceFilter = (PreferenceFilter)object; + PreferenceNode preferenceNode = preferenceFilter.getPreferenceNode(); + if (preferenceNode != null) + { + for (Property property : preferenceNode.getProperties()) + { + String name = property.getName(); + if (name != null) + { + if (preferenceFilter.matches(name)) + { + result.add(wrap(preferenceFilter, -1, property)); + } + } + } + } + + return result; + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() + { + return ProjectConfigEditPlugin.INSTANCE; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/PreferenceProfileItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/PreferenceProfileItemProvider.java new file mode 100644 index 0000000000..a0590036de --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/PreferenceProfileItemProvider.java @@ -0,0 +1,563 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.provider; + +import org.eclipse.emf.cdo.releng.predicates.Predicate; +import org.eclipse.emf.cdo.releng.predicates.PredicatesFactory; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile; +import org.eclipse.emf.cdo.releng.projectconfig.Project; +import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigFactory; +import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage; + +import org.eclipse.emf.common.command.Command; +import org.eclipse.emf.common.command.IdentityCommand; +import org.eclipse.emf.common.command.UnexecutableCommand; +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.EMFEditPlugin; +import org.eclipse.emf.edit.command.AddCommand; +import org.eclipse.emf.edit.command.CommandParameter; +import org.eclipse.emf.edit.command.DragAndDropCommand; +import org.eclipse.emf.edit.command.RemoveCommand; +import org.eclipse.emf.edit.domain.EditingDomain; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.ComposedImage; +import org.eclipse.emf.edit.provider.DelegatingWrapperItemProvider; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.IViewerNotification; +import org.eclipse.emf.edit.provider.IWrapperItemProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ItemProvider; +import org.eclipse.emf.edit.provider.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class PreferenceProfileItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + private static final IWorkspaceRoot WORKSPACE_ROOT = ResourcesPlugin.getWorkspace().getRoot(); + + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferenceProfileItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + addReferentProjectsPropertyDescriptor(object); + addNamePropertyDescriptor(object); + addPrerequisitesPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Referent Projects feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + protected void addReferentProjectsPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory) + .getRootAdapterFactory(), getResourceLocator(), getString("_UI_PreferenceProfile_referentProjects_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_PreferenceProfile_referentProjects_feature", + "_UI_PreferenceProfile_type"), ProjectConfigPackage.Literals.PREFERENCE_PROFILE__REFERENT_PROJECTS, true, + false, true, null, null, null) + { + @Override + public Collection<?> getChoiceOfValues(Object object) + { + Collection<?> allProjects = super.getChoiceOfValues(object); + + PreferenceProfile preferenceProfile = (PreferenceProfile)object; + EList<Predicate> predicates = preferenceProfile.getPredicates(); + if (predicates.isEmpty()) + { + return allProjects; + } + + Collection<Project> result = new ArrayList<Project>(); + for (Object value : allProjects) + { + Project project = (Project)value; + String projectName = project.getPreferenceNode().getName(); + IProject iProject = WORKSPACE_ROOT.getProject(projectName); + for (Predicate predicate : predicates) + { + if (predicate.matches(iProject)) + { + result.add(project); + } + } + } + + return result; + } + }); + } + + /** + * This adds a property descriptor for the Name feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addNamePropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_PreferenceProfile_name_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_PreferenceProfile_name_feature", + "_UI_PreferenceProfile_type"), ProjectConfigPackage.Literals.PREFERENCE_PROFILE__NAME, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); + } + + /** + * This adds a property descriptor for the Prerequisites feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + protected void addPrerequisitesPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory) + .getRootAdapterFactory(), getResourceLocator(), getString("_UI_PreferenceProfile_prerequisites_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_PreferenceProfile_prerequisites_feature", + "_UI_PreferenceProfile_type"), ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREREQUISITES, true, + false, true, null, null, null) + { + @Override + public Collection<?> getChoiceOfValues(Object object) + { + PreferenceProfile preferenceProfile = (PreferenceProfile)object; + Collection<?> result = new ArrayList<Object>(super.getChoiceOfValues(object)); + for (Iterator<?> i = result.iterator(); i.hasNext();) + { + PreferenceProfile prerequistePreferenceProfile = (PreferenceProfile)i.next(); + if (prerequistePreferenceProfile == preferenceProfile + || prerequistePreferenceProfile.requires(preferenceProfile)) + { + i.remove(); + } + } + return result; + } + }); + } + + /** + * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) + { + if (childrenFeatures == null) + { + super.getChildrenFeatures(object); + childrenFeatures.add(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREFERENCE_FILTERS); + childrenFeatures.add(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREDICATES); + } + return childrenFeatures; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EStructuralFeature getChildFeature(Object object, Object child) + { + // Check the type of the specified child object and return the proper feature to use for + // adding (see {@link AddCommand}) it as a child. + + return super.getChildFeature(object, child); + } + + /** + * This returns PreferenceProfile.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PreferenceProfile")); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() + { + return true; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) + { + String label = ((PreferenceProfile)object).getName(); + return label == null ? "" : label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(PreferenceProfile.class)) + { + case ProjectConfigPackage.PREFERENCE_PROFILE__NAME: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES: + case ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); + if (referents != null) + { + referents.update(); + } + return; + } + super.notifyChanged(notification); + } + + private class Referents extends ItemProvider implements IEditingDomainItemProvider + { + PreferenceProfile preferenceProfile; + + public Referents(AdapterFactory adapterFactory, String text, Object image, PreferenceProfile preferenceProfile) + { + super(adapterFactory, text, image, preferenceProfile); + this.preferenceProfile = preferenceProfile; + } + + Map<Project, IWrapperItemProvider> wrappers = new HashMap<Project, IWrapperItemProvider>(); + + public void update() + { + /* + * for (Object child : getChildren()) { ((IDisposable)child).dispose(); } + */ + List<Object> children = new ArrayList<Object>(); + EList<Project> referentProjects = preferenceProfile.getReferentProjects(); + for (int i = 0, size = referentProjects.size(); i < size; ++i) + { + Project project = referentProjects.get(i); + IWrapperItemProvider wrapper = wrap(i, project); + children.add(wrapper); + } + ECollections.setEList(getChildren(), children); + } + + private IWrapperItemProvider wrap(int i, Project project) + { + IWrapperItemProvider wrapper = wrappers.get(project); + if (wrapper == null) + { + wrapper = new DelegatingWrapperItemProvider(project, preferenceProfile, + ProjectConfigPackage.Literals.PREFERENCE_PROFILE__REFERENT_PROJECTS, i, adapterFactory) + { + @Override + public Object getParent(Object object) + { + return Referents.this; + } + + @Override + public Object getImage(Object object) + { + Object image = super.getImage(object); + List<Object> images = new ArrayList<Object>(2); + images.add(image); + images.add(EMFEditPlugin.INSTANCE.getImage("full/ovr16/ControlledObject")); + return image = new ComposedImage(images); + } + + @Override + public boolean hasChildren(Object object) + { + return false; + } + + @Override + public Collection<?> getChildren(Object object) + { + return Collections.emptyList(); + } + + @Override + public void notifyChanged(Notification notification) + { + if (notification instanceof IViewerNotification && ((IViewerNotification)notification).isLabelUpdate()) + { + super.notifyChanged(notification); + } + } + }; + wrappers.put(project, wrapper); + } + else + { + wrapper.setIndex(i); + } + return wrapper; + } + + @Override + public Command createCommand(Object object, EditingDomain editingDomain, Class<? extends Command> commandClass, + CommandParameter commandParameter) + { + final Collection<?> originalCollection = commandParameter.getCollection(); + commandParameter = unwrapCommandValues(commandParameter, commandClass); + Collection<?> collection = commandParameter.getCollection(); + if (commandClass == RemoveCommand.class) + { + if (preferenceProfile.getReferentProjects().containsAll(collection)) + { + return new RemoveCommand(editingDomain, preferenceProfile, + ProjectConfigPackage.Literals.PREFERENCE_PROFILE__REFERENT_PROJECTS, collection) + { + @Override + public void doExecute() + { + super.doExecute(); + update(); + affectedObjects = Collections.singleton(Referents.this); + } + + @Override + public void doUndo() + { + super.doUndo(); + update(); + affectedObjects = Collections.singleton(Referents.this); + } + + @Override + public void doRedo() + { + super.doRedo(); + update(); + affectedObjects = Collections.singleton(Referents.this); + } + }; + } + } + else if (commandClass == AddCommand.class && collection != null) + { + final Collection<Object> wrappers = new ArrayList<Object>(); + for (Object value : collection) + { + if (value instanceof Project) + { + wrappers.add(wrap(-1, (Project)value)); + } + else + { + return UnexecutableCommand.INSTANCE; + } + } + return new AddCommand(editingDomain, preferenceProfile, + ProjectConfigPackage.Literals.PREFERENCE_PROFILE__REFERENT_PROJECTS, collection) + { + @Override + public void doExecute() + { + super.doExecute(); + update(); + affectedObjects = wrappers; + } + + @Override + public void doUndo() + { + super.doUndo(); + update(); + affectedObjects = Collections.singleton(Referents.this); + } + + @Override + public void doRedo() + { + super.doRedo(); + update(); + affectedObjects = wrappers; + } + }; + } + else if (commandClass == DragAndDropCommand.class) + { + DragAndDropCommand.Detail detail = (DragAndDropCommand.Detail)commandParameter.getFeature(); + return new DragAndDropCommand(editingDomain, preferenceProfile, detail.location, detail.operations, + detail.operation, commandParameter.getCollection()) + { + @Override + protected boolean prepareDropLinkOn() + { + dragCommand = IdentityCommand.INSTANCE; + dropCommand = AddCommand.create(domain, Referents.this, + ProjectConfigPackage.Literals.PREFERENCE_PROFILE__REFERENT_PROJECTS, originalCollection); + return dropCommand.canExecute(); + } + }; + } + return super.createCommand(object, editingDomain, commandClass, commandParameter); + } + } + + @Override + public Command createCommand(Object object, EditingDomain domain, Class<? extends Command> commandClass, + CommandParameter commandParameter) + { + Collection<?> collection = commandParameter.getCollection(); + if (collection != null) + { + for (Object value : collection) + { + if (value instanceof Project) + { + return referents.createCommand(referents, domain, commandClass, commandParameter); + } + } + } + return super.createCommand(object, domain, commandClass, commandParameter); + } + + private Referents referents; + + @Override + public Collection<?> getChildren(Object object) + { + Collection<Object> result = new ArrayList<Object>(super.getChildren(object)); + PreferenceProfile preferenceProfile = (PreferenceProfile)object; + if (referents == null) + { + referents = new Referents(adapterFactory, "Referents", getResourceLocator().getImage("full/obj16/IncomingLinks"), + preferenceProfile); + } + referents.update(); + result.add(referents); + return result; + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREFERENCE_FILTERS, + ProjectConfigFactory.eINSTANCE.createPreferenceFilter())); + + newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREDICATES, + PredicatesFactory.eINSTANCE.createNamePredicate())); + + newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREDICATES, + PredicatesFactory.eINSTANCE.createRepositoryPredicate())); + + newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREDICATES, + PredicatesFactory.eINSTANCE.createAndPredicate())); + + newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREDICATES, + PredicatesFactory.eINSTANCE.createOrPredicate())); + + newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREDICATES, + PredicatesFactory.eINSTANCE.createNotPredicate())); + + newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREDICATES, + PredicatesFactory.eINSTANCE.createNaturePredicate())); + + newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREDICATES, + PredicatesFactory.eINSTANCE.createBuilderPredicate())); + + newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREDICATES, + PredicatesFactory.eINSTANCE.createFilePredicate())); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() + { + return ProjectConfigEditPlugin.INSTANCE; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectConfigEditPlugin.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectConfigEditPlugin.java new file mode 100644 index 0000000000..bb918bb8ee --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectConfigEditPlugin.java @@ -0,0 +1,101 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.provider; + +import org.eclipse.emf.cdo.releng.predicates.provider.PredicatesEditPlugin; +import org.eclipse.emf.cdo.releng.preferences.provider.PreferencesEditPlugin; + +import org.eclipse.emf.common.EMFPlugin; + +import org.eclipse.emf.common.util.ResourceLocator; + +/** + * This is the central singleton for the Project Config edit plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public final class ProjectConfigEditPlugin extends EMFPlugin +{ + /** + * Keep track of the singleton. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final ProjectConfigEditPlugin INSTANCE = new ProjectConfigEditPlugin(); + + /** + * Keep track of the singleton. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static Implementation plugin; + + /** + * Create the instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ProjectConfigEditPlugin() + { + super + (new ResourceLocator [] + { + PredicatesEditPlugin.INSTANCE, + PreferencesEditPlugin.INSTANCE, + }); + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the singleton instance. + * @generated + */ + @Override + public ResourceLocator getPluginResourceLocator() + { + return plugin; + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the singleton instance. + * @generated + */ + public static Implementation getPlugin() + { + return plugin; + } + + /** + * The actual implementation of the Eclipse <b>Plugin</b>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static class Implementation extends EclipsePlugin + { + /** + * Creates an instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Implementation() + { + super(); + + // Remember the static instance. + // + plugin = this; + } + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectConfigItemProviderAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectConfigItemProviderAdapterFactory.java new file mode 100644 index 0000000000..3d142e6775 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectConfigItemProviderAdapterFactory.java @@ -0,0 +1,289 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.provider; + +import java.util.ArrayList; +import java.util.Collection; + +import org.eclipse.emf.cdo.releng.projectconfig.util.ProjectConfigAdapterFactory; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.edit.provider.ChangeNotifier; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.ComposedAdapterFactory; +import org.eclipse.emf.edit.provider.Disposable; +import org.eclipse.emf.edit.provider.IChangeNotifier; +import org.eclipse.emf.edit.provider.IDisposable; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.INotifyChangedListener; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; + +/** + * This is the factory that is used to provide the interfaces needed to support Viewers. + * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}. + * The adapters also support Eclipse property sheets. + * Note that most of the adapters are shared among multiple instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class ProjectConfigItemProviderAdapterFactory extends ProjectConfigAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable +{ + /** + * This keeps track of the root adapter factory that delegates to this adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ComposedAdapterFactory parentAdapterFactory; + + /** + * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IChangeNotifier changeNotifier = new ChangeNotifier(); + + /** + * This keeps track of all the item providers created, so that they can be {@link #dispose disposed}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Disposable disposable = new Disposable(); + + /** + * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<Object> supportedTypes = new ArrayList<Object>(); + + /** + * This constructs an instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ProjectConfigItemProviderAdapterFactory() + { + supportedTypes.add(IEditingDomainItemProvider.class); + supportedTypes.add(IStructuredItemContentProvider.class); + supportedTypes.add(ITreeItemContentProvider.class); + supportedTypes.add(IItemLabelProvider.class); + supportedTypes.add(IItemPropertySource.class); + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected WorkspaceConfigurationItemProvider workspaceConfigurationItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createWorkspaceConfigurationAdapter() + { + if (workspaceConfigurationItemProvider == null) + { + workspaceConfigurationItemProvider = new WorkspaceConfigurationItemProvider(this); + } + + return workspaceConfigurationItemProvider; + } + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.projectconfig.Project}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createProjectAdapter() + { + return new ProjectItemProvider(this); + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PreferenceProfileItemProvider preferenceProfileItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createPreferenceProfileAdapter() + { + if (preferenceProfileItemProvider == null) + { + preferenceProfileItemProvider = new PreferenceProfileItemProvider(this); + } + + return preferenceProfileItemProvider; + } + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createPreferenceFilterAdapter() + { + return new PreferenceFilterItemProvider(this); + } + + /** + * This returns the root adapter factory that contains this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ComposeableAdapterFactory getRootAdapterFactory() + { + return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory(); + } + + /** + * This sets the composed adapter factory that contains this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) + { + this.parentAdapterFactory = parentAdapterFactory; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isFactoryForType(Object type) + { + return supportedTypes.contains(type) || super.isFactoryForType(type); + } + + /** + * This implementation substitutes the factory itself as the key for the adapter. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter adapt(Notifier notifier, Object type) + { + return super.adapt(notifier, this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object adapt(Object object, Object type) + { + if (isFactoryForType(type)) + { + Object adapter = super.adapt(object, type); + if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) + { + return adapter; + } + } + + return null; + } + + /** + * Associates an adapter with a notifier via the base implementation, then records it to ensure it will be disposed. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void associate(Adapter adapter, Notifier target) + { + super.associate(adapter, target); + if (adapter != null) + { + disposable.add(adapter); + } + } + + /** + * This adds a listener. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void addListener(INotifyChangedListener notifyChangedListener) + { + changeNotifier.addListener(notifyChangedListener); + } + + /** + * This removes a listener. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void removeListener(INotifyChangedListener notifyChangedListener) + { + changeNotifier.removeListener(notifyChangedListener); + } + + /** + * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void fireNotifyChanged(Notification notification) + { + changeNotifier.fireNotifyChanged(notification); + + if (parentAdapterFactory != null) + { + parentAdapterFactory.fireNotifyChanged(notification); + } + } + + /** + * This disposes all of the item providers created by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void dispose() + { + disposable.dispose(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectItemProvider.java new file mode 100644 index 0000000000..80fa34b245 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectItemProvider.java @@ -0,0 +1,766 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.provider; + +import org.eclipse.emf.cdo.releng.predicates.AndPredicate; +import org.eclipse.emf.cdo.releng.predicates.NaturePredicate; +import org.eclipse.emf.cdo.releng.predicates.PredicatesFactory; +import org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate; +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile; +import org.eclipse.emf.cdo.releng.projectconfig.Project; +import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigFactory; +import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage; +import org.eclipse.emf.cdo.releng.projectconfig.util.ProjectConfigUtil; + +import org.eclipse.emf.common.CommonPlugin; +import org.eclipse.emf.common.command.Command; +import org.eclipse.emf.common.command.IdentityCommand; +import org.eclipse.emf.common.command.UnexecutableCommand; +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.EMFEditPlugin; +import org.eclipse.emf.edit.command.AddCommand; +import org.eclipse.emf.edit.command.CommandParameter; +import org.eclipse.emf.edit.command.CreateChildCommand; +import org.eclipse.emf.edit.command.DragAndDropCommand; +import org.eclipse.emf.edit.command.DragAndDropCommand.Detail; +import org.eclipse.emf.edit.command.DragAndDropFeedback; +import org.eclipse.emf.edit.command.RemoveCommand; +import org.eclipse.emf.edit.domain.EditingDomain; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.ComposedImage; +import org.eclipse.emf.edit.provider.DelegatingWrapperItemProvider; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.IViewerNotification; +import org.eclipse.emf.edit.provider.IWrapperItemProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ItemProvider; +import org.eclipse.emf.edit.provider.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.projectconfig.Project} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class ProjectItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + + private static final Class<?> IWORKBENCH_ADAPTER_CLASS; + + private static final Method GET_IMAGE_DESCRIPTOR_METHOD; + + static + { + Class<?> workbenchAdapterClass = null; + Method method = null; + + try + { + workbenchAdapterClass = CommonPlugin.loadClass("org.eclipse.ui.ide", "org.eclipse.ui.model.IWorkbenchAdapter"); + method = workbenchAdapterClass.getMethod("getImageDescriptor", Object.class); + } + catch (Throwable throwable) + { + // Ignore + } + + IWORKBENCH_ADAPTER_CLASS = workbenchAdapterClass; + GET_IMAGE_DESCRIPTOR_METHOD = method; + + } + + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ProjectItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + addPreferenceNodePropertyDescriptor(object); + addPreferenceProfileReferencesPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Preference Node feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addPreferenceNodePropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), + getString("_UI_Project_preferenceNode_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Project_preferenceNode_feature", "_UI_Project_type"), + ProjectConfigPackage.Literals.PROJECT__PREFERENCE_NODE, true, false, true, null, null, null)); + } + + /** + * This adds a property descriptor for the Preference Profile References feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + protected void addPreferenceProfileReferencesPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory) + .getRootAdapterFactory(), getResourceLocator(), getString("_UI_Project_preferenceProfileReferences_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Project_preferenceProfileReferences_feature", + "_UI_Project_type"), ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILE_REFERENCES, true, false, + true, null, null, null) + { + IItemLabelProvider labelProvider = new IItemLabelProvider() + { + public String getText(Object object) + { + String result = itemDelegator.getText(object); + if (object instanceof PreferenceProfile) + { + PreferenceProfile preferenceProfile = (PreferenceProfile)object; + Project project = preferenceProfile.getProject(); + if (project != null) + { + PreferenceNode preferenceNode = project.getPreferenceNode(); + if (preferenceNode != null) + { + String name = preferenceNode.getName(); + if (name != null) + { + result += " - " + name; + } + } + } + } + return result; + } + + public Object getImage(Object object) + { + return itemDelegator.getImage(object); + } + }; + + @Override + public IItemLabelProvider getLabelProvider(Object object) + { + return labelProvider; + } + + }); + } + + /** + * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) + { + if (childrenFeatures == null) + { + super.getChildrenFeatures(object); + childrenFeatures.add(ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILES); + } + return childrenFeatures; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EStructuralFeature getChildFeature(Object object, Object child) + { + // Check the type of the specified child object and return the proper feature to use for + // adding (see {@link AddCommand}) it as a child. + + return super.getChildFeature(object, child); + } + + /** + * This returns Project.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public Object getImage(Object object) + { + Project project = (Project)object; + PreferenceNode preferenceNode = project.getPreferenceNode(); + if (preferenceNode != null) + { + String name = preferenceNode.getName(); + if (name != null) + { + IProject iProject = ResourcesPlugin.getWorkspace().getRoot().getProject(name); + try + { + Object adapter = iProject.getAdapter(IWORKBENCH_ADAPTER_CLASS); + if (adapter != null) + { + return GET_IMAGE_DESCRIPTOR_METHOD.invoke(adapter, iProject); + } + } + catch (Throwable throwable) + { + // Ignore + } + } + } + + return overlayImage(object, getResourceLocator().getImage("full/obj16/Project")); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() + { + return true; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) + { + Project project = (Project)object; + PreferenceNode preferenceNode = project.getPreferenceNode(); + String label = "<invalid>"; + if (preferenceNode != null) + { + String name = preferenceNode.getName(); + if (name != null) + { + label = name; + } + } + return label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(Project.class)) + { + case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); + return; + } + super.notifyChanged(notification); + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public void notifyChangedFoo(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(Project.class)) + { + case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES: + case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, true)); + return; + } + super.notifyChanged(notification); + } + + private class References extends ItemProvider implements IEditingDomainItemProvider + { + Project project; + + public References(AdapterFactory adapterFactory, String text, Object image, Project project) + { + super(adapterFactory, text, image, project); + this.project = project; + } + + Map<PreferenceProfile, IWrapperItemProvider> wrappers = new HashMap<PreferenceProfile, IWrapperItemProvider>(); + + public void update() + { + /* + * for (Object child : getChildren()) { ((IDisposable)child).dispose(); } + */ + List<Object> children = new ArrayList<Object>(); + EList<PreferenceProfile> referentProjects = project.getPreferenceProfileReferences(); + for (int i = 0, size = referentProjects.size(); i < size; ++i) + { + PreferenceProfile project = referentProjects.get(i); + IWrapperItemProvider wrapper = wrap(i, project); + children.add(wrapper); + } + ECollections.setEList(getChildren(), children); + } + + private IWrapperItemProvider wrap(int i, PreferenceProfile preferenceProfile) + { + IWrapperItemProvider wrapper = wrappers.get(preferenceProfile); + if (wrapper == null) + { + wrapper = new DelegatingWrapperItemProvider(preferenceProfile, project, + ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILE_REFERENCES, i, adapterFactory) + { + @Override + public Object getParent(Object object) + { + return References.this; + } + + @Override + public String getText(Object object) + { + String result = super.getText(object); + PreferenceProfile preferenceProfile = (PreferenceProfile)value; + Project project = preferenceProfile.getProject(); + if (project != null) + { + PreferenceNode preferenceNode = project.getPreferenceNode(); + if (preferenceNode != null) + { + String name = preferenceNode.getName(); + if (name != null) + { + result += " - " + name; + } + } + } + return result; + } + + @Override + public Object getImage(Object object) + { + Object image = super.getImage(object); + List<Object> images = new ArrayList<Object>(2); + images.add(image); + images.add(EMFEditPlugin.INSTANCE.getImage("full/ovr16/ControlledObject")); + return image = new ComposedImage(images); + } + + @Override + public boolean hasChildren(Object object) + { + return false; + } + + @Override + public Collection<?> getChildren(Object object) + { + return Collections.emptyList(); + } + + @Override + public void notifyChanged(Notification notification) + { + if (notification instanceof IViewerNotification && ((IViewerNotification)notification).isLabelUpdate()) + { + super.notifyChanged(notification); + } + } + }; + wrappers.put(preferenceProfile, wrapper); + } + else + { + wrapper.setIndex(i); + } + return wrapper; + } + + @Override + public Command createCommand(Object object, EditingDomain editingDomain, Class<? extends Command> commandClass, + CommandParameter commandParameter) + { + final Collection<?> originalCollection = commandParameter.getCollection(); + commandParameter = unwrapCommandValues(commandParameter, commandClass); + Collection<?> collection = commandParameter.getCollection(); + if (commandClass == RemoveCommand.class) + { + if (project.getPreferenceProfileReferences().containsAll(collection)) + { + return new RemoveCommand(editingDomain, project, + ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILE_REFERENCES, collection) + { + @Override + public void doExecute() + { + super.doExecute(); + update(); + affectedObjects = Collections.singleton(References.this); + } + + @Override + public void doUndo() + { + super.doUndo(); + update(); + affectedObjects = Collections.singleton(References.this); + } + + @Override + public void doRedo() + { + super.doRedo(); + update(); + affectedObjects = Collections.singleton(References.this); + } + }; + } + } + else if (commandClass == AddCommand.class && collection != null) + { + final Collection<Object> wrappers = new ArrayList<Object>(); + for (Object value : collection) + { + if (value instanceof PreferenceProfile) + { + wrappers.add(wrap(-1, (PreferenceProfile)value)); + } + else + { + return UnexecutableCommand.INSTANCE; + } + } + return new AddCommand(editingDomain, project, + ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILE_REFERENCES, collection) + { + @Override + public void doExecute() + { + super.doExecute(); + update(); + affectedObjects = wrappers; + } + + @Override + public void doUndo() + { + super.doUndo(); + update(); + affectedObjects = Collections.singleton(References.this); + } + + @Override + public void doRedo() + { + super.doRedo(); + update(); + affectedObjects = wrappers; + } + }; + } + else if (commandClass == DragAndDropCommand.class) + { + DragAndDropCommand.Detail detail = (DragAndDropCommand.Detail)commandParameter.getFeature(); + return new DragAndDropCommand(editingDomain, this, detail.location, detail.operations, detail.operation, + commandParameter.getCollection()) + { + @Override + protected boolean prepareDropLinkOn() + { + dragCommand = IdentityCommand.INSTANCE; + dropCommand = AddCommand.create(domain, References.this, + ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILE_REFERENCES, originalCollection); + return dropCommand.canExecute(); + } + }; + } + return super.createCommand(object, editingDomain, commandClass, commandParameter); + } + } + + /* + * @Override public Command createCommand(Object object, EditingDomain domain, Class<? extends Command> commandClass, + * CommandParameter commandParameter) { Collection<?> collection = commandParameter.getCollection(); if (collection != + * null) { for (Object value : collection) { if (value instanceof PreferenceProfile) { return + * referents.createCommand(referents, domain, commandClass, commandParameter); } } } return + * super.createCommand(object, domain, commandClass, commandParameter); } + */ + + private References references; + + @Override + public Collection<?> getChildren(Object object) + { + Collection<Object> result = new ArrayList<Object>(super.getChildren(object)); + Project project = (Project)object; + if (references == null) + { + references = new References(adapterFactory, "References", getResourceLocator().getImage( + "full/obj16/OutgoingLinks"), project); + } + references.update(); + result.add(references); + return result; + } + + @Override + protected Command createDragAndDropCommand(EditingDomain domain, Object owner, float location, int operations, + int operation, Collection<?> collection) + { + if (operation == DragAndDropFeedback.DROP_LINK) + { + return references.createCommand(references, domain, DragAndDropCommand.class, new CommandParameter(references, + new Detail(location, operations, operation), collection)); + } + return super.createDragAndDropCommand(domain, owner, location, operations, operation, collection); + } + + private static final Set<String> IGNORE_NAME_COMPONENTS = new HashSet<String>(Arrays.asList(new String[] { "org", + "eclipse", "com" })); + + private static final Map<String, String> ACRYONYMS = new HashMap<String, String>(); + static + { + ACRYONYMS.put("jdt", "JDT"); + ACRYONYMS.put("pde", "PDE"); + ACRYONYMS.put("ui", "UI"); + ACRYONYMS.put("api", "API"); + ACRYONYMS.put("ltk", "LTK"); + ACRYONYMS.put("gmf", "GMF"); + } + + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + Project project = (Project)object; + Collection<PreferenceNode> unmanagedPreferenceNodes = ProjectConfigUtil.getUnmanagedPreferenceNodes(project); + + for (PreferenceNode preferenceNode : unmanagedPreferenceNodes) + { + String preferenceNodeName = preferenceNode.getName(); + String[] nameComponents = preferenceNodeName.split("\\."); + int start = 0; + while (start < nameComponents.length) + { + if (!IGNORE_NAME_COMPONENTS.contains(nameComponents[start])) + { + break; + } + ++start; + } + + StringBuilder builder = new StringBuilder(); + for (int i = start; i < nameComponents.length; ++i) + { + if (builder.length() > 0) + { + builder.append(' '); + } + String nameComponent = nameComponents[i]; + String acronym = ACRYONYMS.get(nameComponent); + if (acronym != null) + { + builder.append(acronym); + } + else + { + int length = nameComponent.length(); + if (length >= 1) + { + builder.append(Character.toUpperCase(nameComponent.charAt(0))); + builder.append(nameComponent, 1, length); + } + } + } + + PreferenceProfile preferenceProfile = ProjectConfigFactory.eINSTANCE.createPreferenceProfile(); + if (builder.length() > 0) + { + preferenceProfile.setName(builder.toString()); + } + + PreferenceFilter preferenceFilter = ProjectConfigFactory.eINSTANCE.createPreferenceFilter(); + preferenceFilter.setPreferenceNode(preferenceNode); + preferenceProfile.getPreferenceFilters().add(preferenceFilter); + + AndPredicate andPredicate = PredicatesFactory.eINSTANCE.createAndPredicate(); + preferenceProfile.getPredicates().add(andPredicate); + + RepositoryPredicate repositoryPredicate = PredicatesFactory.eINSTANCE.createRepositoryPredicate(); + IProject iProject = ProjectConfigUtil.getProject(project); + repositoryPredicate.setProject(iProject); + andPredicate.getOperands().add(repositoryPredicate); + + try + { + String[] natureIds = iProject.getDescription().getNatureIds(); + int bestMatchLength = 0; + String bestNatureId = null; + for (String natureId : natureIds) + { + String[] natureComponents = natureId.split("\\."); + int index = 0; + while (index < natureComponents.length && index < nameComponents.length) + { + if (!nameComponents[index].equals(natureComponents[index])) + { + break; + } + ++index; + } + + if (bestMatchLength < index) + { + bestMatchLength = index; + bestNatureId = natureId; + } + } + + if (bestMatchLength >= 3) + { + NaturePredicate naturePredicate = PredicatesFactory.eINSTANCE.createNaturePredicate(); + naturePredicate.setNature(bestNatureId); + andPredicate.getOperands().add(naturePredicate); + } + } + catch (CoreException ex) + { + // Ignore + } + + newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILES, + preferenceProfile)); + } + + collectNewChildDescriptorsGen(newChildDescriptors, object); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void collectNewChildDescriptorsGen(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILES, + ProjectConfigFactory.eINSTANCE.createPreferenceProfile())); + } + + @Override + public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) + { + String text = super.getCreateChildText(owner, feature, child, selection); + if (child instanceof PreferenceProfile) + { + PreferenceProfile preferenceProfile = (PreferenceProfile)child; + EList<PreferenceFilter> preferenceFilters = preferenceProfile.getPreferenceFilters(); + if (!preferenceFilters.isEmpty()) + { + PreferenceFilter preferenceFilter = preferenceFilters.get(0); + PreferenceNode preferenceNode = preferenceFilter.getPreferenceNode(); + if (preferenceNode != null) + { + String name = preferenceNode.getName(); + if (name != null) + { + text += " for " + name; + } + } + } + } + return text; + } + + @Override + protected Command createCreateChildCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, + Object value, int index, Collection<?> collection) + { + return new CreateChildCommand(domain, owner, feature, value, index, collection, this); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() + { + return ProjectConfigEditPlugin.INSTANCE; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/WorkspaceConfigurationItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/WorkspaceConfigurationItemProvider.java new file mode 100644 index 0000000000..b1e3f45d99 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/WorkspaceConfigurationItemProvider.java @@ -0,0 +1,240 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.provider; + + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigFactory; +import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage; +import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.ResourceLocator; + +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class WorkspaceConfigurationItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource +{ + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public WorkspaceConfigurationItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + addDefaultPreferenceNodePropertyDescriptor(object); + addInstancePreferenceNodePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Default Preference Node feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addDefaultPreferenceNodePropertyDescriptor(Object object) + { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_WorkspaceConfiguration_defaultPreferenceNode_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_WorkspaceConfiguration_defaultPreferenceNode_feature", "_UI_WorkspaceConfiguration_type"), + ProjectConfigPackage.Literals.WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE, + true, + false, + true, + null, + null, + null)); + } + + /** + * This adds a property descriptor for the Instance Preference Node feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addInstancePreferenceNodePropertyDescriptor(Object object) + { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_WorkspaceConfiguration_instancePreferenceNode_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_WorkspaceConfiguration_instancePreferenceNode_feature", "_UI_WorkspaceConfiguration_type"), + ProjectConfigPackage.Literals.WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE, + true, + false, + true, + null, + null, + null)); + } + + /** + * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) + { + if (childrenFeatures == null) + { + super.getChildrenFeatures(object); + childrenFeatures.add(ProjectConfigPackage.Literals.WORKSPACE_CONFIGURATION__PROJECTS); + } + return childrenFeatures; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EStructuralFeature getChildFeature(Object object, Object child) + { + // Check the type of the specified child object and return the proper feature to use for + // adding (see {@link AddCommand}) it as a child. + + return super.getChildFeature(object, child); + } + + /** + * This returns WorkspaceConfiguration.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/WorkspaceConfiguration")); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected boolean shouldComposeCreationImage() + { + return true; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) + { + return getString("_UI_WorkspaceConfiguration_type"); + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(WorkspaceConfiguration.class)) + { + case ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add + (createChildParameter + (ProjectConfigPackage.Literals.WORKSPACE_CONFIGURATION__PROJECTS, + ProjectConfigFactory.eINSTANCE.createProject())); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() + { + return ProjectConfigEditPlugin.INSTANCE; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.classpath b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.classpath new file mode 100644 index 0000000000..3bc247511f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.project b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.project new file mode 100644 index 0000000000..32fc65c49c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.emf.cdo.releng.projectconfig.editor</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + </natures> +</projectDescription> diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000..0483dbc8d5 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding//model/projectconfig.ecorediag=UTF-8 diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..48aafaf7ea --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,381 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +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.doc.comment.support=enabled +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.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +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.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +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=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +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=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +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.unusedObjectAllocation=ignore +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.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled +org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW +org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED +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=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=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true +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=false +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=120 +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=2 +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=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=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=do not 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=space +org.eclipse.jdt.core.formatter.tabulation.size=2 +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/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000000..3fc140fcdc --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,119 @@ +cleanup.add_default_serial_version_id=true +cleanup.add_generated_serial_version_id=false +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=false +cleanup.always_use_this_for_non_static_method_access=false +cleanup.convert_to_enhanced_for_loop=false +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=false +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=false +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=false +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=false +cleanup.qualify_static_method_accesses_with_declaring_class=false +cleanup.remove_private_constructors=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_parentheses_in_expressions=true +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=true +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=true +cleanup_profile=_EMFT +cleanup_settings_version=2 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +formatter_profile=_EMFT +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=ex +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.ignorelowercasenames=true +org.eclipse.jdt.ui.importorder=org.eclipse.emf.cdo;org.eclipse.emf.internal.cdo;org.eclipse.net4j;org.eclipse.internal.net4j;org.eclipse.emf;org.eclipse;com;org;javax;java; +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=false +org.eclipse.jdt.ui.ondemandthreshold=99 +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.staticondemandthreshold=99 +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" 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 * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made 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 * Eike Stepper - initial API and implementation\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 * @author Eike Stepper\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" 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">${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${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}</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> +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=false +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=false +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=false +sp_cleanup.make_parameters_final=false +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=false +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=true +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=true +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.ltk.core.refactoring.prefs new file mode 100644 index 0000000000..864e30fe5d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.ltk.core.refactoring.prefs @@ -0,0 +1,3 @@ +#Thu Feb 04 09:44:24 CET 2010 +eclipse.preferences.version=1 +org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.mylyn.tasks.ui.prefs new file mode 100644 index 0000000000..b050639a54 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.mylyn.tasks.ui.prefs @@ -0,0 +1,4 @@ +#Thu Feb 04 09:44:24 CET 2010 +eclipse.preferences.version=1 +project.repository.kind=bugzilla +project.repository.url=https\://bugs.eclipse.org/bugs diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.mylyn.team.ui.prefs new file mode 100644 index 0000000000..2f50f36c0c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.mylyn.team.ui.prefs @@ -0,0 +1,3 @@ +#Thu Feb 04 09:44:24 CET 2010 +commit.comment.template=[${task.id}] ${task.description} \r\n${task.url} +eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.pde.api.tools.prefs new file mode 100644 index 0000000000..0c17d59e45 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.pde.api.tools.prefs @@ -0,0 +1,95 @@ +#Thu Feb 04 09:44:24 CET 2010 +ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error +ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error +CLASS_ELEMENT_TYPE_ADDED_METHOD=Error +CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error +CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error +CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error +CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error +ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error +ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error +ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +FIELD_ELEMENT_TYPE_ADDED_VALUE=Error +FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error +FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error +FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error +FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error +ILLEGAL_EXTEND=Warning +ILLEGAL_IMPLEMENT=Warning +ILLEGAL_INSTANTIATE=Warning +ILLEGAL_OVERRIDE=Warning +ILLEGAL_REFERENCE=Warning +INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error +INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error +INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error +INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +INVALID_JAVADOC_TAG=Ignore +INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error +MISSING_EE_DESCRIPTIONS=Warning +LEAK_EXTEND=Warning +LEAK_FIELD_DECL=Warning +LEAK_IMPLEMENT=Warning +LEAK_METHOD_PARAM=Warning +LEAK_METHOD_RETURN_TYPE=Warning +METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error +METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error +UNUSED_PROBLEM_FILTERS=Ignore +automatically_removed_unused_problem_filters=Disabled +eclipse.preferences.version=1 +incompatible_api_component_version=Error +incompatible_api_component_version_include_major_without_breaking_change=Disabled +incompatible_api_component_version_include_minor_without_api_change=Disabled +invalid_since_tag_version=Error +malformed_since_tag=Error +missing_since_tag=Error +report_api_breakage_when_major_version_incremented=Disabled +report_resolution_errors_api_component=Warning diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.pde.prefs new file mode 100644 index 0000000000..fe01bb701d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.pde.prefs @@ -0,0 +1,31 @@ +#Thu Feb 04 09:44:24 CET 2010 +compilers.f.unresolved-features=1 +compilers.f.unresolved-plugins=1 +compilers.incompatible-environment=1 +compilers.p.build=1 +compilers.p.build.bin.includes=1 +compilers.p.build.java.compliance=1 +compilers.p.build.missing.output=2 +compilers.p.build.output.library=1 +compilers.p.build.source.library=1 +compilers.p.build.src.includes=1 +compilers.p.deprecated=2 +compilers.p.discouraged-class=1 +compilers.p.internal=1 +compilers.p.missing-packages=1 +compilers.p.missing-version-export-package=1 +compilers.p.missing-version-import-package=1 +compilers.p.missing-version-require-bundle=1 +compilers.p.no-required-att=0 +compilers.p.not-externalized-att=2 +compilers.p.unknown-attribute=1 +compilers.p.unknown-class=1 +compilers.p.unknown-element=1 +compilers.p.unknown-identifier=1 +compilers.p.unknown-resource=1 +compilers.p.unresolved-ex-points=0 +compilers.p.unresolved-import=0 +compilers.s.create-docs=false +compilers.s.doc-folder=doc +compilers.s.open-tags=1 +eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..6966c19b24 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/META-INF/MANIFEST.MF @@ -0,0 +1,24 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: org.eclipse.emf.cdo.releng.projectconfig.editor;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: . +Bundle-Activator: org.eclipse.emf.cdo.releng.projectconfig.presentation.ProjectConfigEditorPlugin$Implementation +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.eclipse.emf.cdo.releng.projectconfig.presentation;version="1.0.0", + org.eclipse.emf.cdo.releng.projectconfig.presentation.handlers;version="1.0.0";x-internal:=true +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.core.resources;visibility:=reexport, + org.eclipse.emf.cdo.releng.projectconfig.edit;visibility:=reexport, + org.eclipse.emf.ecore.xmi;visibility:=reexport, + org.eclipse.emf.edit.ui;visibility:=reexport, + org.eclipse.ui.ide;visibility:=reexport, + org.eclipse.emf.cdo.releng.predicates.edit;visibility:=reexport, + org.eclipse.emf.cdo.releng.preferences.edit;visibility:=reexport, + org.eclipse.ui, + org.eclipse.emf.cdo.releng.preferences.editor, + org.eclipse.core.expressions +Bundle-ActivationPolicy: lazy diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/build.properties b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/build.properties new file mode 100644 index 0000000000..5fb07711cf --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/build.properties @@ -0,0 +1,10 @@ +# + +bin.includes = .,\ + icons/,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = . +source.. = src/ +output.. = bin diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/icons/full/obj16/ProjectConfigModelFile.gif b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/icons/full/obj16/ProjectConfigModelFile.gif Binary files differnew file mode 100644 index 0000000000..1e9e8f0f79 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/icons/full/obj16/ProjectConfigModelFile.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/icons/sample.gif b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/icons/sample.gif Binary files differnew file mode 100644 index 0000000000..34fb3c9d8c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/icons/sample.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/plugin.properties new file mode 100644 index 0000000000..6ee1bb7596 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/plugin.properties @@ -0,0 +1,43 @@ +# + +pluginName = Project Config Editor +providerName = www.example.org + +_UI_ProjectConfigEditor_menu = &ProjectConfig Editor + +_UI_CreateChild_menu_item = &New Child +_UI_CreateSibling_menu_item = N&ew Sibling + +_UI_ShowPropertiesView_menu_item = Show &Properties View +_UI_RefreshViewer_menu_item = &Refresh + +_UI_SelectionPage_label = Selection + +_UI_NoObjectSelected = Selected Nothing +_UI_SingleObjectSelected = Selected Object: {0} +_UI_MultiObjectSelected = Selected {0} Objects + +_UI_OpenEditorError_label = Open Editor + +_UI_Wizard_category = Example EMF Model Creation Wizards + +_UI_CreateModelError_message = Problems encountered in file "{0}" + +_UI_ProjectConfigEditor_label = ProjectConfig Model Editor + +_UI_ProjectConfigEditorFilenameDefaultBase = My +_UI_ProjectConfigEditorFilenameExtensions = projectconfig + +_UI_Wizard_label = New + +_WARN_FilenameExtension = The file name must end in ''.{0}'' +_WARN_FilenameExtensions = The file name must have one of the following extensions: {0} + +_UI_ModelObject = &Model Object +_UI_XMLEncoding = &XML Encoding +_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1 +_UI_Wizard_initial_object_description = Select a model object to create + +_UI_FileConflict_label = File Conflict +_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes? + diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/plugin.xml new file mode 100644 index 0000000000..9c716de42a --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/plugin.xml @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> + +<!-- +--> + +<plugin> + + <extension + point="org.eclipse.ui.preferencePages"> + <page + category="org.eclipse.emf.cdo.releng.ui.preferences.RelengPreferencePage" + class="org.eclipse.emf.cdo.releng.projectconfig.presentation.ProjectConfigPreferencePage" + id="org.eclipse.emf.cdo.releng.projectconfig.presentation.ProjectConfigPreferencePage" + name="Project Preference Configuration"> + </page> + </extension> + + <extension point="org.eclipse.ui.editors"> + <!-- @generated projectconfig --> + <editor + id="org.eclipse.emf.cdo.releng.projectconfig.presentation.ProjectConfigEditorID" + name="%_UI_ProjectConfigEditor_label" + icon="icons/full/obj16/ProjectConfigModelFile.gif" + extensions="projectconfig" + class="org.eclipse.emf.cdo.releng.projectconfig.presentation.ProjectConfigEditor" + contributorClass="org.eclipse.emf.cdo.releng.projectconfig.presentation.ProjectConfigActionBarContributor"> + </editor> + </extension> + + <extension + point="org.eclipse.ui.commands"> + <category + id="org.eclipse.emf.cdo.releng.projectconfig.editor.commands.category" + name="Project Preference Management"> + </category> + <command + categoryId="org.eclipse.emf.cdo.releng.projectconfig.editor.commands.category" + id="org.eclipse.emf.cdo.releng.projectconfig.editor.commands.ApplyPreferenceProfiles" + name="Apply Project Preferences"> + </command> + <command + categoryId="org.eclipse.emf.cdo.releng.projectconfig.editor.commands.category" + id="org.eclipse.emf.cdo.releng.projectconfig.editor.commands.Navigate" + name="Navigate"> + </command> + </extension> + + <extension + point="org.eclipse.ui.handlers"> + <handler + class="org.eclipse.emf.cdo.releng.projectconfig.presentation.handlers.ApplyPreferenceProfilesHandler" + commandId="org.eclipse.emf.cdo.releng.projectconfig.editor.commands.ApplyPreferenceProfiles"> + </handler> + </extension> + + <extension + point="org.eclipse.ui.menus"> + <menuContribution + locationURI="view:org.eclipse.jdt.ui.PackageExplorer?after=additions"> + <command + commandId="org.eclipse.emf.cdo.releng.projectconfig.editor.commands.ApplyPreferenceProfiles" + id="org.eclipse.emf.cdo.releng.projectconfig.editor.menus.ApplyPreferenceProfiles" + mnemonic="A"> + </command> + </menuContribution> + </extension> + + <extension + point="org.eclipse.ui.handlers"> + <handler + class="org.eclipse.emf.cdo.releng.projectconfig.presentation.handlers.NavigateHandler" + commandId="org.eclipse.emf.cdo.releng.projectconfig.editor.commands.Navigate"> + </handler> + </extension> + + <extension point="org.eclipse.ui.contexts"> + <context + description="Editing Project Configuration Preferences" + id="org.eclipse.emf.cdo.releng.projectconfig.editor.context" + name="Editing Project Configuration Preferences" + parentId="org.eclipse.ui.contexts.window"> + </context> + </extension> + + <extension + point="org.eclipse.ui.bindings"> + <key + commandId="org.eclipse.emf.cdo.releng.projectconfig.editor.commands.Navigate" + contextId="org.eclipse.emf.cdo.releng.projectconfig.editor.context" + schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" + sequence="F3"> + </key> + </extension> + +</plugin> diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigActionBarContributor.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigActionBarContributor.java new file mode 100644 index 0000000000..c50d7f0ca1 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigActionBarContributor.java @@ -0,0 +1,712 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.presentation; + +import org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate; +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; +import org.eclipse.emf.cdo.releng.preferences.action.ShowInExplorerAction; +import org.eclipse.emf.cdo.releng.projectconfig.Project; +import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration; + +import org.eclipse.emf.common.ui.viewer.IViewerProvider; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.edit.command.ChangeCommand; +import org.eclipse.emf.edit.command.CommandParameter; +import org.eclipse.emf.edit.domain.EditingDomain; +import org.eclipse.emf.edit.domain.IEditingDomainProvider; +import org.eclipse.emf.edit.ui.action.ControlAction; +import org.eclipse.emf.edit.ui.action.CreateChildAction; +import org.eclipse.emf.edit.ui.action.CreateSiblingAction; +import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor; +import org.eclipse.emf.edit.ui.action.LoadResourceAction; +import org.eclipse.emf.edit.ui.action.ValidateAction; +import org.eclipse.emf.edit.ui.provider.DiagnosticDecorator; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.ActionContributionItem; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.action.IContributionItem; +import org.eclipse.jface.action.IContributionManager; +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.action.Separator; +import org.eclipse.jface.action.SubContributionItem; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.menus.CommandContributionItem; +import org.eclipse.ui.menus.CommandContributionItemParameter; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * This is the action bar contributor for the ProjectConfig model editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class ProjectConfigActionBarContributor extends EditingDomainActionBarContributor implements + ISelectionChangedListener +{ + private static final IWorkspaceRoot WORKSPACE_ROOT = ResourcesPlugin.getWorkspace().getRoot(); + + /** + * This keeps track of the active editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IEditorPart activeEditorPart; + + /** + * This keeps track of the current selection provider. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ISelectionProvider selectionProvider; + + /** + * This action opens the Properties view. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IAction showPropertiesViewAction = new Action( + ProjectConfigEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) + { + @Override + public void run() + { + try + { + getPage().showView("org.eclipse.ui.views.PropertySheet"); + } + catch (PartInitException exception) + { + ProjectConfigEditorPlugin.INSTANCE.log(exception); + } + } + }; + + /** + * This action refreshes the viewer of the current editor if the editor + * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IAction refreshViewerAction = new Action( + ProjectConfigEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) + { + @Override + public boolean isEnabled() + { + return activeEditorPart instanceof IViewerProvider; + } + + @Override + public void run() + { + if (activeEditorPart instanceof IViewerProvider) + { + Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer(); + if (viewer != null) + { + viewer.refresh(); + } + } + } + }; + + protected IAction updatePreferenceProfileReferencesAction = new Action("Update Preference Profile References") + { + @Override + public boolean isEnabled() + { + return activeEditorPart instanceof IEditingDomainProvider; + } + + @Override + public void run() + { + if (activeEditorPart instanceof IEditingDomainProvider) + { + EditingDomain editingDomain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain(); + EList<Resource> resources = editingDomain.getResourceSet().getResources(); + if (!resources.isEmpty()) + { + final WorkspaceConfiguration workspaceConfiguration = (WorkspaceConfiguration)resources.get(0).getContents() + .get(0); + + editingDomain.getCommandStack().execute(new ChangeCommand(workspaceConfiguration) + { + @Override + public String getDescription() + { + return "Updates preference profile references based on the preference profile predicates"; + } + + @Override + public String getLabel() + { + return "Update References"; + } + + @Override + protected void doExecute() + { + workspaceConfiguration.updatePreferenceProfileReferences(); + } + }); + } + } + } + }; + + protected IAction applyPreferenceProfilesAction = new Action("Apply Preference Profile") + { + @Override + public boolean isEnabled() + { + return activeEditorPart instanceof IEditingDomainProvider; + } + + @Override + public void run() + { + if (activeEditorPart instanceof IEditingDomainProvider) + { + EditingDomain editingDomain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain(); + EList<Resource> resources = editingDomain.getResourceSet().getResources(); + if (!resources.isEmpty()) + { + final WorkspaceConfiguration workspaceConfiguration = (WorkspaceConfiguration)resources.get(0).getContents() + .get(0); + + editingDomain.getCommandStack().execute(new ChangeCommand(workspaceConfiguration) + { + @Override + public String getDescription() + { + return "Apply preference profiles to all affected workspace projects"; + } + + @Override + public String getLabel() + { + return "Update Preference Profiles"; + } + + @Override + protected void doExecute() + { + workspaceConfiguration.updatePreferenceProfileReferences(); + workspaceConfiguration.applyPreferenceProfiles(); + } + }); + } + } + } + }; + + protected IAction reloadEditorAction = new Action("Reload Editor") + { + @Override + public boolean isEnabled() + { + return activeEditorPart instanceof ProjectConfigEditor; + } + + @Override + public void run() + { + if (activeEditorPart instanceof ProjectConfigEditor) + { + ProjectConfigEditor projectConfigEditor = (ProjectConfigEditor)activeEditorPart; + projectConfigEditor.reload(); + } + } + }; + + /** + * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor + * generated for the current selection by the item provider. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<IAction> createChildActions; + + /** + * This is the menu manager into which menu contribution items should be added for CreateChild actions. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IMenuManager createChildMenuManager; + + /** + * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor + * generated for the current selection by the item provider. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<IAction> createSiblingActions; + + /** + * This is the menu manager into which menu contribution items should be added for CreateSibling actions. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IMenuManager createSiblingMenuManager; + + /** + * This creates an instance of the contributor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ProjectConfigActionBarContributor() + { + super(ADDITIONS_LAST_STYLE); + loadResourceAction = new LoadResourceAction(); + validateAction = new ValidateAction(); + liveValidationAction = new DiagnosticDecorator.LiveValidator.LiveValidationAction(ProjectConfigEditorPlugin + .getPlugin().getDialogSettings()); + controlAction = new ControlAction(); + } + + /** + * This adds Separators for editor additions to the tool bar. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void contributeToToolBar(IToolBarManager toolBarManager) + { + toolBarManager.add(new Separator("projectconfig-settings")); + toolBarManager.add(new Separator("projectconfig-additions")); + } + + /** + * This adds to the menu bar a menu and some separators for editor additions, + * as well as the sub-menus for object creation items. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void contributeToMenu(IMenuManager menuManager) + { + super.contributeToMenu(menuManager); + + IMenuManager submenuManager = new MenuManager( + ProjectConfigEditorPlugin.INSTANCE.getString("_UI_ProjectConfigEditor_menu"), + "org.eclipse.emf.cdo.releng.projectconfigMenuID"); + menuManager.insertAfter("additions", submenuManager); + submenuManager.add(new Separator("settings")); + submenuManager.add(new Separator("actions")); + submenuManager.add(new Separator("additions")); + submenuManager.add(new Separator("additions-end")); + + // Prepare for CreateChild item addition or removal. + // + createChildMenuManager = new MenuManager(ProjectConfigEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); + submenuManager.insertBefore("additions", createChildMenuManager); + + // Prepare for CreateSibling item addition or removal. + // + createSiblingMenuManager = new MenuManager( + ProjectConfigEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); + submenuManager.insertBefore("additions", createSiblingMenuManager); + + // Force an update because Eclipse hides empty menus now. + // + submenuManager.addMenuListener(new IMenuListener() + { + public void menuAboutToShow(IMenuManager menuManager) + { + menuManager.updateAll(true); + } + }); + + addGlobalActions(submenuManager); + } + + /** + * When the active editor changes, this remembers the change and registers with it as a selection provider. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setActiveEditor(IEditorPart part) + { + super.setActiveEditor(part); + activeEditorPart = part; + + // Switch to the new selection provider. + // + if (selectionProvider != null) + { + selectionProvider.removeSelectionChangedListener(this); + } + if (part == null) + { + selectionProvider = null; + } + else + { + selectionProvider = part.getSite().getSelectionProvider(); + selectionProvider.addSelectionChangedListener(this); + + // Fake a selection changed event to update the menus. + // + if (selectionProvider.getSelection() != null) + { + selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection())); + } + } + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener}, + * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings + * that can be added to the selected object and updating the menus accordingly. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void selectionChanged(SelectionChangedEvent event) + { + // Remove any menu items for old selection. + // + if (createChildMenuManager != null) + { + depopulateManager(createChildMenuManager, createChildActions); + } + if (createSiblingMenuManager != null) + { + depopulateManager(createSiblingMenuManager, createSiblingActions); + } + + // Query the new selection for appropriate new child/sibling descriptors + // + Collection<?> newChildDescriptors = null; + Collection<?> newSiblingDescriptors = null; + + ISelection selection = event.getSelection(); + if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) + { + Object object = ((IStructuredSelection)selection).getFirstElement(); + + EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain(); + + newChildDescriptors = domain.getNewChildDescriptors(object, null); + newSiblingDescriptors = domain.getNewChildDescriptors(null, object); + } + + // Generate actions for selection; populate and redraw the menus. + // + createChildActions = generateCreateChildActions(newChildDescriptors, selection); + createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection); + + if (createChildMenuManager != null) + { + populateManager(createChildMenuManager, createChildActions, null); + createChildMenuManager.update(true); + } + if (createSiblingMenuManager != null) + { + populateManager(createSiblingMenuManager, createSiblingActions, null); + createSiblingMenuManager.update(true); + } + } + + protected void augment(Collection<?> descriptors, ISelection selection) + { + if (selection instanceof IStructuredSelection && descriptors != null) + { + IStructuredSelection structuredSelection = (IStructuredSelection)selection; + Object object = structuredSelection.getFirstElement(); + if (object instanceof EObject) + { + for (EObject eObject = (EObject)object; eObject != null; eObject = eObject.eContainer()) + { + if (eObject instanceof Project) + { + for (Object descriptor : descriptors) + { + if (descriptor instanceof CommandParameter) + { + CommandParameter commandParameter = (CommandParameter)descriptor; + Object value = commandParameter.getValue(); + if (value instanceof RepositoryPredicate) + { + Project project = (Project)eObject; + PreferenceNode preferenceNode = project.getPreferenceNode(); + if (preferenceNode != null) + { + String projectName = preferenceNode.getName(); + IProject iProject = WORKSPACE_ROOT.getProject(projectName); + RepositoryPredicate repositoryPredicate = (RepositoryPredicate)value; + repositoryPredicate.setProject(iProject); + } + } + } + } + } + } + } + } + } + + protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) + { + augment(descriptors, selection); + return generateCreateChildActionsGen(descriptors, selection); + } + + /** + * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>, + * and returns the collection of these actions. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<IAction> generateCreateChildActionsGen(Collection<?> descriptors, ISelection selection) + { + Collection<IAction> actions = new ArrayList<IAction>(); + if (descriptors != null) + { + for (Object descriptor : descriptors) + { + actions.add(new CreateChildAction(activeEditorPart, selection, descriptor)); + } + } + return actions; + } + + protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) + { + augment(descriptors, selection); + return generateCreateSiblingActionsGen(descriptors, selection); + } + + /** + * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>, + * and returns the collection of these actions. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<IAction> generateCreateSiblingActionsGen(Collection<?> descriptors, ISelection selection) + { + Collection<IAction> actions = new ArrayList<IAction>(); + if (descriptors != null) + { + for (Object descriptor : descriptors) + { + actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor)); + } + } + return actions; + } + + /** + * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s + * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection, + * by inserting them before the specified contribution item <code>contributionID</code>. + * If <code>contributionID</code> is <code>null</code>, they are simply added. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, + String contributionID) + { + if (actions != null) + { + for (IAction action : actions) + { + if (contributionID != null) + { + manager.insertBefore(contributionID, action); + } + else + { + manager.add(action); + } + } + } + } + + /** + * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s + * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) + { + if (actions != null) + { + IContributionItem[] items = manager.getItems(); + for (int i = 0; i < items.length; i++) + { + // Look into SubContributionItems + // + IContributionItem contributionItem = items[i]; + while (contributionItem instanceof SubContributionItem) + { + contributionItem = ((SubContributionItem)contributionItem).getInnerItem(); + } + + // Delete the ActionContributionItems with matching action. + // + if (contributionItem instanceof ActionContributionItem) + { + IAction action = ((ActionContributionItem)contributionItem).getAction(); + if (actions.contains(action)) + { + manager.remove(contributionItem); + } + } + } + } + } + + /** + * This populates the pop-up menu before it appears. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void menuAboutToShow(IMenuManager menuManager) + { + super.menuAboutToShow(menuManager); + MenuManager submenuManager = null; + + submenuManager = new MenuManager(ProjectConfigEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); + populateManager(submenuManager, createChildActions, null); + menuManager.insertBefore("edit", submenuManager); + + submenuManager = new MenuManager(ProjectConfigEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); + populateManager(submenuManager, createSiblingActions, null); + menuManager.insertBefore("edit", submenuManager); + + ISelectionProvider selectionProvider = activeEditor instanceof ISelectionProvider ? (ISelectionProvider)activeEditor + : activeEditor.getEditorSite().getSelectionProvider(); + + if (selectionProvider != null) + { + ISelection selection = selectionProvider.getSelection(); + IStructuredSelection structuredSelection = selection instanceof IStructuredSelection ? (IStructuredSelection)selection + : StructuredSelection.EMPTY; + + final List<PreferenceNode> preferenceNodes = new ArrayList<PreferenceNode>(); + for (Object object : structuredSelection.toArray()) + { + if (object instanceof Project) + { + preferenceNodes.add(((Project)object).getPreferenceNode()); + } + } + + final Action action = new Action() + { + ShowInExplorerAction showInExplorerAction = new ShowInExplorerAction(); + + { + showInExplorerAction.selectionChanged(this, new StructuredSelection(preferenceNodes)); + } + + @Override + public String getText() + { + return "Show in Package Explorer"; + } + + @Override + public void run() + { + showInExplorerAction.run(this); + } + }; + + if (action.isEnabled()) + { + menuManager.insertAfter("additions", action); + } + } + + menuManager.insertAfter("ui-actions", new CommandContributionItem(new CommandContributionItemParameter( + activeEditorPart.getEditorSite(), "org.eclipse.emf.cdo.releng.projectconfig.editor.commands.Navigate", + "org.eclipse.emf.cdo.releng.projectconfig.editor.commands.Navigate", 0))); + + } + + @Override + protected void addGlobalActions(IMenuManager menuManager) + { + addGlobalActionsGen(menuManager); + + updatePreferenceProfileReferencesAction.setEnabled(updatePreferenceProfileReferencesAction.isEnabled()); + menuManager.insertAfter("ui-actions", updatePreferenceProfileReferencesAction); + + updatePreferenceProfileReferencesAction.setEnabled(applyPreferenceProfilesAction.isEnabled()); + menuManager.insertAfter("ui-actions", applyPreferenceProfilesAction); + + menuManager.insertAfter("ui-actions", reloadEditorAction); + } + + /** + * This inserts global actions before the "additions-end" separator. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addGlobalActionsGen(IMenuManager menuManager) + { + menuManager.insertAfter("additions-end", new Separator("ui-actions")); + menuManager.insertAfter("ui-actions", showPropertiesViewAction); + + refreshViewerAction.setEnabled(refreshViewerAction.isEnabled()); + menuManager.insertAfter("ui-actions", refreshViewerAction); + + super.addGlobalActions(menuManager); + } + + /** + * This ensures that a delete action will clean up all references to deleted objects. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected boolean removeAllReferencesOnDelete() + { + return true; + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigEditor.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigEditor.java new file mode 100644 index 0000000000..90ecbd80d3 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigEditor.java @@ -0,0 +1,1850 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.presentation; + +import org.eclipse.emf.cdo.releng.predicates.provider.PredicatesItemProviderAdapterFactory; +import org.eclipse.emf.cdo.releng.preferences.provider.PreferencesItemProviderAdapterFactory; +import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration; +import org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigURIHandlerImpl; +import org.eclipse.emf.cdo.releng.projectconfig.provider.ProjectConfigItemProviderAdapterFactory; + +import org.eclipse.emf.common.command.BasicCommandStack; +import org.eclipse.emf.common.command.Command; +import org.eclipse.emf.common.command.CommandStack; +import org.eclipse.emf.common.command.CommandStackListener; +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.ui.MarkerHelper; +import org.eclipse.emf.common.ui.editor.ProblemEditorPart; +import org.eclipse.emf.common.ui.viewer.ColumnViewerInformationControlToolTipSupport; +import org.eclipse.emf.common.ui.viewer.IViewerProvider; +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.util.EContentAdapter; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; +import org.eclipse.emf.edit.domain.EditingDomain; +import org.eclipse.emf.edit.domain.IEditingDomainProvider; +import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator; +import org.eclipse.emf.edit.provider.ComposedAdapterFactory; +import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory; +import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory; +import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor; +import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor; +import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter; +import org.eclipse.emf.edit.ui.dnd.LocalTransfer; +import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; +import org.eclipse.emf.edit.ui.provider.DecoratingColumLabelProvider; +import org.eclipse.emf.edit.ui.provider.DiagnosticDecorator; +import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider; +import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper; +import org.eclipse.emf.edit.ui.util.EditUIUtil; +import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IMarker; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceChangeEvent; +import org.eclipse.core.resources.IResourceChangeListener; +import org.eclipse.core.resources.IResourceDelta; +import org.eclipse.core.resources.IResourceDeltaVisitor; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.IStatusLineManager; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.action.Separator; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.dialogs.ProgressMonitorDialog; +import org.eclipse.jface.util.LocalSelectionTransfer; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.ITreeContentProvider; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.StructuredViewer; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.CTabFolder; +import org.eclipse.swt.dnd.DND; +import org.eclipse.swt.dnd.FileTransfer; +import org.eclipse.swt.dnd.Transfer; +import org.eclipse.swt.events.ControlAdapter; +import org.eclipse.swt.events.ControlEvent; +import org.eclipse.swt.events.MouseAdapter; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.Tree; +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IEditorSite; +import org.eclipse.ui.IPartListener; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.actions.WorkspaceModifyOperation; +import org.eclipse.ui.contexts.IContextService; +import org.eclipse.ui.dialogs.SaveAsDialog; +import org.eclipse.ui.ide.IGotoMarker; +import org.eclipse.ui.part.FileEditorInput; +import org.eclipse.ui.part.MultiPageEditorPart; +import org.eclipse.ui.views.contentoutline.ContentOutline; +import org.eclipse.ui.views.contentoutline.ContentOutlinePage; +import org.eclipse.ui.views.contentoutline.IContentOutlinePage; +import org.eclipse.ui.views.properties.IPropertySheetPage; +import org.eclipse.ui.views.properties.PropertySheet; +import org.eclipse.ui.views.properties.PropertySheetPage; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.EventObject; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * This is an example of a ProjectConfig model editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class ProjectConfigEditor extends MultiPageEditorPart implements IEditingDomainProvider, ISelectionProvider, + IMenuListener, IViewerProvider, IGotoMarker +{ + /** + * This keeps track of the editing domain that is used to track all changes to the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected AdapterFactoryEditingDomain editingDomain; + + /** + * This is the one adapter factory used for providing views of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ComposedAdapterFactory adapterFactory; + + /** + * This is the content outline page. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IContentOutlinePage contentOutlinePage; + + /** + * This is a kludge... + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IStatusLineManager contentOutlineStatusLineManager; + + /** + * This is the content outline page's viewer. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TreeViewer contentOutlineViewer; + + /** + * This is the property sheet page. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>(); + + /** + * This is the viewer that shadows the selection in the content outline. + * The parent relation must be correctly defined for this to work. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TreeViewer selectionViewer; + + /** + * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Viewer currentViewer; + + /** + * This listens to which ever viewer is active. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ISelectionChangedListener selectionChangedListener; + + /** + * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>(); + + /** + * This keeps track of the selection of the editor as a whole. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ISelection editorSelection = StructuredSelection.EMPTY; + + /** + * The MarkerHelper is responsible for creating workspace resource markers presented + * in Eclipse's Problems View. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected MarkerHelper markerHelper = new EditUIMarkerHelper(); + + /** + * This listens for when the outline becomes active + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IPartListener partListener = new IPartListener() + { + public void partActivated(IWorkbenchPart p) + { + if (p instanceof ContentOutline) + { + if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) + { + getActionBarContributor().setActiveEditor(ProjectConfigEditor.this); + + setCurrentViewer(contentOutlineViewer); + } + } + else if (p instanceof PropertySheet) + { + if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) + { + getActionBarContributor().setActiveEditor(ProjectConfigEditor.this); + handleActivate(); + } + } + else if (p == ProjectConfigEditor.this) + { + handleActivate(); + } + } + + public void partBroughtToTop(IWorkbenchPart p) + { + // Ignore. + } + + public void partClosed(IWorkbenchPart p) + { + // Ignore. + } + + public void partDeactivated(IWorkbenchPart p) + { + // Ignore. + } + + public void partOpened(IWorkbenchPart p) + { + // Ignore. + } + }; + + /** + * Resources that have been removed since last activation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<Resource> removedResources = new ArrayList<Resource>(); + + /** + * Resources that have been changed since last activation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<Resource> changedResources = new ArrayList<Resource>(); + + /** + * Resources that have been saved. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<Resource> savedResources = new ArrayList<Resource>(); + + /** + * Map to store the diagnostic associated with a resource. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>(); + + /** + * Controls whether the problem indication should be updated. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected boolean updateProblemIndication = true; + + /** + * Adapter used to update the problem indication when resources are demanded loaded. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EContentAdapter problemIndicationAdapter = new EContentAdapter() + { + @Override + public void notifyChanged(Notification notification) + { + if (notification.getNotifier() instanceof Resource) + { + switch (notification.getFeatureID(Resource.class)) + { + case Resource.RESOURCE__IS_LOADED: + case Resource.RESOURCE__ERRORS: + case Resource.RESOURCE__WARNINGS: + { + Resource resource = (Resource)notification.getNotifier(); + Diagnostic diagnostic = analyzeResourceProblems(resource, null); + if (diagnostic.getSeverity() != Diagnostic.OK) + { + resourceToDiagnosticMap.put(resource, diagnostic); + } + else + { + resourceToDiagnosticMap.remove(resource); + } + + if (updateProblemIndication) + { + getSite().getShell().getDisplay().asyncExec(new Runnable() + { + public void run() + { + updateProblemIndication(); + } + }); + } + break; + } + } + } + else + { + super.notifyChanged(notification); + } + } + + @Override + protected void setTarget(Resource target) + { + basicSetTarget(target); + } + + @Override + protected void unsetTarget(Resource target) + { + basicUnsetTarget(target); + resourceToDiagnosticMap.remove(target); + if (updateProblemIndication) + { + getSite().getShell().getDisplay().asyncExec(new Runnable() + { + public void run() + { + updateProblemIndication(); + } + }); + } + } + }; + + /** + * This listens for workspace changes. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IResourceChangeListener resourceChangeListener = new IResourceChangeListener() + { + public void resourceChanged(IResourceChangeEvent event) + { + IResourceDelta delta = event.getDelta(); + try + { + class ResourceDeltaVisitor implements IResourceDeltaVisitor + { + protected ResourceSet resourceSet = editingDomain.getResourceSet(); + + protected Collection<Resource> changedResources = new ArrayList<Resource>(); + + protected Collection<Resource> removedResources = new ArrayList<Resource>(); + + public boolean visit(final IResourceDelta delta) + { + if (delta.getResource().getType() == IResource.FILE) + { + if (delta.getKind() == IResourceDelta.REMOVED || delta.getKind() == IResourceDelta.CHANGED) + { + final Resource resource = resourceSet.getResource( + URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false); + if (resource != null) + { + if (delta.getKind() == IResourceDelta.REMOVED) + { + removedResources.add(resource); + } + else + { + if ((delta.getFlags() & IResourceDelta.MARKERS) != 0) + { + DiagnosticDecorator.DiagnosticAdapter.update(resource, + markerHelper.getMarkerDiagnostics(resource, (IFile)delta.getResource())); + } + if ((delta.getFlags() & IResourceDelta.CONTENT) != 0) + { + if (!savedResources.remove(resource)) + { + changedResources.add(resource); + } + } + } + } + } + return false; + } + + return true; + } + + public Collection<Resource> getChangedResources() + { + return changedResources; + } + + public Collection<Resource> getRemovedResources() + { + return removedResources; + } + } + + final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor(); + delta.accept(visitor); + + if (!visitor.getRemovedResources().isEmpty()) + { + getSite().getShell().getDisplay().asyncExec(new Runnable() + { + public void run() + { + removedResources.addAll(visitor.getRemovedResources()); + if (!isDirty()) + { + getSite().getPage().closeEditor(ProjectConfigEditor.this, false); + } + } + }); + } + + if (!visitor.getChangedResources().isEmpty()) + { + getSite().getShell().getDisplay().asyncExec(new Runnable() + { + public void run() + { + changedResources.addAll(visitor.getChangedResources()); + if (getSite().getPage().getActiveEditor() == ProjectConfigEditor.this) + { + handleActivate(); + } + } + }); + } + } + catch (CoreException exception) + { + ProjectConfigEditorPlugin.INSTANCE.log(exception); + } + } + }; + + /** + * Handles activation of the editor or it's associated views. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void handleActivate() + { + // Recompute the read only state. + // + if (editingDomain.getResourceToReadOnlyMap() != null) + { + editingDomain.getResourceToReadOnlyMap().clear(); + + // Refresh any actions that may become enabled or disabled. + // + setSelection(getSelection()); + } + + if (!removedResources.isEmpty()) + { + if (handleDirtyConflict()) + { + getSite().getPage().closeEditor(ProjectConfigEditor.this, false); + } + else + { + removedResources.clear(); + changedResources.clear(); + savedResources.clear(); + } + } + else if (!changedResources.isEmpty()) + { + changedResources.removeAll(savedResources); + handleChangedResources(); + changedResources.clear(); + savedResources.clear(); + } + } + + /** + * Handles what to do with changed resources on activation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void handleChangedResources() + { + if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) + { + if (isDirty()) + { + changedResources.addAll(editingDomain.getResourceSet().getResources()); + } + editingDomain.getCommandStack().flush(); + + updateProblemIndication = false; + for (Resource resource : changedResources) + { + if (resource.isLoaded()) + { + resource.unload(); + try + { + resource.load(Collections.EMPTY_MAP); + } + catch (IOException exception) + { + if (!resourceToDiagnosticMap.containsKey(resource)) + { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + } + } + } + + if (AdapterFactoryEditingDomain.isStale(editorSelection)) + { + setSelection(StructuredSelection.EMPTY); + } + + updateProblemIndication = true; + updateProblemIndication(); + } + } + + /** + * Updates the problems indication with the information described in the specified diagnostic. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void updateProblemIndication() + { + if (updateProblemIndication) + { + BasicDiagnostic diagnostic = new BasicDiagnostic(Diagnostic.OK, + "org.eclipse.emf.cdo.releng.projectconfig.editor", 0, null, new Object[] { editingDomain.getResourceSet() }); + for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) + { + if (childDiagnostic.getSeverity() != Diagnostic.OK) + { + diagnostic.add(childDiagnostic); + } + } + + int lastEditorPage = getPageCount() - 1; + if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) + { + ((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic); + if (diagnostic.getSeverity() != Diagnostic.OK) + { + setActivePage(lastEditorPage); + } + } + else if (diagnostic.getSeverity() != Diagnostic.OK) + { + ProblemEditorPart problemEditorPart = new ProblemEditorPart(); + problemEditorPart.setDiagnostic(diagnostic); + problemEditorPart.setMarkerHelper(markerHelper); + try + { + addPage(++lastEditorPage, problemEditorPart, getEditorInput()); + setPageText(lastEditorPage, problemEditorPart.getPartName()); + setActivePage(lastEditorPage); + showTabs(); + } + catch (PartInitException exception) + { + ProjectConfigEditorPlugin.INSTANCE.log(exception); + } + } + + if (markerHelper.hasMarkers(editingDomain.getResourceSet())) + { + markerHelper.deleteMarkers(editingDomain.getResourceSet()); + if (diagnostic.getSeverity() != Diagnostic.OK) + { + try + { + markerHelper.createMarkers(diagnostic); + } + catch (CoreException exception) + { + ProjectConfigEditorPlugin.INSTANCE.log(exception); + } + } + } + } + } + + /** + * Shows a dialog that asks if conflicting changes should be discarded. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected boolean handleDirtyConflict() + { + return MessageDialog.openQuestion(getSite().getShell(), getString("_UI_FileConflict_label"), + getString("_WARN_FileConflict")); + } + + /** + * This creates a model editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ProjectConfigEditor() + { + super(); + initializeEditingDomain(); + } + + /** + * This sets up the editing domain for the model editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void initializeEditingDomain() + { + // Create an adapter factory that yields item providers. + // + adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE); + + adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new ProjectConfigItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new PredicatesItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new PreferencesItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory()); + + // Create the command stack that will notify this editor as commands are executed. + // + BasicCommandStack commandStack = new BasicCommandStack(); + + // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus. + // + commandStack.addCommandStackListener(new CommandStackListener() + { + public void commandStackChanged(final EventObject event) + { + getContainer().getDisplay().asyncExec(new Runnable() + { + public void run() + { + firePropertyChange(IEditorPart.PROP_DIRTY); + + // Try to select the affected objects. + // + Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand(); + if (mostRecentCommand != null) + { + setSelectionToViewer(mostRecentCommand.getAffectedObjects()); + } + for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext();) + { + PropertySheetPage propertySheetPage = i.next(); + if (propertySheetPage.getControl().isDisposed()) + { + i.remove(); + } + else + { + propertySheetPage.refresh(); + } + } + } + }); + } + }); + + // Create the editing domain with a special command stack. + // + editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>()); + } + + /** + * This is here for the listener to be able to call it. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void firePropertyChange(int action) + { + super.firePropertyChange(action); + } + + /** + * This sets the selection into whichever viewer is active. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setSelectionToViewer(Collection<?> collection) + { + final Collection<?> theSelection = collection; + // Make sure it's okay. + // + if (theSelection != null && !theSelection.isEmpty()) + { + Runnable runnable = new Runnable() + { + public void run() + { + // Try to select the items in the current content viewer of the editor. + // + if (currentViewer != null) + { + currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true); + } + } + }; + getSite().getShell().getDisplay().asyncExec(runnable); + } + } + + /** + * This returns the editing domain as required by the {@link IEditingDomainProvider} interface. + * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain} + * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EditingDomain getEditingDomain() + { + return editingDomain; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider + { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object[] getElements(Object object) + { + Object parent = super.getParent(object); + return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object[] getChildren(Object object) + { + Object parent = super.getParent(object); + return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean hasChildren(Object object) + { + Object parent = super.getParent(object); + return parent != null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getParent(Object object) + { + return null; + } + } + + /** + * This makes sure that one content viewer, either for the current page or the outline view, if it has focus, + * is the current one. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setCurrentViewer(Viewer viewer) + { + // If it is changing... + // + if (currentViewer != viewer) + { + if (selectionChangedListener == null) + { + // Create the listener on demand. + // + selectionChangedListener = new ISelectionChangedListener() + { + // This just notifies those things that are affected by the section. + // + public void selectionChanged(SelectionChangedEvent selectionChangedEvent) + { + setSelection(selectionChangedEvent.getSelection()); + } + }; + } + + // Stop listening to the old one. + // + if (currentViewer != null) + { + currentViewer.removeSelectionChangedListener(selectionChangedListener); + } + + // Start listening to the new one. + // + if (viewer != null) + { + viewer.addSelectionChangedListener(selectionChangedListener); + } + + // Remember it. + // + currentViewer = viewer; + + // Set the editors selection based on the current viewer's selection. + // + setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection()); + } + } + + /** + * This returns the viewer as required by the {@link IViewerProvider} interface. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Viewer getViewer() + { + return currentViewer; + } + + protected void createContextMenuFor(StructuredViewer viewer) + { + createContextMenuForGen(viewer); + + viewer.getControl().addMouseListener(new MouseAdapter() + { + @Override + public void mouseDoubleClick(MouseEvent event) + { + if (event.button == 1) + { + try + { + getEditorSite().getPage().showView("org.eclipse.ui.views.PropertySheet"); + } + catch (PartInitException exception) + { + ProjectConfigEditorPlugin.INSTANCE.log(exception); + } + } + } + }); + + } + + /** + * This creates a context menu for the viewer and adds a listener as well registering the menu for extension. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void createContextMenuForGen(StructuredViewer viewer) + { + MenuManager contextMenu = new MenuManager("#PopUp"); + contextMenu.add(new Separator("additions")); + contextMenu.setRemoveAllWhenShown(true); + contextMenu.addMenuListener(this); + Menu menu = contextMenu.createContextMenu(viewer.getControl()); + viewer.getControl().setMenu(menu); + getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer)); + + int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK; + Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), + FileTransfer.getInstance() }; + viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer)); + viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer)); + } + + public void reload() + { + ResourceSet resourceSet = editingDomain.getResourceSet(); + editingDomain.getCommandStack().flush(); + + EList<Resource> resources = resourceSet.getResources(); + resources.clear(); + + Exception exception = null; + Resource resource = null; + + URI resourceURI = EditUIUtil.getURI(getEditorInput()); + try + { + // Load the resource through the editing domain. + // + resource = editingDomain.getResourceSet().getResource(resourceURI, true); + } + catch (Exception e) + { + exception = e; + resource = editingDomain.getResourceSet().getResource(resourceURI, false); + } + + Diagnostic diagnostic = analyzeResourceProblems(resource, exception); + if (diagnostic.getSeverity() != Diagnostic.OK) + { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + + selectionViewer.setInput(resource); + } + + public void createModel() + { + ResourceSet resourceSet = editingDomain.getResourceSet(); + resourceSet.getURIConverter().getURIHandlers().add(0, new ProjectConfigURIHandlerImpl()); + createModelGen(); + + URI resourceURI = EditUIUtil.getURI(getEditorInput()); + if ("configuration".equals(resourceURI.scheme()) && resourceURI.segmentCount() == 1) + { + Resource resource = resourceSet.getResource(resourceURI, false); + if (resource != null) + { + EList<EObject> contents = resource.getContents(); + if (!contents.isEmpty()) + { + EObject object = contents.get(0); + if (object instanceof WorkspaceConfiguration) + { + WorkspaceConfiguration workspaceConfiguration = (WorkspaceConfiguration)object; + if (workspaceConfiguration.getProjects().isEmpty() + && ResourcesPlugin.getWorkspace().getRoot().getProjects().length != 0) + { + getSite().getShell().getDisplay().timerExec(3000, new Runnable() + { + public void run() + { + reload(); + } + }); + } + } + } + } + } + } + + /** + * This is the method called to load a resource into the editing domain's resource set based on the editor's input. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createModelGen() + { + URI resourceURI = EditUIUtil.getURI(getEditorInput()); + Exception exception = null; + Resource resource = null; + try + { + // Load the resource through the editing domain. + // + resource = editingDomain.getResourceSet().getResource(resourceURI, true); + } + catch (Exception e) + { + exception = e; + resource = editingDomain.getResourceSet().getResource(resourceURI, false); + } + + Diagnostic diagnostic = analyzeResourceProblems(resource, exception); + if (diagnostic.getSeverity() != Diagnostic.OK) + { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter); + } + + /** + * Returns a diagnostic describing the errors and warnings listed in the resource + * and the specified exception (if any). + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) + { + if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) + { + BasicDiagnostic basicDiagnostic = new BasicDiagnostic(Diagnostic.ERROR, + "org.eclipse.emf.cdo.releng.projectconfig.editor", 0, getString("_UI_CreateModelError_message", + resource.getURI()), new Object[] { exception == null ? (Object)resource : exception }); + basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true)); + return basicDiagnostic; + } + else if (exception != null) + { + return new BasicDiagnostic(Diagnostic.ERROR, "org.eclipse.emf.cdo.releng.projectconfig.editor", 0, getString( + "_UI_CreateModelError_message", resource.getURI()), new Object[] { exception }); + } + else + { + return Diagnostic.OK_INSTANCE; + } + } + + @Override + public void createPages() + { + createPagesGen(); + + EList<Resource> resources = getEditingDomain().getResourceSet().getResources(); + if (!resources.isEmpty()) + { + selectionViewer.setInput(resources.get(0)); + } + + DiagnosticDecorator labelDecorator = new DiagnosticDecorator(editingDomain, selectionViewer, + ProjectConfigEditorPlugin.getPlugin().getDialogSettings()) + { + @Override + protected BasicDiagnostic decorate(Map<Object, BasicDiagnostic> objects, + ITreeContentProvider treeContentProvider, Set<Object> visited, Object object, List<Integer> path) + { + if (object instanceof EObject) + { + return super.decorate(objects, treeContentProvider, visited, object, path); + } + return null; + } + }; + DecoratingColumLabelProvider labelProvider = new DecoratingColumLabelProvider(new AdapterFactoryLabelProvider( + adapterFactory), labelDecorator); + selectionViewer.setLabelProvider(labelProvider); + } + + /** + * This is the method used by the framework to install your own controls. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createPagesGen() + { + // Creates the model from the editor input + // + createModel(); + + // Only creates the other pages if there is something that can be edited + // + if (!getEditingDomain().getResourceSet().getResources().isEmpty()) + { + // Create a page for the selection tree view. + // + Tree tree = new Tree(getContainer(), SWT.MULTI); + selectionViewer = new TreeViewer(tree); + setCurrentViewer(selectionViewer); + + selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + selectionViewer.setLabelProvider(new DecoratingColumLabelProvider( + new AdapterFactoryLabelProvider(adapterFactory), new DiagnosticDecorator(editingDomain, selectionViewer, + ProjectConfigEditorPlugin.getPlugin().getDialogSettings()))); + selectionViewer.setInput(editingDomain.getResourceSet()); + selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true); + + new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory); + new ColumnViewerInformationControlToolTipSupport(selectionViewer, + new DiagnosticDecorator.EditingDomainLocationListener(editingDomain, selectionViewer)); + + createContextMenuFor(selectionViewer); + int pageIndex = addPage(tree); + setPageText(pageIndex, getString("_UI_SelectionPage_label")); + + getSite().getShell().getDisplay().asyncExec(new Runnable() + { + public void run() + { + setActivePage(0); + } + }); + } + + // Ensures that this editor will only display the page's tab + // area if there are more than one page + // + getContainer().addControlListener(new ControlAdapter() + { + boolean guard = false; + + @Override + public void controlResized(ControlEvent event) + { + if (!guard) + { + guard = true; + hideTabs(); + guard = false; + } + } + }); + + getSite().getShell().getDisplay().asyncExec(new Runnable() + { + public void run() + { + updateProblemIndication(); + } + }); + } + + /** + * If there is just one page in the multi-page editor part, + * this hides the single tab at the bottom. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void hideTabs() + { + if (getPageCount() <= 1) + { + setPageText(0, ""); + if (getContainer() instanceof CTabFolder) + { + ((CTabFolder)getContainer()).setTabHeight(1); + Point point = getContainer().getSize(); + getContainer().setSize(point.x, point.y + 6); + } + } + } + + /** + * If there is more than one page in the multi-page editor part, + * this shows the tabs at the bottom. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void showTabs() + { + if (getPageCount() > 1) + { + setPageText(0, getString("_UI_SelectionPage_label")); + if (getContainer() instanceof CTabFolder) + { + ((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT); + Point point = getContainer().getSize(); + getContainer().setSize(point.x, point.y - 6); + } + } + } + + /** + * This is used to track the active viewer. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void pageChange(int pageIndex) + { + super.pageChange(pageIndex); + + if (contentOutlinePage != null) + { + handleContentOutlineSelection(contentOutlinePage.getSelection()); + } + } + + /** + * This is how the framework determines which interfaces we implement. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("rawtypes") + @Override + public Object getAdapter(Class key) + { + if (key.equals(IContentOutlinePage.class)) + { + return showOutlineView() ? getContentOutlinePage() : null; + } + else if (key.equals(IPropertySheetPage.class)) + { + return getPropertySheetPage(); + } + else if (key.equals(IGotoMarker.class)) + { + return this; + } + else + { + return super.getAdapter(key); + } + } + + /** + * This accesses a cached version of the content outliner. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IContentOutlinePage getContentOutlinePage() + { + if (contentOutlinePage == null) + { + // The content outline is just a tree. + // + class MyContentOutlinePage extends ContentOutlinePage + { + @Override + public void createControl(Composite parent) + { + super.createControl(parent); + contentOutlineViewer = getTreeViewer(); + contentOutlineViewer.addSelectionChangedListener(this); + + // Set up the tree viewer. + // + contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + contentOutlineViewer.setLabelProvider(new DecoratingColumLabelProvider(new AdapterFactoryLabelProvider( + adapterFactory), new DiagnosticDecorator(editingDomain, contentOutlineViewer, ProjectConfigEditorPlugin + .getPlugin().getDialogSettings()))); + contentOutlineViewer.setInput(editingDomain.getResourceSet()); + + new ColumnViewerInformationControlToolTipSupport(contentOutlineViewer, + new DiagnosticDecorator.EditingDomainLocationListener(editingDomain, contentOutlineViewer)); + + // Make sure our popups work. + // + createContextMenuFor(contentOutlineViewer); + + if (!editingDomain.getResourceSet().getResources().isEmpty()) + { + // Select the root object in the view. + // + contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources() + .get(0)), true); + } + } + + @Override + public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, + IStatusLineManager statusLineManager) + { + super.makeContributions(menuManager, toolBarManager, statusLineManager); + contentOutlineStatusLineManager = statusLineManager; + } + + @Override + public void setActionBars(IActionBars actionBars) + { + super.setActionBars(actionBars); + getActionBarContributor().shareGlobalActions(this, actionBars); + } + } + + contentOutlinePage = new MyContentOutlinePage(); + + // Listen to selection so that we can handle it is a special way. + // + contentOutlinePage.addSelectionChangedListener(new ISelectionChangedListener() + { + // This ensures that we handle selections correctly. + // + public void selectionChanged(SelectionChangedEvent event) + { + handleContentOutlineSelection(event.getSelection()); + } + }); + } + + return contentOutlinePage; + } + + /** + * This accesses a cached version of the property sheet. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IPropertySheetPage getPropertySheetPage() + { + PropertySheetPage propertySheetPage = new ExtendedPropertySheetPage(editingDomain, + ExtendedPropertySheetPage.Decoration.LIVE, ProjectConfigEditorPlugin.getPlugin().getDialogSettings()) + { + @Override + public void setSelectionToViewer(List<?> selection) + { + ProjectConfigEditor.this.setSelectionToViewer(selection); + ProjectConfigEditor.this.setFocus(); + } + + @Override + public void setActionBars(IActionBars actionBars) + { + super.setActionBars(actionBars); + getActionBarContributor().shareGlobalActions(this, actionBars); + } + }; + propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory)); + propertySheetPages.add(propertySheetPage); + + return propertySheetPage; + } + + /** + * This deals with how we want selection in the outliner to affect the other views. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void handleContentOutlineSelection(ISelection selection) + { + if (selectionViewer != null && !selection.isEmpty() && selection instanceof IStructuredSelection) + { + Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator(); + if (selectedElements.hasNext()) + { + // Get the first selected element. + // + Object selectedElement = selectedElements.next(); + + ArrayList<Object> selectionList = new ArrayList<Object>(); + selectionList.add(selectedElement); + while (selectedElements.hasNext()) + { + selectionList.add(selectedElements.next()); + } + + // Set the selection to the widget. + // + selectionViewer.setSelection(new StructuredSelection(selectionList)); + } + } + } + + /** + * This is for implementing {@link IEditorPart} and simply tests the command stack. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isDirty() + { + return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded(); + } + + /** + * This is for implementing {@link IEditorPart} and simply saves the model file. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public void doSave(IProgressMonitor progressMonitor) + { + // Save only resources that have actually changed. + // + final Map<Object, Object> saveOptions = new HashMap<Object, Object>(); + // saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER); + saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED); + + // Do the work within an operation because this is a long running activity that modifies the workbench. + // + WorkspaceModifyOperation operation = new WorkspaceModifyOperation() + { + // This is the method that gets invoked when the operation runs. + // + @Override + public void execute(IProgressMonitor monitor) + { + // Save the resources to the file system. + // + boolean first = true; + for (Resource resource : editingDomain.getResourceSet().getResources()) + { + if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) + && !editingDomain.isReadOnly(resource)) + { + try + { + long timeStamp = resource.getTimeStamp(); + resource.save(saveOptions); + if (resource.getTimeStamp() != timeStamp) + { + savedResources.add(resource); + } + } + catch (Exception exception) + { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + first = false; + } + } + } + }; + + updateProblemIndication = false; + try + { + // This runs the options, and shows progress. + // + new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation); + + // Refresh the necessary state. + // + ((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone(); + firePropertyChange(IEditorPart.PROP_DIRTY); + } + catch (Exception exception) + { + // Something went wrong that shouldn't. + // + ProjectConfigEditorPlugin.INSTANCE.log(exception); + } + updateProblemIndication = true; + updateProblemIndication(); + } + + /** + * This returns whether something has been persisted to the URI of the specified resource. + * The implementation uses the URI converter from the editor's resource set to try to open an input stream. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected boolean isPersisted(Resource resource) + { + boolean result = false; + try + { + InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI()); + if (stream != null) + { + result = true; + stream.close(); + } + } + catch (IOException e) + { + // Ignore + } + return result; + } + + /** + * This always returns true because it is not currently supported. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isSaveAsAllowed() + { + return true; + } + + /** + * This also changes the editor's input. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void doSaveAs() + { + SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell()); + saveAsDialog.open(); + IPath path = saveAsDialog.getResult(); + if (path != null) + { + IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path); + if (file != null) + { + doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file)); + } + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void doSaveAs(URI uri, IEditorInput editorInput) + { + editingDomain.getResourceSet().getResources().get(0).setURI(uri); + setInputWithNotify(editorInput); + setPartName(editorInput.getName()); + IProgressMonitor progressMonitor = getActionBars().getStatusLineManager() != null ? getActionBars() + .getStatusLineManager().getProgressMonitor() : new NullProgressMonitor(); + doSave(progressMonitor); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void gotoMarker(IMarker marker) + { + List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker); + if (!targetObjects.isEmpty()) + { + setSelectionToViewer(targetObjects); + } + } + + @Override + public void init(IEditorSite site, IEditorInput editorInput) + { + initGen(site, editorInput); + IContextService contextService = (IContextService)site.getService(IContextService.class); + contextService.activateContext("org.eclipse.emf.cdo.releng.projectconfig.editor.context"); + } + + /** + * This is called during startup. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void initGen(IEditorSite site, IEditorInput editorInput) + { + setSite(site); + setInputWithNotify(editorInput); + setPartName(editorInput.getName()); + site.setSelectionProvider(this); + site.getPage().addPartListener(partListener); + ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setFocus() + { + getControl(getActivePage()).setFocus(); + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void addSelectionChangedListener(ISelectionChangedListener listener) + { + selectionChangedListeners.add(listener); + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void removeSelectionChangedListener(ISelectionChangedListener listener) + { + selectionChangedListeners.remove(listener); + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ISelection getSelection() + { + return editorSelection; + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection. + * Calling this result will notify the listeners. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setSelection(ISelection selection) + { + editorSelection = selection; + + for (ISelectionChangedListener listener : selectionChangedListeners) + { + listener.selectionChanged(new SelectionChangedEvent(this, selection)); + } + setStatusLineManager(selection); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setStatusLineManager(ISelection selection) + { + IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ? contentOutlineStatusLineManager + : getActionBars().getStatusLineManager(); + + if (statusLineManager != null) + { + if (selection instanceof IStructuredSelection) + { + Collection<?> collection = ((IStructuredSelection)selection).toList(); + switch (collection.size()) + { + case 0: + { + statusLineManager.setMessage(getString("_UI_NoObjectSelected")); + break; + } + case 1: + { + String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next()); + statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text)); + break; + } + default: + { + statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size()))); + break; + } + } + } + else + { + statusLineManager.setMessage(""); + } + } + } + + /** + * This looks up a string in the plugin's plugin.properties file. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static String getString(String key) + { + return ProjectConfigEditorPlugin.INSTANCE.getString(key); + } + + /** + * This looks up a string in plugin.properties, making a substitution. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static String getString(String key, Object s1) + { + return ProjectConfigEditorPlugin.INSTANCE.getString(key, new Object[] { s1 }); + } + + /** + * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void menuAboutToShow(IMenuManager menuManager) + { + ((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EditingDomainActionBarContributor getActionBarContributor() + { + return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IActionBars getActionBars() + { + return getActionBarContributor().getActionBars(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public AdapterFactory getAdapterFactory() + { + return adapterFactory; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void dispose() + { + updateProblemIndication = false; + + ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener); + + getSite().getPage().removePartListener(partListener); + + adapterFactory.dispose(); + + if (getActionBarContributor().getActiveEditor() == this) + { + getActionBarContributor().setActiveEditor(null); + } + + for (PropertySheetPage propertySheetPage : propertySheetPages) + { + propertySheetPage.dispose(); + } + + if (contentOutlinePage != null) + { + contentOutlinePage.dispose(); + } + + super.dispose(); + } + + /** + * Returns whether the outline view should be presented to the user. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected boolean showOutlineView() + { + return false; + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigEditorPlugin.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigEditorPlugin.java new file mode 100644 index 0000000000..c0be5c5587 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigEditorPlugin.java @@ -0,0 +1,103 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.presentation; + +import org.eclipse.emf.cdo.releng.predicates.provider.PredicatesEditPlugin; +import org.eclipse.emf.cdo.releng.preferences.provider.PreferencesEditPlugin; + +import org.eclipse.emf.common.EMFPlugin; + +import org.eclipse.emf.common.ui.EclipseUIPlugin; + +import org.eclipse.emf.common.util.ResourceLocator; + +/** + * This is the central singleton for the Project Config editor plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public final class ProjectConfigEditorPlugin extends EMFPlugin +{ + /** + * Keep track of the singleton. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final ProjectConfigEditorPlugin INSTANCE = new ProjectConfigEditorPlugin(); + + /** + * Keep track of the singleton. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static Implementation plugin; + + /** + * Create the instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ProjectConfigEditorPlugin() + { + super + (new ResourceLocator [] + { + PredicatesEditPlugin.INSTANCE, + PreferencesEditPlugin.INSTANCE, + }); + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the singleton instance. + * @generated + */ + @Override + public ResourceLocator getPluginResourceLocator() + { + return plugin; + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the singleton instance. + * @generated + */ + public static Implementation getPlugin() + { + return plugin; + } + + /** + * The actual implementation of the Eclipse <b>Plugin</b>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static class Implementation extends EclipseUIPlugin + { + /** + * Creates an instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Implementation() + { + super(); + + // Remember the static instance. + // + plugin = this; + } + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigPreferencePage.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigPreferencePage.java new file mode 100644 index 0000000000..d557383bf8 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigPreferencePage.java @@ -0,0 +1,152 @@ +/* + * Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.projectconfig.presentation; + +import org.eclipse.emf.cdo.releng.projectconfig.util.ProjectConfigUtil; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.ui.URIEditorInput; +import org.eclipse.emf.edit.provider.ComposedAdapterFactory; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; + +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.preference.IPreferencePageContainer; +import org.eclipse.jface.preference.PreferencePage; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IPageLayout; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchPreferencePage; +import org.eclipse.ui.IWorkbenchWindow; + +import java.lang.reflect.Method; + +/** + * @author Eike Stepper + */ +public class ProjectConfigPreferencePage extends PreferencePage implements IWorkbenchPreferencePage +{ + private IWorkbench workbench; + + public ProjectConfigPreferencePage() + { + super("<taken from plugin.xml>"); + setDescription(" Manage project preferences configurations:"); + noDefaultAndApplyButton(); + } + + public void init(IWorkbench workbench) + { + this.workbench = workbench; + } + + @Override + protected Control createContents(Composite parent) + { + GridLayout layout = new GridLayout(); + layout.marginWidth = 0; + layout.marginHeight = 0; + layout.numColumns = 1; + + Composite composite = new Composite(parent, SWT.NONE); + composite.setLayout(layout); + + TreeViewer treeViewer = new TreeViewer(composite); + AdapterFactory adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE); + treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + treeViewer.setInput(ProjectConfigUtil.getWorkspaceConfiguration().eResource()); + treeViewer.getControl().setLayoutData( + new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL)); + + return composite; + } + + @Override + protected void contributeButtons(Composite parent) + { + super.contributeButtons(parent); + + GridLayout gridLayout = (GridLayout)parent.getLayout(); + gridLayout.numColumns = 1; + + Button editButton = new Button(parent, SWT.PUSH); + editButton.setText("Edit..."); + + Dialog.applyDialogFont(editButton); + int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH); + Point minButtonSize = editButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true); + GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL); + data.widthHint = Math.max(widthHint, minButtonSize.x); + + editButton.setLayoutData(data); + editButton.addSelectionListener(new SelectionAdapter() + { + @Override + public void widgetSelected(SelectionEvent e) + { + // Invoke the close method on the preference dialog, but avoid using internal API, so do it reflectively. + IPreferencePageContainer container = getContainer(); + + try + { + Method method = container.getClass().getMethod("close"); + method.invoke(container); + } + catch (Throwable ex) + { + ProjectConfigEditorPlugin.INSTANCE.log(ex); + } + + openWorkingSetsEditor(); + } + }); + + } + + protected void openWorkingSetsEditor() + { + final IWorkbenchWindow activeWorkbenchWindow = workbench.getActiveWorkbenchWindow(); + Display display = activeWorkbenchWindow.getShell().getDisplay(); + display.asyncExec(new Runnable() + { + public void run() + { + try + { + IEditorInput editorInput = new URIEditorInput(ProjectConfigUtil.PROJECT_CONFIG_URI + .appendSegment("All.projectconfig"), "Project Preference Configuration"); + IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage(); + activePage.openEditor(editorInput, + "org.eclipse.emf.cdo.releng.projectconfig.presentation.ProjectConfigEditorID"); + activePage.showView(IPageLayout.ID_PROP_SHEET); + } + catch (Exception ex) + { + ProjectConfigEditorPlugin.INSTANCE.log(ex); + } + } + }); + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/handlers/ApplyPreferenceProfilesHandler.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/handlers/ApplyPreferenceProfilesHandler.java new file mode 100644 index 0000000000..75cf14ebf2 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/handlers/ApplyPreferenceProfilesHandler.java @@ -0,0 +1,29 @@ +package org.eclipse.emf.cdo.releng.projectconfig.presentation.handlers; + +import org.eclipse.emf.cdo.releng.projectconfig.util.ProjectConfigUtil; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; + +/** + * Our sample handler extends AbstractHandler, an IHandler base class. + * @see org.eclipse.core.commands.IHandler + * @see org.eclipse.core.commands.AbstractHandler + */ +public class ApplyPreferenceProfilesHandler extends AbstractHandler +{ + public ApplyPreferenceProfilesHandler() + { + } + + /** + * the command has been executed, so extract extract the needed information + * from the application context. + */ + public Object execute(ExecutionEvent event) throws ExecutionException + { + ProjectConfigUtil.getWorkspaceConfiguration().applyPreferenceProfiles(); + return null; + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/handlers/NavigateHandler.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/handlers/NavigateHandler.java new file mode 100644 index 0000000000..89553e6ee1 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/handlers/NavigateHandler.java @@ -0,0 +1,133 @@ +package org.eclipse.emf.cdo.releng.projectconfig.presentation.handlers; + +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; +import org.eclipse.emf.cdo.releng.preferences.util.PreferencesUtil; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile; +import org.eclipse.emf.cdo.releng.projectconfig.Project; +import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration; + +import org.eclipse.emf.common.ui.viewer.IViewerProvider; +import org.eclipse.emf.edit.provider.IWrapperItemProvider; +import org.eclipse.emf.edit.provider.ItemProvider; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.expressions.IEvaluationContext; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.ui.ISources; + +import java.util.ArrayList; +import java.util.List; + +/** + * Our sample handler extends AbstractHandler, an IHandler base class. + * @see org.eclipse.core.commands.IHandler + * @see org.eclipse.core.commands.AbstractHandler + */ +public class NavigateHandler extends AbstractHandler +{ + protected IStructuredSelection targetSelection; + + protected Viewer viewer; + + public NavigateHandler() + { + } + + /** + * the command has been executed, so extract extract the needed information + * from the application context. + */ + public Object execute(ExecutionEvent event) throws ExecutionException + { + if (viewer != null) + { + viewer.setSelection(targetSelection, true); + } + return null; + } + + @Override + public void setEnabled(Object evaluationContext) + { + IEvaluationContext evaluationContext2 = (IEvaluationContext)evaluationContext; + Object activeEditorPart = evaluationContext2.getVariable(ISources.ACTIVE_EDITOR_NAME); + if (activeEditorPart instanceof IViewerProvider) + { + viewer = ((IViewerProvider)activeEditorPart).getViewer(); + } + Object selection = evaluationContext2.getVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME); + if (selection instanceof IStructuredSelection) + { + updateSelection((IStructuredSelection)selection); + } + + setBaseEnabled(viewer != null && !targetSelection.isEmpty()); + } + + public boolean updateSelection(IStructuredSelection selection) + { + List<Object> targets = new ArrayList<Object>(); + for (Object object : selection.toArray()) + { + if (object instanceof WorkspaceConfiguration) + { + WorkspaceConfiguration workspaceConfiguration = (WorkspaceConfiguration)object; + for (Project project : workspaceConfiguration.getProjects()) + { + targets.addAll(project.getPreferenceProfiles()); + } + } + else if (object instanceof Project) + { + Project project = (Project)object; + targets.add(project.getPreferenceNode()); + } + else if (object instanceof PreferenceProfile) + { + PreferenceProfile preferenceProfile = (PreferenceProfile)object; + targets.addAll(preferenceProfile.getReferentProjects()); + } + else if (object instanceof PreferenceFilter) + { + PreferenceFilter preferenceFilter = (PreferenceFilter)object; + PreferenceNode preferenceNode = preferenceFilter.getPreferenceNode(); + if (preferenceNode != null) + { + targets.add(preferenceNode); + } + } + else if (object instanceof IWrapperItemProvider) + { + IWrapperItemProvider wrapperItemProvider = (IWrapperItemProvider)object; + targets.add(wrapperItemProvider.getValue()); + } + else if (object instanceof ItemProvider) + { + ItemProvider itemProvider = (ItemProvider)object; + for (Object child : itemProvider.getChildren()) + { + if (child instanceof IWrapperItemProvider) + { + targets.add(((IWrapperItemProvider)child).getValue()); + } + } + } + else if (object instanceof PreferenceNode) + { + PreferenceNode preferenceNode = (PreferenceNode)object; + PreferenceNode ancestor = PreferencesUtil.getAncestor(preferenceNode); + if (ancestor != null) + { + targets.add(ancestor); + } + } + } + targetSelection = new StructuredSelection(targets); + return !targetSelection.isEmpty(); + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/.classpath b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.classpath new file mode 100644 index 0000000000..64c5e31b7a --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <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="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/.project b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.project new file mode 100644 index 0000000000..6ce9cfa518 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.project @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.emf.cdo.releng.projectconfig</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.emf.cdo.releng.version.VersionNature</nature> + </natures> +</projectDescription> diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000..0483dbc8d5 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding//model/projectconfig.ecorediag=UTF-8 diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..48aafaf7ea --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,381 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +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.doc.comment.support=enabled +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.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +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.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +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=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +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=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +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.unusedObjectAllocation=ignore +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.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled +org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW +org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED +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=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=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true +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=false +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=120 +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=2 +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=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=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=do not 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=space +org.eclipse.jdt.core.formatter.tabulation.size=2 +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/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000000..3fc140fcdc --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,119 @@ +cleanup.add_default_serial_version_id=true +cleanup.add_generated_serial_version_id=false +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=false +cleanup.always_use_this_for_non_static_method_access=false +cleanup.convert_to_enhanced_for_loop=false +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=false +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=false +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=false +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=false +cleanup.qualify_static_method_accesses_with_declaring_class=false +cleanup.remove_private_constructors=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_parentheses_in_expressions=true +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=true +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=true +cleanup_profile=_EMFT +cleanup_settings_version=2 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +formatter_profile=_EMFT +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=ex +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.ignorelowercasenames=true +org.eclipse.jdt.ui.importorder=org.eclipse.emf.cdo;org.eclipse.emf.internal.cdo;org.eclipse.net4j;org.eclipse.internal.net4j;org.eclipse.emf;org.eclipse;com;org;javax;java; +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=false +org.eclipse.jdt.ui.ondemandthreshold=99 +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.staticondemandthreshold=99 +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" 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 * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made 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 * Eike Stepper - initial API and implementation\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 * @author Eike Stepper\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" 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">${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${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}</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> +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=false +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=false +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=false +sp_cleanup.make_parameters_final=false +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=false +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=true +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=true +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.ltk.core.refactoring.prefs new file mode 100644 index 0000000000..864e30fe5d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.ltk.core.refactoring.prefs @@ -0,0 +1,3 @@ +#Thu Feb 04 09:44:24 CET 2010 +eclipse.preferences.version=1 +org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.mylyn.tasks.ui.prefs new file mode 100644 index 0000000000..b050639a54 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.mylyn.tasks.ui.prefs @@ -0,0 +1,4 @@ +#Thu Feb 04 09:44:24 CET 2010 +eclipse.preferences.version=1 +project.repository.kind=bugzilla +project.repository.url=https\://bugs.eclipse.org/bugs diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.mylyn.team.ui.prefs new file mode 100644 index 0000000000..2f50f36c0c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.mylyn.team.ui.prefs @@ -0,0 +1,3 @@ +#Thu Feb 04 09:44:24 CET 2010 +commit.comment.template=[${task.id}] ${task.description} \r\n${task.url} +eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.pde.api.tools.prefs new file mode 100644 index 0000000000..0c17d59e45 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.pde.api.tools.prefs @@ -0,0 +1,95 @@ +#Thu Feb 04 09:44:24 CET 2010 +ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error +ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error +CLASS_ELEMENT_TYPE_ADDED_METHOD=Error +CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error +CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error +CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error +CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error +ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error +ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error +ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +FIELD_ELEMENT_TYPE_ADDED_VALUE=Error +FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error +FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error +FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error +FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error +ILLEGAL_EXTEND=Warning +ILLEGAL_IMPLEMENT=Warning +ILLEGAL_INSTANTIATE=Warning +ILLEGAL_OVERRIDE=Warning +ILLEGAL_REFERENCE=Warning +INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error +INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error +INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error +INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +INVALID_JAVADOC_TAG=Ignore +INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error +MISSING_EE_DESCRIPTIONS=Warning +LEAK_EXTEND=Warning +LEAK_FIELD_DECL=Warning +LEAK_IMPLEMENT=Warning +LEAK_METHOD_PARAM=Warning +LEAK_METHOD_RETURN_TYPE=Warning +METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error +METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error +UNUSED_PROBLEM_FILTERS=Ignore +automatically_removed_unused_problem_filters=Disabled +eclipse.preferences.version=1 +incompatible_api_component_version=Error +incompatible_api_component_version_include_major_without_breaking_change=Disabled +incompatible_api_component_version_include_minor_without_api_change=Disabled +invalid_since_tag_version=Error +malformed_since_tag=Error +missing_since_tag=Error +report_api_breakage_when_major_version_incremented=Disabled +report_resolution_errors_api_component=Warning diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.pde.prefs new file mode 100644 index 0000000000..fe01bb701d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.pde.prefs @@ -0,0 +1,31 @@ +#Thu Feb 04 09:44:24 CET 2010 +compilers.f.unresolved-features=1 +compilers.f.unresolved-plugins=1 +compilers.incompatible-environment=1 +compilers.p.build=1 +compilers.p.build.bin.includes=1 +compilers.p.build.java.compliance=1 +compilers.p.build.missing.output=2 +compilers.p.build.output.library=1 +compilers.p.build.source.library=1 +compilers.p.build.src.includes=1 +compilers.p.deprecated=2 +compilers.p.discouraged-class=1 +compilers.p.internal=1 +compilers.p.missing-packages=1 +compilers.p.missing-version-export-package=1 +compilers.p.missing-version-import-package=1 +compilers.p.missing-version-require-bundle=1 +compilers.p.no-required-att=0 +compilers.p.not-externalized-att=2 +compilers.p.unknown-attribute=1 +compilers.p.unknown-class=1 +compilers.p.unknown-element=1 +compilers.p.unknown-identifier=1 +compilers.p.unknown-resource=1 +compilers.p.unresolved-ex-points=0 +compilers.p.unresolved-import=0 +compilers.s.create-docs=false +compilers.s.doc-folder=doc +compilers.s.open-tags=1 +eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.projectconfig/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..e4d77b0cd2 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/META-INF/MANIFEST.MF @@ -0,0 +1,21 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-SymbolicName: org.eclipse.emf.cdo.releng.projectconfig;singleton:=true +Bundle-Version: 1.0.200.qualifier +Bundle-ClassPath: . +Bundle-Activator: org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPlugin$Implementation +Bundle-Name: %pluginName +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", + org.eclipse.emf.ecore;visibility:=reexport;bundle-version="[2.9.0,3.0.0)", + org.eclipse.emf.cdo.releng.predicates;visibility:=reexport, + org.eclipse.emf.cdo.releng.preferences;visibility:=reexport, + org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)", + org.eclipse.team.core;bundle-version="[3.5.0,4.0.0)", + org.eclipse.emf.ecore.xmi;bundle-version="[2.9.0,3.0.0)" +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.eclipse.emf.cdo.releng.projectconfig, + org.eclipse.emf.cdo.releng.projectconfig.impl, + org.eclipse.emf.cdo.releng.projectconfig.util diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.html b/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.html new file mode 100644 index 0000000000..d35d5aed64 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.html @@ -0,0 +1,28 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>June 5, 2007</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +</body> +</html> diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.ini b/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.ini new file mode 100644 index 0000000000..32006ae5d6 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.ini @@ -0,0 +1,15 @@ +# about.ini +# contains information about a feature +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# "%key" are externalized strings defined in about.properties +# This file does not need to be translated. + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=%featureText + +# Property "featureImage" contains path to feature image (32x32) +featureImage=modeling32.png + +# Property "appName" contains name of the application (translated) +appName=%featureName + diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.mappings b/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.mappings new file mode 100644 index 0000000000..bddaab4310 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.mappings @@ -0,0 +1,6 @@ +# about.mappings +# contains fill-ins for about.properties +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# This file does not need to be translated. + +0=@build@
\ No newline at end of file diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.properties b/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.properties new file mode 100644 index 0000000000..9134ef220b --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.properties @@ -0,0 +1,31 @@ +# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Eike Stepper - initial API and implementation + +# NLS_MESSAGEFORMAT_VAR + +# ============================================================================== +# Do not change the properties between this line and the last line containing: +# %%% END OF TRANSLATED PROPERTIES %%% +# Instead, either redefine an existing property, or create a new property, +# append it to the end of the file, and change the code to use the new name. +# ============================================================================== + +featureName = CDO Release Engineering Dynamic Working Sets +featureText = CDO Release Engineering Dynamic Working Sets\n\ +Version: {featureVersion}\n\ +Build id: {0}\n\ +\n\ +Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. All rights reserved.\n\ +\n\ +Visit http://www.eclipse.org/cdo + +# ============================================================================== +# %%% END OF TRANSLATED PROPERTIES %%% +# The above properties have been shipped for translation. +# ============================================================================== diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/build.properties b/plugins/org.eclipse.emf.cdo.releng.projectconfig/build.properties new file mode 100644 index 0000000000..eb09361899 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/build.properties @@ -0,0 +1,28 @@ +# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Eike Stepper - initial API and implementation + +# NLS_MESSAGEFORMAT_VAR + +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml,\ + about.html,\ + about.ini,\ + about.mappings,\ + about.properties,\ + copyright.txt,\ + modeling32.png,\ + plugin.properties,\ + model/ +src.includes = about.html,\ + copyright.txt + +generateSourceReferences = true diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/copyright.txt b/plugins/org.eclipse.emf.cdo.releng.projectconfig/copyright.txt new file mode 100644 index 0000000000..1c77978050 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/copyright.txt @@ -0,0 +1,8 @@ +Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. +All rights reserved. This program and the accompanying materials +are made available under the terms of the Eclipse Public License v1.0 +which accompanies this distribution, and is available at +http://www.eclipse.org/legal/epl-v10.html + +Contributors: + Eike Stepper - initial API and implementation diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.ecore b/plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.ecore new file mode 100644 index 0000000000..a616700f8e --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.ecore @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="projectconfig" nsURI="http://www.eclipse.org/CDO/releng/projectconfig/1.0" + nsPrefix="projectconfig"> + <eClassifiers xsi:type="ecore:EClass" name="WorkspaceConfiguration"> + <eOperations name="applyPreferenceProfiles"/> + <eOperations name="updatePreferenceProfileReferences"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="projects" upperBound="-1" + eType="#//Project" containment="true" eOpposite="#//Project/configuration"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="defaultPreferenceNode" + lowerBound="1" eType="ecore:EClass ../../org.eclipse.emf.cdo.releng.preferences/model/preferences.ecore#//PreferenceNode"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="instancePreferenceNode" + lowerBound="1" eType="ecore:EClass ../../org.eclipse.emf.cdo.releng.preferences/model/preferences.ecore#//PreferenceNode"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Project"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="AllPreferencesManaged"/> + </eAnnotations> + <eStructuralFeatures xsi:type="ecore:EReference" name="configuration" lowerBound="1" + eType="#//WorkspaceConfiguration" eOpposite="#//WorkspaceConfiguration/projects"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="preferenceProfiles" upperBound="-1" + eType="#//PreferenceProfile" containment="true" eOpposite="#//PreferenceProfile/project"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="preferenceNode" lowerBound="1" + eType="ecore:EClass ../../org.eclipse.emf.cdo.releng.preferences/model/preferences.ecore#//PreferenceNode"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="preferenceProfileReferences" + upperBound="-1" eType="#//PreferenceProfile" eOpposite="#//PreferenceProfile/referentProjects"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="PreferenceProfile"> + <eOperations name="requires" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> + <eParameters name="preferenceProfile" eType="#//PreferenceProfile"/> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EReference" name="preferenceFilters" upperBound="-1" + eType="#//PreferenceFilter" containment="true" eOpposite="#//PreferenceFilter/preferenceProfile"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="referentProjects" upperBound="-1" + eType="#//Project" eOpposite="#//Project/preferenceProfileReferences"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="project" eType="#//Project" + eOpposite="#//Project/preferenceProfiles"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="predicates" upperBound="-1" + eType="ecore:EClass ../../org.eclipse.emf.cdo.releng.predicates/model/predicates.ecore#//Predicate" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="prerequisites" upperBound="-1" + eType="#//PreferenceProfile"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="PreferenceFilter"> + <eOperations name="matches" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> + <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EReference" name="preferenceNode" lowerBound="1" + eType="ecore:EClass ../../org.eclipse.emf.cdo.releng.preferences/model/preferences.ecore#//PreferenceNode"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="preferenceProfile" lowerBound="1" + eType="#//PreferenceProfile" eOpposite="#//PreferenceProfile/preferenceFilters"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="inclusions" lowerBound="1" + eType="#//Pattern" defaultValueLiteral=".*"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="exclusions" lowerBound="1" + eType="#//Pattern" defaultValueLiteral=""/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="Pattern" instanceClassName="java.util.regex.Pattern"/> +</ecore:EPackage> diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.ecorediag b/plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.ecorediag new file mode 100644 index 0000000000..6ce1c6e0f3 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.ecorediag @@ -0,0 +1,330 @@ +<?xml version="1.0" encoding="UTF-8"?> +<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_2lsywAZaEeOxTbyYFvrvrA" type="EcoreTools" measurementUnit="Pixel"> + <children xmi:type="notation:Node" xmi:id="_2lwdIAZaEeOxTbyYFvrvrA" type="1001"> + <children xmi:type="notation:Node" xmi:id="_2lwdIwZaEeOxTbyYFvrvrA" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_2lwdJAZaEeOxTbyYFvrvrA" type="5001"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_2lwdJQZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_2lwdJgZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_2lwdJwZaEeOxTbyYFvrvrA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_2lwdKAZaEeOxTbyYFvrvrA" type="5002"> + <children xmi:type="notation:Node" xmi:id="_vF7lUAyLEeOoPqB4RyWmHw" type="2002"> + <element xmi:type="ecore:EOperation" href="projectconfig.ecore#//WorkspaceConfiguration/applyPreferenceProfiles"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_vF7lUQyLEeOoPqB4RyWmHw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_zP980AyLEeOoPqB4RyWmHw" type="2002"> + <element xmi:type="ecore:EOperation" href="projectconfig.ecore#//WorkspaceConfiguration/updatePreferenceProfileReferences"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_zP980QyLEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_2lxEMAZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_2lxEMQZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_2lxEMgZaEeOxTbyYFvrvrA"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_2lwdIQZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="projectconfig.ecore#//WorkspaceConfiguration"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2lwdIgZaEeOxTbyYFvrvrA" x="555" y="30" width="318" height="108"/> + </children> + <children xmi:type="notation:Node" xmi:id="_2ly5YAZaEeOxTbyYFvrvrA" type="1001"> + <children xmi:type="notation:Node" xmi:id="_2ly5YwZaEeOxTbyYFvrvrA" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_2ly5ZAZaEeOxTbyYFvrvrA" type="5001"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_2ly5ZQZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_2ly5ZgZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_2ly5ZwZaEeOxTbyYFvrvrA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_2ly5aAZaEeOxTbyYFvrvrA" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_2ly5aQZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_2ly5agZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_2ly5awZaEeOxTbyYFvrvrA"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_2ly5YQZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="projectconfig.ecore#//Project"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2ly5YgZaEeOxTbyYFvrvrA" x="630" y="225"/> + </children> + <children xmi:type="notation:Node" xmi:id="_2lzgcAZaEeOxTbyYFvrvrA" type="1001"> + <children xmi:type="notation:Node" xmi:id="_2lzgcwZaEeOxTbyYFvrvrA" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_2lzgdAZaEeOxTbyYFvrvrA" type="5001"> + <children xmi:type="notation:Node" xmi:id="_iCuc8AZlEeOxTbyYFvrvrA" type="2001"> + <element xmi:type="ecore:EAttribute" href="projectconfig.ecore#//PreferenceProfile/name"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_iCuc8QZlEeOxTbyYFvrvrA"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_2lzgdQZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_2lzgdgZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_2lzgdwZaEeOxTbyYFvrvrA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_2lzgeAZaEeOxTbyYFvrvrA" type="5002"> + <children xmi:type="notation:Node" xmi:id="_9hq_wA5EEeOoPqB4RyWmHw" type="2002"> + <element xmi:type="ecore:EOperation" href="projectconfig.ecore#//PreferenceProfile/requires"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_9hq_wQ5EEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_2lzgeQZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_2lzgegZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_2lzgewZaEeOxTbyYFvrvrA"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_2lzgcQZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="projectconfig.ecore#//PreferenceProfile"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2lzgcgZaEeOxTbyYFvrvrA" x="630" y="360"/> + </children> + <children xmi:type="notation:Node" xmi:id="_2l0HgAZaEeOxTbyYFvrvrA" type="1001"> + <children xmi:type="notation:Node" xmi:id="_2l0HgwZaEeOxTbyYFvrvrA" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_2l0HhAZaEeOxTbyYFvrvrA" type="5001"> + <children xmi:type="notation:Node" xmi:id="_2l0HjAZaEeOxTbyYFvrvrA" type="2001"> + <element xmi:type="ecore:EAttribute" href="projectconfig.ecore#//PreferenceFilter/inclusions"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_2l0HjQZaEeOxTbyYFvrvrA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_bOkxsA4-EeOoPqB4RyWmHw" type="2001"> + <element xmi:type="ecore:EAttribute" href="projectconfig.ecore#//PreferenceFilter/exclusions"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_bOkxsQ4-EeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_2l0HhQZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_2l0HhgZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_2l0HhwZaEeOxTbyYFvrvrA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_2l0HiAZaEeOxTbyYFvrvrA" type="5002"> + <children xmi:type="notation:Node" xmi:id="_POqNoA4_EeOoPqB4RyWmHw" type="2002"> + <element xmi:type="ecore:EOperation" href="projectconfig.ecore#//PreferenceFilter/matches"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_POqNoQ4_EeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_2l0HiQZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_2l0HigZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_2l0HiwZaEeOxTbyYFvrvrA"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_2l0HgQZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="projectconfig.ecore#//PreferenceFilter"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2l0HggZaEeOxTbyYFvrvrA" x="630" y="540"/> + </children> + <children xmi:type="notation:Node" xmi:id="_4FxeYAZaEeOxTbyYFvrvrA" type="1001"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4GP_gAZaEeOxTbyYFvrvrA" source="Shortcut"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4GP_gQZaEeOxTbyYFvrvrA" key="modelID" value="EcoreTools"/> + </eAnnotations> + <children xmi:type="notation:Node" xmi:id="_4F72cAZaEeOxTbyYFvrvrA" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_4F8dgAZaEeOxTbyYFvrvrA" type="5001"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_4F8dgQZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_4F8dggZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_4F8dgwZaEeOxTbyYFvrvrA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_4F9EkAZaEeOxTbyYFvrvrA" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_4F9EkQZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_4F9EkgZaEeOxTbyYFvrvrA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_4F9EkwZaEeOxTbyYFvrvrA"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_4FxeYQZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="platform:/resource/org.eclipse.emf.cdo.releng.preferences/model/preferences.ecore#//PreferenceNode"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4FxeYgZaEeOxTbyYFvrvrA" x="105" y="210" width="318" height="198"/> + </children> + <children xmi:type="notation:Node" xmi:id="_aSK0AAvyEeOoPqB4RyWmHw" type="1001"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aSwp4AvyEeOoPqB4RyWmHw" source="Shortcut"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aSwp4QvyEeOoPqB4RyWmHw" key="modelID" value="EcoreTools"/> + </eAnnotations> + <children xmi:type="notation:Node" xmi:id="_aST98AvyEeOoPqB4RyWmHw" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_aSUlAAvyEeOoPqB4RyWmHw" type="5001"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_aSUlAQvyEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_aSUlAgvyEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_aSUlAwvyEeOoPqB4RyWmHw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_aSVMEAvyEeOoPqB4RyWmHw" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_aSVMEQvyEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_aSVMEgvyEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_aSVMEwvyEeOoPqB4RyWmHw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_aSLbEAvyEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="platform:/resource/org.eclipse.emf.cdo.releng.predicates/model/predicates.ecore#//Predicate"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aSLbEQvyEeOoPqB4RyWmHw" x="285" y="465"/> + </children> + <children xmi:type="notation:Node" xmi:id="_Q-wHsA4-EeOoPqB4RyWmHw" type="1004"> + <children xmi:type="notation:Node" xmi:id="_Q-wHsw4-EeOoPqB4RyWmHw" type="4008"/> + <children xmi:type="notation:Node" xmi:id="_Q-wuwA4-EeOoPqB4RyWmHw" type="4009"/> + <styles xmi:type="notation:ShapeStyle" xmi:id="_Q-wHsQ4-EeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EDataType" href="projectconfig.ecore#//Pattern"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q-wHsg4-EeOoPqB4RyWmHw" x="930" y="555" width="303"/> + </children> + <styles xmi:type="notation:DiagramStyle" xmi:id="_2lsywQZaEeOxTbyYFvrvrA"/> + <element xmi:type="ecore:EPackage" href="projectconfig.ecore#/"/> + <edges xmi:type="notation:Edge" xmi:id="_2l0ukAZaEeOxTbyYFvrvrA" type="3002" source="_2lwdIAZaEeOxTbyYFvrvrA" target="_2ly5YAZaEeOxTbyYFvrvrA"> + <children xmi:type="notation:Node" xmi:id="_2l0ulAZaEeOxTbyYFvrvrA" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_2l0ulQZaEeOxTbyYFvrvrA" x="-6" y="-60"/> + </children> + <children xmi:type="notation:Node" xmi:id="_2l0ulgZaEeOxTbyYFvrvrA" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_2l0ulwZaEeOxTbyYFvrvrA" x="-6" y="33"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_2l0ukQZaEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_2l0ukgZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="projectconfig.ecore#//WorkspaceConfiguration/projects"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2l0ukwZaEeOxTbyYFvrvrA" points="[-22, 106, 10, -136]$[-22, 195, 10, -47]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6dtV4AyLEeOoPqB4RyWmHw" id="(0.49760765550239233,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6dtV4QyLEeOoPqB4RyWmHw" id="(0.5,1.0)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_2l1VoAZaEeOxTbyYFvrvrA" type="3002" source="_2ly5YAZaEeOxTbyYFvrvrA" target="_2lwdIAZaEeOxTbyYFvrvrA"> + <children xmi:type="notation:Node" xmi:id="_2l18sAZaEeOxTbyYFvrvrA" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_2l18sQZaEeOxTbyYFvrvrA" x="-10" y="-88"/> + </children> + <children xmi:type="notation:Node" xmi:id="_2l2jwAZaEeOxTbyYFvrvrA" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_2l2jwQZaEeOxTbyYFvrvrA" x="-12" y="50"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_2l1VoQZaEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_2l1VogZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="projectconfig.ecore#//Project/configuration"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2l1VowZaEeOxTbyYFvrvrA" points="[10, -47, -22, 195]$[10, -136, -22, 106]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2u-qkgZaEeOxTbyYFvrvrA" id="(0.5,1.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2u_RoAZaEeOxTbyYFvrvrA" id="(0.49760765550239233,0.0)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_2l2jwgZaEeOxTbyYFvrvrA" type="3002" source="_2ly5YAZaEeOxTbyYFvrvrA" target="_2lzgcAZaEeOxTbyYFvrvrA"> + <children xmi:type="notation:Node" xmi:id="_2l3K0AZaEeOxTbyYFvrvrA" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_2l3K0QZaEeOxTbyYFvrvrA" x="-19" y="-85"/> + </children> + <children xmi:type="notation:Node" xmi:id="_2l3K0gZaEeOxTbyYFvrvrA" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_2l3K0wZaEeOxTbyYFvrvrA" x="-19" y="33"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_2l2jwwZaEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_2l2jxAZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="projectconfig.ecore#//Project/preferenceProfiles"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2l2jxQZaEeOxTbyYFvrvrA" points="[2, 3, -61, -93]$[2, 91, -61, -5]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JksFsA5FEeOoPqB4RyWmHw" id="(0.5686274509803921,0.9387755102040817)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JksFsQ5FEeOoPqB4RyWmHw" id="(0.38,0.07936507936507936)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_2l3K1AZaEeOxTbyYFvrvrA" type="3002" source="_2lzgcAZaEeOxTbyYFvrvrA" target="_2l0HgAZaEeOxTbyYFvrvrA"> + <children xmi:type="notation:Node" xmi:id="_2l3K2AZaEeOxTbyYFvrvrA" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_2l3K2QZaEeOxTbyYFvrvrA" x="-16" y="-78"/> + </children> + <children xmi:type="notation:Node" xmi:id="_2l3K2gZaEeOxTbyYFvrvrA" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_2l3x4AZaEeOxTbyYFvrvrA" x="-16" y="48"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_2l3K1QZaEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_2l3K1gZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="projectconfig.ecore#//PreferenceProfile/preferenceFilters"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2l3K1wZaEeOxTbyYFvrvrA" points="[-14, 0, -17, -118]$[-14, 118, -17, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Zn5KMAZbEeOxTbyYFvrvrA" id="(0.5,1.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Zn5KMQZbEeOxTbyYFvrvrA" id="(0.5,0.0)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_2l3x4QZaEeOxTbyYFvrvrA" type="3002" source="_2l0HgAZaEeOxTbyYFvrvrA" target="_2lzgcAZaEeOxTbyYFvrvrA"> + <children xmi:type="notation:Node" xmi:id="_2l3x5QZaEeOxTbyYFvrvrA" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_2l3x5gZaEeOxTbyYFvrvrA" x="-9" y="-71"/> + </children> + <children xmi:type="notation:Node" xmi:id="_2l3x5wZaEeOxTbyYFvrvrA" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_2l3x6AZaEeOxTbyYFvrvrA" x="-6" y="35"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_2l3x4gZaEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_2l3x4wZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="projectconfig.ecore#//PreferenceFilter/preferenceProfile"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2l3x5AZaEeOxTbyYFvrvrA" points="[-17, 0, -14, 118]$[-17, -118, -14, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2u-DgAZaEeOxTbyYFvrvrA" id="(0.5,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2u-DgQZaEeOxTbyYFvrvrA" id="(0.5,1.0)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_4GDLMAZaEeOxTbyYFvrvrA" type="3002" source="_2lwdIAZaEeOxTbyYFvrvrA" target="_4FxeYAZaEeOxTbyYFvrvrA"> + <children xmi:type="notation:Node" xmi:id="_4GDyQAZaEeOxTbyYFvrvrA" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_4GDyQQZaEeOxTbyYFvrvrA" x="-28" y="-96"/> + </children> + <children xmi:type="notation:Node" xmi:id="_4GDyQgZaEeOxTbyYFvrvrA" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_4GDyQwZaEeOxTbyYFvrvrA" x="-28" y="17"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_4GDLMQZaEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_4GDLMgZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="projectconfig.ecore#//WorkspaceConfiguration/defaultPreferenceNode"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4GDLMwZaEeOxTbyYFvrvrA" points="[-103, -23, 454, -192]$[-598, -23, -41, -192]$[-598, 127, -41, -42]"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_4GEZUAZaEeOxTbyYFvrvrA" type="3002" source="_2lwdIAZaEeOxTbyYFvrvrA" target="_4FxeYAZaEeOxTbyYFvrvrA"> + <children xmi:type="notation:Node" xmi:id="_4GEZVAZaEeOxTbyYFvrvrA" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_4GEZVQZaEeOxTbyYFvrvrA" x="11" y="-116"/> + </children> + <children xmi:type="notation:Node" xmi:id="_4GFAYAZaEeOxTbyYFvrvrA" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_4GFAYQZaEeOxTbyYFvrvrA" x="10" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_4GEZUQZaEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_4GEZUgZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="projectconfig.ecore#//WorkspaceConfiguration/instancePreferenceNode"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4GEZUwZaEeOxTbyYFvrvrA" points="[-103, 22, 454, -147]$[-501, 22, 56, -147]$[-501, 127, 56, -42]"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_4GFncAZaEeOxTbyYFvrvrA" type="3002" source="_2ly5YAZaEeOxTbyYFvrvrA" target="_4FxeYAZaEeOxTbyYFvrvrA"> + <children xmi:type="notation:Node" xmi:id="_4GFndAZaEeOxTbyYFvrvrA" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_4GFndQZaEeOxTbyYFvrvrA" x="-44" y="-29"/> + </children> + <children xmi:type="notation:Node" xmi:id="_4GFndgZaEeOxTbyYFvrvrA" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_4GFndwZaEeOxTbyYFvrvrA" x="-4" y="19"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_4GFncQZaEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_4GFncgZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="projectconfig.ecore#//Project/preferenceNode"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4GFncwZaEeOxTbyYFvrvrA" points="[-19, -23, 85, 110]$[-103, -132, 1, 1]"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_4GGOgAZaEeOxTbyYFvrvrA" type="3002" source="_2l0HgAZaEeOxTbyYFvrvrA" target="_4FxeYAZaEeOxTbyYFvrvrA"> + <children xmi:type="notation:Node" xmi:id="_4GG1kAZaEeOxTbyYFvrvrA" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_4GG1kQZaEeOxTbyYFvrvrA" y="-80"/> + </children> + <children xmi:type="notation:Node" xmi:id="_4GG1kgZaEeOxTbyYFvrvrA" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_4GG1kwZaEeOxTbyYFvrvrA" x="10" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_4GGOgQZaEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_4GGOggZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="projectconfig.ecore#//PreferenceFilter/preferenceNode"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4GGOgwZaEeOxTbyYFvrvrA" points="[-77, 0, 484, 378]$[-557, 0, 4, 378]$[-557, -336, 4, 42]"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_cpvxoAZbEeOxTbyYFvrvrA" type="3002" source="_2ly5YAZaEeOxTbyYFvrvrA" target="_2lzgcAZaEeOxTbyYFvrvrA"> + <children xmi:type="notation:Node" xmi:id="_cpvxpAZbEeOxTbyYFvrvrA" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_cpvxpQZbEeOxTbyYFvrvrA" x="-38" y="-26"/> + </children> + <children xmi:type="notation:Node" xmi:id="_cpwYsAZbEeOxTbyYFvrvrA" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_cpwYsQZbEeOxTbyYFvrvrA" x="11" y="19"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_cpvxoQZbEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_cpvxogZbEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="projectconfig.ecore#//Project/preferenceProfileReferences"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cpvxowZbEeOxTbyYFvrvrA" points="[50, -8, -155, -159]$[370, -8, 165, -159]$[370, 157, 165, 6]$[264, 157, 59, 6]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fnXHYAZdEeOxTbyYFvrvrA" id="(0.5,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fnXHYQZdEeOxTbyYFvrvrA" id="(0.8133333333333334,0.5306122448979592)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_VzQwEAZdEeOxTbyYFvrvrA" type="3002" source="_2lzgcAZaEeOxTbyYFvrvrA" target="_2ly5YAZaEeOxTbyYFvrvrA"> + <children xmi:type="notation:Node" xmi:id="_VzRXIAZdEeOxTbyYFvrvrA" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_VzRXIQZdEeOxTbyYFvrvrA" x="-10" y="-17"/> + </children> + <children xmi:type="notation:Node" xmi:id="_VzR-MAZdEeOxTbyYFvrvrA" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_VzR-MQZdEeOxTbyYFvrvrA" x="8" y="28"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_VzQwEQZdEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_VzQwEgZdEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="projectconfig.ecore#//PreferenceProfile/referentProjects"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VzQwEwZdEeOxTbyYFvrvrA" points="[59, 6, 264, 157]$[165, 6, 370, 157]$[165, -159, 370, -8]$[-155, -159, 50, -8]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_I2MA8A5FEeOoPqB4RyWmHw" id="(0.8133333333333334,0.5306122448979592)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_I2MoAA5FEeOoPqB4RyWmHw" id="(0.5,0.5)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_TJdIUAZ1EeOxTbyYFvrvrA" type="3002" source="_2lzgcAZaEeOxTbyYFvrvrA" target="_2ly5YAZaEeOxTbyYFvrvrA"> + <children xmi:type="notation:Node" xmi:id="_TJdvYAZ1EeOxTbyYFvrvrA" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_TJdvYQZ1EeOxTbyYFvrvrA" x="-9" y="-47"/> + </children> + <children xmi:type="notation:Node" xmi:id="_TJdvYgZ1EeOxTbyYFvrvrA" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_TJdvYwZ1EeOxTbyYFvrvrA" x="-9" y="30"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_TJdIUQZ1EeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_TJdIUgZ1EeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="projectconfig.ecore#//PreferenceProfile/project"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TJdIUwZ1EeOxTbyYFvrvrA" points="[-61, -5, 2, 91]$[-61, -93, 2, 3]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TJfkkAZ1EeOxTbyYFvrvrA" id="(0.38,0.07936507936507936)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TJfkkQZ1EeOxTbyYFvrvrA" id="(0.5686274509803921,0.9387755102040817)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_cTBRcAvyEeOoPqB4RyWmHw" type="3002" source="_2lzgcAZaEeOxTbyYFvrvrA" target="_aSK0AAvyEeOoPqB4RyWmHw"> + <children xmi:type="notation:Node" xmi:id="_cTCfkAvyEeOoPqB4RyWmHw" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_cTCfkQvyEeOoPqB4RyWmHw" x="14" y="-57"/> + </children> + <children xmi:type="notation:Node" xmi:id="_cTCfkgvyEeOoPqB4RyWmHw" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_cTCfkwvyEeOoPqB4RyWmHw" x="-1" y="30"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_cTBRcQvyEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_cTBRcgvyEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="projectconfig.ecore#//PreferenceProfile/predicates"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cTBRcwvyEeOoPqB4RyWmHw" points="[-13, 30, 186, -35]$[-181, 30, 18, -35]$[-181, 60, 18, -5]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cTH_IAvyEeOoPqB4RyWmHw" id="(0.09333333333333334,0.5079365079365079)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cTImMAvyEeOoPqB4RyWmHw" id="(0.6625514403292181,0.06976744186046512)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_vyKDIA5BEeOoPqB4RyWmHw" type="3002" source="_2lzgcAZaEeOxTbyYFvrvrA" target="_2lzgcAZaEeOxTbyYFvrvrA"> + <children xmi:type="notation:Node" xmi:id="_vyLRQA5BEeOoPqB4RyWmHw" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_vyLRQQ5BEeOoPqB4RyWmHw" x="-31" y="-23"/> + </children> + <children xmi:type="notation:Node" xmi:id="_vyL4UA5BEeOoPqB4RyWmHw" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_vyL4UQ5BEeOoPqB4RyWmHw" x="10" y="10"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_vyKDIQ5BEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_vyKDIg5BEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="projectconfig.ecore#//PreferenceProfile/prerequisites"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vyKDIw5BEeOoPqB4RyWmHw" points="[-37, 27, -39, 30]$[-157, 27, -159, 30]$[-157, -3, -159, 0]$[-37, -3, -39, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vyQw0A5BEeOoPqB4RyWmHw" id="(0.12,0.30158730158730157)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vyQw0Q5BEeOoPqB4RyWmHw" id="(0.12666666666666668,0.25396825396825395)"/> + </edges> +</notation:Diagram> diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.genmodel b/plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.genmodel new file mode 100644 index 0000000000..ea07e4864a --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.genmodel @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" + xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.cdo.releng.projectconfig/src" + creationIcons="false" modelPluginID="org.eclipse.emf.cdo.releng.projectconfig" + modelName="Project Config" modelPluginClass="org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPlugin" + rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" importerID="org.eclipse.emf.importer.ecore" + complianceLevel="5.0" copyrightFields="false" usedGenPackages="../../org.eclipse.emf.cdo.releng.predicates/model/predicates.genmodel#//predicates ../../org.eclipse.emf.cdo.releng.preferences/model/preferences.genmodel#//preferences" + operationReflection="true" importOrganizing="true" decoration="Live"> + <foreignModel>projectconfig.ecore</foreignModel> + <genPackages prefix="ProjectConfig" basePackage="org.eclipse.emf.cdo.releng" disposableProviderFactory="true" + multipleEditorPages="false" generateModelWizard="false" ecorePackage="projectconfig.ecore#/"> + <genClasses ecoreClass="projectconfig.ecore#//WorkspaceConfiguration"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference projectconfig.ecore#//WorkspaceConfiguration/projects"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference projectconfig.ecore#//WorkspaceConfiguration/defaultPreferenceNode"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference projectconfig.ecore#//WorkspaceConfiguration/instancePrefenceNode"/> + <genOperations ecoreOperation="projectconfig.ecore#//WorkspaceConfiguration/applyPreferenceProfiles"/> + <genOperations ecoreOperation="projectconfig.ecore#//WorkspaceConfiguration/updatePreferenceProfileReferences"/> + </genClasses> + <genClasses provider="Stateful" ecoreClass="projectconfig.ecore#//Project"> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference projectconfig.ecore#//Project/configuration"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference projectconfig.ecore#//Project/preferenceProfiles"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference projectconfig.ecore#//Project/preferenceNode"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference projectconfig.ecore#//Project/preferenceProfileReferences"/> + </genClasses> + <genClasses provider="Stateful" ecoreClass="projectconfig.ecore#//PreferenceProfile"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference projectconfig.ecore#//PreferenceProfile/preferenceFilters"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference projectconfig.ecore#//PreferenceProfile/referentProjects"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute projectconfig.ecore#//PreferenceProfile/name"/> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference projectconfig.ecore#//PreferenceProfile/project"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference projectconfig.ecore#//PreferenceProfile/predicates"/> + </genClasses> + <genClasses provider="Stateful" ecoreClass="projectconfig.ecore#//PreferenceFilter"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference projectconfig.ecore#//PreferenceFilter/preferenceNode"/> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference projectconfig.ecore#//PreferenceFilter/preferenceProfile"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute projectconfig.ecore#//PreferenceFilter/pattern"/> + </genClasses> + </genPackages> +</genmodel:GenModel> diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/modeling32.png b/plugins/org.eclipse.emf.cdo.releng.projectconfig/modeling32.png Binary files differnew file mode 100644 index 0000000000..6b08de2ada --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/modeling32.png diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.projectconfig/plugin.properties new file mode 100644 index 0000000000..784abf50af --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/plugin.properties @@ -0,0 +1,14 @@ +# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Eike Stepper - initial API and implementation + +pluginName = CDO Release Engineering Dynamic Working Sets +providerName = Eclipse Modeling Project + + +_UI_AllPreferencesManaged_diagnostic = The preferences for {0} are not managed by a preference profile or preference profile reference diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.projectconfig/plugin.xml new file mode 100644 index 0000000000..9a58ea67fe --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/plugin.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.4"?> +<!-- + Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + Eike Stepper - initial API and implementation +--> + +<plugin> + <extension point="org.eclipse.emf.ecore.generated_package"> + <!-- @generated projectconfig --> + <package + uri="http://www.eclipse.org/CDO/releng/projectconfig/1.0" + class="org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage" + genModel="model/projectconfig.genmodel"/> + </extension> + +</plugin> diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/PreferenceFilter.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/PreferenceFilter.java new file mode 100644 index 0000000000..2faf5cad1a --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/PreferenceFilter.java @@ -0,0 +1,146 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig; + +import java.util.regex.Pattern; +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Preference Filter</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceNode <em>Preference Node</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceProfile <em>Preference Profile</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getInclusions <em>Inclusions</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getExclusions <em>Exclusions</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceFilter() + * @model + * @generated + */ +public interface PreferenceFilter extends EObject +{ + /** + * Returns the value of the '<em><b>Preference Node</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Preference Node</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Preference Node</em>' reference. + * @see #setPreferenceNode(PreferenceNode) + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceFilter_PreferenceNode() + * @model required="true" + * @generated + */ + PreferenceNode getPreferenceNode(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceNode <em>Preference Node</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Preference Node</em>' reference. + * @see #getPreferenceNode() + * @generated + */ + void setPreferenceNode(PreferenceNode value); + + /** + * Returns the value of the '<em><b>Preference Profile</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPreferenceFilters <em>Preference Filters</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Preference Profile</em>' container reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Preference Profile</em>' container reference. + * @see #setPreferenceProfile(PreferenceProfile) + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceFilter_PreferenceProfile() + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPreferenceFilters + * @model opposite="preferenceFilters" required="true" transient="false" + * @generated + */ + PreferenceProfile getPreferenceProfile(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceProfile <em>Preference Profile</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Preference Profile</em>' container reference. + * @see #getPreferenceProfile() + * @generated + */ + void setPreferenceProfile(PreferenceProfile value); + + /** + * Returns the value of the '<em><b>Inclusions</b></em>' attribute. + * The default value is <code>".*"</code>. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Inclusions</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Inclusions</em>' attribute. + * @see #setInclusions(Pattern) + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceFilter_Inclusions() + * @model default=".*" dataType="org.eclipse.emf.cdo.releng.projectconfig.Pattern" required="true" + * @generated + */ + Pattern getInclusions(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getInclusions <em>Inclusions</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Inclusions</em>' attribute. + * @see #getInclusions() + * @generated + */ + void setInclusions(Pattern value); + + /** + * Returns the value of the '<em><b>Exclusions</b></em>' attribute. + * The default value is <code>""</code>. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Exclusions</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Exclusions</em>' attribute. + * @see #setExclusions(Pattern) + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceFilter_Exclusions() + * @model default="" dataType="org.eclipse.emf.cdo.releng.projectconfig.Pattern" required="true" + * @generated + */ + Pattern getExclusions(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getExclusions <em>Exclusions</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Exclusions</em>' attribute. + * @see #getExclusions() + * @generated + */ + void setExclusions(Pattern value); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model + * @generated + */ + boolean matches(String value); + +} // PreferenceFilter diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/PreferenceProfile.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/PreferenceProfile.java new file mode 100644 index 0000000000..9a6a109954 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/PreferenceProfile.java @@ -0,0 +1,163 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig; + +import org.eclipse.emf.cdo.releng.predicates.Predicate; +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Preference Profile</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPreferenceFilters <em>Preference Filters</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getReferentProjects <em>Referent Projects</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getProject <em>Project</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPredicates <em>Predicates</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPrerequisites <em>Prerequisites</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceProfile() + * @model + * @generated + */ +public interface PreferenceProfile extends EObject +{ + /** + * Returns the value of the '<em><b>Preference Filters</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter}. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceProfile <em>Preference Profile</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Preference Filters</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Preference Filters</em>' containment reference list. + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceProfile_PreferenceFilters() + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceProfile + * @model opposite="preferenceProfile" containment="true" + * @generated + */ + EList<PreferenceFilter> getPreferenceFilters(); + + /** + * Returns the value of the '<em><b>Referent Projects</b></em>' reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.projectconfig.Project}. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfileReferences <em>Preference Profile References</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Referent Projects</em>' reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Referent Projects</em>' reference list. + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceProfile_ReferentProjects() + * @see org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfileReferences + * @model opposite="preferenceProfileReferences" + * @generated + */ + EList<Project> getReferentProjects(); + + /** + * Returns the value of the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Name</em>' attribute. + * @see #setName(String) + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceProfile_Name() + * @model required="true" + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getName <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Name</em>' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the '<em><b>Project</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfiles <em>Preference Profiles</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Project</em>' container reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Project</em>' container reference. + * @see #setProject(Project) + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceProfile_Project() + * @see org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfiles + * @model opposite="preferenceProfiles" transient="false" + * @generated + */ + Project getProject(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getProject <em>Project</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Project</em>' container reference. + * @see #getProject() + * @generated + */ + void setProject(Project value); + + /** + * Returns the value of the '<em><b>Predicates</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.predicates.Predicate}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Predicates</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Predicates</em>' containment reference list. + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceProfile_Predicates() + * @model containment="true" + * @generated + */ + EList<Predicate> getPredicates(); + + /** + * Returns the value of the '<em><b>Prerequisites</b></em>' reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Requires</em>' reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Prerequisites</em>' reference list. + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceProfile_Prerequisites() + * @model + * @generated + */ + EList<PreferenceProfile> getPrerequisites(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model + * @generated + */ + boolean requires(PreferenceProfile preferenceProfile); + +} // PreferenceProfile diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/Project.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/Project.java new file mode 100644 index 0000000000..beeb7c4c70 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/Project.java @@ -0,0 +1,122 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig; + +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Project</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getConfiguration <em>Configuration</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfiles <em>Preference Profiles</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceNode <em>Preference Node</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfileReferences <em>Preference Profile References</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getProject() + * @model annotation="http://www.eclipse.org/emf/2002/Ecore constraints='AllPreferencesManaged'" + * @generated + */ +public interface Project extends EObject +{ + /** + * Returns the value of the '<em><b>Configuration</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getProjects <em>Projects</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Configuration</em>' container reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Configuration</em>' container reference. + * @see #setConfiguration(WorkspaceConfiguration) + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getProject_Configuration() + * @see org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getProjects + * @model opposite="projects" required="true" transient="false" + * @generated + */ + WorkspaceConfiguration getConfiguration(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getConfiguration <em>Configuration</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Configuration</em>' container reference. + * @see #getConfiguration() + * @generated + */ + void setConfiguration(WorkspaceConfiguration value); + + /** + * Returns the value of the '<em><b>Preference Profiles</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile}. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getProject <em>Project</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Preference Profiles</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Preference Profiles</em>' containment reference list. + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getProject_PreferenceProfiles() + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getProject + * @model opposite="project" containment="true" + * @generated + */ + EList<PreferenceProfile> getPreferenceProfiles(); + + /** + * Returns the value of the '<em><b>Preference Node</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Preference Node</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Preference Node</em>' reference. + * @see #setPreferenceNode(PreferenceNode) + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getProject_PreferenceNode() + * @model required="true" + * @generated + */ + PreferenceNode getPreferenceNode(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceNode <em>Preference Node</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Preference Node</em>' reference. + * @see #getPreferenceNode() + * @generated + */ + void setPreferenceNode(PreferenceNode value); + + /** + * Returns the value of the '<em><b>Preference Profile References</b></em>' reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile}. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getReferentProjects <em>Referent Projects</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Preference Profile References</em>' reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Preference Profile References</em>' reference list. + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getProject_PreferenceProfileReferences() + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getReferentProjects + * @model opposite="referentProjects" + * @generated + */ + EList<PreferenceProfile> getPreferenceProfileReferences(); + +} // Project diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/ProjectConfigFactory.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/ProjectConfigFactory.java new file mode 100644 index 0000000000..4cef0abab1 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/ProjectConfigFactory.java @@ -0,0 +1,70 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig; + +import org.eclipse.emf.ecore.EFactory; + +/** + * <!-- begin-user-doc --> + * The <b>Factory</b> for the model. + * It provides a create method for each non-abstract class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage + * @generated + */ +public interface ProjectConfigFactory extends EFactory +{ + /** + * The singleton instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + ProjectConfigFactory eINSTANCE = org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigFactoryImpl.init(); + + /** + * Returns a new object of class '<em>Workspace Configuration</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Workspace Configuration</em>'. + * @generated + */ + WorkspaceConfiguration createWorkspaceConfiguration(); + + /** + * Returns a new object of class '<em>Project</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Project</em>'. + * @generated + */ + Project createProject(); + + /** + * Returns a new object of class '<em>Preference Profile</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Preference Profile</em>'. + * @generated + */ + PreferenceProfile createPreferenceProfile(); + + /** + * Returns a new object of class '<em>Preference Filter</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Preference Filter</em>'. + * @generated + */ + PreferenceFilter createPreferenceFilter(); + + /** + * Returns the package supported by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the package supported by this factory. + * @generated + */ + ProjectConfigPackage getProjectConfigPackage(); + +} //ProjectConfigFactory diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/ProjectConfigPackage.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/ProjectConfigPackage.java new file mode 100644 index 0000000000..1b92bc04df --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/ProjectConfigPackage.java @@ -0,0 +1,897 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +/** + * <!-- begin-user-doc --> + * The <b>Package</b> for the model. + * It contains accessors for the meta objects to represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigFactory + * @model kind="package" + * @generated + */ +public interface ProjectConfigPackage extends EPackage +{ + /** + * The package name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNAME = "projectconfig"; + + /** + * The package namespace URI. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_URI = "http://www.eclipse.org/CDO/releng/projectconfig/1.0"; + + /** + * The package namespace name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_PREFIX = "projectconfig"; + + /** + * The singleton instance of the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + ProjectConfigPackage eINSTANCE = org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl.init(); + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.projectconfig.impl.WorkspaceConfigurationImpl <em>Workspace Configuration</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.projectconfig.impl.WorkspaceConfigurationImpl + * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getWorkspaceConfiguration() + * @generated + */ + int WORKSPACE_CONFIGURATION = 0; + + /** + * The feature id for the '<em><b>Projects</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int WORKSPACE_CONFIGURATION__PROJECTS = 0; + + /** + * The feature id for the '<em><b>Default Preference Node</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE = 1; + + /** + * The feature id for the '<em><b>Instance Preference Node</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE = 2; + + /** + * The number of structural features of the '<em>Workspace Configuration</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int WORKSPACE_CONFIGURATION_FEATURE_COUNT = 3; + + /** + * The operation id for the '<em>Apply Preference Profiles</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int WORKSPACE_CONFIGURATION___APPLY_PREFERENCE_PROFILES = 0; + + /** + * The operation id for the '<em>Update Preference Profile References</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int WORKSPACE_CONFIGURATION___UPDATE_PREFERENCE_PROFILE_REFERENCES = 1; + + /** + * The number of operations of the '<em>Workspace Configuration</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int WORKSPACE_CONFIGURATION_OPERATION_COUNT = 2; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectImpl <em>Project</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectImpl + * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getProject() + * @generated + */ + int PROJECT = 1; + + /** + * The feature id for the '<em><b>Configuration</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PROJECT__CONFIGURATION = 0; + + /** + * The feature id for the '<em><b>Preference Profiles</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PROJECT__PREFERENCE_PROFILES = 1; + + /** + * The feature id for the '<em><b>Preference Node</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PROJECT__PREFERENCE_NODE = 2; + + /** + * The feature id for the '<em><b>Preference Profile References</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PROJECT__PREFERENCE_PROFILE_REFERENCES = 3; + + /** + * The number of structural features of the '<em>Project</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PROJECT_FEATURE_COUNT = 4; + + /** + * The number of operations of the '<em>Project</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PROJECT_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl <em>Preference Profile</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl + * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getPreferenceProfile() + * @generated + */ + int PREFERENCE_PROFILE = 2; + + /** + * The feature id for the '<em><b>Preference Filters</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_PROFILE__PREFERENCE_FILTERS = 0; + + /** + * The feature id for the '<em><b>Referent Projects</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_PROFILE__REFERENT_PROJECTS = 1; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_PROFILE__NAME = 2; + + /** + * The feature id for the '<em><b>Project</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_PROFILE__PROJECT = 3; + + /** + * The feature id for the '<em><b>Predicates</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_PROFILE__PREDICATES = 4; + + /** + * The feature id for the '<em><b>Prerequisites</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_PROFILE__PREREQUISITES = 5; + + /** + * The number of structural features of the '<em>Preference Profile</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_PROFILE_FEATURE_COUNT = 6; + + /** + * The operation id for the '<em>Requires</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_PROFILE___REQUIRES__PREFERENCEPROFILE = 0; + + /** + * The number of operations of the '<em>Preference Profile</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_PROFILE_OPERATION_COUNT = 1; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceFilterImpl <em>Preference Filter</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceFilterImpl + * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getPreferenceFilter() + * @generated + */ + int PREFERENCE_FILTER = 3; + + /** + * The feature id for the '<em><b>Preference Node</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_FILTER__PREFERENCE_NODE = 0; + + /** + * The feature id for the '<em><b>Preference Profile</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_FILTER__PREFERENCE_PROFILE = 1; + + /** + * The feature id for the '<em><b>Inclusions</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_FILTER__INCLUSIONS = 2; + + /** + * The feature id for the '<em><b>Exclusions</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_FILTER__EXCLUSIONS = 3; + + /** + * The number of structural features of the '<em>Preference Filter</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_FILTER_FEATURE_COUNT = 4; + + /** + * The operation id for the '<em>Matches</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_FILTER___MATCHES__STRING = 0; + + /** + * The number of operations of the '<em>Preference Filter</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCE_FILTER_OPERATION_COUNT = 1; + + + /** + * The meta object id for the '<em>Pattern</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see java.util.regex.Pattern + * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getPattern() + * @generated + */ + int PATTERN = 4; + + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration <em>Workspace Configuration</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Workspace Configuration</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration + * @generated + */ + EClass getWorkspaceConfiguration(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getProjects <em>Projects</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Projects</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getProjects() + * @see #getWorkspaceConfiguration() + * @generated + */ + EReference getWorkspaceConfiguration_Projects(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getDefaultPreferenceNode <em>Default Preference Node</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Default Preference Node</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getDefaultPreferenceNode() + * @see #getWorkspaceConfiguration() + * @generated + */ + EReference getWorkspaceConfiguration_DefaultPreferenceNode(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getInstancePreferenceNode <em>Instance Preference Node</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Instance Preference Node</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getInstancePreferenceNode() + * @see #getWorkspaceConfiguration() + * @generated + */ + EReference getWorkspaceConfiguration_InstancePreferenceNode(); + + /** + * Returns the meta object for the '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#applyPreferenceProfiles() <em>Apply Preference Profiles</em>}' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the '<em>Apply Preference Profiles</em>' operation. + * @see org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#applyPreferenceProfiles() + * @generated + */ + EOperation getWorkspaceConfiguration__ApplyPreferenceProfiles(); + + /** + * Returns the meta object for the '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#updatePreferenceProfileReferences() <em>Update Preference Profile References</em>}' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the '<em>Update Preference Profile References</em>' operation. + * @see org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#updatePreferenceProfileReferences() + * @generated + */ + EOperation getWorkspaceConfiguration__UpdatePreferenceProfileReferences(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.projectconfig.Project <em>Project</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Project</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.Project + * @generated + */ + EClass getProject(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getConfiguration <em>Configuration</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Configuration</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.Project#getConfiguration() + * @see #getProject() + * @generated + */ + EReference getProject_Configuration(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfiles <em>Preference Profiles</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Preference Profiles</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfiles() + * @see #getProject() + * @generated + */ + EReference getProject_PreferenceProfiles(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceNode <em>Preference Node</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Preference Node</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceNode() + * @see #getProject() + * @generated + */ + EReference getProject_PreferenceNode(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfileReferences <em>Preference Profile References</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference list '<em>Preference Profile References</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfileReferences() + * @see #getProject() + * @generated + */ + EReference getProject_PreferenceProfileReferences(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile <em>Preference Profile</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Preference Profile</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile + * @generated + */ + EClass getPreferenceProfile(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPreferenceFilters <em>Preference Filters</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Preference Filters</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPreferenceFilters() + * @see #getPreferenceProfile() + * @generated + */ + EReference getPreferenceProfile_PreferenceFilters(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getReferentProjects <em>Referent Projects</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference list '<em>Referent Projects</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getReferentProjects() + * @see #getPreferenceProfile() + * @generated + */ + EReference getPreferenceProfile_ReferentProjects(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getName <em>Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getName() + * @see #getPreferenceProfile() + * @generated + */ + EAttribute getPreferenceProfile_Name(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getProject <em>Project</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Project</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getProject() + * @see #getPreferenceProfile() + * @generated + */ + EReference getPreferenceProfile_Project(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPredicates <em>Predicates</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Predicates</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPredicates() + * @see #getPreferenceProfile() + * @generated + */ + EReference getPreferenceProfile_Predicates(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPrerequisites <em>Prerequisites</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference list '<em>Prerequisites</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPrerequisites() + * @see #getPreferenceProfile() + * @generated + */ + EReference getPreferenceProfile_Prerequisites(); + + /** + * Returns the meta object for the '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#requires(org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile) <em>Requires</em>}' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the '<em>Requires</em>' operation. + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#requires(org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile) + * @generated + */ + EOperation getPreferenceProfile__Requires__PreferenceProfile(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter <em>Preference Filter</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Preference Filter</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter + * @generated + */ + EClass getPreferenceFilter(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceNode <em>Preference Node</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Preference Node</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceNode() + * @see #getPreferenceFilter() + * @generated + */ + EReference getPreferenceFilter_PreferenceNode(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceProfile <em>Preference Profile</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Preference Profile</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceProfile() + * @see #getPreferenceFilter() + * @generated + */ + EReference getPreferenceFilter_PreferenceProfile(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getInclusions <em>Inclusions</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Inclusions</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getInclusions() + * @see #getPreferenceFilter() + * @generated + */ + EAttribute getPreferenceFilter_Inclusions(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getExclusions <em>Exclusions</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Exclusions</em>'. + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getExclusions() + * @see #getPreferenceFilter() + * @generated + */ + EAttribute getPreferenceFilter_Exclusions(); + + /** + * Returns the meta object for the '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#matches(java.lang.String) <em>Matches</em>}' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the '<em>Matches</em>' operation. + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#matches(java.lang.String) + * @generated + */ + EOperation getPreferenceFilter__Matches__String(); + + /** + * Returns the meta object for data type '{@link java.util.regex.Pattern <em>Pattern</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for data type '<em>Pattern</em>'. + * @see java.util.regex.Pattern + * @model instanceClass="java.util.regex.Pattern" + * @generated + */ + EDataType getPattern(); + + /** + * Returns the factory that creates the instances of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the factory that creates the instances of the model. + * @generated + */ + ProjectConfigFactory getProjectConfigFactory(); + + /** + * <!-- begin-user-doc --> + * Defines literals for the meta objects that represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @generated + */ + interface Literals + { + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.projectconfig.impl.WorkspaceConfigurationImpl <em>Workspace Configuration</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.projectconfig.impl.WorkspaceConfigurationImpl + * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getWorkspaceConfiguration() + * @generated + */ + EClass WORKSPACE_CONFIGURATION = eINSTANCE.getWorkspaceConfiguration(); + + /** + * The meta object literal for the '<em><b>Projects</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference WORKSPACE_CONFIGURATION__PROJECTS = eINSTANCE.getWorkspaceConfiguration_Projects(); + + /** + * The meta object literal for the '<em><b>Default Preference Node</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE = eINSTANCE.getWorkspaceConfiguration_DefaultPreferenceNode(); + + /** + * The meta object literal for the '<em><b>Instance Preference Node</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE = eINSTANCE.getWorkspaceConfiguration_InstancePreferenceNode(); + + /** + * The meta object literal for the '<em><b>Apply Preference Profiles</b></em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EOperation WORKSPACE_CONFIGURATION___APPLY_PREFERENCE_PROFILES = eINSTANCE.getWorkspaceConfiguration__ApplyPreferenceProfiles(); + + /** + * The meta object literal for the '<em><b>Update Preference Profile References</b></em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EOperation WORKSPACE_CONFIGURATION___UPDATE_PREFERENCE_PROFILE_REFERENCES = eINSTANCE.getWorkspaceConfiguration__UpdatePreferenceProfileReferences(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectImpl <em>Project</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectImpl + * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getProject() + * @generated + */ + EClass PROJECT = eINSTANCE.getProject(); + + /** + * The meta object literal for the '<em><b>Configuration</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PROJECT__CONFIGURATION = eINSTANCE.getProject_Configuration(); + + /** + * The meta object literal for the '<em><b>Preference Profiles</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PROJECT__PREFERENCE_PROFILES = eINSTANCE.getProject_PreferenceProfiles(); + + /** + * The meta object literal for the '<em><b>Preference Node</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PROJECT__PREFERENCE_NODE = eINSTANCE.getProject_PreferenceNode(); + + /** + * The meta object literal for the '<em><b>Preference Profile References</b></em>' reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PROJECT__PREFERENCE_PROFILE_REFERENCES = eINSTANCE.getProject_PreferenceProfileReferences(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl <em>Preference Profile</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl + * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getPreferenceProfile() + * @generated + */ + EClass PREFERENCE_PROFILE = eINSTANCE.getPreferenceProfile(); + + /** + * The meta object literal for the '<em><b>Preference Filters</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PREFERENCE_PROFILE__PREFERENCE_FILTERS = eINSTANCE.getPreferenceProfile_PreferenceFilters(); + + /** + * The meta object literal for the '<em><b>Referent Projects</b></em>' reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PREFERENCE_PROFILE__REFERENT_PROJECTS = eINSTANCE.getPreferenceProfile_ReferentProjects(); + + /** + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute PREFERENCE_PROFILE__NAME = eINSTANCE.getPreferenceProfile_Name(); + + /** + * The meta object literal for the '<em><b>Project</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PREFERENCE_PROFILE__PROJECT = eINSTANCE.getPreferenceProfile_Project(); + + /** + * The meta object literal for the '<em><b>Predicates</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PREFERENCE_PROFILE__PREDICATES = eINSTANCE.getPreferenceProfile_Predicates(); + + /** + * The meta object literal for the '<em><b>Prerequisites</b></em>' reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PREFERENCE_PROFILE__PREREQUISITES = eINSTANCE.getPreferenceProfile_Prerequisites(); + + /** + * The meta object literal for the '<em><b>Requires</b></em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EOperation PREFERENCE_PROFILE___REQUIRES__PREFERENCEPROFILE = eINSTANCE.getPreferenceProfile__Requires__PreferenceProfile(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceFilterImpl <em>Preference Filter</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceFilterImpl + * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getPreferenceFilter() + * @generated + */ + EClass PREFERENCE_FILTER = eINSTANCE.getPreferenceFilter(); + + /** + * The meta object literal for the '<em><b>Preference Node</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PREFERENCE_FILTER__PREFERENCE_NODE = eINSTANCE.getPreferenceFilter_PreferenceNode(); + + /** + * The meta object literal for the '<em><b>Preference Profile</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PREFERENCE_FILTER__PREFERENCE_PROFILE = eINSTANCE.getPreferenceFilter_PreferenceProfile(); + + /** + * The meta object literal for the '<em><b>Inclusions</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute PREFERENCE_FILTER__INCLUSIONS = eINSTANCE.getPreferenceFilter_Inclusions(); + + /** + * The meta object literal for the '<em><b>Exclusions</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute PREFERENCE_FILTER__EXCLUSIONS = eINSTANCE.getPreferenceFilter_Exclusions(); + + /** + * The meta object literal for the '<em><b>Matches</b></em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EOperation PREFERENCE_FILTER___MATCHES__STRING = eINSTANCE.getPreferenceFilter__Matches__String(); + + /** + * The meta object literal for the '<em>Pattern</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see java.util.regex.Pattern + * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getPattern() + * @generated + */ + EDataType PATTERN = eINSTANCE.getPattern(); + + } + +} //ProjectConfigPackage diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/WorkspaceConfiguration.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/WorkspaceConfiguration.java new file mode 100644 index 0000000000..f473506672 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/WorkspaceConfiguration.java @@ -0,0 +1,117 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig; + +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Workspace Configuration</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getProjects <em>Projects</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getDefaultPreferenceNode <em>Default Preference Node</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getInstancePreferenceNode <em>Instance Preference Node</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getWorkspaceConfiguration() + * @model + * @generated + */ +public interface WorkspaceConfiguration extends EObject +{ + /** + * Returns the value of the '<em><b>Projects</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.projectconfig.Project}. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getConfiguration <em>Configuration</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Projects</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Projects</em>' containment reference list. + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getWorkspaceConfiguration_Projects() + * @see org.eclipse.emf.cdo.releng.projectconfig.Project#getConfiguration + * @model opposite="configuration" containment="true" + * @generated + */ + EList<Project> getProjects(); + + /** + * Returns the value of the '<em><b>Default Preference Node</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Default Preference Node</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Default Preference Node</em>' reference. + * @see #setDefaultPreferenceNode(PreferenceNode) + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getWorkspaceConfiguration_DefaultPreferenceNode() + * @model required="true" + * @generated + */ + PreferenceNode getDefaultPreferenceNode(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getDefaultPreferenceNode <em>Default Preference Node</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Default Preference Node</em>' reference. + * @see #getDefaultPreferenceNode() + * @generated + */ + void setDefaultPreferenceNode(PreferenceNode value); + + /** + * Returns the value of the '<em><b>Instance Preference Node</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Instance Preference Node</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Instance Preference Node</em>' reference. + * @see #setInstancePreferenceNode(PreferenceNode) + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getWorkspaceConfiguration_InstancePreferenceNode() + * @model required="true" + * @generated + */ + PreferenceNode getInstancePreferenceNode(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getInstancePreferenceNode <em>Instance Preference Node</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Instance Preference Node</em>' reference. + * @see #getInstancePreferenceNode() + * @generated + */ + void setInstancePreferenceNode(PreferenceNode value); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model + * @generated + */ + void applyPreferenceProfiles(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model + * @generated + */ + void updatePreferenceProfileReferences(); + +} // WorkspaceConfiguration diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceFilterImpl.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceFilterImpl.java new file mode 100644 index 0000000000..f147be70e8 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceFilterImpl.java @@ -0,0 +1,438 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.impl; + +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile; +import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigFactory; +import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; + +import java.lang.reflect.InvocationTargetException; +import java.util.regex.Pattern; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Preference Filter</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceFilterImpl#getPreferenceNode <em>Preference Node</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceFilterImpl#getPreferenceProfile <em>Preference Profile</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceFilterImpl#getInclusions <em>Inclusions</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceFilterImpl#getExclusions <em>Exclusions</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class PreferenceFilterImpl extends MinimalEObjectImpl.Container implements PreferenceFilter +{ + /** + * The cached value of the '{@link #getPreferenceNode() <em>Preference Node</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPreferenceNode() + * @generated + * @ordered + */ + protected PreferenceNode preferenceNode; + + /** + * The default value of the '{@link #getInclusions() <em>Inclusions</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getInclusions() + * @generated + * @ordered + */ + protected static final Pattern INCLUSIONS_EDEFAULT = (Pattern)ProjectConfigFactory.eINSTANCE.createFromString(ProjectConfigPackage.eINSTANCE.getPattern(), ".*"); + + /** + * The cached value of the '{@link #getInclusions() <em>Inclusions</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getInclusions() + * @generated + * @ordered + */ + protected Pattern inclusions = INCLUSIONS_EDEFAULT; + + /** + * The default value of the '{@link #getExclusions() <em>Exclusions</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExclusions() + * @generated + * @ordered + */ + protected static final Pattern EXCLUSIONS_EDEFAULT = (Pattern)ProjectConfigFactory.eINSTANCE.createFromString(ProjectConfigPackage.eINSTANCE.getPattern(), ""); + + /** + * The cached value of the '{@link #getExclusions() <em>Exclusions</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExclusions() + * @generated + * @ordered + */ + protected Pattern exclusions = EXCLUSIONS_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PreferenceFilterImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return ProjectConfigPackage.Literals.PREFERENCE_FILTER; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferenceNode getPreferenceNode() + { + if (preferenceNode != null && preferenceNode.eIsProxy()) + { + InternalEObject oldPreferenceNode = (InternalEObject)preferenceNode; + preferenceNode = (PreferenceNode)eResolveProxy(oldPreferenceNode); + if (preferenceNode != oldPreferenceNode) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_NODE, oldPreferenceNode, preferenceNode)); + } + } + return preferenceNode; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferenceNode basicGetPreferenceNode() + { + return preferenceNode; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setPreferenceNode(PreferenceNode newPreferenceNode) + { + PreferenceNode oldPreferenceNode = preferenceNode; + preferenceNode = newPreferenceNode; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_NODE, oldPreferenceNode, preferenceNode)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferenceProfile getPreferenceProfile() + { + if (eContainerFeatureID() != ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE) return null; + return (PreferenceProfile)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetPreferenceProfile(PreferenceProfile newPreferenceProfile, NotificationChain msgs) + { + msgs = eBasicSetContainer((InternalEObject)newPreferenceProfile, ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setPreferenceProfile(PreferenceProfile newPreferenceProfile) + { + if (newPreferenceProfile != eInternalContainer() || (eContainerFeatureID() != ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE && newPreferenceProfile != null)) + { + if (EcoreUtil.isAncestor(this, newPreferenceProfile)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newPreferenceProfile != null) + msgs = ((InternalEObject)newPreferenceProfile).eInverseAdd(this, ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS, PreferenceProfile.class, msgs); + msgs = basicSetPreferenceProfile(newPreferenceProfile, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE, newPreferenceProfile, newPreferenceProfile)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Pattern getInclusions() + { + return inclusions; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setInclusions(Pattern newInclusions) + { + Pattern oldInclusions = inclusions; + inclusions = newInclusions; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.PREFERENCE_FILTER__INCLUSIONS, oldInclusions, inclusions)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Pattern getExclusions() + { + return exclusions; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setExclusions(Pattern newExclusions) + { + Pattern oldExclusions = exclusions; + exclusions = newExclusions; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.PREFERENCE_FILTER__EXCLUSIONS, oldExclusions, exclusions)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public boolean matches(String value) + { + return getInclusions().matcher(value).matches() && !getExclusions().matcher(value).matches(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetPreferenceProfile((PreferenceProfile)otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE: + return basicSetPreferenceProfile(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) + { + switch (eContainerFeatureID()) + { + case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE: + return eInternalContainer().eInverseRemove(this, ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS, PreferenceProfile.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_NODE: + if (resolve) return getPreferenceNode(); + return basicGetPreferenceNode(); + case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE: + return getPreferenceProfile(); + case ProjectConfigPackage.PREFERENCE_FILTER__INCLUSIONS: + return getInclusions(); + case ProjectConfigPackage.PREFERENCE_FILTER__EXCLUSIONS: + return getExclusions(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_NODE: + setPreferenceNode((PreferenceNode)newValue); + return; + case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE: + setPreferenceProfile((PreferenceProfile)newValue); + return; + case ProjectConfigPackage.PREFERENCE_FILTER__INCLUSIONS: + setInclusions((Pattern)newValue); + return; + case ProjectConfigPackage.PREFERENCE_FILTER__EXCLUSIONS: + setExclusions((Pattern)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_NODE: + setPreferenceNode((PreferenceNode)null); + return; + case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE: + setPreferenceProfile((PreferenceProfile)null); + return; + case ProjectConfigPackage.PREFERENCE_FILTER__INCLUSIONS: + setInclusions(INCLUSIONS_EDEFAULT); + return; + case ProjectConfigPackage.PREFERENCE_FILTER__EXCLUSIONS: + setExclusions(EXCLUSIONS_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_NODE: + return preferenceNode != null; + case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE: + return getPreferenceProfile() != null; + case ProjectConfigPackage.PREFERENCE_FILTER__INCLUSIONS: + return INCLUSIONS_EDEFAULT == null ? inclusions != null : !INCLUSIONS_EDEFAULT.equals(inclusions); + case ProjectConfigPackage.PREFERENCE_FILTER__EXCLUSIONS: + return EXCLUSIONS_EDEFAULT == null ? exclusions != null : !EXCLUSIONS_EDEFAULT.equals(exclusions); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException + { + switch (operationID) + { + case ProjectConfigPackage.PREFERENCE_FILTER___MATCHES__STRING: + return matches((String)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (inclusions: "); + result.append(inclusions); + result.append(", exclusions: "); + result.append(exclusions); + result.append(')'); + return result.toString(); + } + +} // PreferenceFilterImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceProfileImpl.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceProfileImpl.java new file mode 100644 index 0000000000..ea07f383be --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceProfileImpl.java @@ -0,0 +1,498 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.impl; + +import org.eclipse.emf.cdo.releng.predicates.Predicate; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile; +import org.eclipse.emf.cdo.releng.projectconfig.Project; +import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import java.lang.reflect.InvocationTargetException; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Preference Profile</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl#getPreferenceFilters <em>Preference Filters</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl#getReferentProjects <em>Referent Projects</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl#getProject <em>Project</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl#getPredicates <em>Predicates</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl#getPrerequisites <em>Prerequisites</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class PreferenceProfileImpl extends MinimalEObjectImpl.Container implements PreferenceProfile +{ + /** + * The cached value of the '{@link #getPreferenceFilters() <em>Preference Filters</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPreferenceFilters() + * @generated + * @ordered + */ + protected EList<PreferenceFilter> preferenceFilters; + + /** + * The cached value of the '{@link #getReferentProjects() <em>Referent Projects</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getReferentProjects() + * @generated + * @ordered + */ + protected EList<Project> referentProjects; + + /** + * The default value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * The cached value of the '{@link #getPredicates() <em>Predicates</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPredicates() + * @generated + * @ordered + */ + protected EList<Predicate> predicates; + + /** + * The cached value of the '{@link #getPrerequisites() <em>Prerequisites</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPrerequisites() + * @generated + * @ordered + */ + protected EList<PreferenceProfile> prerequisites; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PreferenceProfileImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return ProjectConfigPackage.Literals.PREFERENCE_PROFILE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<PreferenceFilter> getPreferenceFilters() + { + if (preferenceFilters == null) + { + preferenceFilters = new EObjectContainmentWithInverseEList<PreferenceFilter>(PreferenceFilter.class, this, ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS, ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE); + } + return preferenceFilters; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<Project> getReferentProjects() + { + if (referentProjects == null) + { + referentProjects = new EObjectWithInverseResolvingEList.ManyInverse<Project>(Project.class, this, ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS, ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES); + } + return referentProjects; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() + { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.PREFERENCE_PROFILE__NAME, oldName, name)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Project getProject() + { + if (eContainerFeatureID() != ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT) return null; + return (Project)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetProject(Project newProject, NotificationChain msgs) + { + msgs = eBasicSetContainer((InternalEObject)newProject, ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setProject(Project newProject) + { + if (newProject != eInternalContainer() || (eContainerFeatureID() != ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT && newProject != null)) + { + if (EcoreUtil.isAncestor(this, newProject)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newProject != null) + msgs = ((InternalEObject)newProject).eInverseAdd(this, ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES, Project.class, msgs); + msgs = basicSetProject(newProject, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT, newProject, newProject)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<Predicate> getPredicates() + { + if (predicates == null) + { + predicates = new EObjectContainmentEList<Predicate>(Predicate.class, this, ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES); + } + return predicates; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<PreferenceProfile> getPrerequisites() + { + if (prerequisites == null) + { + prerequisites = new EObjectResolvingEList<PreferenceProfile>(PreferenceProfile.class, this, ProjectConfigPackage.PREFERENCE_PROFILE__PREREQUISITES); + } + return prerequisites; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public boolean requires(PreferenceProfile preferenceProfile) + { + return requires(new HashSet<PreferenceProfile>(), getPrerequisites(), preferenceProfile); + } + + private boolean requires(Set<PreferenceProfile> visited, List<PreferenceProfile> preferenceProfiles, + PreferenceProfile preferenceProfile) + { + for (PreferenceProfile requiredPreferenceProfile : preferenceProfiles) + { + if (requiredPreferenceProfile == preferenceProfile) + { + return true; + } + if (visited.add(requiredPreferenceProfile)) + { + requires(visited, requiredPreferenceProfile.getPrerequisites(), requiredPreferenceProfile); + } + } + return false; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getPreferenceFilters()).basicAdd(otherEnd, msgs); + case ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getReferentProjects()).basicAdd(otherEnd, msgs); + case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetProject((Project)otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS: + return ((InternalEList<?>)getPreferenceFilters()).basicRemove(otherEnd, msgs); + case ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS: + return ((InternalEList<?>)getReferentProjects()).basicRemove(otherEnd, msgs); + case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT: + return basicSetProject(null, msgs); + case ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES: + return ((InternalEList<?>)getPredicates()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) + { + switch (eContainerFeatureID()) + { + case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT: + return eInternalContainer().eInverseRemove(this, ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES, Project.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS: + return getPreferenceFilters(); + case ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS: + return getReferentProjects(); + case ProjectConfigPackage.PREFERENCE_PROFILE__NAME: + return getName(); + case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT: + return getProject(); + case ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES: + return getPredicates(); + case ProjectConfigPackage.PREFERENCE_PROFILE__PREREQUISITES: + return getPrerequisites(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS: + getPreferenceFilters().clear(); + getPreferenceFilters().addAll((Collection<? extends PreferenceFilter>)newValue); + return; + case ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS: + getReferentProjects().clear(); + getReferentProjects().addAll((Collection<? extends Project>)newValue); + return; + case ProjectConfigPackage.PREFERENCE_PROFILE__NAME: + setName((String)newValue); + return; + case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT: + setProject((Project)newValue); + return; + case ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES: + getPredicates().clear(); + getPredicates().addAll((Collection<? extends Predicate>)newValue); + return; + case ProjectConfigPackage.PREFERENCE_PROFILE__PREREQUISITES: + getPrerequisites().clear(); + getPrerequisites().addAll((Collection<? extends PreferenceProfile>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS: + getPreferenceFilters().clear(); + return; + case ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS: + getReferentProjects().clear(); + return; + case ProjectConfigPackage.PREFERENCE_PROFILE__NAME: + setName(NAME_EDEFAULT); + return; + case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT: + setProject((Project)null); + return; + case ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES: + getPredicates().clear(); + return; + case ProjectConfigPackage.PREFERENCE_PROFILE__PREREQUISITES: + getPrerequisites().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS: + return preferenceFilters != null && !preferenceFilters.isEmpty(); + case ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS: + return referentProjects != null && !referentProjects.isEmpty(); + case ProjectConfigPackage.PREFERENCE_PROFILE__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT: + return getProject() != null; + case ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES: + return predicates != null && !predicates.isEmpty(); + case ProjectConfigPackage.PREFERENCE_PROFILE__PREREQUISITES: + return prerequisites != null && !prerequisites.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException + { + switch (operationID) + { + case ProjectConfigPackage.PREFERENCE_PROFILE___REQUIRES__PREFERENCEPROFILE: + return requires((PreferenceProfile)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} // PreferenceProfileImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigFactoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigFactoryImpl.java new file mode 100644 index 0000000000..c5d526c2bb --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigFactoryImpl.java @@ -0,0 +1,200 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.impl; + +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile; +import org.eclipse.emf.cdo.releng.projectconfig.Project; +import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigFactory; +import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage; +import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.impl.EFactoryImpl; +import org.eclipse.emf.ecore.plugin.EcorePlugin; +import java.util.regex.Pattern; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Factory</b>. + * <!-- end-user-doc --> + * @generated + */ +public class ProjectConfigFactoryImpl extends EFactoryImpl implements ProjectConfigFactory +{ + /** + * Creates the default factory implementation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static ProjectConfigFactory init() + { + try + { + ProjectConfigFactory theProjectConfigFactory = (ProjectConfigFactory)EPackage.Registry.INSTANCE.getEFactory(ProjectConfigPackage.eNS_URI); + if (theProjectConfigFactory != null) + { + return theProjectConfigFactory; + } + } + catch (Exception exception) + { + EcorePlugin.INSTANCE.log(exception); + } + return new ProjectConfigFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ProjectConfigFactoryImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EObject create(EClass eClass) + { + switch (eClass.getClassifierID()) + { + case ProjectConfigPackage.WORKSPACE_CONFIGURATION: return createWorkspaceConfiguration(); + case ProjectConfigPackage.PROJECT: return createProject(); + case ProjectConfigPackage.PREFERENCE_PROFILE: return createPreferenceProfile(); + case ProjectConfigPackage.PREFERENCE_FILTER: return createPreferenceFilter(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object createFromString(EDataType eDataType, String initialValue) + { + switch (eDataType.getClassifierID()) + { + case ProjectConfigPackage.PATTERN: + return createPatternFromString(eDataType, initialValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String convertToString(EDataType eDataType, Object instanceValue) + { + switch (eDataType.getClassifierID()) + { + case ProjectConfigPackage.PATTERN: + return convertPatternToString(eDataType, instanceValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public WorkspaceConfiguration createWorkspaceConfiguration() + { + WorkspaceConfigurationImpl workspaceConfiguration = new WorkspaceConfigurationImpl(); + return workspaceConfiguration; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Project createProject() + { + ProjectImpl project = new ProjectImpl(); + return project; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferenceProfile createPreferenceProfile() + { + PreferenceProfileImpl preferenceProfile = new PreferenceProfileImpl(); + return preferenceProfile; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferenceFilter createPreferenceFilter() + { + PreferenceFilterImpl preferenceFilter = new PreferenceFilterImpl(); + return preferenceFilter; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public Pattern createPatternFromString(EDataType eDataType, String initialValue) + { + return initialValue == null ? null : Pattern.compile(initialValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public String convertPatternToString(EDataType eDataType, Object instanceValue) + { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ProjectConfigPackage getProjectConfigPackage() + { + return (ProjectConfigPackage)getEPackage(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @deprecated + * @generated + */ + @Deprecated + public static ProjectConfigPackage getPackage() + { + return ProjectConfigPackage.eINSTANCE; + } + +} // ProjectConfigFactoryImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigPackageImpl.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigPackageImpl.java new file mode 100644 index 0000000000..d2139a7f74 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigPackageImpl.java @@ -0,0 +1,567 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.impl; + +import java.util.regex.Pattern; +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; +import org.eclipse.emf.cdo.releng.preferences.PreferencesPackage; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile; +import org.eclipse.emf.cdo.releng.projectconfig.Project; +import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigFactory; +import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage; +import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration; +import org.eclipse.emf.cdo.releng.projectconfig.util.ProjectConfigValidator; +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EValidator; +import org.eclipse.emf.ecore.impl.EPackageImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Package</b>. + * <!-- end-user-doc --> + * @generated + */ +public class ProjectConfigPackageImpl extends EPackageImpl implements ProjectConfigPackage +{ + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass workspaceConfigurationEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass projectEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass preferenceProfileEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass preferenceFilterEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EDataType patternEDataType = null; + + /** + * Creates an instance of the model <b>Package</b>, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + * <p>Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#eNS_URI + * @see #init() + * @generated + */ + private ProjectConfigPackageImpl() + { + super(eNS_URI, ProjectConfigFactory.eINSTANCE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. + * + * <p>This method is used to initialize {@link ProjectConfigPackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static ProjectConfigPackage init() + { + if (isInited) return (ProjectConfigPackage)EPackage.Registry.INSTANCE.getEPackage(ProjectConfigPackage.eNS_URI); + + // Obtain or create and register package + ProjectConfigPackageImpl theProjectConfigPackage = (ProjectConfigPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ProjectConfigPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ProjectConfigPackageImpl()); + + isInited = true; + + // Initialize simple dependencies + PredicatesPackage.eINSTANCE.eClass(); + PreferencesPackage.eINSTANCE.eClass(); + + // Create package meta-data objects + theProjectConfigPackage.createPackageContents(); + + // Initialize created meta-data + theProjectConfigPackage.initializePackageContents(); + + // Register package validator + EValidator.Registry.INSTANCE.put + (theProjectConfigPackage, + new EValidator.Descriptor() + { + public EValidator getEValidator() + { + return ProjectConfigValidator.INSTANCE; + } + }); + + // Mark meta-data to indicate it can't be changed + theProjectConfigPackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(ProjectConfigPackage.eNS_URI, theProjectConfigPackage); + return theProjectConfigPackage; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getWorkspaceConfiguration() + { + return workspaceConfigurationEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getWorkspaceConfiguration_Projects() + { + return (EReference)workspaceConfigurationEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getWorkspaceConfiguration_DefaultPreferenceNode() + { + return (EReference)workspaceConfigurationEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getWorkspaceConfiguration_InstancePreferenceNode() + { + return (EReference)workspaceConfigurationEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EOperation getWorkspaceConfiguration__ApplyPreferenceProfiles() + { + return workspaceConfigurationEClass.getEOperations().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EOperation getWorkspaceConfiguration__UpdatePreferenceProfileReferences() + { + return workspaceConfigurationEClass.getEOperations().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getProject() + { + return projectEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getProject_Configuration() + { + return (EReference)projectEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getProject_PreferenceProfiles() + { + return (EReference)projectEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getProject_PreferenceNode() + { + return (EReference)projectEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getProject_PreferenceProfileReferences() + { + return (EReference)projectEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getPreferenceProfile() + { + return preferenceProfileEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getPreferenceProfile_PreferenceFilters() + { + return (EReference)preferenceProfileEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getPreferenceProfile_ReferentProjects() + { + return (EReference)preferenceProfileEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getPreferenceProfile_Name() + { + return (EAttribute)preferenceProfileEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getPreferenceProfile_Project() + { + return (EReference)preferenceProfileEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getPreferenceProfile_Predicates() + { + return (EReference)preferenceProfileEClass.getEStructuralFeatures().get(4); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getPreferenceProfile_Prerequisites() + { + return (EReference)preferenceProfileEClass.getEStructuralFeatures().get(5); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EOperation getPreferenceProfile__Requires__PreferenceProfile() + { + return preferenceProfileEClass.getEOperations().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getPreferenceFilter() + { + return preferenceFilterEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getPreferenceFilter_PreferenceNode() + { + return (EReference)preferenceFilterEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getPreferenceFilter_PreferenceProfile() + { + return (EReference)preferenceFilterEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getPreferenceFilter_Inclusions() + { + return (EAttribute)preferenceFilterEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getPreferenceFilter_Exclusions() + { + return (EAttribute)preferenceFilterEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EOperation getPreferenceFilter__Matches__String() + { + return preferenceFilterEClass.getEOperations().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EDataType getPattern() + { + return patternEDataType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ProjectConfigFactory getProjectConfigFactory() + { + return (ProjectConfigFactory)getEFactoryInstance(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createPackageContents() + { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + workspaceConfigurationEClass = createEClass(WORKSPACE_CONFIGURATION); + createEReference(workspaceConfigurationEClass, WORKSPACE_CONFIGURATION__PROJECTS); + createEReference(workspaceConfigurationEClass, WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE); + createEReference(workspaceConfigurationEClass, WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE); + createEOperation(workspaceConfigurationEClass, WORKSPACE_CONFIGURATION___APPLY_PREFERENCE_PROFILES); + createEOperation(workspaceConfigurationEClass, WORKSPACE_CONFIGURATION___UPDATE_PREFERENCE_PROFILE_REFERENCES); + + projectEClass = createEClass(PROJECT); + createEReference(projectEClass, PROJECT__CONFIGURATION); + createEReference(projectEClass, PROJECT__PREFERENCE_PROFILES); + createEReference(projectEClass, PROJECT__PREFERENCE_NODE); + createEReference(projectEClass, PROJECT__PREFERENCE_PROFILE_REFERENCES); + + preferenceProfileEClass = createEClass(PREFERENCE_PROFILE); + createEReference(preferenceProfileEClass, PREFERENCE_PROFILE__PREFERENCE_FILTERS); + createEReference(preferenceProfileEClass, PREFERENCE_PROFILE__REFERENT_PROJECTS); + createEAttribute(preferenceProfileEClass, PREFERENCE_PROFILE__NAME); + createEReference(preferenceProfileEClass, PREFERENCE_PROFILE__PROJECT); + createEReference(preferenceProfileEClass, PREFERENCE_PROFILE__PREDICATES); + createEReference(preferenceProfileEClass, PREFERENCE_PROFILE__PREREQUISITES); + createEOperation(preferenceProfileEClass, PREFERENCE_PROFILE___REQUIRES__PREFERENCEPROFILE); + + preferenceFilterEClass = createEClass(PREFERENCE_FILTER); + createEReference(preferenceFilterEClass, PREFERENCE_FILTER__PREFERENCE_NODE); + createEReference(preferenceFilterEClass, PREFERENCE_FILTER__PREFERENCE_PROFILE); + createEAttribute(preferenceFilterEClass, PREFERENCE_FILTER__INCLUSIONS); + createEAttribute(preferenceFilterEClass, PREFERENCE_FILTER__EXCLUSIONS); + createEOperation(preferenceFilterEClass, PREFERENCE_FILTER___MATCHES__STRING); + + // Create data types + patternEDataType = createEDataType(PATTERN); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void initializePackageContents() + { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Obtain other dependent packages + PreferencesPackage thePreferencesPackage = (PreferencesPackage)EPackage.Registry.INSTANCE.getEPackage(PreferencesPackage.eNS_URI); + PredicatesPackage thePredicatesPackage = (PredicatesPackage)EPackage.Registry.INSTANCE.getEPackage(PredicatesPackage.eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + + // Initialize classes, features, and operations; add parameters + initEClass(workspaceConfigurationEClass, WorkspaceConfiguration.class, "WorkspaceConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getWorkspaceConfiguration_Projects(), this.getProject(), this.getProject_Configuration(), "projects", null, 0, -1, WorkspaceConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getWorkspaceConfiguration_DefaultPreferenceNode(), thePreferencesPackage.getPreferenceNode(), null, "defaultPreferenceNode", null, 1, 1, WorkspaceConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getWorkspaceConfiguration_InstancePreferenceNode(), thePreferencesPackage.getPreferenceNode(), null, "instancePreferenceNode", null, 1, 1, WorkspaceConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEOperation(getWorkspaceConfiguration__ApplyPreferenceProfiles(), null, "applyPreferenceProfiles", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEOperation(getWorkspaceConfiguration__UpdatePreferenceProfileReferences(), null, "updatePreferenceProfileReferences", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(projectEClass, Project.class, "Project", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getProject_Configuration(), this.getWorkspaceConfiguration(), this.getWorkspaceConfiguration_Projects(), "configuration", null, 1, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getProject_PreferenceProfiles(), this.getPreferenceProfile(), this.getPreferenceProfile_Project(), "preferenceProfiles", null, 0, -1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getProject_PreferenceNode(), thePreferencesPackage.getPreferenceNode(), null, "preferenceNode", null, 1, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getProject_PreferenceProfileReferences(), this.getPreferenceProfile(), this.getPreferenceProfile_ReferentProjects(), "preferenceProfileReferences", null, 0, -1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(preferenceProfileEClass, PreferenceProfile.class, "PreferenceProfile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getPreferenceProfile_PreferenceFilters(), this.getPreferenceFilter(), this.getPreferenceFilter_PreferenceProfile(), "preferenceFilters", null, 0, -1, PreferenceProfile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getPreferenceProfile_ReferentProjects(), this.getProject(), this.getProject_PreferenceProfileReferences(), "referentProjects", null, 0, -1, PreferenceProfile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getPreferenceProfile_Name(), ecorePackage.getEString(), "name", null, 1, 1, PreferenceProfile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getPreferenceProfile_Project(), this.getProject(), this.getProject_PreferenceProfiles(), "project", null, 0, 1, PreferenceProfile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getPreferenceProfile_Predicates(), thePredicatesPackage.getPredicate(), null, "predicates", null, 0, -1, PreferenceProfile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getPreferenceProfile_Prerequisites(), this.getPreferenceProfile(), null, "prerequisites", null, 0, -1, PreferenceProfile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + EOperation op = initEOperation(getPreferenceProfile__Requires__PreferenceProfile(), ecorePackage.getEBoolean(), "requires", 0, 1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getPreferenceProfile(), "preferenceProfile", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(preferenceFilterEClass, PreferenceFilter.class, "PreferenceFilter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getPreferenceFilter_PreferenceNode(), thePreferencesPackage.getPreferenceNode(), null, "preferenceNode", null, 1, 1, PreferenceFilter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getPreferenceFilter_PreferenceProfile(), this.getPreferenceProfile(), this.getPreferenceProfile_PreferenceFilters(), "preferenceProfile", null, 1, 1, PreferenceFilter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getPreferenceFilter_Inclusions(), this.getPattern(), "inclusions", ".*", 1, 1, PreferenceFilter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getPreferenceFilter_Exclusions(), this.getPattern(), "exclusions", "", 1, 1, PreferenceFilter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + op = initEOperation(getPreferenceFilter__Matches__String(), ecorePackage.getEBoolean(), "matches", 0, 1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, ecorePackage.getEString(), "value", 0, 1, IS_UNIQUE, IS_ORDERED); + + // Initialize data types + initEDataType(patternEDataType, Pattern.class, "Pattern", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); + + // Create resource + createResource(eNS_URI); + + // Create annotations + // http://www.eclipse.org/emf/2002/Ecore + createEcoreAnnotations(); + } + + /** + * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/Ecore</b>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void createEcoreAnnotations() + { + String source = "http://www.eclipse.org/emf/2002/Ecore"; + addAnnotation + (projectEClass, + source, + new String[] + { + "constraints", "AllPreferencesManaged" + }); + } + +} //ProjectConfigPackageImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigPlugin.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigPlugin.java new file mode 100644 index 0000000000..2c9f0706cf --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigPlugin.java @@ -0,0 +1,93 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.impl; + +import org.eclipse.emf.common.EMFPlugin; + +import org.eclipse.emf.common.util.ResourceLocator; + +/** + * This is the central singleton for the Project Config model plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public final class ProjectConfigPlugin extends EMFPlugin +{ + /** + * Keep track of the singleton. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final ProjectConfigPlugin INSTANCE = new ProjectConfigPlugin(); + + /** + * Keep track of the singleton. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static Implementation plugin; + + /** + * Create the instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ProjectConfigPlugin() + { + super(new ResourceLocator [] {}); + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the singleton instance. + * @generated + */ + @Override + public ResourceLocator getPluginResourceLocator() + { + return plugin; + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the singleton instance. + * @generated + */ + public static Implementation getPlugin() + { + return plugin; + } + + /** + * The actual implementation of the Eclipse <b>Plugin</b>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static class Implementation extends EclipsePlugin + { + /** + * Creates an instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Implementation() + { + super(); + + // Remember the static instance. + // + plugin = this; + } + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigURIHandlerImpl.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigURIHandlerImpl.java new file mode 100644 index 0000000000..e942706a49 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigURIHandlerImpl.java @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.projectconfig.impl; + +import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration; +import org.eclipse.emf.cdo.releng.projectconfig.util.ProjectConfigUtil; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.URIConverter; +import org.eclipse.emf.ecore.resource.impl.URIHandlerImpl; + +import org.osgi.service.prefs.BackingStoreException; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.Collections; +import java.util.Map; + +/** + * @author Eike Stepper + */ +public class ProjectConfigURIHandlerImpl extends URIHandlerImpl +{ + @Override + public boolean canHandle(URI uri) + { + return ProjectConfigUtil.PROJECT_CONFIG_SCHEME.equals(uri.scheme()); + } + + @Override + public InputStream createInputStream(URI uri, final Map<?, ?> options) throws IOException + { + if (uri.segmentCount() == 1) + { + class ProjectConfigInput extends InputStream implements URIConverter.Loadable + { + private InputStream in; + + public void loadResource(Resource resource) throws IOException + { + resource.getContents().addAll(ProjectConfigUtil.getWorkspaceConfiguration().eResource().getContents()); + } + + @Override + public int read() throws IOException + { + if (in == null) + { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + ProjectConfigUtil.getWorkspaceConfiguration().eResource().save(out, null); + in = new ByteArrayInputStream(out.toByteArray()); + } + return in.read(); + } + } + + return new ProjectConfigInput(); + } + throw new IOException("No preference value available for "); + } + + @Override + public OutputStream createOutputStream(URI uri, Map<?, ?> options) throws IOException + { + if (uri.segmentCount() == 1) + { + class ProjectConfigOutput extends OutputStream implements URIConverter.Saveable + { + public void saveResource(Resource resource) throws IOException + { + try + { + ProjectConfigUtil.saveWorkspaceConfiguration((WorkspaceConfiguration)resource.getContents().get(0)); + } + catch (BackingStoreException ex) + { + throw new IOException(ex); + } + } + + @Override + public void write(int b) throws IOException + { + throw new IOException("Write not supported"); + } + } + + return new ProjectConfigOutput(); + } + throw new IOException("Output not supported"); + } + + @Override + public void delete(URI uri, Map<?, ?> options) throws IOException + { + throw new IOException("Delete not supported"); + } + + @Override + public boolean exists(URI uri, Map<?, ?> options) + { + // TODO + return false; + } + + @Override + public Map<String, ?> getAttributes(URI uri, Map<?, ?> options) + { + return Collections.emptyMap(); + } + + @Override + public void setAttributes(URI uri, Map<String, ?> attributes, Map<?, ?> options) throws IOException + { + // Do nothing. + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectImpl.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectImpl.java new file mode 100644 index 0000000000..4ad8ad4f18 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectImpl.java @@ -0,0 +1,410 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.impl; + +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile; +import org.eclipse.emf.cdo.releng.projectconfig.Project; +import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage; +import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.util.InternalEList; + +import java.util.Collection; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Project</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectImpl#getConfiguration <em>Configuration</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectImpl#getPreferenceProfiles <em>Preference Profiles</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectImpl#getPreferenceNode <em>Preference Node</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectImpl#getPreferenceProfileReferences <em>Preference Profile References</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class ProjectImpl extends MinimalEObjectImpl.Container implements Project +{ + /** + * The cached value of the '{@link #getPreferenceProfiles() <em>Preference Profiles</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPreferenceProfiles() + * @generated + * @ordered + */ + protected EList<PreferenceProfile> preferenceProfiles; + + /** + * The cached value of the '{@link #getPreferenceNode() <em>Preference Node</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPreferenceNode() + * @generated + * @ordered + */ + protected PreferenceNode preferenceNode; + + /** + * The cached value of the '{@link #getPreferenceProfileReferences() <em>Preference Profile References</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPreferenceProfileReferences() + * @generated + * @ordered + */ + protected EList<PreferenceProfile> preferenceProfileReferences; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ProjectImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return ProjectConfigPackage.Literals.PROJECT; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public WorkspaceConfiguration getConfiguration() + { + if (eContainerFeatureID() != ProjectConfigPackage.PROJECT__CONFIGURATION) return null; + return (WorkspaceConfiguration)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetConfiguration(WorkspaceConfiguration newConfiguration, NotificationChain msgs) + { + msgs = eBasicSetContainer((InternalEObject)newConfiguration, ProjectConfigPackage.PROJECT__CONFIGURATION, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setConfiguration(WorkspaceConfiguration newConfiguration) + { + if (newConfiguration != eInternalContainer() || (eContainerFeatureID() != ProjectConfigPackage.PROJECT__CONFIGURATION && newConfiguration != null)) + { + if (EcoreUtil.isAncestor(this, newConfiguration)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newConfiguration != null) + msgs = ((InternalEObject)newConfiguration).eInverseAdd(this, ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS, WorkspaceConfiguration.class, msgs); + msgs = basicSetConfiguration(newConfiguration, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.PROJECT__CONFIGURATION, newConfiguration, newConfiguration)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<PreferenceProfile> getPreferenceProfiles() + { + if (preferenceProfiles == null) + { + preferenceProfiles = new EObjectContainmentWithInverseEList<PreferenceProfile>(PreferenceProfile.class, this, ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES, ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT); + } + return preferenceProfiles; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferenceNode getPreferenceNode() + { + if (preferenceNode != null && preferenceNode.eIsProxy()) + { + InternalEObject oldPreferenceNode = (InternalEObject)preferenceNode; + preferenceNode = (PreferenceNode)eResolveProxy(oldPreferenceNode); + if (preferenceNode != oldPreferenceNode) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProjectConfigPackage.PROJECT__PREFERENCE_NODE, oldPreferenceNode, preferenceNode)); + } + } + return preferenceNode; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferenceNode basicGetPreferenceNode() + { + return preferenceNode; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setPreferenceNode(PreferenceNode newPreferenceNode) + { + PreferenceNode oldPreferenceNode = preferenceNode; + preferenceNode = newPreferenceNode; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.PROJECT__PREFERENCE_NODE, oldPreferenceNode, preferenceNode)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<PreferenceProfile> getPreferenceProfileReferences() + { + if (preferenceProfileReferences == null) + { + preferenceProfileReferences = new EObjectWithInverseResolvingEList.ManyInverse<PreferenceProfile>(PreferenceProfile.class, this, ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES, ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS); + } + return preferenceProfileReferences; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case ProjectConfigPackage.PROJECT__CONFIGURATION: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetConfiguration((WorkspaceConfiguration)otherEnd, msgs); + case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getPreferenceProfiles()).basicAdd(otherEnd, msgs); + case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getPreferenceProfileReferences()).basicAdd(otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case ProjectConfigPackage.PROJECT__CONFIGURATION: + return basicSetConfiguration(null, msgs); + case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES: + return ((InternalEList<?>)getPreferenceProfiles()).basicRemove(otherEnd, msgs); + case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES: + return ((InternalEList<?>)getPreferenceProfileReferences()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) + { + switch (eContainerFeatureID()) + { + case ProjectConfigPackage.PROJECT__CONFIGURATION: + return eInternalContainer().eInverseRemove(this, ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS, WorkspaceConfiguration.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case ProjectConfigPackage.PROJECT__CONFIGURATION: + return getConfiguration(); + case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES: + return getPreferenceProfiles(); + case ProjectConfigPackage.PROJECT__PREFERENCE_NODE: + if (resolve) return getPreferenceNode(); + return basicGetPreferenceNode(); + case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES: + return getPreferenceProfileReferences(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case ProjectConfigPackage.PROJECT__CONFIGURATION: + setConfiguration((WorkspaceConfiguration)newValue); + return; + case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES: + getPreferenceProfiles().clear(); + getPreferenceProfiles().addAll((Collection<? extends PreferenceProfile>)newValue); + return; + case ProjectConfigPackage.PROJECT__PREFERENCE_NODE: + setPreferenceNode((PreferenceNode)newValue); + return; + case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES: + getPreferenceProfileReferences().clear(); + getPreferenceProfileReferences().addAll((Collection<? extends PreferenceProfile>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case ProjectConfigPackage.PROJECT__CONFIGURATION: + setConfiguration((WorkspaceConfiguration)null); + return; + case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES: + getPreferenceProfiles().clear(); + return; + case ProjectConfigPackage.PROJECT__PREFERENCE_NODE: + setPreferenceNode((PreferenceNode)null); + return; + case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES: + getPreferenceProfileReferences().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case ProjectConfigPackage.PROJECT__CONFIGURATION: + return getConfiguration() != null; + case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES: + return preferenceProfiles != null && !preferenceProfiles.isEmpty(); + case ProjectConfigPackage.PROJECT__PREFERENCE_NODE: + return preferenceNode != null; + case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES: + return preferenceProfileReferences != null && !preferenceProfileReferences.isEmpty(); + } + return super.eIsSet(featureID); + } + + @Override + public String eURIFragmentSegment(EStructuralFeature eStructuralFeature, EObject eObject) + { + if (eStructuralFeature == ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILES) + { + PreferenceProfile child = (PreferenceProfile)eObject; + String name = child.getName(); + if (name != null) + { + String encodedName = URI.encodeSegment(name, false); + if (encodedName.startsWith("@")) + { + encodedName = "%40" + encodedName.substring(1); + } + return encodedName; + } + } + + return super.eURIFragmentSegment(eStructuralFeature, eObject); + } + + @Override + public EObject eObjectForURIFragmentSegment(String uriFragmentSegment) + { + if (!uriFragmentSegment.startsWith("@")) + { + String preferenceProfileName = URI.decode(uriFragmentSegment); + for (PreferenceProfile preferenceProfile : getPreferenceProfiles()) + { + if (preferenceProfileName.equals(preferenceProfile.getName())) + { + return preferenceProfile; + } + } + return null; + } + return super.eObjectForURIFragmentSegment(uriFragmentSegment); + } +} // ProjectImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/WorkspaceConfigurationImpl.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/WorkspaceConfigurationImpl.java new file mode 100644 index 0000000000..3004290775 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/WorkspaceConfigurationImpl.java @@ -0,0 +1,535 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.impl; + +import org.eclipse.emf.cdo.releng.predicates.Predicate; +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; +import org.eclipse.emf.cdo.releng.preferences.util.PreferencesUtil; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile; +import org.eclipse.emf.cdo.releng.projectconfig.Project; +import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage; +import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; + +import org.osgi.service.prefs.BackingStoreException; +import org.osgi.service.prefs.Preferences; + +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Comparator; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Workspace Configuration</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.WorkspaceConfigurationImpl#getProjects <em>Projects</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.WorkspaceConfigurationImpl#getDefaultPreferenceNode <em>Default Preference Node</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.WorkspaceConfigurationImpl#getInstancePreferenceNode <em>Instance Preference Node</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class WorkspaceConfigurationImpl extends MinimalEObjectImpl.Container implements WorkspaceConfiguration +{ + private static final IWorkspaceRoot WORKSPACE_ROOT = ResourcesPlugin.getWorkspace().getRoot(); + + /** + * The cached value of the '{@link #getProjects() <em>Projects</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getProjects() + * @generated + * @ordered + */ + protected EList<Project> projects; + + /** + * The cached value of the '{@link #getDefaultPreferenceNode() <em>Default Preference Node</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getDefaultPreferenceNode() + * @generated + * @ordered + */ + protected PreferenceNode defaultPreferenceNode; + + /** + * The cached value of the '{@link #getInstancePreferenceNode() <em>Instance Preference Node</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getInstancePreferenceNode() + * @generated + * @ordered + */ + protected PreferenceNode instancePreferenceNode; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected WorkspaceConfigurationImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return ProjectConfigPackage.Literals.WORKSPACE_CONFIGURATION; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<Project> getProjects() + { + if (projects == null) + { + projects = new EObjectContainmentWithInverseEList<Project>(Project.class, this, ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS, ProjectConfigPackage.PROJECT__CONFIGURATION); + } + return projects; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferenceNode getDefaultPreferenceNode() + { + if (defaultPreferenceNode != null && defaultPreferenceNode.eIsProxy()) + { + InternalEObject oldDefaultPreferenceNode = (InternalEObject)defaultPreferenceNode; + defaultPreferenceNode = (PreferenceNode)eResolveProxy(oldDefaultPreferenceNode); + if (defaultPreferenceNode != oldDefaultPreferenceNode) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProjectConfigPackage.WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE, oldDefaultPreferenceNode, defaultPreferenceNode)); + } + } + return defaultPreferenceNode; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferenceNode basicGetDefaultPreferenceNode() + { + return defaultPreferenceNode; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setDefaultPreferenceNode(PreferenceNode newDefaultPreferenceNode) + { + PreferenceNode oldDefaultPreferenceNode = defaultPreferenceNode; + defaultPreferenceNode = newDefaultPreferenceNode; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE, oldDefaultPreferenceNode, defaultPreferenceNode)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferenceNode getInstancePreferenceNode() + { + if (instancePreferenceNode != null && instancePreferenceNode.eIsProxy()) + { + InternalEObject oldInstancePreferenceNode = (InternalEObject)instancePreferenceNode; + instancePreferenceNode = (PreferenceNode)eResolveProxy(oldInstancePreferenceNode); + if (instancePreferenceNode != oldInstancePreferenceNode) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProjectConfigPackage.WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE, oldInstancePreferenceNode, instancePreferenceNode)); + } + } + return instancePreferenceNode; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PreferenceNode basicGetInstancePreferenceNode() + { + return instancePreferenceNode; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setInstancePreferenceNode(PreferenceNode newInstancePreferenceNode) + { + PreferenceNode oldInstancePreferenceNode = instancePreferenceNode; + instancePreferenceNode = newInstancePreferenceNode; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE, oldInstancePreferenceNode, instancePreferenceNode)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public void applyPreferenceProfiles() + { + for (Project project : getProjects()) + { + try + { + Preferences projectPreferences = PreferencesUtil.getPreferences(project.getPreferenceNode(), true); + + Set<Preferences> clearedPreferences = new HashSet<Preferences>(); + for (PreferenceProfile preferenceProfile : project.getPreferenceProfileReferences()) + { + if (preferenceProfile.getProject() != project) + { + for (PreferenceFilter preferenceFilter : preferenceProfile.getPreferenceFilters()) + { + PreferenceNode preferenceNode = preferenceFilter.getPreferenceNode(); + try + { + Preferences sourcePreferences = PreferencesUtil.getPreferences(preferenceNode, true); + if (projectPreferences == null) + { + projectPreferences = PreferencesUtil.getPreferences(project.getPreferenceNode(), true); + } + Preferences targetPreferences = projectPreferences.node(sourcePreferences.name()); + if (clearedPreferences.add(targetPreferences)) + { + targetPreferences.clear(); + } + for (String key : sourcePreferences.keys()) + { + if (preferenceFilter.matches(key)) + { + targetPreferences.put(key, sourcePreferences.get(key, null)); + } + } + } + catch (BackingStoreException ex) + { + ex.printStackTrace(); + } + } + } + } + + if (!clearedPreferences.isEmpty()) + { + for (Preferences preferences : clearedPreferences) + { + if (preferences.keys().length == 0) + { + preferences.removeNode(); + } + } + + projectPreferences.flush(); + } + } + catch (BackingStoreException ex1) + { + ex1.printStackTrace(); + } + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public void updatePreferenceProfileReferences() + { + boolean sort = false; + for (Project project : getProjects()) + { + for (PreferenceProfile preferenceProfile : project.getPreferenceProfiles()) + { + if (!preferenceProfile.getPrerequisites().isEmpty()) + { + sort = true; + } + + EList<Predicate> predicates = preferenceProfile.getPredicates(); + if (!predicates.isEmpty()) + { + List<Project> referents = new ArrayList<Project>(); + for (Predicate predicate : predicates) + { + for (Project referencedProject : getProjects()) + { + IProject iProject = WORKSPACE_ROOT.getProject(referencedProject.getPreferenceNode().getName()); + if (iProject.isAccessible()) + { + if (predicate.matches(iProject)) + { + referents.add(referencedProject); + } + } + } + } + ECollections.setEList(preferenceProfile.getReferentProjects(), referents); + } + } + } + + if (sort) + { + for (Project project : getProjects()) + { + ECollections.sort(project.getPreferenceProfileReferences(), new Comparator<PreferenceProfile>() + { + public int compare(PreferenceProfile p1, PreferenceProfile p2) + { + if (p2.requires(p1)) + { + if (!p1.requires(p2)) + { + return -1; + } + } + else if (p1.requires(p2)) + { + return 1; + } + return p1.getName().compareTo(p2.getName()); + } + }); + } + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getProjects()).basicAdd(otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS: + return ((InternalEList<?>)getProjects()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS: + return getProjects(); + case ProjectConfigPackage.WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE: + if (resolve) return getDefaultPreferenceNode(); + return basicGetDefaultPreferenceNode(); + case ProjectConfigPackage.WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE: + if (resolve) return getInstancePreferenceNode(); + return basicGetInstancePreferenceNode(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS: + getProjects().clear(); + getProjects().addAll((Collection<? extends Project>)newValue); + return; + case ProjectConfigPackage.WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE: + setDefaultPreferenceNode((PreferenceNode)newValue); + return; + case ProjectConfigPackage.WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE: + setInstancePreferenceNode((PreferenceNode)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS: + getProjects().clear(); + return; + case ProjectConfigPackage.WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE: + setDefaultPreferenceNode((PreferenceNode)null); + return; + case ProjectConfigPackage.WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE: + setInstancePreferenceNode((PreferenceNode)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS: + return projects != null && !projects.isEmpty(); + case ProjectConfigPackage.WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE: + return defaultPreferenceNode != null; + case ProjectConfigPackage.WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE: + return instancePreferenceNode != null; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException + { + switch (operationID) + { + case ProjectConfigPackage.WORKSPACE_CONFIGURATION___APPLY_PREFERENCE_PROFILES: + applyPreferenceProfiles(); + return null; + case ProjectConfigPackage.WORKSPACE_CONFIGURATION___UPDATE_PREFERENCE_PROFILE_REFERENCES: + updatePreferenceProfileReferences(); + return null; + } + return super.eInvoke(operationID, arguments); + } + + @Override + public String eURIFragmentSegment(EStructuralFeature eStructuralFeature, EObject eObject) + { + if (eStructuralFeature == ProjectConfigPackage.Literals.WORKSPACE_CONFIGURATION__PROJECTS) + { + Project child = (Project)eObject; + PreferenceNode preferenceNode = child.getPreferenceNode(); + if (preferenceNode != null) + { + String name = preferenceNode.getName(); + if (name != null) + { + String encodedName = URI.encodeSegment(name, false); + if (encodedName.startsWith("@")) + { + encodedName = "%40" + encodedName.substring(1); + } + return name; + } + } + } + + return super.eURIFragmentSegment(eStructuralFeature, eObject); + } + + @Override + public EObject eObjectForURIFragmentSegment(String uriFragmentSegment) + { + if (!uriFragmentSegment.startsWith("@")) + { + String preferenceNodeName = URI.decode(uriFragmentSegment); + for (Project project : getProjects()) + { + PreferenceNode preferenceNode = project.getPreferenceNode(); + if (preferenceNode != null && preferenceNodeName.equals(preferenceNode.getName())) + { + return project; + } + } + return null; + } + return super.eObjectForURIFragmentSegment(uriFragmentSegment); + } + +} // WorkspaceConfigurationImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigAdapterFactory.java new file mode 100644 index 0000000000..53864c39b3 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigAdapterFactory.java @@ -0,0 +1,192 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.util; + +import org.eclipse.emf.cdo.releng.projectconfig.*; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * The <b>Adapter Factory</b> for the model. + * It provides an adapter <code>createXXX</code> method for each class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage + * @generated + */ +public class ProjectConfigAdapterFactory extends AdapterFactoryImpl +{ + /** + * The cached model package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static ProjectConfigPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ProjectConfigAdapterFactory() + { + if (modelPackage == null) + { + modelPackage = ProjectConfigPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * <!-- begin-user-doc --> + * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model. + * <!-- end-user-doc --> + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) + { + if (object == modelPackage) + { + return true; + } + if (object instanceof EObject) + { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch that delegates to the <code>createXXX</code> methods. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ProjectConfigSwitch<Adapter> modelSwitch = + new ProjectConfigSwitch<Adapter>() + { + @Override + public Adapter caseWorkspaceConfiguration(WorkspaceConfiguration object) + { + return createWorkspaceConfigurationAdapter(); + } + @Override + public Adapter caseProject(Project object) + { + return createProjectAdapter(); + } + @Override + public Adapter casePreferenceProfile(PreferenceProfile object) + { + return createPreferenceProfileAdapter(); + } + @Override + public Adapter casePreferenceFilter(PreferenceFilter object) + { + return createPreferenceFilterAdapter(); + } + @Override + public Adapter defaultCase(EObject object) + { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the <code>target</code>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param target the object to adapt. + * @return the adapter for the <code>target</code>. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) + { + return modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration <em>Workspace Configuration</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration + * @generated + */ + public Adapter createWorkspaceConfigurationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.projectconfig.Project <em>Project</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.projectconfig.Project + * @generated + */ + public Adapter createProjectAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile <em>Preference Profile</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile + * @generated + */ + public Adapter createPreferenceProfileAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter <em>Preference Filter</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter + * @generated + */ + public Adapter createPreferenceFilterAdapter() + { + return null; + } + + /** + * Creates a new adapter for the default case. + * <!-- begin-user-doc --> + * This default implementation returns null. + * <!-- end-user-doc --> + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() + { + return null; + } + +} //ProjectConfigAdapterFactory diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigSwitch.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigSwitch.java new file mode 100644 index 0000000000..682c554cd5 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigSwitch.java @@ -0,0 +1,188 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.util; + +import org.eclipse.emf.cdo.releng.projectconfig.*; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.util.Switch; + +/** + * <!-- begin-user-doc --> + * The <b>Switch</b> for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the <code>caseXXX</code> method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage + * @generated + */ +public class ProjectConfigSwitch<T> extends Switch<T> +{ + /** + * The cached model package + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static ProjectConfigPackage modelPackage; + + /** + * Creates an instance of the switch. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ProjectConfigSwitch() + { + if (modelPackage == null) + { + modelPackage = ProjectConfigPackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @parameter ePackage the package in question. + * @return whether this is a switch for the given package. + * @generated + */ + @Override + protected boolean isSwitchFor(EPackage ePackage) + { + return ePackage == modelPackage; + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) + { + switch (classifierID) + { + case ProjectConfigPackage.WORKSPACE_CONFIGURATION: + { + WorkspaceConfiguration workspaceConfiguration = (WorkspaceConfiguration)theEObject; + T result = caseWorkspaceConfiguration(workspaceConfiguration); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ProjectConfigPackage.PROJECT: + { + Project project = (Project)theEObject; + T result = caseProject(project); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ProjectConfigPackage.PREFERENCE_PROFILE: + { + PreferenceProfile preferenceProfile = (PreferenceProfile)theEObject; + T result = casePreferenceProfile(preferenceProfile); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ProjectConfigPackage.PREFERENCE_FILTER: + { + PreferenceFilter preferenceFilter = (PreferenceFilter)theEObject; + T result = casePreferenceFilter(preferenceFilter); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Workspace Configuration</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Workspace Configuration</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseWorkspaceConfiguration(WorkspaceConfiguration object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Project</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Project</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseProject(Project object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Preference Profile</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Preference Profile</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePreferenceProfile(PreferenceProfile object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Preference Filter</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Preference Filter</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePreferenceFilter(PreferenceFilter object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>EObject</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) + { + return null; + } + +} //ProjectConfigSwitch diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigUtil.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigUtil.java new file mode 100644 index 0000000000..978d14670e --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigUtil.java @@ -0,0 +1,290 @@ +/* + * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.projectconfig.util; + +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; +import org.eclipse.emf.cdo.releng.preferences.PreferencesFactory; +import org.eclipse.emf.cdo.releng.preferences.Property; +import org.eclipse.emf.cdo.releng.preferences.util.PreferencesUtil; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter; +import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile; +import org.eclipse.emf.cdo.releng.projectconfig.Project; +import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigFactory; +import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.URIConverter; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.xmi.XMLResource; +import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; + +import org.osgi.service.prefs.BackingStoreException; +import org.osgi.service.prefs.Preferences; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.StringWriter; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author Eike Stepper + */ +public final class ProjectConfigUtil +{ + private static final IWorkspaceRoot WORKSPACE_ROOT = ResourcesPlugin.getWorkspace().getRoot(); + + public static final String PROJECT_CONF_NODE_NAME = "org.eclipse.emf.cdo.releng.projectconfig"; + + public static final String PROJECT_CONF_PROJECT_KEY = "project"; + + public static final String PROJECT_CONF_PROFILES_KEY = "profiles"; + + public static final String PROJECT_CONF_REFERENCES_KEY = "references"; + + public static final String PROJECT_CONFIG_SCHEME = "configuration"; + + public static final URI PROJECT_CONFIG_URI = URI.createURI(PROJECT_CONFIG_SCHEME + ":/"); + + public static final WorkspaceConfiguration getWorkspaceConfiguration() + { + ResourceSet resourceSet = new ResourceSetImpl(); + Resource resource = resourceSet.createResource(URI.createURI("*.projectconfig")); + resource.setURI(PROJECT_CONFIG_URI); + + PreferenceNode rootPreferenceNode = PreferencesUtil.getRootPreferenceNode(); + + WorkspaceConfiguration workspaceConfiguration = ProjectConfigFactory.eINSTANCE.createWorkspaceConfiguration(); + workspaceConfiguration.setInstancePreferenceNode(rootPreferenceNode.getNode("instance")); + workspaceConfiguration.setDefaultPreferenceNode(rootPreferenceNode.getNode("default")); + + PreferenceNode projectsPreferenceNode = rootPreferenceNode.getNode("project"); + EList<Project> projects = workspaceConfiguration.getProjects(); + + for (IProject iProject : WORKSPACE_ROOT.getProjects()) + { + String name = iProject.getName(); + PreferenceNode projectPreferenceNode = projectsPreferenceNode.getNode(name); + if (projectPreferenceNode != null) + { + Project project = ProjectConfigFactory.eINSTANCE.createProject(); + + PreferenceNode projectConfNode = projectPreferenceNode.getNode(PROJECT_CONF_NODE_NAME); + if (projectConfNode != null) + { + Property projectProperty = projectConfNode.getProperty(PROJECT_CONF_PROJECT_KEY); + if (projectProperty != null) + { + String value = projectProperty.getValue(); + if (value != null) + { + XMLResourceImpl projectResource = new XMLResourceImpl(PROJECT_CONFIG_URI); + InputStream in = new URIConverter.ReadableInputStream(value); + try + { + projectResource.load(in, null); + } + catch (IOException ex) + { + // Ignore. + } + EList<EObject> contents = projectResource.getContents(); + if (!contents.isEmpty()) + { + project = (Project)contents.get(0); + } + } + } + } + + if (project == null) + { + project = ProjectConfigFactory.eINSTANCE.createProject(); + } + + project.setPreferenceNode(projectPreferenceNode); + + projects.add(project); + } + } + + EList<EObject> contents = resource.getContents(); + contents.add(workspaceConfiguration); + contents.add(rootPreferenceNode); + + for (Project project : projects) + { + for (PreferenceProfile preferenceProfile : project.getPreferenceProfiles()) + { + for (PreferenceFilter preferenceFilter : preferenceProfile.getPreferenceFilters()) + { + preferenceFilter.getPreferenceNode(); + } + + for (PreferenceProfile requiredPreferenceProfile : preferenceProfile.getPrerequisites()) + { + // Resolve proxies. + requiredPreferenceProfile.getClass(); + } + } + EList<PreferenceProfile> profileReferences = project.getPreferenceProfileReferences(); + ArrayList<PreferenceProfile> copy = new ArrayList<PreferenceProfile>(profileReferences); + profileReferences.clear(); + profileReferences.addAll(copy); + } + + workspaceConfiguration.updatePreferenceProfileReferences(); + + return workspaceConfiguration; + } + + public static final void saveWorkspaceConfiguration(WorkspaceConfiguration workspaceConfiguration) + throws BackingStoreException + { + for (Project project : workspaceConfiguration.getProjects()) + { + PreferenceNode projectPreferenceNode = project.getPreferenceNode(); + String projectName = projectPreferenceNode.getName(); + + Preferences projectPreferences = PreferencesUtil.getPreferences(projectPreferenceNode, true); + + EList<PreferenceProfile> preferenceProfiles = project.getPreferenceProfiles(); + EList<PreferenceProfile> preferenceProfileReferences = project.getPreferenceProfileReferences(); + + String projectPropertyValue = null; + if (!preferenceProfileReferences.isEmpty() || !preferenceProfiles.isEmpty()) + { + Project copy = EcoreUtil.copy(project); + copy.setPreferenceNode(null); + EList<PreferenceProfile> copyPreferenceProfileReferences = copy.getPreferenceProfileReferences(); + copyPreferenceProfileReferences.clear(); + + for (PreferenceProfile preferenceProfileReference : preferenceProfileReferences) + { + if (preferenceProfileReference.getPredicates().isEmpty()) + { + PreferenceProfile proxy = ProjectConfigFactory.eINSTANCE.createPreferenceProfile(); + ((InternalEObject)proxy).eSetProxyURI(URI.createURI(".#" + + preferenceProfileReference.eResource().getURIFragment(preferenceProfileReference))); + copyPreferenceProfileReferences.add(proxy); + } + } + + for (PreferenceProfile preferenceProfile : copy.getPreferenceProfiles()) + { + for (PreferenceFilter preferenceFilter : preferenceProfile.getPreferenceFilters()) + { + PreferenceNode preferenceNode = preferenceFilter.getPreferenceNode(); + if (preferenceNode != null) + { + PreferenceNode proxy = PreferencesFactory.eINSTANCE.createPreferenceNode(); + ((InternalEObject)proxy).eSetProxyURI(URI.createURI(".#" + + preferenceNode.eResource().getURIFragment(preferenceNode))); + preferenceFilter.setPreferenceNode(proxy); + } + } + + EList<PreferenceProfile> requires = preferenceProfile.getPrerequisites(); + List<PreferenceProfile> requiresCopy = new ArrayList<PreferenceProfile>(requires); + requires.clear(); + for (PreferenceProfile requiredPreferenceProfile : requiresCopy) + { + Resource eResource = requiredPreferenceProfile.eResource(); + if (eResource == null) + { + requires.add(requiredPreferenceProfile); + } + else + { + PreferenceProfile proxy = ProjectConfigFactory.eINSTANCE.createPreferenceProfile(); + ((InternalEObject)proxy).eSetProxyURI(URI.createURI(".#" + + eResource.getURIFragment(requiredPreferenceProfile))); + requires.add(proxy); + } + } + } + + if (!copy.getPreferenceProfiles().isEmpty() || !copy.getPreferenceProfileReferences().isEmpty()) + { + Resource resource = new XMLResourceImpl(workspaceConfiguration.eResource().getURI()); + resource.getContents().add(copy); + + Map<Object, Object> options = new HashMap<Object, Object>(); + options.put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE); + options.put(XMLResource.OPTION_LINE_WIDTH, 10); + options.put(XMLResource.OPTION_ENCODING, "UTF-8"); + try + { + StringWriter writer = new StringWriter(); + OutputStream out = new URIConverter.WriteableOutputStream(writer, "UTF-8"); + resource.save(out, options); + projectPropertyValue = writer.toString(); + } + catch (IOException ex) + { + ex.printStackTrace(); + } + } + } + + if (projectPropertyValue == null) + { + if (projectPreferences.nodeExists(PROJECT_CONF_NODE_NAME)) + { + projectPreferences.node(PROJECT_CONF_NODE_NAME).removeNode(); + projectPreferences.flush(); + } + } + else + { + System.err.println(projectName + " -> project = " + projectPropertyValue); + + Preferences projectConfPreferences = projectPreferences.node(PROJECT_CONF_NODE_NAME); + projectConfPreferences.put(PROJECT_CONF_PROJECT_KEY, projectPropertyValue); + projectConfPreferences.flush(); + } + } + } + + public static IProject getProject(Project project) + { + PreferenceNode preferenceNode = project.getPreferenceNode(); + if (preferenceNode != null) + { + String name = preferenceNode.getName(); + if (name != null) + { + return WORKSPACE_ROOT.getProject(name); + } + } + + return null; + } + + public static Collection<PreferenceNode> getUnmanagedPreferenceNodes(Project project) + { + return ProjectConfigValidator.collectUnmanagedPreferences(project).values(); + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigValidator.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigValidator.java new file mode 100644 index 0000000000..e88c76a58b --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigValidator.java @@ -0,0 +1,263 @@ +/** + */ +package org.eclipse.emf.cdo.releng.projectconfig.util; + +import org.eclipse.emf.cdo.releng.preferences.PreferenceNode; +import org.eclipse.emf.cdo.releng.projectconfig.*; +import org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPlugin; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.DiagnosticChain; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.util.EObjectValidator; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; + +/** + * <!-- begin-user-doc --> + * The <b>Validator</b> for the model. + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage + * @generated + */ +public class ProjectConfigValidator extends EObjectValidator +{ + /** + * The cached model package + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final ProjectConfigValidator INSTANCE = new ProjectConfigValidator(); + + /** + * A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes} from this package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.common.util.Diagnostic#getSource() + * @see org.eclipse.emf.common.util.Diagnostic#getCode() + * @generated + */ + public static final String DIAGNOSTIC_SOURCE = "org.eclipse.emf.cdo.releng.projectconfig"; + + /** + * A constant with a fixed name that can be used as the base value for additional hand written constants. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 0; + + /** + * A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final int DIAGNOSTIC_CODE_COUNT = GENERATED_DIAGNOSTIC_CODE_COUNT; + + /** + * Creates an instance of the switch. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ProjectConfigValidator() + { + super(); + } + + /** + * Returns the package of this validator switch. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EPackage getEPackage() + { + return ProjectConfigPackage.eINSTANCE; + } + + /** + * Calls <code>validateXXX</code> for the corresponding classifier of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected boolean validate(int classifierID, Object value, DiagnosticChain diagnostics, Map<Object, Object> context) + { + switch (classifierID) + { + case ProjectConfigPackage.WORKSPACE_CONFIGURATION: + return validateWorkspaceConfiguration((WorkspaceConfiguration)value, diagnostics, context); + case ProjectConfigPackage.PROJECT: + return validateProject((Project)value, diagnostics, context); + case ProjectConfigPackage.PREFERENCE_PROFILE: + return validatePreferenceProfile((PreferenceProfile)value, diagnostics, context); + case ProjectConfigPackage.PREFERENCE_FILTER: + return validatePreferenceFilter((PreferenceFilter)value, diagnostics, context); + case ProjectConfigPackage.PATTERN: + return validatePattern((Pattern)value, diagnostics, context); + default: + return true; + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateWorkspaceConfiguration(WorkspaceConfiguration workspaceConfiguration, + DiagnosticChain diagnostics, Map<Object, Object> context) + { + return validate_EveryDefaultConstraint(workspaceConfiguration, diagnostics, context); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateProject(Project project, DiagnosticChain diagnostics, Map<Object, Object> context) + { + if (!validate_NoCircularContainment(project, diagnostics, context)) return false; + boolean result = validate_EveryMultiplicityConforms(project, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryDataValueConforms(project, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(project, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(project, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(project, diagnostics, context); + if (result || diagnostics != null) result &= validate_UniqueID(project, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryKeyUnique(project, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(project, diagnostics, context); + if (result || diagnostics != null) result &= validateProject_AllPreferencesManaged(project, diagnostics, context); + return result; + } + + static Map<String, PreferenceNode> collectUnmanagedPreferences(Project project) + { + Map<String, PreferenceNode> result = new LinkedHashMap<String, PreferenceNode>(); + PreferenceNode preferenceNode = project.getPreferenceNode(); + if (preferenceNode != null) + { + for (PreferenceNode child : preferenceNode.getChildren()) + { + if (!child.getProperties().isEmpty()) + { + result.put(child.getName(), child); + } + } + + result.remove(ProjectConfigUtil.PROJECT_CONF_NODE_NAME); + + for (PreferenceProfile preferenceProfile : project.getPreferenceProfiles()) + { + for (PreferenceFilter preferenceFilter : preferenceProfile.getPreferenceFilters()) + { + PreferenceNode otherPreferenceNode = preferenceFilter.getPreferenceNode(); + if (otherPreferenceNode != null) + { + result.remove(otherPreferenceNode.getName()); + } + } + } + + for (PreferenceProfile preferenceProfile : project.getPreferenceProfileReferences()) + { + for (PreferenceFilter preferenceFilter : preferenceProfile.getPreferenceFilters()) + { + PreferenceNode otherPreferenceNode = preferenceFilter.getPreferenceNode(); + if (otherPreferenceNode != null) + { + result.remove(otherPreferenceNode.getName()); + } + } + } + } + return result; + } + + /** + * Validates the AllPreferencesManaged constraint of '<em>Project</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public boolean validateProject_AllPreferencesManaged(Project project, DiagnosticChain diagnostics, + Map<Object, Object> context) + { + Map<String, PreferenceNode> unmanagedPreferences = collectUnmanagedPreferences(project); + + if (!unmanagedPreferences.isEmpty()) + { + if (diagnostics != null) + { + String substitution = unmanagedPreferences.keySet().toString(); + substitution = substitution.substring(1, substitution.length() - 1); + int lastComma = substitution.lastIndexOf(','); + if (lastComma != -1) + { + substitution = substitution.substring(0, lastComma) + " and " + substitution.substring(lastComma + 1); + } + List<Object> data = new ArrayList<Object>(); + data.add(project); + data.add(ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILE_REFERENCES); + data.addAll(unmanagedPreferences.values()); + diagnostics.add(createDiagnostic(Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0, + "_UI_AllPreferencesManaged_diagnostic", new Object[] { substitution }, data.toArray(), context)); + } + return false; + } + return true; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validatePreferenceProfile(PreferenceProfile preferenceProfile, DiagnosticChain diagnostics, + Map<Object, Object> context) + { + return validate_EveryDefaultConstraint(preferenceProfile, diagnostics, context); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validatePreferenceFilter(PreferenceFilter preferenceFilter, DiagnosticChain diagnostics, + Map<Object, Object> context) + { + return validate_EveryDefaultConstraint(preferenceFilter, diagnostics, context); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validatePattern(Pattern pattern, DiagnosticChain diagnostics, Map<Object, Object> context) + { + return true; + } + + /** + * Returns the resource locator that will be used to fetch messages for this validator's diagnostics. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() + { + return ProjectConfigPlugin.INSTANCE; + } + +} // ProjectConfigValidator diff --git a/plugins/org.eclipse.emf.cdo.releng.release/release.properties b/plugins/org.eclipse.emf.cdo.releng.release/release.properties index 0718209125..62a5fbcd03 100644 --- a/plugins/org.eclipse.emf.cdo.releng.release/release.properties +++ b/plugins/org.eclipse.emf.cdo.releng.release/release.properties @@ -1,6 +1,11 @@ # +<<<<<<< Upstream, based on origin/master #Tue Aug 27 08:29:53 CEST 2013 root.projects=org.eclipse.emf.cdo.site-feature org.eclipse.net4j.db.db2-feature org.eclipse.emf.cdo.releng org.eclipse.emf.cdo.releng.doc org.eclipse.emf.cdo.releng.release org.eclipse.emf.cdo.examples.clone org.eclipse.emf.cdo.examples.client org.eclipse.emf.cdo.examples.master org.eclipse.emf.cdo.examples.client.offline +======= +#Tue Aug 27 15:55:39 CEST 2013 +root.projects=org.eclipse.emf.cdo.site-feature org.eclipse.net4j.db.db2-feature org.eclipse.emf.cdo.releng org.eclipse.emf.cdo.releng.doc org.eclipse.emf.cdo.releng.release org.eclipse.emf.cdo.examples.clone org.eclipse.emf.cdo.examples.client org.eclipse.emf.cdo.examples.master org.eclipse.emf.cdo.examples.client.offline org.eclipse.emf.cdo.releng.setup.product org.eclipse.emf.cdo.releng.ui +>>>>>>> aeba188 Improve setup related models baseline.for.integration=true show.deviations=false ignored.references=org.eclipse.emf.cdo.examples.installer.client org.eclipse.emf.cdo.examples.installer.clone org.eclipse.emf.cdo.examples.installer.master org.eclipse.net4j.db.derby org.apache.derby org.eclipse.emf.cdo.server.objectivity org.eclipse.emf.cdo.server.objectivity.stub org.eclipse.emf.cdo.tests.objectivity diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.edit/.settings/org.eclipse.core.resources.prefs index 45834dcf98..38ce18d974 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/.settings/org.eclipse.core.resources.prefs +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/.settings/org.eclipse.core.resources.prefs @@ -1,5 +1,2 @@ eclipse.preferences.version=1 -encoding/.project=UTF-8 -encoding//model/Configuration.xmi=ASCII -encoding//model/setup.ecore=UTF-8 -encoding//model/setup.ecorediag=UTF-8 +encoding/.project=UTF-8
\ No newline at end of file diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.setup.edit/META-INF/MANIFEST.MF index 67953d3baa..1868369e0a 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/META-INF/MANIFEST.MF @@ -10,8 +10,10 @@ Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: J2SE-1.5 Export-Package: org.eclipse.emf.cdo.releng.setup.provider;version="1.0.0" Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", - org.eclipse.emf.cdo.releng.setup;bundle-version="[1.0.0,2.0.0)";visibility:=reexport, - org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport, - org.eclipse.emf.cdo.releng.workingsets;bundle-version="[1.0.0,2.0.0)";visibility:=reexport, - org.eclipse.emf.cdo.releng.workingsets.edit;bundle-version="[1.0.0,2.0.0)";visibility:=reexport + org.eclipse.emf.cdo.releng.setup;visibility:=reexport;bundle-version="[1.0.0,2.0.0)", + org.eclipse.emf.edit;visibility:=reexport;bundle-version="[2.5.0,3.0.0)", + org.eclipse.emf.cdo.releng.workingsets;visibility:=reexport;bundle-version="[1.0.0,2.0.0)", + org.eclipse.emf.cdo.releng.workingsets.edit;visibility:=reexport;bundle-version="[1.0.0,2.0.0)", + org.eclipse.emf.cdo.releng.predicates;visibility:=reexport;bundle-version="[1.0.0,2.0.0)", + org.eclipse.emf.cdo.releng.predicates.edit;visibility:=reexport;bundle-version="[1.0.0,2.0.0)" Bundle-ActivationPolicy: lazy diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ApiBaseline.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ApiBaselineTask.gif Binary files differindex 311b0df582..311b0df582 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ApiBaseline.gif +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ApiBaselineTask.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/BuckminsterImportTask.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/BuckminsterImportTask.gif Binary files differnew file mode 100644 index 0000000000..ca58d41c7b --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/BuckminsterImportTask.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/CompoundSetupTask.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/CompoundSetupTask.gif Binary files differnew file mode 100644 index 0000000000..e7c4e9a23f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/CompoundSetupTask.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/DirectorCall.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/DirectorCall.gif Binary files differdeleted file mode 100644 index b394107797..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/DirectorCall.gif +++ /dev/null diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/EclipseIniTask.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/EclipseIniTask.gif Binary files differnew file mode 100644 index 0000000000..ace52f0e93 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/EclipseIniTask.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/EclipsePreferenceTask.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/EclipsePreferenceTask.gif Binary files differnew file mode 100644 index 0000000000..e8cb49fb5f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/EclipsePreferenceTask.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/GitClone.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/GitCloneTask.gif Binary files differindex aae8cca858..aae8cca858 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/GitClone.gif +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/GitCloneTask.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/InstallableUnit.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/InstallableUnit.gif Binary files differindex 8706680c79..b4cc50fc45 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/InstallableUnit.gif +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/InstallableUnit.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/LinkLocation.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/LinkLocation.gif Binary files differdeleted file mode 100644 index d0b5c15991..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/LinkLocation.gif +++ /dev/null diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/LinkLocationTask.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/LinkLocationTask.gif Binary files differnew file mode 100644 index 0000000000..b99741d766 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/LinkLocationTask.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/P2Repository.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/P2Repository.gif Binary files differindex ae982990dc..b8568f4f81 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/P2Repository.gif +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/P2Repository.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/P2Task.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/P2Task.gif Binary files differnew file mode 100644 index 0000000000..8706680c79 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/P2Task.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ResourceCopyTask.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ResourceCopyTask.gif Binary files differnew file mode 100644 index 0000000000..16eed37220 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ResourceCopyTask.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ToolPreference.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/StringVariableTask.gif Binary files differindex e35f594d88..e35f594d88 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ToolPreference.gif +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/StringVariableTask.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/TextModification.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/TextModification.gif Binary files differnew file mode 100644 index 0000000000..e8de662520 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/TextModification.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/TextModifyTask.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/TextModifyTask.gif Binary files differnew file mode 100644 index 0000000000..3931b40e07 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/TextModifyTask.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ToolInstallation.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ToolInstallation.gif Binary files differdeleted file mode 100644 index d8735b8930..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ToolInstallation.gif +++ /dev/null diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/WorkingSetTask.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/WorkingSetTask.gif Binary files differnew file mode 100644 index 0000000000..f878001bdd --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/WorkingSetTask.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/Workspace.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/Workspace.gif Binary files differdeleted file mode 100644 index ca14cfca4e..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/Workspace.gif +++ /dev/null diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.setup.edit/plugin.properties index 3226421baa..a1a60dd606 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/plugin.properties +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/plugin.properties @@ -19,81 +19,100 @@ _UI_CreateSibling_description = Create a new sibling of type {0} for the selecte _UI_PropertyDescriptor_description = The {0} of the {1} +_UI_EclipseVersion_type = Eclipse Version _UI_Configuration_type = Configuration +_UI_ConfigurableItem_type = Configurable Item _UI_Project_type = Project _UI_Branch_type = Branch -_UI_ToolInstallation_type = Tool Installation -_UI_EclipseVersion_type = Eclipse Version -_UI_DirectorCall_type = Director Call -_UI_InstallableUnit_type = Installable Unit -_UI_P2Repository_type = P2 Repository -_UI_ApiBaseline_type = Api Baseline -_UI_GitClone_type = Git Clone _UI_Preferences_type = Preferences -_UI_Workspace_type = Workspace +_UI_Setup_type = Setup +_UI_SetupTask_type = Setup Task +_UI_SetupTaskContainer_type = Setup Task Container +_UI_CompoundSetupTask_type = Compound Setup Task +_UI_OneTimeSetupTask_type = One-Time Setup Task +_UI_InstallTask_type = Install Task +_UI_EclipseIniTask_type = Eclipse.ini +_UI_LinkLocationTask_type = Link Location +_UI_P2Task_type = p2 Director +_UI_InstallableUnit_type = Installable Unit +_UI_P2Repository_type = Repository +_UI_BuckminsterImportTask_type = Buckminster Import +_UI_ApiBaselineTask_type = API Baseline +_UI_GitCloneTask_type = Git Clone +_UI_EclipsePreferenceTask_type = Eclipse Preference +_UI_StringVariableTask_type = String Variable +_UI_WorkingSetTask_type = Working Sets _UI_Unknown_type = Object +
_UI_Unknown_datatype= Value -_UI_Unknown_datatype= Value - +_UI_EclipseVersion_configuration_feature = Configuration +_UI_EclipseVersion_version_feature = Version +_UI_EclipseVersion_installTasks_feature = Install Tasks _UI_Configuration_projects_feature = Projects _UI_Configuration_eclipseVersions_feature = Eclipse Versions +_UI_Project_configuration_feature = Configuration _UI_Project_branches_feature = Branches _UI_Project_name_feature = Name -_UI_Project_apiBaselines_feature = Api Baselines +_UI_Branch_project_feature = Project _UI_Branch_name_feature = Name -_UI_Branch_gitClones_feature = Git Clones -_UI_Branch_apiBaseline_feature = Api Baseline -_UI_Branch_mspecFilePath_feature = Mspec File Path -_UI_Branch_targetFilePath_feature = Target File Path -_UI_ToolInstallation_directorCalls_feature = Director Calls -_UI_EclipseVersion_version_feature = Version -_UI_EclipseVersion_directorCall_feature = Director Call -_UI_DirectorCall_installableUnits_feature = Installable Units -_UI_DirectorCall_p2Repositories_feature = P2 Repositories -_UI_InstallableUnit_id_feature = Id -_UI_P2Repository_url_feature = Url -_UI_ApiBaseline_name_feature = Name -_UI_ApiBaseline_zipLocation_feature = Zip Location -_UI_GitClone_name_feature = Name -_UI_GitClone_remoteURI_feature = Remote URI -_UI_GitClone_checkoutBranch_feature = Checkout Branch _UI_Preferences_userName_feature = User Name -_UI_Preferences_bundlePool_feature = Bundle Pool _UI_Preferences_installFolder_feature = Install Folder -_UI_Workspace_branch_feature = Branch -_UI_Unknown_feature = Unspecified - -_UI_Workspace_eclipseVersion_feature = Eclipse Version -_UI_Workspace_preferences_feature = Preferences -_UI_Branch_cloneVariableName_feature = Clone Variable Name _UI_Preferences_gitPrefix_feature = Git Prefix -_UI_Setup_type = Setup _UI_Setup_branch_feature = Branch _UI_Setup_eclipseVersion_feature = Eclipse Version _UI_Setup_preferences_feature = Preferences -_UI_ApiBaseline_version_feature = Version -_UI_EclipseVersion_configuration_feature = Configuration -_UI_InstallableUnit_directorCall_feature = Director Call -_UI_P2Repository_directorCall_feature = Director Call -_UI_Project_configuration_feature = Configuration -_UI_Branch_project_feature = Project -_UI_ApiBaseline_project_feature = Project -_UI_GitClone_branch_feature = Branch -_UI_ToolPreference_type = Tool Preference -_UI_ToolInstallation_toolPreferences_feature = Tool Preferences -_UI_ToolPreference_key_feature = Key -_UI_ToolPreference_value_feature = Value -_UI_P2Repository_disableUpdates_feature = Disable Updates -_UI_Branch_javaVersion_feature = Java Version -_UI_JRE_JRE_13_literal = JRE_13 -_UI_JRE_JRE_14_literal = JRE_14 -_UI_JRE_JRE_15_literal = JRE_15 -_UI_JRE_JRE_16_literal = JRE_16 -_UI_JRE_JRE_17_literal = JRE_17 -_UI_JRE_JRE_18_literal = JRE_18 -_UI_Setup_updateLocations_feature = Update Locations -_UI_LinkLocation_type = Link Location -_UI_Preferences_linkLocations_feature = Link Locations -_UI_LinkLocation_path_feature = Path -_UI_LinkLocation_name_feature = Name -_UI_Project_workingSetGroup_feature = Working Set Group +_UI_SetupTask_requirements_feature = Requirements +_UI_SetupTask_restrictions_feature = Restrictions +_UI_SetupTask_scope_feature = Scope +_UI_SetupTaskContainer_setupTasks_feature = Setup Tasks +_UI_CompoundSetupTask_name_feature = Name +_UI_OneTimeSetupTask_id_feature = ID +_UI_EclipseIniTask_option_feature = Option +_UI_EclipseIniTask_value_feature = Value +_UI_EclipseIniTask_vm_feature = VM +_UI_LinkLocationTask_path_feature = Path +_UI_LinkLocationTask_name_feature = Name +_UI_P2Task_p2Repositories_feature = Repositories +_UI_P2Task_installableUnits_feature = Installable Units +_UI_InstallableUnit_p2Task_feature = p2 Director +_UI_InstallableUnit_id_feature = ID +_UI_P2Repository_p2Task_feature = p2 Director +_UI_P2Repository_url_feature = URL +_UI_BuckminsterImportTask_mspec_feature = MSpec +_UI_BuckminsterImportTask_targetPlatform_feature = Target Platform +_UI_BuckminsterImportTask_bundlePool_feature = Bundle Pool +_UI_ApiBaselineTask_version_feature = Version +_UI_ApiBaselineTask_zipLocation_feature = Zip URL +_UI_GitCloneTask_name_feature = Name +_UI_GitCloneTask_remoteName_feature = Remote Name +_UI_GitCloneTask_remoteURI_feature = Remote URI +_UI_GitCloneTask_checkoutBranch_feature = Checkout Branch +_UI_EclipsePreferenceTask_key_feature = Key +_UI_EclipsePreferenceTask_value_feature = Value +_UI_StringVariableTask_name_feature = Name +_UI_StringVariableTask_value_feature = Value +_UI_StringVariableTask_description_feature = Description +_UI_WorkingSetTask_workingSetGroup_feature = Working Sets
_UI_Unknown_feature = Unspecified + +_UI_SetupTaskScope_None_literal = None +_UI_SetupTaskScope_Configuration_literal = Configuration +_UI_SetupTaskScope_Project_literal = Project +_UI_SetupTaskScope_Branch_literal = Branch +_UI_SetupTaskScope_User_literal = User +_UI_Unknown_feature = Unspecified + +_UI_SetupTaskProvider_type = Task Provider +_UI_ResourceCopyTask_type = Resource Copy Task +_UI_TextModifyTask_type = Text Modify Task +_UI_TextModification_type = Text Modification +_UI_ResourceCopyTask_sourceURL_feature = Source URL +_UI_ResourceCopyTask_targetURL_feature = Target URL +_UI_TextModifyTask_url_feature = Url +_UI_TextModifyTask_modifications_feature = Modifications +_UI_TextModification_pattern_feature = Pattern +_UI_TextModification_substitutions_feature = Substitutions +_UI_SetupTask_excludedTriggers_feature = Excluded Triggers +_UI_Trigger_BOOTSTRAP_literal = BOOTSTRAP +_UI_Trigger_STARTUP_literal = STARTUP +_UI_Trigger_MANUAL_literal = MANUAL +_UI_WorkingSetTask_workingSets_feature = Working Sets diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ApiBaselineTaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ApiBaselineTaskItemProvider.java new file mode 100644 index 0000000000..749cabcc57 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ApiBaselineTaskItemProvider.java @@ -0,0 +1,155 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.provider; + +import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ViewerNotification; +import java.util.Collection; +import java.util.List; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class ApiBaselineTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ApiBaselineTaskItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + addVersionPropertyDescriptor(object); + addZipLocationPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Version feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addVersionPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ApiBaselineTask_version_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ApiBaselineTask_version_feature", + "_UI_ApiBaselineTask_type"), SetupPackage.Literals.API_BASELINE_TASK__VERSION, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); + } + + /** + * This adds a property descriptor for the Zip Location feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addZipLocationPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ApiBaselineTask_zipLocation_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ApiBaselineTask_zipLocation_feature", + "_UI_ApiBaselineTask_type"), SetupPackage.Literals.API_BASELINE_TASK__ZIP_LOCATION, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); + } + + /** + * This returns ApiBaselineTask.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ApiBaselineTask")); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) + { + String label = ((ApiBaselineTask)object).getVersion(); + return label == null || label.length() == 0 ? getString("_UI_ApiBaselineTask_type") + : getString("_UI_ApiBaselineTask_type") + " " + label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(ApiBaselineTask.class)) + { + case SetupPackage.API_BASELINE_TASK__VERSION: + case SetupPackage.API_BASELINE_TASK__ZIP_LOCATION: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/BranchItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/BranchItemProvider.java index 9693c1bb7c..84c51dcbb6 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/BranchItemProvider.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/BranchItemProvider.java @@ -11,12 +11,10 @@ package org.eclipse.emf.cdo.releng.setup.provider; import org.eclipse.emf.cdo.releng.setup.Branch; -import org.eclipse.emf.cdo.releng.setup.SetupFactory; import org.eclipse.emf.cdo.releng.setup.SetupPackage; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; @@ -36,7 +34,7 @@ import java.util.List; * <!-- end-user-doc --> * @generated */ -public class BranchItemProvider extends ToolInstallationItemProvider implements IEditingDomainItemProvider, +public class BranchItemProvider extends ConfigurableItemItemProvider implements IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource { /** @@ -64,9 +62,6 @@ public class BranchItemProvider extends ToolInstallationItemProvider implements super.getPropertyDescriptors(object); addNamePropertyDescriptor(object); - addApiBaselinePropertyDescriptor(object); - addMspecFilePathPropertyDescriptor(object); - addCloneVariableNamePropertyDescriptor(object); } return itemPropertyDescriptors; } @@ -88,86 +83,6 @@ public class BranchItemProvider extends ToolInstallationItemProvider implements } /** - * This adds a property descriptor for the Api Baseline feature. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected void addApiBaselinePropertyDescriptor(Object object) - { - itemPropertyDescriptors.add(createItemPropertyDescriptor( - ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), - getString("_UI_Branch_apiBaseline_feature"), - getString("_UI_PropertyDescriptor_description", "_UI_Branch_apiBaseline_feature", "_UI_Branch_type"), - SetupPackage.Literals.BRANCH__API_BASELINE, true, false, true, null, null, null)); - } - - /** - * This adds a property descriptor for the Mspec File Path feature. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected void addMspecFilePathPropertyDescriptor(Object object) - { - itemPropertyDescriptors.add(createItemPropertyDescriptor( - ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), - getString("_UI_Branch_mspecFilePath_feature"), - getString("_UI_PropertyDescriptor_description", "_UI_Branch_mspecFilePath_feature", "_UI_Branch_type"), - SetupPackage.Literals.BRANCH__MSPEC_FILE_PATH, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, - null, null)); - } - - /** - * This adds a property descriptor for the Clone Variable Name feature. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected void addCloneVariableNamePropertyDescriptor(Object object) - { - itemPropertyDescriptors.add(createItemPropertyDescriptor( - ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), - getString("_UI_Branch_cloneVariableName_feature"), - getString("_UI_PropertyDescriptor_description", "_UI_Branch_cloneVariableName_feature", "_UI_Branch_type"), - SetupPackage.Literals.BRANCH__CLONE_VARIABLE_NAME, true, false, false, - ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); - } - - /** - * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an - * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or - * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) - { - if (childrenFeatures == null) - { - super.getChildrenFeatures(object); - childrenFeatures.add(SetupPackage.Literals.BRANCH__GIT_CLONES); - } - return childrenFeatures; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - protected EStructuralFeature getChildFeature(Object object, Object child) - { - // Check the type of the specified child object and return the proper feature to use for - // adding (see {@link AddCommand}) it as a child. - - return super.getChildFeature(object, child); - } - - /** * This returns Branch.gif. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -207,13 +122,8 @@ public class BranchItemProvider extends ToolInstallationItemProvider implements switch (notification.getFeatureID(Branch.class)) { case SetupPackage.BRANCH__NAME: - case SetupPackage.BRANCH__MSPEC_FILE_PATH: - case SetupPackage.BRANCH__CLONE_VARIABLE_NAME: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); return; - case SetupPackage.BRANCH__GIT_CLONES: - fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); - return; } super.notifyChanged(notification); } @@ -229,9 +139,6 @@ public class BranchItemProvider extends ToolInstallationItemProvider implements protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { super.collectNewChildDescriptors(newChildDescriptors, object); - - newChildDescriptors.add(createChildParameter(SetupPackage.Literals.BRANCH__GIT_CLONES, - SetupFactory.eINSTANCE.createGitClone())); } } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/BuckminsterImportTaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/BuckminsterImportTaskItemProvider.java new file mode 100644 index 0000000000..4a82f656e9 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/BuckminsterImportTaskItemProvider.java @@ -0,0 +1,176 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.provider; + +import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import java.util.Collection; +import java.util.List; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class BuckminsterImportTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public BuckminsterImportTaskItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + addMspecPropertyDescriptor(object); + addTargetPlatformPropertyDescriptor(object); + addBundlePoolPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Mspec feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addMspecPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_BuckminsterImportTask_mspec_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_BuckminsterImportTask_mspec_feature", + "_UI_BuckminsterImportTask_type"), SetupPackage.Literals.BUCKMINSTER_IMPORT_TASK__MSPEC, true, false, + false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); + } + + /** + * This adds a property descriptor for the Target Platform feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addTargetPlatformPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_BuckminsterImportTask_targetPlatform_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_BuckminsterImportTask_targetPlatform_feature", + "_UI_BuckminsterImportTask_type"), SetupPackage.Literals.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM, true, + false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); + } + + /** + * This adds a property descriptor for the Bundle Pool feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addBundlePoolPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_BuckminsterImportTask_bundlePool_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_BuckminsterImportTask_bundlePool_feature", + "_UI_BuckminsterImportTask_type"), SetupPackage.Literals.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL, true, false, + false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); + } + + /** + * This returns BuckminsterImportTask.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/BuckminsterImportTask")); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) + { + String label = ((BuckminsterImportTask)object).getMspec(); + return label == null || label.length() == 0 ? getString("_UI_BuckminsterImportTask_type") + : getString("_UI_BuckminsterImportTask_type") + " " + label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(BuckminsterImportTask.class)) + { + case SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC: + case SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM: + case SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/CompoundSetupTaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/CompoundSetupTaskItemProvider.java new file mode 100644 index 0000000000..33287c05df --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/CompoundSetupTaskItemProvider.java @@ -0,0 +1,210 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.provider; + +import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupFactory; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ViewerNotification; +import java.util.Collection; +import java.util.List; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class CompoundSetupTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CompoundSetupTaskItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + addNamePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Name feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addNamePropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_CompoundSetupTask_name_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_CompoundSetupTask_name_feature", + "_UI_CompoundSetupTask_type"), SetupPackage.Literals.COMPOUND_SETUP_TASK__NAME, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); + } + + /** + * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) + { + if (childrenFeatures == null) + { + super.getChildrenFeatures(object); + childrenFeatures.add(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS); + } + return childrenFeatures; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EStructuralFeature getChildFeature(Object object, Object child) + { + // Check the type of the specified child object and return the proper feature to use for + // adding (see {@link AddCommand}) it as a child. + + return super.getChildFeature(object, child); + } + + /** + * This returns CompoundSetupTask.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/CompoundSetupTask")); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) + { + String label = ((CompoundSetupTask)object).getName(); + return label == null || label.length() == 0 ? getString("_UI_CompoundSetupTask_type") + : getString("_UI_CompoundSetupTask_type") + " " + label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(CompoundSetupTask.class)) + { + case SetupPackage.COMPOUND_SETUP_TASK__NAME: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createCompoundSetupTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createEclipseIniTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createLinkLocationTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createP2Task())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createBuckminsterImportTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createApiBaselineTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createGitCloneTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createEclipsePreferenceTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createStringVariableTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createWorkingSetTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createResourceCopyTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createTextModifyTask())); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ConfigurableItemItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ConfigurableItemItemProvider.java new file mode 100644 index 0000000000..8c88c25374 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ConfigurableItemItemProvider.java @@ -0,0 +1,93 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.provider; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; + +import java.util.Collection; +import java.util.List; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.ConfigurableItem} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class ConfigurableItemItemProvider extends SetupTaskContainerItemProvider implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ConfigurableItemItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) + { + return getString("_UI_ConfigurableItem_type"); + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ConfigurationItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ConfigurationItemProvider.java index 3bce868991..305272219b 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ConfigurationItemProvider.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ConfigurationItemProvider.java @@ -18,6 +18,7 @@ import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.util.ResourceLocator; import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.provider.IChildCreationExtender; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; @@ -186,7 +187,7 @@ public class ConfigurationItemProvider extends ItemProviderAdapter implements IE @Override public ResourceLocator getResourceLocator() { - return SetupEditPlugin.INSTANCE; + return ((IChildCreationExtender)adapterFactory).getResourceLocator(); } } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipseIniTaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipseIniTaskItemProvider.java new file mode 100644 index 0000000000..4b89965af9 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipseIniTaskItemProvider.java @@ -0,0 +1,175 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.provider; + +import org.eclipse.emf.cdo.releng.setup.EclipseIniTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl; +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ViewerNotification; +import java.util.Collection; +import java.util.List; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class EclipseIniTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EclipseIniTaskItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + addOptionPropertyDescriptor(object); + addValuePropertyDescriptor(object); + addVmPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Option feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addOptionPropertyDescriptor(Object object) + { + itemPropertyDescriptors + .add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_EclipseIniTask_option_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_EclipseIniTask_option_feature", + "_UI_EclipseIniTask_type"), SetupPackage.Literals.ECLIPSE_INI_TASK__OPTION, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); + } + + /** + * This adds a property descriptor for the Value feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addValuePropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), + getString("_UI_EclipseIniTask_value_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_EclipseIniTask_value_feature", "_UI_EclipseIniTask_type"), + SetupPackage.Literals.ECLIPSE_INI_TASK__VALUE, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, null)); + } + + /** + * This adds a property descriptor for the Vm feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addVmPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), + getString("_UI_EclipseIniTask_vm_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_EclipseIniTask_vm_feature", "_UI_EclipseIniTask_type"), + SetupPackage.Literals.ECLIPSE_INI_TASK__VM, true, false, false, ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE, + null, null)); + } + + /** + * This returns EclipseIniTask.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/EclipseIniTask")); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) + { + EclipseIniTaskImpl task = (EclipseIniTaskImpl)object; + String label = task.getLabel(task.getValue()); + return label == null || label.length() == 0 ? getString("_UI_EclipseIniTask_type") + : getString("_UI_EclipseIniTask_type") + " " + label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(EclipseIniTask.class)) + { + case SetupPackage.ECLIPSE_INI_TASK__OPTION: + case SetupPackage.ECLIPSE_INI_TASK__VALUE: + case SetupPackage.ECLIPSE_INI_TASK__VM: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ToolPreferenceItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipsePreferenceTaskItemProvider.java index 016db92189..c05f2f4fe1 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ToolPreferenceItemProvider.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipsePreferenceTaskItemProvider.java @@ -1,21 +1,12 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup.provider; +import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask; import org.eclipse.emf.cdo.releng.setup.SetupPackage; -import org.eclipse.emf.cdo.releng.setup.ToolPreference; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.util.ResourceLocator; import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; @@ -24,7 +15,6 @@ import org.eclipse.emf.edit.provider.IItemPropertySource; import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; -import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ViewerNotification; import org.eclipse.core.runtime.Path; @@ -33,12 +23,12 @@ import java.util.Collection; import java.util.List; /** - * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.ToolPreference} object. + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask} object. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ -public class ToolPreferenceItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, +public class EclipsePreferenceTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource { /** @@ -47,7 +37,7 @@ public class ToolPreferenceItemProvider extends ItemProviderAdapter implements I * <!-- end-user-doc --> * @generated */ - public ToolPreferenceItemProvider(AdapterFactory adapterFactory) + public EclipsePreferenceTaskItemProvider(AdapterFactory adapterFactory) { super(adapterFactory); } @@ -80,11 +70,12 @@ public class ToolPreferenceItemProvider extends ItemProviderAdapter implements I protected void addKeyPropertyDescriptor(Object object) { itemPropertyDescriptors.add(createItemPropertyDescriptor( - ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), - getString("_UI_ToolPreference_key_feature"), - getString("_UI_PropertyDescriptor_description", "_UI_ToolPreference_key_feature", "_UI_ToolPreference_type"), - SetupPackage.Literals.TOOL_PREFERENCE__KEY, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, - null, null)); + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_EclipsePreferenceTask_key_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_EclipsePreferenceTask_key_feature", + "_UI_EclipsePreferenceTask_type"), SetupPackage.Literals.ECLIPSE_PREFERENCE_TASK__KEY, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); } /** @@ -96,26 +87,16 @@ public class ToolPreferenceItemProvider extends ItemProviderAdapter implements I protected void addValuePropertyDescriptor(Object object) { itemPropertyDescriptors.add(createItemPropertyDescriptor( - ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), - getString("_UI_ToolPreference_value_feature"), - getString("_UI_PropertyDescriptor_description", "_UI_ToolPreference_value_feature", "_UI_ToolPreference_type"), - SetupPackage.Literals.TOOL_PREFERENCE__VALUE, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, - null, null)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public boolean hasChildren(Object object) - { - return hasChildren(object, true); + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_EclipsePreferenceTask_value_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_EclipsePreferenceTask_value_feature", + "_UI_EclipsePreferenceTask_type"), SetupPackage.Literals.ECLIPSE_PREFERENCE_TASK__VALUE, true, false, + false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); } /** - * This returns ToolPreference.gif. + * This returns EclipsePreferenceTask.gif. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -123,7 +104,7 @@ public class ToolPreferenceItemProvider extends ItemProviderAdapter implements I @Override public Object getImage(Object object) { - return overlayImage(object, getResourceLocator().getImage("full/obj16/ToolPreference")); + return overlayImage(object, getResourceLocator().getImage("full/obj16/EclipsePreferenceTask")); } /** @@ -135,16 +116,16 @@ public class ToolPreferenceItemProvider extends ItemProviderAdapter implements I @Override public String getText(Object object) { - String key = ((ToolPreference)object).getKey(); - String value = ((ToolPreference)object).getValue(); + String key = ((EclipsePreferenceTask)object).getKey(); + String value = ((EclipsePreferenceTask)object).getValue(); if (key != null && key.length() != 0) { - key = new Path(key).lastSegment(); + key = new Path(key).removeFirstSegments(1).toString(); } else if (value == null || value.length() == 0) { - return getString("_UI_ToolPreference_type"); + return getString("_UI_EclipsePreferenceTask_type"); } return "" + key + " = " + value; @@ -162,10 +143,10 @@ public class ToolPreferenceItemProvider extends ItemProviderAdapter implements I { updateChildren(notification); - switch (notification.getFeatureID(ToolPreference.class)) + switch (notification.getFeatureID(EclipsePreferenceTask.class)) { - case SetupPackage.TOOL_PREFERENCE__KEY: - case SetupPackage.TOOL_PREFERENCE__VALUE: + case SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY: + case SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); return; } @@ -185,16 +166,4 @@ public class ToolPreferenceItemProvider extends ItemProviderAdapter implements I super.collectNewChildDescriptors(newChildDescriptors, object); } - /** - * Return the resource locator for this item provider's resources. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public ResourceLocator getResourceLocator() - { - return SetupEditPlugin.INSTANCE; - } - } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipseVersionItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipseVersionItemProvider.java index c729eb3506..ec1c6ff5c4 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipseVersionItemProvider.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipseVersionItemProvider.java @@ -11,13 +11,9 @@ package org.eclipse.emf.cdo.releng.setup.provider; import org.eclipse.emf.cdo.releng.setup.EclipseVersion; -import org.eclipse.emf.cdo.releng.setup.SetupFactory; import org.eclipse.emf.cdo.releng.setup.SetupPackage; - import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.util.ResourceLocator; -import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; @@ -26,9 +22,7 @@ import org.eclipse.emf.edit.provider.IItemPropertySource; import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; -import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ViewerNotification; - import java.util.Collection; import java.util.List; @@ -38,7 +32,7 @@ import java.util.List; * <!-- end-user-doc --> * @generated */ -public class EclipseVersionItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, +public class EclipseVersionItemProvider extends ConfigurableItemItemProvider implements IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource { /** @@ -89,50 +83,6 @@ public class EclipseVersionItemProvider extends ItemProviderAdapter implements I } /** - * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an - * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or - * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) - { - if (childrenFeatures == null) - { - super.getChildrenFeatures(object); - childrenFeatures.add(SetupPackage.Literals.ECLIPSE_VERSION__DIRECTOR_CALL); - } - return childrenFeatures; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - protected EStructuralFeature getChildFeature(Object object, Object child) - { - // Check the type of the specified child object and return the proper feature to use for - // adding (see {@link AddCommand}) it as a child. - - return super.getChildFeature(object, child); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public boolean hasChildren(Object object) - { - return hasChildren(object, true); - } - - /** * This returns EclipseVersion.gif. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -175,9 +125,6 @@ public class EclipseVersionItemProvider extends ItemProviderAdapter implements I case SetupPackage.ECLIPSE_VERSION__VERSION: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); return; - case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL: - fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); - return; } super.notifyChanged(notification); } @@ -193,21 +140,6 @@ public class EclipseVersionItemProvider extends ItemProviderAdapter implements I protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { super.collectNewChildDescriptors(newChildDescriptors, object); - - newChildDescriptors.add(createChildParameter(SetupPackage.Literals.ECLIPSE_VERSION__DIRECTOR_CALL, - SetupFactory.eINSTANCE.createDirectorCall())); - } - - /** - * Return the resource locator for this item provider's resources. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public ResourceLocator getResourceLocator() - { - return SetupEditPlugin.INSTANCE; } } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/GitCloneItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/GitCloneTaskItemProvider.java index 1502c52e00..e08efe55b4 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/GitCloneItemProvider.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/GitCloneTaskItemProvider.java @@ -1,21 +1,12 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup.provider; -import org.eclipse.emf.cdo.releng.setup.GitClone; +import org.eclipse.emf.cdo.releng.setup.GitCloneTask; import org.eclipse.emf.cdo.releng.setup.SetupPackage; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.util.ResourceLocator; import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; @@ -24,19 +15,18 @@ import org.eclipse.emf.edit.provider.IItemPropertySource; import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; -import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ViewerNotification; import java.util.Collection; import java.util.List; /** - * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.GitClone} object. + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.GitCloneTask} object. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ -public class GitCloneItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, +public class GitCloneTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource { /** @@ -45,7 +35,7 @@ public class GitCloneItemProvider extends ItemProviderAdapter implements IEditin * <!-- end-user-doc --> * @generated */ - public GitCloneItemProvider(AdapterFactory adapterFactory) + public GitCloneTaskItemProvider(AdapterFactory adapterFactory) { super(adapterFactory); } @@ -64,6 +54,7 @@ public class GitCloneItemProvider extends ItemProviderAdapter implements IEditin super.getPropertyDescriptors(object); addNamePropertyDescriptor(object); + addRemoteNamePropertyDescriptor(object); addRemoteURIPropertyDescriptor(object); addCheckoutBranchPropertyDescriptor(object); } @@ -80,57 +71,65 @@ public class GitCloneItemProvider extends ItemProviderAdapter implements IEditin { itemPropertyDescriptors.add(createItemPropertyDescriptor( ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), - getString("_UI_GitClone_name_feature"), - getString("_UI_PropertyDescriptor_description", "_UI_GitClone_name_feature", "_UI_GitClone_type"), - SetupPackage.Literals.GIT_CLONE__NAME, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, - null)); + getString("_UI_GitCloneTask_name_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_GitCloneTask_name_feature", "_UI_GitCloneTask_type"), + SetupPackage.Literals.GIT_CLONE_TASK__NAME, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, null)); } /** - * This adds a property descriptor for the Remote URI feature. + * This adds a property descriptor for the Remote Name feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - protected void addRemoteURIPropertyDescriptor(Object object) + protected void addRemoteNamePropertyDescriptor(Object object) { - itemPropertyDescriptors.add(createItemPropertyDescriptor( - ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), - getString("_UI_GitClone_remoteURI_feature"), - getString("_UI_PropertyDescriptor_description", "_UI_GitClone_remoteURI_feature", "_UI_GitClone_type"), - SetupPackage.Literals.GIT_CLONE__REMOTE_URI, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, - null, null)); + itemPropertyDescriptors + .add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_GitCloneTask_remoteName_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_GitCloneTask_remoteName_feature", + "_UI_GitCloneTask_type"), SetupPackage.Literals.GIT_CLONE_TASK__REMOTE_NAME, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); } /** - * This adds a property descriptor for the Checkout Branch feature. + * This adds a property descriptor for the Remote URI feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - protected void addCheckoutBranchPropertyDescriptor(Object object) + protected void addRemoteURIPropertyDescriptor(Object object) { itemPropertyDescriptors.add(createItemPropertyDescriptor( ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), - getString("_UI_GitClone_checkoutBranch_feature"), - getString("_UI_PropertyDescriptor_description", "_UI_GitClone_checkoutBranch_feature", "_UI_GitClone_type"), - SetupPackage.Literals.GIT_CLONE__CHECKOUT_BRANCH, true, false, false, + getString("_UI_GitCloneTask_remoteURI_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_GitCloneTask_remoteURI_feature", "_UI_GitCloneTask_type"), + SetupPackage.Literals.GIT_CLONE_TASK__REMOTE_URI, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); } /** + * This adds a property descriptor for the Checkout Branch feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - @Override - public boolean hasChildren(Object object) + protected void addCheckoutBranchPropertyDescriptor(Object object) { - return hasChildren(object, true); + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_GitCloneTask_checkoutBranch_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_GitCloneTask_checkoutBranch_feature", + "_UI_GitCloneTask_type"), SetupPackage.Literals.GIT_CLONE_TASK__CHECKOUT_BRANCH, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); } /** - * This returns GitClone.gif. + * This returns GitCloneTask.gif. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -138,7 +137,7 @@ public class GitCloneItemProvider extends ItemProviderAdapter implements IEditin @Override public Object getImage(Object object) { - return overlayImage(object, getResourceLocator().getImage("full/obj16/GitClone")); + return overlayImage(object, getResourceLocator().getImage("full/obj16/GitCloneTask")); } /** @@ -150,11 +149,11 @@ public class GitCloneItemProvider extends ItemProviderAdapter implements IEditin @Override public String getText(Object object) { - String uri = ((GitClone)object).getRemoteURI(); - String branch = ((GitClone)object).getCheckoutBranch(); + String uri = ((GitCloneTask)object).getRemoteURI(); + String branch = ((GitCloneTask)object).getCheckoutBranch(); if ((uri == null || uri.length() == 0) && (branch == null || branch.length() == 0)) { - return getString("_UI_GitClone_type"); + return getString("_UI_GitCloneTask_type"); } return "" + uri + " (" + branch + ")"; @@ -172,11 +171,12 @@ public class GitCloneItemProvider extends ItemProviderAdapter implements IEditin { updateChildren(notification); - switch (notification.getFeatureID(GitClone.class)) + switch (notification.getFeatureID(GitCloneTask.class)) { - case SetupPackage.GIT_CLONE__NAME: - case SetupPackage.GIT_CLONE__REMOTE_URI: - case SetupPackage.GIT_CLONE__CHECKOUT_BRANCH: + case SetupPackage.GIT_CLONE_TASK__NAME: + case SetupPackage.GIT_CLONE_TASK__REMOTE_NAME: + case SetupPackage.GIT_CLONE_TASK__REMOTE_URI: + case SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); return; } @@ -196,16 +196,4 @@ public class GitCloneItemProvider extends ItemProviderAdapter implements IEditin super.collectNewChildDescriptors(newChildDescriptors, object); } - /** - * Return the resource locator for this item provider's resources. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public ResourceLocator getResourceLocator() - { - return SetupEditPlugin.INSTANCE; - } - } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/InstallableUnitItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/InstallableUnitItemProvider.java index 626906c9f8..7113ea59d9 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/InstallableUnitItemProvider.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/InstallableUnitItemProvider.java @@ -17,6 +17,7 @@ import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.util.ResourceLocator; import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IChildCreationExtender; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; @@ -168,7 +169,7 @@ public class InstallableUnitItemProvider extends ItemProviderAdapter implements @Override public ResourceLocator getResourceLocator() { - return SetupEditPlugin.INSTANCE; + return ((IChildCreationExtender)adapterFactory).getResourceLocator(); } } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/LinkLocationItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/LinkLocationTaskItemProvider.java index bca3dc48a8..078df0b8b2 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/LinkLocationItemProvider.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/LinkLocationTaskItemProvider.java @@ -1,21 +1,12 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup.provider; -import org.eclipse.emf.cdo.releng.setup.LinkLocation; +import org.eclipse.emf.cdo.releng.setup.LinkLocationTask; import org.eclipse.emf.cdo.releng.setup.SetupPackage; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.util.ResourceLocator; import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; @@ -24,19 +15,18 @@ import org.eclipse.emf.edit.provider.IItemPropertySource; import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; -import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ViewerNotification; import java.util.Collection; import java.util.List; /** - * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.LinkLocation} object. + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask} object. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ -public class LinkLocationItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, +public class LinkLocationTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource { /** @@ -45,7 +35,7 @@ public class LinkLocationItemProvider extends ItemProviderAdapter implements IEd * <!-- end-user-doc --> * @generated */ - public LinkLocationItemProvider(AdapterFactory adapterFactory) + public LinkLocationTaskItemProvider(AdapterFactory adapterFactory) { super(adapterFactory); } @@ -78,11 +68,12 @@ public class LinkLocationItemProvider extends ItemProviderAdapter implements IEd protected void addPathPropertyDescriptor(Object object) { itemPropertyDescriptors.add(createItemPropertyDescriptor( - ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), - getString("_UI_LinkLocation_path_feature"), - getString("_UI_PropertyDescriptor_description", "_UI_LinkLocation_path_feature", "_UI_LinkLocation_type"), - SetupPackage.Literals.LINK_LOCATION__PATH, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, - null, null)); + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_LinkLocationTask_path_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_LinkLocationTask_path_feature", + "_UI_LinkLocationTask_type"), SetupPackage.Literals.LINK_LOCATION_TASK__PATH, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); } /** @@ -94,26 +85,16 @@ public class LinkLocationItemProvider extends ItemProviderAdapter implements IEd protected void addNamePropertyDescriptor(Object object) { itemPropertyDescriptors.add(createItemPropertyDescriptor( - ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), - getString("_UI_LinkLocation_name_feature"), - getString("_UI_PropertyDescriptor_description", "_UI_LinkLocation_name_feature", "_UI_LinkLocation_type"), - SetupPackage.Literals.LINK_LOCATION__NAME, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, - null, null)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public boolean hasChildren(Object object) - { - return hasChildren(object, true); + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_LinkLocationTask_name_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_LinkLocationTask_name_feature", + "_UI_LinkLocationTask_type"), SetupPackage.Literals.LINK_LOCATION_TASK__NAME, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); } /** - * This returns LinkLocation.gif. + * This returns LinkLocationTask.gif. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -121,7 +102,7 @@ public class LinkLocationItemProvider extends ItemProviderAdapter implements IEd @Override public Object getImage(Object object) { - return overlayImage(object, getResourceLocator().getImage("full/obj16/LinkLocation")); + return overlayImage(object, getResourceLocator().getImage("full/obj16/LinkLocationTask")); } /** @@ -133,9 +114,9 @@ public class LinkLocationItemProvider extends ItemProviderAdapter implements IEd @Override public String getText(Object object) { - String label = ((LinkLocation)object).getPath(); - return label == null || label.length() == 0 ? getString("_UI_LinkLocation_type") - : getString("_UI_LinkLocation_type") + " " + label; + String label = ((LinkLocationTask)object).getPath(); + return label == null || label.length() == 0 ? getString("_UI_LinkLocationTask_type") + : getString("_UI_LinkLocationTask_type") + " " + label; } /** @@ -150,10 +131,10 @@ public class LinkLocationItemProvider extends ItemProviderAdapter implements IEd { updateChildren(notification); - switch (notification.getFeatureID(LinkLocation.class)) + switch (notification.getFeatureID(LinkLocationTask.class)) { - case SetupPackage.LINK_LOCATION__PATH: - case SetupPackage.LINK_LOCATION__NAME: + case SetupPackage.LINK_LOCATION_TASK__PATH: + case SetupPackage.LINK_LOCATION_TASK__NAME: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); return; } @@ -173,16 +154,4 @@ public class LinkLocationItemProvider extends ItemProviderAdapter implements IEd super.collectNewChildDescriptors(newChildDescriptors, object); } - /** - * Return the resource locator for this item provider's resources. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public ResourceLocator getResourceLocator() - { - return SetupEditPlugin.INSTANCE; - } - } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/OneTimeSetupTaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/OneTimeSetupTaskItemProvider.java new file mode 100644 index 0000000000..d0a42aa51d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/OneTimeSetupTaskItemProvider.java @@ -0,0 +1,127 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.provider; + +import org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import java.util.Collection; +import java.util.List; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class OneTimeSetupTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public OneTimeSetupTaskItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + addIdPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Id feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addIdPropertyDescriptor(Object object) + { + itemPropertyDescriptors + .add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_OneTimeSetupTask_id_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_OneTimeSetupTask_id_feature", + "_UI_OneTimeSetupTask_type"), SetupPackage.Literals.ONE_TIME_SETUP_TASK__ID, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) + { + String label = ((OneTimeSetupTask)object).getId(); + return label == null || label.length() == 0 ? getString("_UI_OneTimeSetupTask_type") + : getString("_UI_OneTimeSetupTask_type") + " " + label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(OneTimeSetupTask.class)) + { + case SetupPackage.ONE_TIME_SETUP_TASK__ID: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/P2RepositoryItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/P2RepositoryItemProvider.java index 2fe20cbadc..1bd27fc50a 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/P2RepositoryItemProvider.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/P2RepositoryItemProvider.java @@ -17,6 +17,7 @@ import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.util.ResourceLocator; import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IChildCreationExtender; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; @@ -163,7 +164,7 @@ public class P2RepositoryItemProvider extends ItemProviderAdapter implements IEd @Override public ResourceLocator getResourceLocator() { - return SetupEditPlugin.INSTANCE; + return ((IChildCreationExtender)adapterFactory).getResourceLocator(); } } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/P2TaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/P2TaskItemProvider.java new file mode 100644 index 0000000000..0091048daf --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/P2TaskItemProvider.java @@ -0,0 +1,157 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.provider; + +import org.eclipse.emf.cdo.releng.setup.P2Task; +import org.eclipse.emf.cdo.releng.setup.SetupFactory; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ViewerNotification; +import java.util.Collection; +import java.util.List; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.P2Task} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class P2TaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public P2TaskItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) + { + if (childrenFeatures == null) + { + super.getChildrenFeatures(object); + childrenFeatures.add(SetupPackage.Literals.P2_TASK__P2_REPOSITORIES); + childrenFeatures.add(SetupPackage.Literals.P2_TASK__INSTALLABLE_UNITS); + } + return childrenFeatures; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EStructuralFeature getChildFeature(Object object, Object child) + { + // Check the type of the specified child object and return the proper feature to use for + // adding (see {@link AddCommand}) it as a child. + + return super.getChildFeature(object, child); + } + + /** + * This returns P2Task.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/P2Task")); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) + { + return getString("_UI_P2Task_type"); + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(P2Task.class)) + { + case SetupPackage.P2_TASK__P2_REPOSITORIES: + case SetupPackage.P2_TASK__INSTALLABLE_UNITS: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.P2_TASK__P2_REPOSITORIES, + SetupFactory.eINSTANCE.createP2Repository())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.P2_TASK__INSTALLABLE_UNITS, + SetupFactory.eINSTANCE.createInstallableUnit())); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/PreferencesItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/PreferencesItemProvider.java index 729cc60242..bf04c2f0a3 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/PreferencesItemProvider.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/PreferencesItemProvider.java @@ -11,11 +11,10 @@ package org.eclipse.emf.cdo.releng.setup.provider; import org.eclipse.emf.cdo.releng.setup.Preferences; -import org.eclipse.emf.cdo.releng.setup.SetupFactory; import org.eclipse.emf.cdo.releng.setup.SetupPackage; + import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; @@ -25,6 +24,7 @@ import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; import org.eclipse.emf.edit.provider.ViewerNotification; + import java.util.Collection; import java.util.List; @@ -34,7 +34,7 @@ import java.util.List; * <!-- end-user-doc --> * @generated */ -public class PreferencesItemProvider extends ToolInstallationItemProvider implements IEditingDomainItemProvider, +public class PreferencesItemProvider extends SetupTaskContainerItemProvider implements IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource { /** @@ -119,39 +119,6 @@ public class PreferencesItemProvider extends ToolInstallationItemProvider implem } /** - * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an - * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or - * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) - { - if (childrenFeatures == null) - { - super.getChildrenFeatures(object); - childrenFeatures.add(SetupPackage.Literals.PREFERENCES__LINK_LOCATIONS); - } - return childrenFeatures; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - protected EStructuralFeature getChildFeature(Object object, Object child) - { - // Check the type of the specified child object and return the proper feature to use for - // adding (see {@link AddCommand}) it as a child. - - return super.getChildFeature(object, child); - } - - /** * This returns Preferences.gif. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -196,9 +163,6 @@ public class PreferencesItemProvider extends ToolInstallationItemProvider implem case SetupPackage.PREFERENCES__GIT_PREFIX: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); return; - case SetupPackage.PREFERENCES__LINK_LOCATIONS: - fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); - return; } super.notifyChanged(notification); } @@ -214,9 +178,6 @@ public class PreferencesItemProvider extends ToolInstallationItemProvider implem protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { super.collectNewChildDescriptors(newChildDescriptors, object); - - newChildDescriptors.add(createChildParameter(SetupPackage.Literals.PREFERENCES__LINK_LOCATIONS, - SetupFactory.eINSTANCE.createLinkLocation())); } } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ProjectItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ProjectItemProvider.java index f68b2d32fb..88e402947f 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ProjectItemProvider.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ProjectItemProvider.java @@ -14,7 +14,6 @@ import org.eclipse.emf.cdo.releng.setup.Project; import org.eclipse.emf.cdo.releng.setup.SetupFactory; import org.eclipse.emf.cdo.releng.setup.SetupPackage; -import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsFactory; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.ecore.EStructuralFeature; @@ -37,7 +36,7 @@ import java.util.List; * <!-- end-user-doc --> * @generated */ -public class ProjectItemProvider extends ToolInstallationItemProvider implements IEditingDomainItemProvider, +public class ProjectItemProvider extends ConfigurableItemItemProvider implements IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource { /** @@ -100,8 +99,6 @@ public class ProjectItemProvider extends ToolInstallationItemProvider implements { super.getChildrenFeatures(object); childrenFeatures.add(SetupPackage.Literals.PROJECT__BRANCHES); - childrenFeatures.add(SetupPackage.Literals.PROJECT__API_BASELINES); - childrenFeatures.add(SetupPackage.Literals.PROJECT__WORKING_SET_GROUP); } return childrenFeatures; } @@ -163,8 +160,6 @@ public class ProjectItemProvider extends ToolInstallationItemProvider implements fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); return; case SetupPackage.PROJECT__BRANCHES: - case SetupPackage.PROJECT__API_BASELINES: - case SetupPackage.PROJECT__WORKING_SET_GROUP: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); return; } @@ -185,12 +180,6 @@ public class ProjectItemProvider extends ToolInstallationItemProvider implements newChildDescriptors.add(createChildParameter(SetupPackage.Literals.PROJECT__BRANCHES, SetupFactory.eINSTANCE.createBranch())); - - newChildDescriptors.add(createChildParameter(SetupPackage.Literals.PROJECT__API_BASELINES, - SetupFactory.eINSTANCE.createApiBaseline())); - - newChildDescriptors.add(createChildParameter(SetupPackage.Literals.PROJECT__WORKING_SET_GROUP, - WorkingSetsFactory.eINSTANCE.createWorkingSetGroup())); } } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ResourceCopyTaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ResourceCopyTaskItemProvider.java new file mode 100644 index 0000000000..5bf51eb602 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ResourceCopyTaskItemProvider.java @@ -0,0 +1,160 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.provider; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskScope; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class ResourceCopyTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ResourceCopyTaskItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + addSourceURLPropertyDescriptor(object); + addTargetURLPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Source URL feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addSourceURLPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ResourceCopyTask_sourceURL_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ResourceCopyTask_sourceURL_feature", + "_UI_ResourceCopyTask_type"), SetupPackage.Literals.RESOURCE_COPY_TASK__SOURCE_URL, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); + } + + /** + * This adds a property descriptor for the Target URL feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addTargetURLPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ResourceCopyTask_targetURL_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_ResourceCopyTask_targetURL_feature", + "_UI_ResourceCopyTask_type"), SetupPackage.Literals.RESOURCE_COPY_TASK__TARGET_URL, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); + } + + /** + * This returns ResourceCopyTask.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/ResourceCopyTask")); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) + { + SetupTaskScope labelValue = ((ResourceCopyTask)object).getScope(); + String label = labelValue == null ? null : labelValue.toString(); + return label == null || label.length() == 0 ? getString("_UI_ResourceCopyTask_type") + : getString("_UI_ResourceCopyTask_type") + " " + label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(ResourceCopyTask.class)) + { + case SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL: + case SetupPackage.RESOURCE_COPY_TASK__TARGET_URL: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupEditPlugin.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupEditPlugin.java index 304ee79e5b..c4e3d0b87a 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupEditPlugin.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupEditPlugin.java @@ -10,7 +10,9 @@ */ package org.eclipse.emf.cdo.releng.setup.provider; +import org.eclipse.emf.cdo.releng.predicates.provider.PredicatesEditPlugin; import org.eclipse.emf.cdo.releng.workingsets.provider.WorkingSetsEditPlugin; + import org.eclipse.emf.common.EMFPlugin; import org.eclipse.emf.common.util.ResourceLocator; @@ -46,7 +48,7 @@ public final class SetupEditPlugin extends EMFPlugin */ public SetupEditPlugin() { - super(new ResourceLocator[] { WorkingSetsEditPlugin.INSTANCE, }); + super(new ResourceLocator[] { WorkingSetsEditPlugin.INSTANCE, PredicatesEditPlugin.INSTANCE, }); } /** diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupItemProvider.java index 24fa6c1389..fc4dfcf618 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupItemProvider.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupItemProvider.java @@ -19,6 +19,7 @@ import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.util.ResourceLocator; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IChildCreationExtender; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; @@ -117,7 +118,6 @@ public class SetupItemProvider extends ItemProviderAdapter implements IEditingDo childrenFeatures.add(SetupPackage.Literals.SETUP__BRANCH); childrenFeatures.add(SetupPackage.Literals.SETUP__ECLIPSE_VERSION); childrenFeatures.add(SetupPackage.Literals.SETUP__PREFERENCES); - childrenFeatures.add(SetupPackage.Literals.SETUP__UPDATE_LOCATIONS); } return childrenFeatures; } @@ -186,7 +186,6 @@ public class SetupItemProvider extends ItemProviderAdapter implements IEditingDo switch (notification.getFeatureID(Setup.class)) { case SetupPackage.SETUP__PREFERENCES: - case SetupPackage.SETUP__UPDATE_LOCATIONS: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); return; } @@ -207,9 +206,6 @@ public class SetupItemProvider extends ItemProviderAdapter implements IEditingDo newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP__PREFERENCES, SetupFactory.eINSTANCE.createPreferences())); - - newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP__UPDATE_LOCATIONS, - SetupFactory.eINSTANCE.createP2Repository())); } /** @@ -221,7 +217,7 @@ public class SetupItemProvider extends ItemProviderAdapter implements IEditingDo @Override public ResourceLocator getResourceLocator() { - return SetupEditPlugin.INSTANCE; + return ((IChildCreationExtender)adapterFactory).getResourceLocator(); } } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupItemProviderAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupItemProviderAdapterFactory.java index d2d21a513e..ff8b513a6f 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupItemProviderAdapterFactory.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupItemProviderAdapterFactory.java @@ -10,15 +10,20 @@ */ package org.eclipse.emf.cdo.releng.setup.provider; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; import org.eclipse.emf.cdo.releng.setup.util.SetupAdapterFactory; import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.edit.domain.EditingDomain; import org.eclipse.emf.edit.provider.ChangeNotifier; +import org.eclipse.emf.edit.provider.ChildCreationExtenderManager; import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.ComposedAdapterFactory; import org.eclipse.emf.edit.provider.IChangeNotifier; +import org.eclipse.emf.edit.provider.IChildCreationExtender; import org.eclipse.emf.edit.provider.IDisposable; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; @@ -29,6 +34,7 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import java.util.ArrayList; import java.util.Collection; +import java.util.List; /** * This is the factory that is used to provide the interfaces needed to support Viewers. @@ -40,7 +46,7 @@ import java.util.Collection; * @generated */ public class SetupItemProviderAdapterFactory extends SetupAdapterFactory implements ComposeableAdapterFactory, - IChangeNotifier, IDisposable + IChangeNotifier, IDisposable, IChildCreationExtender { /** * This keeps track of the root adapter factory that delegates to this adapter factory. @@ -59,6 +65,15 @@ public class SetupItemProviderAdapterFactory extends SetupAdapterFactory impleme protected IChangeNotifier changeNotifier = new ChangeNotifier(); /** + * This helps manage the child creation extenders. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager( + SetupEditPlugin.INSTANCE, SetupPackage.eNS_URI); + + /** * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -157,6 +172,56 @@ public class SetupItemProviderAdapterFactory extends SetupAdapterFactory impleme } /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ApiBaselineTaskItemProvider apiBaselineTaskItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createApiBaselineTaskAdapter() + { + if (apiBaselineTaskItemProvider == null) + { + apiBaselineTaskItemProvider = new ApiBaselineTaskItemProvider(this); + } + + return apiBaselineTaskItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.GitCloneTask} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected GitCloneTaskItemProvider gitCloneTaskItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.GitCloneTask}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createGitCloneTaskAdapter() + { + if (gitCloneTaskItemProvider == null) + { + gitCloneTaskItemProvider = new GitCloneTaskItemProvider(this); + } + + return gitCloneTaskItemProvider; + } + + /** * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.EclipseVersion} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -182,28 +247,28 @@ public class SetupItemProviderAdapterFactory extends SetupAdapterFactory impleme } /** - * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.DirectorCall} instances. + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.P2Task} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - protected DirectorCallItemProvider directorCallItemProvider; + protected P2TaskItemProvider p2TaskItemProvider; /** - * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.DirectorCall}. + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.P2Task}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override - public Adapter createDirectorCallAdapter() + public Adapter createP2TaskAdapter() { - if (directorCallItemProvider == null) + if (p2TaskItemProvider == null) { - directorCallItemProvider = new DirectorCallItemProvider(this); + p2TaskItemProvider = new P2TaskItemProvider(this); } - return directorCallItemProvider; + return p2TaskItemProvider; } /** @@ -257,128 +322,228 @@ public class SetupItemProviderAdapterFactory extends SetupAdapterFactory impleme } /** - * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.ApiBaseline} instances. + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.Setup} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - protected ApiBaselineItemProvider apiBaselineItemProvider; + protected SetupItemProvider setupItemProvider; /** - * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.ApiBaseline}. + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.Setup}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override - public Adapter createApiBaselineAdapter() + public Adapter createSetupAdapter() { - if (apiBaselineItemProvider == null) + if (setupItemProvider == null) { - apiBaselineItemProvider = new ApiBaselineItemProvider(this); + setupItemProvider = new SetupItemProvider(this); } - return apiBaselineItemProvider; + return setupItemProvider; } /** - * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.GitClone} instances. + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - protected GitCloneItemProvider gitCloneItemProvider; + protected WorkingSetTaskItemProvider workingSetTaskItemProvider; /** - * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.GitClone}. + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override - public Adapter createGitCloneAdapter() + public Adapter createWorkingSetTaskAdapter() { - if (gitCloneItemProvider == null) + if (workingSetTaskItemProvider == null) { - gitCloneItemProvider = new GitCloneItemProvider(this); + workingSetTaskItemProvider = new WorkingSetTaskItemProvider(this); } - return gitCloneItemProvider; + return workingSetTaskItemProvider; } /** - * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.Setup} instances. + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - protected SetupItemProvider setupItemProvider; + protected ResourceCopyTaskItemProvider resourceCopyTaskItemProvider; /** - * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.Setup}. + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createResourceCopyTaskAdapter() + { + if (resourceCopyTaskItemProvider == null) + { + resourceCopyTaskItemProvider = new ResourceCopyTaskItemProvider(this); + } + + return resourceCopyTaskItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.TextModifyTask} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TextModifyTaskItemProvider textModifyTaskItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.TextModifyTask}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createTextModifyTaskAdapter() + { + if (textModifyTaskItemProvider == null) + { + textModifyTaskItemProvider = new TextModifyTaskItemProvider(this); + } + + return textModifyTaskItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.TextModification} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TextModificationItemProvider textModificationItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.TextModification}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createTextModificationAdapter() + { + if (textModificationItemProvider == null) + { + textModificationItemProvider = new TextModificationItemProvider(this); + } + + return textModificationItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EclipseIniTaskItemProvider eclipseIniTaskItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override - public Adapter createSetupAdapter() + public Adapter createEclipseIniTaskAdapter() { - if (setupItemProvider == null) + if (eclipseIniTaskItemProvider == null) { - setupItemProvider = new SetupItemProvider(this); + eclipseIniTaskItemProvider = new EclipseIniTaskItemProvider(this); } - return setupItemProvider; + return eclipseIniTaskItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CompoundSetupTaskItemProvider compoundSetupTaskItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createCompoundSetupTaskAdapter() + { + if (compoundSetupTaskItemProvider == null) + { + compoundSetupTaskItemProvider = new CompoundSetupTaskItemProvider(this); + } + + return compoundSetupTaskItemProvider; } /** - * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.ToolPreference} instances. + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - protected ToolPreferenceItemProvider toolPreferenceItemProvider; + protected BuckminsterImportTaskItemProvider buckminsterImportTaskItemProvider; /** - * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.ToolPreference}. + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override - public Adapter createToolPreferenceAdapter() + public Adapter createBuckminsterImportTaskAdapter() { - if (toolPreferenceItemProvider == null) + if (buckminsterImportTaskItemProvider == null) { - toolPreferenceItemProvider = new ToolPreferenceItemProvider(this); + buckminsterImportTaskItemProvider = new BuckminsterImportTaskItemProvider(this); } - return toolPreferenceItemProvider; + return buckminsterImportTaskItemProvider; } /** - * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.LinkLocation} instances. + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.StringVariableTask} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - protected LinkLocationItemProvider linkLocationItemProvider; + protected StringVariableTaskItemProvider stringVariableTaskItemProvider; /** - * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.LinkLocation}. + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.StringVariableTask}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override - public Adapter createLinkLocationAdapter() + public Adapter createStringVariableTaskAdapter() { - if (linkLocationItemProvider == null) + if (stringVariableTaskItemProvider == null) { - linkLocationItemProvider = new LinkLocationItemProvider(this); + stringVariableTaskItemProvider = new StringVariableTaskItemProvider(this); } - return linkLocationItemProvider; + return stringVariableTaskItemProvider; } /** @@ -407,6 +572,56 @@ public class SetupItemProviderAdapterFactory extends SetupAdapterFactory impleme } /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected LinkLocationTaskItemProvider linkLocationTaskItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createLinkLocationTaskAdapter() + { + if (linkLocationTaskItemProvider == null) + { + linkLocationTaskItemProvider = new LinkLocationTaskItemProvider(this); + } + + return linkLocationTaskItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EclipsePreferenceTaskItemProvider eclipsePreferenceTaskItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createEclipsePreferenceTaskAdapter() + { + if (eclipsePreferenceTaskItemProvider == null) + { + eclipsePreferenceTaskItemProvider = new EclipsePreferenceTaskItemProvider(this); + } + + return eclipsePreferenceTaskItemProvider; + } + + /** * This returns the root adapter factory that contains this factory. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -472,6 +687,36 @@ public class SetupItemProviderAdapterFactory extends SetupAdapterFactory impleme } /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List<IChildCreationExtender> getChildCreationExtenders() + { + return childCreationExtenderManager.getChildCreationExtenders(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain) + { + return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ResourceLocator getResourceLocator() + { + return childCreationExtenderManager; + } + + /** * This adds a listener. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -517,32 +762,48 @@ public class SetupItemProviderAdapterFactory extends SetupAdapterFactory impleme */ public void dispose() { - if (preferencesItemProvider != null) - preferencesItemProvider.dispose(); - if (linkLocationItemProvider != null) - linkLocationItemProvider.dispose(); - if (toolPreferenceItemProvider != null) - toolPreferenceItemProvider.dispose(); if (eclipseVersionItemProvider != null) eclipseVersionItemProvider.dispose(); - if (directorCallItemProvider != null) - directorCallItemProvider.dispose(); - if (installableUnitItemProvider != null) - installableUnitItemProvider.dispose(); - if (p2RepositoryItemProvider != null) - p2RepositoryItemProvider.dispose(); if (configurationItemProvider != null) configurationItemProvider.dispose(); if (projectItemProvider != null) projectItemProvider.dispose(); if (branchItemProvider != null) branchItemProvider.dispose(); - if (apiBaselineItemProvider != null) - apiBaselineItemProvider.dispose(); - if (gitCloneItemProvider != null) - gitCloneItemProvider.dispose(); + if (preferencesItemProvider != null) + preferencesItemProvider.dispose(); if (setupItemProvider != null) setupItemProvider.dispose(); + if (compoundSetupTaskItemProvider != null) + compoundSetupTaskItemProvider.dispose(); + if (eclipseIniTaskItemProvider != null) + eclipseIniTaskItemProvider.dispose(); + if (linkLocationTaskItemProvider != null) + linkLocationTaskItemProvider.dispose(); + if (p2TaskItemProvider != null) + p2TaskItemProvider.dispose(); + if (installableUnitItemProvider != null) + installableUnitItemProvider.dispose(); + if (p2RepositoryItemProvider != null) + p2RepositoryItemProvider.dispose(); + if (buckminsterImportTaskItemProvider != null) + buckminsterImportTaskItemProvider.dispose(); + if (apiBaselineTaskItemProvider != null) + apiBaselineTaskItemProvider.dispose(); + if (gitCloneTaskItemProvider != null) + gitCloneTaskItemProvider.dispose(); + if (eclipsePreferenceTaskItemProvider != null) + eclipsePreferenceTaskItemProvider.dispose(); + if (stringVariableTaskItemProvider != null) + stringVariableTaskItemProvider.dispose(); + if (workingSetTaskItemProvider != null) + workingSetTaskItemProvider.dispose(); + if (resourceCopyTaskItemProvider != null) + resourceCopyTaskItemProvider.dispose(); + if (textModifyTaskItemProvider != null) + textModifyTaskItemProvider.dispose(); + if (textModificationItemProvider != null) + textModificationItemProvider.dispose(); } } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/DirectorCallItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupTaskContainerItemProvider.java index 889cb6a6ee..61b405bc40 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/DirectorCallItemProvider.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupTaskContainerItemProvider.java @@ -1,25 +1,15 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup.provider; -import org.eclipse.emf.cdo.releng.setup.DirectorCall; -import org.eclipse.emf.cdo.releng.setup.InstallableUnit; import org.eclipse.emf.cdo.releng.setup.SetupFactory; import org.eclipse.emf.cdo.releng.setup.SetupPackage; - +import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.util.EList; import org.eclipse.emf.common.util.ResourceLocator; import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.provider.IChildCreationExtender; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; @@ -28,30 +18,25 @@ import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ViewerNotification; - import java.util.Collection; import java.util.List; /** - * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.DirectorCall} object. + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.SetupTaskContainer} object. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ -public class DirectorCallItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, +public class SetupTaskContainerItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource { - private static final String PREFIX = "org.eclipse."; - - private static final String SUFFIX = ".feature.group"; - /** * This constructs an instance from a factory and a notifier. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public DirectorCallItemProvider(AdapterFactory adapterFactory) + public SetupTaskContainerItemProvider(AdapterFactory adapterFactory) { super(adapterFactory); } @@ -87,8 +72,7 @@ public class DirectorCallItemProvider extends ItemProviderAdapter implements IEd if (childrenFeatures == null) { super.getChildrenFeatures(object); - childrenFeatures.add(SetupPackage.Literals.DIRECTOR_CALL__INSTALLABLE_UNITS); - childrenFeatures.add(SetupPackage.Literals.DIRECTOR_CALL__P2_REPOSITORIES); + childrenFeatures.add(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS); } return childrenFeatures; } @@ -119,56 +103,15 @@ public class DirectorCallItemProvider extends ItemProviderAdapter implements IEd } /** - * This returns DirectorCall.gif. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Object getImage(Object object) - { - return overlayImage(object, getResourceLocator().getImage("full/obj16/DirectorCall")); - } - - /** * This returns the label text for the adapted class. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @generated NOT + * @generated */ @Override public String getText(Object object) { - DirectorCall directorCall = (DirectorCall)object; - EList<InstallableUnit> installableUnits = directorCall.getInstallableUnits(); - if (!installableUnits.isEmpty()) - { - StringBuilder builder = new StringBuilder(); - for (InstallableUnit installableUnit : installableUnits) - { - if (builder.length() > 0) - { - builder.append(", "); - } - - String id = installableUnit.getId(); - if (id.startsWith(PREFIX)) - { - id = id.substring(PREFIX.length()); - } - - if (id.endsWith(SUFFIX)) - { - id = id.substring(0, id.length() - SUFFIX.length()); - } - - builder.append(id); - } - - return getString("_UI_DirectorCall_type") + " (" + builder + ")"; - } - - return getString("_UI_DirectorCall_type"); + return getString("_UI_SetupTaskContainer_type"); } /** @@ -183,10 +126,9 @@ public class DirectorCallItemProvider extends ItemProviderAdapter implements IEd { updateChildren(notification); - switch (notification.getFeatureID(DirectorCall.class)) + switch (notification.getFeatureID(SetupTaskContainer.class)) { - case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS: - case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES: + case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); return; } @@ -205,11 +147,41 @@ public class DirectorCallItemProvider extends ItemProviderAdapter implements IEd { super.collectNewChildDescriptors(newChildDescriptors, object); - newChildDescriptors.add(createChildParameter(SetupPackage.Literals.DIRECTOR_CALL__INSTALLABLE_UNITS, - SetupFactory.eINSTANCE.createInstallableUnit())); + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createCompoundSetupTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createEclipseIniTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createLinkLocationTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createP2Task())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createBuckminsterImportTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createApiBaselineTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createGitCloneTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createEclipsePreferenceTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createStringVariableTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createWorkingSetTask())); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createResourceCopyTask())); - newChildDescriptors.add(createChildParameter(SetupPackage.Literals.DIRECTOR_CALL__P2_REPOSITORIES, - SetupFactory.eINSTANCE.createP2Repository())); + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS, + SetupFactory.eINSTANCE.createTextModifyTask())); } /** @@ -221,7 +193,7 @@ public class DirectorCallItemProvider extends ItemProviderAdapter implements IEd @Override public ResourceLocator getResourceLocator() { - return SetupEditPlugin.INSTANCE; + return ((IChildCreationExtender)adapterFactory).getResourceLocator(); } } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupTaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupTaskItemProvider.java new file mode 100644 index 0000000000..5cf6ac990b --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupTaskItemProvider.java @@ -0,0 +1,349 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.provider; + +import org.eclipse.emf.cdo.releng.setup.Configuration; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupTaskScope; +import org.eclipse.emf.cdo.releng.setup.Trigger; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IChildCreationExtender; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.SetupTask} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class SetupTaskItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + private static final Map<Set<Trigger>, IItemLabelProvider> EXCLUSION_LABEL_PROVIDERS = new HashMap<Set<Trigger>, IItemLabelProvider>(); + + static + { + for (Set<Trigger> validTriggers : Trigger.LITERALS.keySet()) + { + final Map<Set<Trigger>, String> exclusionLabels = new HashMap<Set<Trigger>, String>(); + + for (Set<Trigger> triggers : Trigger.LITERALS.keySet()) + { + Set<Trigger> compliment = new LinkedHashSet<Trigger>(validTriggers); + compliment.removeAll(triggers); + exclusionLabels.put(triggers, Trigger.LITERALS.get(compliment)); + } + + EXCLUSION_LABEL_PROVIDERS.put(validTriggers, new IItemLabelProvider() + { + public String getText(Object object) + { + return exclusionLabels.get(object); + } + + public Object getImage(Object object) + { + return null; + } + }); + } + } + + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SetupTaskItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + addRequirementsPropertyDescriptor(object); + addRestrictionsPropertyDescriptor(object); + addScopePropertyDescriptor(object); + addExcludedTriggersPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Requirements feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + protected void addRequirementsPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory) + .getRootAdapterFactory(), getResourceLocator(), getString("_UI_SetupTask_requirements_feature"), getString( + "_UI_PropertyDescriptor_description", "_UI_SetupTask_requirements_feature", "_UI_SetupTask_type"), + SetupPackage.Literals.SETUP_TASK__REQUIREMENTS, true, false, true, null, null, null) + { + private IItemLabelProvider labelProvider = new HierarchicalItemLabelProvider(itemDelegator); + + @Override + public IItemLabelProvider getLabelProvider(Object object) + { + return labelProvider; + } + + @Override + public Collection<?> getChoiceOfValues(Object object) + { + SetupTask setupTask = (SetupTask)object; + Collection<?> result = new ArrayList<Object>(super.getChoiceOfValues(object)); + for (Iterator<?> it = result.iterator(); it.hasNext();) + { + Object value = it.next(); + if (value instanceof SetupTask && ((SetupTask)value).requires(setupTask)) + { + // Remove items that would cause a circularity. + it.remove(); + } + } + return result; + } + + }); + } + + /** + * This adds a property descriptor for the Restrictions feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + protected void addRestrictionsPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory) + .getRootAdapterFactory(), getResourceLocator(), getString("_UI_SetupTask_restrictions_feature"), getString( + "_UI_PropertyDescriptor_description", "_UI_SetupTask_restrictions_feature", "_UI_SetupTask_type"), + SetupPackage.Literals.SETUP_TASK__RESTRICTIONS, true, false, true, null, null, null) + { + private IItemLabelProvider labelProvider = new HierarchicalItemLabelProvider(itemDelegator); + + @Override + public IItemLabelProvider getLabelProvider(Object object) + { + return labelProvider; + } + }); + } + + /** + * This adds a property descriptor for the Scope feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addScopePropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), + getString("_UI_SetupTask_scope_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_SetupTask_scope_feature", "_UI_SetupTask_type"), + SetupPackage.Literals.SETUP_TASK__SCOPE, false, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, + null)); + } + + /** + * This adds a property descriptor for the Excluded Triggers feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + protected void addExcludedTriggersPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory) + .getRootAdapterFactory(), getResourceLocator(), getString("_UI_SetupTask_excludedTriggers_feature"), getString( + "_UI_PropertyDescriptor_description", "_UI_SetupTask_excludedTriggers_feature", "_UI_SetupTask_type"), + SetupPackage.Literals.SETUP_TASK__EXCLUDED_TRIGGERS, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null) + { + @Override + public IItemLabelProvider getLabelProvider(Object object) + { + final SetupTask setupTask = (SetupTask)object; + return EXCLUSION_LABEL_PROVIDERS.get(setupTask.getValidTriggers()); + } + + @Override + public String getDisplayName(Object object) + { + return "Triggers"; + } + + @Override + public String getDescription(Object object) + { + return "The triggers for which the task is applicable"; + } + + @Override + public Collection<?> getChoiceOfValues(Object object) + { + SetupTask setupTask = (SetupTask)object; + Set<Trigger> validTriggers = setupTask.getValidTriggers(); + List<Set<Trigger>> result = new ArrayList<Set<Trigger>>(Trigger.LITERALS.keySet()); + for (Iterator<Set<Trigger>> it = result.iterator(); it.hasNext();) + { + if (!validTriggers.containsAll(it.next())) + { + it.remove(); + } + } + Collections.reverse(result); + return result; + } + }); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean hasChildren(Object object) + { + return hasChildren(object, true); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) + { + SetupTaskScope labelValue = ((SetupTask)object).getScope(); + String label = labelValue == null ? null : labelValue.toString(); + return label == null || label.length() == 0 ? getString("_UI_SetupTask_type") : getString("_UI_SetupTask_type") + + " " + label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(SetupTask.class)) + { + case SetupPackage.SETUP_TASK__SCOPE: + case SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() + { + return ((IChildCreationExtender)adapterFactory).getResourceLocator(); + } + + /** + * @author Eike Stepper + */ + private static class HierarchicalItemLabelProvider implements IItemLabelProvider + { + private AdapterFactoryItemDelegator itemDelegator; + + public HierarchicalItemLabelProvider(AdapterFactoryItemDelegator itemDelegator) + { + this.itemDelegator = itemDelegator; + } + + public String getText(Object object) + { + StringBuilder builder = new StringBuilder(); + while (object != null && !(object instanceof Configuration)) + { + if (builder.length() != 0) + { + builder.insert(0, " - "); + } + + String text = itemDelegator.getText(object); + builder.insert(0, text); + + object = itemDelegator.getParent(object); + } + + return builder.toString(); + } + + public Object getImage(Object object) + { + return itemDelegator.getImage(object); + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/StringVariableTaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/StringVariableTaskItemProvider.java new file mode 100644 index 0000000000..6607cd115c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/StringVariableTaskItemProvider.java @@ -0,0 +1,188 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.provider; + +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.StringVariableTask; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import org.eclipse.core.runtime.Path; + +import java.util.Collection; +import java.util.List; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.StringVariableTask} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class StringVariableTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public StringVariableTaskItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + addNamePropertyDescriptor(object); + addValuePropertyDescriptor(object); + addDescriptionPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Name feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addNamePropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_StringVariableTask_name_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_StringVariableTask_name_feature", + "_UI_StringVariableTask_type"), SetupPackage.Literals.STRING_VARIABLE_TASK__NAME, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); + } + + /** + * This adds a property descriptor for the Value feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addValuePropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_StringVariableTask_value_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_StringVariableTask_value_feature", + "_UI_StringVariableTask_type"), SetupPackage.Literals.STRING_VARIABLE_TASK__VALUE, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); + } + + /** + * This adds a property descriptor for the Description feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addDescriptionPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_StringVariableTask_description_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_StringVariableTask_description_feature", + "_UI_StringVariableTask_type"), SetupPackage.Literals.STRING_VARIABLE_TASK__DESCRIPTION, true, false, + false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); + } + + /** + * This returns StringVariableTask.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/StringVariableTask")); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) + { + String name = ((StringVariableTask)object).getName(); + String value = ((StringVariableTask)object).getValue(); + + if (name != null && name.length() != 0) + { + name = new Path(name).lastSegment(); + } + else if (value == null || value.length() == 0) + { + return getString("_UI_StringVariableTask_type"); + } + + return "" + name + " = " + value; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(StringVariableTask.class)) + { + case SetupPackage.STRING_VARIABLE_TASK__NAME: + case SetupPackage.STRING_VARIABLE_TASK__VALUE: + case SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ApiBaselineItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/TextModificationItemProvider.java index ac2f7cf9cc..6c0a77f4ac 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ApiBaselineItemProvider.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/TextModificationItemProvider.java @@ -1,22 +1,20 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup.provider; -import org.eclipse.emf.cdo.releng.setup.ApiBaseline; +import java.util.Collection; +import java.util.List; + import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.TextModification; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; + import org.eclipse.emf.common.util.ResourceLocator; + import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IChildCreationExtender; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; @@ -27,16 +25,13 @@ import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ViewerNotification; -import java.util.Collection; -import java.util.List; - /** - * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.ApiBaseline} object. + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.TextModification} object. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ -public class ApiBaselineItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, +public class TextModificationItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource { /** @@ -45,7 +40,7 @@ public class ApiBaselineItemProvider extends ItemProviderAdapter implements IEdi * <!-- end-user-doc --> * @generated */ - public ApiBaselineItemProvider(AdapterFactory adapterFactory) + public TextModificationItemProvider(AdapterFactory adapterFactory) { super(adapterFactory); } @@ -63,41 +58,43 @@ public class ApiBaselineItemProvider extends ItemProviderAdapter implements IEdi { super.getPropertyDescriptors(object); - addVersionPropertyDescriptor(object); - addZipLocationPropertyDescriptor(object); + addPatternPropertyDescriptor(object); + addSubstitutionsPropertyDescriptor(object); } return itemPropertyDescriptors; } /** - * This adds a property descriptor for the Version feature. + * This adds a property descriptor for the Pattern feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - protected void addVersionPropertyDescriptor(Object object) + protected void addPatternPropertyDescriptor(Object object) { itemPropertyDescriptors.add(createItemPropertyDescriptor( - ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), - getString("_UI_ApiBaseline_version_feature"), - getString("_UI_PropertyDescriptor_description", "_UI_ApiBaseline_version_feature", "_UI_ApiBaseline_type"), - SetupPackage.Literals.API_BASELINE__VERSION, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, - null, null)); + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_TextModification_pattern_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_TextModification_pattern_feature", + "_UI_TextModification_type"), SetupPackage.Literals.TEXT_MODIFICATION__PATTERN, true, false, false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); } /** - * This adds a property descriptor for the Zip Location feature. + * This adds a property descriptor for the Substitutions feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - protected void addZipLocationPropertyDescriptor(Object object) + protected void addSubstitutionsPropertyDescriptor(Object object) { itemPropertyDescriptors.add(createItemPropertyDescriptor( - ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), - getString("_UI_ApiBaseline_zipLocation_feature"), - getString("_UI_PropertyDescriptor_description", "_UI_ApiBaseline_zipLocation_feature", "_UI_ApiBaseline_type"), - SetupPackage.Literals.API_BASELINE__ZIP_LOCATION, true, false, false, + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_TextModification_substitutions_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_TextModification_substitutions_feature", + "_UI_TextModification_type"), SetupPackage.Literals.TEXT_MODIFICATION__SUBSTITUTIONS, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); } @@ -113,7 +110,7 @@ public class ApiBaselineItemProvider extends ItemProviderAdapter implements IEdi } /** - * This returns ApiBaseline.gif. + * This returns TextModification.gif. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -121,7 +118,7 @@ public class ApiBaselineItemProvider extends ItemProviderAdapter implements IEdi @Override public Object getImage(Object object) { - return overlayImage(object, getResourceLocator().getImage("full/obj16/ApiBaseline")); + return overlayImage(object, getResourceLocator().getImage("full/obj16/TextModification")); } /** @@ -133,9 +130,9 @@ public class ApiBaselineItemProvider extends ItemProviderAdapter implements IEdi @Override public String getText(Object object) { - String label = ((ApiBaseline)object).getVersion(); - return label == null || label.length() == 0 ? getString("_UI_ApiBaseline_type") : getString("_UI_ApiBaseline_type") - + " " + label; + String label = ((TextModification)object).getPattern(); + return label == null || label.length() == 0 ? getString("_UI_TextModification_type") + : getString("_UI_TextModification_type") + " " + label; } /** @@ -150,10 +147,10 @@ public class ApiBaselineItemProvider extends ItemProviderAdapter implements IEdi { updateChildren(notification); - switch (notification.getFeatureID(ApiBaseline.class)) + switch (notification.getFeatureID(TextModification.class)) { - case SetupPackage.API_BASELINE__VERSION: - case SetupPackage.API_BASELINE__ZIP_LOCATION: + case SetupPackage.TEXT_MODIFICATION__PATTERN: + case SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); return; } @@ -182,7 +179,7 @@ public class ApiBaselineItemProvider extends ItemProviderAdapter implements IEdi @Override public ResourceLocator getResourceLocator() { - return SetupEditPlugin.INSTANCE; + return ((IChildCreationExtender)adapterFactory).getResourceLocator(); } } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ToolInstallationItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/TextModifyTaskItemProvider.java index 1eb56f1298..2eb51ea017 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ToolInstallationItemProvider.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/TextModifyTaskItemProvider.java @@ -1,42 +1,37 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup.provider; +import java.util.Collection; +import java.util.List; + import org.eclipse.emf.cdo.releng.setup.SetupFactory; import org.eclipse.emf.cdo.releng.setup.SetupPackage; -import org.eclipse.emf.cdo.releng.setup.ToolInstallation; +import org.eclipse.emf.cdo.releng.setup.SetupTaskScope; +import org.eclipse.emf.cdo.releng.setup.TextModifyTask; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.util.ResourceLocator; + import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; import org.eclipse.emf.edit.provider.IItemPropertySource; import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; import org.eclipse.emf.edit.provider.ITreeItemContentProvider; -import org.eclipse.emf.edit.provider.ItemProviderAdapter; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; import org.eclipse.emf.edit.provider.ViewerNotification; -import java.util.Collection; -import java.util.List; - /** - * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.ToolInstallation} object. + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.TextModifyTask} object. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ -public class ToolInstallationItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider, +public class TextModifyTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource { /** @@ -45,7 +40,7 @@ public class ToolInstallationItemProvider extends ItemProviderAdapter implements * <!-- end-user-doc --> * @generated */ - public ToolInstallationItemProvider(AdapterFactory adapterFactory) + public TextModifyTaskItemProvider(AdapterFactory adapterFactory) { super(adapterFactory); } @@ -63,11 +58,28 @@ public class ToolInstallationItemProvider extends ItemProviderAdapter implements { super.getPropertyDescriptors(object); + addUrlPropertyDescriptor(object); } return itemPropertyDescriptors; } /** + * This adds a property descriptor for the Url feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addUrlPropertyDescriptor(Object object) + { + itemPropertyDescriptors.add(createItemPropertyDescriptor( + ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(), + getString("_UI_TextModifyTask_url_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_TextModifyTask_url_feature", "_UI_TextModifyTask_type"), + SetupPackage.Literals.TEXT_MODIFY_TASK__URL, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, null)); + } + + /** * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. @@ -81,8 +93,7 @@ public class ToolInstallationItemProvider extends ItemProviderAdapter implements if (childrenFeatures == null) { super.getChildrenFeatures(object); - childrenFeatures.add(SetupPackage.Literals.TOOL_INSTALLATION__DIRECTOR_CALLS); - childrenFeatures.add(SetupPackage.Literals.TOOL_INSTALLATION__TOOL_PREFERENCES); + childrenFeatures.add(SetupPackage.Literals.TEXT_MODIFY_TASK__MODIFICATIONS); } return childrenFeatures; } @@ -102,18 +113,7 @@ public class ToolInstallationItemProvider extends ItemProviderAdapter implements } /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public boolean hasChildren(Object object) - { - return hasChildren(object, true); - } - - /** - * This returns ToolInstallation.gif. + * This returns TextModifyTask.gif. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -121,7 +121,7 @@ public class ToolInstallationItemProvider extends ItemProviderAdapter implements @Override public Object getImage(Object object) { - return overlayImage(object, getResourceLocator().getImage("full/obj16/ToolInstallation")); + return overlayImage(object, getResourceLocator().getImage("full/obj16/TextModifyTask")); } /** @@ -133,7 +133,10 @@ public class ToolInstallationItemProvider extends ItemProviderAdapter implements @Override public String getText(Object object) { - return getString("_UI_ToolInstallation_type"); + SetupTaskScope labelValue = ((TextModifyTask)object).getScope(); + String label = labelValue == null ? null : labelValue.toString(); + return label == null || label.length() == 0 ? getString("_UI_TextModifyTask_type") + : getString("_UI_TextModifyTask_type") + " " + label; } /** @@ -148,10 +151,12 @@ public class ToolInstallationItemProvider extends ItemProviderAdapter implements { updateChildren(notification); - switch (notification.getFeatureID(ToolInstallation.class)) + switch (notification.getFeatureID(TextModifyTask.class)) { - case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS: - case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES: + case SetupPackage.TEXT_MODIFY_TASK__URL: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); return; } @@ -170,23 +175,8 @@ public class ToolInstallationItemProvider extends ItemProviderAdapter implements { super.collectNewChildDescriptors(newChildDescriptors, object); - newChildDescriptors.add(createChildParameter(SetupPackage.Literals.TOOL_INSTALLATION__DIRECTOR_CALLS, - SetupFactory.eINSTANCE.createDirectorCall())); - - newChildDescriptors.add(createChildParameter(SetupPackage.Literals.TOOL_INSTALLATION__TOOL_PREFERENCES, - SetupFactory.eINSTANCE.createToolPreference())); - } - - /** - * Return the resource locator for this item provider's resources. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public ResourceLocator getResourceLocator() - { - return SetupEditPlugin.INSTANCE; + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.TEXT_MODIFY_TASK__MODIFICATIONS, + SetupFactory.eINSTANCE.createTextModification())); } } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/WorkingSetTaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/WorkingSetTaskItemProvider.java new file mode 100644 index 0000000000..049b66a57c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/WorkingSetTaskItemProvider.java @@ -0,0 +1,154 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.provider; + +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.WorkingSetTask; +import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsFactory; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import java.util.Collection; +import java.util.List; + +/** + * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class WorkingSetTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider, + IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource +{ + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public WorkingSetTaskItemProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) + { + if (itemPropertyDescriptors == null) + { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) + { + if (childrenFeatures == null) + { + super.getChildrenFeatures(object); + childrenFeatures.add(SetupPackage.Literals.WORKING_SET_TASK__WORKING_SETS); + } + return childrenFeatures; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EStructuralFeature getChildFeature(Object object, Object child) + { + // Check the type of the specified child object and return the proper feature to use for + // adding (see {@link AddCommand}) it as a child. + + return super.getChildFeature(object, child); + } + + /** + * This returns WorkingSetTask.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) + { + return overlayImage(object, getResourceLocator().getImage("full/obj16/WorkingSetTask")); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) + { + return getString("_UI_WorkingSetTask_type"); + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) + { + updateChildren(notification); + + switch (notification.getFeatureID(WorkingSetTask.class)) + { + case SetupPackage.WORKING_SET_TASK__WORKING_SETS: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) + { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add(createChildParameter(SetupPackage.Literals.WORKING_SET_TASK__WORKING_SETS, + WorkingSetsFactory.eINSTANCE.createWorkingSet())); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.classpath b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.classpath new file mode 100644 index 0000000000..3bc247511f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.project b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.project new file mode 100644 index 0000000000..b723a70090 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.emf.cdo.releng.setup.editor.rcp</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + </natures> +</projectDescription> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000..38ce18d974 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/.project=UTF-8
\ No newline at end of file diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..a32f23e030 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,405 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +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.doc.comment.support=enabled +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.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +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.includeNullInfoFromAsserts=disabled +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.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +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.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=ignore +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=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +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.unusedObjectAllocation=ignore +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.unusedTypeParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled +org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW +org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED +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=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=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true +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=false +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=120 +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=2 +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=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=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=do not 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=space +org.eclipse.jdt.core.formatter.tabulation.size=2 +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/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000000..3fc140fcdc --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,119 @@ +cleanup.add_default_serial_version_id=true +cleanup.add_generated_serial_version_id=false +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=false +cleanup.always_use_this_for_non_static_method_access=false +cleanup.convert_to_enhanced_for_loop=false +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=false +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=false +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=false +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=false +cleanup.qualify_static_method_accesses_with_declaring_class=false +cleanup.remove_private_constructors=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_parentheses_in_expressions=true +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=true +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=true +cleanup_profile=_EMFT +cleanup_settings_version=2 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +formatter_profile=_EMFT +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=ex +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.ignorelowercasenames=true +org.eclipse.jdt.ui.importorder=org.eclipse.emf.cdo;org.eclipse.emf.internal.cdo;org.eclipse.net4j;org.eclipse.internal.net4j;org.eclipse.emf;org.eclipse;com;org;javax;java; +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=false +org.eclipse.jdt.ui.ondemandthreshold=99 +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.staticondemandthreshold=99 +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" 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 * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made 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 * Eike Stepper - initial API and implementation\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 * @author Eike Stepper\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" 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">${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${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}</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> +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=false +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=false +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=false +sp_cleanup.make_parameters_final=false +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=false +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=true +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=true +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.ltk.core.refactoring.prefs new file mode 100644 index 0000000000..864e30fe5d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.ltk.core.refactoring.prefs @@ -0,0 +1,3 @@ +#Thu Feb 04 09:44:24 CET 2010 +eclipse.preferences.version=1 +org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.mylyn.tasks.ui.prefs new file mode 100644 index 0000000000..b050639a54 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.mylyn.tasks.ui.prefs @@ -0,0 +1,4 @@ +#Thu Feb 04 09:44:24 CET 2010 +eclipse.preferences.version=1 +project.repository.kind=bugzilla +project.repository.url=https\://bugs.eclipse.org/bugs diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.mylyn.team.ui.prefs new file mode 100644 index 0000000000..2f50f36c0c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.mylyn.team.ui.prefs @@ -0,0 +1,3 @@ +#Thu Feb 04 09:44:24 CET 2010 +commit.comment.template=[${task.id}] ${task.description} \r\n${task.url} +eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.pde.api.tools.prefs new file mode 100644 index 0000000000..0c17d59e45 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.pde.api.tools.prefs @@ -0,0 +1,95 @@ +#Thu Feb 04 09:44:24 CET 2010 +ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error +ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error +CLASS_ELEMENT_TYPE_ADDED_METHOD=Error +CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error +CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error +CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error +CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error +ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error +ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error +ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +FIELD_ELEMENT_TYPE_ADDED_VALUE=Error +FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error +FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error +FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error +FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error +ILLEGAL_EXTEND=Warning +ILLEGAL_IMPLEMENT=Warning +ILLEGAL_INSTANTIATE=Warning +ILLEGAL_OVERRIDE=Warning +ILLEGAL_REFERENCE=Warning +INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error +INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error +INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error +INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +INVALID_JAVADOC_TAG=Ignore +INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error +MISSING_EE_DESCRIPTIONS=Warning +LEAK_EXTEND=Warning +LEAK_FIELD_DECL=Warning +LEAK_IMPLEMENT=Warning +LEAK_METHOD_PARAM=Warning +LEAK_METHOD_RETURN_TYPE=Warning +METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error +METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error +UNUSED_PROBLEM_FILTERS=Ignore +automatically_removed_unused_problem_filters=Disabled +eclipse.preferences.version=1 +incompatible_api_component_version=Error +incompatible_api_component_version_include_major_without_breaking_change=Disabled +incompatible_api_component_version_include_minor_without_api_change=Disabled +invalid_since_tag_version=Error +malformed_since_tag=Error +missing_since_tag=Error +report_api_breakage_when_major_version_incremented=Disabled +report_resolution_errors_api_component=Warning diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.pde.prefs index eb962232b8..eb962232b8 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.pde.prefs +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.pde.prefs diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..d43986fafe --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/META-INF/MANIFEST.MF @@ -0,0 +1,17 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: org.eclipse.emf.cdo.releng.setup.editor.rcp;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: . +Bundle-Activator: org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorPlugin$Implementation +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Export-Package: org.eclipse.emf.cdo.releng.setup.rcp.presentation +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.emf.cdo.releng.setup.edit;visibility:=reexport, + org.eclipse.emf.ecore.xmi;visibility:=reexport, + org.eclipse.emf.edit.ui;visibility:=reexport, + org.eclipse.emf.cdo.releng.workingsets.edit;visibility:=reexport +Bundle-ActivationPolicy: lazy diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/build.properties b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/build.properties new file mode 100644 index 0000000000..5fb07711cf --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/build.properties @@ -0,0 +1,10 @@ +# + +bin.includes = .,\ + icons/,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = . +source.. = src/ +output.. = bin diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/icons/full/obj16/SetupModelFile.gif b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/icons/full/obj16/SetupModelFile.gif Binary files differnew file mode 100644 index 0000000000..dd4fa0a2b6 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/icons/full/obj16/SetupModelFile.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/icons/full/wizban/NewSetup.gif b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/icons/full/wizban/NewSetup.gif Binary files differnew file mode 100644 index 0000000000..e52cb90c78 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/icons/full/wizban/NewSetup.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/plugin.properties new file mode 100644 index 0000000000..4c54e71c8c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/plugin.properties @@ -0,0 +1,72 @@ +# + +pluginName = Setup Editor +providerName = www.example.org + +_UI_SetupEditor_menu = &Setup Editor + +_UI_CreateChild_menu_item = &New Child +_UI_CreateSibling_menu_item = N&ew Sibling + +_UI_ShowPropertiesView_menu_item = Show &Properties View +_UI_RefreshViewer_menu_item = &Refresh + +_UI_SelectionPage_label = Selection + +_UI_NoObjectSelected = Selected Nothing +_UI_SingleObjectSelected = Selected Object: {0} +_UI_MultiObjectSelected = Selected {0} Objects + +_UI_OpenEditorError_label = Open Editor + +_UI_Wizard_category = Example EMF Model Creation Wizards + +_UI_CreateModelError_message = Problems encountered in file "{0}" + +_UI_SetupModelWizard_label = Setup Model +_UI_SetupModelWizard_description = Create a new Setup model + +_UI_SetupEditor_label = Setup Model Editor + +_UI_SetupEditorFilenameDefaultBase = My +_UI_SetupEditorFilenameExtensions = setup + +_UI_Wizard_label = New + +_WARN_FilenameExtension = The file name must end in ''.{0}'' +_WARN_FilenameExtensions = The file name must have one of the following extensions: {0} + +_UI_ModelObject = &Model Object +_UI_XMLEncoding = &XML Encoding +_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1 +_UI_Wizard_initial_object_description = Specify a file name and select a model object to create + +_UI_FileConflict_label = File Conflict +_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes? + +_UI_SetupEditorAdvisor_ActionSet_label = Setup Action Set +_UI_Perspective_label = Setup + +_UI_Browse_label = &Browse... +_UI_File_label = &File +_UI_Question_title = Question +_WARN_FileConflict = The file "{0}" already exists. Do you want to replace the existing file? +_UI_Error_title = Error +_WARN_No_Editor = There is no editor registered for the file "{0}". + +_UI_Application_title = Setup Application +_UI_Menu_File_label = &File +_UI_Menu_New_label = &New +_UI_Menu_Open_label = &Open... +_UI_Menu_Open_description = Opens a model object file +_UI_Menu_OpenURI_label = &Open URI... +_UI_Menu_OpenURI_description = Opens a model object loading it from a URI +_UI_Menu_Edit_label = &Edit +_UI_Menu_Window_label = &Window +_UI_Menu_Help_label = &Help +_UI_Menu_About_label = Setup &About... +_UI_About_title = Setup Application +_UI_About_text = Setup Application about box goes here. + +_UI_SetupModelWizard_ActionSet_label = Setup Model Action Set + diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/plugin.xml new file mode 100644 index 0000000000..eec2e3682c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/plugin.xml @@ -0,0 +1,105 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> + +<!-- +--> + +<plugin> + + <extension + point="org.eclipse.core.runtime.applications" + id="SetupEditorAdvisorApplication"> + <!-- @generated setup-rcp --> + <application> + <run class="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisor$Application"/> + </application> + </extension> + + <extension point="org.eclipse.ui.perspectives"> + <!-- @generated setup-rcp --> + <perspective + name="%_UI_Perspective_label" + class="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisor$Perspective" + id="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorPerspective"> + </perspective> + </extension> + + <extension point="org.eclipse.ui.commands"> + <!-- @generated setup-rcp --> + <command + name="%_UI_Menu_OpenURI_label" + description="%_UI_Menu_OpenURI_description" + categoryId="org.eclipse.ui.category.file" + id="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorOpenURICommand"/> + <command + name="%_UI_Menu_Open_label" + description="%_UI_Menu_Open_description" + categoryId="org.eclipse.ui.category.file" + id="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorOpenCommand"/> + </extension> + + <extension point="org.eclipse.ui.bindings"> + <!-- @generated setup-rcp --> + <key + commandId="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorOpenURICommand" + sequence="M1+U" + schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/> + <key + commandId="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorOpenCommand" + sequence="M1+O" + schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/> + </extension> + + <extension point="org.eclipse.ui.actionSets"> + <!-- @generated setup-rcp --> + <actionSet + label="%_UI_SetupEditorAdvisor_ActionSet_label" + visible="true" + id="SetupEditorAdvisorActionSet"> + <action + label="%_UI_Menu_About_label" + class="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisor$AboutAction" + menubarPath="help/additions" + id="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorAboutAction"/> + <action + label="%_UI_Menu_OpenURI_label" + definitionId="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorOpenURICommand" + class="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisor$OpenURIAction" + menubarPath="file/additions" + id="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorOpenURIAction"/> + <action + label="%_UI_Menu_Open_label" + definitionId="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorOpenCommand" + class="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisor$OpenAction" + menubarPath="file/additions" + id="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorOpenAction"/> + </actionSet> + </extension> + + <extension point="org.eclipse.ui.actionSets"> + <!-- @generated setup-rcp --> + <actionSet + label="%_UI_SetupModelWizard_ActionSet_label" + visible="true" + id="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupActionBarContributorActionSet"> + <action + label="%_UI_SetupModelWizard_label" + class="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupActionBarContributor$NewAction" + menubarPath="file/new/additions" + id="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupActionBarContributorNewAction"/> + </actionSet> + </extension> + + <extension point="org.eclipse.ui.editors"> + <!-- @generated setup-rcp --> + <editor + id="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorID" + name="%_UI_SetupEditor_label" + icon="icons/full/obj16/SetupModelFile.gif" + extensions="setup" + class="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditor" + contributorClass="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupActionBarContributor"> + </editor> + </extension> + +</plugin> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupActionBarContributor.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupActionBarContributor.java new file mode 100644 index 0000000000..f6d8b374fb --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupActionBarContributor.java @@ -0,0 +1,496 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.rcp.presentation; + +import java.util.ArrayList; +import java.util.Collection; + +import org.eclipse.emf.common.ui.action.WorkbenchWindowActionDelegate; + +import org.eclipse.emf.common.ui.viewer.IViewerProvider; + +import org.eclipse.emf.edit.domain.EditingDomain; +import org.eclipse.emf.edit.domain.IEditingDomainProvider; + +import org.eclipse.emf.edit.ui.action.ControlAction; +import org.eclipse.emf.edit.ui.action.CreateChildAction; +import org.eclipse.emf.edit.ui.action.CreateSiblingAction; +import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor; +import org.eclipse.emf.edit.ui.action.LoadResourceAction; +import org.eclipse.emf.edit.ui.action.ValidateAction; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.ActionContributionItem; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.action.IContributionItem; +import org.eclipse.jface.action.IContributionManager; +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.action.Separator; +import org.eclipse.jface.action.SubContributionItem; + +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.Viewer; + +import org.eclipse.jface.wizard.WizardDialog; + +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.PartInitException; + +/** + * This is the action bar contributor for the Setup model editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class SetupActionBarContributor extends EditingDomainActionBarContributor implements ISelectionChangedListener +{ + /** + * Action to create objects from the Setup model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static class NewAction extends WorkbenchWindowActionDelegate + { + /** + * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void run(IAction action) + { + SetupModelWizard wizard = new SetupModelWizard(); + wizard.init(getWindow().getWorkbench(), StructuredSelection.EMPTY); + WizardDialog wizardDialog = new WizardDialog(getWindow().getShell(), wizard); + wizardDialog.open(); + } + } + + /** + * This keeps track of the active editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IEditorPart activeEditorPart; + + /** + * This keeps track of the current selection provider. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ISelectionProvider selectionProvider; + + /** + * This action opens the Properties view. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IAction showPropertiesViewAction = new Action( + SetupEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) + { + @Override + public void run() + { + try + { + getPage().showView("org.eclipse.ui.views.PropertySheet"); + } + catch (PartInitException exception) + { + SetupEditorPlugin.INSTANCE.log(exception); + } + } + }; + + /** + * This action refreshes the viewer of the current editor if the editor + * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IAction refreshViewerAction = new Action( + SetupEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) + { + @Override + public boolean isEnabled() + { + return activeEditorPart instanceof IViewerProvider; + } + + @Override + public void run() + { + if (activeEditorPart instanceof IViewerProvider) + { + Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer(); + if (viewer != null) + { + viewer.refresh(); + } + } + } + }; + + /** + * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor + * generated for the current selection by the item provider. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<IAction> createChildActions; + + /** + * This is the menu manager into which menu contribution items should be added for CreateChild actions. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IMenuManager createChildMenuManager; + + /** + * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor + * generated for the current selection by the item provider. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<IAction> createSiblingActions; + + /** + * This is the menu manager into which menu contribution items should be added for CreateSibling actions. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IMenuManager createSiblingMenuManager; + + /** + * This creates an instance of the contributor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SetupActionBarContributor() + { + super(ADDITIONS_LAST_STYLE); + loadResourceAction = new LoadResourceAction(); + validateAction = new ValidateAction(); + controlAction = new ControlAction(); + } + + /** + * This adds Separators for editor additions to the tool bar. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void contributeToToolBar(IToolBarManager toolBarManager) + { + toolBarManager.add(new Separator("setup-settings")); + toolBarManager.add(new Separator("setup-additions")); + } + + /** + * This adds to the menu bar a menu and some separators for editor additions, + * as well as the sub-menus for object creation items. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void contributeToMenu(IMenuManager menuManager) + { + super.contributeToMenu(menuManager); + + IMenuManager submenuManager = new MenuManager(SetupEditorPlugin.INSTANCE.getString("_UI_SetupEditor_menu"), + "org.eclipse.emf.cdo.releng.setupMenuID"); + menuManager.insertAfter("additions", submenuManager); + submenuManager.add(new Separator("settings")); + submenuManager.add(new Separator("actions")); + submenuManager.add(new Separator("additions")); + submenuManager.add(new Separator("additions-end")); + + // Prepare for CreateChild item addition or removal. + // + createChildMenuManager = new MenuManager(SetupEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); + submenuManager.insertBefore("additions", createChildMenuManager); + + // Prepare for CreateSibling item addition or removal. + // + createSiblingMenuManager = new MenuManager(SetupEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); + submenuManager.insertBefore("additions", createSiblingMenuManager); + + // Force an update because Eclipse hides empty menus now. + // + submenuManager.addMenuListener(new IMenuListener() + { + public void menuAboutToShow(IMenuManager menuManager) + { + menuManager.updateAll(true); + } + }); + + addGlobalActions(submenuManager); + } + + /** + * When the active editor changes, this remembers the change and registers with it as a selection provider. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setActiveEditor(IEditorPart part) + { + super.setActiveEditor(part); + activeEditorPart = part; + + // Switch to the new selection provider. + // + if (selectionProvider != null) + { + selectionProvider.removeSelectionChangedListener(this); + } + if (part == null) + { + selectionProvider = null; + } + else + { + selectionProvider = part.getSite().getSelectionProvider(); + selectionProvider.addSelectionChangedListener(this); + + // Fake a selection changed event to update the menus. + // + if (selectionProvider.getSelection() != null) + { + selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection())); + } + } + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener}, + * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings + * that can be added to the selected object and updating the menus accordingly. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void selectionChanged(SelectionChangedEvent event) + { + // Remove any menu items for old selection. + // + if (createChildMenuManager != null) + { + depopulateManager(createChildMenuManager, createChildActions); + } + if (createSiblingMenuManager != null) + { + depopulateManager(createSiblingMenuManager, createSiblingActions); + } + + // Query the new selection for appropriate new child/sibling descriptors + // + Collection<?> newChildDescriptors = null; + Collection<?> newSiblingDescriptors = null; + + ISelection selection = event.getSelection(); + if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) + { + Object object = ((IStructuredSelection)selection).getFirstElement(); + + EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain(); + + newChildDescriptors = domain.getNewChildDescriptors(object, null); + newSiblingDescriptors = domain.getNewChildDescriptors(null, object); + } + + // Generate actions for selection; populate and redraw the menus. + // + createChildActions = generateCreateChildActions(newChildDescriptors, selection); + createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection); + + if (createChildMenuManager != null) + { + populateManager(createChildMenuManager, createChildActions, null); + createChildMenuManager.update(true); + } + if (createSiblingMenuManager != null) + { + populateManager(createSiblingMenuManager, createSiblingActions, null); + createSiblingMenuManager.update(true); + } + } + + /** + * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>, + * and returns the collection of these actions. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) + { + Collection<IAction> actions = new ArrayList<IAction>(); + if (descriptors != null) + { + for (Object descriptor : descriptors) + { + actions.add(new CreateChildAction(activeEditorPart, selection, descriptor)); + } + } + return actions; + } + + /** + * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>, + * and returns the collection of these actions. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) + { + Collection<IAction> actions = new ArrayList<IAction>(); + if (descriptors != null) + { + for (Object descriptor : descriptors) + { + actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor)); + } + } + return actions; + } + + /** + * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s + * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection, + * by inserting them before the specified contribution item <code>contributionID</code>. + * If <code>contributionID</code> is <code>null</code>, they are simply added. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, + String contributionID) + { + if (actions != null) + { + for (IAction action : actions) + { + if (contributionID != null) + { + manager.insertBefore(contributionID, action); + } + else + { + manager.add(action); + } + } + } + } + + /** + * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s + * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) + { + if (actions != null) + { + IContributionItem[] items = manager.getItems(); + for (int i = 0; i < items.length; i++) + { + // Look into SubContributionItems + // + IContributionItem contributionItem = items[i]; + while (contributionItem instanceof SubContributionItem) + { + contributionItem = ((SubContributionItem)contributionItem).getInnerItem(); + } + + // Delete the ActionContributionItems with matching action. + // + if (contributionItem instanceof ActionContributionItem) + { + IAction action = ((ActionContributionItem)contributionItem).getAction(); + if (actions.contains(action)) + { + manager.remove(contributionItem); + } + } + } + } + } + + /** + * This populates the pop-up menu before it appears. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void menuAboutToShow(IMenuManager menuManager) + { + super.menuAboutToShow(menuManager); + MenuManager submenuManager = null; + + submenuManager = new MenuManager(SetupEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); + populateManager(submenuManager, createChildActions, null); + menuManager.insertBefore("edit", submenuManager); + + submenuManager = new MenuManager(SetupEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); + populateManager(submenuManager, createSiblingActions, null); + menuManager.insertBefore("edit", submenuManager); + } + + /** + * This inserts global actions before the "additions-end" separator. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void addGlobalActions(IMenuManager menuManager) + { + menuManager.insertAfter("additions-end", new Separator("ui-actions")); + menuManager.insertAfter("ui-actions", showPropertiesViewAction); + + refreshViewerAction.setEnabled(refreshViewerAction.isEnabled()); + menuManager.insertAfter("ui-actions", refreshViewerAction); + + super.addGlobalActions(menuManager); + } + + /** + * This ensures that a delete action will clean up all references to deleted objects. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected boolean removeAllReferencesOnDelete() + { + return true; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditor.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditor.java new file mode 100644 index 0000000000..b12a485d41 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditor.java @@ -0,0 +1,1550 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.rcp.presentation; + +import org.eclipse.emf.cdo.releng.setup.provider.SetupItemProviderAdapterFactory; +import org.eclipse.emf.cdo.releng.workingsets.provider.WorkingSetsItemProviderAdapterFactory; + +import org.eclipse.emf.common.command.BasicCommandStack; +import org.eclipse.emf.common.command.Command; +import org.eclipse.emf.common.command.CommandStack; +import org.eclipse.emf.common.command.CommandStackListener; +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.ui.URIEditorInput; +import org.eclipse.emf.common.ui.editor.ProblemEditorPart; +import org.eclipse.emf.common.ui.viewer.IViewerProvider; +import org.eclipse.emf.common.util.BasicDiagnostic; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.util.EContentAdapter; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; +import org.eclipse.emf.edit.domain.EditingDomain; +import org.eclipse.emf.edit.domain.IEditingDomainProvider; +import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator; +import org.eclipse.emf.edit.provider.ComposedAdapterFactory; +import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory; +import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory; +import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor; +import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor; +import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter; +import org.eclipse.emf.edit.ui.dnd.LocalTransfer; +import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; +import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider; +import org.eclipse.emf.edit.ui.util.EditUIUtil; +import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.IStatusLineManager; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.action.Separator; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.dialogs.ProgressMonitorDialog; +import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.StructuredViewer; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.CTabFolder; +import org.eclipse.swt.dnd.DND; +import org.eclipse.swt.dnd.Transfer; +import org.eclipse.swt.events.ControlAdapter; +import org.eclipse.swt.events.ControlEvent; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.Tree; +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IEditorSite; +import org.eclipse.ui.IPartListener; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.part.MultiPageEditorPart; +import org.eclipse.ui.views.contentoutline.ContentOutline; +import org.eclipse.ui.views.contentoutline.ContentOutlinePage; +import org.eclipse.ui.views.contentoutline.IContentOutlinePage; +import org.eclipse.ui.views.properties.IPropertySheetPage; +import org.eclipse.ui.views.properties.PropertySheet; +import org.eclipse.ui.views.properties.PropertySheetPage; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.EventObject; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * This is an example of a Setup model editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class SetupEditor extends MultiPageEditorPart implements IEditingDomainProvider, ISelectionProvider, + IMenuListener, IViewerProvider +{ + /** + * The filters for file extensions supported by the editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final List<String> FILE_EXTENSION_FILTERS = prefixExtensions(SetupModelWizard.FILE_EXTENSIONS, "*."); + + /** + * Returns a new unmodifiable list containing prefixed versions of the extensions in the given list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static List<String> prefixExtensions(List<String> extensions, String prefix) + { + List<String> result = new ArrayList<String>(); + for (String extension : extensions) + { + result.add(prefix + extension); + } + return Collections.unmodifiableList(result); + } + + /** + * This keeps track of the editing domain that is used to track all changes to the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected AdapterFactoryEditingDomain editingDomain; + + /** + * This is the one adapter factory used for providing views of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ComposedAdapterFactory adapterFactory; + + /** + * This is the content outline page. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IContentOutlinePage contentOutlinePage; + + /** + * This is a kludge... + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IStatusLineManager contentOutlineStatusLineManager; + + /** + * This is the content outline page's viewer. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TreeViewer contentOutlineViewer; + + /** + * This is the property sheet page. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>(); + + /** + * This is the viewer that shadows the selection in the content outline. + * The parent relation must be correctly defined for this to work. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TreeViewer selectionViewer; + + /** + * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Viewer currentViewer; + + /** + * This listens to which ever viewer is active. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ISelectionChangedListener selectionChangedListener; + + /** + * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>(); + + /** + * This keeps track of the selection of the editor as a whole. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ISelection editorSelection = StructuredSelection.EMPTY; + + /** + * This listens for when the outline becomes active + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IPartListener partListener = new IPartListener() + { + public void partActivated(IWorkbenchPart p) + { + if (p instanceof ContentOutline) + { + if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) + { + getActionBarContributor().setActiveEditor(SetupEditor.this); + + setCurrentViewer(contentOutlineViewer); + } + } + else if (p instanceof PropertySheet) + { + if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) + { + getActionBarContributor().setActiveEditor(SetupEditor.this); + handleActivate(); + } + } + else if (p == SetupEditor.this) + { + handleActivate(); + } + } + + public void partBroughtToTop(IWorkbenchPart p) + { + // Ignore. + } + + public void partClosed(IWorkbenchPart p) + { + // Ignore. + } + + public void partDeactivated(IWorkbenchPart p) + { + // Ignore. + } + + public void partOpened(IWorkbenchPart p) + { + // Ignore. + } + }; + + /** + * Resources that have been removed since last activation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<Resource> removedResources = new ArrayList<Resource>(); + + /** + * Resources that have been changed since last activation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<Resource> changedResources = new ArrayList<Resource>(); + + /** + * Resources that have been saved. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<Resource> savedResources = new ArrayList<Resource>(); + + /** + * Map to store the diagnostic associated with a resource. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>(); + + /** + * Controls whether the problem indication should be updated. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected boolean updateProblemIndication = true; + + /** + * Adapter used to update the problem indication when resources are demanded loaded. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EContentAdapter problemIndicationAdapter = new EContentAdapter() + { + @Override + public void notifyChanged(Notification notification) + { + if (notification.getNotifier() instanceof Resource) + { + switch (notification.getFeatureID(Resource.class)) + { + case Resource.RESOURCE__IS_LOADED: + case Resource.RESOURCE__ERRORS: + case Resource.RESOURCE__WARNINGS: + { + Resource resource = (Resource)notification.getNotifier(); + Diagnostic diagnostic = analyzeResourceProblems(resource, null); + if (diagnostic.getSeverity() != Diagnostic.OK) + { + resourceToDiagnosticMap.put(resource, diagnostic); + } + else + { + resourceToDiagnosticMap.remove(resource); + } + + if (updateProblemIndication) + { + getSite().getShell().getDisplay().asyncExec(new Runnable() + { + public void run() + { + updateProblemIndication(); + } + }); + } + break; + } + } + } + else + { + super.notifyChanged(notification); + } + } + + @Override + protected void setTarget(Resource target) + { + basicSetTarget(target); + } + + @Override + protected void unsetTarget(Resource target) + { + basicUnsetTarget(target); + resourceToDiagnosticMap.remove(target); + if (updateProblemIndication) + { + getSite().getShell().getDisplay().asyncExec(new Runnable() + { + public void run() + { + updateProblemIndication(); + } + }); + } + } + }; + + /** + * Handles activation of the editor or it's associated views. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void handleActivate() + { + // Recompute the read only state. + // + if (editingDomain.getResourceToReadOnlyMap() != null) + { + editingDomain.getResourceToReadOnlyMap().clear(); + + // Refresh any actions that may become enabled or disabled. + // + setSelection(getSelection()); + } + + if (!removedResources.isEmpty()) + { + if (handleDirtyConflict()) + { + getSite().getPage().closeEditor(SetupEditor.this, false); + } + else + { + removedResources.clear(); + changedResources.clear(); + savedResources.clear(); + } + } + else if (!changedResources.isEmpty()) + { + changedResources.removeAll(savedResources); + handleChangedResources(); + changedResources.clear(); + savedResources.clear(); + } + } + + /** + * Handles what to do with changed resources on activation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void handleChangedResources() + { + if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) + { + if (isDirty()) + { + changedResources.addAll(editingDomain.getResourceSet().getResources()); + } + editingDomain.getCommandStack().flush(); + + updateProblemIndication = false; + for (Resource resource : changedResources) + { + if (resource.isLoaded()) + { + resource.unload(); + try + { + resource.load(Collections.EMPTY_MAP); + } + catch (IOException exception) + { + if (!resourceToDiagnosticMap.containsKey(resource)) + { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + } + } + } + + if (AdapterFactoryEditingDomain.isStale(editorSelection)) + { + setSelection(StructuredSelection.EMPTY); + } + + updateProblemIndication = true; + updateProblemIndication(); + } + } + + /** + * Updates the problems indication with the information described in the specified diagnostic. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void updateProblemIndication() + { + if (updateProblemIndication) + { + BasicDiagnostic diagnostic = new BasicDiagnostic(Diagnostic.OK, "org.eclipse.emf.cdo.releng.setup.editor.rcp", 0, + null, new Object[] { editingDomain.getResourceSet() }); + for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) + { + if (childDiagnostic.getSeverity() != Diagnostic.OK) + { + diagnostic.add(childDiagnostic); + } + } + + int lastEditorPage = getPageCount() - 1; + if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) + { + ((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic); + if (diagnostic.getSeverity() != Diagnostic.OK) + { + setActivePage(lastEditorPage); + } + } + else if (diagnostic.getSeverity() != Diagnostic.OK) + { + ProblemEditorPart problemEditorPart = new ProblemEditorPart(); + problemEditorPart.setDiagnostic(diagnostic); + try + { + addPage(++lastEditorPage, problemEditorPart, getEditorInput()); + setPageText(lastEditorPage, problemEditorPart.getPartName()); + setActivePage(lastEditorPage); + showTabs(); + } + catch (PartInitException exception) + { + SetupEditorPlugin.INSTANCE.log(exception); + } + } + } + } + + /** + * Shows a dialog that asks if conflicting changes should be discarded. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected boolean handleDirtyConflict() + { + return MessageDialog.openQuestion(getSite().getShell(), getString("_UI_FileConflict_label"), + getString("_WARN_FileConflict")); + } + + /** + * This creates a model editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SetupEditor() + { + super(); + initializeEditingDomain(); + } + + /** + * This sets up the editing domain for the model editor. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void initializeEditingDomain() + { + // Create an adapter factory that yields item providers. + // + adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE); + + adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new SetupItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new WorkingSetsItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory()); + + // Create the command stack that will notify this editor as commands are executed. + // + BasicCommandStack commandStack = new BasicCommandStack(); + + // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus. + // + commandStack.addCommandStackListener(new CommandStackListener() + { + public void commandStackChanged(final EventObject event) + { + getContainer().getDisplay().asyncExec(new Runnable() + { + public void run() + { + firePropertyChange(IEditorPart.PROP_DIRTY); + + // Try to select the affected objects. + // + Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand(); + if (mostRecentCommand != null) + { + setSelectionToViewer(mostRecentCommand.getAffectedObjects()); + } + for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext();) + { + PropertySheetPage propertySheetPage = i.next(); + if (propertySheetPage.getControl().isDisposed()) + { + i.remove(); + } + else + { + propertySheetPage.refresh(); + } + } + } + }); + } + }); + + // Create the editing domain with a special command stack. + // + editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>()); + } + + /** + * This is here for the listener to be able to call it. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void firePropertyChange(int action) + { + super.firePropertyChange(action); + } + + /** + * This sets the selection into whichever viewer is active. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setSelectionToViewer(Collection<?> collection) + { + final Collection<?> theSelection = collection; + // Make sure it's okay. + // + if (theSelection != null && !theSelection.isEmpty()) + { + Runnable runnable = new Runnable() + { + public void run() + { + // Try to select the items in the current content viewer of the editor. + // + if (currentViewer != null) + { + currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true); + } + } + }; + getSite().getShell().getDisplay().asyncExec(runnable); + } + } + + /** + * This returns the editing domain as required by the {@link IEditingDomainProvider} interface. + * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain} + * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EditingDomain getEditingDomain() + { + return editingDomain; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider + { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) + { + super(adapterFactory); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object[] getElements(Object object) + { + Object parent = super.getParent(object); + return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object[] getChildren(Object object) + { + Object parent = super.getParent(object); + return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean hasChildren(Object object) + { + Object parent = super.getParent(object); + return parent != null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getParent(Object object) + { + return null; + } + } + + /** + * This makes sure that one content viewer, either for the current page or the outline view, if it has focus, + * is the current one. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setCurrentViewer(Viewer viewer) + { + // If it is changing... + // + if (currentViewer != viewer) + { + if (selectionChangedListener == null) + { + // Create the listener on demand. + // + selectionChangedListener = new ISelectionChangedListener() + { + // This just notifies those things that are affected by the section. + // + public void selectionChanged(SelectionChangedEvent selectionChangedEvent) + { + setSelection(selectionChangedEvent.getSelection()); + } + }; + } + + // Stop listening to the old one. + // + if (currentViewer != null) + { + currentViewer.removeSelectionChangedListener(selectionChangedListener); + } + + // Start listening to the new one. + // + if (viewer != null) + { + viewer.addSelectionChangedListener(selectionChangedListener); + } + + // Remember it. + // + currentViewer = viewer; + + // Set the editors selection based on the current viewer's selection. + // + setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection()); + } + } + + /** + * This returns the viewer as required by the {@link IViewerProvider} interface. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Viewer getViewer() + { + return currentViewer; + } + + /** + * This creates a context menu for the viewer and adds a listener as well registering the menu for extension. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void createContextMenuFor(StructuredViewer viewer) + { + MenuManager contextMenu = new MenuManager("#PopUp"); + contextMenu.add(new Separator("additions")); + contextMenu.setRemoveAllWhenShown(true); + contextMenu.addMenuListener(this); + Menu menu = contextMenu.createContextMenu(viewer.getControl()); + viewer.getControl().setMenu(menu); + getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer)); + + int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK; + Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() }; + viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer)); + viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer)); + } + + /** + * This is the method called to load a resource into the editing domain's resource set based on the editor's input. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createModel() + { + URI resourceURI = EditUIUtil.getURI(getEditorInput()); + Exception exception = null; + Resource resource = null; + try + { + // Load the resource through the editing domain. + // + resource = editingDomain.getResourceSet().getResource(resourceURI, true); + } + catch (Exception e) + { + exception = e; + resource = editingDomain.getResourceSet().getResource(resourceURI, false); + } + + Diagnostic diagnostic = analyzeResourceProblems(resource, exception); + if (diagnostic.getSeverity() != Diagnostic.OK) + { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter); + } + + /** + * Returns a diagnostic describing the errors and warnings listed in the resource + * and the specified exception (if any). + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) + { + if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) + { + BasicDiagnostic basicDiagnostic = new BasicDiagnostic(Diagnostic.ERROR, + "org.eclipse.emf.cdo.releng.setup.editor.rcp", 0, + getString("_UI_CreateModelError_message", resource.getURI()), + new Object[] { exception == null ? (Object)resource : exception }); + basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true)); + return basicDiagnostic; + } + else if (exception != null) + { + return new BasicDiagnostic(Diagnostic.ERROR, "org.eclipse.emf.cdo.releng.setup.editor.rcp", 0, getString( + "_UI_CreateModelError_message", resource.getURI()), new Object[] { exception }); + } + else + { + return Diagnostic.OK_INSTANCE; + } + } + + /** + * This is the method used by the framework to install your own controls. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createPagesGen() + { + // Creates the model from the editor input + // + createModel(); + + // Only creates the other pages if there is something that can be edited + // + if (!getEditingDomain().getResourceSet().getResources().isEmpty()) + { + // Create a page for the selection tree view. + // + Tree tree = new Tree(getContainer(), SWT.MULTI); + selectionViewer = new TreeViewer(tree); + setCurrentViewer(selectionViewer); + + selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + selectionViewer.setInput(editingDomain.getResourceSet()); + selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true); + + new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory); + + createContextMenuFor(selectionViewer); + int pageIndex = addPage(tree); + setPageText(pageIndex, getString("_UI_SelectionPage_label")); + + getSite().getShell().getDisplay().asyncExec(new Runnable() + { + public void run() + { + setActivePage(0); + } + }); + } + + // Ensures that this editor will only display the page's tab + // area if there are more than one page + // + getContainer().addControlListener(new ControlAdapter() + { + boolean guard = false; + + @Override + public void controlResized(ControlEvent event) + { + if (!guard) + { + guard = true; + hideTabs(); + guard = false; + } + } + }); + + getSite().getShell().getDisplay().asyncExec(new Runnable() + { + public void run() + { + updateProblemIndication(); + } + }); + } + + @Override + public void createPages() + { + createPagesGen(); + + Resource resource = editingDomain.getResourceSet().getResources().get(0); + selectionViewer.setInput(resource); + selectionViewer.setSelection(new StructuredSelection(resource.getContents().get(0)), true); + } + + /** + * If there is just one page in the multi-page editor part, + * this hides the single tab at the bottom. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void hideTabs() + { + if (getPageCount() <= 1) + { + setPageText(0, ""); + if (getContainer() instanceof CTabFolder) + { + ((CTabFolder)getContainer()).setTabHeight(1); + Point point = getContainer().getSize(); + getContainer().setSize(point.x, point.y + 6); + } + } + } + + /** + * If there is more than one page in the multi-page editor part, + * this shows the tabs at the bottom. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void showTabs() + { + if (getPageCount() > 1) + { + setPageText(0, getString("_UI_SelectionPage_label")); + if (getContainer() instanceof CTabFolder) + { + ((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT); + Point point = getContainer().getSize(); + getContainer().setSize(point.x, point.y - 6); + } + } + } + + /** + * This is used to track the active viewer. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void pageChange(int pageIndex) + { + super.pageChange(pageIndex); + + if (contentOutlinePage != null) + { + handleContentOutlineSelection(contentOutlinePage.getSelection()); + } + } + + /** + * This is how the framework determines which interfaces we implement. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("rawtypes") + @Override + public Object getAdapter(Class key) + { + if (key.equals(IContentOutlinePage.class)) + { + return showOutlineView() ? getContentOutlinePage() : null; + } + else if (key.equals(IPropertySheetPage.class)) + { + return getPropertySheetPage(); + } + else + { + return super.getAdapter(key); + } + } + + /** + * This accesses a cached version of the content outliner. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IContentOutlinePage getContentOutlinePage() + { + if (contentOutlinePage == null) + { + // The content outline is just a tree. + // + class MyContentOutlinePage extends ContentOutlinePage + { + @Override + public void createControl(Composite parent) + { + super.createControl(parent); + contentOutlineViewer = getTreeViewer(); + contentOutlineViewer.addSelectionChangedListener(this); + + // Set up the tree viewer. + // + contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); + contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); + contentOutlineViewer.setInput(editingDomain.getResourceSet()); + + // Make sure our popups work. + // + createContextMenuFor(contentOutlineViewer); + + if (!editingDomain.getResourceSet().getResources().isEmpty()) + { + // Select the root object in the view. + // + contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources() + .get(0)), true); + } + } + + @Override + public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, + IStatusLineManager statusLineManager) + { + super.makeContributions(menuManager, toolBarManager, statusLineManager); + contentOutlineStatusLineManager = statusLineManager; + } + + @Override + public void setActionBars(IActionBars actionBars) + { + super.setActionBars(actionBars); + getActionBarContributor().shareGlobalActions(this, actionBars); + } + } + + contentOutlinePage = new MyContentOutlinePage(); + + // Listen to selection so that we can handle it is a special way. + // + contentOutlinePage.addSelectionChangedListener(new ISelectionChangedListener() + { + // This ensures that we handle selections correctly. + // + public void selectionChanged(SelectionChangedEvent event) + { + handleContentOutlineSelection(event.getSelection()); + } + }); + } + + return contentOutlinePage; + } + + /** + * This accesses a cached version of the property sheet. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IPropertySheetPage getPropertySheetPage() + { + PropertySheetPage propertySheetPage = new ExtendedPropertySheetPage(editingDomain) + { + @Override + public void setSelectionToViewer(List<?> selection) + { + SetupEditor.this.setSelectionToViewer(selection); + SetupEditor.this.setFocus(); + } + + @Override + public void setActionBars(IActionBars actionBars) + { + super.setActionBars(actionBars); + getActionBarContributor().shareGlobalActions(this, actionBars); + } + }; + propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory)); + propertySheetPages.add(propertySheetPage); + + return propertySheetPage; + } + + /** + * This deals with how we want selection in the outliner to affect the other views. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void handleContentOutlineSelection(ISelection selection) + { + if (selectionViewer != null && !selection.isEmpty() && selection instanceof IStructuredSelection) + { + Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator(); + if (selectedElements.hasNext()) + { + // Get the first selected element. + // + Object selectedElement = selectedElements.next(); + + ArrayList<Object> selectionList = new ArrayList<Object>(); + selectionList.add(selectedElement); + while (selectedElements.hasNext()) + { + selectionList.add(selectedElements.next()); + } + + // Set the selection to the widget. + // + selectionViewer.setSelection(new StructuredSelection(selectionList)); + } + } + } + + /** + * This is for implementing {@link IEditorPart} and simply tests the command stack. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isDirty() + { + return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded(); + } + + /** + * This is for implementing {@link IEditorPart} and simply saves the model file. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void doSave(IProgressMonitor progressMonitor) + { + // Save only resources that have actually changed. + // + final Map<Object, Object> saveOptions = new HashMap<Object, Object>(); + saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER); + + // Do the work within an operation because this is a long running activity that modifies the workbench. + // + IRunnableWithProgress operation = new IRunnableWithProgress() + { + // This is the method that gets invoked when the operation runs. + // + public void run(IProgressMonitor monitor) + { + // Save the resources to the file system. + // + boolean first = true; + for (Resource resource : editingDomain.getResourceSet().getResources()) + { + if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) + && !editingDomain.isReadOnly(resource)) + { + try + { + long timeStamp = resource.getTimeStamp(); + resource.save(saveOptions); + if (resource.getTimeStamp() != timeStamp) + { + savedResources.add(resource); + } + } + catch (Exception exception) + { + resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception)); + } + first = false; + } + } + } + }; + + updateProblemIndication = false; + try + { + // This runs the options, and shows progress. + // + new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation); + + // Refresh the necessary state. + // + ((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone(); + firePropertyChange(IEditorPart.PROP_DIRTY); + } + catch (Exception exception) + { + // Something went wrong that shouldn't. + // + SetupEditorPlugin.INSTANCE.log(exception); + } + updateProblemIndication = true; + updateProblemIndication(); + } + + /** + * This returns whether something has been persisted to the URI of the specified resource. + * The implementation uses the URI converter from the editor's resource set to try to open an input stream. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected boolean isPersisted(Resource resource) + { + boolean result = false; + try + { + InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI()); + if (stream != null) + { + result = true; + stream.close(); + } + } + catch (IOException e) + { + // Ignore + } + return result; + } + + /** + * This always returns true because it is not currently supported. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isSaveAsAllowed() + { + return true; + } + + /** + * This also changes the editor's input. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void doSaveAs() + { + String[] filters = FILE_EXTENSION_FILTERS.toArray(new String[FILE_EXTENSION_FILTERS.size()]); + String[] files = SetupEditorAdvisor.openFilePathDialog(getSite().getShell(), SWT.SAVE, filters); + if (files.length > 0) + { + URI uri = URI.createFileURI(files[0]); + doSaveAs(uri, new URIEditorInput(uri)); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void doSaveAs(URI uri, IEditorInput editorInput) + { + editingDomain.getResourceSet().getResources().get(0).setURI(uri); + setInputWithNotify(editorInput); + setPartName(editorInput.getName()); + IProgressMonitor progressMonitor = getActionBars().getStatusLineManager() != null ? getActionBars() + .getStatusLineManager().getProgressMonitor() : new NullProgressMonitor(); + doSave(progressMonitor); + } + + /** + * This is called during startup. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void init(IEditorSite site, IEditorInput editorInput) + { + setSite(site); + setInputWithNotify(editorInput); + setPartName(editorInput.getName()); + site.setSelectionProvider(this); + site.getPage().addPartListener(partListener); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setFocus() + { + getControl(getActivePage()).setFocus(); + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void addSelectionChangedListener(ISelectionChangedListener listener) + { + selectionChangedListeners.add(listener); + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void removeSelectionChangedListener(ISelectionChangedListener listener) + { + selectionChangedListeners.remove(listener); + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ISelection getSelection() + { + return editorSelection; + } + + /** + * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection. + * Calling this result will notify the listeners. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setSelection(ISelection selection) + { + editorSelection = selection; + + for (ISelectionChangedListener listener : selectionChangedListeners) + { + listener.selectionChanged(new SelectionChangedEvent(this, selection)); + } + setStatusLineManager(selection); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setStatusLineManager(ISelection selection) + { + IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ? contentOutlineStatusLineManager + : getActionBars().getStatusLineManager(); + + if (statusLineManager != null) + { + if (selection instanceof IStructuredSelection) + { + Collection<?> collection = ((IStructuredSelection)selection).toList(); + switch (collection.size()) + { + case 0: + { + statusLineManager.setMessage(getString("_UI_NoObjectSelected")); + break; + } + case 1: + { + String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next()); + statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text)); + break; + } + default: + { + statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size()))); + break; + } + } + } + else + { + statusLineManager.setMessage(""); + } + } + } + + /** + * This looks up a string in the plugin's plugin.properties file. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static String getString(String key) + { + return SetupEditorPlugin.INSTANCE.getString(key); + } + + /** + * This looks up a string in plugin.properties, making a substitution. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static String getString(String key, Object s1) + { + return SetupEditorPlugin.INSTANCE.getString(key, new Object[] { s1 }); + } + + /** + * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void menuAboutToShow(IMenuManager menuManager) + { + ((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EditingDomainActionBarContributor getActionBarContributor() + { + return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IActionBars getActionBars() + { + return getActionBarContributor().getActionBars(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public AdapterFactory getAdapterFactory() + { + return adapterFactory; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void dispose() + { + updateProblemIndication = false; + + getSite().getPage().removePartListener(partListener); + + adapterFactory.dispose(); + + if (getActionBarContributor().getActiveEditor() == this) + { + getActionBarContributor().setActiveEditor(null); + } + + for (PropertySheetPage propertySheetPage : propertySheetPages) + { + propertySheetPage.dispose(); + } + + if (contentOutlinePage != null) + { + contentOutlinePage.dispose(); + } + + super.dispose(); + } + + /** + * Returns whether the outline view should be presented to the user. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected boolean showOutlineView() + { + return false; + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditorAdvisor.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditorAdvisor.java new file mode 100644 index 0000000000..54536af5f4 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditorAdvisor.java @@ -0,0 +1,609 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.rcp.presentation; + +import org.eclipse.emf.common.ui.URIEditorInput; +import org.eclipse.emf.common.ui.action.WorkbenchWindowActionDelegate; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.edit.ui.action.LoadResourceAction; +import org.eclipse.emf.edit.ui.util.EditUIUtil; + +import org.eclipse.equinox.app.IApplication; +import org.eclipse.equinox.app.IApplicationContext; +import org.eclipse.jface.action.GroupMarker; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.action.Separator; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.window.Window; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.FileDialog; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IEditorDescriptor; +import org.eclipse.ui.IFolderLayout; +import org.eclipse.ui.IPageLayout; +import org.eclipse.ui.IPerspectiveFactory; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchActionConstants; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.actions.ActionFactory; +import org.eclipse.ui.actions.ContributionItemFactory; +import org.eclipse.ui.application.ActionBarAdvisor; +import org.eclipse.ui.application.IActionBarConfigurer; +import org.eclipse.ui.application.IWorkbenchConfigurer; +import org.eclipse.ui.application.IWorkbenchWindowConfigurer; +import org.eclipse.ui.application.WorkbenchAdvisor; +import org.eclipse.ui.application.WorkbenchWindowAdvisor; + +import java.io.File; +import java.util.Arrays; + +/** + * Customized {@link WorkbenchAdvisor} for the RCP application. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public final class SetupEditorAdvisor extends WorkbenchAdvisor +{ + /** + * The default file extension filters for use in dialogs. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static final String[] FILE_EXTENSION_FILTERS = SetupEditor.FILE_EXTENSION_FILTERS.toArray(new String[0]); + + /** + * This looks up a string in the plugin's plugin.properties file. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static String getString(String key) + { + return SetupEditorPlugin.INSTANCE.getString(key); + } + + /** + * This looks up a string in plugin.properties, making a substitution. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static String getString(String key, Object s1) + { + return org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorPlugin.INSTANCE.getString(key, + new Object[] { s1 }); + } + + /** + * RCP's application + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static class Application implements IApplication + { + /** + * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext) + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object start(IApplicationContext context) throws Exception + { + WorkbenchAdvisor workbenchAdvisor = new SetupEditorAdvisor(); + Display display = PlatformUI.createDisplay(); + try + { + int returnCode = PlatformUI.createAndRunWorkbench(display, workbenchAdvisor); + if (returnCode == PlatformUI.RETURN_RESTART) + { + return IApplication.EXIT_RESTART; + } + else + { + return IApplication.EXIT_OK; + } + } + finally + { + display.dispose(); + } + } + + /** + * @see org.eclipse.equinox.app.IApplication#stop() + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void stop() + { + // Do nothing. + } + } + + /** + * RCP's perspective + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static class Perspective implements IPerspectiveFactory + { + /** + * Perspective ID + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final String ID_PERSPECTIVE = "org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorPerspective"; + + /** + * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout) + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public void createInitialLayout(IPageLayout layout) + { + layout.setEditorAreaVisible(true); + layout.addPerspectiveShortcut(ID_PERSPECTIVE); + + IFolderLayout bottom = layout.createFolder("bottom", IPageLayout.BOTTOM, (float)0.60, layout.getEditorArea()); + bottom.addView(IPageLayout.ID_PROP_SHEET); + } + } + + /** + * RCP's window advisor + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static class WindowAdvisor extends WorkbenchWindowAdvisor + { + /** + * @see WorkbenchWindowAdvisor#WorkbenchWindowAdvisor(org.eclipse.ui.application.IWorkbenchWindowConfigurer) + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public WindowAdvisor(IWorkbenchWindowConfigurer configurer) + { + super(configurer); + } + + /** + * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#preWindowOpen() + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void preWindowOpen() + { + IWorkbenchWindowConfigurer configurer = getWindowConfigurer(); + configurer.setInitialSize(new Point(600, 450)); + configurer.setShowCoolBar(false); + configurer.setShowStatusLine(true); + configurer.setTitle(getString("_UI_Application_title")); + } + + /** + * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#createActionBarAdvisor(org.eclipse.ui.application.IActionBarConfigurer) + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) + { + return new WindowActionBarAdvisor(configurer); + } + } + + /** + * RCP's action bar advisor + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static class WindowActionBarAdvisor extends ActionBarAdvisor + { + /** + * @see ActionBarAdvisor#ActionBarAdvisor(org.eclipse.ui.application.IActionBarConfigurer) + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public WindowActionBarAdvisor(IActionBarConfigurer configurer) + { + super(configurer); + } + + /** + * @see org.eclipse.ui.application.ActionBarAdvisor#fillMenuBar(org.eclipse.jface.action.IMenuManager) + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + protected void fillMenuBar(IMenuManager menuBar) + { + IWorkbenchWindow window = getActionBarConfigurer().getWindowConfigurer().getWindow(); + menuBar.add(createFileMenu(window)); + menuBar.add(createEditMenu(window)); + menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); + menuBar.add(createHelpMenu(window)); + } + + /** + * Creates the 'File' menu. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IMenuManager createFileMenu(IWorkbenchWindow window) + { + IMenuManager menu = new MenuManager(getString("_UI_Menu_File_label"), IWorkbenchActionConstants.M_FILE); + menu.add(new GroupMarker(IWorkbenchActionConstants.FILE_START)); + + IMenuManager newMenu = new MenuManager(getString("_UI_Menu_New_label"), "new"); + newMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); + + menu.add(newMenu); + menu.add(new Separator()); + menu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); + menu.add(new Separator()); + addToMenuAndRegister(menu, ActionFactory.CLOSE.create(window)); + addToMenuAndRegister(menu, ActionFactory.CLOSE_ALL.create(window)); + menu.add(new Separator()); + addToMenuAndRegister(menu, ActionFactory.SAVE.create(window)); + addToMenuAndRegister(menu, ActionFactory.SAVE_AS.create(window)); + addToMenuAndRegister(menu, ActionFactory.SAVE_ALL.create(window)); + menu.add(new Separator()); + addToMenuAndRegister(menu, ActionFactory.QUIT.create(window)); + menu.add(new GroupMarker(IWorkbenchActionConstants.FILE_END)); + return menu; + } + + /** + * Creates the 'Edit' menu. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IMenuManager createEditMenu(IWorkbenchWindow window) + { + IMenuManager menu = new MenuManager(getString("_UI_Menu_Edit_label"), IWorkbenchActionConstants.M_EDIT); + menu.add(new GroupMarker(IWorkbenchActionConstants.EDIT_START)); + + addToMenuAndRegister(menu, ActionFactory.UNDO.create(window)); + addToMenuAndRegister(menu, ActionFactory.REDO.create(window)); + menu.add(new GroupMarker(IWorkbenchActionConstants.UNDO_EXT)); + menu.add(new Separator()); + + addToMenuAndRegister(menu, ActionFactory.CUT.create(window)); + addToMenuAndRegister(menu, ActionFactory.COPY.create(window)); + addToMenuAndRegister(menu, ActionFactory.PASTE.create(window)); + menu.add(new GroupMarker(IWorkbenchActionConstants.CUT_EXT)); + menu.add(new Separator()); + + addToMenuAndRegister(menu, ActionFactory.DELETE.create(window)); + addToMenuAndRegister(menu, ActionFactory.SELECT_ALL.create(window)); + menu.add(new Separator()); + + menu.add(new GroupMarker(IWorkbenchActionConstants.ADD_EXT)); + + menu.add(new GroupMarker(IWorkbenchActionConstants.EDIT_END)); + menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); + return menu; + } + + /** + * Creates the 'Window' menu. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IMenuManager createWindowMenu(IWorkbenchWindow window) + { + IMenuManager menu = new MenuManager(getString("_UI_Menu_Window_label"), IWorkbenchActionConstants.M_WINDOW); + + addToMenuAndRegister(menu, ActionFactory.OPEN_NEW_WINDOW.create(window)); + menu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); + menu.add(ContributionItemFactory.OPEN_WINDOWS.create(window)); + + return menu; + } + + /** + * Creates the 'Help' menu. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IMenuManager createHelpMenu(IWorkbenchWindow window) + { + IMenuManager menu = new MenuManager(getString("_UI_Menu_Help_label"), IWorkbenchActionConstants.M_HELP); + // Welcome or intro page would go here + // Help contents would go here + // Tips and tricks page would go here + menu.add(new GroupMarker(IWorkbenchActionConstants.HELP_START)); + menu.add(new GroupMarker(IWorkbenchActionConstants.HELP_END)); + menu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); + return menu; + } + + /** + * Adds the specified action to the given menu and also registers the action with the + * action bar configurer, in order to activate its key binding. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addToMenuAndRegister(IMenuManager menuManager, IAction action) + { + menuManager.add(action); + getActionBarConfigurer().registerGlobalAction(action); + } + } + + /** + * About action for the RCP application. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static class AboutAction extends WorkbenchWindowActionDelegate + { + /** + * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void run(IAction action) + { + MessageDialog.openInformation(getWindow().getShell(), getString("_UI_About_title"), getString("_UI_About_text")); + } + } + + /** + * Open action for the objects from the Setup model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static class OpenAction extends WorkbenchWindowActionDelegate + { + /** + * Opens the editors for the files selected using the file dialog. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void run(IAction action) + { + String[] filePaths = openFilePathDialog(getWindow().getShell(), SWT.OPEN, null); + if (filePaths.length > 0) + { + openEditor(getWindow().getWorkbench(), URI.createFileURI(filePaths[0])); + } + } + } + + /** + * Open URI action for the objects from the Setup model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static class OpenURIAction extends WorkbenchWindowActionDelegate + { + /** + * Opens the editors for the files selected using the LoadResourceDialog. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void run(IAction action) + { + LoadResourceAction.LoadResourceDialog loadResourceDialog = new LoadResourceAction.LoadResourceDialog(getWindow() + .getShell()); + if (Window.OK == loadResourceDialog.open()) + { + for (URI uri : loadResourceDialog.getURIs()) + { + openEditor(getWindow().getWorkbench(), uri); + } + } + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static String[] openFilePathDialog(Shell shell, int style, String[] fileExtensionFilters) + { + return openFilePathDialog(shell, style, fileExtensionFilters, (style & SWT.OPEN) != 0, (style & SWT.OPEN) != 0, + (style & SWT.SAVE) != 0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static String[] openFilePathDialog(Shell shell, int style, String[] fileExtensionFilters, + boolean includeGroupFilter, boolean includeAllFilter, boolean addExtension) + { + FileDialog fileDialog = new FileDialog(shell, style); + if (fileExtensionFilters == null) + { + fileExtensionFilters = FILE_EXTENSION_FILTERS; + } + + // If requested, augment the file extension filters by adding a group of all the other filters (*.ext1;*.ext2;...) + // at the beginning and/or an all files wildcard (*.*) at the end. + // + includeGroupFilter &= fileExtensionFilters.length > 1; + int offset = includeGroupFilter ? 1 : 0; + + if (includeGroupFilter || includeAllFilter) + { + int size = fileExtensionFilters.length + offset + (includeAllFilter ? 1 : 0); + String[] allFilters = new String[size]; + StringBuilder group = includeGroupFilter ? new StringBuilder() : null; + + for (int i = 0; i < fileExtensionFilters.length; i++) + { + if (includeGroupFilter) + { + if (i != 0) + { + group.append(';'); + } + group.append(fileExtensionFilters[i]); + } + allFilters[i + offset] = fileExtensionFilters[i]; + } + + if (includeGroupFilter) + { + allFilters[0] = group.toString(); + } + if (includeAllFilter) + { + allFilters[allFilters.length - 1] = "*.*"; + } + + fileDialog.setFilterExtensions(allFilters); + } + else + { + fileDialog.setFilterExtensions(fileExtensionFilters); + } + fileDialog.open(); + + String[] filenames = fileDialog.getFileNames(); + String[] result = new String[filenames.length]; + String path = fileDialog.getFilterPath() + File.separator; + String extension = null; + + // If extension adding requested, get the dotted extension corresponding to the selected filter. + // + if (addExtension) + { + int i = fileDialog.getFilterIndex(); + if (i != -1 && (!includeAllFilter || i != fileExtensionFilters.length)) + { + i = includeGroupFilter && i == 0 ? 0 : i - offset; + String filter = fileExtensionFilters[i]; + int dot = filter.lastIndexOf('.'); + if (dot == 1 && filter.charAt(0) == '*') + { + extension = filter.substring(dot); + } + } + } + + // Build the result by adding the selected path and, if needed, auto-appending the extension. + // + for (int i = 0; i < filenames.length; i++) + { + String filename = path + filenames[i]; + if (extension != null) + { + int dot = filename.lastIndexOf('.'); + if (dot == -1 || !Arrays.asList(fileExtensionFilters).contains("*" + filename.substring(dot))) + { + filename += extension; + } + } + result[i] = filename; + } + return result; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static boolean openEditor(IWorkbench workbench, URI uri) + { + IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow(); + IWorkbenchPage page = workbenchWindow.getActivePage(); + + IEditorDescriptor editorDescriptor = EditUIUtil.getDefaultEditor(uri, null); + if (editorDescriptor == null) + { + MessageDialog.openError(workbenchWindow.getShell(), getString("_UI_Error_title"), + getString("_WARN_No_Editor", uri.lastSegment())); + return false; + } + else + { + try + { + page.openEditor(new URIEditorInput(uri), editorDescriptor.getId()); + } + catch (PartInitException exception) + { + MessageDialog.openError(workbenchWindow.getShell(), getString("_UI_OpenEditorError_label"), + exception.getMessage()); + return false; + } + } + return true; + } + + /** + * @see org.eclipse.ui.application.WorkbenchAdvisor#getInitialWindowPerspectiveId() + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getInitialWindowPerspectiveId() + { + return Perspective.ID_PERSPECTIVE; + } + + /** + * @see org.eclipse.ui.application.WorkbenchAdvisor#initialize(org.eclipse.ui.application.IWorkbenchConfigurer) + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void initialize(IWorkbenchConfigurer configurer) + { + super.initialize(configurer); + configurer.setSaveAndRestore(true); + } + + /** + * @see org.eclipse.ui.application.WorkbenchAdvisor#createWorkbenchWindowAdvisor(org.eclipse.ui.application.IWorkbenchWindowConfigurer) + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) + { + return new WindowAdvisor(configurer); + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditorPlugin.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditorPlugin.java new file mode 100644 index 0000000000..6d2d2218a6 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditorPlugin.java @@ -0,0 +1,97 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.rcp.presentation; + +import org.eclipse.emf.cdo.releng.workingsets.provider.WorkingSetsEditPlugin; + +import org.eclipse.emf.common.EMFPlugin; + +import org.eclipse.emf.common.ui.EclipseUIPlugin; + +import org.eclipse.emf.common.util.ResourceLocator; + +/** + * This is the central singleton for the Setup editor plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public final class SetupEditorPlugin extends EMFPlugin +{ + /** + * Keep track of the singleton. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final SetupEditorPlugin INSTANCE = new SetupEditorPlugin(); + + /** + * Keep track of the singleton. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static Implementation plugin; + + /** + * Create the instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SetupEditorPlugin() + { + super(new ResourceLocator[] { WorkingSetsEditPlugin.INSTANCE, }); + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the singleton instance. + * @generated + */ + @Override + public ResourceLocator getPluginResourceLocator() + { + return plugin; + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the singleton instance. + * @generated + */ + public static Implementation getPlugin() + { + return plugin; + } + + /** + * The actual implementation of the Eclipse <b>Plugin</b>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static class Implementation extends EclipseUIPlugin + { + /** + * Creates an instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Implementation() + { + super(); + + // Remember the static instance. + // + plugin = this; + } + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupModelWizard.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupModelWizard.java new file mode 100644 index 0000000000..5f24c79ef2 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupModelWizard.java @@ -0,0 +1,631 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.rcp.presentation; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.MissingResourceException; +import java.util.StringTokenizer; + +import org.eclipse.emf.common.util.URI; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; + +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; + +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.emf.ecore.xmi.XMLResource; + +import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry; + +import org.eclipse.core.runtime.IProgressMonitor; + +import org.eclipse.jface.dialogs.MessageDialog; + +import org.eclipse.jface.viewers.IStructuredSelection; + +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.jface.wizard.WizardPage; + +import org.eclipse.swt.SWT; + +import org.eclipse.swt.events.ModifyListener; +import org.eclipse.swt.events.ModifyEvent; + +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; + +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; + +import org.eclipse.ui.INewWizard; +import org.eclipse.ui.IWorkbench; + +import org.eclipse.emf.cdo.releng.setup.SetupFactory; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.provider.SetupEditPlugin; + +import java.io.File; + +import org.eclipse.jface.operation.IRunnableWithProgress; + +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; + +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Text; + +/** + * This is a simple wizard for creating a new model file. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class SetupModelWizard extends Wizard implements INewWizard +{ + /** + * The supported extensions for created files. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final List<String> FILE_EXTENSIONS = Collections.unmodifiableList(Arrays + .asList(SetupEditorPlugin.INSTANCE.getString("_UI_SetupEditorFilenameExtensions").split("\\s*,\\s*"))); + + /** + * A formatted list of supported file extensions, suitable for display. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final String FORMATTED_FILE_EXTENSIONS = SetupEditorPlugin.INSTANCE.getString( + "_UI_SetupEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", "); + + /** + * This caches an instance of the model package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected SetupPackage setupPackage = SetupPackage.eINSTANCE; + + /** + * This caches an instance of the model factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected SetupFactory setupFactory = setupPackage.getSetupFactory(); + + /** + * This is the initial object creation page. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected SetupModelWizardInitialObjectCreationPage initialObjectCreationPage; + + /** + * Remember the selection during initialization for populating the default container. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IStructuredSelection selection; + + /** + * Remember the workbench during initialization. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IWorkbench workbench; + + /** + * Caches the names of the types that can be created as the root object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected List<String> initialObjectNames; + + /** + * This just records the information. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void init(IWorkbench workbench, IStructuredSelection selection) + { + this.workbench = workbench; + this.selection = selection; + setWindowTitle(SetupEditorPlugin.INSTANCE.getString("_UI_Wizard_label")); + setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(SetupEditorPlugin.INSTANCE + .getImage("full/wizban/NewSetup"))); + } + + /** + * Returns the names of the types that can be created as the root object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<String> getInitialObjectNames() + { + if (initialObjectNames == null) + { + initialObjectNames = new ArrayList<String>(); + for (EClassifier eClassifier : setupPackage.getEClassifiers()) + { + if (eClassifier instanceof EClass) + { + EClass eClass = (EClass)eClassifier; + if (!eClass.isAbstract()) + { + initialObjectNames.add(eClass.getName()); + } + } + } + Collections.sort(initialObjectNames, java.text.Collator.getInstance()); + } + return initialObjectNames; + } + + /** + * Create a new model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EObject createInitialModel() + { + EClass eClass = (EClass)setupPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName()); + EObject rootObject = setupFactory.create(eClass); + return rootObject; + } + + /** + * Do the work after everything is specified. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean performFinish() + { + try + { + // Get the URI of the model file. + // + final URI fileURI = getModelURI(); + if (new File(fileURI.toFileString()).exists()) + { + if (!MessageDialog.openQuestion(getShell(), SetupEditorPlugin.INSTANCE.getString("_UI_Question_title"), + SetupEditorPlugin.INSTANCE.getString("_WARN_FileConflict", new String[] { fileURI.toFileString() }))) + { + initialObjectCreationPage.selectFileField(); + return false; + } + } + + // Do the work within an operation. + // + IRunnableWithProgress operation = new IRunnableWithProgress() + { + public void run(IProgressMonitor progressMonitor) + { + try + { + // Create a resource set + // + ResourceSet resourceSet = new ResourceSetImpl(); + + // Create a resource for this file. + // + Resource resource = resourceSet.createResource(fileURI); + + // Add the initial model object to the contents. + // + EObject rootObject = createInitialModel(); + if (rootObject != null) + { + resource.getContents().add(rootObject); + } + + // Save the contents of the resource to the file system. + // + Map<Object, Object> options = new HashMap<Object, Object>(); + options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding()); + resource.save(options); + } + catch (Exception exception) + { + SetupEditorPlugin.INSTANCE.log(exception); + } + finally + { + progressMonitor.done(); + } + } + }; + + getContainer().run(false, false, operation); + + return SetupEditorAdvisor.openEditor(workbench, fileURI); + } + catch (Exception exception) + { + SetupEditorPlugin.INSTANCE.log(exception); + return false; + } + } + + /** + * This is the page where the type of object to create is selected. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public class SetupModelWizardInitialObjectCreationPage extends WizardPage + { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Text fileField; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Combo initialObjectField; + + /** + * @generated + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + */ + protected List<String> encodings; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Combo encodingField; + + /** + * Pass in the selection. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SetupModelWizardInitialObjectCreationPage(String pageId) + { + super(pageId); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createControl(Composite parent) + { + Composite composite = new Composite(parent, SWT.NONE); + { + GridLayout layout = new GridLayout(); + layout.numColumns = 1; + layout.verticalSpacing = 12; + composite.setLayout(layout); + + GridData data = new GridData(); + data.verticalAlignment = GridData.FILL; + data.grabExcessVerticalSpace = true; + data.horizontalAlignment = GridData.FILL; + composite.setLayoutData(data); + } + + Label resourceURILabel = new Label(composite, SWT.LEFT); + { + resourceURILabel.setText(SetupEditorPlugin.INSTANCE.getString("_UI_File_label")); + + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + resourceURILabel.setLayoutData(data); + } + + Composite fileComposite = new Composite(composite, SWT.NONE); + { + GridData data = new GridData(); + data.horizontalAlignment = GridData.END; + fileComposite.setLayoutData(data); + + GridLayout layout = new GridLayout(); + data.horizontalAlignment = GridData.FILL; + layout.marginHeight = 0; + layout.marginWidth = 0; + layout.numColumns = 2; + fileComposite.setLayout(layout); + } + + fileField = new Text(fileComposite, SWT.BORDER); + { + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + data.grabExcessHorizontalSpace = true; + data.horizontalSpan = 1; + fileField.setLayoutData(data); + } + + fileField.addModifyListener(validator); + + Button resourceURIBrowseFileSystemButton = new Button(fileComposite, SWT.PUSH); + resourceURIBrowseFileSystemButton.setText(SetupEditorPlugin.INSTANCE.getString("_UI_Browse_label")); + + resourceURIBrowseFileSystemButton.addSelectionListener(new SelectionAdapter() + { + @Override + public void widgetSelected(SelectionEvent event) + { + String[] filters = SetupEditor.FILE_EXTENSION_FILTERS.toArray(new String[SetupEditor.FILE_EXTENSION_FILTERS + .size()]); + String[] files = SetupEditorAdvisor.openFilePathDialog(getShell(), SWT.SAVE, filters); + if (files.length > 0) + { + fileField.setText(files[0]); + } + } + }); + Label containerLabel = new Label(composite, SWT.LEFT); + { + containerLabel.setText(SetupEditorPlugin.INSTANCE.getString("_UI_ModelObject")); + + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + containerLabel.setLayoutData(data); + } + + initialObjectField = new Combo(composite, SWT.BORDER); + { + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + data.grabExcessHorizontalSpace = true; + initialObjectField.setLayoutData(data); + } + + for (String objectName : getInitialObjectNames()) + { + initialObjectField.add(getLabel(objectName)); + } + + if (initialObjectField.getItemCount() == 1) + { + initialObjectField.select(0); + } + initialObjectField.addModifyListener(validator); + + Label encodingLabel = new Label(composite, SWT.LEFT); + { + encodingLabel.setText(SetupEditorPlugin.INSTANCE.getString("_UI_XMLEncoding")); + + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + encodingLabel.setLayoutData(data); + } + encodingField = new Combo(composite, SWT.BORDER); + { + GridData data = new GridData(); + data.horizontalAlignment = GridData.FILL; + data.grabExcessHorizontalSpace = true; + encodingField.setLayoutData(data); + } + + for (String encoding : getEncodings()) + { + encodingField.add(encoding); + } + + encodingField.select(0); + encodingField.addModifyListener(validator); + + setPageComplete(validatePage()); + setControl(composite); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ModifyListener validator = new ModifyListener() + { + public void modifyText(ModifyEvent e) + { + setPageComplete(validatePage()); + } + }; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected boolean validatePage() + { + URI fileURI = getFileURI(); + if (fileURI == null || fileURI.isEmpty()) + { + setErrorMessage(null); + return false; + } + + String extension = fileURI.fileExtension(); + if (extension == null || !FILE_EXTENSIONS.contains(extension)) + { + String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension"; + setErrorMessage(SetupEditorPlugin.INSTANCE.getString(key, new Object[] { FORMATTED_FILE_EXTENSIONS })); + return false; + } + + setErrorMessage(null); + return getInitialObjectName() != null && getEncodings().contains(encodingField.getText()); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setVisible(boolean visible) + { + super.setVisible(visible); + if (visible) + { + initialObjectField.clearSelection(); + encodingField.clearSelection(); + fileField.setFocus(); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getInitialObjectName() + { + String label = initialObjectField.getText(); + + for (String name : getInitialObjectNames()) + { + if (getLabel(name).equals(label)) + { + return name; + } + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getEncoding() + { + return encodingField.getText(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public URI getFileURI() + { + try + { + return URI.createFileURI(fileField.getText()); + } + catch (Exception exception) + { + // Ignore + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void selectFileField() + { + initialObjectField.clearSelection(); + encodingField.clearSelection(); + fileField.selectAll(); + fileField.setFocus(); + } + + /** + * Returns the label for the specified type name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected String getLabel(String typeName) + { + try + { + return SetupEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type"); + } + catch (MissingResourceException mre) + { + SetupEditorPlugin.INSTANCE.log(mre); + } + return typeName; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<String> getEncodings() + { + if (encodings == null) + { + encodings = new ArrayList<String>(); + for (StringTokenizer stringTokenizer = new StringTokenizer( + SetupEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens();) + { + encodings.add(stringTokenizer.nextToken()); + } + } + return encodings; + } + } + + /** + * The framework calls this to create the contents of the wizard. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void addPages() + { + initialObjectCreationPage = new SetupModelWizardInitialObjectCreationPage("Whatever2"); + initialObjectCreationPage.setTitle(SetupEditorPlugin.INSTANCE.getString("_UI_SetupModelWizard_label")); + initialObjectCreationPage.setDescription(SetupEditorPlugin.INSTANCE + .getString("_UI_Wizard_initial_object_description")); + addPage(initialObjectCreationPage); + } + + /** + * Get the URI from the page. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public URI getModelURI() + { + return initialObjectCreationPage.getFileURI(); + } + +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/.classpath b/plugins/org.eclipse.emf.cdo.releng.setup.editor/.classpath index 304e86186a..467d0ae05e 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.editor/.classpath +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/.classpath @@ -2,6 +2,10 @@ <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.pde.core.requiredPlugins"> + <accessrules> + <accessrule kind="accessible" pattern="org/eclipse/egit/**"/> + </accessrules> + </classpathentry> <classpathentry kind="output" path="bin"/> </classpath> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.editor/.settings/org.eclipse.core.resources.prefs index 45834dcf98..38ce18d974 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.editor/.settings/org.eclipse.core.resources.prefs +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/.settings/org.eclipse.core.resources.prefs @@ -1,5 +1,2 @@ eclipse.preferences.version=1 -encoding/.project=UTF-8 -encoding//model/Configuration.xmi=ASCII -encoding//model/setup.ecore=UTF-8 -encoding//model/setup.ecorediag=UTF-8 +encoding/.project=UTF-8
\ No newline at end of file diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.setup.editor/META-INF/MANIFEST.MF index ab3800c7f5..ec19bc4e47 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.editor/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/META-INF/MANIFEST.MF @@ -8,11 +8,18 @@ Bundle-Activator: org.eclipse.emf.cdo.releng.setup.presentation.SetupEditorPlugi Bundle-Vendor: %providerName Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Export-Package: org.eclipse.emf.cdo.releng.setup.presentation;x-friends:=org.eclipse.emf.cdo.releng.setup.ide;version="1.0.0" +Export-Package: org.eclipse.emf.cdo.releng.setup.presentation;x-internal:=true;version="1.0.0", + org.eclipse.emf.cdo.releng.setup.presentation.actions;x-internal:=true;version="1.0.0" Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", org.eclipse.core.resources;visibility:=reexport;bundle-version="[3.5.0,4.0.0)", org.eclipse.emf.cdo.releng.setup.edit;visibility:=reexport;bundle-version="[1.0.0,2.0.0)", + org.eclipse.emf.cdo.releng.workingsets.edit;visibility:=reexport;bundle-version="[1.0.0,2.0.0)", + org.eclipse.emf.cdo.releng.predicates.edit;visibility:=reexport;bundle-version="[1.0.0,2.0.0)", org.eclipse.emf.ecore.xmi;visibility:=reexport;bundle-version="[2.5.0,3.0.0)", org.eclipse.emf.edit.ui;visibility:=reexport;bundle-version="[2.5.0,3.0.0)", - org.eclipse.ui.ide;visibility:=reexport;bundle-version="[3.5.0,4.0.0)" + org.eclipse.ui.ide;visibility:=reexport;bundle-version="[3.5.0,4.0.0)", + org.eclipse.jgit;bundle-version="[3.0.0,4.0.0)", + org.eclipse.egit;bundle-version="[3.0.0,4.0.0)", + org.eclipse.egit.core;bundle-version="[3.0.0,4.0.0)", + org.eclipse.egit.ui;bundle-version="[3.0.0,4.0.0)" Bundle-ActivationPolicy: lazy diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/icons/prefs.gif b/plugins/org.eclipse.emf.cdo.releng.setup.editor/icons/prefs.gif Binary files differindex 5eed04350e..5eed04350e 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/icons/prefs.gif +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/icons/prefs.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/icons/push_directly.gif b/plugins/org.eclipse.emf.cdo.releng.setup.editor/icons/push_directly.gif Binary files differindex b67692df43..b67692df43 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/icons/push_directly.gif +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/icons/push_directly.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/icons/update.gif b/plugins/org.eclipse.emf.cdo.releng.setup.editor/icons/update.gif Binary files differindex 16f4f7c4e0..16f4f7c4e0 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/icons/update.gif +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/icons/update.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.setup.editor/plugin.properties index f03733cabd..3ffe081464 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.editor/plugin.properties +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/plugin.properties @@ -33,7 +33,7 @@ _UI_MultiObjectSelected = Selected {0} Objects _UI_OpenEditorError_label = Open Editor -_UI_Wizard_category = Example EMF Model Creation Wizards +_UI_Wizard_category = Release Engineering _UI_CreateModelError_message = Problems encountered in file "{0}" diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.setup.editor/plugin.xml index 81470761ec..de114166bc 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.editor/plugin.xml +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/plugin.xml @@ -14,21 +14,25 @@ <plugin> <extension point="org.eclipse.ui.newWizards"> - <!-- @generated setup --> + <!-- @generated setup not --> <category id="org.eclipse.emf.ecore.Wizard.category.ID" name="%_UI_Wizard_category"/> + <category + id="org.eclipse.emf.cdo.releng" + name="%_UI_Wizard_category"/> <wizard id="org.eclipse.emf.cdo.releng.setup.presentation.SetupModelWizardID" name="%_UI_SetupModelWizard_label" class="org.eclipse.emf.cdo.releng.setup.presentation.SetupModelWizard" - category="org.eclipse.emf.ecore.Wizard.category.ID" + category="org.eclipse.emf.cdo.releng" icon="icons/full/obj16/SetupModelFile.gif"> <description>%_UI_SetupModelWizard_description</description> <selection class="org.eclipse.core.resources.IResource"/> </wizard> </extension> + <extension point="org.eclipse.ui.editors"> <!-- @generated setup --> <editor @@ -41,4 +45,57 @@ </editor> </extension> + <extension + point="org.eclipse.ui.actionSets"> + <actionSet + id="org.eclipse.emf.cdo.releng.setup.editor.actionSet" + label="Setup Actions" + visible="true"> + <menu + id="setupMenu" + label="Setup &Menu"> + <separator + name="setupGroup"> + </separator> + </menu> + <action + class="org.eclipse.emf.cdo.releng.setup.presentation.actions.PreferencesAction" + icon="icons/prefs.gif" + id="org.eclipse.emf.cdo.releng.setup.presentation.actions.PreferencesAction" + label="&Preferences" + style="push" + toolbarPath="setupGroup" + tooltip="Opens an editor on the setup preferences"> + </action> + <action + class="org.eclipse.emf.cdo.releng.setup.presentation.actions.ManualPerformAction" + icon="icons/update.gif" + id="org.eclipse.emf.cdo.releng.setup.presentation.actions.ManualPerformAction" + label="&Perform" + style="push" + toolbarPath="setupGroup" + tooltip="Perform setup tasks"> + </action> + </actionSet> + </extension> + + <extension + point="org.eclipse.ui.popupMenus"> + <objectContribution + adaptable="true" + id="org.eclipse.emf.cdo.releng.setup.editor.contribution1" + objectClass="org.eclipse.egit.ui.internal.repository.tree.RepositoryNode"> + <action + class="org.eclipse.emf.cdo.releng.setup.presentation.actions.PushDirectAction" + enablesFor="1" + icon="icons/push_directly.gif" + id="org.eclipse.emf.cdo.releng.setup.editor.PushDirectAction" + label="Push Directly" + menubarPath="additions" + state="true" + style="push"/> + </objectContribution> + </extension> + + </plugin> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupEditor.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupEditor.java index e370a9b3d3..f706e6b8e3 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupEditor.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupEditor.java @@ -10,8 +10,11 @@ */ package org.eclipse.emf.cdo.releng.setup.presentation; +import org.eclipse.emf.cdo.releng.predicates.provider.PredicatesItemProviderAdapterFactory; import org.eclipse.emf.cdo.releng.setup.Preferences; +import org.eclipse.emf.cdo.releng.setup.SetupFactory; import org.eclipse.emf.cdo.releng.setup.provider.SetupItemProviderAdapterFactory; +import org.eclipse.emf.cdo.releng.workingsets.provider.WorkingSetsItemProviderAdapterFactory; import org.eclipse.emf.common.command.BasicCommandStack; import org.eclipse.emf.common.command.Command; @@ -28,6 +31,7 @@ import org.eclipse.emf.common.util.Diagnostic; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; import org.eclipse.emf.ecore.util.EContentAdapter; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; @@ -84,6 +88,8 @@ import org.eclipse.swt.dnd.DND; import org.eclipse.swt.dnd.Transfer; import org.eclipse.swt.events.ControlAdapter; import org.eclipse.swt.events.ControlEvent; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; @@ -689,6 +695,8 @@ public class SetupEditor extends MultiPageEditorPart implements IEditingDomainPr adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory()); adapterFactory.addAdapterFactory(new SetupItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new WorkingSetsItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new PredicatesItemProviderAdapterFactory()); adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory()); // Create the command stack that will notify this editor as commands are executed. @@ -1003,10 +1011,9 @@ public class SetupEditor extends MultiPageEditorPart implements IEditingDomainPr * This is the method used by the framework to install your own controls. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @generated NOT + * @generated */ - @Override - public void createPages() + public void createPagesGen() { // Creates the model from the editor input // @@ -1024,7 +1031,7 @@ public class SetupEditor extends MultiPageEditorPart implements IEditingDomainPr selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); - selectionViewer.setInput(editingDomain.getResourceSet().getResources().get(0)); + selectionViewer.setInput(editingDomain.getResourceSet()); selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true); new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory); @@ -1070,6 +1077,41 @@ public class SetupEditor extends MultiPageEditorPart implements IEditingDomainPr }); } + @Override + public void createPages() + { + createPagesGen(); + + Resource resource = editingDomain.getResourceSet().getResources().get(0); + selectionViewer.setInput(resource); + selectionViewer.setSelection(new StructuredSelection(resource.getContents().get(0)), true); + + getViewer().getControl().addMouseListener(new MouseListener() + { + public void mouseDoubleClick(MouseEvent e) + { + try + { + getSite().getPage().showView("org.eclipse.ui.views.PropertySheet"); //$NON-NLS-1$ + } + catch (PartInitException ex) + { + SetupEditorPlugin.INSTANCE.log(ex); + } + } + + public void mouseDown(MouseEvent e) + { + // do nothing + } + + public void mouseUp(MouseEvent e) + { + // do nothing + } + }); + } + /** * If there is just one page in the multi-page editor part, * this hides the single tab at the bottom. @@ -1715,6 +1757,16 @@ public class SetupEditor extends MultiPageEditorPart implements IEditingDomainPr try { URI uri = Preferences.PREFERENCES_URI; + + ResourceSet resourceSet = new ResourceSetImpl(); + if (!resourceSet.getURIConverter().exists(uri, null)) + { + Resource resource = resourceSet.createResource(Preferences.PREFERENCES_URI); + Preferences preferences = SetupFactory.eINSTANCE.createPreferences(); + resource.getContents().add(preferences); + resource.save(null); + } + IEditorInput editorInput = new URIEditorInput(uri, uri.lastSegment()); page.openEditor(editorInput, EDITOR_ID); } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupEditorPlugin.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupEditorPlugin.java index 96cbf6d2bc..910e8b8392 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupEditorPlugin.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupEditorPlugin.java @@ -10,6 +10,8 @@ */ package org.eclipse.emf.cdo.releng.setup.presentation; +import org.eclipse.emf.cdo.releng.workingsets.provider.WorkingSetsEditPlugin; + import org.eclipse.emf.common.EMFPlugin; import org.eclipse.emf.common.ui.EclipseUIPlugin; import org.eclipse.emf.common.util.ResourceLocator; @@ -17,6 +19,7 @@ import org.eclipse.emf.common.util.ResourceLocator; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; +import org.eclipse.emf.cdo.releng.predicates.provider.PredicatesEditPlugin; /** * This is the central singleton for the Setup editor plugin. @@ -50,7 +53,7 @@ public final class SetupEditorPlugin extends EMFPlugin */ public SetupEditorPlugin() { - super(new ResourceLocator[] {}); + super(new ResourceLocator[] { WorkingSetsEditPlugin.INSTANCE, PredicatesEditPlugin.INSTANCE, }); } /** diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupModelWizard.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupModelWizard.java index b6eba9d82e..d545c83de5 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupModelWizard.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupModelWizard.java @@ -406,7 +406,7 @@ public class SetupModelWizard extends Wizard implements INewWizard * <!-- end-user-doc --> * @generated */ - public void createControl(Composite parent) + public void createControlGen(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); { @@ -478,6 +478,21 @@ public class SetupModelWizard extends Wizard implements INewWizard setControl(composite); } + public void createControl(Composite parent) + { + createControlGen(parent); + + String[] items = initialObjectField.getItems(); + for (int i = 0; i < items.length; ++i) + { + if (items[i].equals("Project")) + { + initialObjectField.select(i); + break; + } + } + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/ManualPerformAction.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/ManualPerformAction.java new file mode 100644 index 0000000000..f39153c097 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/ManualPerformAction.java @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.setup.presentation.actions; + +import org.eclipse.emf.cdo.releng.internal.setup.SetupTaskPerformer; +import org.eclipse.emf.cdo.releng.internal.setup.ui.ProgressLogDialog; +import org.eclipse.emf.cdo.releng.setup.presentation.SetupEditorPlugin; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogRunnable; + +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.IWorkbenchWindowActionDelegate; +import org.eclipse.ui.PlatformUI; + +import java.io.File; + +/** + * @author Eike Stepper + */ +public class ManualPerformAction implements IWorkbenchWindowActionDelegate +{ + public ManualPerformAction() + { + } + + public void init(IWorkbenchWindow window) + { + } + + public void selectionChanged(IAction action, ISelection selection) + { + } + + public void dispose() + { + } + + public void run(IAction action) + { + try + { + final SetupTaskPerformer setupTaskPerformer = new SetupTaskPerformer(true); + File logFile = new File(setupTaskPerformer.getInstallDir(), "setup.log"); + IWorkbenchWindow window = PlatformUI.getWorkbench().getWorkbenchWindows()[0]; + final Shell shell = window.getShell(); + ProgressLogDialog.run(shell, logFile, "Setting up IDE", new ProgressLogRunnable() + { + public boolean run(ProgressLog log) throws Exception + { + setupTaskPerformer.perform(); + return true; + } + }); + } + catch (Exception ex) + { + SetupEditorPlugin.INSTANCE.log(ex); + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/actions/PreferencesAction.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/PreferencesAction.java index 5fec4dea09..1b70644cbe 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/actions/PreferencesAction.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/PreferencesAction.java @@ -8,7 +8,7 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.ide.actions; +package org.eclipse.emf.cdo.releng.setup.presentation.actions; import org.eclipse.emf.cdo.releng.setup.presentation.SetupEditor; diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/actions/PushDirectAction.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/PushDirectAction.java index 922b02adc9..a822acb8b8 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/actions/PushDirectAction.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/PushDirectAction.java @@ -8,9 +8,9 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.ide.actions; +package org.eclipse.emf.cdo.releng.setup.presentation.actions; -import org.eclipse.emf.cdo.releng.setup.ide.Activator; +import org.eclipse.emf.cdo.releng.setup.presentation.SetupEditorPlugin; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IProgressMonitor; @@ -79,7 +79,7 @@ public class PushDirectAction implements IObjectActionDelegate } catch (Exception ex) { - return Activator.getStatus(ex); + return SetupEditorPlugin.getStatus(ex); } finally { diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.classpath b/plugins/org.eclipse.emf.cdo.releng.setup.ide/.classpath deleted file mode 100644 index 1b34366a4c..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.classpath +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <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"> - <accessrules> - <accessrule kind="accessible" pattern="org/eclipse/equinox/p2/publisher/**"/> - <accessrule kind="accessible" pattern="org/eclipse/equinox/p2/publisher/eclipse/**"/> - <accessrule kind="accessible" pattern="org/eclipse/equinox/internal/p2/director/app/**"/> - <accessrule kind="accessible" pattern="org/eclipse/equinox/internal/p2/console/**"/> - <accessrule kind="accessible" pattern="org/eclipse/egit/core/**"/> - <accessrule kind="accessible" pattern="org/eclipse/egit/core/op/**"/> - <accessrule kind="accessible" pattern="org/eclipse/jgit/lib/**"/> - <accessrule kind="accessible" pattern="org/eclipse/ui/internal/progress/**"/> - </accessrules> - </classpathentry> - <classpathentry kind="src" path="src"/> - <classpathentry kind="output" path="bin"/> -</classpath> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.setup.ide/META-INF/MANIFEST.MF deleted file mode 100644 index 80f5fa8563..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/META-INF/MANIFEST.MF +++ /dev/null @@ -1,47 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-SymbolicName: org.eclipse.emf.cdo.releng.setup.ide;singleton:=true -Bundle-Version: 1.0.0.qualifier -Bundle-ClassPath: . -Bundle-Name: %pluginName -Bundle-Vendor: %providerName -Bundle-Localization: plugin -Bundle-Activator: org.eclipse.emf.cdo.releng.setup.ide.Activator -Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", - org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)", - org.eclipse.core.filesystem;bundle-version="[1.3.0,2.0.0)", - org.eclipse.core.variables;bundle-version="[3.0.0,4.0.0)", - org.eclipse.ui;bundle-version="[3.5.0,4.0.0)", - org.eclipse.ui.ide;bundle-version="[3.5.0,4.0.0)", - org.eclipse.team.ui;bundle-version="[3.5.0,4.0.0)", - org.eclipse.jgit;bundle-version="[3.0.0,4.0.0)", - com.jcraft.jsch;bundle-version="[0.0.0,1.0.0)", - javaewah;bundle-version="[0.0.0,1.0.0)", - org.eclipse.egit;bundle-version="[3.0.0,4.0.0)", - org.eclipse.egit.core;bundle-version="[3.0.0,4.0.0)", - org.eclipse.egit.ui;bundle-version="[3.0.0,4.0.0)", - org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)", - org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)", - org.eclipse.emf.edit.ui;bundle-version="[2.5.0,3.0.0)", - org.eclipse.emf.cdo.releng.setup;bundle-version="[1.0.0,2.0.0)", - org.eclipse.emf.cdo.releng.setup.edit;bundle-version="[1.0.0,2.0.0)", - org.eclipse.emf.cdo.releng.setup.editor;bundle-version="[1.0.0,2.0.0)", - org.eclipse.emf.cdo.releng.setup.ui;bundle-version="[1.0.0,2.0.0)", - org.eclipse.buckminster.cmdline;bundle-version="[1.0.0,2.0.0)", - org.eclipse.buckminster.runtime;bundle-version="[1.0.0,2.0.0)", - org.eclipse.buckminster.core;bundle-version="[1.0.0,2.0.0)", - org.eclipse.buckminster.pde;bundle-version="[1.0.0,2.0.0)", - org.eclipse.equinox.p2.core;bundle-version="[2.0.0,3.0.0)", - org.eclipse.equinox.p2.ui;bundle-version="[2.0.0,3.0.0)", - org.eclipse.equinox.p2.metadata;bundle-version="[2.0.0,3.0.0)", - org.eclipse.equinox.p2.repository;bundle-version="[2.0.0,3.0.0)", - org.eclipse.equinox.p2.artifact.repository;bundle-version="[1.0.0,2.0.0)", - org.eclipse.equinox.p2.metadata.repository;bundle-version="[1.0.0,2.0.0)", - org.eclipse.equinox.p2.console;bundle-version="[1.0.0,2.0.0)", - org.eclipse.equinox.p2.publisher;bundle-version="[1.0.0,2.0.0)", - org.eclipse.equinox.p2.publisher.eclipse;bundle-version="[1.0.0,2.0.0)", - org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)" -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Bundle-ActivationPolicy: lazy -Export-Package: org.eclipse.emf.cdo.releng.setup.ide;version="1.0.0";x-internal:=true, - org.eclipse.emf.cdo.releng.setup.ide.actions;version="1.0.0";x-internal:=true diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.setup.ide/plugin.xml deleted file mode 100644 index 65574ab95a..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/plugin.xml +++ /dev/null @@ -1,85 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<?eclipse version="3.4"?> -<!-- - Copyright (c) 2012, 2013 Eike Stepper (Berlin, Germany) and others. - All rights reserved. This program and the accompanying materials - are made available under the terms of the Eclipse Public License v1.0 - which accompanies this distribution, and is available at - http://www.eclipse.org/legal/epl-v10.html - - Contributors: - Eike Stepper - initial API and implementation ---> - -<plugin> - - <extension - point="org.eclipse.buckminster.cmdline.commands"> - <command - addhelpflags="false" - class="org.eclipse.emf.cdo.releng.setup.ide.Buckminster$ImportCommand" - name="import2" - status="NORMAL"> - </command> - </extension> - - <extension - point="org.eclipse.ui.startup"> - <startup - class="org.eclipse.emf.cdo.releng.setup.ide.Activator$EarlyStartup"> - </startup> - </extension> - - <extension - point="org.eclipse.ui.actionSets"> - <actionSet - id="org.eclipse.emf.cdo.releng.setup.ide.actionSet" - label="Setup Actions" - visible="true"> - <menu - id="setupMenu" - label="Setup &Menu"> - <separator - name="setupGroup"> - </separator> - </menu> - <action - class="org.eclipse.emf.cdo.releng.setup.ide.actions.PreferencesAction" - icon="icons/prefs.gif" - id="org.eclipse.emf.cdo.releng.setup.ide.actions.PreferencesAction" - label="&Preferences" - style="push" - toolbarPath="setupGroup" - tooltip="Opens an editor on the setup preferences"> - </action> - <action - class="org.eclipse.emf.cdo.releng.setup.ide.actions.BuckyAction" - icon="icons/update.gif" - id="org.eclipse.emf.cdo.releng.setup.ide.actions.BuckyAction" - label="&Bucky" - style="push" - toolbarPath="setupGroup" - tooltip="Imports the Buckminster MSpec"> - </action> - </actionSet> - </extension> - - <extension - point="org.eclipse.ui.popupMenus"> - <objectContribution - adaptable="true" - id="org.eclipse.emf.cdo.releng.setup.ide.contribution1" - objectClass="org.eclipse.egit.ui.internal.repository.tree.RepositoryNode"> - <action - class="org.eclipse.emf.cdo.releng.setup.ide.actions.PushDirectAction" - enablesFor="1" - icon="icons/push_directly.gif" - id="org.eclipse.emf.cdo.releng.setup.ide.PushDirectAction" - label="Push Directly" - menubarPath="additions" - state="true" - style="push"/> - </objectContribution> - </extension> - -</plugin> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Activator.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Activator.java deleted file mode 100644 index 224059588f..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Activator.java +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.ide; - -import org.eclipse.emf.cdo.releng.setup.GitClone; -import org.eclipse.emf.cdo.releng.setup.Setup; - -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; - -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.ui.IStartup; -import org.eclipse.ui.plugin.AbstractUIPlugin; - -import org.osgi.framework.BundleContext; - -import java.io.File; - -/** - * @author Eike Stepper - */ -public class Activator extends AbstractUIPlugin implements SetupContext -{ - public static final String PLUGIN_ID = "org.eclipse.emf.cdo.releng.setup.ide"; - - private static Activator plugin; - - static BundleContext bundleContext; - - private File branchDir; - - private Setup setup; - - public Activator() - { - } - - public File getLogFile() - { - return new File(branchDir, "setup.log"); - } - - public File getProjectDir() - { - return branchDir.getParentFile(); - } - - public File getBaselineDir() - { - return new File(getProjectDir(), ".baselines"); - } - - public File getBranchDir() - { - return branchDir; - } - - public File getEclipseDir() - { - return new File(branchDir, "eclipse"); - } - - public File getGitDir() - { - return new File(branchDir, "git"); - } - - public File getWorkDir(GitClone clone) - { - return new File(getGitDir(), clone.getName()); - } - - public File getWorkspaceDir() - { - return new File(branchDir, "ws"); - } - - public File getTargetPlatformDir() - { - return new File(branchDir, "tp"); - } - - public Setup getSetup() - { - return setup; - } - - @Override - public void start(BundleContext context) throws Exception - { - super.start(context); - bundleContext = context; - plugin = this; - - try - { - if ("true".equals(System.getProperty("org.eclipse.emf.cdo.releng.setup.ide", "false"))) - { - ResourceSet resourceSet = new ResourceSetImpl(); - resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); - - IPath branchDirPath = ResourcesPlugin.getWorkspace().getRoot().getLocation().removeLastSegments(1); - branchDir = new File(branchDirPath.toOSString()); - - URI uri = URI.createFileURI(branchDirPath.append("setup.xmi").toOSString()); - Resource resource = resourceSet.getResource(uri, true); - - setup = (Setup)resource.getContents().get(0); - SetupIDE.run(); - } - } - catch (Exception ex) - { - log(ex); - } - } - - @Override - public void stop(BundleContext context) throws Exception - { - setup = null; - branchDir = null; - - plugin = null; - super.stop(context); - } - - public static void log(String message) - { - log(message, IStatus.INFO); - } - - protected static void log(String message, int severity) - { - plugin.getLog().log(new Status(severity, PLUGIN_ID, message)); - } - - public static void log(IStatus status) - { - plugin.getLog().log(status); - } - - public static String log(Throwable t) - { - IStatus status = getStatus(t); - log(status); - return status.getMessage(); - } - - public static IStatus getStatus(Throwable t) - { - if (t instanceof CoreException) - { - CoreException coreException = (CoreException)t; - return coreException.getStatus(); - } - - String msg = t.getLocalizedMessage(); - if (msg == null || msg.length() == 0) - { - msg = t.getClass().getName(); - } - - return new Status(IStatus.ERROR, PLUGIN_ID, msg, t); - } - - public static Activator getDefault() - { - return plugin; - } - - public static ImageDescriptor getImageDescriptor(String path) - { - return imageDescriptorFromPlugin(PLUGIN_ID, path); - } - - /** - * @author Eike Stepper - */ - public static final class EarlyStartup implements IStartup - { - public void earlyStartup() - { - } - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Buckminster.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Buckminster.java deleted file mode 100644 index 83cfb87e01..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Buckminster.java +++ /dev/null @@ -1,354 +0,0 @@ -/* - * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.ide; - -import org.eclipse.emf.cdo.releng.setup.ApiBaseline; -import org.eclipse.emf.cdo.releng.setup.Branch; -import org.eclipse.emf.cdo.releng.setup.GitClone; -import org.eclipse.emf.cdo.releng.setup.Project; -import org.eclipse.emf.cdo.releng.setup.Setup; -import org.eclipse.emf.cdo.releng.setup.helper.Downloads; -import org.eclipse.emf.cdo.releng.setup.helper.Files; -import org.eclipse.emf.cdo.releng.setup.helper.OS; -import org.eclipse.emf.cdo.releng.setup.helper.Progress; -import org.eclipse.emf.cdo.releng.setup.helper.ProgressLogProvider; - -import org.eclipse.net4j.util.io.FileLock; -import org.eclipse.net4j.util.io.ZIPUtil; -import org.eclipse.net4j.util.io.ZIPUtil.FileSystemUnzipHandler; - -import org.eclipse.buckminster.cmdline.Headless; -import org.eclipse.buckminster.core.commands.Import; -import org.eclipse.core.resources.IWorkspaceDescription; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.core.runtime.jobs.ProgressProvider; -import org.eclipse.equinox.p2.publisher.AbstractPublisherApplication; -import org.eclipse.equinox.p2.publisher.eclipse.FeaturesAndBundlesPublisherApplication; -import org.eclipse.ui.internal.progress.ProgressManager; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -/** - * @author Eike Stepper - */ -public final class Buckminster -{ - private static final SetupContext CONTEXT = Activator.getDefault(); - - // TODO Don't use Headless because if cancels important jobs! Use e.g. ImportAction code instead... - public static void run(String... args) throws Exception - { - Activator.log("Buckminster command: " + Arrays.asList(args)); - - try - { - Headless buckminster = new Headless(); - buckminster.run(args); - } - finally - { - Job.getJobManager().setProgressProvider(ProgressManager.getInstance()); - } - } - - public static void importBaseline() throws Exception - { - Branch branch = CONTEXT.getSetup().getBranch(); - ApiBaseline apiBaseline = branch.getApiBaseline(); - if (apiBaseline == null) - { - return; - } - - boolean autoBuilding = disableAutoBuilding(); - - try - { - String version = apiBaseline.getVersion(); - Progress.log().addLine("Setting baseline " + version); - - final File baselineDir = CONTEXT.getBaselineDir(); - File target = new File(baselineDir, version); - if (!target.exists()) - { - String url = apiBaseline.getZipLocation(); - File file = Downloads.downloadURL(url); - baselineDir.mkdirs(); - - final File[] rootDir = { null }; - ZIPUtil.unzip(file, new FileSystemUnzipHandler(baselineDir, ZIPUtil.DEFAULT_BUFFER_SIZE) - { - @Override - public void unzipFile(String name, InputStream zipStream) - { - if (rootDir[0] == null) - { - rootDir[0] = new File(baselineDir, new Path(name).segment(0)); - } - - Progress.log().addLine("Unzipping " + name); - super.unzipFile(name, zipStream); - } - }); - - rootDir[0].renameTo(target); - } - - String name = apiBaseline.getProject().getName() + " Baseline"; - importTarget(target, name, false); - - Progress.log().addLine("Setting baseline: " + name); - run("addbaseline", "-A", name); - } - finally - { - restoreAutoBuilding(autoBuilding); - } - } - - private static String getTargetName() - { - Setup setup = CONTEXT.getSetup(); - Branch branch = setup.getBranch(); - Project project = branch.getProject(); - return project.getName() + " Target"; - } - - private static String createTargetDefinition(File folder, String name) throws IOException - { - File xml = getTargetXML(folder); - String xmlPath = xml.getAbsolutePath(); - Progress.log().addLine("Creating target definition: " + xmlPath); - - List<String> lines = new ArrayList<String>(); - lines.add("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>"); - lines.add("<?pde version=\"3.8\"?>"); - lines.add("<target name=\"" + name + "\" sequenceNumber=\"0\">"); - lines.add(" <locations>"); - lines.add(" <location path=\"" + folder.getCanonicalPath().replace('\\', '/') + "\" type=\"Directory\"/>"); - lines.add(" </locations>"); - lines.add("</target>"); - - folder.mkdirs(); - OS.INSTANCE.writeText(xml, lines); - return xmlPath; - } - - private static void importTarget(File folder, String name, boolean activate) throws Exception - { - String xmlPath = createTargetDefinition(folder, name); - Progress.log().addLine("Loading target definition: " + xmlPath); - - if (activate) - { - run("importtarget", "--active", xmlPath); - } - else - { - run("importtarget", xmlPath); - } - } - - public static void importTarget() throws Exception - { - File targetPlatformDir = CONTEXT.getTargetPlatformDir(); - String name = getTargetName(); - - boolean autoBuilding = disableAutoBuilding(); - - try - { - importTarget(targetPlatformDir, name, true); - } - finally - { - restoreAutoBuilding(autoBuilding); - } - } - - public static void importMSpec() throws Exception - { - initVars(); - - File tpOld = null; - File tp = CONTEXT.getTargetPlatformDir(); - if (tp.exists()) - { - tpOld = new File(tp.getParentFile(), tp.getName() + "." + System.currentTimeMillis()); - Files.rename(tp, tpOld); - } - - FileLock tpPoolLock = null; - boolean autoBuilding = disableAutoBuilding(); - - try - { - File tpPool = updateTargetPlatformPool(); - tpPoolLock = FileLock.forWrite(tpPool); - - File gitDir = CONTEXT.getGitDir(); - Setup setup = CONTEXT.getSetup(); - - Progress.log().addLine("Creating new target platform folder"); - createTargetDefinition(tp, getTargetName()); - - String bomPath = new File(CONTEXT.getBranchDir(), "bom.xml").getAbsolutePath(); - String mspecPath = new File(gitDir, setup.getBranch().getMspecFilePath()).getAbsolutePath(); - Progress.log().addLine("Importing MSpec " + mspecPath); - - run("--displaystacktrace", "import2", "-B", bomPath, mspecPath); - - if (tpPoolLock != null) - { - updateBundlePool(tp.getAbsolutePath(), tpPool.getAbsolutePath()); - } - - if (Progress.log().isCancelled()) - { - throw new InterruptedException(); - } - } - catch (Exception ex) - { - File tpBroken = new File(tp.getParentFile(), tp.getName() + "." + System.currentTimeMillis()); - Files.rename(tp, tpBroken); - if (tpOld != null) - { - Files.rename(tpOld, tp); - } - - Files.deleteAsync(tpBroken); - throw ex; - } - finally - { - try - { - if (tpPoolLock != null) - { - tpPoolLock.release(); - } - } - finally - { - restoreAutoBuilding(autoBuilding); - } - } - - if (tpOld != null) - { - Files.deleteAsync(tpOld); - } - } - - private static File updateTargetPlatformPool() throws Exception - { - File installFolder = new File(CONTEXT.getSetup().getPreferences().getInstallFolder()); - - File idePool = new File(installFolder, ".p2pool-ide"); - idePool.mkdirs(); - - File tpPool = new File(installFolder, ".p2pool-tp"); - tpPool.mkdirs(); - - FileLock idePoolLock = FileLock.forWrite(idePool); - - try - { - updateBundlePool(idePool.getAbsolutePath(), tpPool.getAbsolutePath()); - } - finally - { - idePoolLock.release(); - } - - return tpPool; - } - - private static File getTargetXML(File folder) - { - return new File(folder, "target.xml"); - } - - private static void initVars() throws Exception - { - Setup setup = CONTEXT.getSetup(); - Branch branch = setup.getBranch(); - - for (GitClone gitClone : branch.getGitClones()) - { - File workDir = CONTEXT.getWorkDir(gitClone); - String cloneName = workDir.getName(); - String variableName = branch.getCloneVariableName(); - if (variableName == null) - { - variableName = "git.clone." + cloneName; - } - - String description = "Location of " + cloneName + " git clone"; - Variables.set(variableName, description, workDir.getAbsolutePath().replace('\\', '/')); - } - } - - private static void updateBundlePool(String source, String bundlePool) throws Exception - { - Progress.log().addLine("Updating bundle pool: " + bundlePool); - - String bundlePoolURL = "file:/" + bundlePool.replace('\\', '/'); - String[] args = { "-source", source, "-metadataRepository", bundlePoolURL, "-artifactRepository", bundlePoolURL, - "-append", "-publishArtifacts" }; - - AbstractPublisherApplication publisher = new FeaturesAndBundlesPublisherApplication(); - publisher.run(args); - } - - public static boolean disableAutoBuilding() throws CoreException - { - boolean autoBuilding = ResourcesPlugin.getWorkspace().isAutoBuilding(); - if (autoBuilding) - { - restoreAutoBuilding(false); - } - - return autoBuilding; - } - - public static void restoreAutoBuilding(boolean autoBuilding) throws CoreException - { - if (autoBuilding != ResourcesPlugin.getWorkspace().isAutoBuilding()) - { - IWorkspaceDescription description = ResourcesPlugin.getWorkspace().getDescription(); - description.setAutoBuilding(autoBuilding); - - ResourcesPlugin.getWorkspace().setDescription(description); - } - } - - /** - * @author Eike Stepper - */ - public static class ImportCommand extends Import - { - @Override - public ProgressProvider getProgressProvider() - { - return new ProgressLogProvider(Progress.log(), ProgressManager.getInstance()); - } - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/GitClones.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/GitClones.java deleted file mode 100644 index 8c0953ba84..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/GitClones.java +++ /dev/null @@ -1,235 +0,0 @@ -/* - * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.ide; - -import org.eclipse.emf.cdo.releng.setup.Branch; -import org.eclipse.emf.cdo.releng.setup.GitClone; -import org.eclipse.emf.cdo.releng.setup.Setup; -import org.eclipse.emf.cdo.releng.setup.helper.Files; -import org.eclipse.emf.cdo.releng.setup.helper.OS; -import org.eclipse.emf.cdo.releng.setup.helper.Progress; - -import org.eclipse.emf.common.util.URI; - -import org.eclipse.jgit.api.CheckoutCommand; -import org.eclipse.jgit.api.CloneCommand; -import org.eclipse.jgit.api.CreateBranchCommand; -import org.eclipse.jgit.api.CreateBranchCommand.SetupUpstreamMode; -import org.eclipse.jgit.api.Git; -import org.eclipse.jgit.api.ResetCommand; -import org.eclipse.jgit.api.ResetCommand.ResetType; -import org.eclipse.jgit.api.StatusCommand; -import org.eclipse.jgit.api.errors.GitAPIException; -import org.eclipse.jgit.errors.NoWorkTreeException; -import org.eclipse.jgit.lib.ConfigConstants; -import org.eclipse.jgit.lib.CoreConfig.AutoCRLF; -import org.eclipse.jgit.lib.ProgressMonitor; -import org.eclipse.jgit.lib.Ref; -import org.eclipse.jgit.lib.Repository; -import org.eclipse.jgit.lib.StoredConfig; -import org.eclipse.jgit.transport.RefSpec; -import org.eclipse.jgit.transport.RemoteConfig; - -import java.io.File; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -/** - * @author Eike Stepper - */ -public final class GitClones -{ - private static final SetupContext CONTEXT = Activator.getDefault(); - - public static void init() throws Exception - { - Setup setup = CONTEXT.getSetup(); - Branch branch = setup.getBranch(); - String userName = setup.getPreferences().getUserName(); - - for (GitClone gitClone : branch.getGitClones()) - { - File workDir = CONTEXT.getWorkDir(gitClone); - - Repository repository = null; - Git git = null; - - try - { - boolean needsClone = true; - if (workDir.isDirectory()) - { - Progress.log().addLine("Opening Git clone " + workDir); - git = Git.open(workDir); - if (hasWorkingDirectory(git)) - { - needsClone = false; - } - else - { - Files.rename(workDir); - } - } - - String checkoutBranch = gitClone.getCheckoutBranch(); - if (needsClone) - { - URI baseURI = URI.createURI(gitClone.getRemoteURI()); - String remote = URI.createHierarchicalURI(baseURI.scheme(), userName + "@" + baseURI.authority(), - baseURI.device(), baseURI.segments(), baseURI.query(), baseURI.fragment()).toString(); - Progress.log().addLine("Cloning Git repo " + remote + " to " + workDir); - - CloneCommand command = Git.cloneRepository(); - command.setNoCheckout(true); - command.setURI(remote); - command.setRemote("origin"); - command.setBranchesToClone(Collections.singleton(checkoutBranch)); - command.setDirectory(workDir); - command.setTimeout(10); - command.setProgressMonitor(new ProgressLogWrapper()); - - git = command.call(); - } - - repository = git.getRepository(); - StoredConfig config = repository.getConfig(); - - boolean changed = false; - if (OS.INSTANCE.isLineEndingConversionNeeded()) - { - changed = true; - config.setEnum(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_AUTOCRLF, AutoCRLF.TRUE); - } - - String gerritQueue = "refs/for/" + checkoutBranch; - - List<RemoteConfig> remoteConfigs = RemoteConfig.getAllRemoteConfigs(config); - for (RemoteConfig remoteConfig : remoteConfigs) - { - if ("origin".equals(remoteConfig.getName())) - { - List<RefSpec> pushRefSpecs = remoteConfig.getPushRefSpecs(); - if (!hasGerritPushRefSpec(pushRefSpecs, gerritQueue)) - { - RefSpec refSpec = new RefSpec("HEAD:" + gerritQueue); - Progress.log().addLine("Adding push ref spec: " + refSpec); - - remoteConfig.addPushRefSpec(refSpec); - remoteConfig.update(config); - changed = true; - } - - break; - } - } - - if (changed) - { - config.save(); - } - - Map<String, Ref> allRefs = repository.getAllRefs(); - if (!allRefs.containsKey("refs/heads/" + checkoutBranch)) - { - { - CreateBranchCommand command = git.branchCreate(); - command.setUpstreamMode(SetupUpstreamMode.SET_UPSTREAM); - command.setName(checkoutBranch); - command.setStartPoint("refs/remotes/origin/" + checkoutBranch); - - command.call(); - } - - { - CheckoutCommand command = git.checkout(); - command.setName(checkoutBranch); - - command.call(); - } - - { - ResetCommand command = git.reset(); - command.setMode(ResetType.HARD); - - command.call(); - } - } - } - finally - { - if (repository != null) - { - repository.close(); - } - } - } - } - - private static boolean hasWorkingDirectory(Git git) throws GitAPIException - { - try - { - StatusCommand statusCommand = git.status(); - statusCommand.call(); - return true; - } - catch (NoWorkTreeException ex) - { - return false; - } - catch (GitAPIException ex) - { - throw ex; - } - } - - private static boolean hasGerritPushRefSpec(List<RefSpec> pushRefSpecs, String gerritQueue) - { - for (RefSpec refSpec : pushRefSpecs) - { - if (refSpec.getDestination().equals(gerritQueue)) - { - return true; - } - } - - return false; - } - - /** - * @author Eike Stepper - */ - private static final class ProgressLogWrapper implements ProgressMonitor - { - public void update(int completed) - { - } - - public void start(int totalTasks) - { - } - - public boolean isCancelled() - { - return Progress.log().isCancelled(); - } - - public void endTask() - { - } - - public void beginTask(String title, int totalWork) - { - Progress.log().addLine(title); - } - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/P2.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/P2.java deleted file mode 100644 index 5d28d0f1ab..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/P2.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.ide; - -import org.eclipse.emf.cdo.releng.setup.P2Repository; -import org.eclipse.emf.cdo.releng.setup.Setup; -import org.eclipse.emf.cdo.releng.setup.helper.Progress; - -import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.equinox.p2.ui.ProvisioningUI; - -import java.net.URI; - -/** - * @author Eike Stepper - */ -public class P2 -{ - private static final SetupContext CONTEXT = Activator.getDefault(); - - public static void registerUpdateLocations() throws Exception - { - Setup setup = CONTEXT.getSetup(); - for (P2Repository p2Repository : setup.getUpdateLocations()) - { - URI location = new URI(p2Repository.getUrl()); - Progress.log().addLine("Registering update location: " + location); - addRepository(location); - } - } - - private static void addRepository(URI location) throws Exception - { - ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI(); - provisioningUI.loadMetadataRepository(location, false, new NullProgressMonitor()); - provisioningUI.loadArtifactRepository(location, false, new NullProgressMonitor()); - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Prefs.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Prefs.java deleted file mode 100644 index 1dcb39bce7..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Prefs.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.ide; - -import org.eclipse.emf.cdo.releng.setup.Branch; -import org.eclipse.emf.cdo.releng.setup.Preferences; -import org.eclipse.emf.cdo.releng.setup.Project; -import org.eclipse.emf.cdo.releng.setup.Setup; -import org.eclipse.emf.cdo.releng.setup.ToolInstallation; -import org.eclipse.emf.cdo.releng.setup.ToolPreference; -import org.eclipse.emf.cdo.releng.setup.helper.Progress; - -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.preferences.IEclipsePreferences; -import org.eclipse.ui.PlatformUI; - -/** - * @author Eike Stepper - */ -public final class Prefs -{ - private static final SetupContext CONTEXT = Activator.getDefault(); - - private static final IEclipsePreferences ROOT = Platform.getPreferencesService().getRootNode(); - - public static void initEarly() throws Exception - { - Setup setup = CONTEXT.getSetup(); - Branch branch = setup.getBranch(); - Project project = branch.getProject(); - - final String name = project.getName() + ("master".equals(branch.getName()) ? "" : " " + branch.getName()); - PlatformUI.getWorkbench().getWorkbenchWindows()[0].getShell().getDisplay().syncExec(new Runnable() - { - public void run() - { - set("instance/org.eclipse.ui.ide/WORKSPACE_NAME", name); - } - }); - - set("instance/org.eclipse.ui.workbench/RUN_IN_BACKGROUND", "true"); - } - - public static void initLate() throws Exception - { - Setup setup = CONTEXT.getSetup(); - Branch branch = setup.getBranch(); - Project project = branch.getProject(); - - Preferences preferences = setup.getPreferences(); - init(preferences); - init(branch); - init(project); - } - - private static void init(ToolInstallation preferenceHolder) - { - for (ToolPreference toolPreference : preferenceHolder.getToolPreferences()) - { - init(toolPreference); - } - } - - private static void init(ToolPreference toolPreference) - { - String key = toolPreference.getKey(); - if (key.startsWith("/")) - { - key = key.substring(1); - } - - String value = toolPreference.getValue(); - set(key, value); - } - - public static void set(String key, String value) - { - org.osgi.service.prefs.Preferences node = ROOT; - - String[] segments = key.split("/"); - for (int i = 0; i < segments.length - 1; i++) - { - String segment = segments[i]; - node = node.node(segment); - } - - Progress.log().addLine("Setting preference " + key + " = " + value); - node.put(segments[segments.length - 1], value); - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupContext.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupContext.java deleted file mode 100644 index f51bb86438..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupContext.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.ide; - -import org.eclipse.emf.cdo.releng.setup.GitClone; -import org.eclipse.emf.cdo.releng.setup.Setup; - -import java.io.File; - -/** - * @author Eike Stepper - */ -public interface SetupContext -{ - public File getLogFile(); - - public File getProjectDir(); - - public File getBaselineDir(); - - public File getBranchDir(); - - public File getEclipseDir(); - - public File getGitDir(); - - public File getWorkDir(GitClone clone); - - public File getWorkspaceDir(); - - public File getTargetPlatformDir(); - - public Setup getSetup(); -} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupIDE.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupIDE.java deleted file mode 100644 index 8cff533693..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupIDE.java +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.ide; - -import org.eclipse.emf.cdo.releng.setup.helper.OS; -import org.eclipse.emf.cdo.releng.setup.helper.ProgressLog; -import org.eclipse.emf.cdo.releng.setup.helper.ProgressLogRunnable; -import org.eclipse.emf.cdo.releng.setup.ui.ProgressLogDialog; - -import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.PlatformUI; - -import java.io.File; -import java.util.Collections; -import java.util.List; - -/** - * @author Eike Stepper - */ -public final class SetupIDE -{ - private static final SetupContext CONTEXT = Activator.getDefault(); - - private static final IWorkbench WORKBENCH = PlatformUI.getWorkbench(); - - private static final int INITIAL = 0; - - private static final int DONE = 100; - - private static int state; - - public static void run() throws Exception - { - state = readState(); - if (state == DONE) - { - return; - } - - IWorkbenchWindow window = WORKBENCH.getWorkbenchWindows()[0]; - run(window); - } - - private static void run(IWorkbenchWindow window) - { - final Shell shell = window.getShell(); - shell.getDisplay().asyncExec(new Runnable() - { - public void run() - { - ProgressLogDialog.run(shell, CONTEXT.getLogFile(), "Setting up IDE", new ProgressLogRunnable() - { - public boolean run(ProgressLog log) throws Exception - { - boolean autoBuilding = Buckminster.disableAutoBuilding(); - - try - { - return SetupIDE.run(log); - } - finally - { - Buckminster.restoreAutoBuilding(autoBuilding); - } - } - }); - } - }); - } - - private static boolean run(ProgressLog log) throws Exception - { - boolean restart = false; - if (state < 1) - { - P2.registerUpdateLocations(); - saveState(1); - } - - if (state < 2) - { - Prefs.initEarly(); - saveState(2); - } - - if (state < 3) - { - GitClones.init(); - saveState(3); - } - - if (state < 4) - { - Buckminster.importBaseline(); - saveState(4); - } - - if (state < 5) - { - Buckminster.importTarget(); - saveState(5); - } - - if (state < 6) - { - Buckminster.importMSpec(); - saveState(6); - restart = true; - } - - if (state < 7) - { - WorkingSets.init(); - saveState(7); - } - - if (state < DONE) - { - Prefs.initLate(); - saveState(DONE); - } - - Buckminster.restoreAutoBuilding(true); - return restart; - } - - private static void saveState(int state) - { - File stateFile = new File(Activator.getDefault().getStateLocation().toOSString(), "state.txt"); - OS.INSTANCE.writeText(stateFile, Collections.singletonList(Integer.toString(state))); - } - - private static int readState() - { - File stateFile = new File(Activator.getDefault().getStateLocation().toOSString(), "state.txt"); - if (stateFile.exists()) - { - List<String> lines = OS.INSTANCE.readText(stateFile); - if (!lines.isEmpty()) - { - String line = lines.get(0); - return Integer.parseInt(line); - } - } - - return INITIAL; - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Variables.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Variables.java deleted file mode 100644 index 97d2078d21..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Variables.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.ide; - -import org.eclipse.emf.cdo.releng.setup.helper.Progress; - -import org.eclipse.core.variables.IStringVariableManager; -import org.eclipse.core.variables.IValueVariable; -import org.eclipse.core.variables.VariablesPlugin; - -/** - * @author Eike Stepper - */ -public final class Variables -{ - public static void set(String name, String description, String value) throws Exception - { - IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager(); - IValueVariable variable = manager.getValueVariable(name); - if (variable == null) - { - variable = manager.newValueVariable(name, description); - manager.addVariables(new IValueVariable[] { variable }); - } - - String oldDescription = variable.getDescription(); - if (!description.equals(oldDescription)) - { - variable.setDescription(description); - } - - String oldValue = variable.getValue(); - if (!value.equals(oldValue)) - { - Progress.log().addLine("Setting string substitution variable " + name + " = " + value); - variable.setValue(value); - } - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/WorkingSets.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/WorkingSets.java deleted file mode 100644 index e78ef47111..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/WorkingSets.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.ide; - -import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup; -import org.eclipse.emf.cdo.releng.workingsets.util.WorkingSetsUtil; - -import org.eclipse.emf.ecore.resource.Resource; - -import org.eclipse.ui.IViewPart; -import org.eclipse.ui.IViewReference; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.PlatformUI; - -import java.io.IOException; -import java.lang.reflect.Method; - -/** - * @author Eike Stepper - */ -public final class WorkingSets -{ - private static final SetupContext CONTEXT = Activator.getDefault(); - - private static final IWorkbench WORKBENCH = PlatformUI.getWorkbench(); - - private static final String JAVA_PACKAGE_EXPLORER_VIEW_ID = "org.eclipse.jdt.ui.PackageExplorer"; - - public static void init() throws IOException - { - WorkingSetGroup workingSetGroup = CONTEXT.getSetup().getBranch().getProject().getWorkingSetGroup(); - if (workingSetGroup != null) - { - initPackageExplorer(); - - WorkingSetGroup defaultWorkingSetGroup = WorkingSetsUtil.getWorkingSetGroup(); - Resource resource = defaultWorkingSetGroup.eResource(); - resource.getContents().set(0, workingSetGroup); - resource.save(null); - } - } - - private static void initPackageExplorer() - { - IWorkbenchWindow workbenchWindow = WORKBENCH.getWorkbenchWindows()[0]; - for (final IViewReference viewReference : workbenchWindow.getActivePage().getViewReferences()) - { - if (JAVA_PACKAGE_EXPLORER_VIEW_ID.equals(viewReference.getId())) - { - workbenchWindow.getShell().getDisplay().asyncExec(new Runnable() - { - public void run() - { - IViewPart view = viewReference.getView(false); - if (view != null) - { - try - { - Method method = view.getClass().getMethod("rootModeChanged", int.class); - method.invoke(view, 2); - } - catch (Exception ex) - { - Activator.log(ex); - } - } - } - }); - } - } - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/actions/BuckyAction.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/actions/BuckyAction.java deleted file mode 100644 index d0b0858b01..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/actions/BuckyAction.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.ide.actions; - -import org.eclipse.emf.cdo.releng.setup.helper.ProgressLog; -import org.eclipse.emf.cdo.releng.setup.helper.ProgressLogRunnable; -import org.eclipse.emf.cdo.releng.setup.ide.Activator; -import org.eclipse.emf.cdo.releng.setup.ide.Buckminster; -import org.eclipse.emf.cdo.releng.setup.ide.SetupContext; -import org.eclipse.emf.cdo.releng.setup.ui.ProgressLogDialog; - -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.IWorkbenchWindowActionDelegate; - -/** - * @author Eike Stepper - */ -public class BuckyAction implements IWorkbenchWindowActionDelegate -{ - private static final SetupContext CONTEXT = Activator.getDefault(); - - private IWorkbenchWindow window; - - public BuckyAction() - { - } - - public void init(IWorkbenchWindow window) - { - this.window = window; - } - - public void selectionChanged(IAction action, ISelection selection) - { - } - - public void dispose() - { - } - - public void run(IAction action) - { - ProgressLogDialog.run(window.getShell(), CONTEXT.getLogFile(), "Importing mspec", new ProgressLogRunnable() - { - public boolean run(ProgressLog log) throws Exception - { - boolean autoBuilding = Buckminster.disableAutoBuilding(); - - try - { - Buckminster.importMSpec(); - return true; - } - finally - { - Buckminster.restoreAutoBuilding(autoBuilding); - } - } - }); - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.product/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.setup.product/META-INF/MANIFEST.MF index 1e37237808..3479a961c4 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.product/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.cdo.releng.setup.product/META-INF/MANIFEST.MF @@ -12,7 +12,7 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", org.eclipse.emf.edit.ui;bundle-version="[2.5.0,3.0.0)", org.eclipse.emf.cdo.releng.setup;bundle-version="[1.0.0,2.0.0)", org.eclipse.emf.cdo.releng.setup.edit;bundle-version="[1.0.0,2.0.0)", - org.eclipse.emf.cdo.releng.setup.ui;bundle-version="[1.0.0,2.0.0)", + org.eclipse.emf.cdo.releng.setup.editor.rcp;bundle-version="[1.0.0,2.0.0)", org.eclipse.equinox.p2.director.app;bundle-version="[1.0.0,2.0.0)" Bundle-RequiredExecutionEnvironment: J2SE-1.5 Bundle-ActivationPolicy: lazy diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.product/Setup Dialog.launch b/plugins/org.eclipse.emf.cdo.releng.setup.product/Setup Dialog.launch index 3618777d8b..83f377a58e 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.product/Setup Dialog.launch +++ b/plugins/org.eclipse.emf.cdo.releng.setup.product/Setup Dialog.launch @@ -7,13 +7,13 @@ <booleanAttribute key="automaticValidate" value="true"/> <stringAttribute key="bootstrap" value=""/> <stringAttribute key="checked" value="[NONE]"/> -<booleanAttribute key="clearConfig" value="false"/> -<booleanAttribute key="clearws" value="false"/> +<booleanAttribute key="clearConfig" value="true"/> +<booleanAttribute key="clearws" value="true"/> <booleanAttribute key="clearwslog" value="false"/> <stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/Setup Dialog"/> <booleanAttribute key="default" value="false"/> <booleanAttribute key="includeOptional" value="true"/> -<stringAttribute key="location" value="C:\develop\setup\configuration"/> +<stringAttribute key="location" value="D:\sandbox\tmp6\cdo\master\ws.setup.dialog"/> <listAttribute key="org.eclipse.debug.ui.favoriteGroups"> <listEntry value="org.eclipse.debug.ui.launchGroup.debug"/> <listEntry value="org.eclipse.debug.ui.launchGroup.run"/> @@ -22,11 +22,11 @@ <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/> <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/> -<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.p2.mirrors=false -Declipse.p2.unsignedPolicy=allow -Xms1024m -Xmx2500m"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.p2.mirrors=false -Declipse.p2.unsignedPolicy=allow -Xms1024m -Xmx2500m -Dreleng.url=file:/${workspace_loc}/org.eclipse.emf.cdo.releng.setup.update -Dsetup.uri=file://${resource_loc:/org.eclipse.emf.cdo.releng.setup/model/Configuration.setup}"/> <stringAttribute key="pde.version" value="3.3"/> -<stringAttribute key="product" value="org.eclipse.platform.ide"/> -<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.batik.css@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86_64@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.ql@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.text@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.w3c.css.sac@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/> -<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.cdo.releng.setup.edit@default:default,org.eclipse.emf.cdo.releng.setup.editor@default:default,org.eclipse.emf.cdo.releng.setup.product@default:default,org.eclipse.emf.cdo.releng.setup.ui@default:default,org.eclipse.emf.cdo.releng.setup@default:default,org.eclipse.net4j.util@default:default"/> +<stringAttribute key="product" value="org.eclipse.emf.cdo.releng.setup.product.ide"/> +<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,com.jcraft.jsch@default:default,javaewah@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.ant@default:default,org.apache.batik.css@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.eclipse.ant.core@default:default,org.eclipse.buckminster.ant@default:default,org.eclipse.buckminster.cmdline@default:default,org.eclipse.buckminster.core@default:default,org.eclipse.buckminster.download@default:default,org.eclipse.buckminster.jarprocessor@default:default,org.eclipse.buckminster.jdt@default:default,org.eclipse.buckminster.osgi.filter@default:default,org.eclipse.buckminster.pde@default:default,org.eclipse.buckminster.runtime@default:default,org.eclipse.buckminster.sax@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86_64@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient4.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient4@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.egit.core@default:default,org.eclipse.egit.ui@default:default,org.eclipse.egit@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.ql@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security.win32.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.help@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jgit@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.api.tools@default:default,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.search@default:default,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.objectweb.asm@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.w3c.css.sac@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/> +<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.cdo.releng.predicates.edit@default:default,org.eclipse.emf.cdo.releng.predicates@default:default,org.eclipse.emf.cdo.releng.setup.edit@default:default,org.eclipse.emf.cdo.releng.setup.editor.rcp@default:default,org.eclipse.emf.cdo.releng.setup.editor@default:default,org.eclipse.emf.cdo.releng.setup.product@default:default,org.eclipse.emf.cdo.releng.setup@default:default,org.eclipse.emf.cdo.releng.workingsets.edit@default:default,org.eclipse.emf.cdo.releng.workingsets@default:default,org.eclipse.net4j.util@default:default"/> <booleanAttribute key="show_selected_only" value="false"/> <stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/> <booleanAttribute key="tracing" value="true"/> @@ -681,5 +681,5 @@ <booleanAttribute key="useCustomFeatures" value="false"/> <booleanAttribute key="useDefaultConfig" value="true"/> <booleanAttribute key="useDefaultConfigArea" value="true"/> -<booleanAttribute key="useProduct" value="false"/> +<booleanAttribute key="useProduct" value="true"/> </launchConfiguration> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/Application.java b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/Application.java index cffd00f5fc..f9bd7af591 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/Application.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/Application.java @@ -10,20 +10,72 @@ */ package org.eclipse.emf.cdo.releng.setup.product; +import org.eclipse.emf.cdo.releng.setup.Preferences; +import org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisor; + +import org.eclipse.emf.common.ui.URIEditorInput; +import org.eclipse.emf.common.util.URI; + import org.eclipse.equinox.app.IApplication; import org.eclipse.equinox.app.IApplicationContext; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.PlatformUI; /** * @author Eike Stepper */ public class Application implements IApplication { - public Object start(IApplicationContext context) throws Exception + public Object start(final IApplicationContext context) throws Exception { try { - SetupDialog dialog = new SetupDialog(null); - dialog.open(); + final Display display = Display.getDefault(); + + for (;;) + { + SetupDialog dialog = new SetupDialog(null); + dialog.open(); + if (dialog.getReturnCode() != -2) + { + break; + } + + display.asyncExec(new Runnable() + { + public void run() + { + IWorkbench workbench = PlatformUI.getWorkbench(); + IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow(); + if (workbenchWindow == null) + { + display.asyncExec(this); + } + else + { + URI uri = Preferences.PREFERENCES_URI; + IEditorInput editorInput = new URIEditorInput(uri, uri.lastSegment()); + try + { + IWorkbenchPage page = workbenchWindow.getActivePage(); + page.openEditor(editorInput, "org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorID"); + } + catch (PartInitException ex) + { + Activator.log(ex); + } + } + } + }); + + PlatformUI.createAndRunWorkbench(display, new SetupEditorAdvisor()); + } + return 0; } catch (Exception ex) diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/Director.java b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/Director.java deleted file mode 100644 index 7fbf725783..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/Director.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.product; - -import org.eclipse.emf.cdo.releng.setup.DirectorCall; -import org.eclipse.emf.cdo.releng.setup.InstallableUnit; -import org.eclipse.emf.cdo.releng.setup.P2Repository; -import org.eclipse.emf.cdo.releng.setup.SetupFactory; -import org.eclipse.emf.cdo.releng.setup.SetupPackage; -import org.eclipse.emf.cdo.releng.setup.helper.Files; -import org.eclipse.emf.cdo.releng.setup.helper.Progress; -import org.eclipse.emf.cdo.releng.setup.helper.ProgressLog; - -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EAttribute; -import org.eclipse.emf.ecore.EObject; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.core.runtime.OperationCanceledException; -import org.eclipse.core.runtime.Platform; -import org.eclipse.equinox.internal.p2.director.app.DirectorApplication; -import org.eclipse.equinox.internal.p2.director.app.ILog; - -import java.io.File; - -/** - * @author Eike Stepper - */ -public final class Director -{ - private DirectorCall directorCall; - - private String bundlePool; - - private boolean resetProfile; - - private Director(DirectorCall directorCall, String bundlePool) - { - this.directorCall = directorCall; - this.bundlePool = bundlePool; - } - - private Director(String bundlePool) - { - this(SetupFactory.eINSTANCE.createDirectorCall(), bundlePool); - } - - private Director iu(String id) - { - InstallableUnit installableUnit = SetupFactory.eINSTANCE.createInstallableUnit(); - installableUnit.setId(id); - directorCall.getInstallableUnits().add(installableUnit); - return this; - } - - public Director bundle(String id) - { - return iu(id); - } - - public Director feature(String id) - { - return iu(id + ".feature.group"); - } - - public Director resetProfile() - { - resetProfile = true; - return this; - } - - public Director repository(String url) - { - P2Repository p2Repository = SetupFactory.eINSTANCE.createP2Repository(); - p2Repository.setUrl(url); - directorCall.getP2Repositories().add(p2Repository); - return this; - } - - public void install(String destination) throws Exception - { - File eclipseFolder = new File(destination); - eclipseFolder.mkdirs(); - - File branchFolder = eclipseFolder.getParentFile(); - File projectFolder = branchFolder.getParentFile(); - String profileName = projectFolder.getName() + "_" + branchFolder.getName(); - profileName = profileName.replace('.', '_'); - profileName = profileName.replace('-', '_'); - profileName = profileName.replace('/', '_'); - profileName = profileName.replace('\\', '_'); - - EList<P2Repository> p2Repositories = directorCall.getP2Repositories(); - EList<InstallableUnit> installableUnits = directorCall.getInstallableUnits(); - - Progress.log().addLine( - "Calling director to install " + installableUnits.size() + (installableUnits.size() == 1 ? " unit" : " units") - + " from " + p2Repositories.size() + (p2Repositories.size() == 1 ? " repository" : " repositories") - + " to " + destination); - - String repositories = makeList(p2Repositories, SetupPackage.Literals.P2_REPOSITORY__URL); - String ius = makeList(installableUnits, SetupPackage.Literals.INSTALLABLE_UNIT__ID); - - String os = Platform.getOS(); - String ws = Platform.getWS(); - String arch = Platform.getOSArch(); - - String bundleAgent = new File(bundlePool, "p2").getAbsolutePath(); - if (resetProfile) - { - Files.delete(new File(bundleAgent, "org.eclipse.equinox.p2.engine/profileRegistry/" + profileName + ".profile"), - new NullProgressMonitor()); - } - - String[] args = { "-destination", destination, "-repository", repositories, "-installIU", ius, "-profile", - profileName, "-profileProperties", "org.eclipse.update.install.features=true", "-bundlepool", bundlePool, - "-shared", bundleAgent, "-p2.os", os, "-p2.ws", ws, "-p2.arch", arch }; - - DirectorApplication app = new DirectorApplication(); - app.setLog(new ILog() - { - public void log(String message) - { - ProgressLog log = Progress.log(); - if (log.isCancelled()) - { - throw new OperationCanceledException(); - } - - log.addLine(message); - } - - public void log(IStatus status) - { - log(status.getMessage()); - } - - public void close() - { - } - }); - - app.run(args); - } - - private String makeList(EList<? extends EObject> objects, EAttribute attribute) - { - StringBuilder builder = new StringBuilder(); - for (EObject object : objects) - { - if (builder.length() > 0) - { - builder.append(','); - } - - Object value = object.eGet(attribute); - builder.append(value); - } - - return builder.toString(); - } - - public static Director from(String bundlePool) - { - return new Director(bundlePool); - } - - public static void install(String bundlePool, DirectorCall directorCall, String destination, boolean resetProfile) - throws Exception - { - Director director = new Director(directorCall, bundlePool); - if (resetProfile) - { - director.resetProfile(); - } - - director.install(destination); - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/SetupDialog.java b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/SetupDialog.java index b06a2f66e1..7a5d8230e1 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/SetupDialog.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/SetupDialog.java @@ -10,37 +10,34 @@ */ package org.eclipse.emf.cdo.releng.setup.product; +import org.eclipse.emf.cdo.releng.internal.setup.SetupTaskPerformer; +import org.eclipse.emf.cdo.releng.internal.setup.ui.ProgressLogDialog; +import org.eclipse.emf.cdo.releng.internal.setup.ui.ResourceManager; import org.eclipse.emf.cdo.releng.setup.Branch; import org.eclipse.emf.cdo.releng.setup.Configuration; -import org.eclipse.emf.cdo.releng.setup.DirectorCall; import org.eclipse.emf.cdo.releng.setup.EclipseVersion; -import org.eclipse.emf.cdo.releng.setup.LinkLocation; -import org.eclipse.emf.cdo.releng.setup.P2Repository; import org.eclipse.emf.cdo.releng.setup.Preferences; import org.eclipse.emf.cdo.releng.setup.Project; import org.eclipse.emf.cdo.releng.setup.Setup; import org.eclipse.emf.cdo.releng.setup.SetupFactory; import org.eclipse.emf.cdo.releng.setup.SetupPackage; -import org.eclipse.emf.cdo.releng.setup.ToolInstallation; -import org.eclipse.emf.cdo.releng.setup.helper.OS; -import org.eclipse.emf.cdo.releng.setup.helper.Progress; -import org.eclipse.emf.cdo.releng.setup.helper.ProgressLog; -import org.eclipse.emf.cdo.releng.setup.helper.ProgressLogRunnable; import org.eclipse.emf.cdo.releng.setup.provider.BranchItemProvider; import org.eclipse.emf.cdo.releng.setup.provider.ConfigurationItemProvider; import org.eclipse.emf.cdo.releng.setup.provider.ProjectItemProvider; import org.eclipse.emf.cdo.releng.setup.provider.SetupItemProviderAdapterFactory; -import org.eclipse.emf.cdo.releng.setup.ui.ProgressLogDialog; +import org.eclipse.emf.cdo.releng.setup.util.OS; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogRunnable; import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.xmi.XMIResource; import org.eclipse.emf.ecore.xmi.XMLResource; import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; @@ -85,17 +82,13 @@ import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeColumn; import org.eclipse.swt.widgets.TreeItem; -import org.eclipse.wb.swt.ResourceManager; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.Map; /** * @author Eike Stepper @@ -103,17 +96,10 @@ import java.util.Set; public class SetupDialog extends TitleAreaDialog { private static final String SETUP_URI = System.getProperty("setup.uri", - "http://git.eclipse.org/c/cdo/cdo.git/plain/plugins/org.eclipse.emf.cdo.releng.setup/model/Configuration.xmi"); + "http://git.eclipse.org/c/cdo/cdo.git/plain/plugins/org.eclipse.emf.cdo.releng.setup/model/Configuration.setup") + .replace('\\', '/'); - private static final String EGIT_URI = System.getProperty("egit.uri", "http://download.eclipse.org/releases/kepler"); - - private static final String BUCKY_URI = System.getProperty("bucky.uri", - "http://download.eclipse.org/tools/buckminster/updates-4.3"); - - private static final String RELENG_URI = System.getProperty("releng.uri", - "http://download.eclipse.org/modeling/emf/cdo/updates/integration"); - - private HashMap<Branch, Setup> setups; + private Map<Branch, Setup> setups; private AdapterFactory adapterFactory; @@ -150,7 +136,7 @@ public class SetupDialog extends TitleAreaDialog @Override public boolean close() { - savePreferences(); + saveEObject(preferences); return super.close(); } @@ -163,7 +149,7 @@ public class SetupDialog extends TitleAreaDialog { getShell().setText(ProgressLogDialog.TITLE); setTitle(ProgressLogDialog.TITLE); - setTitleImage(ResourceManager.getPluginImage("org.eclipse.emf.cdo.releng.setup.ui", "icons/install_wiz.gif")); + setTitleImage(ResourceManager.getPluginImage("org.eclipse.emf.cdo.releng.setup", "icons/install_wiz.gif")); URI configurationURI = URI.createURI(SETUP_URI); Resource resource = resourceSet.getResource(configurationURI, true); @@ -292,16 +278,6 @@ public class SetupDialog extends TitleAreaDialog { Branch branch = (Branch)element; Setup setup = setups.get(branch); - if (setup == null) - { - setup = SetupFactory.eINSTANCE.createSetup(); - setup.setBranch(branch); - setup.setEclipseVersion(getDefaultEclipseVersion()); - - Resource resource = resourceSet.createResource(getSetupURI(branch)); - resource.getContents().add(setup); - } - EclipseVersion eclipseVersion = setup.getEclipseVersion(); return labelProvider.getText(eclipseVersion); } @@ -347,8 +323,21 @@ public class SetupDialog extends TitleAreaDialog } }); - Label empty = new Label(grpPreferences, SWT.NONE); - empty.setBounds(0, 0, 55, 15); + // Label empty = new Label(grpPreferences, SWT.NONE); + // empty.setBounds(0, 0, 55, 15); + Button editButton = new Button(grpPreferences, SWT.NONE); + editButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); + editButton.setBounds(0, 0, 75, 25); + editButton.setText("Edit..."); + editButton.addSelectionListener(new SelectionAdapter() + { + @Override + public void widgetSelected(SelectionEvent e) + { + close(); + setReturnCode(-2); + } + }); Label installFolderLabel = new Label(grpPreferences, SWT.NONE); installFolderLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); @@ -363,6 +352,12 @@ public class SetupDialog extends TitleAreaDialog public void modifyText(ModifyEvent e) { preferences.setInstallFolder(installFolderText.getText()); + for (Setup setup : setups.values()) + { + URI uri = getSetupURI(setup.getBranch()); + setup.eResource().setURI(uri); + } + validate(); } }); @@ -469,6 +464,8 @@ public class SetupDialog extends TitleAreaDialog Resource resource = resourceSet.getResource(Preferences.PREFERENCES_URI, true); preferences = (Preferences)resource.getContents().get(0); + setups = initSetups(); + userNameText.setText(safe(preferences.getUserName())); installFolderText.setText(safe(preferences.getInstallFolder())); gitPrefixText.setText(safe(preferences.getGitPrefix())); @@ -479,6 +476,8 @@ public class SetupDialog extends TitleAreaDialog preferences = SetupFactory.eINSTANCE.createPreferences(); resource.getContents().add(preferences); + setups = initSetups(); + File rootFolder = new File(System.getProperty("user.home", ".")); userNameText.setText(safe(System.getProperty("user.name", "<username>")).toLowerCase()); @@ -486,14 +485,13 @@ public class SetupDialog extends TitleAreaDialog gitPrefixText.setText(safe(getAbsolutePath(new File(OS.INSTANCE.getGitPrefix())))); } - initWorkspaces(); viewer.setInput(configuration); viewer.expandAll(); } - private void initWorkspaces() + private Map<Branch, Setup> initSetups() { - setups = new HashMap<Branch, Setup>(); + Map<Branch, Setup> setups = new HashMap<Branch, Setup>(); for (Project project : configuration.getProjects()) { for (Branch branch : project.getBranches()) @@ -508,8 +506,9 @@ public class SetupDialog extends TitleAreaDialog else { setup = SetupFactory.eINSTANCE.createSetup(); - setup.setBranch(branch); setup.setEclipseVersion(getDefaultEclipseVersion()); + setup.setBranch(branch); + setup.setPreferences(preferences); Resource resource = resourceSet.createResource(uri); resource.getContents().add(setup); @@ -518,6 +517,8 @@ public class SetupDialog extends TitleAreaDialog setups.put(branch, setup); } } + + return setups; } private EclipseVersion getDefaultEclipseVersion() @@ -625,7 +626,9 @@ public class SetupDialog extends TitleAreaDialog if (object instanceof Branch) { Branch branch = (Branch)object; - return branch.isInstalled(installFolderText.getText()); + Setup setup = setups.get(branch); + URI uri = setup.eResource().getURI(); + return resourceSet.getURIConverter().exists(uri, null); } return false; @@ -672,218 +675,29 @@ public class SetupDialog extends TitleAreaDialog private void install(Setup setup, String installFolder, String gitPrefix) throws Exception { - Branch branch = setup.getBranch(); - Progress.log().addLine("Setting up " + branch.getProject().getName() + " " + branch.getName()); - - URI branchURI = branch.getURI(installFolder).trimSegments(1); - String destination = branchURI.appendSegment("eclipse").toFileString(); + saveEObject(setup); - Set<String> updateLocations = new HashSet<String>(); - updateLocations.add(EGIT_URI); - updateLocations.add(BUCKY_URI); - updateLocations.add(RELENG_URI); + SetupTaskPerformer performer = new SetupTaskPerformer(new File(installFolder, setup.getBranch().getProject() + .getName() + + "/" + setup.getBranch().getName())); + performer.getWorkspaceDir().mkdirs(); + performer.perform(); - String bundlePool = new File(installFolder, ".p2pool-ide").getAbsolutePath(); - - install(bundlePool, destination, updateLocations, setup.getEclipseVersion().getDirectorCall(), true); - - Director.from(bundlePool) // - .feature("org.eclipse.egit") // - .repository(EGIT_URI) // - // - .feature("org.eclipse.buckminster.core.feature") // - .feature("org.eclipse.buckminster.git.feature") // - .feature("org.eclipse.buckminster.pde.feature") // - .repository(BUCKY_URI) // - // - .feature("org.eclipse.emf.cdo.releng.setup.ide") // - .repository(RELENG_URI) // - // - .install(destination); - - install(bundlePool, destination, updateLocations, branch.getProject()); - install(bundlePool, destination, updateLocations, branch); - install(bundlePool, destination, updateLocations, preferences); - - install(preferences.getLinkLocations(), destination); - - File branchFolder = new File(branchURI.toFileString()); - mangleEclipseIni(destination, branchFolder, gitPrefix); - - setup.setPreferences(EcoreUtil.copy(preferences)); - for (String updateLocation : updateLocations) - { - P2Repository p2Repository = SetupFactory.eINSTANCE.createP2Repository(); - p2Repository.setUrl(updateLocation); - - setup.getUpdateLocations().add(p2Repository); - } - - Resource setupResource = setup.eResource(); - setupResource.setURI(getSetupURI(branch, installFolder)); - setupResource.save(null); - - new File(branchFolder, "ws").mkdirs(); - launchIDE(setup, branchFolder); - } - - private void install(String bundlePool, String destination, Set<String> updateLocations, ToolInstallation installation) - throws Exception - { - for (DirectorCall directorCall : installation.getDirectorCalls()) - { - install(bundlePool, destination, updateLocations, directorCall, false); - } - } - - private void install(String bundlePool, String destination, Set<String> updateLocations, DirectorCall directorCall, - boolean resetProfile) throws Exception - { - Director.install(bundlePool, directorCall, destination, resetProfile); - for (P2Repository p2Repository : directorCall.getP2Repositories()) - { - updateLocations.add(p2Repository.getUrl()); - } - } - - private void install(EList<LinkLocation> linkLocations, String destination) throws Exception - { - if (!linkLocations.isEmpty()) - { - File links = new File(destination, "links"); - links.mkdirs(); - - for (LinkLocation linkLocation : linkLocations) - { - File path = new File(linkLocation.getPath()).getCanonicalFile(); - - String name = linkLocation.getName(); - if (name == null || name.length() == 0) - { - name = path.getName(); - } - - File link = new File(links, name + ".link"); - - List<String> lines = Collections.singletonList("path=" + path.toString().replace("\\", "\\\\")); - OS.INSTANCE.writeText(link, lines); - } - } - } - - private void mangleEclipseIni(String destination, File branchFolder, String gitPrefix) - { - File eclipseIni = new File(destination, "eclipse.ini"); - - List<String> oldLines = OS.INSTANCE.readText(eclipseIni); - List<String> newLines = new ArrayList<String>(oldLines); - mangleEclipseIni(newLines, branchFolder, gitPrefix); - - if (!newLines.equals(oldLines)) - { - Progress.log().addLine("Adjusting eclipse.ini"); - OS.INSTANCE.writeText(eclipseIni, newLines); - } - } - - private void mangleEclipseIni(List<String> lines, File branchFolder, String gitPrefix) - { - String maxHeap = Platform.getOSArch().endsWith("_64") ? "-Xmx4g" : "-Xmx1g"; - - int xmx = findLine(lines, "-Xmx"); - if (xmx == -1) - { - lines.add(maxHeap); - } - else - { - lines.set(xmx, maxHeap); - } - - int maxperm = findLine(lines, "--launcher.XXMaxPermSize"); - if (maxperm == -1) - { - maxperm = findLine(lines, "-vmargs"); - lines.add(maxperm, "--launcher.XXMaxPermSize"); - lines.add(maxperm + 1, "512m"); - } - else - { - lines.set(maxperm + 1, "512m"); - } - - String ws = new File(branchFolder, "ws").getAbsolutePath(); - - int data = findLine(lines, "-data"); - if (data == -1) - { - data = findLine(lines, "-vmargs"); - lines.add(data, "-data"); - lines.add(data + 1, ws); - } - else - { - lines.set(data + 1, ws); - } - - if (gitPrefix.length() != 0) - { - gitPrefix = "-Djgit.gitprefix=" + gitPrefix; - if (!lines.contains(gitPrefix)) - { - lines.add(gitPrefix); - } - } - - String setupIDE = "-Dorg.eclipse.emf.cdo.releng.setup.ide=true"; - if (!lines.contains(setupIDE)) - { - lines.add(setupIDE); - } - - File projectFolder = branchFolder.getParentFile(); - String poolPath = new File(projectFolder.getParentFile(), ".p2pool-tp").getAbsolutePath(); - String bundlePool = "-Dorg.eclipse.buckminster.core.bundle.pool=" + poolPath; - if (!lines.contains(bundlePool)) - { - lines.add(bundlePool); - } - } - - private int findLine(List<String> lines, String search) - { - int index = 0; - for (String line : lines) - { - if (line.contains(search)) - { - return index; - } - - ++index; - } - - return -1; - } - - private void launchIDE(Setup setup, File branchFolder) throws IOException - { - Progress.log().addLine("Launching IDE"); - - String eclipseExecutable = OS.INSTANCE.getEclipseExecutable(); - String eclipsePath = new File(branchFolder, "eclipse/" + eclipseExecutable).getAbsolutePath(); - File ws = new File(branchFolder, "ws"); + performer.log("Launching IDE"); + String eclipseExecutable = performer.getOS().getEclipseExecutable(); + String eclipsePath = new File(performer.getBranchDir(), "eclipse/" + eclipseExecutable).getAbsolutePath(); + File ws = new File(performer.getBranchDir(), "ws"); ProcessBuilder builder = new ProcessBuilder(eclipsePath); builder.directory(ws); builder.start(); } - private void savePreferences() + private void saveEObject(EObject eObject) { try { - XMLResource xmlResource = (XMLResource)preferences.eResource(); + XMLResource xmlResource = (XMLResource)eObject.eResource(); xmlResource.getEObjectToExtensionMap().clear(); xmlResource.save(null); } @@ -913,6 +727,7 @@ public class SetupDialog extends TitleAreaDialog childrenFeatures = new ArrayList<EStructuralFeature>(); childrenFeatures.add(SetupPackage.Literals.CONFIGURATION__PROJECTS); } + return childrenFeatures; } }; @@ -928,7 +743,6 @@ public class SetupDialog extends TitleAreaDialog { projectItemProvider = new ProjectItemProvider(this) { - @Override public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) { @@ -937,6 +751,7 @@ public class SetupDialog extends TitleAreaDialog childrenFeatures = new ArrayList<EStructuralFeature>(); childrenFeatures.add(SetupPackage.Literals.PROJECT__BRANCHES); } + return childrenFeatures; } }; @@ -959,6 +774,7 @@ public class SetupDialog extends TitleAreaDialog { childrenFeatures = new ArrayList<EStructuralFeature>(); } + return childrenFeatures; } }; @@ -999,7 +815,7 @@ public class SetupDialog extends TitleAreaDialog { if (isInstalled(object)) { - return getShell().getDisplay().getSystemColor(SWT.COLOR_GRAY); + return getShell().getDisplay().getSystemColor(SWT.COLOR_BLUE); } return super.getBackground(object); diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/wb/swt/ResourceManager.java b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/wb/swt/ResourceManager.java index 42b9dc18f4..99ccdcd711 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/wb/swt/ResourceManager.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/wb/swt/ResourceManager.java @@ -10,6 +10,8 @@ *******************************************************************************/ package org.eclipse.wb.swt; +import org.eclipse.emf.cdo.releng.internal.setup.ui.SWTResourceManager; + import org.eclipse.core.runtime.Platform; import org.eclipse.jface.resource.CompositeImageDescriptor; import org.eclipse.jface.resource.ImageDescriptor; diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/wb/swt/SWTResourceManager.java b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/wb/swt/SWTResourceManager.java index 3e217255d8..3bcc1029a6 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/wb/swt/SWTResourceManager.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/wb/swt/SWTResourceManager.java @@ -40,408 +40,499 @@ import java.util.Map; * @author scheglov_ke * @author Dan Rubel */ -public class SWTResourceManager { - //////////////////////////////////////////////////////////////////////////// - // - // Color - // - //////////////////////////////////////////////////////////////////////////// - private static Map<RGB, Color> m_colorMap = new HashMap<RGB, Color>(); - /** - * Returns the system {@link Color} matching the specific ID. - * - * @param systemColorID - * the ID value for the color - * @return the system {@link Color} matching the specific ID - */ - public static Color getColor(int systemColorID) { - Display display = Display.getCurrent(); - return display.getSystemColor(systemColorID); - } - /** - * Returns a {@link Color} given its red, green and blue component values. - * - * @param r - * the red component of the color - * @param g - * the green component of the color - * @param b - * the blue component of the color - * @return the {@link Color} matching the given red, green and blue component values - */ - public static Color getColor(int r, int g, int b) { - return getColor(new RGB(r, g, b)); - } - /** - * Returns a {@link Color} given its RGB value. - * - * @param rgb - * the {@link RGB} value of the color - * @return the {@link Color} matching the RGB value - */ - public static Color getColor(RGB rgb) { - Color color = m_colorMap.get(rgb); - if (color == null) { - Display display = Display.getCurrent(); - color = new Color(display, rgb); - m_colorMap.put(rgb, color); - } - return color; - } - /** - * Dispose of all the cached {@link Color}'s. - */ - public static void disposeColors() { - for (Color color : m_colorMap.values()) { - color.dispose(); - } - m_colorMap.clear(); - } - //////////////////////////////////////////////////////////////////////////// - // - // Image - // - //////////////////////////////////////////////////////////////////////////// - /** - * Maps image paths to images. - */ - private static Map<String, Image> m_imageMap = new HashMap<String, Image>(); - /** - * Returns an {@link Image} encoded by the specified {@link InputStream}. - * - * @param stream - * the {@link InputStream} encoding the image data - * @return the {@link Image} encoded by the specified input stream - */ - protected static Image getImage(InputStream stream) throws IOException { - try { - Display display = Display.getCurrent(); - ImageData data = new ImageData(stream); - if (data.transparentPixel > 0) { - return new Image(display, data, data.getTransparencyMask()); - } - return new Image(display, data); - } finally { - stream.close(); - } - } - /** - * Returns an {@link Image} stored in the file at the specified path. - * - * @param path - * the path to the image file - * @return the {@link Image} stored in the file at the specified path - */ - public static Image getImage(String path) { - Image image = m_imageMap.get(path); - if (image == null) { - try { - image = getImage(new FileInputStream(path)); - m_imageMap.put(path, image); - } catch (Exception e) { - image = getMissingImage(); - m_imageMap.put(path, image); - } - } - return image; - } - /** - * Returns an {@link Image} stored in the file at the specified path relative to the specified class. - * - * @param clazz - * the {@link Class} relative to which to find the image - * @param path - * the path to the image file, if starts with <code>'/'</code> - * @return the {@link Image} stored in the file at the specified path - */ - public static Image getImage(Class<?> clazz, String path) { - String key = clazz.getName() + '|' + path; - Image image = m_imageMap.get(key); - if (image == null) { - try { - image = getImage(clazz.getResourceAsStream(path)); - m_imageMap.put(key, image); - } catch (Exception e) { - image = getMissingImage(); - m_imageMap.put(key, image); - } - } - return image; - } - private static final int MISSING_IMAGE_SIZE = 10; - /** - * @return the small {@link Image} that can be used as placeholder for missing image. - */ - private static Image getMissingImage() { - Image image = new Image(Display.getCurrent(), MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE); - // - GC gc = new GC(image); - gc.setBackground(getColor(SWT.COLOR_RED)); - gc.fillRectangle(0, 0, MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE); - gc.dispose(); - // - return image; - } - /** - * Style constant for placing decorator image in top left corner of base image. - */ - public static final int TOP_LEFT = 1; - /** - * Style constant for placing decorator image in top right corner of base image. - */ - public static final int TOP_RIGHT = 2; - /** - * Style constant for placing decorator image in bottom left corner of base image. - */ - public static final int BOTTOM_LEFT = 3; - /** - * Style constant for placing decorator image in bottom right corner of base image. - */ - public static final int BOTTOM_RIGHT = 4; - /** - * Internal value. - */ - protected static final int LAST_CORNER_KEY = 5; - /** - * Maps images to decorated images. - */ - @SuppressWarnings("unchecked") - private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY]; - /** - * Returns an {@link Image} composed of a base image decorated by another image. - * - * @param baseImage - * the base {@link Image} that should be decorated - * @param decorator - * the {@link Image} to decorate the base image - * @return {@link Image} The resulting decorated image - */ - public static Image decorateImage(Image baseImage, Image decorator) { - return decorateImage(baseImage, decorator, BOTTOM_RIGHT); - } - /** - * Returns an {@link Image} composed of a base image decorated by another image. - * - * @param baseImage - * the base {@link Image} that should be decorated - * @param decorator - * the {@link Image} to decorate the base image - * @param corner - * the corner to place decorator image - * @return the resulting decorated {@link Image} - */ - public static Image decorateImage(final Image baseImage, final Image decorator, final int corner) { - if (corner <= 0 || corner >= LAST_CORNER_KEY) { - throw new IllegalArgumentException("Wrong decorate corner"); - } - Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner]; - if (cornerDecoratedImageMap == null) { - cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>(); - m_decoratedImageMap[corner] = cornerDecoratedImageMap; - } - Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage); - if (decoratedMap == null) { - decoratedMap = new HashMap<Image, Image>(); - cornerDecoratedImageMap.put(baseImage, decoratedMap); - } - // - Image result = decoratedMap.get(decorator); - if (result == null) { - Rectangle bib = baseImage.getBounds(); - Rectangle dib = decorator.getBounds(); - // - result = new Image(Display.getCurrent(), bib.width, bib.height); - // - GC gc = new GC(result); - gc.drawImage(baseImage, 0, 0); - if (corner == TOP_LEFT) { - gc.drawImage(decorator, 0, 0); - } else if (corner == TOP_RIGHT) { - gc.drawImage(decorator, bib.width - dib.width, 0); - } else if (corner == BOTTOM_LEFT) { - gc.drawImage(decorator, 0, bib.height - dib.height); - } else if (corner == BOTTOM_RIGHT) { - gc.drawImage(decorator, bib.width - dib.width, bib.height - dib.height); - } - gc.dispose(); - // - decoratedMap.put(decorator, result); - } - return result; - } - /** - * Dispose all of the cached {@link Image}'s. - */ - public static void disposeImages() { - // dispose loaded images - { - for (Image image : m_imageMap.values()) { - image.dispose(); - } - m_imageMap.clear(); - } - // dispose decorated images - for (int i = 0; i < m_decoratedImageMap.length; i++) { - Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i]; - if (cornerDecoratedImageMap != null) { - for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values()) { - for (Image image : decoratedMap.values()) { - image.dispose(); - } - decoratedMap.clear(); - } - cornerDecoratedImageMap.clear(); - } - } - } - //////////////////////////////////////////////////////////////////////////// - // - // Font - // - //////////////////////////////////////////////////////////////////////////// - /** - * Maps font names to fonts. - */ - private static Map<String, Font> m_fontMap = new HashMap<String, Font>(); - /** - * Maps fonts to their bold versions. - */ - private static Map<Font, Font> m_fontToBoldFontMap = new HashMap<Font, Font>(); - /** - * Returns a {@link Font} based on its name, height and style. - * - * @param name - * the name of the font - * @param height - * the height of the font - * @param style - * the style of the font - * @return {@link Font} The font matching the name, height and style - */ - public static Font getFont(String name, int height, int style) { - return getFont(name, height, style, false, false); - } - /** - * Returns a {@link Font} based on its name, height and style. Windows-specific strikeout and underline - * flags are also supported. - * - * @param name - * the name of the font - * @param size - * the size of the font - * @param style - * the style of the font - * @param strikeout - * the strikeout flag (warning: Windows only) - * @param underline - * the underline flag (warning: Windows only) - * @return {@link Font} The font matching the name, height, style, strikeout and underline - */ - public static Font getFont(String name, int size, int style, boolean strikeout, boolean underline) { - String fontName = name + '|' + size + '|' + style + '|' + strikeout + '|' + underline; - Font font = m_fontMap.get(fontName); - if (font == null) { - FontData fontData = new FontData(name, size, style); - if (strikeout || underline) { - try { - Class<?> logFontClass = Class.forName("org.eclipse.swt.internal.win32.LOGFONT"); //$NON-NLS-1$ - Object logFont = FontData.class.getField("data").get(fontData); //$NON-NLS-1$ - if (logFont != null && logFontClass != null) { - if (strikeout) { - logFontClass.getField("lfStrikeOut").set(logFont, Byte.valueOf((byte) 1)); //$NON-NLS-1$ - } - if (underline) { - logFontClass.getField("lfUnderline").set(logFont, Byte.valueOf((byte) 1)); //$NON-NLS-1$ - } - } - } catch (Throwable e) { - System.err.println("Unable to set underline or strikeout" + " (probably on a non-Windows platform). " + e); //$NON-NLS-1$ //$NON-NLS-2$ - } - } - font = new Font(Display.getCurrent(), fontData); - m_fontMap.put(fontName, font); - } - return font; - } - /** - * Returns a bold version of the given {@link Font}. - * - * @param baseFont - * the {@link Font} for which a bold version is desired - * @return the bold version of the given {@link Font} - */ - public static Font getBoldFont(Font baseFont) { - Font font = m_fontToBoldFontMap.get(baseFont); - if (font == null) { - FontData fontDatas[] = baseFont.getFontData(); - FontData data = fontDatas[0]; - font = new Font(Display.getCurrent(), data.getName(), data.getHeight(), SWT.BOLD); - m_fontToBoldFontMap.put(baseFont, font); - } - return font; - } - /** - * Dispose all of the cached {@link Font}'s. - */ - public static void disposeFonts() { - // clear fonts - for (Font font : m_fontMap.values()) { - font.dispose(); - } - m_fontMap.clear(); - // clear bold fonts - for (Font font : m_fontToBoldFontMap.values()) { - font.dispose(); - } - m_fontToBoldFontMap.clear(); - } - //////////////////////////////////////////////////////////////////////////// - // - // Cursor - // - //////////////////////////////////////////////////////////////////////////// - /** - * Maps IDs to cursors. - */ - private static Map<Integer, Cursor> m_idToCursorMap = new HashMap<Integer, Cursor>(); - /** - * Returns the system cursor matching the specific ID. - * - * @param id - * int The ID value for the cursor - * @return Cursor The system cursor matching the specific ID - */ - public static Cursor getCursor(int id) { - Integer key = Integer.valueOf(id); - Cursor cursor = m_idToCursorMap.get(key); - if (cursor == null) { - cursor = new Cursor(Display.getDefault(), id); - m_idToCursorMap.put(key, cursor); - } - return cursor; - } - /** - * Dispose all of the cached cursors. - */ - public static void disposeCursors() { - for (Cursor cursor : m_idToCursorMap.values()) { - cursor.dispose(); - } - m_idToCursorMap.clear(); - } - //////////////////////////////////////////////////////////////////////////// - // - // General - // - //////////////////////////////////////////////////////////////////////////// - /** - * Dispose of cached objects and their underlying OS resources. This should only be called when the cached - * objects are no longer needed (e.g. on application shutdown). - */ - public static void dispose() { - disposeColors(); - disposeImages(); - disposeFonts(); - disposeCursors(); - } -}
\ No newline at end of file +public class SWTResourceManager +{ + // ////////////////////////////////////////////////////////////////////////// + // + // Color + // + // ////////////////////////////////////////////////////////////////////////// + private static Map<RGB, Color> m_colorMap = new HashMap<RGB, Color>(); + + /** + * Returns the system {@link Color} matching the specific ID. + * + * @param systemColorID + * the ID value for the color + * @return the system {@link Color} matching the specific ID + */ + public static Color getColor(int systemColorID) + { + Display display = Display.getCurrent(); + return display.getSystemColor(systemColorID); + } + + /** + * Returns a {@link Color} given its red, green and blue component values. + * + * @param r + * the red component of the color + * @param g + * the green component of the color + * @param b + * the blue component of the color + * @return the {@link Color} matching the given red, green and blue component values + */ + public static Color getColor(int r, int g, int b) + { + return getColor(new RGB(r, g, b)); + } + + /** + * Returns a {@link Color} given its RGB value. + * + * @param rgb + * the {@link RGB} value of the color + * @return the {@link Color} matching the RGB value + */ + public static Color getColor(RGB rgb) + { + Color color = m_colorMap.get(rgb); + if (color == null) + { + Display display = Display.getCurrent(); + color = new Color(display, rgb); + m_colorMap.put(rgb, color); + } + return color; + } + + /** + * Dispose of all the cached {@link Color}'s. + */ + public static void disposeColors() + { + for (Color color : m_colorMap.values()) + { + color.dispose(); + } + m_colorMap.clear(); + } + + // ////////////////////////////////////////////////////////////////////////// + // + // Image + // + // ////////////////////////////////////////////////////////////////////////// + /** + * Maps image paths to images. + */ + private static Map<String, Image> m_imageMap = new HashMap<String, Image>(); + + /** + * Returns an {@link Image} encoded by the specified {@link InputStream}. + * + * @param stream + * the {@link InputStream} encoding the image data + * @return the {@link Image} encoded by the specified input stream + */ + protected static Image getImage(InputStream stream) throws IOException + { + try + { + Display display = Display.getCurrent(); + ImageData data = new ImageData(stream); + if (data.transparentPixel > 0) + { + return new Image(display, data, data.getTransparencyMask()); + } + return new Image(display, data); + } + finally + { + stream.close(); + } + } + + /** + * Returns an {@link Image} stored in the file at the specified path. + * + * @param path + * the path to the image file + * @return the {@link Image} stored in the file at the specified path + */ + public static Image getImage(String path) + { + Image image = m_imageMap.get(path); + if (image == null) + { + try + { + image = getImage(new FileInputStream(path)); + m_imageMap.put(path, image); + } + catch (Exception e) + { + image = getMissingImage(); + m_imageMap.put(path, image); + } + } + return image; + } + + /** + * Returns an {@link Image} stored in the file at the specified path relative to the specified class. + * + * @param clazz + * the {@link Class} relative to which to find the image + * @param path + * the path to the image file, if starts with <code>'/'</code> + * @return the {@link Image} stored in the file at the specified path + */ + public static Image getImage(Class<?> clazz, String path) + { + String key = clazz.getName() + '|' + path; + Image image = m_imageMap.get(key); + if (image == null) + { + try + { + image = getImage(clazz.getResourceAsStream(path)); + m_imageMap.put(key, image); + } + catch (Exception e) + { + image = getMissingImage(); + m_imageMap.put(key, image); + } + } + return image; + } + + private static final int MISSING_IMAGE_SIZE = 10; + + /** + * @return the small {@link Image} that can be used as placeholder for missing image. + */ + private static Image getMissingImage() + { + Image image = new Image(Display.getCurrent(), MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE); + // + GC gc = new GC(image); + gc.setBackground(getColor(SWT.COLOR_RED)); + gc.fillRectangle(0, 0, MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE); + gc.dispose(); + // + return image; + } + + /** + * Style constant for placing decorator image in top left corner of base image. + */ + public static final int TOP_LEFT = 1; + + /** + * Style constant for placing decorator image in top right corner of base image. + */ + public static final int TOP_RIGHT = 2; + + /** + * Style constant for placing decorator image in bottom left corner of base image. + */ + public static final int BOTTOM_LEFT = 3; + + /** + * Style constant for placing decorator image in bottom right corner of base image. + */ + public static final int BOTTOM_RIGHT = 4; + + /** + * Internal value. + */ + protected static final int LAST_CORNER_KEY = 5; + + /** + * Maps images to decorated images. + */ + @SuppressWarnings("unchecked") + private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY]; + + /** + * Returns an {@link Image} composed of a base image decorated by another image. + * + * @param baseImage + * the base {@link Image} that should be decorated + * @param decorator + * the {@link Image} to decorate the base image + * @return {@link Image} The resulting decorated image + */ + public static Image decorateImage(Image baseImage, Image decorator) + { + return decorateImage(baseImage, decorator, BOTTOM_RIGHT); + } + + /** + * Returns an {@link Image} composed of a base image decorated by another image. + * + * @param baseImage + * the base {@link Image} that should be decorated + * @param decorator + * the {@link Image} to decorate the base image + * @param corner + * the corner to place decorator image + * @return the resulting decorated {@link Image} + */ + public static Image decorateImage(final Image baseImage, final Image decorator, final int corner) + { + if (corner <= 0 || corner >= LAST_CORNER_KEY) + { + throw new IllegalArgumentException("Wrong decorate corner"); + } + Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner]; + if (cornerDecoratedImageMap == null) + { + cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>(); + m_decoratedImageMap[corner] = cornerDecoratedImageMap; + } + Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage); + if (decoratedMap == null) + { + decoratedMap = new HashMap<Image, Image>(); + cornerDecoratedImageMap.put(baseImage, decoratedMap); + } + // + Image result = decoratedMap.get(decorator); + if (result == null) + { + Rectangle bib = baseImage.getBounds(); + Rectangle dib = decorator.getBounds(); + // + result = new Image(Display.getCurrent(), bib.width, bib.height); + // + GC gc = new GC(result); + gc.drawImage(baseImage, 0, 0); + if (corner == TOP_LEFT) + { + gc.drawImage(decorator, 0, 0); + } + else if (corner == TOP_RIGHT) + { + gc.drawImage(decorator, bib.width - dib.width, 0); + } + else if (corner == BOTTOM_LEFT) + { + gc.drawImage(decorator, 0, bib.height - dib.height); + } + else if (corner == BOTTOM_RIGHT) + { + gc.drawImage(decorator, bib.width - dib.width, bib.height - dib.height); + } + gc.dispose(); + // + decoratedMap.put(decorator, result); + } + return result; + } + + /** + * Dispose all of the cached {@link Image}'s. + */ + public static void disposeImages() + { + // dispose loaded images + { + for (Image image : m_imageMap.values()) + { + image.dispose(); + } + m_imageMap.clear(); + } + // dispose decorated images + for (int i = 0; i < m_decoratedImageMap.length; i++) + { + Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i]; + if (cornerDecoratedImageMap != null) + { + for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values()) + { + for (Image image : decoratedMap.values()) + { + image.dispose(); + } + decoratedMap.clear(); + } + cornerDecoratedImageMap.clear(); + } + } + } + + // ////////////////////////////////////////////////////////////////////////// + // + // Font + // + // ////////////////////////////////////////////////////////////////////////// + /** + * Maps font names to fonts. + */ + private static Map<String, Font> m_fontMap = new HashMap<String, Font>(); + + /** + * Maps fonts to their bold versions. + */ + private static Map<Font, Font> m_fontToBoldFontMap = new HashMap<Font, Font>(); + + /** + * Returns a {@link Font} based on its name, height and style. + * + * @param name + * the name of the font + * @param height + * the height of the font + * @param style + * the style of the font + * @return {@link Font} The font matching the name, height and style + */ + public static Font getFont(String name, int height, int style) + { + return getFont(name, height, style, false, false); + } + + /** + * Returns a {@link Font} based on its name, height and style. Windows-specific strikeout and underline + * flags are also supported. + * + * @param name + * the name of the font + * @param size + * the size of the font + * @param style + * the style of the font + * @param strikeout + * the strikeout flag (warning: Windows only) + * @param underline + * the underline flag (warning: Windows only) + * @return {@link Font} The font matching the name, height, style, strikeout and underline + */ + public static Font getFont(String name, int size, int style, boolean strikeout, boolean underline) + { + String fontName = name + '|' + size + '|' + style + '|' + strikeout + '|' + underline; + Font font = m_fontMap.get(fontName); + if (font == null) + { + FontData fontData = new FontData(name, size, style); + if (strikeout || underline) + { + try + { + Class<?> logFontClass = Class.forName("org.eclipse.swt.internal.win32.LOGFONT"); //$NON-NLS-1$ + Object logFont = FontData.class.getField("data").get(fontData); //$NON-NLS-1$ + if (logFont != null && logFontClass != null) + { + if (strikeout) + { + logFontClass.getField("lfStrikeOut").set(logFont, Byte.valueOf((byte)1)); //$NON-NLS-1$ + } + if (underline) + { + logFontClass.getField("lfUnderline").set(logFont, Byte.valueOf((byte)1)); //$NON-NLS-1$ + } + } + } + catch (Throwable e) + { + System.err.println("Unable to set underline or strikeout" + " (probably on a non-Windows platform). " + e); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + font = new Font(Display.getCurrent(), fontData); + m_fontMap.put(fontName, font); + } + return font; + } + + /** + * Returns a bold version of the given {@link Font}. + * + * @param baseFont + * the {@link Font} for which a bold version is desired + * @return the bold version of the given {@link Font} + */ + public static Font getBoldFont(Font baseFont) + { + Font font = m_fontToBoldFontMap.get(baseFont); + if (font == null) + { + FontData fontDatas[] = baseFont.getFontData(); + FontData data = fontDatas[0]; + font = new Font(Display.getCurrent(), data.getName(), data.getHeight(), SWT.BOLD); + m_fontToBoldFontMap.put(baseFont, font); + } + return font; + } + + /** + * Dispose all of the cached {@link Font}'s. + */ + public static void disposeFonts() + { + // clear fonts + for (Font font : m_fontMap.values()) + { + font.dispose(); + } + m_fontMap.clear(); + // clear bold fonts + for (Font font : m_fontToBoldFontMap.values()) + { + font.dispose(); + } + m_fontToBoldFontMap.clear(); + } + + // ////////////////////////////////////////////////////////////////////////// + // + // Cursor + // + // ////////////////////////////////////////////////////////////////////////// + /** + * Maps IDs to cursors. + */ + private static Map<Integer, Cursor> m_idToCursorMap = new HashMap<Integer, Cursor>(); + + /** + * Returns the system cursor matching the specific ID. + * + * @param id + * int The ID value for the cursor + * @return Cursor The system cursor matching the specific ID + */ + public static Cursor getCursor(int id) + { + Integer key = Integer.valueOf(id); + Cursor cursor = m_idToCursorMap.get(key); + if (cursor == null) + { + cursor = new Cursor(Display.getDefault(), id); + m_idToCursorMap.put(key, cursor); + } + return cursor; + } + + /** + * Dispose all of the cached cursors. + */ + public static void disposeCursors() + { + for (Cursor cursor : m_idToCursorMap.values()) + { + cursor.dispose(); + } + m_idToCursorMap.clear(); + } + + // ////////////////////////////////////////////////////////////////////////// + // + // General + // + // ////////////////////////////////////////////////////////////////////////// + /** + * Dispose of cached objects and their underlying OS resources. This should only be called when the cached + * objects are no longer needed (e.g. on application shutdown). + */ + public static void dispose() + { + disposeColors(); + disposeImages(); + disposeFonts(); + disposeCursors(); + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 45834dcf98..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -encoding/.project=UTF-8 -encoding//model/Configuration.xmi=ASCII -encoding//model/setup.ecore=UTF-8 -encoding//model/setup.ecorediag=UTF-8 diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.setup.ui/META-INF/MANIFEST.MF deleted file mode 100644 index 41bacd1adf..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/META-INF/MANIFEST.MF +++ /dev/null @@ -1,16 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-SymbolicName: org.eclipse.emf.cdo.releng.setup.ui;singleton:=true -Bundle-Version: 1.0.0.qualifier -Bundle-ClassPath: . -Bundle-Activator: org.eclipse.emf.cdo.releng.setup.ui.Activator -Bundle-Vendor: %providerName -Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Export-Package: org.eclipse.emf.cdo.releng.setup.ui;version="1.0.0";x-friends:="org.eclipse.emf.cdo.releng.setup.ide,org.eclipse.emf.cdo.releng.setup.product" -Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", - org.eclipse.ui;bundle-version="[3.0.0,4.0.0)", - org.eclipse.emf.cdo.releng.setup.edit;bundle-version="[1.0.0,2.0.0)";visibility:=reexport, - org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)" -Bundle-ActivationPolicy: lazy diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/wb/swt/ResourceManager.java b/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/wb/swt/ResourceManager.java deleted file mode 100644 index c1bfc8b578..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/wb/swt/ResourceManager.java +++ /dev/null @@ -1,415 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Google, Inc. - * 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: - * Google, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.wb.swt; - -import java.io.File; -import java.io.InputStream; -import java.lang.reflect.Constructor; -import java.lang.reflect.Method; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import org.eclipse.core.runtime.Platform; -import org.eclipse.jface.resource.CompositeImageDescriptor; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.graphics.Rectangle; -import org.osgi.framework.Bundle; - -/** - * Utility class for managing OS resources associated with SWT/JFace controls such as colors, fonts, images, - * etc. - * - * !!! IMPORTANT !!! Application code must explicitly invoke the <code>dispose()</code> method to release the - * operating system resources managed by cached objects when those objects and OS resources are no longer - * needed (e.g. on application shutdown) - * - * This class may be freely distributed as part of any application or plugin. - * <p> - * - * @author scheglov_ke - * @author Dan Rubel - */ -public class ResourceManager extends SWTResourceManager { - //////////////////////////////////////////////////////////////////////////// - // - // Image - // - //////////////////////////////////////////////////////////////////////////// - private static Map<ImageDescriptor, Image> m_descriptorImageMap = new HashMap<ImageDescriptor, Image>(); - /** - * Returns an {@link ImageDescriptor} stored in the file at the specified path relative to the specified - * class. - * - * @param clazz - * the {@link Class} relative to which to find the image descriptor. - * @param path - * the path to the image file. - * @return the {@link ImageDescriptor} stored in the file at the specified path. - */ - public static ImageDescriptor getImageDescriptor(Class<?> clazz, String path) { - return ImageDescriptor.createFromFile(clazz, path); - } - /** - * Returns an {@link ImageDescriptor} stored in the file at the specified path. - * - * @param path - * the path to the image file. - * @return the {@link ImageDescriptor} stored in the file at the specified path. - */ - public static ImageDescriptor getImageDescriptor(String path) { - try { - return ImageDescriptor.createFromURL(new File(path).toURI().toURL()); - } catch (MalformedURLException e) { - return null; - } - } - /** - * Returns an {@link Image} based on the specified {@link ImageDescriptor}. - * - * @param descriptor - * the {@link ImageDescriptor} for the {@link Image}. - * @return the {@link Image} based on the specified {@link ImageDescriptor}. - */ - public static Image getImage(ImageDescriptor descriptor) { - if (descriptor == null) { - return null; - } - Image image = m_descriptorImageMap.get(descriptor); - if (image == null) { - image = descriptor.createImage(); - m_descriptorImageMap.put(descriptor, image); - } - return image; - } - /** - * Maps images to decorated images. - */ - @SuppressWarnings("unchecked") - private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY]; - /** - * Returns an {@link Image} composed of a base image decorated by another image. - * - * @param baseImage - * the base {@link Image} that should be decorated. - * @param decorator - * the {@link Image} to decorate the base image. - * @return {@link Image} The resulting decorated image. - */ - public static Image decorateImage(Image baseImage, Image decorator) { - return decorateImage(baseImage, decorator, BOTTOM_RIGHT); - } - /** - * Returns an {@link Image} composed of a base image decorated by another image. - * - * @param baseImage - * the base {@link Image} that should be decorated. - * @param decorator - * the {@link Image} to decorate the base image. - * @param corner - * the corner to place decorator image. - * @return the resulting decorated {@link Image}. - */ - public static Image decorateImage(final Image baseImage, final Image decorator, final int corner) { - if (corner <= 0 || corner >= LAST_CORNER_KEY) { - throw new IllegalArgumentException("Wrong decorate corner"); - } - Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner]; - if (cornerDecoratedImageMap == null) { - cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>(); - m_decoratedImageMap[corner] = cornerDecoratedImageMap; - } - Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage); - if (decoratedMap == null) { - decoratedMap = new HashMap<Image, Image>(); - cornerDecoratedImageMap.put(baseImage, decoratedMap); - } - // - Image result = decoratedMap.get(decorator); - if (result == null) { - final Rectangle bib = baseImage.getBounds(); - final Rectangle dib = decorator.getBounds(); - final Point baseImageSize = new Point(bib.width, bib.height); - CompositeImageDescriptor compositImageDesc = new CompositeImageDescriptor() { - @Override - protected void drawCompositeImage(int width, int height) { - drawImage(baseImage.getImageData(), 0, 0); - if (corner == TOP_LEFT) { - drawImage(decorator.getImageData(), 0, 0); - } else if (corner == TOP_RIGHT) { - drawImage(decorator.getImageData(), bib.width - dib.width, 0); - } else if (corner == BOTTOM_LEFT) { - drawImage(decorator.getImageData(), 0, bib.height - dib.height); - } else if (corner == BOTTOM_RIGHT) { - drawImage(decorator.getImageData(), bib.width - dib.width, bib.height - dib.height); - } - } - @Override - protected Point getSize() { - return baseImageSize; - } - }; - // - result = compositImageDesc.createImage(); - decoratedMap.put(decorator, result); - } - return result; - } - /** - * Dispose all of the cached images. - */ - public static void disposeImages() { - SWTResourceManager.disposeImages(); - // dispose ImageDescriptor images - { - for (Iterator<Image> I = m_descriptorImageMap.values().iterator(); I.hasNext();) { - I.next().dispose(); - } - m_descriptorImageMap.clear(); - } - // dispose decorated images - for (int i = 0; i < m_decoratedImageMap.length; i++) { - Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i]; - if (cornerDecoratedImageMap != null) { - for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values()) { - for (Image image : decoratedMap.values()) { - image.dispose(); - } - decoratedMap.clear(); - } - cornerDecoratedImageMap.clear(); - } - } - // dispose plugin images - { - for (Iterator<Image> I = m_URLImageMap.values().iterator(); I.hasNext();) { - I.next().dispose(); - } - m_URLImageMap.clear(); - } - } - //////////////////////////////////////////////////////////////////////////// - // - // Plugin images support - // - //////////////////////////////////////////////////////////////////////////// - /** - * Maps URL to images. - */ - private static Map<String, Image> m_URLImageMap = new HashMap<String, Image>(); - /** - * Provider for plugin resources, used by WindowBuilder at design time. - */ - public interface PluginResourceProvider { - URL getEntry(String symbolicName, String path); - } - /** - * Instance of {@link PluginResourceProvider}, used by WindowBuilder at design time. - */ - private static PluginResourceProvider m_designTimePluginResourceProvider = null; - /** - * Returns an {@link Image} based on a plugin and file path. - * - * @param plugin - * the plugin {@link Object} containing the image - * @param name - * the path to the image within the plugin - * @return the {@link Image} stored in the file at the specified path - * - * @deprecated Use {@link #getPluginImage(String, String)} instead. - */ - @Deprecated - public static Image getPluginImage(Object plugin, String name) { - try { - URL url = getPluginImageURL(plugin, name); - if (url != null) { - return getPluginImageFromUrl(url); - } - } catch (Throwable e) { - // Ignore any exceptions - } - return null; - } - /** - * Returns an {@link Image} based on a {@link Bundle} and resource entry path. - * - * @param symbolicName - * the symbolic name of the {@link Bundle}. - * @param path - * the path of the resource entry. - * @return the {@link Image} stored in the file at the specified path. - */ - public static Image getPluginImage(String symbolicName, String path) { - try { - URL url = getPluginImageURL(symbolicName, path); - if (url != null) { - return getPluginImageFromUrl(url); - } - } catch (Throwable e) { - // Ignore any exceptions - } - return null; - } - /** - * Returns an {@link Image} based on given {@link URL}. - */ - private static Image getPluginImageFromUrl(URL url) { - try { - try { - String key = url.toExternalForm(); - Image image = m_URLImageMap.get(key); - if (image == null) { - InputStream stream = url.openStream(); - try { - image = getImage(stream); - m_URLImageMap.put(key, image); - } finally { - stream.close(); - } - } - return image; - } catch (Throwable e) { - // Ignore any exceptions - } - } catch (Throwable e) { - // Ignore any exceptions - } - return null; - } - /** - * Returns an {@link ImageDescriptor} based on a plugin and file path. - * - * @param plugin - * the plugin {@link Object} containing the image. - * @param name - * the path to th eimage within the plugin. - * @return the {@link ImageDescriptor} stored in the file at the specified path. - * - * @deprecated Use {@link #getPluginImageDescriptor(String, String)} instead. - */ - @Deprecated - public static ImageDescriptor getPluginImageDescriptor(Object plugin, String name) { - try { - try { - URL url = getPluginImageURL(plugin, name); - return ImageDescriptor.createFromURL(url); - } catch (Throwable e) { - // Ignore any exceptions - } - } catch (Throwable e) { - // Ignore any exceptions - } - return null; - } - /** - * Returns an {@link ImageDescriptor} based on a {@link Bundle} and resource entry path. - * - * @param symbolicName - * the symbolic name of the {@link Bundle}. - * @param path - * the path of the resource entry. - * @return the {@link ImageDescriptor} based on a {@link Bundle} and resource entry path. - */ - public static ImageDescriptor getPluginImageDescriptor(String symbolicName, String path) { - try { - URL url = getPluginImageURL(symbolicName, path); - if (url != null) { - return ImageDescriptor.createFromURL(url); - } - } catch (Throwable e) { - // Ignore any exceptions - } - return null; - } - /** - * Returns an {@link URL} based on a {@link Bundle} and resource entry path. - */ - private static URL getPluginImageURL(String symbolicName, String path) { - // try runtime plugins - { - Bundle bundle = Platform.getBundle(symbolicName); - if (bundle != null) { - return bundle.getEntry(path); - } - } - // try design time provider - if (m_designTimePluginResourceProvider != null) { - return m_designTimePluginResourceProvider.getEntry(symbolicName, path); - } - // no such resource - return null; - } - /** - * Returns an {@link URL} based on a plugin and file path. - * - * @param plugin - * the plugin {@link Object} containing the file path. - * @param name - * the file path. - * @return the {@link URL} representing the file at the specified path. - * @throws Exception - */ - private static URL getPluginImageURL(Object plugin, String name) throws Exception { - // try to work with 'plugin' as with OSGI BundleContext - try { - Class<?> BundleClass = Class.forName("org.osgi.framework.Bundle"); //$NON-NLS-1$ - Class<?> BundleContextClass = Class.forName("org.osgi.framework.BundleContext"); //$NON-NLS-1$ - if (BundleContextClass.isAssignableFrom(plugin.getClass())) { - Method getBundleMethod = BundleContextClass.getMethod("getBundle", new Class[0]); //$NON-NLS-1$ - Object bundle = getBundleMethod.invoke(plugin, new Object[0]); - // - Class<?> PathClass = Class.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$ - Constructor<?> pathConstructor = PathClass.getConstructor(new Class[]{String.class}); - Object path = pathConstructor.newInstance(new Object[]{name}); - // - Class<?> IPathClass = Class.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$ - Class<?> PlatformClass = Class.forName("org.eclipse.core.runtime.Platform"); //$NON-NLS-1$ - Method findMethod = PlatformClass.getMethod("find", new Class[]{BundleClass, IPathClass}); //$NON-NLS-1$ - return (URL) findMethod.invoke(null, new Object[]{bundle, path}); - } - } catch (Throwable e) { - // Ignore any exceptions - } - // else work with 'plugin' as with usual Eclipse plugin - { - Class<?> PluginClass = Class.forName("org.eclipse.core.runtime.Plugin"); //$NON-NLS-1$ - if (PluginClass.isAssignableFrom(plugin.getClass())) { - // - Class<?> PathClass = Class.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$ - Constructor<?> pathConstructor = PathClass.getConstructor(new Class[]{String.class}); - Object path = pathConstructor.newInstance(new Object[]{name}); - // - Class<?> IPathClass = Class.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$ - Method findMethod = PluginClass.getMethod("find", new Class[]{IPathClass}); //$NON-NLS-1$ - return (URL) findMethod.invoke(plugin, new Object[]{path}); - } - } - return null; - } - //////////////////////////////////////////////////////////////////////////// - // - // General - // - //////////////////////////////////////////////////////////////////////////// - /** - * Dispose of cached objects and their underlying OS resources. This should only be called when the cached - * objects are no longer needed (e.g. on application shutdown). - */ - public static void dispose() { - disposeColors(); - disposeFonts(); - disposeImages(); - } -}
\ No newline at end of file diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/wb/swt/SWTResourceManager.java b/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/wb/swt/SWTResourceManager.java deleted file mode 100644 index d8a285807a..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/wb/swt/SWTResourceManager.java +++ /dev/null @@ -1,447 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Google, Inc. - * 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: - * Google, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.wb.swt; - -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.HashMap; -import java.util.Map; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Color; -import org.eclipse.swt.graphics.Cursor; -import org.eclipse.swt.graphics.Font; -import org.eclipse.swt.graphics.FontData; -import org.eclipse.swt.graphics.GC; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.ImageData; -import org.eclipse.swt.graphics.RGB; -import org.eclipse.swt.graphics.Rectangle; -import org.eclipse.swt.widgets.Display; - -/** - * Utility class for managing OS resources associated with SWT controls such as colors, fonts, images, etc. - * <p> - * !!! IMPORTANT !!! Application code must explicitly invoke the <code>dispose()</code> method to release the - * operating system resources managed by cached objects when those objects and OS resources are no longer - * needed (e.g. on application shutdown) - * <p> - * This class may be freely distributed as part of any application or plugin. - * <p> - * @author scheglov_ke - * @author Dan Rubel - */ -public class SWTResourceManager { - //////////////////////////////////////////////////////////////////////////// - // - // Color - // - //////////////////////////////////////////////////////////////////////////// - private static Map<RGB, Color> m_colorMap = new HashMap<RGB, Color>(); - /** - * Returns the system {@link Color} matching the specific ID. - * - * @param systemColorID - * the ID value for the color - * @return the system {@link Color} matching the specific ID - */ - public static Color getColor(int systemColorID) { - Display display = Display.getCurrent(); - return display.getSystemColor(systemColorID); - } - /** - * Returns a {@link Color} given its red, green and blue component values. - * - * @param r - * the red component of the color - * @param g - * the green component of the color - * @param b - * the blue component of the color - * @return the {@link Color} matching the given red, green and blue component values - */ - public static Color getColor(int r, int g, int b) { - return getColor(new RGB(r, g, b)); - } - /** - * Returns a {@link Color} given its RGB value. - * - * @param rgb - * the {@link RGB} value of the color - * @return the {@link Color} matching the RGB value - */ - public static Color getColor(RGB rgb) { - Color color = m_colorMap.get(rgb); - if (color == null) { - Display display = Display.getCurrent(); - color = new Color(display, rgb); - m_colorMap.put(rgb, color); - } - return color; - } - /** - * Dispose of all the cached {@link Color}'s. - */ - public static void disposeColors() { - for (Color color : m_colorMap.values()) { - color.dispose(); - } - m_colorMap.clear(); - } - //////////////////////////////////////////////////////////////////////////// - // - // Image - // - //////////////////////////////////////////////////////////////////////////// - /** - * Maps image paths to images. - */ - private static Map<String, Image> m_imageMap = new HashMap<String, Image>(); - /** - * Returns an {@link Image} encoded by the specified {@link InputStream}. - * - * @param stream - * the {@link InputStream} encoding the image data - * @return the {@link Image} encoded by the specified input stream - */ - protected static Image getImage(InputStream stream) throws IOException { - try { - Display display = Display.getCurrent(); - ImageData data = new ImageData(stream); - if (data.transparentPixel > 0) { - return new Image(display, data, data.getTransparencyMask()); - } - return new Image(display, data); - } finally { - stream.close(); - } - } - /** - * Returns an {@link Image} stored in the file at the specified path. - * - * @param path - * the path to the image file - * @return the {@link Image} stored in the file at the specified path - */ - public static Image getImage(String path) { - Image image = m_imageMap.get(path); - if (image == null) { - try { - image = getImage(new FileInputStream(path)); - m_imageMap.put(path, image); - } catch (Exception e) { - image = getMissingImage(); - m_imageMap.put(path, image); - } - } - return image; - } - /** - * Returns an {@link Image} stored in the file at the specified path relative to the specified class. - * - * @param clazz - * the {@link Class} relative to which to find the image - * @param path - * the path to the image file, if starts with <code>'/'</code> - * @return the {@link Image} stored in the file at the specified path - */ - public static Image getImage(Class<?> clazz, String path) { - String key = clazz.getName() + '|' + path; - Image image = m_imageMap.get(key); - if (image == null) { - try { - image = getImage(clazz.getResourceAsStream(path)); - m_imageMap.put(key, image); - } catch (Exception e) { - image = getMissingImage(); - m_imageMap.put(key, image); - } - } - return image; - } - private static final int MISSING_IMAGE_SIZE = 10; - /** - * @return the small {@link Image} that can be used as placeholder for missing image. - */ - private static Image getMissingImage() { - Image image = new Image(Display.getCurrent(), MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE); - // - GC gc = new GC(image); - gc.setBackground(getColor(SWT.COLOR_RED)); - gc.fillRectangle(0, 0, MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE); - gc.dispose(); - // - return image; - } - /** - * Style constant for placing decorator image in top left corner of base image. - */ - public static final int TOP_LEFT = 1; - /** - * Style constant for placing decorator image in top right corner of base image. - */ - public static final int TOP_RIGHT = 2; - /** - * Style constant for placing decorator image in bottom left corner of base image. - */ - public static final int BOTTOM_LEFT = 3; - /** - * Style constant for placing decorator image in bottom right corner of base image. - */ - public static final int BOTTOM_RIGHT = 4; - /** - * Internal value. - */ - protected static final int LAST_CORNER_KEY = 5; - /** - * Maps images to decorated images. - */ - @SuppressWarnings("unchecked") - private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY]; - /** - * Returns an {@link Image} composed of a base image decorated by another image. - * - * @param baseImage - * the base {@link Image} that should be decorated - * @param decorator - * the {@link Image} to decorate the base image - * @return {@link Image} The resulting decorated image - */ - public static Image decorateImage(Image baseImage, Image decorator) { - return decorateImage(baseImage, decorator, BOTTOM_RIGHT); - } - /** - * Returns an {@link Image} composed of a base image decorated by another image. - * - * @param baseImage - * the base {@link Image} that should be decorated - * @param decorator - * the {@link Image} to decorate the base image - * @param corner - * the corner to place decorator image - * @return the resulting decorated {@link Image} - */ - public static Image decorateImage(final Image baseImage, final Image decorator, final int corner) { - if (corner <= 0 || corner >= LAST_CORNER_KEY) { - throw new IllegalArgumentException("Wrong decorate corner"); - } - Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner]; - if (cornerDecoratedImageMap == null) { - cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>(); - m_decoratedImageMap[corner] = cornerDecoratedImageMap; - } - Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage); - if (decoratedMap == null) { - decoratedMap = new HashMap<Image, Image>(); - cornerDecoratedImageMap.put(baseImage, decoratedMap); - } - // - Image result = decoratedMap.get(decorator); - if (result == null) { - Rectangle bib = baseImage.getBounds(); - Rectangle dib = decorator.getBounds(); - // - result = new Image(Display.getCurrent(), bib.width, bib.height); - // - GC gc = new GC(result); - gc.drawImage(baseImage, 0, 0); - if (corner == TOP_LEFT) { - gc.drawImage(decorator, 0, 0); - } else if (corner == TOP_RIGHT) { - gc.drawImage(decorator, bib.width - dib.width, 0); - } else if (corner == BOTTOM_LEFT) { - gc.drawImage(decorator, 0, bib.height - dib.height); - } else if (corner == BOTTOM_RIGHT) { - gc.drawImage(decorator, bib.width - dib.width, bib.height - dib.height); - } - gc.dispose(); - // - decoratedMap.put(decorator, result); - } - return result; - } - /** - * Dispose all of the cached {@link Image}'s. - */ - public static void disposeImages() { - // dispose loaded images - { - for (Image image : m_imageMap.values()) { - image.dispose(); - } - m_imageMap.clear(); - } - // dispose decorated images - for (int i = 0; i < m_decoratedImageMap.length; i++) { - Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i]; - if (cornerDecoratedImageMap != null) { - for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values()) { - for (Image image : decoratedMap.values()) { - image.dispose(); - } - decoratedMap.clear(); - } - cornerDecoratedImageMap.clear(); - } - } - } - //////////////////////////////////////////////////////////////////////////// - // - // Font - // - //////////////////////////////////////////////////////////////////////////// - /** - * Maps font names to fonts. - */ - private static Map<String, Font> m_fontMap = new HashMap<String, Font>(); - /** - * Maps fonts to their bold versions. - */ - private static Map<Font, Font> m_fontToBoldFontMap = new HashMap<Font, Font>(); - /** - * Returns a {@link Font} based on its name, height and style. - * - * @param name - * the name of the font - * @param height - * the height of the font - * @param style - * the style of the font - * @return {@link Font} The font matching the name, height and style - */ - public static Font getFont(String name, int height, int style) { - return getFont(name, height, style, false, false); - } - /** - * Returns a {@link Font} based on its name, height and style. Windows-specific strikeout and underline - * flags are also supported. - * - * @param name - * the name of the font - * @param size - * the size of the font - * @param style - * the style of the font - * @param strikeout - * the strikeout flag (warning: Windows only) - * @param underline - * the underline flag (warning: Windows only) - * @return {@link Font} The font matching the name, height, style, strikeout and underline - */ - public static Font getFont(String name, int size, int style, boolean strikeout, boolean underline) { - String fontName = name + '|' + size + '|' + style + '|' + strikeout + '|' + underline; - Font font = m_fontMap.get(fontName); - if (font == null) { - FontData fontData = new FontData(name, size, style); - if (strikeout || underline) { - try { - Class<?> logFontClass = Class.forName("org.eclipse.swt.internal.win32.LOGFONT"); //$NON-NLS-1$ - Object logFont = FontData.class.getField("data").get(fontData); //$NON-NLS-1$ - if (logFont != null && logFontClass != null) { - if (strikeout) { - logFontClass.getField("lfStrikeOut").set(logFont, Byte.valueOf((byte) 1)); //$NON-NLS-1$ - } - if (underline) { - logFontClass.getField("lfUnderline").set(logFont, Byte.valueOf((byte) 1)); //$NON-NLS-1$ - } - } - } catch (Throwable e) { - System.err.println("Unable to set underline or strikeout" + " (probably on a non-Windows platform). " + e); //$NON-NLS-1$ //$NON-NLS-2$ - } - } - font = new Font(Display.getCurrent(), fontData); - m_fontMap.put(fontName, font); - } - return font; - } - /** - * Returns a bold version of the given {@link Font}. - * - * @param baseFont - * the {@link Font} for which a bold version is desired - * @return the bold version of the given {@link Font} - */ - public static Font getBoldFont(Font baseFont) { - Font font = m_fontToBoldFontMap.get(baseFont); - if (font == null) { - FontData fontDatas[] = baseFont.getFontData(); - FontData data = fontDatas[0]; - font = new Font(Display.getCurrent(), data.getName(), data.getHeight(), SWT.BOLD); - m_fontToBoldFontMap.put(baseFont, font); - } - return font; - } - /** - * Dispose all of the cached {@link Font}'s. - */ - public static void disposeFonts() { - // clear fonts - for (Font font : m_fontMap.values()) { - font.dispose(); - } - m_fontMap.clear(); - // clear bold fonts - for (Font font : m_fontToBoldFontMap.values()) { - font.dispose(); - } - m_fontToBoldFontMap.clear(); - } - //////////////////////////////////////////////////////////////////////////// - // - // Cursor - // - //////////////////////////////////////////////////////////////////////////// - /** - * Maps IDs to cursors. - */ - private static Map<Integer, Cursor> m_idToCursorMap = new HashMap<Integer, Cursor>(); - /** - * Returns the system cursor matching the specific ID. - * - * @param id - * int The ID value for the cursor - * @return Cursor The system cursor matching the specific ID - */ - public static Cursor getCursor(int id) { - Integer key = Integer.valueOf(id); - Cursor cursor = m_idToCursorMap.get(key); - if (cursor == null) { - cursor = new Cursor(Display.getDefault(), id); - m_idToCursorMap.put(key, cursor); - } - return cursor; - } - /** - * Dispose all of the cached cursors. - */ - public static void disposeCursors() { - for (Cursor cursor : m_idToCursorMap.values()) { - cursor.dispose(); - } - m_idToCursorMap.clear(); - } - //////////////////////////////////////////////////////////////////////////// - // - // General - // - //////////////////////////////////////////////////////////////////////////// - /** - * Dispose of cached objects and their underlying OS resources. This should only be called when the cached - * objects are no longer needed (e.g. on application shutdown). - */ - public static void dispose() { - disposeColors(); - disposeImages(); - disposeFonts(); - disposeCursors(); - } -}
\ No newline at end of file diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/.classpath b/plugins/org.eclipse.emf.cdo.releng.setup/.classpath index 64c5e31b7a..791d4f10ba 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/.classpath +++ b/plugins/org.eclipse.emf.cdo.releng.setup/.classpath @@ -1,7 +1,17 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> <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.pde.core.requiredPlugins"> + <accessrules> + <accessrule kind="accessible" pattern="org/eclipse/core/internal/resources/**"/> + <accessrule kind="accessible" pattern="org/eclipse/equinox/p2/publisher/**"/> + <accessrule kind="accessible" pattern="org/eclipse/equinox/internal/p2/**"/> + <accessrule kind="accessible" pattern="org/eclipse/pde/api/**"/> + <accessrule kind="accessible" pattern="org/eclipse/egit/core/**"/> + <accessrule kind="accessible" pattern="org/eclipse/jgit/**"/> + <accessrule kind="accessible" pattern="org/eclipse/ui/internal/progress/**"/> + </accessrules> + </classpathentry> <classpathentry kind="src" path="src"/> <classpathentry kind="output" path="bin"/> </classpath> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/.refactorings/2013/8/33/refactorings.history b/plugins/org.eclipse.emf.cdo.releng.setup/.refactorings/2013/8/33/refactorings.history new file mode 100644 index 0000000000..62b43ded3e --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/.refactorings/2013/8/33/refactorings.history @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="UTF-8"?> +<session version="1.0">
<refactoring comment="Copy 2 elements to 'org.eclipse.emf.cdo.releng.workingsets.edit'
- Original project: 'org.eclipse.emf.cdo.releng.setup'
- Destination element: 'org.eclipse.emf.cdo.releng.workingsets.edit'
- Original elements:
 about.html
 copyright.txt" description="Copy files" destination="=org.eclipse.emf.cdo.releng.workingsets.edit" element1="about.html" element2="copyright.txt" files="2" flags="589830" folders="0" id="org.eclipse.jdt.ui.copy" policy="org.eclipse.jdt.ui.copyResources" stamp="1376496727544" units="0" version="1.0"/>
<refactoring comment="Copy 2 elements to 'org.eclipse.emf.cdo.releng.workingsets.editor'
- Original project: 'org.eclipse.emf.cdo.releng.setup'
- Destination element: 'org.eclipse.emf.cdo.releng.workingsets.editor'
- Original elements:
 about.html
 copyright.txt" description="Copy files" destination="=org.eclipse.emf.cdo.releng.workingsets.editor" element1="about.html" element2="copyright.txt" files="2" flags="589830" folders="0" id="org.eclipse.jdt.ui.copy" policy="org.eclipse.jdt.ui.copyResources" stamp="1376496735447" units="0" version="1.0"/>
<refactoring accessors="true" comment="Delete 6 elements from project 'org.eclipse.emf.cdo.releng.setup'
- Original project: 'org.eclipse.emf.cdo.releng.setup'
- Original elements:
 org.eclipse.emf.cdo.releng.setup.ApiBaseline.java
 org.eclipse.emf.cdo.releng.setup.DirectorCall.java
 org.eclipse.emf.cdo.releng.setup.GitClone.java
 org.eclipse.emf.cdo.releng.setup.LinkLocation.java
 org.eclipse.emf.cdo.releng.setup.ToolInstallation.java
 org.eclipse.emf.cdo.releng.setup.ToolPreference.java" description="Delete elements" element1="/src<org.eclipse.emf.cdo.releng.setup{LinkLocation.java" element2="/src<org.eclipse.emf.cdo.releng.setup{ApiBaseline.java" element3="/src<org.eclipse.emf.cdo.releng.setup{GitClone.java" element4="/src<org.eclipse.emf.cdo.releng.setup{DirectorCall.java" element5="/src<org.eclipse.emf.cdo.releng.setup{ToolPreference.java" element6="/src<org.eclipse.emf.cdo.releng.setup{ToolInstallation.java" elements="6" flags="589830" id="org.eclipse.jdt.ui.delete" resources="0" stamp="1376557887953" subPackages="false" version="1.0"/>
<refactoring comment="Move element 'PerformContext.java' to 'org.eclipse.emf.cdo.releng.setup/src/org.eclipse.emf.cdo.releng.setup'
- Original project: 'org.eclipse.emf.cdo.releng.setup'
- Destination element: 'org.eclipse.emf.cdo.releng.setup/src/org.eclipse.emf.cdo.releng.setup'
- Original element: 'org.eclipse.emf.cdo.releng.setup.impl.PerformContext.java'
- Update references to refactored element" description="Move compilation unit" destination="/src<org.eclipse.emf.cdo.releng.setup" element1="/src<org.eclipse.emf.cdo.releng.setup.impl{PerformContext.java" files="0" flags="589830" folders="0" id="org.eclipse.jdt.ui.move" patterns="*" policy="org.eclipse.jdt.ui.moveResources" qualified="false" references="true" stamp="1376558106375" units="1" version="1.0"/>
<refactoring accessors="true" comment="Delete element from project 'org.eclipse.emf.cdo.releng.setup'
- Original project: 'org.eclipse.emf.cdo.releng.setup'
- Original element: 'org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl.java'" description="Delete element" element1="/src<org.eclipse.emf.cdo.releng.setup.impl{ApiBaselineImpl.java" elements="1" flags="589830" id="org.eclipse.jdt.ui.delete" resources="0" stamp="1376558816163" subPackages="false" version="1.0"/>
<refactoring accessors="true" comment="Delete element from project 'org.eclipse.emf.cdo.releng.setup'
- Original project: 'org.eclipse.emf.cdo.releng.setup'
- Original element: 'org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl.java'" description="Delete element" element1="/src<org.eclipse.emf.cdo.releng.setup.impl{DirectorCallImpl.java" elements="1" flags="589830" id="org.eclipse.jdt.ui.delete" resources="0" stamp="1376558819380" subPackages="false" version="1.0"/>
<refactoring accessors="true" comment="Delete element from project 'org.eclipse.emf.cdo.releng.setup'
- Original project: 'org.eclipse.emf.cdo.releng.setup'
- Original element: 'org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl.java'" description="Delete element" element1="/src<org.eclipse.emf.cdo.releng.setup.impl{GitCloneImpl.java" elements="1" flags="589830" id="org.eclipse.jdt.ui.delete" resources="0" stamp="1376558822308" subPackages="false" version="1.0"/>
<refactoring accessors="true" comment="Delete element from project 'org.eclipse.emf.cdo.releng.setup'
- Original project: 'org.eclipse.emf.cdo.releng.setup'
- Original element: 'org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl.java'" description="Delete element" element1="/src<org.eclipse.emf.cdo.releng.setup.impl{LinkLocationImpl.java" elements="1" flags="589830" id="org.eclipse.jdt.ui.delete" resources="0" stamp="1376558833716" subPackages="false" version="1.0"/>
<refactoring accessors="true" comment="Delete element from project 'org.eclipse.emf.cdo.releng.setup'
- Original project: 'org.eclipse.emf.cdo.releng.setup'
- Original element: 'org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl.java'" description="Delete element" element1="/src<org.eclipse.emf.cdo.releng.setup.impl{ToolInstallationImpl.java" elements="1" flags="589830" id="org.eclipse.jdt.ui.delete" resources="0" stamp="1376558838623" subPackages="false" version="1.0"/>
<refactoring accessors="true" comment="Delete element from project 'org.eclipse.emf.cdo.releng.setup'
- Original project: 'org.eclipse.emf.cdo.releng.setup'
- Original element: 'org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl.java'" description="Delete element" element1="/src<org.eclipse.emf.cdo.releng.setup.impl{ToolPreferenceImpl.java" elements="1" flags="589830" id="org.eclipse.jdt.ui.delete" resources="0" stamp="1376558841344" subPackages="false" version="1.0"/>
<refactoring comment="Rename type 'org.eclipse.emf.cdo.releng.setup.SetWorkingTask' to 'WorkingSetTask'
- Original project: 'org.eclipse.emf.cdo.releng.setup'
- Original element: 'org.eclipse.emf.cdo.releng.setup.SetWorkingTask'
- Renamed element: 'org.eclipse.emf.cdo.releng.setup.WorkingSetTask'
- Update references to refactored element
- Update textual occurrences in comments and strings" description="Rename type 'SetWorkingTask'" flags="589830" id="org.eclipse.jdt.ui.rename.type" input="/src<org.eclipse.emf.cdo.releng.setup{SetWorkingTask.java[SetWorkingTask" matchStrategy="1" name="WorkingSetTask" qualified="false" references="true" similarDeclarations="false" stamp="1376562248013" textual="false" version="1.0"/>
<refactoring comment="Rename type 'org.eclipse.emf.cdo.releng.setup.impl.SetWorkingTaskImpl' to 'WorkingSetTaskImpl'
- Original project: 'org.eclipse.emf.cdo.releng.setup'
- Original element: 'org.eclipse.emf.cdo.releng.setup.impl.SetWorkingTaskImpl'
- Renamed element: 'org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl'
- Update references to refactored element
- Update textual occurrences in comments and strings" description="Rename type 'SetWorkingTaskImpl'" flags="589830" id="org.eclipse.jdt.ui.rename.type" input="/src<org.eclipse.emf.cdo.releng.setup.impl{SetWorkingTaskImpl.java[SetWorkingTaskImpl" matchStrategy="1" name="WorkingSetTaskImpl" qualified="false" references="true" similarDeclarations="false" stamp="1376562258083" textual="false" version="1.0"/>
<refactoring comment="Rename type 'org.eclipse.emf.cdo.releng.setup.impl.InstallTaskImpl' to 'P2TaskImpl'
- Original project: 'org.eclipse.emf.cdo.releng.setup'
- Original element: 'org.eclipse.emf.cdo.releng.setup.impl.InstallTaskImpl'
- Renamed element: 'org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl'
- Update references to refactored element
- Update textual occurrences in comments and strings" description="Rename type 'InstallTaskImpl'" flags="589830" id="org.eclipse.jdt.ui.rename.type" input="/src<org.eclipse.emf.cdo.releng.setup.impl{InstallTaskImpl.java[InstallTaskImpl" matchStrategy="1" name="P2TaskImpl" qualified="false" references="true" similarDeclarations="false" stamp="1376563875710" textual="false" version="1.0"/>
<refactoring comment="Rename type 'org.eclipse.emf.cdo.releng.setup.InstallTask' to 'P2Task'
- Original project: 'org.eclipse.emf.cdo.releng.setup'
- Original element: 'org.eclipse.emf.cdo.releng.setup.InstallTask'
- Renamed element: 'org.eclipse.emf.cdo.releng.setup.P2Task'
- Update references to refactored element
- Update textual occurrences in comments and strings" description="Rename type 'InstallTask'" flags="589830" id="org.eclipse.jdt.ui.rename.type" input="/src<org.eclipse.emf.cdo.releng.setup{InstallTask.java[InstallTask" matchStrategy="1" name="P2Task" qualified="false" references="true" similarDeclarations="false" stamp="1376563884187" textual="false" version="1.0"/>
<refactoring comment="Rename method 'org.eclipse.emf.cdo.releng.setup.PerformContext.log()' to 'getLog'
- Original project: 'org.eclipse.emf.cdo.releng.setup'
- Original element: 'org.eclipse.emf.cdo.releng.setup.PerformContext.log()'
- Renamed element: 'org.eclipse.emf.cdo.releng.setup.PerformContext.getLog()'
- Update references to refactored element" delegate="false" deprecate="false" description="Rename method 'log'" flags="589830" id="org.eclipse.jdt.ui.rename.method" input="/src<org.eclipse.emf.cdo.releng.setup{PerformContext.java[PerformContext~log" name="getLog" references="true" stamp="1376568622664" version="1.0"/>
<refactoring comment="Rename type 'org.eclipse.emf.cdo.releng.setup.PerformContext' to 'SetupTaskContext'
- Original project: 'org.eclipse.emf.cdo.releng.setup'
- Original element: 'org.eclipse.emf.cdo.releng.setup.PerformContext'
- Renamed element: 'org.eclipse.emf.cdo.releng.setup.SetupTaskContext'
- Update references to refactored element
- Update textual occurrences in comments and strings" description="Rename type 'PerformContext'" flags="589830" id="org.eclipse.jdt.ui.rename.type" input="/src<org.eclipse.emf.cdo.releng.setup{PerformContext.java[PerformContext" matchStrategy="1" name="SetupTaskContext" qualified="false" references="true" similarDeclarations="false" stamp="1376568653538" textual="false" version="1.0"/> +</session>
\ No newline at end of file diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/.refactorings/2013/8/33/refactorings.index b/plugins/org.eclipse.emf.cdo.releng.setup/.refactorings/2013/8/33/refactorings.index new file mode 100644 index 0000000000..b069431147 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/.refactorings/2013/8/33/refactorings.index @@ -0,0 +1,16 @@ +1376496727544 Copy files +1376496735447 Copy files +1376557887953 Delete elements +1376558106375 Move compilation unit +1376558816163 Delete element +1376558819380 Delete element +1376558822308 Delete element +1376558833716 Delete element +1376558838623 Delete element +1376558841344 Delete element +1376562248013 Rename type 'SetWorkingTask' +1376562258083 Rename type 'SetWorkingTaskImpl' +1376563875710 Rename type 'InstallTaskImpl' +1376563884187 Rename type 'InstallTask' +1376568622664 Rename method 'log' +1376568653538 Rename type 'PerformContext' diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.setup/.settings/org.eclipse.core.resources.prefs index 45834dcf98..6fe08a4a46 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/.settings/org.eclipse.core.resources.prefs +++ b/plugins/org.eclipse.emf.cdo.releng.setup/.settings/org.eclipse.core.resources.prefs @@ -1,5 +1,5 @@ eclipse.preferences.version=1 encoding/.project=UTF-8 -encoding//model/Configuration.xmi=ASCII +encoding//model/Configuration.setup=UTF-8 encoding//model/setup.ecore=UTF-8 encoding//model/setup.ecorediag=UTF-8 diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.setup/META-INF/MANIFEST.MF index e0540563db..200fb3f7ec 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.cdo.releng.setup/META-INF/MANIFEST.MF @@ -6,14 +6,51 @@ Bundle-ClassPath: . Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-Localization: plugin -Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", - org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)", - org.eclipse.emf.cdo.releng.workingsets;bundle-version="[1.0.0,2.0.0)";visibility:=reexport, - org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)" +Require-Bundle: org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)", + org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", + org.eclipse.emf.cdo.releng.workingsets;visibility:=reexport;bundle-version="[1.0.0,2.0.0)", + org.eclipse.emf.cdo.releng.predicates;visibility:=reexport;bundle-version="[1.0.0,2.0.0)", + org.eclipse.emf.ecore;visibility:=reexport;bundle-version="[2.5.0,3.0.0)", + org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)", + org.eclipse.core.resources;resolution:=optional;bundle-version="[3.5.0,4.0.0)", + org.eclipse.core.variables;resolution:=optional;bundle-version="[3.0.0,4.0.0)", + org.eclipse.pde.core;resolution:=optional;bundle-version="[3.5.0,4.0.0)", + org.eclipse.pde.api.tools;resolution:=optional;bundle-version="[1.0.0,2.0.0)", + org.eclipse.team.ui;resolution:=optional;bundle-version="[3.5.0,4.0.0)", + javaewah;resolution:=optional;bundle-version="[0.0.0,1.0.0)", + org.eclipse.jgit;resolution:=optional;bundle-version="[3.0.0,4.0.0)", + org.eclipse.egit;resolution:=optional;bundle-version="[3.0.0,4.0.0)", + org.eclipse.egit.core;resolution:=optional;bundle-version="[3.0.0,4.0.0)", + org.eclipse.egit.ui;resolution:=optional;bundle-version="[3.0.0,4.0.0)", + org.eclipse.emf.edit.ui;resolution:=optional;bundle-version="[2.5.0,3.0.0)", + org.eclipse.ecf.provider.filetransfer;resolution:=optional;bundle-version="[3.2.0,4.0.0)", + org.eclipse.ecf.filetransfer;resolution:=optional;bundle-version="[5.0.0,6.0.0)", + org.eclipse.ecf.identity;resolution:=optional;bundle-version="[3.2.0,4.0.0)", + org.eclipse.ecf;resolution:=optional;bundle-version="[3.2.0,4.0.0)", + org.eclipse.buckminster.sax;resolution:=optional;bundle-version="[1.0.0,2.0.0)", + org.eclipse.buckminster.cmdline;resolution:=optional;bundle-version="[1.0.0,2.0.0)", + org.eclipse.buckminster.download;resolution:=optional;bundle-version="[1.0.0,2.0.0)", + org.eclipse.buckminster.runtime;resolution:=optional;bundle-version="[1.0.0,2.0.0)", + org.eclipse.buckminster.core;resolution:=optional;bundle-version="[1.0.0,2.0.0)", + org.eclipse.buckminster.pde;resolution:=optional;bundle-version="[1.0.0,2.0.0)", + org.eclipse.equinox.p2.core;resolution:=optional;bundle-version="[2.0.0,3.0.0)", + org.eclipse.equinox.p2.ui;resolution:=optional;bundle-version="[2.0.0,3.0.0)", + org.eclipse.equinox.p2.metadata;resolution:=optional;bundle-version="[2.0.0,3.0.0)", + org.eclipse.equinox.p2.repository;resolution:=optional;bundle-version="[2.0.0,3.0.0)", + org.eclipse.equinox.p2.artifact.repository;resolution:=optional;bundle-version="[1.0.0,2.0.0)", + org.eclipse.equinox.p2.metadata.repository;resolution:=optional;bundle-version="[1.0.0,2.0.0)", + org.eclipse.equinox.p2.console;resolution:=optional;bundle-version="[1.0.0,2.0.0)", + org.eclipse.equinox.p2.publisher;resolution:=optional;bundle-version="[1.0.0,2.0.0)", + org.eclipse.equinox.p2.publisher.eclipse;resolution:=optional;bundle-version="[1.0.0,2.0.0)", + org.eclipse.equinox.p2.director.app;resolution:=optional;bundle-version="[1.0.0,2.0.0)", + org.eclipse.equinox.p2.operations;bundle-version="[2.0.0,3.0.0)", + org.eclipse.equinox.p2.engine;bundle-version="[2.0.0,3.0.0)" Bundle-RequiredExecutionEnvironment: J2SE-1.5 Bundle-ActivationPolicy: lazy -Export-Package: org.eclipse.emf.cdo.releng.setup;version="1.0.0", - org.eclipse.emf.cdo.releng.setup.helper;x-friends:="org.eclipse.emf.cdo.releng.setup.ide,org.eclipse.emf.cdo.releng.setup.product,org.eclipse.emf.cdo.releng.setup.ui";version="1.0.0", +Export-Package: org.eclipse.emf.cdo.releng.internal.setup;x-friends:="org.eclipse.emf.cdo.releng.setup.product,org.eclipse.emf.cdo.releng.setup.editor";version="1.0.0", + org.eclipse.emf.cdo.releng.internal.setup.ui;x-friends:="org.eclipse.emf.cdo.releng.setup.product,org.eclipse.emf.cdo.releng.setup.editor";version="1.0.0", + org.eclipse.emf.cdo.releng.setup;version="1.0.0", org.eclipse.emf.cdo.releng.setup.impl;version="1.0.0", - org.eclipse.emf.cdo.releng.setup.util;version="1.0.0" -Bundle-Activator: org.eclipse.emf.cdo.releng.setup.helper.Activator + org.eclipse.emf.cdo.releng.setup.util;version="1.0.0", + org.eclipse.emf.cdo.releng.setup.util.log;version="1.0.0" +Bundle-Activator: org.eclipse.emf.cdo.releng.internal.setup.Activator diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/Setup IDE.launch b/plugins/org.eclipse.emf.cdo.releng.setup/Setup IDE.launch index 803e48a022..f7e9bfb353 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/Setup IDE.launch +++ b/plugins/org.eclipse.emf.cdo.releng.setup/Setup IDE.launch @@ -11,8 +11,9 @@ <booleanAttribute key="clearwslog" value="false"/> <stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/Setup IDE"/> <booleanAttribute key="default" value="false"/> +<booleanAttribute key="generateProfile" value="true"/> <booleanAttribute key="includeOptional" value="true"/> -<stringAttribute key="location" value="D:\sandbox\tmp4\emf\master\ws"/> +<stringAttribute key="location" value="D:\sandbox\tmp7\cdo\master\ws"/> <listAttribute key="org.eclipse.debug.ui.favoriteGroups"> <listEntry value="org.eclipse.debug.ui.launchGroup.debug"/> <listEntry value="org.eclipse.debug.ui.launchGroup.run"/> @@ -21,11 +22,11 @@ <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/> <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/> -<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.p2.mirrors=false -Declipse.p2.unsignedPolicy=allow -Xms1024m -Xmx2500m -XX:MaxPermSize=512m -Dsetup.uri=file:/${project_loc:/org.eclipse.emf.cdo.releng.setup}/model/Configuration.xmi -Dorg.eclipse.emf.cdo.releng.setup.ide=true"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.p2.mirrors=false -Declipse.p2.unsignedPolicy=allow -Xms1024m -Xmx2500m -XX:MaxPermSize=512m -Dorg.eclipse.emf.cdo.releng.setup.ide=true "-Djgit.gitprefix=C:\Program Files (x86)\Git" -Dorg.eclipse.buckminster.core.bundle.pool=D:/sandbox/tmp7/.p2pool-tp"/> <stringAttribute key="pde.version" value="3.3"/> <stringAttribute key="product" value="org.eclipse.platform.ide"/> <stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,com.jcraft.jsch@default:default,javaewah@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.ant@default:default,org.apache.batik.css@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.ui@default:default,org.eclipse.buckminster.ant@default:default,org.eclipse.buckminster.cmdline@default:default,org.eclipse.buckminster.core@default:default,org.eclipse.buckminster.download@default:default,org.eclipse.buckminster.executor@default:default,org.eclipse.buckminster.fetcher@default:default,org.eclipse.buckminster.generic.ui@default:default,org.eclipse.buckminster.generic@default:default,org.eclipse.buckminster.git@default:default,org.eclipse.buckminster.installer@default:default,org.eclipse.buckminster.jarprocessor@default:default,org.eclipse.buckminster.jdt@default:default,org.eclipse.buckminster.junit@default:default,org.eclipse.buckminster.model.common.edit@default:default,org.eclipse.buckminster.model.common@default:default,org.eclipse.buckminster.mspec.edit@default:default,org.eclipse.buckminster.mspec.editor@default:default,org.eclipse.buckminster.mspec@default:default,org.eclipse.buckminster.osgi.filter@default:default,org.eclipse.buckminster.pde.ui@default:default,org.eclipse.buckminster.pde@default:default,org.eclipse.buckminster.rmap.edit@default:default,org.eclipse.buckminster.rmap.editor@default:default,org.eclipse.buckminster.rmap.pde.edit@default:default,org.eclipse.buckminster.rmap.pde@default:default,org.eclipse.buckminster.rmap@default:default,org.eclipse.buckminster.runtime@default:default,org.eclipse.buckminster.sax@default:default,org.eclipse.buckminster.ui@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86_64@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient4.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient4@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.egit.core@default:default,org.eclipse.egit.fetchfactory@default:default,org.eclipse.egit.ui@default:default,org.eclipse.egit@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.ql@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.p2.ui.importexport@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security.win32.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jdt@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jgit@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.api.tools.ui@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.pde.ds.ui@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.pde.ua.ui@default:default,org.eclipse.pde.ui@default:default,org.eclipse.pde@default:default,org.eclipse.platform@default:default,org.eclipse.search@default:default,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.net@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.hamcrest.core*1.3.0.v201303031735@default:default,org.junit@default:default,org.objectweb.asm@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.w3c.css.sac@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/> -<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.cdo.releng.setup.edit@default:default,org.eclipse.emf.cdo.releng.setup.editor@default:default,org.eclipse.emf.cdo.releng.setup.ide@default:default,org.eclipse.emf.cdo.releng.setup.ui@default:default,org.eclipse.emf.cdo.releng.setup@default:default,org.eclipse.emf.cdo.releng.workingsets.edit@default:default,org.eclipse.emf.cdo.releng.workingsets.editor@default:default,org.eclipse.emf.cdo.releng.workingsets@default:default,org.eclipse.net4j.util@default:default"/> +<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.cdo.releng.predicates.edit@default:default,org.eclipse.emf.cdo.releng.predicates@default:default,org.eclipse.emf.cdo.releng.preferences.edit@default:default,org.eclipse.emf.cdo.releng.preferences.editor@default:default,org.eclipse.emf.cdo.releng.preferences@default:default,org.eclipse.emf.cdo.releng.projectconfig.edit@default:default,org.eclipse.emf.cdo.releng.projectconfig.editor@default:default,org.eclipse.emf.cdo.releng.projectconfig@default:default,org.eclipse.emf.cdo.releng.setup.edit@default:default,org.eclipse.emf.cdo.releng.setup.editor@default:default,org.eclipse.emf.cdo.releng.setup@default:default,org.eclipse.emf.cdo.releng.ui@default:default,org.eclipse.emf.cdo.releng.workingsets.edit@default:default,org.eclipse.emf.cdo.releng.workingsets.editor@default:default,org.eclipse.emf.cdo.releng.workingsets@default:default,org.eclipse.net4j.util@default:default"/> <booleanAttribute key="show_selected_only" value="false"/> <stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/> <booleanAttribute key="tracing" value="false"/> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/build.properties b/plugins/org.eclipse.emf.cdo.releng.setup/build.properties index ad4a3fbaf3..3f903c92ec 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/build.properties +++ b/plugins/org.eclipse.emf.cdo.releng.setup/build.properties @@ -17,7 +17,8 @@ bin.includes = plugin.xml,\ about.html,\ copyright.txt,\ plugin.properties,\ - model/ + model/,\ + icons/ src.includes = about.html,\ copyright.txt diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/icons/install_wiz.gif b/plugins/org.eclipse.emf.cdo.releng.setup/icons/install_wiz.gif Binary files differindex 7eee7c3a70..7eee7c3a70 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/icons/install_wiz.gif +++ b/plugins/org.eclipse.emf.cdo.releng.setup/icons/install_wiz.gif diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/model/Configuration.setup b/plugins/org.eclipse.emf.cdo.releng.setup/model/Configuration.setup new file mode 100644 index 0000000000..1a7449a5e7 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/model/Configuration.setup @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<setup:Configuration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:setup="http://www.eclipse.org/CDO/releng/setup/1.0"> + <projects href="../../org.eclipse.emf.cdo.releng/local.setup#/"/> + <projects href="http://git.eclipse.org/c/emf/org.eclipse.emf.git/plain/releng/org.eclipse.emf.releng.setup.core/core.setup#/"/> + <eclipseVersions version="3.8"> + <setupTasks xsi:type="setup:P2Task"> + <p2Repositories url="http://download.eclipse.org/eclipse/updates/3.8"/> + <p2Repositories url="${releng.url}"/> + <installableUnits id="org.eclipse.sdk.ide"/> + <installableUnits id="org.eclipse.emf.cdo.releng.setup.editor.feature.group"/> + </setupTasks> + <setupTasks xsi:type="setup:EclipseIniTask" requirements="//@eclipseVersions.0/@setupTasks.0" option="--launcher.XXMaxPermSize" value="512m"/> + <setupTasks xsi:type="setup:EclipseIniTask" requirements="//@eclipseVersions.0/@setupTasks.0" option="-Dorg.eclipse.emf.cdo.releng.setup.ide" value="=true" vm="true"/> + </eclipseVersions> + <eclipseVersions version="4.3"> + <setupTasks xsi:type="setup:P2Task"> + <p2Repositories url="http://download.eclipse.org/releases/kepler"/> + <p2Repositories url="${releng.url}"/> + <installableUnits id="org.eclipse.sdk.ide"/> + <installableUnits id="org.eclipse.emf.cdo.releng.setup.editor.feature.group"/> + </setupTasks> + <setupTasks xsi:type="setup:EclipseIniTask" requirements="//@eclipseVersions.1/@setupTasks.0" option="--launcher.XXMaxPermSize" value="512m"/> + <setupTasks xsi:type="setup:EclipseIniTask" requirements="//@eclipseVersions.1/@setupTasks.0" option="-Dorg.eclipse.emf.cdo.releng.setup.ide" value="=true" vm="true"/> + </eclipseVersions> +</setup:Configuration> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/model/Configuration.xmi b/plugins/org.eclipse.emf.cdo.releng.setup/model/Configuration.xmi deleted file mode 100644 index ac1486eda3..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup/model/Configuration.xmi +++ /dev/null @@ -1,162 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?> -<setup:Configuration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:setup="http://www.eclipse.org/CDO/releng/setup/1.0" xmlns:workingsets="http://www.eclipse.org/CDO/releng/workingsets/1.0"> - <projects name="EMF"> - <branches name="master" mspecFilePath="emf/releng/org.eclipse.emf.releng.setup.core/buckminster.mspec"> - <directorCalls> - <installableUnits id="org.eclipse.emf.sdk.feature.group"/> - <installableUnits id="org.eclipse.xsd.sdk.feature.group"/> - <installableUnits id="org.eclipse.emf.cdo.releng.version.feature.group"/> - <installableUnits id="org.eclipse.emf.ecoretools.sdk.feature.group"/> - <p2Repositories url="http://download.eclipse.org/releases/kepler"/> - <p2Repositories url="http://download.eclipse.org/modeling/emf/cdo/updates/integration"/> - </directorCalls> - <gitClones name="emf" remoteURI="ssh://git.eclipse.org:29418/emf/org.eclipse.emf" checkoutBranch="master"/> - <gitClones name="xsd" remoteURI="ssh://git.eclipse.org/gitroot/xsd/org.eclipse.xsd.git" checkoutBranch="master"/> - </branches> - <workingSetGroup> - <workingSets name="XSD Examples"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.xsd\.example[^-]*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.xsd\.cheatsheets"/> - </workingSets> - <workingSets name="XSD"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.xsd[^-]*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.mapping\.xsd2ecore[^-]*"/> - </workingSets> - <workingSets name="XSD Features"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.xsd.*-feature"/> - </workingSets> - <workingSets name="EMF ODA"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.oda[^-]*"/> - </workingSets> - <workingSets name="EMF ODA Features"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.oda.*-feature"/> - </workingSets> - <workingSets name="EMF Features"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf.*-feature"/> - </workingSets> - <workingSets name="EMF Releng"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.releng[^-]*"/> - </workingSets> - <workingSets name="EMF Examples"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.example[^-]*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.java[^-]*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.exporter\.html[^-]*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.activities[^-]*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cheatsheets[^-]*"/> - </workingSets> - <workingSets name="EMF Tests"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.test[^-]*"/> - </workingSets> - <workingSets name="EMF"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf[^-]*"/> - </workingSets> - </workingSetGroup> - </projects> - <projects name="CDO"> - <directorCalls> - <installableUnits id="org.eclipse.pde.api.tools.ee.feature.feature.group"/> - <installableUnits id="org.eclipse.emf.cdo.releng.launches.feature.group"/> - <installableUnits id="org.eclipse.emf.cdo.releng.manifests.feature.group"/> - <installableUnits id="org.eclipse.emf.cdo.releng.projectcopy.feature.group"/> - <installableUnits id="org.eclipse.emf.cdo.releng.relativepaths.feature.group"/> - <installableUnits id="org.eclipse.emf.cdo.releng.tasks.feature.group"/> - <installableUnits id="org.eclipse.emf.cdo.releng.version.feature.group"/> - <installableUnits id="org.eclipse.emf.cdo.releng.workingsets.feature.group"/> - <installableUnits id="org.eclipse.emf.sdk.feature.group"/> - <installableUnits id="org.eclipse.emf.ecoretools.sdk.feature.group"/> - <installableUnits id="org.eclipse.mylyn.github.feature.feature.group"/> - <installableUnits id="org.eclipse.mylyn.hudson.feature.group"/> - <installableUnits id="org.eclipse.mylyn.ide_feature.feature.group"/> - <installableUnits id="org.eclipse.mylyn.java_feature.feature.group"/> - <installableUnits id="org.eclipse.mylyn.pde_feature.feature.group"/> - <installableUnits id="org.eclipse.mylyn.team_feature.feature.group"/> - <installableUnits id="org.eclipse.mylyn.gerrit.feature.feature.group"/> - <installableUnits id="org.eclipse.mylyn_feature.feature.group"/> - <installableUnits id="org.eclipse.mylyn.bugzilla_feature.feature.group"/> - <installableUnits id="org.eclipse.mylyn.git.feature.group"/> - <installableUnits id="org.eclipse.egit.mylyn.feature.group"/> - <installableUnits id="org.eclipse.net4j.util.ui.feature.group"/> - <p2Repositories url="http://download.eclipse.org/releases/kepler"/> - <p2Repositories url="http://download.eclipse.org/modeling/emf/cdo/updates/integration"/> - <p2Repositories url="http://download.eclipse.org/mylyn/snapshots/weekly"/> - </directorCalls> - <toolPreferences key="instance/org.eclipse.ui.ide/EXIT_PROMPT_ON_CLOSE_LAST_WINDOW" value="false"/> - <toolPreferences key="instance/org.eclipse.jdt.launching/org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE" value="ignore"/> - <toolPreferences key="instance/org.eclipse.jdt.core/org.eclipse.jdt.core.compiler.problem.unclosedCloseable" value="ignore"/> - <toolPreferences key="instance/org.eclipse.pde/compilers.f.unresolved-features" value="2"/> - <branches name="master" apiBaseline="//@projects.1/@apiBaselines.0" mspecFilePath="cdo/plugins/org.eclipse.emf.cdo.releng/local.mspec" cloneVariableName="git.clone"> - <directorCalls> - <installableUnits id="org.eclipse.emf.sdk.feature.group"/> - <installableUnits id="org.eclipse.gmf.runtime.notation.sdk.feature.group"/> - <installableUnits id="org.eclipse.gmf.runtime.sdk.feature.group"/> - <installableUnits id="org.eclipse.gmf.sdk.feature.group"/> - <p2Repositories url="http://download.eclipse.org/releases/kepler"/> - </directorCalls> - <gitClones name="cdo" remoteURI="ssh://git.eclipse.org:29418/cdo/cdo" checkoutBranch="master"/> - </branches> - <branches name="4.2" apiBaseline="//@projects.1/@apiBaselines.0" mspecFilePath="cdo/plugins/org.eclipse.emf.cdo.releng/local.mspec" cloneVariableName="git.clone"> - <directorCalls> - <installableUnits id="org.eclipse.emf.sdk.feature.group"/> - <installableUnits id="org.eclipse.gmf.runtime.notation.sdk.feature.group"/> - <installableUnits id="org.eclipse.gmf.runtime.sdk.feature.group"/> - <installableUnits id="org.eclipse.gmf.sdk.feature.group"/> - <p2Repositories url="http://download.eclipse.org/releases/kepler"/> - </directorCalls> - <gitClones name="cdo" remoteURI="ssh://git.eclipse.org:29418/cdo/cdo" checkoutBranch="streams/4.2-maintenance"/> - </branches> - <apiBaselines version="4.2" zipLocation="http://sourceforge.net/projects/net4j/files/Baselines/emf-cdo-4.2-baseline.zip/download"/> - <workingSetGroup> - <workingSets name="Features"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo.*-feature"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j.*-feature"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.gastro.*-feature"/> - </workingSets> - <workingSets name="Infrastructure"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.releng\.promotion.*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.releng\.doc\.supplemental.*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="cdo\.www.*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.simrel\.build.*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="com\.ibm\.db2\.jcc.*"/> - </workingSets> - <workingSets name="Releng"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.releng.*"/> - </workingSets> - <workingSets name="CDO Dawn"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.dawn.*"/> - </workingSets> - <workingSets name="CDO Tests"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf.cdo\.tests.*"/> - </workingSets> - <workingSets name="CDO Examples"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.examples.*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.gastro.*"/> - </workingSets> - <workingSets name="CDO"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo.*"/> - </workingSets> - <workingSets name="Net4j DB"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j\.db.*"/> - </workingSets> - <workingSets name="Net4j Examples"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j\.examples.*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j\.buddies.*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j\.jms.*"/> - </workingSets> - <workingSets name="Net4j"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j.*"/> - </workingSets> - </workingSetGroup> - </projects> - <eclipseVersions version="3.8"> - <directorCall> - <installableUnits id="org.eclipse.sdk.ide"/> - <p2Repositories url="http://download.eclipse.org/eclipse/updates/3.8"/> - </directorCall> - </eclipseVersions> - <eclipseVersions version="4.3"> - <directorCall> - <installableUnits id="org.eclipse.sdk.ide"/> - <p2Repositories url="http://download.eclipse.org/releases/kepler"/> - </directorCall> - </eclipseVersions> -</setup:Configuration> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/model/setup-rcp.genmodel b/plugins/org.eclipse.emf.cdo.releng.setup/model/setup-rcp.genmodel new file mode 100644 index 0000000000..758303bdc1 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/model/setup-rcp.genmodel @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8"?> +<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" + xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.cdo.releng.setup/src" creationIcons="false" + editorDirectory="/org.eclipse.emf.cdo.releng.setup.editor.rcp/src" modelPluginID="org.eclipse.emf.cdo.releng.setup" + modelName="Setup" editorPluginClass="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorPlugin" + rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" codeFormatting="true" + testsDirectory="" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" + copyrightFields="false" editorPluginID="org.eclipse.emf.cdo.releng.setup.editor.rcp" + optimizedHasChildren="true" runtimeVersion="2.5" usedGenPackages="../../org.eclipse.emf.cdo.releng.workingsets/model/workingsets.genmodel#//workingsets" + runtimePlatform="RCP" importOrganizing="true"> + <foreignModel>setup.ecore</foreignModel> + <genPackages prefix="Setup" basePackage="org.eclipse.emf.cdo.releng" disposableProviderFactory="true" + presentationPackageSuffix="rcp.presentation" multipleEditorPages="false" ecorePackage="setup.ecore#/"> + <genDataTypes ecoreDataType="setup.ecore#//URI"/> + <genClasses ecoreClass="setup.ecore#//Preferences"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Preferences/userName"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Preferences/installFolder"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Preferences/gitPrefix"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Preferences/linkLocations"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//LinkLocation" labelFeature="#//setup/LinkLocation/path"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//LinkLocation/path"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//LinkLocation/name"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//ToolInstallation"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//ToolInstallation/directorCalls"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//ToolInstallation/toolPreferences"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//ToolPreference"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ToolPreference/key"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ToolPreference/value"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//EclipseVersion"> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//EclipseVersion/configuration"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//EclipseVersion/version"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//EclipseVersion/directorCall"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//DirectorCall"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//DirectorCall/installableUnits"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//DirectorCall/p2Repositories"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//InstallableUnit"> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//InstallableUnit/directorCall"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//InstallableUnit/id"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//P2Repository"> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//P2Repository/directorCall"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//P2Repository/url"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//Configuration"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Configuration/projects"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Configuration/eclipseVersions"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//Project"> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//Project/configuration"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Project/branches"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Project/name"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Project/apiBaselines"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Project/workingSetGroup"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//Branch"> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//Branch/project"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Branch/name"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Branch/gitClones"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference setup.ecore#//Branch/apiBaseline"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Branch/mspecFilePath"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Branch/cloneVariableName"/> + <genOperations ecoreOperation="setup.ecore#//Branch/isInstalled"> + <genParameters ecoreParameter="setup.ecore#//Branch/isInstalled/installFolder"/> + </genOperations> + <genOperations ecoreOperation="setup.ecore#//Branch/getURI"> + <genParameters ecoreParameter="setup.ecore#//Branch/getURI/installFolder"/> + </genOperations> + </genClasses> + <genClasses ecoreClass="setup.ecore#//ApiBaseline"> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//ApiBaseline/project"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ApiBaseline/version"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ApiBaseline/zipLocation"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//GitClone" labelFeature="#//setup/GitClone/remoteURI"> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//GitClone/branch"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitClone/name"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitClone/remoteURI"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitClone/checkoutBranch"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//Setup"> + <genFeatures notify="false" children="true" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference setup.ecore#//Setup/branch"/> + <genFeatures notify="false" children="true" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference setup.ecore#//Setup/eclipseVersion"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Setup/preferences"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Setup/updateLocations"/> + </genClasses> + </genPackages> +</genmodel:GenModel> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.ecore b/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.ecore index 2263c5de9e..7bbd146d6f 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.ecore +++ b/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.ecore @@ -1,49 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="setup" nsURI="http://www.eclipse.org/CDO/releng/setup/1.0" nsPrefix="setup"> - <eClassifiers xsi:type="ecore:EClass" name="Preferences" eSuperTypes="#//ToolInstallation"> - <eStructuralFeatures xsi:type="ecore:EAttribute" name="userName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - <eStructuralFeatures xsi:type="ecore:EAttribute" name="installFolder" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - <eStructuralFeatures xsi:type="ecore:EAttribute" name="gitPrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="linkLocations" upperBound="-1" - eType="#//LinkLocation" containment="true"/> - </eClassifiers> - <eClassifiers xsi:type="ecore:EClass" name="LinkLocation"> - <eStructuralFeatures xsi:type="ecore:EAttribute" name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - </eClassifiers> - <eClassifiers xsi:type="ecore:EClass" name="ToolInstallation" abstract="true"> - <eStructuralFeatures xsi:type="ecore:EReference" name="directorCalls" upperBound="-1" - eType="#//DirectorCall" containment="true"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="toolPreferences" upperBound="-1" - eType="#//ToolPreference" containment="true"/> - </eClassifiers> - <eClassifiers xsi:type="ecore:EClass" name="ToolPreference"> - <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - </eClassifiers> - <eClassifiers xsi:type="ecore:EClass" name="EclipseVersion"> + <eClassifiers xsi:type="ecore:EClass" name="EclipseVersion" eSuperTypes="#//ConfigurableItem"> <eStructuralFeatures xsi:type="ecore:EReference" name="configuration" eType="#//Configuration" eOpposite="#//Configuration/eclipseVersions"/> <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="directorCall" lowerBound="1" - eType="#//DirectorCall" containment="true"/> - </eClassifiers> - <eClassifiers xsi:type="ecore:EClass" name="DirectorCall"> - <eStructuralFeatures xsi:type="ecore:EReference" name="installableUnits" lowerBound="1" - upperBound="-1" eType="#//InstallableUnit" containment="true" eOpposite="#//InstallableUnit/directorCall"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="p2Repositories" lowerBound="1" - upperBound="-1" eType="#//P2Repository" containment="true" eOpposite="#//P2Repository/directorCall"/> - </eClassifiers> - <eClassifiers xsi:type="ecore:EClass" name="InstallableUnit"> - <eStructuralFeatures xsi:type="ecore:EReference" name="directorCall" eType="#//DirectorCall" - eOpposite="#//DirectorCall/installableUnits"/> - <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - </eClassifiers> - <eClassifiers xsi:type="ecore:EClass" name="P2Repository"> - <eStructuralFeatures xsi:type="ecore:EReference" name="directorCall" eType="#//DirectorCall" - eOpposite="#//DirectorCall/p2Repositories"/> - <eStructuralFeatures xsi:type="ecore:EAttribute" name="url" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Configuration"> <eStructuralFeatures xsi:type="ecore:EReference" name="projects" lowerBound="1" @@ -51,55 +12,143 @@ <eStructuralFeatures xsi:type="ecore:EReference" name="eclipseVersions" lowerBound="1" upperBound="-1" eType="#//EclipseVersion" containment="true" eOpposite="#//EclipseVersion/configuration"/> </eClassifiers> - <eClassifiers xsi:type="ecore:EClass" name="Project" eSuperTypes="#//ToolInstallation"> + <eClassifiers xsi:type="ecore:EClass" name="ConfigurableItem" abstract="true" eSuperTypes="#//SetupTaskContainer"/> + <eClassifiers xsi:type="ecore:EClass" name="Project" eSuperTypes="#//ConfigurableItem"> <eStructuralFeatures xsi:type="ecore:EReference" name="configuration" eType="#//Configuration" - eOpposite="#//Configuration/projects"/> + transient="true" eOpposite="#//Configuration/projects"/> <eStructuralFeatures xsi:type="ecore:EReference" name="branches" lowerBound="1" upperBound="-1" eType="#//Branch" containment="true" eOpposite="#//Branch/project"/> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="apiBaselines" upperBound="-1" - eType="#//ApiBaseline" containment="true" eOpposite="#//ApiBaseline/project"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="workingSetGroup" eType="ecore:EClass ../../org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecore#//WorkingSetGroup" - containment="true"/> </eClassifiers> - <eClassifiers xsi:type="ecore:EClass" name="Branch" eSuperTypes="#//ToolInstallation"> - <eOperations name="isInstalled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> - <eParameters name="installFolder" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - </eOperations> - <eOperations name="getURI" eType="#//URI"> - <eParameters name="installFolder" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - </eOperations> + <eClassifiers xsi:type="ecore:EClass" name="Branch" eSuperTypes="#//ConfigurableItem"> <eStructuralFeatures xsi:type="ecore:EReference" name="project" eType="#//Project" eOpposite="#//Project/branches"/> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="gitClones" lowerBound="1" - upperBound="-1" eType="#//GitClone" containment="true" eOpposite="#//GitClone/branch"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="apiBaseline" eType="#//ApiBaseline"/> - <eStructuralFeatures xsi:type="ecore:EAttribute" name="mspecFilePath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - <eStructuralFeatures xsi:type="ecore:EAttribute" name="cloneVariableName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> </eClassifiers> - <eClassifiers xsi:type="ecore:EClass" name="ApiBaseline"> - <eStructuralFeatures xsi:type="ecore:EReference" name="project" eType="#//Project" - eOpposite="#//Project/apiBaselines"/> + <eClassifiers xsi:type="ecore:EClass" name="Preferences" eSuperTypes="#//SetupTaskContainer"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="userName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="installFolder" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="gitPrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Setup"> + <eOperations name="getSetupTasks" upperBound="-1" eType="#//SetupTask"> + <eParameters name="filterRestrictions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eParameters name="trigger" eType="#//Trigger"/> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EReference" name="branch" lowerBound="1" + eType="#//Branch"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eclipseVersion" lowerBound="1" + eType="#//EclipseVersion"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="preferences" lowerBound="1" + eType="#//Preferences"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="SetupTask" abstract="true"> + <eOperations name="requires" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> + <eParameters name="setupTask" eType="#//SetupTask"/> + </eOperations> + <eOperations name="getValidTriggers" lowerBound="1" eType="#//TriggerSet"/> + <eOperations name="getTriggers" lowerBound="1" eType="#//TriggerSet"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="requirements" upperBound="-1" + eType="#//SetupTask"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="restrictions" upperBound="-1" + eType="#//ConfigurableItem"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="scope" eType="#//SetupTaskScope" + changeable="false" volatile="true" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="excludedTriggers" lowerBound="1" + eType="#//TriggerSet" defaultValueLiteral=""/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="SetupTaskContainer" abstract="true"> + <eStructuralFeatures xsi:type="ecore:EReference" name="setupTasks" upperBound="-1" + eType="#//SetupTask" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="CompoundSetupTask" eSuperTypes="#//SetupTask #//SetupTaskContainer"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OneTimeSetupTask" abstract="true" eSuperTypes="#//SetupTask"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EclipseIniTask" eSuperTypes="#//SetupTask"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="option" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="vm" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="LinkLocationTask" eSuperTypes="#//SetupTask"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="P2Task" eSuperTypes="#//SetupTask"> + <eStructuralFeatures xsi:type="ecore:EReference" name="p2Repositories" lowerBound="1" + upperBound="-1" eType="#//P2Repository" containment="true" eOpposite="#//P2Repository/p2Task"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="installableUnits" lowerBound="1" + upperBound="-1" eType="#//InstallableUnit" containment="true" eOpposite="#//InstallableUnit/p2Task"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="InstallableUnit"> + <eStructuralFeatures xsi:type="ecore:EReference" name="p2Task" eType="#//P2Task" + eOpposite="#//P2Task/installableUnits"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="P2Repository"> + <eStructuralFeatures xsi:type="ecore:EReference" name="p2Task" eType="#//P2Task" + eOpposite="#//P2Task/p2Repositories"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="url" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="BuckminsterImportTask" eSuperTypes="#//SetupTask"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="mspec" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetPlatform" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="bundlePool" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ApiBaselineTask" eSuperTypes="#//SetupTask"> <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> <eStructuralFeatures xsi:type="ecore:EAttribute" name="zipLocation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> </eClassifiers> - <eClassifiers xsi:type="ecore:EClass" name="GitClone"> - <eStructuralFeatures xsi:type="ecore:EReference" name="branch" eType="#//Branch" - eOpposite="#//Branch/gitClones"/> + <eClassifiers xsi:type="ecore:EClass" name="GitCloneTask" eSuperTypes="#//SetupTask"> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="remoteName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + defaultValueLiteral="origin"/> <eStructuralFeatures xsi:type="ecore:EAttribute" name="remoteURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> <eStructuralFeatures xsi:type="ecore:EAttribute" name="checkoutBranch" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> </eClassifiers> - <eClassifiers xsi:type="ecore:EClass" name="Setup"> - <eStructuralFeatures xsi:type="ecore:EReference" name="branch" lowerBound="1" - eType="#//Branch"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="eclipseVersion" lowerBound="1" - eType="#//EclipseVersion"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="preferences" eType="#//Preferences" + <eClassifiers xsi:type="ecore:EClass" name="EclipsePreferenceTask" eSuperTypes="#//SetupTask"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="StringVariableTask" eSuperTypes="#//SetupTask"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="WorkingSetTask" eSuperTypes="#//SetupTask"> + <eStructuralFeatures xsi:type="ecore:EReference" name="workingSets" upperBound="-1" + eType="ecore:EClass ../../org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecore#//WorkingSet" containment="true"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="updateLocations" upperBound="-1" - eType="#//P2Repository" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="SetupTaskScope"> + <eLiterals name="None"/> + <eLiterals name="Configuration" value="1"/> + <eLiterals name="Project" value="2"/> + <eLiterals name="Branch" value="3"/> + <eLiterals name="User" value="4"/> </eClassifiers> <eClassifiers xsi:type="ecore:EDataType" name="URI" instanceClassName="org.eclipse.emf.common.util.URI"/> + <eClassifiers xsi:type="ecore:EDataType" name="Exception" instanceClassName="java.lang.Exception"/> + <eClassifiers xsi:type="ecore:EClass" name="ResourceCopyTask" eSuperTypes="#//SetupTask"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="sourceURL" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetURL" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="TextModifyTask" eSuperTypes="#//SetupTask"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="url" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="modifications" upperBound="-1" + eType="#//TextModification" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="TextModification"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="pattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="substitutions" upperBound="-1" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="TriggerSet" instanceTypeName="java.util.Set<org.eclipse.emf.cdo.releng.setup.Trigger>"/> + <eClassifiers xsi:type="ecore:EEnum" name="Trigger"> + <eLiterals name="BOOTSTRAP"/> + <eLiterals name="STARTUP" value="1"/> + <eLiterals name="MANUAL" value="2"/> + </eClassifiers> </ecore:EPackage> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.ecorediag b/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.ecorediag index e673ce5331..17b2af6281 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.ecorediag +++ b/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.ecorediag @@ -12,9 +12,9 @@ <styles xmi:type="notation:SortingStyle" xmi:id="_zo6B4uoIEeKpRf481yfX-g"/> <styles xmi:type="notation:FilteringStyle" xmi:id="_zo6B4-oIEeKpRf481yfX-g"/> </children> - <styles xmi:type="notation:ShapeStyle" xmi:id="_zoytIeoIEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <styles xmi:type="notation:ShapeStyle" xmi:id="_zoytIeoIEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13420443" lineColor="8421504"/> <element xmi:type="ecore:EClass" href="setup.ecore#//Configuration"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zoytIuoIEeKpRf481yfX-g" x="145" y="205" width="127"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zoytIuoIEeKpRf481yfX-g" x="190" y="348" width="127"/> </children> <children xmi:type="notation:Node" xmi:id="_2Y42MOoIEeKpRf481yfX-g" type="1001"> <children xmi:type="notation:Node" xmi:id="_2Y5dQOoIEeKpRf481yfX-g" type="4001"/> @@ -32,9 +32,9 @@ <styles xmi:type="notation:SortingStyle" xmi:id="_2Y6EUuoIEeKpRf481yfX-g"/> <styles xmi:type="notation:FilteringStyle" xmi:id="_2Y6EU-oIEeKpRf481yfX-g"/> </children> - <styles xmi:type="notation:ShapeStyle" xmi:id="_2Y42MeoIEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <styles xmi:type="notation:ShapeStyle" xmi:id="_2Y42MeoIEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13420443" lineColor="8421504"/> <element xmi:type="ecore:EClass" href="setup.ecore#//Project"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2Y42MuoIEeKpRf481yfX-g" x="355" y="201"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2Y42MuoIEeKpRf481yfX-g" x="458" y="344"/> </children> <children xmi:type="notation:Node" xmi:id="_3TdBAOoIEeKpRf481yfX-g" type="1001"> <children xmi:type="notation:Node" xmi:id="_3TdoEOoIEeKpRf481yfX-g" type="4001"/> @@ -43,14 +43,6 @@ <element xmi:type="ecore:EAttribute" href="setup.ecore#//Branch/name"/> <layoutConstraint xmi:type="notation:Location" xmi:id="_x9B5ceoJEeKpRf481yfX-g"/> </children> - <children xmi:type="notation:Node" xmi:id="_L1ERoOoOEeKpRf481yfX-g" type="2001"> - <element xmi:type="ecore:EAttribute" href="setup.ecore#//Branch/mspecFilePath"/> - <layoutConstraint xmi:type="notation:Location" xmi:id="_L1ERoeoOEeKpRf481yfX-g"/> - </children> - <children xmi:type="notation:Node" xmi:id="_8ekP8PUJEeK09qwveWBYrQ" type="2001"> - <element xmi:type="ecore:EAttribute" href="setup.ecore#//Branch/cloneVariableName"/> - <layoutConstraint xmi:type="notation:Location" xmi:id="_8ekP8fUJEeK09qwveWBYrQ"/> - </children> <styles xmi:type="notation:DrawerStyle" xmi:id="_3TdoEuoIEeKpRf481yfX-g"/> <styles xmi:type="notation:SortingStyle" xmi:id="_3TdoE-oIEeKpRf481yfX-g"/> <styles xmi:type="notation:FilteringStyle" xmi:id="_3TdoFOoIEeKpRf481yfX-g"/> @@ -60,9 +52,9 @@ <styles xmi:type="notation:SortingStyle" xmi:id="_3TePIuoIEeKpRf481yfX-g"/> <styles xmi:type="notation:FilteringStyle" xmi:id="_3TePI-oIEeKpRf481yfX-g"/> </children> - <styles xmi:type="notation:ShapeStyle" xmi:id="_3TdBAeoIEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <styles xmi:type="notation:ShapeStyle" xmi:id="_3TdBAeoIEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13420443" lineColor="8421504"/> <element xmi:type="ecore:EClass" href="setup.ecore#//Branch"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3TdBAuoIEeKpRf481yfX-g" x="580" y="184"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3TdBAuoIEeKpRf481yfX-g" x="716" y="344"/> </children> <children xmi:type="notation:Node" xmi:id="_RhEkcOoJEeKpRf481yfX-g" type="1001"> <children xmi:type="notation:Node" xmi:id="_RhFLgeoJEeKpRf481yfX-g" type="4001"/> @@ -76,9 +68,9 @@ <styles xmi:type="notation:SortingStyle" xmi:id="_RhFyluoJEeKpRf481yfX-g"/> <styles xmi:type="notation:FilteringStyle" xmi:id="_RhFyl-oJEeKpRf481yfX-g"/> </children> - <styles xmi:type="notation:ShapeStyle" xmi:id="_RhEkceoJEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> - <element xmi:type="ecore:EClass" href="setup.ecore#//ToolInstallation"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhFLgOoJEeKpRf481yfX-g" x="475" y="35" width="122"/> + <styles xmi:type="notation:ShapeStyle" xmi:id="_RhEkceoJEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="8047085" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="setup.ecore#//SetupTaskContainer"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhFLgOoJEeKpRf481yfX-g" x="675" y="15" width="158"/> </children> <children xmi:type="notation:Node" xmi:id="_678VMOoJEeKpRf481yfX-g" type="1001"> <children xmi:type="notation:Node" xmi:id="_6788QOoJEeKpRf481yfX-g" type="4001"/> @@ -96,9 +88,9 @@ <styles xmi:type="notation:SortingStyle" xmi:id="_679jUuoJEeKpRf481yfX-g"/> <styles xmi:type="notation:FilteringStyle" xmi:id="_679jU-oJEeKpRf481yfX-g"/> </children> - <styles xmi:type="notation:ShapeStyle" xmi:id="_678VMeoJEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <styles xmi:type="notation:ShapeStyle" xmi:id="_678VMeoJEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13420443" lineColor="8421504"/> <element xmi:type="ecore:EClass" href="setup.ecore#//EclipseVersion"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_678VMuoJEeKpRf481yfX-g" x="120" y="345" width="178" height="68"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_678VMuoJEeKpRf481yfX-g" x="165" y="477" width="178" height="68"/> </children> <children xmi:type="notation:Node" xmi:id="_PhLMcOoNEeKpRf481yfX-g" type="1001"> <children xmi:type="notation:Node" xmi:id="_PhLzgOoNEeKpRf481yfX-g" type="4001"/> @@ -112,9 +104,9 @@ <styles xmi:type="notation:SortingStyle" xmi:id="_PhMakuoNEeKpRf481yfX-g"/> <styles xmi:type="notation:FilteringStyle" xmi:id="_PhMak-oNEeKpRf481yfX-g"/> </children> - <styles xmi:type="notation:ShapeStyle" xmi:id="_PhLMceoNEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> - <element xmi:type="ecore:EClass" href="setup.ecore#//DirectorCall"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PhLMcuoNEeKpRf481yfX-g" x="120" y="485" width="118" height="61"/> + <styles xmi:type="notation:ShapeStyle" xmi:id="_PhLMceoNEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="setup.ecore#//P2Task"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PhLMcuoNEeKpRf481yfX-g" x="194" y="783" width="118" height="43"/> </children> <children xmi:type="notation:Node" xmi:id="_mgNekOoOEeKpRf481yfX-g" type="1001"> <children xmi:type="notation:Node" xmi:id="_mgOFoOoOEeKpRf481yfX-g" type="4001"/> @@ -132,9 +124,9 @@ <styles xmi:type="notation:SortingStyle" xmi:id="_mgOstuoOEeKpRf481yfX-g"/> <styles xmi:type="notation:FilteringStyle" xmi:id="_mgOst-oOEeKpRf481yfX-g"/> </children> - <styles xmi:type="notation:ShapeStyle" xmi:id="_mgNekeoOEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <styles xmi:type="notation:ShapeStyle" xmi:id="_mgNekeoOEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="8047085" lineColor="8421504"/> <element xmi:type="ecore:EClass" href="setup.ecore#//InstallableUnit"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mgNekuoOEeKpRf481yfX-g" x="47" y="620" width="121"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mgNekuoOEeKpRf481yfX-g" x="60" y="895" width="121"/> </children> <children xmi:type="notation:Node" xmi:id="_q3yi0OoOEeKpRf481yfX-g" type="1001"> <children xmi:type="notation:Node" xmi:id="_q3zJ4OoOEeKpRf481yfX-g" type="4001"/> @@ -152,19 +144,19 @@ <styles xmi:type="notation:SortingStyle" xmi:id="_q3zw8uoOEeKpRf481yfX-g"/> <styles xmi:type="notation:FilteringStyle" xmi:id="_q3zw8-oOEeKpRf481yfX-g"/> </children> - <styles xmi:type="notation:ShapeStyle" xmi:id="_q3yi0eoOEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <styles xmi:type="notation:ShapeStyle" xmi:id="_q3yi0eoOEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="8047085" lineColor="8421504"/> <element xmi:type="ecore:EClass" href="setup.ecore#//P2Repository"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q3yi0uoOEeKpRf481yfX-g" x="190" y="620"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q3yi0uoOEeKpRf481yfX-g" x="330" y="895"/> </children> <children xmi:type="notation:Node" xmi:id="_62v54OoOEeKpRf481yfX-g" type="1001"> <children xmi:type="notation:Node" xmi:id="_62wg8OoOEeKpRf481yfX-g" type="4001"/> <children xmi:type="notation:Node" xmi:id="_62wg8eoOEeKpRf481yfX-g" type="5001"> <children xmi:type="notation:Node" xmi:id="_U2qjEOoQEeKpRf481yfX-g" type="2001"> - <element xmi:type="ecore:EAttribute" href="setup.ecore#//ApiBaseline/version"/> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//ApiBaselineTask/version"/> <layoutConstraint xmi:type="notation:Location" xmi:id="_U2qjEeoQEeKpRf481yfX-g"/> </children> <children xmi:type="notation:Node" xmi:id="_XnMJ8OoQEeKpRf481yfX-g" type="2001"> - <element xmi:type="ecore:EAttribute" href="setup.ecore#//ApiBaseline/zipLocation"/> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//ApiBaselineTask/zipLocation"/> <layoutConstraint xmi:type="notation:Location" xmi:id="_XnMJ8eoQEeKpRf481yfX-g"/> </children> <styles xmi:type="notation:DrawerStyle" xmi:id="_62wg8uoOEeKpRf481yfX-g"/> @@ -176,37 +168,9 @@ <styles xmi:type="notation:SortingStyle" xmi:id="_62xIAuoOEeKpRf481yfX-g"/> <styles xmi:type="notation:FilteringStyle" xmi:id="_62xIA-oOEeKpRf481yfX-g"/> </children> - <styles xmi:type="notation:ShapeStyle" xmi:id="_62v54eoOEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> - <element xmi:type="ecore:EClass" href="setup.ecore#//ApiBaseline"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_62v54uoOEeKpRf481yfX-g" x="345" y="345"/> - </children> - <children xmi:type="notation:Node" xmi:id="_H-Oz4OoXEeKpRf481yfX-g" type="1001"> - <children xmi:type="notation:Node" xmi:id="_H-QCAOoXEeKpRf481yfX-g" type="4001"/> - <children xmi:type="notation:Node" xmi:id="_H-QpEOoXEeKpRf481yfX-g" type="5001"> - <children xmi:type="notation:Node" xmi:id="_u68gIOoXEeKpRf481yfX-g" type="2001"> - <element xmi:type="ecore:EAttribute" href="setup.ecore#//GitClone/name"/> - <layoutConstraint xmi:type="notation:Location" xmi:id="_u68gIeoXEeKpRf481yfX-g"/> - </children> - <children xmi:type="notation:Node" xmi:id="_OYL_kOoXEeKpRf481yfX-g" type="2001"> - <element xmi:type="ecore:EAttribute" href="setup.ecore#//GitClone/remoteURI"/> - <layoutConstraint xmi:type="notation:Location" xmi:id="_OYMmoOoXEeKpRf481yfX-g"/> - </children> - <children xmi:type="notation:Node" xmi:id="_eH1IQOoXEeKpRf481yfX-g" type="2001"> - <element xmi:type="ecore:EAttribute" href="setup.ecore#//GitClone/checkoutBranch"/> - <layoutConstraint xmi:type="notation:Location" xmi:id="_eH1IQeoXEeKpRf481yfX-g"/> - </children> - <styles xmi:type="notation:DrawerStyle" xmi:id="_H-QpEeoXEeKpRf481yfX-g"/> - <styles xmi:type="notation:SortingStyle" xmi:id="_H-QpEuoXEeKpRf481yfX-g"/> - <styles xmi:type="notation:FilteringStyle" xmi:id="_H-QpE-oXEeKpRf481yfX-g"/> - </children> - <children xmi:type="notation:Node" xmi:id="_H-QpFOoXEeKpRf481yfX-g" type="5002"> - <styles xmi:type="notation:DrawerStyle" xmi:id="_H-QpFeoXEeKpRf481yfX-g"/> - <styles xmi:type="notation:SortingStyle" xmi:id="_H-QpFuoXEeKpRf481yfX-g"/> - <styles xmi:type="notation:FilteringStyle" xmi:id="_H-QpF-oXEeKpRf481yfX-g"/> - </children> - <styles xmi:type="notation:ShapeStyle" xmi:id="_H-Oz4eoXEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> - <element xmi:type="ecore:EClass" href="setup.ecore#//GitClone"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H-Oz4uoXEeKpRf481yfX-g" x="650" y="375" width="190" height="93"/> + <styles xmi:type="notation:ShapeStyle" xmi:id="_62v54eoOEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="setup.ecore#//ApiBaselineTask"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_62v54uoOEeKpRf481yfX-g" x="975" y="915"/> </children> <children xmi:type="notation:Node" xmi:id="_bOTg8OoYEeKpRf481yfX-g" type="1001"> <children xmi:type="notation:Node" xmi:id="_bOUIAOoYEeKpRf481yfX-g" type="4001"/> @@ -232,9 +196,9 @@ <styles xmi:type="notation:SortingStyle" xmi:id="_bOUIB-oYEeKpRf481yfX-g"/> <styles xmi:type="notation:FilteringStyle" xmi:id="_bOUICOoYEeKpRf481yfX-g"/> </children> - <styles xmi:type="notation:ShapeStyle" xmi:id="_bOTg8eoYEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <styles xmi:type="notation:ShapeStyle" xmi:id="_bOTg8eoYEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13420443" lineColor="8421504"/> <element xmi:type="ecore:EClass" href="setup.ecore#//Preferences"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bOTg8uoYEeKpRf481yfX-g" x="1055" y="188"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bOTg8uoYEeKpRf481yfX-g" x="984" y="213"/> </children> <children xmi:type="notation:Node" xmi:id="_tV-Q8OoYEeKpRf481yfX-g" type="1001"> <children xmi:type="notation:Node" xmi:id="_tV_fEOoYEeKpRf481yfX-g" type="4001"/> @@ -244,23 +208,27 @@ <styles xmi:type="notation:FilteringStyle" xmi:id="_tV_fFOoYEeKpRf481yfX-g"/> </children> <children xmi:type="notation:Node" xmi:id="_tWAGIOoYEeKpRf481yfX-g" type="5002"> + <children xmi:type="notation:Node" xmi:id="_T0QX4AW8EeOw6Pg8FrULkw" type="2002"> + <element xmi:type="ecore:EOperation" href="setup.ecore#//Setup/getSetupTasks"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_T0QX4QW8EeOw6Pg8FrULkw"/> + </children> <styles xmi:type="notation:DrawerStyle" xmi:id="_tWAGIeoYEeKpRf481yfX-g"/> <styles xmi:type="notation:SortingStyle" xmi:id="_tWAGIuoYEeKpRf481yfX-g"/> <styles xmi:type="notation:FilteringStyle" xmi:id="_tWAGI-oYEeKpRf481yfX-g"/> </children> - <styles xmi:type="notation:ShapeStyle" xmi:id="_tV-4AOoYEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <styles xmi:type="notation:ShapeStyle" xmi:id="_tV-4AOoYEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13420443" lineColor="8421504"/> <element xmi:type="ecore:EClass" href="setup.ecore#//Setup"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tV-4AeoYEeKpRf481yfX-g" x="837" y="205"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tV-4AeoYEeKpRf481yfX-g" x="621" y="485"/> </children> <children xmi:type="notation:Node" xmi:id="_LJQ64PTrEeKROP7mUifaFQ" type="1001"> <children xmi:type="notation:Node" xmi:id="_LJXBgPTrEeKROP7mUifaFQ" type="4001"/> <children xmi:type="notation:Node" xmi:id="_LJXBgfTrEeKROP7mUifaFQ" type="5001"> <children xmi:type="notation:Node" xmi:id="_Ne7KsPTrEeKROP7mUifaFQ" type="2001"> - <element xmi:type="ecore:EAttribute" href="setup.ecore#//ToolPreference/key"/> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//EclipsePreferenceTask/key"/> <layoutConstraint xmi:type="notation:Location" xmi:id="_Ne7KsfTrEeKROP7mUifaFQ"/> </children> <children xmi:type="notation:Node" xmi:id="_QdmiUPTrEeKROP7mUifaFQ" type="2001"> - <element xmi:type="ecore:EAttribute" href="setup.ecore#//ToolPreference/value"/> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//EclipsePreferenceTask/value"/> <layoutConstraint xmi:type="notation:Location" xmi:id="_QdmiUfTrEeKROP7mUifaFQ"/> </children> <styles xmi:type="notation:DrawerStyle" xmi:id="_LJXBgvTrEeKROP7mUifaFQ"/> @@ -272,19 +240,19 @@ <styles xmi:type="notation:SortingStyle" xmi:id="_LJXBh_TrEeKROP7mUifaFQ"/> <styles xmi:type="notation:FilteringStyle" xmi:id="_LJXBiPTrEeKROP7mUifaFQ"/> </children> - <styles xmi:type="notation:ShapeStyle" xmi:id="_LJQ64fTrEeKROP7mUifaFQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> - <element xmi:type="ecore:EClass" href="setup.ecore#//ToolPreference"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LJQ64vTrEeKROP7mUifaFQ" x="735" y="23"/> + <styles xmi:type="notation:ShapeStyle" xmi:id="_LJQ64fTrEeKROP7mUifaFQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="setup.ecore#//EclipsePreferenceTask"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LJQ64vTrEeKROP7mUifaFQ" x="735" y="945" width="164"/> </children> <children xmi:type="notation:Node" xmi:id="_iK-h0PdCEeKAgoQldAmgzQ" type="1001"> <children xmi:type="notation:Node" xmi:id="_iK-h0_dCEeKAgoQldAmgzQ" type="4001"/> <children xmi:type="notation:Node" xmi:id="_iK-h1PdCEeKAgoQldAmgzQ" type="5001"> <children xmi:type="notation:Node" xmi:id="_k60zQPdCEeKAgoQldAmgzQ" type="2001"> - <element xmi:type="ecore:EAttribute" href="setup.ecore#//LinkLocation/path"/> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//LinkLocationTask/path"/> <layoutConstraint xmi:type="notation:Location" xmi:id="_k60zQfdCEeKAgoQldAmgzQ"/> </children> <children xmi:type="notation:Node" xmi:id="_T7AxQPdEEeKAgoQldAmgzQ" type="2001"> - <element xmi:type="ecore:EAttribute" href="setup.ecore#//LinkLocation/name"/> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//LinkLocationTask/name"/> <layoutConstraint xmi:type="notation:Location" xmi:id="_T7AxQfdEEeKAgoQldAmgzQ"/> </children> <styles xmi:type="notation:DrawerStyle" xmi:id="_iK-h1fdCEeKAgoQldAmgzQ"/> @@ -296,28 +264,361 @@ <styles xmi:type="notation:SortingStyle" xmi:id="_iLIS0vdCEeKAgoQldAmgzQ"/> <styles xmi:type="notation:FilteringStyle" xmi:id="_iLIS0_dCEeKAgoQldAmgzQ"/> </children> - <styles xmi:type="notation:ShapeStyle" xmi:id="_iK-h0fdCEeKAgoQldAmgzQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> - <element xmi:type="ecore:EClass" href="setup.ecore#//LinkLocation"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iK-h0vdCEeKAgoQldAmgzQ" x="1077" y="370"/> + <styles xmi:type="notation:ShapeStyle" xmi:id="_iK-h0fdCEeKAgoQldAmgzQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="setup.ecore#//LinkLocationTask"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iK-h0vdCEeKAgoQldAmgzQ" x="410" y="783" width="138"/> + </children> + <children xmi:type="notation:Node" xmi:id="_7oaMoAVzEeORNPhE9cWxTA" type="1001"> + <children xmi:type="notation:Node" xmi:id="_7oco4AVzEeORNPhE9cWxTA" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_7odP8AVzEeORNPhE9cWxTA" type="5001"> + <children xmi:type="notation:Node" xmi:id="_c5vIkAfTEeOppfhSm9mbUA" type="2001"> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//SetupTask/scope"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_c5vIkQfTEeOppfhSm9mbUA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_x1pqMDYoEeO8Ub-p5y_fsQ" type="2001"> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//SetupTask/excludedTriggers"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_x1pqMTYoEeO8Ub-p5y_fsQ"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_7odP8QVzEeORNPhE9cWxTA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_7odP8gVzEeORNPhE9cWxTA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_7odP8wVzEeORNPhE9cWxTA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_7od3AAVzEeORNPhE9cWxTA" type="5002"> + <children xmi:type="notation:Node" xmi:id="_wRjnQAZyEeOppfhSm9mbUA" type="2002"> + <element xmi:type="ecore:EOperation" href="setup.ecore#//SetupTask/requires"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_wRjnQQZyEeOppfhSm9mbUA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_VUIm8DYnEeO8Ub-p5y_fsQ" type="2002"> + <element xmi:type="ecore:EOperation" href="setup.ecore#//SetupTask/getValidTriggers"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_VUIm8TYnEeO8Ub-p5y_fsQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_IGz0kDYoEeO8Ub-p5y_fsQ" type="2002"> + <element xmi:type="ecore:EOperation" href="setup.ecore#//SetupTask/getTriggers"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_IGz0kTYoEeO8Ub-p5y_fsQ"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_7od3AQVzEeORNPhE9cWxTA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_7od3AgVzEeORNPhE9cWxTA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_7od3AwVzEeORNPhE9cWxTA"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_7oaMoQVzEeORNPhE9cWxTA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="setup.ecore#//SetupTask"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7oaMogVzEeORNPhE9cWxTA" x="240" width="303" height="153"/> + </children> + <children xmi:type="notation:Node" xmi:id="_JIhT8AV6EeORNPhE9cWxTA" type="1001"> + <children xmi:type="notation:Node" xmi:id="_JIiiEAV6EeORNPhE9cWxTA" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_JIjJIAV6EeORNPhE9cWxTA" type="5001"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_JIjJIQV6EeORNPhE9cWxTA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_JIjJIgV6EeORNPhE9cWxTA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_JIjJIwV6EeORNPhE9cWxTA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_JIjwMAV6EeORNPhE9cWxTA" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_JIjwMQV6EeORNPhE9cWxTA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_JIjwMgV6EeORNPhE9cWxTA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_JIjwMwV6EeORNPhE9cWxTA"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_JIhT8QV6EeORNPhE9cWxTA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="setup.ecore#//WorkingSetTask"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JIhT8gV6EeORNPhE9cWxTA" x="925" y="701" width="127"/> + </children> + <children xmi:type="notation:Node" xmi:id="_-8kV8AV8EeORNPhE9cWxTA" type="1001"> + <children xmi:type="notation:Node" xmi:id="_-8nZQAV8EeORNPhE9cWxTA" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_-8nZQQV8EeORNPhE9cWxTA" type="5001"> + <children xmi:type="notation:Node" xmi:id="_cA3yoAV9EeORNPhE9cWxTA" type="2001"> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//CompoundSetupTask/name"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_cA3yoQV9EeORNPhE9cWxTA"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_-8nZQgV8EeORNPhE9cWxTA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_-8nZQwV8EeORNPhE9cWxTA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_-8nZRAV8EeORNPhE9cWxTA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_-8oAUAV8EeORNPhE9cWxTA" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_-8oAUQV8EeORNPhE9cWxTA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_-8oAUgV8EeORNPhE9cWxTA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_-8oAUwV8EeORNPhE9cWxTA"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_-8k9AAV8EeORNPhE9cWxTA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="setup.ecore#//CompoundSetupTask"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-8k9AQV8EeORNPhE9cWxTA" x="390" y="180" width="171"/> + </children> + <children xmi:type="notation:Node" xmi:id="__XTX4AWBEeORNPhE9cWxTA" type="1001"> + <children xmi:type="notation:Node" xmi:id="__XdI4AWBEeORNPhE9cWxTA" type="4001"/> + <children xmi:type="notation:Node" xmi:id="__XdI4QWBEeORNPhE9cWxTA" type="5001"> + <styles xmi:type="notation:DrawerStyle" xmi:id="__XdI4gWBEeORNPhE9cWxTA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="__XdI4wWBEeORNPhE9cWxTA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="__XdI5AWBEeORNPhE9cWxTA"/> + </children> + <children xmi:type="notation:Node" xmi:id="__XdI5QWBEeORNPhE9cWxTA" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="__XdI5gWBEeORNPhE9cWxTA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="__XdI5wWBEeORNPhE9cWxTA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="__XdI6AWBEeORNPhE9cWxTA"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="__XTX4QWBEeORNPhE9cWxTA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13420443" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="setup.ecore#//ConfigurableItem"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="__XTX4gWBEeORNPhE9cWxTA" x="615" y="240"/> + </children> + <children xmi:type="notation:Node" xmi:id="_V2XO0AWWEeOw6Pg8FrULkw" type="1001"> + <children xmi:type="notation:Node" xmi:id="_V2aSIAWWEeOw6Pg8FrULkw" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_V2bgQAWWEeOw6Pg8FrULkw" type="5001"> + <children xmi:type="notation:Node" xmi:id="_L1ERoOoOEeKpRf481yfX-g" type="2001"> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//BuckminsterImportTask/mspec"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_L1ERoeoOEeKpRf481yfX-g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_MVAjgAmrEeOuXPWwsMY9fA" type="2001"> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//BuckminsterImportTask/targetPlatform"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_MVAjgQmrEeOuXPWwsMY9fA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_One8cAmrEeOuXPWwsMY9fA" type="2001"> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//BuckminsterImportTask/bundlePool"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_One8cQmrEeOuXPWwsMY9fA"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_V2cHUAWWEeOw6Pg8FrULkw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_V2cHUQWWEeOw6Pg8FrULkw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_V2cHUgWWEeOw6Pg8FrULkw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_V2dVcAWWEeOw6Pg8FrULkw" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_V2dVcQWWEeOw6Pg8FrULkw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_V2dVcgWWEeOw6Pg8FrULkw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_V2dVcwWWEeOw6Pg8FrULkw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_V2XO0QWWEeOw6Pg8FrULkw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="setup.ecore#//BuckminsterImportTask"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V2XO0gWWEeOw6Pg8FrULkw" x="713" y="680" width="173"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QeGy0AZpEeO9d-kMVrgNew" type="1001"> + <children xmi:type="notation:Node" xmi:id="_QeJ2IAZpEeO9d-kMVrgNew" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_QeLrUAZpEeO9d-kMVrgNew" type="5001"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_QeLrUQZpEeO9d-kMVrgNew"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QeLrUgZpEeO9d-kMVrgNew"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QeLrUwZpEeO9d-kMVrgNew"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QeNggAZpEeO9d-kMVrgNew" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_QeNggQZpEeO9d-kMVrgNew"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QeNgggZpEeO9d-kMVrgNew"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QeNggwZpEeO9d-kMVrgNew"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_QeHZ4AZpEeO9d-kMVrgNew" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="setup.ecore#//GitCloneTask"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QeHZ4QZpEeO9d-kMVrgNew" x="495" y="960"/> + </children> + <children xmi:type="notation:Node" xmi:id="_epPbkAcIEeOppfhSm9mbUA" type="1001"> + <children xmi:type="notation:Node" xmi:id="_epPbkwcIEeOppfhSm9mbUA" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_epPblAcIEeOppfhSm9mbUA" type="5001"> + <children xmi:type="notation:Node" xmi:id="_hqN5QAcIEeOppfhSm9mbUA" type="2001"> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//StringVariableTask/name"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_hqN5QQcIEeOppfhSm9mbUA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_kGu_AAcIEeOppfhSm9mbUA" type="2001"> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//StringVariableTask/value"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_kGu_AQcIEeOppfhSm9mbUA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_lR808AcIEeOppfhSm9mbUA" type="2001"> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//StringVariableTask/description"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_lR808QcIEeOppfhSm9mbUA"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_epPblQcIEeOppfhSm9mbUA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_epPblgcIEeOppfhSm9mbUA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_epPblwcIEeOppfhSm9mbUA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_epPbmAcIEeOppfhSm9mbUA" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_epPbmQcIEeOppfhSm9mbUA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_epPbmgcIEeOppfhSm9mbUA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_epPbmwcIEeOppfhSm9mbUA"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_epPbkQcIEeOppfhSm9mbUA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="setup.ecore#//StringVariableTask"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_epPbkgcIEeOppfhSm9mbUA" x="720" y="810" width="167"/> + </children> + <children xmi:type="notation:Node" xmi:id="_FOcX8AfTEeOppfhSm9mbUA" type="1005"> + <children xmi:type="notation:Node" xmi:id="_FOcX8wfTEeOppfhSm9mbUA" type="4010"/> + <children xmi:type="notation:Node" xmi:id="_FOcX9AfTEeOppfhSm9mbUA" type="5008"> + <children xmi:type="notation:Node" xmi:id="_JAPOkAfTEeOppfhSm9mbUA" type="2006"> + <element xmi:type="ecore:EEnumLiteral" href="setup.ecore#//SetupTaskScope/None"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_JAPOkQfTEeOppfhSm9mbUA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_LFfD0AfTEeOppfhSm9mbUA" type="2006"> + <element xmi:type="ecore:EEnumLiteral" href="setup.ecore#//SetupTaskScope/Configuration"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_LFfD0QfTEeOppfhSm9mbUA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_ND4qMAfTEeOppfhSm9mbUA" type="2006"> + <element xmi:type="ecore:EEnumLiteral" href="setup.ecore#//SetupTaskScope/Project"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_ND4qMQfTEeOppfhSm9mbUA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_N6uLkAfTEeOppfhSm9mbUA" type="2006"> + <element xmi:type="ecore:EEnumLiteral" href="setup.ecore#//SetupTaskScope/Branch"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_N6uLkQfTEeOppfhSm9mbUA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_YMO3oAfTEeOppfhSm9mbUA" type="2006"> + <element xmi:type="ecore:EEnumLiteral" href="setup.ecore#//SetupTaskScope/User"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_YMO3oQfTEeOppfhSm9mbUA"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_FOcX9QfTEeOppfhSm9mbUA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_FOcX9gfTEeOppfhSm9mbUA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_FOcX9wfTEeOppfhSm9mbUA"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_FOcX8QfTEeOppfhSm9mbUA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="8047085" lineColor="8421504"/> + <element xmi:type="ecore:EEnum" href="setup.ecore#//SetupTaskScope"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FOcX8gfTEeOppfhSm9mbUA" x="20" y="20" width="163" height="193"/> + </children> + <children xmi:type="notation:Node" xmi:id="_s1eHUAflEeOppfhSm9mbUA" type="1001"> + <children xmi:type="notation:Node" xmi:id="_s1eHUwflEeOppfhSm9mbUA" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_s1eHVAflEeOppfhSm9mbUA" type="5001"> + <children xmi:type="notation:Node" xmi:id="_0MVKsAfmEeOppfhSm9mbUA" type="2001"> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//EclipseIniTask/option"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_0MVKsQfmEeOppfhSm9mbUA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_1ccuwAfmEeOppfhSm9mbUA" type="2001"> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//EclipseIniTask/value"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_1ccuwQfmEeOppfhSm9mbUA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_2SPuUAfmEeOppfhSm9mbUA" type="2001"> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//EclipseIniTask/vm"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_2SPuUQfmEeOppfhSm9mbUA"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_s1eHVQflEeOppfhSm9mbUA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_s1eHVgflEeOppfhSm9mbUA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_s1eHVwflEeOppfhSm9mbUA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_s1eHWAflEeOppfhSm9mbUA" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_s1eHWQflEeOppfhSm9mbUA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_s1eHWgflEeOppfhSm9mbUA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_s1eHWwflEeOppfhSm9mbUA"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_s1eHUQflEeOppfhSm9mbUA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="setup.ecore#//EclipseIniTask"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s1eHUgflEeOppfhSm9mbUA" x="570" y="783" width="130"/> + </children> + <children xmi:type="notation:Node" xmi:id="_aSLB8AmrEeOuXPWwsMY9fA" type="1001"> + <children xmi:type="notation:Node" xmi:id="_aSMQEAmrEeOuXPWwsMY9fA" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_aSM3IAmrEeOuXPWwsMY9fA" type="5001"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_aSM3IQmrEeOuXPWwsMY9fA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_aSM3IgmrEeOuXPWwsMY9fA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_aSM3IwmrEeOuXPWwsMY9fA"/> + </children> + <children xmi:type="notation:Node" xmi:id="_aSNeMAmrEeOuXPWwsMY9fA" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_aSNeMQmrEeOuXPWwsMY9fA"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_aSNeMgmrEeOuXPWwsMY9fA"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_aSNeMwmrEeOuXPWwsMY9fA"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_aSLB8QmrEeOuXPWwsMY9fA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="setup.ecore#//OneTimeSetupTask"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aSLB8gmrEeOuXPWwsMY9fA" x="835" y="580"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QJaZUDWJEeO0we5dUm5hxw" type="1001"> + <children xmi:type="notation:Node" xmi:id="_QJbncDWJEeO0we5dUm5hxw" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_QJbncTWJEeO0we5dUm5hxw" type="5001"> + <children xmi:type="notation:Node" xmi:id="__jFuADWNEeO0we5dUm5hxw" type="2001"> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//ResourceCopyTask/sourceURL"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="__jFuATWNEeO0we5dUm5hxw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_DrwMgDWOEeO0we5dUm5hxw" type="2001"> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//ResourceCopyTask/targetURL"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_DrwMgTWOEeO0we5dUm5hxw"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_QJbncjWJEeO0we5dUm5hxw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QJbnczWJEeO0we5dUm5hxw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QJbndDWJEeO0we5dUm5hxw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_QJbndTWJEeO0we5dUm5hxw" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_QJbndjWJEeO0we5dUm5hxw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_QJbndzWJEeO0we5dUm5hxw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_QJbneDWJEeO0we5dUm5hxw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_QJaZUTWJEeO0we5dUm5hxw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="setup.ecore#//ResourceCopyTask"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QJaZUjWJEeO0we5dUm5hxw" x="1170" y="525"/> + </children> + <children xmi:type="notation:Node" xmi:id="_am8vMDWJEeO0we5dUm5hxw" type="1001"> + <children xmi:type="notation:Node" xmi:id="_am8vMzWJEeO0we5dUm5hxw" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_am9WQDWJEeO0we5dUm5hxw" type="5001"> + <children xmi:type="notation:Node" xmi:id="_Qw4PsDWOEeO0we5dUm5hxw" type="2001"> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//TextModifyTask/url"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Qw4PsTWOEeO0we5dUm5hxw"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_am9WQTWJEeO0we5dUm5hxw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_am9WQjWJEeO0we5dUm5hxw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_am9WQzWJEeO0we5dUm5hxw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_am9WRDWJEeO0we5dUm5hxw" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_am9WRTWJEeO0we5dUm5hxw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_am9WRjWJEeO0we5dUm5hxw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_am9WRzWJEeO0we5dUm5hxw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_am8vMTWJEeO0we5dUm5hxw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="setup.ecore#//TextModifyTask"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_am8vMjWJEeO0we5dUm5hxw" x="1215" y="645"/> + </children> + <children xmi:type="notation:Node" xmi:id="_erZCwDWOEeO0we5dUm5hxw" type="1001"> + <children xmi:type="notation:Node" xmi:id="_erZCwzWOEeO0we5dUm5hxw" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_erZp0DWOEeO0we5dUm5hxw" type="5001"> + <children xmi:type="notation:Node" xmi:id="_s_MfkDWOEeO0we5dUm5hxw" type="2001"> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//TextModification/pattern"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_s_MfkTWOEeO0we5dUm5hxw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_-xmxQDWOEeO0we5dUm5hxw" type="2001"> + <element xmi:type="ecore:EAttribute" href="setup.ecore#//TextModification/substitutions"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_-xmxQTWOEeO0we5dUm5hxw"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_erZp0TWOEeO0we5dUm5hxw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_erZp0jWOEeO0we5dUm5hxw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_erZp0zWOEeO0we5dUm5hxw"/> + </children> + <children xmi:type="notation:Node" xmi:id="_erZp1DWOEeO0we5dUm5hxw" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_erZp1TWOEeO0we5dUm5hxw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_erZp1jWOEeO0we5dUm5hxw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_erZp1zWOEeO0we5dUm5hxw"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_erZCwTWOEeO0we5dUm5hxw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="setup.ecore#//TextModification"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_erZCwjWOEeO0we5dUm5hxw" x="1200" y="765"/> + </children> + <children xmi:type="notation:Node" xmi:id="_3NJlQDYmEeO8Ub-p5y_fsQ" type="1004"> + <children xmi:type="notation:Node" xmi:id="_3NMokDYmEeO8Ub-p5y_fsQ" type="4008"/> + <children xmi:type="notation:Node" xmi:id="_3NN2sDYmEeO8Ub-p5y_fsQ" type="4009"/> + <styles xmi:type="notation:ShapeStyle" xmi:id="_3NKMUDYmEeO8Ub-p5y_fsQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EDataType" href="setup.ecore#//TriggerSet"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3NKMUTYmEeO8Ub-p5y_fsQ" x="1260" y="180"/> + </children> + <children xmi:type="notation:Node" xmi:id="_KMEtYDYnEeO8Ub-p5y_fsQ" type="1005"> + <children xmi:type="notation:Node" xmi:id="_KMFUcDYnEeO8Ub-p5y_fsQ" type="4010"/> + <children xmi:type="notation:Node" xmi:id="_KMF7gDYnEeO8Ub-p5y_fsQ" type="5008"> + <children xmi:type="notation:Node" xmi:id="_Lt998DYnEeO8Ub-p5y_fsQ" type="2006"> + <element xmi:type="ecore:EEnumLiteral" href="setup.ecore#//Trigger/BOOTSTRAP"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Lt998TYnEeO8Ub-p5y_fsQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_NeEpoDYnEeO8Ub-p5y_fsQ" type="2006"> + <element xmi:type="ecore:EEnumLiteral" href="setup.ecore#//Trigger/STARTUP"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_NeEpoTYnEeO8Ub-p5y_fsQ"/> + </children> + <children xmi:type="notation:Node" xmi:id="_OhJ3QDYnEeO8Ub-p5y_fsQ" type="2006"> + <element xmi:type="ecore:EEnumLiteral" href="setup.ecore#//Trigger/MANUAL"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_OhJ3QTYnEeO8Ub-p5y_fsQ"/> + </children> + <styles xmi:type="notation:DrawerStyle" xmi:id="_KMF7gTYnEeO8Ub-p5y_fsQ"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_KMF7gjYnEeO8Ub-p5y_fsQ"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_KMF7gzYnEeO8Ub-p5y_fsQ"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_KMEtYTYnEeO8Ub-p5y_fsQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EEnum" href="setup.ecore#//Trigger"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KMEtYjYnEeO8Ub-p5y_fsQ" x="1453" y="316"/> </children> - <children xmi:type="notation:Node" xmi:id="_BvKIgASwEeOeiM9WAQqlaA" type="1001"> - <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BvanMASwEeOeiM9WAQqlaA" source="Shortcut"> - <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BvanMQSwEeOeiM9WAQqlaA" key="modelID" value="EcoreTools"/> + <children xmi:type="notation:Node" xmi:id="_1NjhoDcOEeOvrbVwd-Y02g" type="1001"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1OvNYDcOEeOvrbVwd-Y02g" source="Shortcut"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1OvNYTcOEeOvrbVwd-Y02g" key="modelID" value="EcoreTools"/> </eAnnotations> - <children xmi:type="notation:Node" xmi:id="_BvOZ8ASwEeOeiM9WAQqlaA" type="4001"/> - <children xmi:type="notation:Node" xmi:id="_BvPBAASwEeOeiM9WAQqlaA" type="5001"> - <styles xmi:type="notation:DrawerStyle" xmi:id="_BvPBAQSwEeOeiM9WAQqlaA"/> - <styles xmi:type="notation:SortingStyle" xmi:id="_BvPBAgSwEeOeiM9WAQqlaA"/> - <styles xmi:type="notation:FilteringStyle" xmi:id="_BvPBAwSwEeOeiM9WAQqlaA"/> - </children> - <children xmi:type="notation:Node" xmi:id="_BvPoEASwEeOeiM9WAQqlaA" type="5002"> - <styles xmi:type="notation:DrawerStyle" xmi:id="_BvPoEQSwEeOeiM9WAQqlaA"/> - <styles xmi:type="notation:SortingStyle" xmi:id="_BvPoEgSwEeOeiM9WAQqlaA"/> - <styles xmi:type="notation:FilteringStyle" xmi:id="_BvPoEwSwEeOeiM9WAQqlaA"/> - </children> - <styles xmi:type="notation:ShapeStyle" xmi:id="_BvKIgQSwEeOeiM9WAQqlaA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> - <element xmi:type="ecore:EClass" href="platform:/resource/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecore#//WorkingSetGroup"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BvKIggSwEeOeiM9WAQqlaA" x="135" y="90" width="202" height="78"/> + <children xmi:type="notation:Node" xmi:id="_1NrdcDcOEeOvrbVwd-Y02g" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_1NrdcTcOEeOvrbVwd-Y02g" type="5001"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_1NrdcjcOEeOvrbVwd-Y02g"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_1NrdczcOEeOvrbVwd-Y02g"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_1NrddDcOEeOvrbVwd-Y02g"/> + </children> + <children xmi:type="notation:Node" xmi:id="_1NsEgDcOEeOvrbVwd-Y02g" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_1NsEgTcOEeOvrbVwd-Y02g"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_1NsEgjcOEeOvrbVwd-Y02g"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_1NsEgzcOEeOvrbVwd-Y02g"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_1NjhoTcOEeOvrbVwd-Y02g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="platform:/resource/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecore#//WorkingSet"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1NjhojcOEeOvrbVwd-Y02g" x="975" y="795"/> </children> <styles xmi:type="notation:DiagramStyle" xmi:id="_u_e_seoIEeKpRf481yfX-g"/> <element xmi:type="ecore:EPackage" href="setup.ecore#/"/> @@ -337,144 +638,75 @@ </edges> <edges xmi:type="notation:Edge" xmi:id="_6D5IUOoIEeKpRf481yfX-g" type="3002" source="_2Y42MOoIEeKpRf481yfX-g" target="_3TdBAOoIEeKpRf481yfX-g"> <children xmi:type="notation:Node" xmi:id="_6D5vYOoIEeKpRf481yfX-g" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_6D5vYeoIEeKpRf481yfX-g" x="-14" y="-12"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_6D5vYeoIEeKpRf481yfX-g" x="-14" y="-16"/> </children> <children xmi:type="notation:Node" xmi:id="_6D5vYuoIEeKpRf481yfX-g" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_6D5vY-oIEeKpRf481yfX-g" x="-4" y="17"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_6D5vY-oIEeKpRf481yfX-g" x="-4" y="12"/> </children> <styles xmi:type="notation:ConnectorStyle" xmi:id="_6D5IUeoIEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/> <styles xmi:type="notation:FontStyle" xmi:id="_6D5IUuoIEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> <element xmi:type="ecore:EReference" href="setup.ecore#//Project/branches"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6D5IU-oIEeKpRf481yfX-g" points="[57, 0, -157, 8]$[169, 0, -45, 8]"/> - <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_q-NiIvUKEeK09qwveWBYrQ" id="(0.5,0.5)"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_q-NiI_UKEeK09qwveWBYrQ" id="(0.22660098522167488,0.3779527559055118)"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6D5IU-oIEeKpRf481yfX-g" points="[57, 0, -170, 6]$[202, 0, -25, 6]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q5SlwgfkEeOppfhSm9mbUA" id="(0.5,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q5SlwwfkEeOppfhSm9mbUA" id="(0.22660098522167488,0.3779527559055118)"/> </edges> - <edges xmi:type="notation:Edge" xmi:id="_TwgQcOoJEeKpRf481yfX-g" type="3003" source="_2Y42MOoIEeKpRf481yfX-g" target="_RhEkcOoJEeKpRf481yfX-g"> + <edges xmi:type="notation:Edge" xmi:id="_TwgQcOoJEeKpRf481yfX-g" type="3003" source="_2Y42MOoIEeKpRf481yfX-g" target="__XTX4AWBEeORNPhE9cWxTA"> <styles xmi:type="notation:ConnectorStyle" xmi:id="_TwgQceoJEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/> <styles xmi:type="notation:FontStyle" xmi:id="_TwgQcuoJEeKpRf481yfX-g" fontName="Segoe UI"/> <element xsi:nil="true"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TwgQc-oJEeKpRf481yfX-g" points="[5, -24, -126, 162]$[5, -90, -126, 96]$[123, -90, -8, 96]$[123, -149, -8, 37]"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TwlwAOoJEeKpRf481yfX-g" id="(0.5590551181102362,0.11627906976744186)"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TwgQc-oJEeKpRf481yfX-g" points="[6, -30, -155, 81]$[6, -59, -155, 52]$[159, -59, -2, 52]$[159, -87, -2, 24]"/> </edges> - <edges xmi:type="notation:Edge" xmi:id="_U3twIOoJEeKpRf481yfX-g" type="3003" source="_3TdBAOoIEeKpRf481yfX-g" target="_RhEkcOoJEeKpRf481yfX-g"> + <edges xmi:type="notation:Edge" xmi:id="_U3twIOoJEeKpRf481yfX-g" type="3003" source="_3TdBAOoIEeKpRf481yfX-g" target="__XTX4AWBEeORNPhE9cWxTA"> <styles xmi:type="notation:ConnectorStyle" xmi:id="_U3twIeoJEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/> <styles xmi:type="notation:FontStyle" xmi:id="_U3twIuoJEeKpRf481yfX-g" fontName="Segoe UI"/> <element xsi:nil="true"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_U3twI-oJEeKpRf481yfX-g" points="[1, -62, 146, 115]$[1, -97, 146, 80]$[-146, -97, -1, 80]$[-146, -156, -1, 21]"/> - </edges> - <edges xmi:type="notation:Edge" xmi:id="_h9QtQOoNEeKpRf481yfX-g" type="3002" source="_RhEkcOoJEeKpRf481yfX-g" target="_PhLMcOoNEeKpRf481yfX-g"> - <children xmi:type="notation:Node" xmi:id="_h9RUUOoNEeKpRf481yfX-g" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_h9RUUeoNEeKpRf481yfX-g" x="111" y="-21"/> - </children> - <children xmi:type="notation:Node" xmi:id="_h9RUUuoNEeKpRf481yfX-g" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_h9RUU-oNEeKpRf481yfX-g" x="79" y="-44"/> - </children> - <styles xmi:type="notation:ConnectorStyle" xmi:id="_h9QtQeoNEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/> - <styles xmi:type="notation:FontStyle" xmi:id="_h9QtQuoNEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> - <element xmi:type="ecore:EReference" href="setup.ecore#//ToolInstallation/directorCalls"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_h9QtQ-oNEeKpRf481yfX-g" points="[-60, 1, 339, -547]$[-480, 1, -81, -547]$[-480, 556, -81, 8]$[-415, 556, -16, 8]"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_h9TwkOoNEeKpRf481yfX-g" id="(0.14285714285714285,0.38461538461538464)"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_U3twI-oJEeKpRf481yfX-g" points="[21, -30, 118, 81]$[21, -59, 118, 52]$[-99, -59, -2, 52]$[-99, -87, -2, 24]"/> </edges> <edges xmi:type="notation:Edge" xmi:id="_s_VTkOoNEeKpRf481yfX-g" type="3002" source="_zoytIOoIEeKpRf481yfX-g" target="_678VMOoJEeKpRf481yfX-g"> <children xmi:type="notation:Node" xmi:id="_s_V6oOoNEeKpRf481yfX-g" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_s_V6oeoNEeKpRf481yfX-g" x="-38" y="-12"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_s_V6oeoNEeKpRf481yfX-g" x="2" y="49"/> </children> <children xmi:type="notation:Node" xmi:id="_s_V6ouoNEeKpRf481yfX-g" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_s_V6o-oNEeKpRf481yfX-g" x="-2" y="12"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_s_V6o-oNEeKpRf481yfX-g" x="3" y="-21"/> </children> <styles xmi:type="notation:ConnectorStyle" xmi:id="_s_VTkeoNEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/> <styles xmi:type="notation:FontStyle" xmi:id="_s_VTkuoNEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> <element xmi:type="ecore:EReference" href="setup.ecore#//Configuration/eclipseVersions"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_s_VTk-oNEeKpRf481yfX-g" points="[-62, 0, 197, -1]$[-171, 0, 88, -1]"/> - <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vBlxoPKREeK108x_FqyAbw" id="(0.5,0.5)"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vBlxofKREeK108x_FqyAbw" id="(0.5,0.5)"/> - </edges> - <edges xmi:type="notation:Edge" xmi:id="_0wNO4OoNEeKpRf481yfX-g" type="3002" source="_678VMOoJEeKpRf481yfX-g" target="_PhLMcOoNEeKpRf481yfX-g"> - <children xmi:type="notation:Node" xmi:id="_0wNO5OoNEeKpRf481yfX-g" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_0wNO5eoNEeKpRf481yfX-g" x="-6" y="46"/> - </children> - <children xmi:type="notation:Node" xmi:id="_0wN18OoNEeKpRf481yfX-g" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_0wN18eoNEeKpRf481yfX-g" x="-1" y="-18"/> - </children> - <styles xmi:type="notation:ConnectorStyle" xmi:id="_0wNO4eoNEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/> - <styles xmi:type="notation:FontStyle" xmi:id="_0wNO4uoNEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> - <element xmi:type="ecore:EReference" href="setup.ecore#//EclipseVersion/directorCall"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0wNO4-oNEeKpRf481yfX-g" points="[-18, 56, 58, -101]$[-18, 130, 58, -27]"/> - <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0wQSMOoNEeKpRf481yfX-g" id="(0.5056179775280899,0.16176470588235295)"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0wQSMeoNEeKpRf481yfX-g" id="(0.10476190476190476,0.4725274725274725)"/> - </edges> - <edges xmi:type="notation:Edge" xmi:id="_RIhIQOoOEeKpRf481yfX-g" type="3002" source="_3TdBAOoIEeKpRf481yfX-g" target="_H-Oz4OoXEeKpRf481yfX-g"> - <children xmi:type="notation:Node" xmi:id="_RIhvUOoOEeKpRf481yfX-g" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_RIhvUeoOEeKpRf481yfX-g" y="-32"/> - </children> - <children xmi:type="notation:Node" xmi:id="_RIiWYOoOEeKpRf481yfX-g" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_RIiWYeoOEeKpRf481yfX-g" x="4" y="9"/> - </children> - <styles xmi:type="notation:ConnectorStyle" xmi:id="_RIhIQeoOEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/> - <styles xmi:type="notation:FontStyle" xmi:id="_RIhIQuoOEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> - <element xmi:type="ecore:EReference" href="setup.ecore#//Branch/gitClones"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RIhIQ-oOEeKpRf481yfX-g" points="[55, 54, 44, -127]$[55, 137, 44, -44]"/> - <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4XAQkvT8EeKyR41VsO_Bpw" id="(0.5,0.5)"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4XAQk_T8EeKyR41VsO_Bpw" id="(0.22105263157894736,0.4838709677419355)"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_s_VTk-oNEeKpRf481yfX-g" points="[7, 21, 6, -121]$[7, 109, 6, -33]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8U3-UAWlEeOw6Pg8FrULkw" id="(0.5,0.5)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8U3-UQWlEeOw6Pg8FrULkw" id="(0.5,0.5)"/> </edges> <edges xmi:type="notation:Edge" xmi:id="_xAgNgOoOEeKpRf481yfX-g" type="3002" source="_PhLMcOoNEeKpRf481yfX-g" target="_mgNekOoOEeKpRf481yfX-g"> <children xmi:type="notation:Node" xmi:id="_xAg0kOoOEeKpRf481yfX-g" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_xAg0keoOEeKpRf481yfX-g" x="4" y="52"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_xAg0keoOEeKpRf481yfX-g" x="6" y="-47"/> </children> <children xmi:type="notation:Node" xmi:id="_xAg0kuoOEeKpRf481yfX-g" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_xAg0k-oOEeKpRf481yfX-g" x="4" y="-9"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_xAg0k-oOEeKpRf481yfX-g" x="6" y="17"/> </children> <styles xmi:type="notation:ConnectorStyle" xmi:id="_xAgNgeoOEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/> <styles xmi:type="notation:FontStyle" xmi:id="_xAgNguoOEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> - <element xmi:type="ecore:EReference" href="setup.ecore#//DirectorCall/installableUnits"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xAgNg-oOEeKpRf481yfX-g" points="[-59, 30, 46, -101]$[-59, 107, 46, -24]"/> - <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0Sj8AvKREeK108x_FqyAbw" id="(0.5,0.5)"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0Sj8A_KREeK108x_FqyAbw" id="(0.5,0.5)"/> + <element xmi:type="ecore:EReference" href="setup.ecore#//P2Task/installableUnits"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xAgNg-oOEeKpRf481yfX-g" points="[-18, 20, 95, -141]$[-93, 20, 20, -141]$[-93, 112, 20, -49]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KC51YgfnEeOppfhSm9mbUA" id="(0.16101694915254236,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KC51YwfnEeOppfhSm9mbUA" id="(0.3305785123966942,1.0)"/> </edges> <edges xmi:type="notation:Edge" xmi:id="_zJWJUOoOEeKpRf481yfX-g" type="3002" source="_PhLMcOoNEeKpRf481yfX-g" target="_q3yi0OoOEeKpRf481yfX-g"> <children xmi:type="notation:Node" xmi:id="_zJWwYOoOEeKpRf481yfX-g" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_zJWwYeoOEeKpRf481yfX-g" x="4" y="-52"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_zJWwYeoOEeKpRf481yfX-g" x="9" y="46"/> </children> <children xmi:type="notation:Node" xmi:id="_zJWwYuoOEeKpRf481yfX-g" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_zJWwY-oOEeKpRf481yfX-g" x="4" y="8"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_zJWwY-oOEeKpRf481yfX-g" x="9" y="-13"/> </children> <styles xmi:type="notation:ConnectorStyle" xmi:id="_zJWJUeoOEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/> <styles xmi:type="notation:FontStyle" xmi:id="_zJWJUuoOEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> - <element xmi:type="ecore:EReference" href="setup.ecore#//DirectorCall/p2Repositories"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zJWJU-oOEeKpRf481yfX-g" points="[53, 30, -21, -101]$[53, 107, -21, -24]"/> - <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xvDddPKREeK108x_FqyAbw" id="(0.5,0.5)"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xvDddfKREeK108x_FqyAbw" id="(0.5,0.5)"/> - </edges> - <edges xmi:type="notation:Edge" xmi:id="_dN8MgOoPEeKpRf481yfX-g" type="3002" source="_2Y42MOoIEeKpRf481yfX-g" target="_62v54OoOEeKpRf481yfX-g"> - <children xmi:type="notation:Node" xmi:id="_dN8MhOoPEeKpRf481yfX-g" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_dN8MheoPEeKpRf481yfX-g" x="-4" y="-47"/> - </children> - <children xmi:type="notation:Node" xmi:id="_dN8MhuoPEeKpRf481yfX-g" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_dN8Mh-oPEeKpRf481yfX-g" x="-4" y="14"/> - </children> - <styles xmi:type="notation:ConnectorStyle" xmi:id="_dN8MgeoPEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/> - <styles xmi:type="notation:FontStyle" xmi:id="_dN8MguoPEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> - <element xmi:type="ecore:EReference" href="setup.ecore#//Project/apiBaselines"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dN8Mg-oPEeKpRf481yfX-g" points="[7, 25, 0, -136]$[7, 128, 0, -33]"/> - <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wnpJcPKREeK108x_FqyAbw" id="(0.5,0.5)"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wnpJcfKREeK108x_FqyAbw" id="(0.5,0.5)"/> - </edges> - <edges xmi:type="notation:Edge" xmi:id="_ftwBYOoQEeKpRf481yfX-g" type="3002" source="_3TdBAOoIEeKpRf481yfX-g" target="_62v54OoOEeKpRf481yfX-g"> - <children xmi:type="notation:Node" xmi:id="_ftwocOoQEeKpRf481yfX-g" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_ftwoceoQEeKpRf481yfX-g" x="-22" y="-15"/> - </children> - <children xmi:type="notation:Node" xmi:id="_ftwocuoQEeKpRf481yfX-g" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_ftwoc-oQEeKpRf481yfX-g" y="9"/> - </children> - <styles xmi:type="notation:ConnectorStyle" xmi:id="_ftwBYeoQEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/> - <styles xmi:type="notation:FontStyle" xmi:id="_ftwBYuoQEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> - <element xmi:type="ecore:EReference" href="setup.ecore#//Branch/apiBaseline"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ftwBY-oQEeKpRf481yfX-g" points="[23, 14, 202, -111]$[23, 124, 202, -1]$[-105, 124, 74, -1]"/> - <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ftzrwOoQEeKpRf481yfX-g" id="(0.12195121951219512,0.8382352941176471)"/> + <element xmi:type="ecore:EReference" href="setup.ecore#//P2Task/p2Repositories"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zJWJU-oOEeKpRf481yfX-g" points="[58, 20, -38, -141]$[120, 20, 24, -141]$[120, 112, 24, -49]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FT36cgfnEeOppfhSm9mbUA" id="(0.5,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FT36cwfnEeOppfhSm9mbUA" id="(0.5,1.0)"/> </edges> <edges xmi:type="notation:Edge" xmi:id="_0pBn0OoYEeKpRf481yfX-g" type="3002" source="_tV-Q8OoYEeKpRf481yfX-g" target="_3TdBAOoIEeKpRf481yfX-g"> <children xmi:type="notation:Node" xmi:id="_0pBn1OoYEeKpRf481yfX-g" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_0pBn1eoYEeKpRf481yfX-g" x="-21" y="12"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_0pBn1eoYEeKpRf481yfX-g" x="-8" y="31"/> </children> <children xmi:type="notation:Node" xmi:id="_0pCO4OoYEeKpRf481yfX-g" type="4012"> <layoutConstraint xmi:type="notation:Location" xmi:id="_0pCO4eoYEeKpRf481yfX-g" x="-11" y="-15"/> @@ -482,85 +714,57 @@ <styles xmi:type="notation:ConnectorStyle" xmi:id="_0pBn0eoYEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/> <styles xmi:type="notation:FontStyle" xmi:id="_0pBn0uoYEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> <element xmi:type="ecore:EReference" href="setup.ecore#//Setup/branch"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0pBn0-oYEeKpRf481yfX-g" points="[-40, 12, 206, 42]$[-144, 12, 102, 42]"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0pBn0-oYEeKpRf481yfX-g" points="[38, -10, 9, 134]$[38, -77, 9, 67]"/> <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0pEEEOoYEeKpRf481yfX-g" id="(0.4019607843137255,0.20930232558139536)"/> <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0pEEEeoYEeKpRf481yfX-g" id="(0.4931506849315068,0.10588235294117647)"/> </edges> <edges xmi:type="notation:Edge" xmi:id="_uVxboOrJEeKpRf481yfX-g" type="3002" source="_tV-Q8OoYEeKpRf481yfX-g" target="_678VMOoJEeKpRf481yfX-g"> <children xmi:type="notation:Node" xmi:id="_uVz34OrJEeKpRf481yfX-g" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_uVz34erJEeKpRf481yfX-g" x="71" y="71"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_uVz34erJEeKpRf481yfX-g" x="-5" y="18"/> </children> <children xmi:type="notation:Node" xmi:id="_uVz34urJEeKpRf481yfX-g" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_uVz34-rJEeKpRf481yfX-g" x="163" y="-15"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_uVz34-rJEeKpRf481yfX-g" x="32" y="-13"/> </children> <styles xmi:type="notation:ConnectorStyle" xmi:id="_uVxboerJEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/> <styles xmi:type="notation:FontStyle" xmi:id="_uVxbourJEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> <element xmi:type="ecore:EReference" href="setup.ecore#//Setup/eclipseVersion"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uVxbo-rJEeKpRf481yfX-g" points="[-12, 21, 675, -109]$[-12, 275, 675, 145]$[-618, 275, 69, 145]$[-618, 186, 69, 56]"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uVxbo-rJEeKpRf481yfX-g" points="[-151, -6, 420, 16]$[-475, -6, 96, 16]"/> <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uV5-gOrJEeKpRf481yfX-g" id="(0.4550561797752809,0.16176470588235295)"/> </edges> <edges xmi:type="notation:Edge" xmi:id="_rDKrIO0pEeKeBJzrXkhCcg" type="3002" source="_tV-Q8OoYEeKpRf481yfX-g" target="_bOTg8OoYEeKpRf481yfX-g"> <children xmi:type="notation:Node" xmi:id="_rDNucO0pEeKeBJzrXkhCcg" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_rDNuce0pEeKeBJzrXkhCcg" x="-25" y="-19"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_rDNuce0pEeKeBJzrXkhCcg" x="30" y="41"/> </children> <children xmi:type="notation:Node" xmi:id="_rDOVgO0pEeKeBJzrXkhCcg" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_rDOVge0pEeKeBJzrXkhCcg" x="1" y="16"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_rDOVge0pEeKeBJzrXkhCcg" x="30" y="-12"/> </children> <styles xmi:type="notation:ConnectorStyle" xmi:id="_rDKrIe0pEeKeBJzrXkhCcg" routing="Rectilinear" lineColor="4210752"/> <styles xmi:type="notation:FontStyle" xmi:id="_rDKrIu0pEeKeBJzrXkhCcg" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> <element xmi:type="ecore:EReference" href="setup.ecore#//Setup/preferences"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rDKrI-0pEeKeBJzrXkhCcg" points="[50, 0, -203, -1]$[178, 0, -75, -1]"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rDKrI-0pEeKeBJzrXkhCcg" points="[152, 3, -91, 258]$[243, 3, 0, 258]$[243, -213, 0, 42]"/> </edges> <edges xmi:type="notation:Edge" xmi:id="_ETHrAPKREeK108x_FqyAbw" type="3002" source="_3TdBAOoIEeKpRf481yfX-g" target="_2Y42MOoIEeKpRf481yfX-g"> <children xmi:type="notation:Node" xmi:id="_ETRcAPKREeK108x_FqyAbw" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_ETRcAfKREeK108x_FqyAbw" x="-10" y="-10"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_ETRcAfKREeK108x_FqyAbw" x="-12" y="-12"/> </children> <children xmi:type="notation:Node" xmi:id="_ETRcAvKREeK108x_FqyAbw" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_ETRcA_KREeK108x_FqyAbw" y="9"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_ETRcA_KREeK108x_FqyAbw" x="-1" y="16"/> </children> - <styles xmi:type="notation:ConnectorStyle" xmi:id="_ETHrAfKREeK108x_FqyAbw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_ETHrAfKREeK108x_FqyAbw" routing="Rectilinear" closestDistance="true" lineColor="4210752"/> <styles xmi:type="notation:FontStyle" xmi:id="_ETHrAvKREeK108x_FqyAbw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> <element xmi:type="ecore:EReference" href="setup.ecore#//Branch/project"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ETHrA_KREeK108x_FqyAbw" points="[-45, 8, 169, 0]$[-157, 8, 57, 0]"/> - <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vZXnMvT8EeKyR41VsO_Bpw" id="(0.22660098522167488,0.3779527559055118)"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vZXnM_T8EeKyR41VsO_Bpw" id="(0.5,0.5)"/> - </edges> - <edges xmi:type="notation:Edge" xmi:id="_JZ1GIPKREeK108x_FqyAbw" type="3002" source="_H-Oz4OoXEeKpRf481yfX-g" target="_3TdBAOoIEeKpRf481yfX-g"> - <children xmi:type="notation:Node" xmi:id="_JZ1GJPKREeK108x_FqyAbw" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_JZ1GJfKREeK108x_FqyAbw" x="-11" y="-25"/> - </children> - <children xmi:type="notation:Node" xmi:id="_JZ1GJvKREeK108x_FqyAbw" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_JZ1GJ_KREeK108x_FqyAbw" x="-11" y="15"/> - </children> - <styles xmi:type="notation:ConnectorStyle" xmi:id="_JZ1GIfKREeK108x_FqyAbw" routing="Rectilinear" lineColor="4210752"/> - <styles xmi:type="notation:FontStyle" xmi:id="_JZ1GIvKREeK108x_FqyAbw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> - <element xmi:type="ecore:EReference" href="setup.ecore#//GitClone/branch"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JZ1GI_KREeK108x_FqyAbw" points="[44, -44, 55, 137]$[44, -127, 55, 54]"/> - <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vxl58vT8EeKyR41VsO_Bpw" id="(0.22105263157894736,0.4838709677419355)"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vxl58_T8EeKyR41VsO_Bpw" id="(0.5,0.5)"/> - </edges> - <edges xmi:type="notation:Edge" xmi:id="_LAx10PKREeK108x_FqyAbw" type="3002" source="_62v54OoOEeKpRf481yfX-g" target="_2Y42MOoIEeKpRf481yfX-g"> - <children xmi:type="notation:Node" xmi:id="_LAx11PKREeK108x_FqyAbw" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_LAx11fKREeK108x_FqyAbw" x="-10" y="-10"/> - </children> - <children xmi:type="notation:Node" xmi:id="_LAx11vKREeK108x_FqyAbw" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_LAx11_KREeK108x_FqyAbw" x="10" y="10"/> - </children> - <styles xmi:type="notation:ConnectorStyle" xmi:id="_LAx10fKREeK108x_FqyAbw" routing="Rectilinear" lineColor="4210752"/> - <styles xmi:type="notation:FontStyle" xmi:id="_LAx10vKREeK108x_FqyAbw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> - <element xmi:type="ecore:EReference" href="setup.ecore#//ApiBaseline/project"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LAx10_KREeK108x_FqyAbw" points="[0, -33, 7, 128]$[0, -136, 7, 25]"/> - <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w33WwvKREeK108x_FqyAbw" id="(0.5,0.5)"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w33Ww_KREeK108x_FqyAbw" id="(0.5,0.5)"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ETHrA_KREeK108x_FqyAbw" points="[-25, 6, 202, 0]$[-170, 6, 57, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tTtqEAWWEeOw6Pg8FrULkw" id="(0.22660098522167488,0.3779527559055118)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tTtqEQWWEeOw6Pg8FrULkw" id="(0.5,0.5)"/> </edges> <edges xmi:type="notation:Edge" xmi:id="_MBMxAPKREeK108x_FqyAbw" type="3002" source="_2Y42MOoIEeKpRf481yfX-g" target="_zoytIOoIEeKpRf481yfX-g"> <children xmi:type="notation:Node" xmi:id="_MBMxBPKREeK108x_FqyAbw" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_MBMxBfKREeK108x_FqyAbw" x="-10" y="-10"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_MBMxBfKREeK108x_FqyAbw" x="-22" y="-12"/> </children> <children xmi:type="notation:Node" xmi:id="_MBMxBvKREeK108x_FqyAbw" type="4012"> <layoutConstraint xmi:type="notation:Location" xmi:id="_MBMxB_KREeK108x_FqyAbw" x="10" y="10"/> </children> - <styles xmi:type="notation:ConnectorStyle" xmi:id="_MBMxAfKREeK108x_FqyAbw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_MBMxAfKREeK108x_FqyAbw" routing="Rectilinear" closestDistance="true" lineColor="4210752"/> <styles xmi:type="notation:FontStyle" xmi:id="_MBMxAvKREeK108x_FqyAbw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> <element xmi:type="ecore:EReference" href="setup.ecore#//Project/configuration"/> <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MBMxA_KREeK108x_FqyAbw" points="[-24, 2, 148, 0]$[-109, 2, 63, 0]"/> @@ -569,102 +773,216 @@ </edges> <edges xmi:type="notation:Edge" xmi:id="_Nhv9wPKREeK108x_FqyAbw" type="3002" source="_678VMOoJEeKpRf481yfX-g" target="_zoytIOoIEeKpRf481yfX-g"> <children xmi:type="notation:Node" xmi:id="_Nhv9xPKREeK108x_FqyAbw" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_Nhv9xfKREeK108x_FqyAbw" x="-10" y="-10"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Nhv9xfKREeK108x_FqyAbw" x="-3" y="-44"/> </children> <children xmi:type="notation:Node" xmi:id="_Nhv9xvKREeK108x_FqyAbw" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_Nhv9x_KREeK108x_FqyAbw" x="10" y="10"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Nhv9x_KREeK108x_FqyAbw" x="-3" y="17"/> </children> - <styles xmi:type="notation:ConnectorStyle" xmi:id="_Nhv9wfKREeK108x_FqyAbw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_Nhv9wfKREeK108x_FqyAbw" routing="Rectilinear" closestDistance="true" lineColor="4210752"/> <styles xmi:type="notation:FontStyle" xmi:id="_Nhv9wvKREeK108x_FqyAbw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> <element xmi:type="ecore:EReference" href="setup.ecore#//EclipseVersion/configuration"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Nhv9w_KREeK108x_FqyAbw" points="[88, -1, -171, 0]$[197, -1, -62, 0]"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Nhv9w_KREeK108x_FqyAbw" points="[6, -33, 7, 109]$[6, -121, 7, 21]"/> <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vBlxpPKREeK108x_FqyAbw" id="(0.5,0.5)"/> <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vBlxpfKREeK108x_FqyAbw" id="(0.5,0.5)"/> </edges> <edges xmi:type="notation:Edge" xmi:id="_QQajcPKREeK108x_FqyAbw" type="3002" source="_mgNekOoOEeKpRf481yfX-g" target="_PhLMcOoNEeKpRf481yfX-g"> <children xmi:type="notation:Node" xmi:id="_QQajdPKREeK108x_FqyAbw" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_QQajdfKREeK108x_FqyAbw" x="-12" y="-36"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QQajdfKREeK108x_FqyAbw" x="-10" y="-10"/> </children> <children xmi:type="notation:Node" xmi:id="_QQajdvKREeK108x_FqyAbw" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_QQajd_KREeK108x_FqyAbw" x="-12" y="15"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QQajd_KREeK108x_FqyAbw" x="10" y="10"/> </children> <styles xmi:type="notation:ConnectorStyle" xmi:id="_QQajcfKREeK108x_FqyAbw" routing="Rectilinear" lineColor="4210752"/> <styles xmi:type="notation:FontStyle" xmi:id="_QQajcvKREeK108x_FqyAbw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> - <element xmi:type="ecore:EReference" href="setup.ecore#//InstallableUnit/directorCall"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QQajc_KREeK108x_FqyAbw" points="[46, -24, -59, 107]$[46, -101, -59, 30]"/> - <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yox6wPKREeK108x_FqyAbw" id="(0.5,0.5)"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yox6wfKREeK108x_FqyAbw" id="(0.5,0.5)"/> + <element xmi:type="ecore:EReference" href="setup.ecore#//InstallableUnit/p2Task"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QQajc_KREeK108x_FqyAbw" points="[20, -49, -93, 112]$[20, -141, -93, 20]$[95, -141, -18, 20]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4OsUcAWXEeOw6Pg8FrULkw" id="(0.3305785123966942,1.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4Os7gAWXEeOw6Pg8FrULkw" id="(0.16101694915254236,0.0)"/> </edges> <edges xmi:type="notation:Edge" xmi:id="_RisDoPKREeK108x_FqyAbw" type="3002" source="_q3yi0OoOEeKpRf481yfX-g" target="_PhLMcOoNEeKpRf481yfX-g"> <children xmi:type="notation:Node" xmi:id="_RisDpPKREeK108x_FqyAbw" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_RisDpfKREeK108x_FqyAbw" x="-12" y="47"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_RisDpfKREeK108x_FqyAbw" x="-10" y="-10"/> </children> <children xmi:type="notation:Node" xmi:id="_RisDpvKREeK108x_FqyAbw" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_RisDp_KREeK108x_FqyAbw" x="-7" y="-19"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_RisDp_KREeK108x_FqyAbw" x="10" y="10"/> </children> <styles xmi:type="notation:ConnectorStyle" xmi:id="_RisDofKREeK108x_FqyAbw" routing="Rectilinear" lineColor="4210752"/> <styles xmi:type="notation:FontStyle" xmi:id="_RisDovKREeK108x_FqyAbw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> - <element xmi:type="ecore:EReference" href="setup.ecore#//P2Repository/directorCall"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RisDo_KREeK108x_FqyAbw" points="[-21, -24, 53, 107]$[-21, -101, 53, 30]"/> - <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xvDdcPKREeK108x_FqyAbw" id="(0.5,0.5)"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xvDdcfKREeK108x_FqyAbw" id="(0.5,0.5)"/> + <element xmi:type="ecore:EReference" href="setup.ecore#//P2Repository/p2Task"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RisDo_KREeK108x_FqyAbw" points="[24, -49, 120, 112]$[24, -141, 120, 20]$[-38, -141, 58, 20]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iSgJ8AWXEeOw6Pg8FrULkw" id="(0.5,1.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iSgJ8QWXEeOw6Pg8FrULkw" id="(0.5,0.0)"/> </edges> - <edges xmi:type="notation:Edge" xmi:id="_TTmfEPTrEeKROP7mUifaFQ" type="3002" source="_RhEkcOoJEeKpRf481yfX-g" target="_LJQ64PTrEeKROP7mUifaFQ"> + <edges xmi:type="notation:Edge" xmi:id="_TTmfEPTrEeKROP7mUifaFQ" type="3002" source="_RhEkcOoJEeKpRf481yfX-g" target="_7oaMoAVzEeORNPhE9cWxTA"> <children xmi:type="notation:Node" xmi:id="_TTmfFPTrEeKROP7mUifaFQ" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_TTmfFfTrEeKROP7mUifaFQ" x="-39" y="-12"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_TTmfFfTrEeKROP7mUifaFQ" x="-26" y="-13"/> </children> <children xmi:type="notation:Node" xmi:id="_TTmfFvTrEeKROP7mUifaFQ" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_TTmfF_TrEeKROP7mUifaFQ" x="-4" y="12"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_TTmfF_TrEeKROP7mUifaFQ" x="-24" y="26"/> </children> - <styles xmi:type="notation:ConnectorStyle" xmi:id="_TTmfEfTrEeKROP7mUifaFQ" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_TTmfEfTrEeKROP7mUifaFQ" routing="Rectilinear" closestDistance="true" lineColor="4210752"/> <styles xmi:type="notation:FontStyle" xmi:id="_TTmfEvTrEeKROP7mUifaFQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> - <element xmi:type="ecore:EReference" href="setup.ecore#//ToolInstallation/toolPreferences"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TTmfE_TrEeKROP7mUifaFQ" points="[60, 0, -216, 6]$[270, 0, -6, 6]"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TTslsPTrEeKROP7mUifaFQ" id="(0.061946902654867256,0.39705882352941174)"/> + <element xmi:type="ecore:EReference" href="setup.ecore#//SetupTaskContainer/setupTasks"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TTmfE_TrEeKROP7mUifaFQ" points="[-78, 7, 258, 18]$[-227, 7, 109, 18]"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TTslsPTrEeKROP7mUifaFQ" id="(0.5987654320987654,0.11764705882352941)"/> </edges> <edges xmi:type="notation:Edge" xmi:id="_UYR_cPT8EeKyR41VsO_Bpw" type="3003" source="_bOTg8OoYEeKpRf481yfX-g" target="_RhEkcOoJEeKpRf481yfX-g"> <styles xmi:type="notation:ConnectorStyle" xmi:id="_UYR_cfT8EeKyR41VsO_Bpw" routing="Rectilinear" lineColor="4210752"/> <styles xmi:type="notation:FontStyle" xmi:id="_UYR_cvT8EeKyR41VsO_Bpw" fontName="Segoe UI"/> <element xsi:nil="true"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UYR_c_T8EeKyR41VsO_Bpw" points="[-10, -11, 595, 133]$[-10, -64, 595, 80]$[-606, -64, -1, 80]$[-606, -123, -1, 21]"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UYR_c_T8EeKyR41VsO_Bpw" points="[-10, -9, 386, 163]$[-10, -94, 386, 78]$[-397, -94, -1, 78]$[-397, -151, -1, 21]"/> <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UYYGEPT8EeKyR41VsO_Bpw" id="(0.5686274509803921,0.11764705882352941)"/> </edges> - <edges xmi:type="notation:Edge" xmi:id="_fi28QPXSEeKGErZDYCqYOg" type="3002" source="_tV-Q8OoYEeKpRf481yfX-g" target="_q3yi0OoOEeKpRf481yfX-g"> - <children xmi:type="notation:Node" xmi:id="_fjAGMPXSEeKGErZDYCqYOg" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_fjAGMfXSEeKGErZDYCqYOg" x="92" y="-20"/> - </children> - <children xmi:type="notation:Node" xmi:id="_fjAGMvXSEeKGErZDYCqYOg" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_fjAGM_XSEeKGErZDYCqYOg" x="125" y="12"/> - </children> - <styles xmi:type="notation:ConnectorStyle" xmi:id="_fi28QfXSEeKGErZDYCqYOg" routing="Rectilinear" lineColor="4210752"/> - <styles xmi:type="notation:FontStyle" xmi:id="_fi28QvXSEeKGErZDYCqYOg" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> - <element xmi:type="ecore:EReference" href="setup.ecore#//Setup/updateLocations"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fi28Q_XSEeKGErZDYCqYOg" points="[11, 21, 658, -398]$[11, 415, 658, -4]$[-597, 415, 50, -4]"/> + <edges xmi:type="notation:Edge" xmi:id="_UUhu0AV5EeORNPhE9cWxTA" visible="false" type="3003" source="_LJQ64PTrEeKROP7mUifaFQ" target="_7oaMoAVzEeORNPhE9cWxTA"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_UUhu0QV5EeORNPhE9cWxTA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_UUhu0gV5EeORNPhE9cWxTA" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UUhu0wV5EeORNPhE9cWxTA" points="[-7, -33, 198, 574]$[-44, -611, 161, -4]"/> </edges> - <edges xmi:type="notation:Edge" xmi:id="_q56n4PdCEeKAgoQldAmgzQ" type="3002" source="_bOTg8OoYEeKpRf481yfX-g" target="_iK-h0PdCEeKAgoQldAmgzQ"> - <children xmi:type="notation:Node" xmi:id="_q6EY4PdCEeKAgoQldAmgzQ" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_q6EY4fdCEeKAgoQldAmgzQ" x="-5" y="-47"/> + <edges xmi:type="notation:Edge" xmi:id="_PXmFUAV6EeORNPhE9cWxTA" type="3002" source="_JIhT8AV6EeORNPhE9cWxTA" target="_1NjhoDcOEeOvrbVwd-Y02g"> + <children xmi:type="notation:Node" xmi:id="_PXnTcAV6EeORNPhE9cWxTA" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_PXnTcQV6EeORNPhE9cWxTA" x="-13" y="-61"/> </children> - <children xmi:type="notation:Node" xmi:id="_q6EY4vdCEeKAgoQldAmgzQ" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_q6EY4_dCEeKAgoQldAmgzQ" x="-5" y="15"/> + <children xmi:type="notation:Node" xmi:id="_PXnTcgV6EeORNPhE9cWxTA" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_PXnTcwV6EeORNPhE9cWxTA" x="-13" y="15"/> </children> - <styles xmi:type="notation:ConnectorStyle" xmi:id="_q56n4fdCEeKAgoQldAmgzQ" routing="Rectilinear" lineColor="4210752"/> - <styles xmi:type="notation:FontStyle" xmi:id="_q56n4vdCEeKAgoQldAmgzQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> - <element xmi:type="ecore:EReference" href="setup.ecore#//Preferences/linkLocations"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_q56n4_dCEeKAgoQldAmgzQ" points="[-5, 50, -5, -106]$[-5, 132, -5, -24]"/> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_PXmFUQV6EeORNPhE9cWxTA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_PXmFUgV6EeORNPhE9cWxTA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="setup.ecore#//WorkingSetTask/workingSets"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PXmFUwV6EeORNPhE9cWxTA" points="[63, 1, 57, -71]$[123, 1, 117, -71]$[123, 94, 117, 22]$[81, 94, 75, 22]"/> </edges> - <edges xmi:type="notation:Edge" xmi:id="_LsR48ASwEeOeiM9WAQqlaA" type="3002" source="_2Y42MOoIEeKpRf481yfX-g" target="_BvKIgASwEeOeiM9WAQqlaA"> - <children xmi:type="notation:Node" xmi:id="_LsTHEASwEeOeiM9WAQqlaA" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_LsTHEQSwEeOeiM9WAQqlaA" x="41" y="-61"/> + <edges xmi:type="notation:Edge" xmi:id="_DwQHYAV9EeORNPhE9cWxTA" visible="false" type="3003" source="_-8kV8AV8EeORNPhE9cWxTA" target="_7oaMoAVzEeORNPhE9cWxTA"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_DwQHYQV9EeORNPhE9cWxTA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_DwQHYgV9EeORNPhE9cWxTA" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DwQHYwV9EeORNPhE9cWxTA" points="[-59, 0, 38, 72]$[-59, -72, 38, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GhbOgAV9EeORNPhE9cWxTA" id="(0.49707602339181284,0.0)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ghb1kAV9EeORNPhE9cWxTA" id="(0.5,1.0)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_NmcJYAV9EeORNPhE9cWxTA" type="3003" source="_-8kV8AV8EeORNPhE9cWxTA" target="_RhEkcOoJEeKpRf481yfX-g"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_NmcJYQV9EeORNPhE9cWxTA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_NmcJYgV9EeORNPhE9cWxTA" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NmcJYwV9EeORNPhE9cWxTA" points="[53, -11, -243, 142]$[53, -26, -243, 127]$[270, -26, -26, 127]$[270, -129, -26, 24]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NmkFMAV9EeORNPhE9cWxTA" id="(0.39766081871345027,0.18604651162790697)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_qibXkAV9EeORNPhE9cWxTA" type="3002" source="_7oaMoAVzEeORNPhE9cWxTA" target="_7oaMoAVzEeORNPhE9cWxTA"> + <children xmi:type="notation:Node" xmi:id="_qidMwAV9EeORNPhE9cWxTA" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_qidMwQV9EeORNPhE9cWxTA" x="-118" y="28"/> + </children> + <children xmi:type="notation:Node" xmi:id="_qidMwgV9EeORNPhE9cWxTA" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_qidMwwV9EeORNPhE9cWxTA" x="32" y="-11"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_qibXkQV9EeORNPhE9cWxTA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_qibXkgV9EeORNPhE9cWxTA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="setup.ecore#//SetupTask/requirements"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qibXkwV9EeORNPhE9cWxTA" points="[-99, 53, -203, 8]$[-99, 127, -203, 82]$[-195, 127, -299, 82]$[-195, 22, -299, -23]$[-135, 22, -239, -23]"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qijTYAV9EeORNPhE9cWxTA" id="(0.8827160493827161,0.9264705882352942)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_NUY90AWCEeORNPhE9cWxTA" type="3003" source="__XTX4AWBEeORNPhE9cWxTA" target="_RhEkcOoJEeKpRf481yfX-g"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_NUY90QWCEeORNPhE9cWxTA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_NUY90gWCEeORNPhE9cWxTA" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NUY90wWCEeORNPhE9cWxTA" points="[-1, -20, -1, 163]$[-1, -162, -1, 21]"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_pnaukAWCEeORNPhE9cWxTA" type="3002" source="_7oaMoAVzEeORNPhE9cWxTA" target="__XTX4AWBEeORNPhE9cWxTA"> + <children xmi:type="notation:Node" xmi:id="_pnj4gAWCEeORNPhE9cWxTA" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_pnj4gQWCEeORNPhE9cWxTA" x="23" y="-12"/> </children> - <children xmi:type="notation:Node" xmi:id="_LsTuIASwEeOeiM9WAQqlaA" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_LsTuIQSwEeOeiM9WAQqlaA" x="10" y="10"/> + <children xmi:type="notation:Node" xmi:id="_pnj4ggWCEeORNPhE9cWxTA" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_pnj4gwWCEeORNPhE9cWxTA" x="45" y="17"/> </children> - <styles xmi:type="notation:ConnectorStyle" xmi:id="_LsR48QSwEeOeiM9WAQqlaA" lineColor="4210752"/> - <styles xmi:type="notation:FontStyle" xmi:id="_LsR48gSwEeOeiM9WAQqlaA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> - <element xmi:type="ecore:EReference" href="setup.ecore#//Project/workingSetGroup"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LsR48wSwEeOeiM9WAQqlaA" points="[-6, -6, 48, 57]$[-52, -32, 2, 31]"/> - <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LsWKYASwEeOeiM9WAQqlaA" id="(0.11888111888111888,0.1111111111111111)"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LsWKYQSwEeOeiM9WAQqlaA" id="(0.7898089171974523,0.5694444444444444)"/> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_pnaukQWCEeORNPhE9cWxTA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_pnaukgWCEeORNPhE9cWxTA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="setup.ecore#//SetupTask/restrictions"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pnaukwWCEeORNPhE9cWxTA" points="[-41, 33, -374, -149]$[-41, 182, -374, 0]$[274, 182, -59, 0]"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_iR67IAWXEeOw6Pg8FrULkw" visible="false" type="3003" source="_PhLMcOoNEeKpRf481yfX-g" target="_7oaMoAVzEeORNPhE9cWxTA"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_iR67IQWXEeOw6Pg8FrULkw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_iR67IgWXEeOw6Pg8FrULkw" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iR67IwWXEeOw6Pg8FrULkw" points="[-28, 0, 0, 69]$[-28, -69, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iSSukAWXEeOw6Pg8FrULkw" id="(0.7457627118644068,0.0)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_sSoLEAWXEeOw6Pg8FrULkw" visible="false" type="3003" source="_iK-h0PdCEeKAgoQldAmgzQ" target="_7oaMoAVzEeORNPhE9cWxTA"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_sSoyIAWXEeOw6Pg8FrULkw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_sSoyIQWXEeOw6Pg8FrULkw" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sSoyIgWXEeOw6Pg8FrULkw" points="[-1, -33, 224, 90]$[-1, -51, 224, 72]$[-226, -51, -1, 72]$[-226, -102, -1, 21]"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_QetPwAZpEeO9d-kMVrgNew" visible="false" type="3003" source="_QeGy0AZpEeO9d-kMVrgNew" target="_7oaMoAVzEeORNPhE9cWxTA"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_QetPwQZpEeO9d-kMVrgNew" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_QetPwgZpEeO9d-kMVrgNew" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QetPwwZpEeO9d-kMVrgNew" points="[1, 0, -275, -72]$[106, 27, -170, -45]"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_HZAu8AcLEeOppfhSm9mbUA" visible="false" type="3003" source="_epPbkAcIEeOppfhSm9mbUA" target="_7oaMoAVzEeORNPhE9cWxTA"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_HZAu8QcLEeOppfhSm9mbUA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_HZAu8gcLEeOppfhSm9mbUA" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HZAu8wcLEeOppfhSm9mbUA" points="[-12, -18, 508, 792]$[-518, -825, 2, -15]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HZG1kAcLEeOppfhSm9mbUA" id="(0.41916167664670656,0.2235294117647059)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HZG1kQcLEeOppfhSm9mbUA" id="(0.8185654008438819,0.25396825396825395)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_8qN9AAfmEeOppfhSm9mbUA" visible="false" type="3003" source="_s1eHUAflEeOppfhSm9mbUA" target="_7oaMoAVzEeORNPhE9cWxTA"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_8qN9AQfmEeOppfhSm9mbUA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_8qN9AgfmEeOppfhSm9mbUA" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8qN9AwfmEeOppfhSm9mbUA" points="[-25, -8, 391, 103]$[-25, -26, 391, 85]$[-413, -26, 3, 85]$[-413, -77, 3, 34]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8qUDoAfmEeOppfhSm9mbUA" id="(0.7461538461538462,0.10588235294117647)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8qUDoQfmEeOppfhSm9mbUA" id="(0.768976897689769,0.5098039215686274)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_aSgZIAmrEeOuXPWwsMY9fA" visible="false" type="3003" source="_aSLB8AmrEeOuXPWwsMY9fA" target="_7oaMoAVzEeORNPhE9cWxTA"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_aSgZIQmrEeOuXPWwsMY9fA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_aSgZIgmrEeOuXPWwsMY9fA" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aSgZIwmrEeOuXPWwsMY9fA" points="[1, 0, -372, -51]$[256, 35, -117, -16]"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_aSiOUAmrEeOuXPWwsMY9fA" visible="false" type="3003" source="_V2XO0AWWEeOw6Pg8FrULkw" target="_7oaMoAVzEeORNPhE9cWxTA"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_aSiOUQmrEeOuXPWwsMY9fA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_aSiOUgmrEeOuXPWwsMY9fA" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aSiOUwmrEeOuXPWwsMY9fA" points="[40, -53, -79, 70]$[40, -63, -79, 60]$[-33, -63, -152, 60]$[-33, -122, -152, 1]$[37, -122, -82, 1]"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_aSkDgAmrEeOuXPWwsMY9fA" visible="false" type="3003" source="_JIhT8AV6EeORNPhE9cWxTA" target="_7oaMoAVzEeORNPhE9cWxTA"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_aSkDgQmrEeOuXPWwsMY9fA" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_aSkDggmrEeOuXPWwsMY9fA" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aSkDgwmrEeOuXPWwsMY9fA" points="[-1, -20, 87, 97]$[-1, -61, 87, 56]$[-89, -61, -1, 56]$[-89, -92, -1, 25]"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_VNkPsDWJEeO0we5dUm5hxw" visible="false" type="3003" source="_QJaZUDWJEeO0we5dUm5hxw" target="_7oaMoAVzEeORNPhE9cWxTA"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_VNkPsTWJEeO0we5dUm5hxw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_VNkPsjWJEeO0we5dUm5hxw" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VNkPszWJEeO0we5dUm5hxw" points="[-5, -4, 809, 539]$[-812, -543, 2, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VNld0DWJEeO0we5dUm5hxw" id="(0.03680981595092025,0.1836734693877551)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VNld0TWJEeO0we5dUm5hxw" id="(0.6455696202531646,0.0)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_hJ66sDWOEeO0we5dUm5hxw" type="3002" source="_am8vMDWJEeO0we5dUm5hxw" target="_erZCwDWOEeO0we5dUm5hxw"> + <children xmi:type="notation:Node" xmi:id="_hJ7hwDWOEeO0we5dUm5hxw" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_hJ7hwTWOEeO0we5dUm5hxw" x="-34" y="-64"/> + </children> + <children xmi:type="notation:Node" xmi:id="_hJ8I0DWOEeO0we5dUm5hxw" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_hJ8I0TWOEeO0we5dUm5hxw" x="-10" y="46"/> + </children> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_hJ66sTWOEeO0we5dUm5hxw" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_hJ66sjWOEeO0we5dUm5hxw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <element xmi:type="ecore:EReference" href="setup.ecore#//TextModifyTask/modifications"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hJ66szWOEeO0we5dUm5hxw" points="[-3, 31, 8, -67]$[-10, 122, 1, 24]"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hJ9W8DWOEeO0we5dUm5hxw" id="(0.1891891891891892,0.5102040816326531)"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_P6PtMDWPEeO0we5dUm5hxw" visible="false" type="3003" source="_am8vMDWJEeO0we5dUm5hxw" target="_7oaMoAVzEeORNPhE9cWxTA"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_P6PtMTWPEeO0we5dUm5hxw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_P6PtMjWPEeO0we5dUm5hxw" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_P6PtMzWPEeO0we5dUm5hxw" points="[-44, -30, 867, 595]$[-912, -655, -1, -30]"/> + </edges> + <edges xmi:type="notation:Edge" xmi:id="_dFqQQDYsEeO8Ub-p5y_fsQ" type="3003" source="_678VMOoJEeKpRf481yfX-g" target="__XTX4AWBEeORNPhE9cWxTA"> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_dFqQQTYsEeO8Ub-p5y_fsQ" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_dFqQQjYsEeO8Ub-p5y_fsQ" fontName="Segoe UI"/> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dFqQQzYsEeO8Ub-p5y_fsQ" points="[11, -9, -513, 455]$[525, -471, 1, -7]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dF2dgDYsEeO8Ub-p5y_fsQ" id="(0.3089887640449438,0.14705882352941177)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dF2dgTYsEeO8Ub-p5y_fsQ" id="(0.09933774834437085,0.6938775510204082)"/> </edges> </notation:Diagram> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.genmodel b/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.genmodel index b5aaeda28a..d07ba3b4fc 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.genmodel +++ b/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.genmodel @@ -3,83 +3,50 @@ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.cdo.releng.setup/src" creationIcons="false" modelPluginID="org.eclipse.emf.cdo.releng.setup" modelName="Setup" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" codeFormatting="true" testsDirectory="" importerID="org.eclipse.emf.importer.ecore" - complianceLevel="5.0" copyrightFields="false" optimizedHasChildren="true" runtimeVersion="2.5" - usedGenPackages="../../org.eclipse.emf.cdo.releng.workingsets/model/workingsets.genmodel#//workingsets" + containmentProxies="true" complianceLevel="5.0" copyrightFields="false" optimizedHasChildren="true" + runtimeVersion="2.5" usedGenPackages="../../org.eclipse.emf.cdo.releng.workingsets/model/workingsets.genmodel#//workingsets ../../org.eclipse.emf.cdo.releng.predicates/model/predicates.genmodel#//predicates" importOrganizing="true"> <foreignModel>setup.ecore</foreignModel> <genPackages prefix="Setup" basePackage="org.eclipse.emf.cdo.releng" disposableProviderFactory="true" - multipleEditorPages="false" ecorePackage="setup.ecore#/"> + multipleEditorPages="false" extensibleProviderFactory="true" childCreationExtenders="true" + ecorePackage="setup.ecore#/"> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="setup.ecore#//SetupTaskScope"> + <genEnumLiterals ecoreEnumLiteral="setup.ecore#//SetupTaskScope/None"/> + <genEnumLiterals ecoreEnumLiteral="setup.ecore#//SetupTaskScope/Configuration"/> + <genEnumLiterals ecoreEnumLiteral="setup.ecore#//SetupTaskScope/Project"/> + <genEnumLiterals ecoreEnumLiteral="setup.ecore#//SetupTaskScope/Branch"/> + <genEnumLiterals ecoreEnumLiteral="setup.ecore#//SetupTaskScope/User"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="setup.ecore#//Trigger"> + <genEnumLiterals ecoreEnumLiteral="setup.ecore#//Trigger/BOOTSTRAP"/> + <genEnumLiterals ecoreEnumLiteral="setup.ecore#//Trigger/STARTUP"/> + <genEnumLiterals ecoreEnumLiteral="setup.ecore#//Trigger/MANUAL"/> + </genEnums> <genDataTypes ecoreDataType="setup.ecore#//URI"/> - <genClasses ecoreClass="setup.ecore#//Preferences"> - <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Preferences/userName"/> - <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Preferences/installFolder"/> - <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Preferences/gitPrefix"/> - <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Preferences/linkLocations"/> - </genClasses> - <genClasses ecoreClass="setup.ecore#//LinkLocation" labelFeature="#//setup/LinkLocation/path"> - <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//LinkLocation/path"/> - <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//LinkLocation/name"/> - </genClasses> - <genClasses ecoreClass="setup.ecore#//ToolInstallation"> - <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//ToolInstallation/directorCalls"/> - <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//ToolInstallation/toolPreferences"/> - </genClasses> - <genClasses ecoreClass="setup.ecore#//ToolPreference"> - <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ToolPreference/key"/> - <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ToolPreference/value"/> - </genClasses> + <genDataTypes ecoreDataType="setup.ecore#//Exception"/> + <genDataTypes ecoreDataType="setup.ecore#//TriggerSet"/> <genClasses ecoreClass="setup.ecore#//EclipseVersion"> <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//EclipseVersion/configuration"/> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//EclipseVersion/version"/> - <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//EclipseVersion/directorCall"/> - </genClasses> - <genClasses ecoreClass="setup.ecore#//DirectorCall"> - <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//DirectorCall/installableUnits"/> - <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//DirectorCall/p2Repositories"/> - </genClasses> - <genClasses ecoreClass="setup.ecore#//InstallableUnit"> - <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//InstallableUnit/directorCall"/> - <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//InstallableUnit/id"/> - </genClasses> - <genClasses ecoreClass="setup.ecore#//P2Repository"> - <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//P2Repository/directorCall"/> - <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//P2Repository/url"/> </genClasses> <genClasses ecoreClass="setup.ecore#//Configuration"> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Configuration/projects"/> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Configuration/eclipseVersions"/> </genClasses> + <genClasses image="false" ecoreClass="setup.ecore#//ConfigurableItem"/> <genClasses ecoreClass="setup.ecore#//Project"> <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//Project/configuration"/> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Project/branches"/> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Project/name"/> - <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Project/apiBaselines"/> - <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Project/workingSetGroup"/> </genClasses> <genClasses ecoreClass="setup.ecore#//Branch"> <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//Branch/project"/> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Branch/name"/> - <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Branch/gitClones"/> - <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference setup.ecore#//Branch/apiBaseline"/> - <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Branch/mspecFilePath"/> - <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Branch/cloneVariableName"/> - <genOperations ecoreOperation="setup.ecore#//Branch/isInstalled"> - <genParameters ecoreParameter="setup.ecore#//Branch/isInstalled/installFolder"/> - </genOperations> - <genOperations ecoreOperation="setup.ecore#//Branch/getURI"> - <genParameters ecoreParameter="setup.ecore#//Branch/getURI/installFolder"/> - </genOperations> - </genClasses> - <genClasses ecoreClass="setup.ecore#//ApiBaseline"> - <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//ApiBaseline/project"/> - <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ApiBaseline/version"/> - <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ApiBaseline/zipLocation"/> </genClasses> - <genClasses ecoreClass="setup.ecore#//GitClone" labelFeature="#//setup/GitClone/remoteURI"> - <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//GitClone/branch"/> - <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitClone/name"/> - <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitClone/remoteURI"/> - <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitClone/checkoutBranch"/> + <genClasses ecoreClass="setup.ecore#//Preferences"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Preferences/userName"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Preferences/installFolder"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Preferences/gitPrefix"/> </genClasses> <genClasses ecoreClass="setup.ecore#//Setup"> <genFeatures notify="false" children="true" createChild="false" propertySortChoices="true" @@ -87,7 +54,90 @@ <genFeatures notify="false" children="true" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference setup.ecore#//Setup/eclipseVersion"/> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Setup/preferences"/> - <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Setup/updateLocations"/> + <genOperations ecoreOperation="setup.ecore#//Setup/getSetupTasks"> + <genParameters ecoreParameter="setup.ecore#//Setup/getSetupTasks/filterRestrictions"/> + <genParameters ecoreParameter="setup.ecore#//Setup/getSetupTasks/trigger"/> + </genOperations> + </genClasses> + <genClasses image="false" ecoreClass="setup.ecore#//SetupTask"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference setup.ecore#//SetupTask/requirements"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference setup.ecore#//SetupTask/restrictions"/> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//SetupTask/scope"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//SetupTask/excludedTriggers"/> + <genOperations ecoreOperation="setup.ecore#//SetupTask/requires"> + <genParameters ecoreParameter="setup.ecore#//SetupTask/requires/setupTask"/> + </genOperations> + <genOperations ecoreOperation="setup.ecore#//SetupTask/getValidTriggers"/> + <genOperations ecoreOperation="setup.ecore#//SetupTask/getTriggers"/> + </genClasses> + <genClasses image="false" ecoreClass="setup.ecore#//SetupTaskContainer"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//SetupTaskContainer/setupTasks"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//CompoundSetupTask"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//CompoundSetupTask/name"/> + </genClasses> + <genClasses image="false" ecoreClass="setup.ecore#//OneTimeSetupTask"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//OneTimeSetupTask/id"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//EclipseIniTask" labelFeature="#//setup/EclipseIniTask/option"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//EclipseIniTask/option"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//EclipseIniTask/value"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//EclipseIniTask/vm"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//LinkLocationTask" labelFeature="#//setup/LinkLocationTask/path"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//LinkLocationTask/path"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//LinkLocationTask/name"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//P2Task"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//P2Task/p2Repositories"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//P2Task/installableUnits"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//InstallableUnit"> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//InstallableUnit/p2Task"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//InstallableUnit/id"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//P2Repository"> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//P2Repository/p2Task"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//P2Repository/url"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//BuckminsterImportTask" labelFeature="#//setup/BuckminsterImportTask/mspec"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//BuckminsterImportTask/mspec"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//BuckminsterImportTask/targetPlatform"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//BuckminsterImportTask/bundlePool"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//ApiBaselineTask" labelFeature="#//setup/ApiBaselineTask/version"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ApiBaselineTask/version"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ApiBaselineTask/zipLocation"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//GitCloneTask"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitCloneTask/name"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitCloneTask/remoteName"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitCloneTask/remoteURI"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitCloneTask/checkoutBranch"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//EclipsePreferenceTask" labelFeature="#//setup/EclipsePreferenceTask/key"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//EclipsePreferenceTask/key"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//EclipsePreferenceTask/value"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//StringVariableTask"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//StringVariableTask/name"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//StringVariableTask/value"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//StringVariableTask/description"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//WorkingSetTask"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//WorkingSetTask/workingSets"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//ResourceCopyTask"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ResourceCopyTask/sourceURL"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ResourceCopyTask/targetURL"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//TextModifyTask"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//TextModifyTask/url"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//TextModifyTask/modifications"/> + </genClasses> + <genClasses ecoreClass="setup.ecore#//TextModification"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//TextModification/pattern"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//TextModification/substitutions"/> </genClasses> </genPackages> </genmodel:GenModel> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.setup/plugin.xml index 018bf574cb..632bc9a386 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/plugin.xml +++ b/plugins/org.eclipse.emf.cdo.releng.setup/plugin.xml @@ -21,4 +21,12 @@ genModel="model/setup.genmodel"/> </extension> + <extension + point="org.eclipse.ui.startup"> + <startup + class="org.eclipse.emf.cdo.releng.internal.setup.Activator$EarlyStartup"> + </startup> + </extension> + + </plugin> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Activator.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/Activator.java index 49daa4e6df..5bcf7a3b8b 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Activator.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/Activator.java @@ -8,12 +8,13 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.helper; +package org.eclipse.emf.cdo.releng.internal.setup; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Plugin; import org.eclipse.core.runtime.Status; +import org.eclipse.ui.IStartup; import org.osgi.framework.BundleContext; @@ -24,9 +25,14 @@ public class Activator extends Plugin { public static final String PLUGIN_ID = "org.eclipse.emf.cdo.releng.setup"; + public static final boolean SETUP_IDE = "true".equalsIgnoreCase(System.getProperty( + "org.eclipse.emf.cdo.releng.setup.ide", "false")); + private static Activator plugin; - static BundleContext bundleContext; + private static BundleContext bundleContext; + + private SetupTaskPerformer setupTaskPerformer; public Activator() { @@ -38,11 +44,37 @@ public class Activator extends Plugin super.start(context); bundleContext = context; plugin = this; + + try + { + if (SETUP_IDE) + { + setupTaskPerformer = new SetupTaskPerformer(false); + setupTaskPerformer.perform(); + } + } + catch (Exception ex) + { + log(ex); + } } @Override public void stop(BundleContext context) throws Exception { + try + { + if (setupTaskPerformer != null) + { + setupTaskPerformer.dispose(); + setupTaskPerformer = null; + } + } + catch (Exception ex) + { + log(ex); + } + plugin = null; super.stop(context); } @@ -86,8 +118,23 @@ public class Activator extends Plugin return new Status(IStatus.ERROR, PLUGIN_ID, msg, t); } + public static BundleContext getBundleContext() + { + return bundleContext; + } + public static Activator getDefault() { return plugin; } + + /** + * @author Eike Stepper + */ + public static final class EarlyStartup implements IStartup + { + public void earlyStartup() + { + } + } } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java new file mode 100644 index 0000000000..a101cd47c5 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java @@ -0,0 +1,540 @@ +/* + * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.internal.setup; + +import org.eclipse.emf.cdo.releng.internal.setup.ui.ProgressLogDialog; +import org.eclipse.emf.cdo.releng.setup.Branch; +import org.eclipse.emf.cdo.releng.setup.Project; +import org.eclipse.emf.cdo.releng.setup.Setup; +import org.eclipse.emf.cdo.releng.setup.SetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; +import org.eclipse.emf.cdo.releng.setup.Trigger; +import org.eclipse.emf.cdo.releng.setup.util.OS; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogRunnable; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.IPath; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; + +import java.io.File; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.ListIterator; +import java.util.Map; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * @author Eike Stepper + */ +public class SetupTaskPerformer extends HashMap<Object, Object> implements SetupTaskContext +{ + private static final String RELENG_URL = System.getProperty("releng.url", + "http://download.eclipse.org/modeling/emf/cdo/updates/integration").replace('\\', '/'); + + private static final long serialVersionUID = 1L; + + private static ProgressLog progress; + + private Trigger trigger; + + private File branchDir; + + private Setup setup; + + private transient boolean restartNeeded; + + private List<String> logMessageBuffer; + + public SetupTaskPerformer(File branchDir) + { + trigger = Trigger.BOOTSTRAP; + + this.branchDir = branchDir; + + initialize(); + } + + public SetupTaskPerformer(boolean manual) throws Exception + { + trigger = manual ? Trigger.MANUAL : Trigger.STARTUP; + + IPath branchDirPath = ResourcesPlugin.getWorkspace().getRoot().getLocation().removeLastSegments(1); + branchDir = new File(branchDirPath.toOSString()).getCanonicalFile(); + + initialize(); + } + + private void initialize() + { + ResourceSet resourceSet = new ResourceSetImpl(); + resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("xmi", new XMIResourceFactoryImpl()); + + URI uri = URI.createFileURI(branchDir.toString() + "/setup.xmi"); + Resource resource = resourceSet.getResource(uri, true); + + setup = (Setup)resource.getContents().get(0); + + Branch branch = setup.getBranch(); + String branchName = branch.getName(); + + Project project = branch.getProject(); + String projectName = project.getName(); + + put("setup.git.prefix", setup.getPreferences().getGitPrefix()); + put("setup.install.dir", getInstallDir()); + put("setup.project.dir", getProjectDir()); + put("setup.branch.dir", getBranchDir()); + put("setup.eclipse.dir", getEclipseDir()); + put("setup.tp.dir", getTargetPlatformDir()); + put("setup.ws.dir", getWorkspaceDir()); + put("setup.project.name", projectName); + put("setup.branch.name", branchName); + put("releng.url", RELENG_URL); + } + + public void dispose() + { + setup = null; + branchDir = null; + } + + public void log(String line) + { + if (progress != null) + { + if (logMessageBuffer != null) + { + for (String value : logMessageBuffer) + { + progress.log(value); + } + + logMessageBuffer = null; + } + + progress.log(line); + } + else + { + if (logMessageBuffer == null) + { + logMessageBuffer = new ArrayList<String>(); + } + + logMessageBuffer.add(line); + } + } + + public boolean isCancelled() + { + if (progress != null) + { + return progress.isCancelled(); + } + + return false; + } + + public Trigger getTrigger() + { + return trigger; + } + + public boolean isRestartNeeded() + { + return restartNeeded; + } + + public void setRestartNeeded() + { + restartNeeded = true; + } + + private static final Pattern PATTERN = Pattern.compile("\\$\\{([^${}|]+)(\\|([^}]+))?}"); + + protected String lookup(String key) + { + Object object = get(key); + if (object != null) + { + return object.toString(); + } + + return System.getProperty(key, key); + } + + interface StringFilter + { + public String filter(String value); + } + + private static final Map<String, StringFilter> FILTERS = new HashMap<String, StringFilter>(); + + static + { + FILTERS.put("uri", new StringFilter() + { + public String filter(String value) + { + return URI.createFileURI(value).toString(); + } + }); + FILTERS.put("upper", new StringFilter() + { + public String filter(String value) + { + return value.toUpperCase(); + } + }); + FILTERS.put("lower", new StringFilter() + { + public String filter(String value) + { + return value.toLowerCase(); + } + }); + } + + protected String filter(String value, String filterName) + { + StringFilter filter = FILTERS.get(filterName); + if (filter != null) + { + return filter.filter(value); + } + + return value; + } + + public String expandString(String string) + { + StringBuilder result = new StringBuilder(); + int previous = 0; + for (Matcher matcher = PATTERN.matcher(string); matcher.find();) + { + result.append(string.substring(previous, matcher.start())); + String key = matcher.group(1); + String value = lookup(key); + String filters = matcher.group(3); + if (filters != null) + { + for (String filterName : filters.split("\\|")) + { + value = filter(value, filterName); + } + } + result.append(value); + previous = matcher.end(); + } + result.append(string.substring(previous)); + return result.toString(); + } + + public OS getOS() + { + return OS.INSTANCE; + } + + public String getP2ProfileName() + { + Branch branch = setup.getBranch(); + Project project = branch.getProject(); + + String profileName = project.getName() + "_" + branch.getName(); + profileName = profileName.replace('.', '_'); + profileName = profileName.replace('-', '_'); + profileName = profileName.replace('/', '_'); + profileName = profileName.replace('\\', '_'); + return profileName; + } + + public File getP2ProfileDir() + { + return new File(getP2AgentDir(), "org.eclipse.equinox.p2.engine/profileRegistry/" + getP2ProfileName() + ".profile"); + } + + public File getP2AgentDir() + { + return new File(getP2PoolDir(), "p2"); + } + + public File getP2PoolDir() + { + return new File(getInstallDir(), ".p2pool-ide"); + } + + public File getInstallDir() + { + return getProjectDir().getParentFile(); + } + + public File getProjectDir() + { + return branchDir.getParentFile(); + } + + public File getBranchDir() + { + return branchDir; + } + + public File getEclipseDir() + { + return new File(branchDir, "eclipse"); + } + + // TODO Is this Bucky-specific? + public File getTargetPlatformDir() + { + return new File(branchDir, "tp"); + } + + public File getWorkspaceDir() + { + return new File(branchDir, "ws"); + } + + public Setup getSetup() + { + return setup; + } + + public void perform() throws Exception + { + EList<SetupTask> setupTasks = setup.getSetupTasks(true, trigger); + if (setupTasks.isEmpty()) + { + return; + } + + Map<SetupTask, SetupTask> substitutions = getSubstitutions(setupTasks); + setup = copySetup(setupTasks, substitutions); + + perform(setupTasks); + } + + private void perform(EList<SetupTask> setupTasks) throws Exception + { + final EList<SetupTask> neededTasks = getNeededTasks(setupTasks); + if (neededTasks.isEmpty()) + { + return; + } + + if (Activator.SETUP_IDE && trigger != Trigger.MANUAL) + { + File logFile = new File(getInstallDir(), "setup.log"); + IWorkbenchWindow window = PlatformUI.getWorkbench().getWorkbenchWindows()[0]; + final Shell shell = window.getShell(); + ProgressLogDialog.run(shell, logFile, "Setting up IDE", new ProgressLogRunnable() + { + public boolean run(ProgressLog log) throws Exception + { + doPerform(neededTasks); + return isRestartNeeded(); + } + }); + } + else + { + doPerform(neededTasks); + } + } + + private void doPerform(EList<SetupTask> neededTasks) throws Exception + { + Branch branch = setup.getBranch(); + log("Setting up " + branch.getProject().getName() + " " + branch.getName()); + + for (SetupTask neededTask : neededTasks) + { + neededTask.perform(this); + neededTask.dispose(); + } + } + + private Map<SetupTask, SetupTask> getSubstitutions(EList<SetupTask> setupTasks) + { + SetupTaskComparator.sort(setupTasks); + + Map<Object, SetupTask> overrides = new HashMap<Object, SetupTask>(); + Map<SetupTask, SetupTask> substitutions = new HashMap<SetupTask, SetupTask>(); + + for (SetupTask setupTask : setupTasks) + { + Object overrideToken = setupTask.getOverrideToken(); + SetupTask overriddenTask = overrides.put(overrideToken, setupTask); + if (overriddenTask != null) + { + substitutions.put(overriddenTask, setupTask); + } + } + + // Shorten the paths through the substitutions map + for (Map.Entry<SetupTask, SetupTask> entry : substitutions.entrySet()) + { + SetupTask task = entry.getValue(); + + for (;;) + { + SetupTask overridingTask = substitutions.get(task); + if (overridingTask == null) + { + break; + } + + entry.setValue(overridingTask); + } + } + + return substitutions; + } + + private Setup copySetup(EList<SetupTask> setupTasks, Map<SetupTask, SetupTask> substitutions) + { + Set<EObject> roots = new LinkedHashSet<EObject>(); + roots.add(setup); + + for (EObject eObject : setup.eCrossReferences()) + { + EObject rootContainer = EcoreUtil.getRootContainer(eObject); + roots.add(rootContainer); + } + + EcoreUtil.Copier copier = new EcoreUtil.Copier(); + Setup setup = (Setup)copier.copyAll(roots).iterator().next(); + + for (Map.Entry<SetupTask, SetupTask> entry : substitutions.entrySet()) + { + SetupTask overriddenTask = entry.getKey(); + SetupTask overridingTask = entry.getValue(); + + EObject copy = copier.get(overridingTask); + copier.put(overriddenTask, copy); + } + + copier.copyReferences(); + + for (ListIterator<SetupTask> it = setupTasks.listIterator(); it.hasNext();) + { + SetupTask setupTask = it.next(); + if (substitutions.containsKey(setupTask)) + { + it.remove(); + } + else + { + SetupTask copy = (SetupTask)copier.get(setupTask); + it.set(copy); + } + } + + SetupTaskComparator.sort(setupTasks); + return setup; + } + + private EList<SetupTask> getNeededTasks(EList<SetupTask> setupTasks) throws Exception + { + EList<SetupTask> result = new BasicEList<SetupTask>(); + + for (Iterator<SetupTask> it = setupTasks.iterator(); it.hasNext();) + { + SetupTask setupTask = it.next(); + if (setupTask.isNeeded(this)) + { + result.add(setupTask); + } + else + { + setupTask.dispose(); + } + } + + return result; + } + + public static ProgressLog getProgress() + { + return progress; + } + + public static void setProgress(ProgressLog progress) + { + SetupTaskPerformer.progress = progress; + } + + /** + * @author Eike Stepper + */ + public static class SetupTaskComparator implements Comparator<SetupTask> + { + public static void sort(EList<SetupTask> setupTasks) + { + Collections.sort(setupTasks, new SetupTaskComparator()); + } + + public int compare(SetupTask t1, SetupTask t2) + { + boolean t1RequiresT2 = t1.requires(t2); + boolean t2RequiresT1 = t2.requires(t1); + if (t1RequiresT2 && t2RequiresT1) + { + throw new IllegalStateException("Requirements cycle detected between " + t1 + " and " + t2); + } + + if (t1RequiresT2 && !t2RequiresT1) + { + return 1; + } + + if (!t1RequiresT2 && t2RequiresT1) + { + return -1; + } + + int scope1 = t1.getScope().getValue(); + int scope2 = t2.getScope().getValue(); + if (scope1 < scope2) + { + return -1; + } + + if (scope1 > scope2) + { + return 1; + } + + String uri1 = EcoreUtil.getURI(t1).toString(); + String uri2 = EcoreUtil.getURI(t2).toString(); + return uri1.compareTo(uri2); // Arbitrary but symmetric within one ResourceSet + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/emf/cdo/releng/setup/ui/ProgressLogDialog.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ProgressLogDialog.java index 5afc52299b..a157fba1e6 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/emf/cdo/releng/setup/ui/ProgressLogDialog.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ProgressLogDialog.java @@ -8,11 +8,13 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.ui; +package org.eclipse.emf.cdo.releng.internal.setup.ui; -import org.eclipse.emf.cdo.releng.setup.helper.Progress; -import org.eclipse.emf.cdo.releng.setup.helper.ProgressLog; -import org.eclipse.emf.cdo.releng.setup.helper.ProgressLogRunnable; +import org.eclipse.emf.cdo.releng.internal.setup.Activator; +import org.eclipse.emf.cdo.releng.internal.setup.SetupTaskPerformer; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogProvider; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogRunnable; import org.eclipse.net4j.util.io.IOUtil; @@ -33,11 +35,11 @@ import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.PlatformUI; -import org.eclipse.wb.swt.ResourceManager; -import org.eclipse.wb.swt.SWTResourceManager; +import org.eclipse.ui.internal.progress.ProgressManager; import java.io.File; import java.io.FileNotFoundException; @@ -90,7 +92,7 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog protected Control createDialogArea(Composite parent) { setMessage("Please wait until the setup process is finished and the OK button is enabled..."); - setTitleImage(ResourceManager.getPluginImage("org.eclipse.emf.cdo.releng.setup.editor", "icons/install_wiz.gif")); + setTitleImage(ResourceManager.getPluginImage("org.eclipse.emf.cdo.releng.setup", "icons/install_wiz.gif")); getShell().setText(TITLE); setTitle(TITLE); @@ -133,13 +135,16 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog public synchronized void create() { super.create(); - Progress.set(this); + SetupTaskPerformer.setProgress(this); + ProgressManager oldProgressProvider = ProgressManager.getInstance(); + ProgressLogProvider newProgressLogProvider = new ProgressLogProvider(this, oldProgressProvider); + Job.getJobManager().setProgressProvider(newProgressLogProvider); } @Override public boolean close() { - Progress.set(null); + SetupTaskPerformer.setProgress(null); if (logStream != null) { @@ -167,7 +172,7 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog return cancelled; } - public void addLine(String line) + public void log(String line) { if (isCancelled()) { @@ -182,7 +187,7 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog || line.startsWith("Searching for associated repositories.") || line.startsWith("Preparing type ") || line.startsWith("Loading project description") || line.startsWith("Generating cspec from PDE artifacts") || line.startsWith("Reporting encoding changes") || line.startsWith("Saving") - || line.startsWith("Downloading software")) + || line.startsWith("Downloading software") || line.startsWith("Java indexing...")) { return; } @@ -237,6 +242,8 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog public void setFinished() { + Job.getJobManager().setProgressProvider(ProgressManager.getInstance()); + asyncExec(new Runnable() { public void run() @@ -281,7 +288,7 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog { final boolean[] restart = { false }; final ProgressLogDialog dialog = new ProgressLogDialog(shell, logFile); - shell.getDisplay().asyncExec(new Runnable() + Runnable jobRunnable = new Runnable() { public void run() { @@ -294,20 +301,20 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog try { - dialog.addLine(jobName); + dialog.log(jobName); restart[0] = runnable.run(dialog); } catch (Exception ex) { Activator.log(ex); - dialog.addLine("An error occured: " + ex.getMessage()); - dialog.addLine("The Error Log contains more infos..."); + dialog.log("An error occured: " + ex.getMessage()); + dialog.log("The Error Log contains more infos..."); } finally { long seconds = (System.currentTimeMillis() - start) / 1000; - dialog.addLine("Took " + seconds + " seconds."); - dialog.addLine("Press OK to close the dialog" + (restart[0] ? " and restart Eclipse" : "") + "..."); + dialog.log("Took " + seconds + " seconds."); + dialog.log("Press OK to close the dialog" + (restart[0] ? " and restart Eclipse" : "") + "..."); dialog.setFinished(); } @@ -316,12 +323,21 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog }; job.schedule(); + + if (dialog.open() == ProgressLogDialog.OK && restart[0]) + { + PlatformUI.getWorkbench().restart(); + } } - }); + }; - if (dialog.open() == ProgressLogDialog.OK && restart[0]) + if (Display.getCurrent() == shell.getDisplay()) + { + jobRunnable.run(); + } + else { - PlatformUI.getWorkbench().restart(); + shell.getDisplay().asyncExec(jobRunnable); } } catch (Exception ex) diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ResourceManager.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ResourceManager.java new file mode 100644 index 0000000000..889bda0117 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ResourceManager.java @@ -0,0 +1,511 @@ +/******************************************************************************* + * Copyright (c) 2011 Google, Inc. + * 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: + * Google, Inc. - initial API and implementation + *******************************************************************************/ +package org.eclipse.emf.cdo.releng.internal.setup.ui; + +import org.eclipse.core.runtime.Platform; +import org.eclipse.jface.resource.CompositeImageDescriptor; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.graphics.Rectangle; + +import org.osgi.framework.Bundle; + +import java.io.File; +import java.io.InputStream; +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +/** + * Utility class for managing OS resources associated with SWT/JFace controls such as colors, fonts, images, + * etc. + * + * !!! IMPORTANT !!! Application code must explicitly invoke the <code>dispose()</code> method to release the + * operating system resources managed by cached objects when those objects and OS resources are no longer + * needed (e.g. on application shutdown) + * + * This class may be freely distributed as part of any application or plugin. + * <p> + * + * @author scheglov_ke + * @author Dan Rubel + */ +public class ResourceManager extends SWTResourceManager +{ + // ////////////////////////////////////////////////////////////////////////// + // + // Image + // + // ////////////////////////////////////////////////////////////////////////// + private static Map<ImageDescriptor, Image> m_descriptorImageMap = new HashMap<ImageDescriptor, Image>(); + + /** + * Returns an {@link ImageDescriptor} stored in the file at the specified path relative to the specified + * class. + * + * @param clazz + * the {@link Class} relative to which to find the image descriptor. + * @param path + * the path to the image file. + * @return the {@link ImageDescriptor} stored in the file at the specified path. + */ + public static ImageDescriptor getImageDescriptor(Class<?> clazz, String path) + { + return ImageDescriptor.createFromFile(clazz, path); + } + + /** + * Returns an {@link ImageDescriptor} stored in the file at the specified path. + * + * @param path + * the path to the image file. + * @return the {@link ImageDescriptor} stored in the file at the specified path. + */ + public static ImageDescriptor getImageDescriptor(String path) + { + try + { + return ImageDescriptor.createFromURL(new File(path).toURI().toURL()); + } + catch (MalformedURLException e) + { + return null; + } + } + + /** + * Returns an {@link Image} based on the specified {@link ImageDescriptor}. + * + * @param descriptor + * the {@link ImageDescriptor} for the {@link Image}. + * @return the {@link Image} based on the specified {@link ImageDescriptor}. + */ + public static Image getImage(ImageDescriptor descriptor) + { + if (descriptor == null) + { + return null; + } + Image image = m_descriptorImageMap.get(descriptor); + if (image == null) + { + image = descriptor.createImage(); + m_descriptorImageMap.put(descriptor, image); + } + return image; + } + + /** + * Maps images to decorated images. + */ + @SuppressWarnings("unchecked") + private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY]; + + /** + * Returns an {@link Image} composed of a base image decorated by another image. + * + * @param baseImage + * the base {@link Image} that should be decorated. + * @param decorator + * the {@link Image} to decorate the base image. + * @return {@link Image} The resulting decorated image. + */ + public static Image decorateImage(Image baseImage, Image decorator) + { + return decorateImage(baseImage, decorator, BOTTOM_RIGHT); + } + + /** + * Returns an {@link Image} composed of a base image decorated by another image. + * + * @param baseImage + * the base {@link Image} that should be decorated. + * @param decorator + * the {@link Image} to decorate the base image. + * @param corner + * the corner to place decorator image. + * @return the resulting decorated {@link Image}. + */ + public static Image decorateImage(final Image baseImage, final Image decorator, final int corner) + { + if (corner <= 0 || corner >= LAST_CORNER_KEY) + { + throw new IllegalArgumentException("Wrong decorate corner"); + } + Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner]; + if (cornerDecoratedImageMap == null) + { + cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>(); + m_decoratedImageMap[corner] = cornerDecoratedImageMap; + } + Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage); + if (decoratedMap == null) + { + decoratedMap = new HashMap<Image, Image>(); + cornerDecoratedImageMap.put(baseImage, decoratedMap); + } + // + Image result = decoratedMap.get(decorator); + if (result == null) + { + final Rectangle bib = baseImage.getBounds(); + final Rectangle dib = decorator.getBounds(); + final Point baseImageSize = new Point(bib.width, bib.height); + CompositeImageDescriptor compositImageDesc = new CompositeImageDescriptor() + { + @Override + protected void drawCompositeImage(int width, int height) + { + drawImage(baseImage.getImageData(), 0, 0); + if (corner == TOP_LEFT) + { + drawImage(decorator.getImageData(), 0, 0); + } + else if (corner == TOP_RIGHT) + { + drawImage(decorator.getImageData(), bib.width - dib.width, 0); + } + else if (corner == BOTTOM_LEFT) + { + drawImage(decorator.getImageData(), 0, bib.height - dib.height); + } + else if (corner == BOTTOM_RIGHT) + { + drawImage(decorator.getImageData(), bib.width - dib.width, bib.height - dib.height); + } + } + + @Override + protected Point getSize() + { + return baseImageSize; + } + }; + // + result = compositImageDesc.createImage(); + decoratedMap.put(decorator, result); + } + return result; + } + + /** + * Dispose all of the cached images. + */ + public static void disposeImages() + { + SWTResourceManager.disposeImages(); + // dispose ImageDescriptor images + { + for (Iterator<Image> I = m_descriptorImageMap.values().iterator(); I.hasNext();) + { + I.next().dispose(); + } + m_descriptorImageMap.clear(); + } + // dispose decorated images + for (int i = 0; i < m_decoratedImageMap.length; i++) + { + Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i]; + if (cornerDecoratedImageMap != null) + { + for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values()) + { + for (Image image : decoratedMap.values()) + { + image.dispose(); + } + decoratedMap.clear(); + } + cornerDecoratedImageMap.clear(); + } + } + // dispose plugin images + { + for (Iterator<Image> I = m_URLImageMap.values().iterator(); I.hasNext();) + { + I.next().dispose(); + } + m_URLImageMap.clear(); + } + } + + // ////////////////////////////////////////////////////////////////////////// + // + // Plugin images support + // + // ////////////////////////////////////////////////////////////////////////// + /** + * Maps URL to images. + */ + private static Map<String, Image> m_URLImageMap = new HashMap<String, Image>(); + + /** + * Provider for plugin resources, used by WindowBuilder at design time. + */ + public interface PluginResourceProvider + { + URL getEntry(String symbolicName, String path); + } + + /** + * Instance of {@link PluginResourceProvider}, used by WindowBuilder at design time. + */ + private static PluginResourceProvider m_designTimePluginResourceProvider = null; + + /** + * Returns an {@link Image} based on a plugin and file path. + * + * @param plugin + * the plugin {@link Object} containing the image + * @param name + * the path to the image within the plugin + * @return the {@link Image} stored in the file at the specified path + * + * @deprecated Use {@link #getPluginImage(String, String)} instead. + */ + @Deprecated + public static Image getPluginImage(Object plugin, String name) + { + try + { + URL url = getPluginImageURL(plugin, name); + if (url != null) + { + return getPluginImageFromUrl(url); + } + } + catch (Throwable e) + { + // Ignore any exceptions + } + return null; + } + + /** + * Returns an {@link Image} based on a {@link Bundle} and resource entry path. + * + * @param symbolicName + * the symbolic name of the {@link Bundle}. + * @param path + * the path of the resource entry. + * @return the {@link Image} stored in the file at the specified path. + */ + public static Image getPluginImage(String symbolicName, String path) + { + try + { + URL url = getPluginImageURL(symbolicName, path); + if (url != null) + { + return getPluginImageFromUrl(url); + } + } + catch (Throwable e) + { + // Ignore any exceptions + } + return null; + } + + /** + * Returns an {@link Image} based on given {@link URL}. + */ + private static Image getPluginImageFromUrl(URL url) + { + try + { + try + { + String key = url.toExternalForm(); + Image image = m_URLImageMap.get(key); + if (image == null) + { + InputStream stream = url.openStream(); + try + { + image = getImage(stream); + m_URLImageMap.put(key, image); + } + finally + { + stream.close(); + } + } + return image; + } + catch (Throwable e) + { + // Ignore any exceptions + } + } + catch (Throwable e) + { + // Ignore any exceptions + } + return null; + } + + /** + * Returns an {@link ImageDescriptor} based on a plugin and file path. + * + * @param plugin + * the plugin {@link Object} containing the image. + * @param name + * the path to th eimage within the plugin. + * @return the {@link ImageDescriptor} stored in the file at the specified path. + * + * @deprecated Use {@link #getPluginImageDescriptor(String, String)} instead. + */ + @Deprecated + public static ImageDescriptor getPluginImageDescriptor(Object plugin, String name) + { + try + { + try + { + URL url = getPluginImageURL(plugin, name); + return ImageDescriptor.createFromURL(url); + } + catch (Throwable e) + { + // Ignore any exceptions + } + } + catch (Throwable e) + { + // Ignore any exceptions + } + return null; + } + + /** + * Returns an {@link ImageDescriptor} based on a {@link Bundle} and resource entry path. + * + * @param symbolicName + * the symbolic name of the {@link Bundle}. + * @param path + * the path of the resource entry. + * @return the {@link ImageDescriptor} based on a {@link Bundle} and resource entry path. + */ + public static ImageDescriptor getPluginImageDescriptor(String symbolicName, String path) + { + try + { + URL url = getPluginImageURL(symbolicName, path); + if (url != null) + { + return ImageDescriptor.createFromURL(url); + } + } + catch (Throwable e) + { + // Ignore any exceptions + } + return null; + } + + /** + * Returns an {@link URL} based on a {@link Bundle} and resource entry path. + */ + private static URL getPluginImageURL(String symbolicName, String path) + { + // try runtime plugins + { + Bundle bundle = Platform.getBundle(symbolicName); + if (bundle != null) + { + return bundle.getEntry(path); + } + } + // try design time provider + if (m_designTimePluginResourceProvider != null) + { + return m_designTimePluginResourceProvider.getEntry(symbolicName, path); + } + // no such resource + return null; + } + + /** + * Returns an {@link URL} based on a plugin and file path. + * + * @param plugin + * the plugin {@link Object} containing the file path. + * @param name + * the file path. + * @return the {@link URL} representing the file at the specified path. + * @throws Exception + */ + private static URL getPluginImageURL(Object plugin, String name) throws Exception + { + // try to work with 'plugin' as with OSGI BundleContext + try + { + Class<?> BundleClass = Class.forName("org.osgi.framework.Bundle"); //$NON-NLS-1$ + Class<?> BundleContextClass = Class.forName("org.osgi.framework.BundleContext"); //$NON-NLS-1$ + if (BundleContextClass.isAssignableFrom(plugin.getClass())) + { + Method getBundleMethod = BundleContextClass.getMethod("getBundle", new Class[0]); //$NON-NLS-1$ + Object bundle = getBundleMethod.invoke(plugin, new Object[0]); + // + Class<?> PathClass = Class.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$ + Constructor<?> pathConstructor = PathClass.getConstructor(new Class[] { String.class }); + Object path = pathConstructor.newInstance(new Object[] { name }); + // + Class<?> IPathClass = Class.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$ + Class<?> PlatformClass = Class.forName("org.eclipse.core.runtime.Platform"); //$NON-NLS-1$ + Method findMethod = PlatformClass.getMethod("find", new Class[] { BundleClass, IPathClass }); //$NON-NLS-1$ + return (URL)findMethod.invoke(null, new Object[] { bundle, path }); + } + } + catch (Throwable e) + { + // Ignore any exceptions + } + // else work with 'plugin' as with usual Eclipse plugin + { + Class<?> PluginClass = Class.forName("org.eclipse.core.runtime.Plugin"); //$NON-NLS-1$ + if (PluginClass.isAssignableFrom(plugin.getClass())) + { + // + Class<?> PathClass = Class.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$ + Constructor<?> pathConstructor = PathClass.getConstructor(new Class[] { String.class }); + Object path = pathConstructor.newInstance(new Object[] { name }); + // + Class<?> IPathClass = Class.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$ + Method findMethod = PluginClass.getMethod("find", new Class[] { IPathClass }); //$NON-NLS-1$ + return (URL)findMethod.invoke(plugin, new Object[] { path }); + } + } + return null; + } + + // ////////////////////////////////////////////////////////////////////////// + // + // General + // + // ////////////////////////////////////////////////////////////////////////// + /** + * Dispose of cached objects and their underlying OS resources. This should only be called when the cached + * objects are no longer needed (e.g. on application shutdown). + */ + public static void dispose() + { + disposeColors(); + disposeFonts(); + disposeImages(); + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/SWTResourceManager.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/SWTResourceManager.java new file mode 100644 index 0000000000..38dab08e60 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/SWTResourceManager.java @@ -0,0 +1,538 @@ +/******************************************************************************* + * Copyright (c) 2011 Google, Inc. + * 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: + * Google, Inc. - initial API and implementation + *******************************************************************************/ +package org.eclipse.emf.cdo.releng.internal.setup.ui; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.Cursor; +import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.graphics.FontData; +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.ImageData; +import org.eclipse.swt.graphics.RGB; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.widgets.Display; + +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; + +/** + * Utility class for managing OS resources associated with SWT controls such as colors, fonts, images, etc. + * <p> + * !!! IMPORTANT !!! Application code must explicitly invoke the <code>dispose()</code> method to release the + * operating system resources managed by cached objects when those objects and OS resources are no longer + * needed (e.g. on application shutdown) + * <p> + * This class may be freely distributed as part of any application or plugin. + * <p> + * @author scheglov_ke + * @author Dan Rubel + */ +public class SWTResourceManager +{ + // ////////////////////////////////////////////////////////////////////////// + // + // Color + // + // ////////////////////////////////////////////////////////////////////////// + private static Map<RGB, Color> m_colorMap = new HashMap<RGB, Color>(); + + /** + * Returns the system {@link Color} matching the specific ID. + * + * @param systemColorID + * the ID value for the color + * @return the system {@link Color} matching the specific ID + */ + public static Color getColor(int systemColorID) + { + Display display = Display.getCurrent(); + return display.getSystemColor(systemColorID); + } + + /** + * Returns a {@link Color} given its red, green and blue component values. + * + * @param r + * the red component of the color + * @param g + * the green component of the color + * @param b + * the blue component of the color + * @return the {@link Color} matching the given red, green and blue component values + */ + public static Color getColor(int r, int g, int b) + { + return getColor(new RGB(r, g, b)); + } + + /** + * Returns a {@link Color} given its RGB value. + * + * @param rgb + * the {@link RGB} value of the color + * @return the {@link Color} matching the RGB value + */ + public static Color getColor(RGB rgb) + { + Color color = m_colorMap.get(rgb); + if (color == null) + { + Display display = Display.getCurrent(); + color = new Color(display, rgb); + m_colorMap.put(rgb, color); + } + return color; + } + + /** + * Dispose of all the cached {@link Color}'s. + */ + public static void disposeColors() + { + for (Color color : m_colorMap.values()) + { + color.dispose(); + } + m_colorMap.clear(); + } + + // ////////////////////////////////////////////////////////////////////////// + // + // Image + // + // ////////////////////////////////////////////////////////////////////////// + /** + * Maps image paths to images. + */ + private static Map<String, Image> m_imageMap = new HashMap<String, Image>(); + + /** + * Returns an {@link Image} encoded by the specified {@link InputStream}. + * + * @param stream + * the {@link InputStream} encoding the image data + * @return the {@link Image} encoded by the specified input stream + */ + protected static Image getImage(InputStream stream) throws IOException + { + try + { + Display display = Display.getCurrent(); + ImageData data = new ImageData(stream); + if (data.transparentPixel > 0) + { + return new Image(display, data, data.getTransparencyMask()); + } + return new Image(display, data); + } + finally + { + stream.close(); + } + } + + /** + * Returns an {@link Image} stored in the file at the specified path. + * + * @param path + * the path to the image file + * @return the {@link Image} stored in the file at the specified path + */ + public static Image getImage(String path) + { + Image image = m_imageMap.get(path); + if (image == null) + { + try + { + image = getImage(new FileInputStream(path)); + m_imageMap.put(path, image); + } + catch (Exception e) + { + image = getMissingImage(); + m_imageMap.put(path, image); + } + } + return image; + } + + /** + * Returns an {@link Image} stored in the file at the specified path relative to the specified class. + * + * @param clazz + * the {@link Class} relative to which to find the image + * @param path + * the path to the image file, if starts with <code>'/'</code> + * @return the {@link Image} stored in the file at the specified path + */ + public static Image getImage(Class<?> clazz, String path) + { + String key = clazz.getName() + '|' + path; + Image image = m_imageMap.get(key); + if (image == null) + { + try + { + image = getImage(clazz.getResourceAsStream(path)); + m_imageMap.put(key, image); + } + catch (Exception e) + { + image = getMissingImage(); + m_imageMap.put(key, image); + } + } + return image; + } + + private static final int MISSING_IMAGE_SIZE = 10; + + /** + * @return the small {@link Image} that can be used as placeholder for missing image. + */ + private static Image getMissingImage() + { + Image image = new Image(Display.getCurrent(), MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE); + // + GC gc = new GC(image); + gc.setBackground(getColor(SWT.COLOR_RED)); + gc.fillRectangle(0, 0, MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE); + gc.dispose(); + // + return image; + } + + /** + * Style constant for placing decorator image in top left corner of base image. + */ + public static final int TOP_LEFT = 1; + + /** + * Style constant for placing decorator image in top right corner of base image. + */ + public static final int TOP_RIGHT = 2; + + /** + * Style constant for placing decorator image in bottom left corner of base image. + */ + public static final int BOTTOM_LEFT = 3; + + /** + * Style constant for placing decorator image in bottom right corner of base image. + */ + public static final int BOTTOM_RIGHT = 4; + + /** + * Internal value. + */ + protected static final int LAST_CORNER_KEY = 5; + + /** + * Maps images to decorated images. + */ + @SuppressWarnings("unchecked") + private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY]; + + /** + * Returns an {@link Image} composed of a base image decorated by another image. + * + * @param baseImage + * the base {@link Image} that should be decorated + * @param decorator + * the {@link Image} to decorate the base image + * @return {@link Image} The resulting decorated image + */ + public static Image decorateImage(Image baseImage, Image decorator) + { + return decorateImage(baseImage, decorator, BOTTOM_RIGHT); + } + + /** + * Returns an {@link Image} composed of a base image decorated by another image. + * + * @param baseImage + * the base {@link Image} that should be decorated + * @param decorator + * the {@link Image} to decorate the base image + * @param corner + * the corner to place decorator image + * @return the resulting decorated {@link Image} + */ + public static Image decorateImage(final Image baseImage, final Image decorator, final int corner) + { + if (corner <= 0 || corner >= LAST_CORNER_KEY) + { + throw new IllegalArgumentException("Wrong decorate corner"); + } + Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner]; + if (cornerDecoratedImageMap == null) + { + cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>(); + m_decoratedImageMap[corner] = cornerDecoratedImageMap; + } + Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage); + if (decoratedMap == null) + { + decoratedMap = new HashMap<Image, Image>(); + cornerDecoratedImageMap.put(baseImage, decoratedMap); + } + // + Image result = decoratedMap.get(decorator); + if (result == null) + { + Rectangle bib = baseImage.getBounds(); + Rectangle dib = decorator.getBounds(); + // + result = new Image(Display.getCurrent(), bib.width, bib.height); + // + GC gc = new GC(result); + gc.drawImage(baseImage, 0, 0); + if (corner == TOP_LEFT) + { + gc.drawImage(decorator, 0, 0); + } + else if (corner == TOP_RIGHT) + { + gc.drawImage(decorator, bib.width - dib.width, 0); + } + else if (corner == BOTTOM_LEFT) + { + gc.drawImage(decorator, 0, bib.height - dib.height); + } + else if (corner == BOTTOM_RIGHT) + { + gc.drawImage(decorator, bib.width - dib.width, bib.height - dib.height); + } + gc.dispose(); + // + decoratedMap.put(decorator, result); + } + return result; + } + + /** + * Dispose all of the cached {@link Image}'s. + */ + public static void disposeImages() + { + // dispose loaded images + { + for (Image image : m_imageMap.values()) + { + image.dispose(); + } + m_imageMap.clear(); + } + // dispose decorated images + for (int i = 0; i < m_decoratedImageMap.length; i++) + { + Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i]; + if (cornerDecoratedImageMap != null) + { + for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values()) + { + for (Image image : decoratedMap.values()) + { + image.dispose(); + } + decoratedMap.clear(); + } + cornerDecoratedImageMap.clear(); + } + } + } + + // ////////////////////////////////////////////////////////////////////////// + // + // Font + // + // ////////////////////////////////////////////////////////////////////////// + /** + * Maps font names to fonts. + */ + private static Map<String, Font> m_fontMap = new HashMap<String, Font>(); + + /** + * Maps fonts to their bold versions. + */ + private static Map<Font, Font> m_fontToBoldFontMap = new HashMap<Font, Font>(); + + /** + * Returns a {@link Font} based on its name, height and style. + * + * @param name + * the name of the font + * @param height + * the height of the font + * @param style + * the style of the font + * @return {@link Font} The font matching the name, height and style + */ + public static Font getFont(String name, int height, int style) + { + return getFont(name, height, style, false, false); + } + + /** + * Returns a {@link Font} based on its name, height and style. Windows-specific strikeout and underline + * flags are also supported. + * + * @param name + * the name of the font + * @param size + * the size of the font + * @param style + * the style of the font + * @param strikeout + * the strikeout flag (warning: Windows only) + * @param underline + * the underline flag (warning: Windows only) + * @return {@link Font} The font matching the name, height, style, strikeout and underline + */ + public static Font getFont(String name, int size, int style, boolean strikeout, boolean underline) + { + String fontName = name + '|' + size + '|' + style + '|' + strikeout + '|' + underline; + Font font = m_fontMap.get(fontName); + if (font == null) + { + FontData fontData = new FontData(name, size, style); + if (strikeout || underline) + { + try + { + Class<?> logFontClass = Class.forName("org.eclipse.swt.internal.win32.LOGFONT"); //$NON-NLS-1$ + Object logFont = FontData.class.getField("data").get(fontData); //$NON-NLS-1$ + if (logFont != null && logFontClass != null) + { + if (strikeout) + { + logFontClass.getField("lfStrikeOut").set(logFont, Byte.valueOf((byte)1)); //$NON-NLS-1$ + } + if (underline) + { + logFontClass.getField("lfUnderline").set(logFont, Byte.valueOf((byte)1)); //$NON-NLS-1$ + } + } + } + catch (Throwable e) + { + System.err.println("Unable to set underline or strikeout" + " (probably on a non-Windows platform). " + e); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + font = new Font(Display.getCurrent(), fontData); + m_fontMap.put(fontName, font); + } + return font; + } + + /** + * Returns a bold version of the given {@link Font}. + * + * @param baseFont + * the {@link Font} for which a bold version is desired + * @return the bold version of the given {@link Font} + */ + public static Font getBoldFont(Font baseFont) + { + Font font = m_fontToBoldFontMap.get(baseFont); + if (font == null) + { + FontData fontDatas[] = baseFont.getFontData(); + FontData data = fontDatas[0]; + font = new Font(Display.getCurrent(), data.getName(), data.getHeight(), SWT.BOLD); + m_fontToBoldFontMap.put(baseFont, font); + } + return font; + } + + /** + * Dispose all of the cached {@link Font}'s. + */ + public static void disposeFonts() + { + // clear fonts + for (Font font : m_fontMap.values()) + { + font.dispose(); + } + m_fontMap.clear(); + // clear bold fonts + for (Font font : m_fontToBoldFontMap.values()) + { + font.dispose(); + } + m_fontToBoldFontMap.clear(); + } + + // ////////////////////////////////////////////////////////////////////////// + // + // Cursor + // + // ////////////////////////////////////////////////////////////////////////// + /** + * Maps IDs to cursors. + */ + private static Map<Integer, Cursor> m_idToCursorMap = new HashMap<Integer, Cursor>(); + + /** + * Returns the system cursor matching the specific ID. + * + * @param id + * int The ID value for the cursor + * @return Cursor The system cursor matching the specific ID + */ + public static Cursor getCursor(int id) + { + Integer key = Integer.valueOf(id); + Cursor cursor = m_idToCursorMap.get(key); + if (cursor == null) + { + cursor = new Cursor(Display.getDefault(), id); + m_idToCursorMap.put(key, cursor); + } + return cursor; + } + + /** + * Dispose all of the cached cursors. + */ + public static void disposeCursors() + { + for (Cursor cursor : m_idToCursorMap.values()) + { + cursor.dispose(); + } + m_idToCursorMap.clear(); + } + + // ////////////////////////////////////////////////////////////////////////// + // + // General + // + // ////////////////////////////////////////////////////////////////////////// + /** + * Dispose of cached objects and their underlying OS resources. This should only be called when the cached + * objects are no longer needed (e.g. on application shutdown). + */ + public static void dispose() + { + disposeColors(); + disposeImages(); + disposeFonts(); + disposeCursors(); + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaseline.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaseline.java deleted file mode 100644 index 8ea7f52da8..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaseline.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup; - -import org.eclipse.emf.ecore.EObject; - -/** - * <!-- begin-user-doc --> - * A representation of the model object '<em><b>Api Baseline</b></em>'. - * <!-- end-user-doc --> - * - * <p> - * The following features are supported: - * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject <em>Project</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getVersion <em>Version</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getZipLocation <em>Zip Location</em>}</li> - * </ul> - * </p> - * - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaseline() - * @model - * @generated - */ -public interface ApiBaseline extends EObject -{ - /** - * Returns the value of the '<em><b>Project</b></em>' container reference. - * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines <em>Api Baselines</em>}'. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Project</em>' container reference isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Project</em>' container reference. - * @see #setProject(Project) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaseline_Project() - * @see org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines - * @model opposite="apiBaselines" transient="false" - * @generated - */ - Project getProject(); - - /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject <em>Project</em>}' container reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Project</em>' container reference. - * @see #getProject() - * @generated - */ - void setProject(Project value); - - /** - * Returns the value of the '<em><b>Version</b></em>' attribute. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Version</em>' attribute isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Version</em>' attribute. - * @see #setVersion(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaseline_Version() - * @model - * @generated - */ - String getVersion(); - - /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getVersion <em>Version</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Version</em>' attribute. - * @see #getVersion() - * @generated - */ - void setVersion(String value); - - /** - * Returns the value of the '<em><b>Zip Location</b></em>' attribute. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Zip Location</em>' attribute isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Zip Location</em>' attribute. - * @see #setZipLocation(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaseline_ZipLocation() - * @model - * @generated - */ - String getZipLocation(); - - /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getZipLocation <em>Zip Location</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Zip Location</em>' attribute. - * @see #getZipLocation() - * @generated - */ - void setZipLocation(String value); - -} // ApiBaseline diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaselineTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaselineTask.java new file mode 100644 index 0000000000..7cd3160743 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaselineTask.java @@ -0,0 +1,76 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Api Baseline Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getVersion <em>Version</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getZipLocation <em>Zip Location</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaselineTask() + * @model + * @generated + */ +public interface ApiBaselineTask extends SetupTask +{ + /** + * Returns the value of the '<em><b>Version</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Version</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Version</em>' attribute. + * @see #setVersion(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaselineTask_Version() + * @model + * @generated + */ + String getVersion(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getVersion <em>Version</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Version</em>' attribute. + * @see #getVersion() + * @generated + */ + void setVersion(String value); + + /** + * Returns the value of the '<em><b>Zip Location</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Zip Location</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Zip Location</em>' attribute. + * @see #setZipLocation(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaselineTask_ZipLocation() + * @model + * @generated + */ + String getZipLocation(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getZipLocation <em>Zip Location</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Zip Location</em>' attribute. + * @see #getZipLocation() + * @generated + */ + void setZipLocation(String value); + +} // ApiBaselineTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Branch.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Branch.java index 70ef7de2d7..e7d5d60d6d 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Branch.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Branch.java @@ -10,9 +10,6 @@ */ package org.eclipse.emf.cdo.releng.setup; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.common.util.URI; - /** * <!-- begin-user-doc --> * A representation of the model object '<em><b>Branch</b></em>'. @@ -23,10 +20,6 @@ import org.eclipse.emf.common.util.URI; * <ul> * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getProject <em>Project</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getName <em>Name</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getGitClones <em>Git Clones</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getApiBaseline <em>Api Baseline</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getMspecFilePath <em>Mspec File Path</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getCloneVariableName <em>Clone Variable Name</em>}</li> * </ul> * </p> * @@ -34,7 +27,7 @@ import org.eclipse.emf.common.util.URI; * @model * @generated */ -public interface Branch extends ToolInstallation +public interface Branch extends ConfigurableItem { /** * Returns the value of the '<em><b>Project</b></em>' container reference. @@ -90,116 +83,4 @@ public interface Branch extends ToolInstallation */ void setName(String value); - /** - * Returns the value of the '<em><b>Git Clones</b></em>' containment reference list. - * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.GitClone}. - * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getBranch <em>Branch</em>}'. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Git Clones</em>' containment reference list isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Git Clones</em>' containment reference list. - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBranch_GitClones() - * @see org.eclipse.emf.cdo.releng.setup.GitClone#getBranch - * @model opposite="branch" containment="true" required="true" - * @generated - */ - EList<GitClone> getGitClones(); - - /** - * Returns the value of the '<em><b>Api Baseline</b></em>' reference. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Api Baseline</em>' reference isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Api Baseline</em>' reference. - * @see #setApiBaseline(ApiBaseline) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBranch_ApiBaseline() - * @model - * @generated - */ - ApiBaseline getApiBaseline(); - - /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Branch#getApiBaseline <em>Api Baseline</em>}' reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Api Baseline</em>' reference. - * @see #getApiBaseline() - * @generated - */ - void setApiBaseline(ApiBaseline value); - - /** - * Returns the value of the '<em><b>Mspec File Path</b></em>' attribute. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Mspec File Path</em>' attribute isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Mspec File Path</em>' attribute. - * @see #setMspecFilePath(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBranch_MspecFilePath() - * @model - * @generated - */ - String getMspecFilePath(); - - /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Branch#getMspecFilePath <em>Mspec File Path</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Mspec File Path</em>' attribute. - * @see #getMspecFilePath() - * @generated - */ - void setMspecFilePath(String value); - - /** - * Returns the value of the '<em><b>Clone Variable Name</b></em>' attribute. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Clone Variable Name</em>' attribute isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Clone Variable Name</em>' attribute. - * @see #setCloneVariableName(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBranch_CloneVariableName() - * @model - * @generated - */ - String getCloneVariableName(); - - /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Branch#getCloneVariableName <em>Clone Variable Name</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Clone Variable Name</em>' attribute. - * @see #getCloneVariableName() - * @generated - */ - void setCloneVariableName(String value); - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @model - * @generated - */ - boolean isInstalled(String installFolder); - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @model dataType="org.eclipse.emf.cdo.releng.setup.URI" - * @generated - */ - URI getURI(String installFolder); - } // Branch diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/BuckminsterImportTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/BuckminsterImportTask.java new file mode 100644 index 0000000000..61d0267a23 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/BuckminsterImportTask.java @@ -0,0 +1,103 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Buckminster Import Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getMspec <em>Mspec</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getTargetPlatform <em>Target Platform</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getBundlePool <em>Bundle Pool</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBuckminsterImportTask() + * @model + * @generated + */ +public interface BuckminsterImportTask extends SetupTask +{ + /** + * Returns the value of the '<em><b>Mspec</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Mspec</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Mspec</em>' attribute. + * @see #setMspec(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBuckminsterImportTask_Mspec() + * @model + * @generated + */ + String getMspec(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getMspec <em>Mspec</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Mspec</em>' attribute. + * @see #getMspec() + * @generated + */ + void setMspec(String value); + + /** + * Returns the value of the '<em><b>Target Platform</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Target Platform</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Target Platform</em>' attribute. + * @see #setTargetPlatform(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBuckminsterImportTask_TargetPlatform() + * @model + * @generated + */ + String getTargetPlatform(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getTargetPlatform <em>Target Platform</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Target Platform</em>' attribute. + * @see #getTargetPlatform() + * @generated + */ + void setTargetPlatform(String value); + + /** + * Returns the value of the '<em><b>Bundle Pool</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Bundle Pool</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Bundle Pool</em>' attribute. + * @see #setBundlePool(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBuckminsterImportTask_BundlePool() + * @model + * @generated + */ + String getBundlePool(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getBundlePool <em>Bundle Pool</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Bundle Pool</em>' attribute. + * @see #getBundlePool() + * @generated + */ + void setBundlePool(String value); + +} // BuckminsterImportTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/CompoundSetupTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/CompoundSetupTask.java new file mode 100644 index 0000000000..afca697901 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/CompoundSetupTask.java @@ -0,0 +1,49 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Compound Setup Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask#getName <em>Name</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getCompoundSetupTask() + * @model + * @generated + */ +public interface CompoundSetupTask extends SetupTask, SetupTaskContainer +{ + /** + * Returns the value of the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Name</em>' attribute. + * @see #setName(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getCompoundSetupTask_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask#getName <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Name</em>' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + +} // CompoundSetupTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ConfigurableItem.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ConfigurableItem.java new file mode 100644 index 0000000000..d14e7d124e --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ConfigurableItem.java @@ -0,0 +1,17 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Configurable Item</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getConfigurableItem() + * @model abstract="true" + * @generated + */ +public interface ConfigurableItem extends SetupTaskContainer +{ +} // ConfigurableItem diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Configuration.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Configuration.java index a144553bee..57ab104bca 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Configuration.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Configuration.java @@ -45,7 +45,7 @@ public interface Configuration extends EObject * @return the value of the '<em>Projects</em>' containment reference list. * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getConfiguration_Projects() * @see org.eclipse.emf.cdo.releng.setup.Project#getConfiguration - * @model opposite="configuration" containment="true" required="true" + * @model opposite="configuration" containment="true" resolveProxies="true" required="true" * @generated */ EList<Project> getProjects(); @@ -63,7 +63,7 @@ public interface Configuration extends EObject * @return the value of the '<em>Eclipse Versions</em>' containment reference list. * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getConfiguration_EclipseVersions() * @see org.eclipse.emf.cdo.releng.setup.EclipseVersion#getConfiguration - * @model opposite="configuration" containment="true" required="true" + * @model opposite="configuration" containment="true" resolveProxies="true" required="true" * @generated */ EList<EclipseVersion> getEclipseVersions(); diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseIniTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseIniTask.java new file mode 100644 index 0000000000..766d59af65 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseIniTask.java @@ -0,0 +1,103 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Eclipse Ini Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getOption <em>Option</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getValue <em>Value</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#isVm <em>Vm</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseIniTask() + * @model + * @generated + */ +public interface EclipseIniTask extends SetupTask +{ + /** + * Returns the value of the '<em><b>Option</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Option</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Option</em>' attribute. + * @see #setOption(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseIniTask_Option() + * @model + * @generated + */ + String getOption(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getOption <em>Option</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Option</em>' attribute. + * @see #getOption() + * @generated + */ + void setOption(String value); + + /** + * Returns the value of the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Value</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Value</em>' attribute. + * @see #setValue(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseIniTask_Value() + * @model + * @generated + */ + String getValue(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getValue <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Value</em>' attribute. + * @see #getValue() + * @generated + */ + void setValue(String value); + + /** + * Returns the value of the '<em><b>Vm</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Vm</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Vm</em>' attribute. + * @see #setVm(boolean) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseIniTask_Vm() + * @model + * @generated + */ + boolean isVm(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#isVm <em>Vm</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Vm</em>' attribute. + * @see #isVm() + * @generated + */ + void setVm(boolean value); + +} // EclipseIniTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolPreference.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipsePreferenceTask.java index 7466c69ace..077b3bad4b 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolPreference.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipsePreferenceTask.java @@ -1,35 +1,25 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup; -import org.eclipse.emf.ecore.EObject; - /** * <!-- begin-user-doc --> - * A representation of the model object '<em><b>Tool Preference</b></em>'. + * A representation of the model object '<em><b>Eclipse Preference Task</b></em>'. * <!-- end-user-doc --> * * <p> * The following features are supported: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getKey <em>Key</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getValue <em>Value</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getKey <em>Key</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getValue <em>Value</em>}</li> * </ul> * </p> * - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolPreference() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipsePreferenceTask() * @model * @generated */ -public interface ToolPreference extends EObject +public interface EclipsePreferenceTask extends SetupTask { /** * Returns the value of the '<em><b>Key</b></em>' attribute. @@ -41,14 +31,14 @@ public interface ToolPreference extends EObject * <!-- end-user-doc --> * @return the value of the '<em>Key</em>' attribute. * @see #setKey(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolPreference_Key() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipsePreferenceTask_Key() * @model * @generated */ String getKey(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getKey <em>Key</em>}' attribute. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getKey <em>Key</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Key</em>' attribute. @@ -67,14 +57,14 @@ public interface ToolPreference extends EObject * <!-- end-user-doc --> * @return the value of the '<em>Value</em>' attribute. * @see #setValue(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolPreference_Value() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipsePreferenceTask_Value() * @model * @generated */ String getValue(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getValue <em>Value</em>}' attribute. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getValue <em>Value</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Value</em>' attribute. @@ -83,4 +73,4 @@ public interface ToolPreference extends EObject */ void setValue(String value); -} // ToolPreference +} // EclipsePreferenceTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseVersion.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseVersion.java index 07e2f11cca..75d52f9cbd 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseVersion.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseVersion.java @@ -10,8 +10,6 @@ */ package org.eclipse.emf.cdo.releng.setup; -import org.eclipse.emf.ecore.EObject; - /** * <!-- begin-user-doc --> * A representation of the model object '<em><b>Eclipse Version</b></em>'. @@ -22,7 +20,6 @@ import org.eclipse.emf.ecore.EObject; * <ul> * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getConfiguration <em>Configuration</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getVersion <em>Version</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getDirectorCall <em>Director Call</em>}</li> * </ul> * </p> * @@ -30,7 +27,7 @@ import org.eclipse.emf.ecore.EObject; * @model * @generated */ -public interface EclipseVersion extends EObject +public interface EclipseVersion extends ConfigurableItem { /** * Returns the value of the '<em><b>Configuration</b></em>' container reference. @@ -86,30 +83,4 @@ public interface EclipseVersion extends EObject */ void setVersion(String value); - /** - * Returns the value of the '<em><b>Director Call</b></em>' containment reference. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Director Call</em>' containment reference isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Director Call</em>' containment reference. - * @see #setDirectorCall(DirectorCall) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseVersion_DirectorCall() - * @model containment="true" required="true" - * @generated - */ - DirectorCall getDirectorCall(); - - /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getDirectorCall <em>Director Call</em>}' containment reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Director Call</em>' containment reference. - * @see #getDirectorCall() - * @generated - */ - void setDirectorCall(DirectorCall value); - } // EclipseVersion diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitClone.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitCloneTask.java index a134a7b787..7b1d812093 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitClone.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitCloneTask.java @@ -1,91 +1,80 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup; -import org.eclipse.emf.ecore.EObject; - /** * <!-- begin-user-doc --> - * A representation of the model object '<em><b>Git Clone</b></em>'. + * A representation of the model object '<em><b>Git Clone Task</b></em>'. * <!-- end-user-doc --> * * <p> * The following features are supported: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.GitClone#getBranch <em>Branch</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.GitClone#getName <em>Name</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.GitClone#getRemoteURI <em>Remote URI</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.GitClone#getCheckoutBranch <em>Checkout Branch</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteName <em>Remote Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteURI <em>Remote URI</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getCheckoutBranch <em>Checkout Branch</em>}</li> * </ul> * </p> * - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask() * @model * @generated */ -public interface GitClone extends EObject +public interface GitCloneTask extends SetupTask { /** - * Returns the value of the '<em><b>Branch</b></em>' container reference. - * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.Branch#getGitClones <em>Git Clones</em>}'. + * Returns the value of the '<em><b>Name</b></em>' attribute. * <!-- begin-user-doc --> * <p> - * If the meaning of the '<em>Branch</em>' container reference isn't clear, + * If the meaning of the '<em>Name</em>' attribute isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> - * @return the value of the '<em>Branch</em>' container reference. - * @see #setBranch(Branch) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone_Branch() - * @see org.eclipse.emf.cdo.releng.setup.Branch#getGitClones - * @model opposite="gitClones" transient="false" + * @return the value of the '<em>Name</em>' attribute. + * @see #setName(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask_Name() + * @model * @generated */ - Branch getBranch(); + String getName(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getBranch <em>Branch</em>}' container reference. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getName <em>Name</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @param value the new value of the '<em>Branch</em>' container reference. - * @see #getBranch() + * @param value the new value of the '<em>Name</em>' attribute. + * @see #getName() * @generated */ - void setBranch(Branch value); + void setName(String value); /** - * Returns the value of the '<em><b>Name</b></em>' attribute. + * Returns the value of the '<em><b>Remote Name</b></em>' attribute. + * The default value is <code>"origin"</code>. * <!-- begin-user-doc --> * <p> - * If the meaning of the '<em>Name</em>' attribute isn't clear, + * If the meaning of the '<em>Remote Name</em>' attribute isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> - * @return the value of the '<em>Name</em>' attribute. - * @see #setName(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone_Name() - * @model + * @return the value of the '<em>Remote Name</em>' attribute. + * @see #setRemoteName(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask_RemoteName() + * @model default="origin" * @generated */ - String getName(); + String getRemoteName(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getName <em>Name</em>}' attribute. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteName <em>Remote Name</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @param value the new value of the '<em>Name</em>' attribute. - * @see #getName() + * @param value the new value of the '<em>Remote Name</em>' attribute. + * @see #getRemoteName() * @generated */ - void setName(String value); + void setRemoteName(String value); /** * Returns the value of the '<em><b>Remote URI</b></em>' attribute. @@ -97,14 +86,14 @@ public interface GitClone extends EObject * <!-- end-user-doc --> * @return the value of the '<em>Remote URI</em>' attribute. * @see #setRemoteURI(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone_RemoteURI() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask_RemoteURI() * @model * @generated */ String getRemoteURI(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getRemoteURI <em>Remote URI</em>}' attribute. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteURI <em>Remote URI</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Remote URI</em>' attribute. @@ -123,14 +112,14 @@ public interface GitClone extends EObject * <!-- end-user-doc --> * @return the value of the '<em>Checkout Branch</em>' attribute. * @see #setCheckoutBranch(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone_CheckoutBranch() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask_CheckoutBranch() * @model * @generated */ String getCheckoutBranch(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getCheckoutBranch <em>Checkout Branch</em>}' attribute. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getCheckoutBranch <em>Checkout Branch</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Checkout Branch</em>' attribute. @@ -139,4 +128,4 @@ public interface GitClone extends EObject */ void setCheckoutBranch(String value); -} // GitClone +} // GitCloneTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/InstallableUnit.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/InstallableUnit.java index 6326d1085e..3b327dde15 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/InstallableUnit.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/InstallableUnit.java @@ -20,7 +20,7 @@ import org.eclipse.emf.ecore.EObject; * <p> * The following features are supported: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall <em>Director Call</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task <em>P2 Task</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getId <em>Id</em>}</li> * </ul> * </p> @@ -32,32 +32,32 @@ import org.eclipse.emf.ecore.EObject; public interface InstallableUnit extends EObject { /** - * Returns the value of the '<em><b>Director Call</b></em>' container reference. - * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits <em>Installable Units</em>}'. + * Returns the value of the '<em><b>P2 Task</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits <em>Installable Units</em>}'. * <!-- begin-user-doc --> * <p> - * If the meaning of the '<em>Director Call</em>' container reference isn't clear, + * If the meaning of the '<em>P2 Task</em>' container reference isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> - * @return the value of the '<em>Director Call</em>' container reference. - * @see #setDirectorCall(DirectorCall) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getInstallableUnit_DirectorCall() - * @see org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits + * @return the value of the '<em>P2 Task</em>' container reference. + * @see #setP2Task(P2Task) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getInstallableUnit_P2Task() + * @see org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits * @model opposite="installableUnits" transient="false" * @generated */ - DirectorCall getDirectorCall(); + P2Task getP2Task(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall <em>Director Call</em>}' container reference. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task <em>P2 Task</em>}' container reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @param value the new value of the '<em>Director Call</em>' container reference. - * @see #getDirectorCall() + * @param value the new value of the '<em>P2 Task</em>' container reference. + * @see #getP2Task() * @generated */ - void setDirectorCall(DirectorCall value); + void setP2Task(P2Task value); /** * Returns the value of the '<em><b>Id</b></em>' attribute. diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocation.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocationTask.java index b3809063eb..6a29e22e30 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocation.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocationTask.java @@ -1,35 +1,25 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup; -import org.eclipse.emf.ecore.EObject; - /** * <!-- begin-user-doc --> - * A representation of the model object '<em><b>Link Location</b></em>'. + * A representation of the model object '<em><b>Link Location Task</b></em>'. * <!-- end-user-doc --> * * <p> * The following features are supported: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getPath <em>Path</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getPath <em>Path</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getName <em>Name</em>}</li> * </ul> * </p> * - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocation() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocationTask() * @model * @generated */ -public interface LinkLocation extends EObject +public interface LinkLocationTask extends SetupTask { /** * Returns the value of the '<em><b>Path</b></em>' attribute. @@ -41,14 +31,14 @@ public interface LinkLocation extends EObject * <!-- end-user-doc --> * @return the value of the '<em>Path</em>' attribute. * @see #setPath(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocation_Path() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocationTask_Path() * @model * @generated */ String getPath(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getPath <em>Path</em>}' attribute. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getPath <em>Path</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Path</em>' attribute. @@ -67,14 +57,14 @@ public interface LinkLocation extends EObject * <!-- end-user-doc --> * @return the value of the '<em>Name</em>' attribute. * @see #setName(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocation_Name() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocationTask_Name() * @model * @generated */ String getName(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getName <em>Name</em>}' attribute. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getName <em>Name</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Name</em>' attribute. @@ -83,4 +73,4 @@ public interface LinkLocation extends EObject */ void setName(String value); -} // LinkLocation +} // LinkLocationTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/OneTimeSetupTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/OneTimeSetupTask.java new file mode 100644 index 0000000000..325fd72b50 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/OneTimeSetupTask.java @@ -0,0 +1,49 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>One Time Setup Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask#getId <em>Id</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getOneTimeSetupTask() + * @model abstract="true" + * @generated + */ +public interface OneTimeSetupTask extends SetupTask +{ + /** + * Returns the value of the '<em><b>Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Id</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Id</em>' attribute. + * @see #setId(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getOneTimeSetupTask_Id() + * @model required="true" + * @generated + */ + String getId(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask#getId <em>Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Id</em>' attribute. + * @see #getId() + * @generated + */ + void setId(String value); + +} // OneTimeSetupTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Repository.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Repository.java index 86f3c59534..7c7b5cd47e 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Repository.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Repository.java @@ -20,7 +20,7 @@ import org.eclipse.emf.ecore.EObject; * <p> * The following features are supported: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall <em>Director Call</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task <em>P2 Task</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getUrl <em>Url</em>}</li> * </ul> * </p> @@ -32,32 +32,32 @@ import org.eclipse.emf.ecore.EObject; public interface P2Repository extends EObject { /** - * Returns the value of the '<em><b>Director Call</b></em>' container reference. - * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories <em>P2 Repositories</em>}'. + * Returns the value of the '<em><b>P2 Task</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories <em>P2 Repositories</em>}'. * <!-- begin-user-doc --> * <p> - * If the meaning of the '<em>Director Call</em>' container reference isn't clear, + * If the meaning of the '<em>P2 Task</em>' container reference isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> - * @return the value of the '<em>Director Call</em>' container reference. - * @see #setDirectorCall(DirectorCall) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Repository_DirectorCall() - * @see org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories + * @return the value of the '<em>P2 Task</em>' container reference. + * @see #setP2Task(P2Task) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Repository_P2Task() + * @see org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories * @model opposite="p2Repositories" transient="false" * @generated */ - DirectorCall getDirectorCall(); + P2Task getP2Task(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall <em>Director Call</em>}' container reference. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task <em>P2 Task</em>}' container reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @param value the new value of the '<em>Director Call</em>' container reference. - * @see #getDirectorCall() + * @param value the new value of the '<em>P2 Task</em>' container reference. + * @see #getP2Task() * @generated */ - void setDirectorCall(DirectorCall value); + void setP2Task(P2Task value); /** * Returns the value of the '<em><b>Url</b></em>' attribute. diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/DirectorCall.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Task.java index bb9ff02fa1..3292d5b9a8 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/DirectorCall.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Task.java @@ -1,41 +1,32 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup; import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EObject; /** * <!-- begin-user-doc --> - * A representation of the model object '<em><b>Director Call</b></em>'. + * A representation of the model object '<em><b>Install Task</b></em>'. * <!-- end-user-doc --> * * <p> * The following features are supported: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits <em>Installable Units</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories <em>P2 Repositories</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories <em>P2 Repositories</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits <em>Installable Units</em>}</li> * </ul> * </p> * - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getDirectorCall() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Task() * @model * @generated */ -public interface DirectorCall extends EObject +public interface P2Task extends SetupTask { /** * Returns the value of the '<em><b>Installable Units</b></em>' containment reference list. * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.InstallableUnit}. - * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall <em>Director Call</em>}'. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task <em>P2 Task</em>}'. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Installable Units</em>' containment reference list isn't clear, @@ -43,9 +34,9 @@ public interface DirectorCall extends EObject * </p> * <!-- end-user-doc --> * @return the value of the '<em>Installable Units</em>' containment reference list. - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getDirectorCall_InstallableUnits() - * @see org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall - * @model opposite="directorCall" containment="true" required="true" + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Task_InstallableUnits() + * @see org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task + * @model opposite="p2Task" containment="true" resolveProxies="true" required="true" * @generated */ EList<InstallableUnit> getInstallableUnits(); @@ -53,7 +44,7 @@ public interface DirectorCall extends EObject /** * Returns the value of the '<em><b>P2 Repositories</b></em>' containment reference list. * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.P2Repository}. - * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall <em>Director Call</em>}'. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task <em>P2 Task</em>}'. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>P2 Repositories</em>' containment reference list isn't clear, @@ -61,11 +52,11 @@ public interface DirectorCall extends EObject * </p> * <!-- end-user-doc --> * @return the value of the '<em>P2 Repositories</em>' containment reference list. - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getDirectorCall_P2Repositories() - * @see org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall - * @model opposite="directorCall" containment="true" required="true" + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Task_P2Repositories() + * @see org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task + * @model opposite="p2Task" containment="true" resolveProxies="true" required="true" * @generated */ EList<P2Repository> getP2Repositories(); -} // DirectorCall +} // InstallTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Preferences.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Preferences.java index be482948d7..47b700e5c8 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Preferences.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Preferences.java @@ -13,7 +13,6 @@ package org.eclipse.emf.cdo.releng.setup; import org.eclipse.emf.common.util.URI; import java.io.File; -import org.eclipse.emf.common.util.EList; /** * <!-- begin-user-doc --> @@ -26,7 +25,6 @@ import org.eclipse.emf.common.util.EList; * <li>{@link org.eclipse.emf.cdo.releng.setup.Preferences#getUserName <em>User Name</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.Preferences#getInstallFolder <em>Install Folder</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.Preferences#getGitPrefix <em>Git Prefix</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.Preferences#getLinkLocations <em>Link Locations</em>}</li> * </ul> * </p> * @@ -34,7 +32,7 @@ import org.eclipse.emf.common.util.EList; * @model * @generated */ -public interface Preferences extends ToolInstallation +public interface Preferences extends SetupTaskContainer { public static final String PREFERENCES_NAME = "setup-eclipse.xmi"; @@ -119,20 +117,4 @@ public interface Preferences extends ToolInstallation */ void setGitPrefix(String value); - /** - * Returns the value of the '<em><b>Link Locations</b></em>' containment reference list. - * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.LinkLocation}. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Link Locations</em>' containment reference list isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Link Locations</em>' containment reference list. - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getPreferences_LinkLocations() - * @model containment="true" - * @generated - */ - EList<LinkLocation> getLinkLocations(); - } // Preferences diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Project.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Project.java index 284a66bfc3..4721c395bd 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Project.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Project.java @@ -10,7 +10,6 @@ */ package org.eclipse.emf.cdo.releng.setup; -import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup; import org.eclipse.emf.common.util.EList; /** @@ -24,8 +23,6 @@ import org.eclipse.emf.common.util.EList; * <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getConfiguration <em>Configuration</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getBranches <em>Branches</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getName <em>Name</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines <em>Api Baselines</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getWorkingSetGroup <em>Working Set Group</em>}</li> * </ul> * </p> * @@ -33,7 +30,7 @@ import org.eclipse.emf.common.util.EList; * @model * @generated */ -public interface Project extends ToolInstallation +public interface Project extends ConfigurableItem { /** * Returns the value of the '<em><b>Configuration</b></em>' container reference. @@ -48,7 +45,7 @@ public interface Project extends ToolInstallation * @see #setConfiguration(Configuration) * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getProject_Configuration() * @see org.eclipse.emf.cdo.releng.setup.Configuration#getProjects - * @model opposite="projects" transient="false" + * @model opposite="projects" * @generated */ Configuration getConfiguration(); @@ -76,7 +73,7 @@ public interface Project extends ToolInstallation * @return the value of the '<em>Branches</em>' containment reference list. * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getProject_Branches() * @see org.eclipse.emf.cdo.releng.setup.Branch#getProject - * @model opposite="project" containment="true" required="true" + * @model opposite="project" containment="true" resolveProxies="true" required="true" * @generated */ EList<Branch> getBranches(); @@ -107,48 +104,4 @@ public interface Project extends ToolInstallation */ void setName(String value); - /** - * Returns the value of the '<em><b>Api Baselines</b></em>' containment reference list. - * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.ApiBaseline}. - * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject <em>Project</em>}'. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Api Baselines</em>' containment reference list isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Api Baselines</em>' containment reference list. - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getProject_ApiBaselines() - * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject - * @model opposite="project" containment="true" - * @generated - */ - EList<ApiBaseline> getApiBaselines(); - - /** - * Returns the value of the '<em><b>Working Set Group</b></em>' containment reference. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Working Set Group</em>' containment reference isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Working Set Group</em>' containment reference. - * @see #setWorkingSetGroup(WorkingSetGroup) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getProject_WorkingSetGroup() - * @model containment="true" - * @generated - */ - WorkingSetGroup getWorkingSetGroup(); - - /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Project#getWorkingSetGroup <em>Working Set Group</em>}' containment reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Working Set Group</em>' containment reference. - * @see #getWorkingSetGroup() - * @generated - */ - void setWorkingSetGroup(WorkingSetGroup value); - } // Project diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ResourceCopyTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ResourceCopyTask.java new file mode 100644 index 0000000000..2a6e470ef7 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ResourceCopyTask.java @@ -0,0 +1,76 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Resource Copy Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getSourceURL <em>Source URL</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getTargetURL <em>Target URL</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getResourceCopyTask() + * @model + * @generated + */ +public interface ResourceCopyTask extends SetupTask +{ + /** + * Returns the value of the '<em><b>Source URL</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Source URL</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Source URL</em>' attribute. + * @see #setSourceURL(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getResourceCopyTask_SourceURL() + * @model + * @generated + */ + String getSourceURL(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getSourceURL <em>Source URL</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Source URL</em>' attribute. + * @see #getSourceURL() + * @generated + */ + void setSourceURL(String value); + + /** + * Returns the value of the '<em><b>Target URL</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Target URL</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Target URL</em>' attribute. + * @see #setTargetURL(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getResourceCopyTask_TargetURL() + * @model + * @generated + */ + String getTargetURL(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getTargetURL <em>Target URL</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Target URL</em>' attribute. + * @see #getTargetURL() + * @generated + */ + void setTargetURL(String value); + +} // ResourceCopyTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Setup.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Setup.java index 62f299693f..1897e0b1f9 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Setup.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Setup.java @@ -24,7 +24,6 @@ import org.eclipse.emf.ecore.EObject; * <li>{@link org.eclipse.emf.cdo.releng.setup.Setup#getBranch <em>Branch</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion <em>Eclipse Version</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.Setup#getUpdateLocations <em>Update Locations</em>}</li> * </ul> * </p> * @@ -87,45 +86,37 @@ public interface Setup extends EObject void setEclipseVersion(EclipseVersion value); /** - * Returns the value of the '<em><b>Preferences</b></em>' containment reference. + * Returns the value of the '<em><b>Preferences</b></em>' reference. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Preferences</em>' containment reference isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> - * @return the value of the '<em>Preferences</em>' containment reference. + * @return the value of the '<em>Preferences</em>' reference. * @see #setPreferences(Preferences) * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetup_Preferences() - * @model containment="true" + * @model required="true" * @generated */ Preferences getPreferences(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}' containment reference. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @param value the new value of the '<em>Preferences</em>' containment reference. + * @param value the new value of the '<em>Preferences</em>' reference. * @see #getPreferences() * @generated */ void setPreferences(Preferences value); /** - * Returns the value of the '<em><b>Update Locations</b></em>' containment reference list. - * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.P2Repository}. * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Update Locations</em>' containment reference list isn't clear, - * there really should be more of a description here... - * </p> * <!-- end-user-doc --> - * @return the value of the '<em>Update Locations</em>' containment reference list. - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetup_UpdateLocations() - * @model containment="true" + * @model * @generated */ - EList<P2Repository> getUpdateLocations(); + EList<SetupTask> getSetupTasks(boolean filterRestrictions, Trigger trigger); } // Workspace diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupFactory.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupFactory.java index c072236719..f0eb8f7a9a 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupFactory.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupFactory.java @@ -58,6 +58,24 @@ public interface SetupFactory extends EFactory Branch createBranch(); /** + * Returns a new object of class '<em>Api Baseline Task</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Api Baseline Task</em>'. + * @generated + */ + ApiBaselineTask createApiBaselineTask(); + + /** + * Returns a new object of class '<em>Git Clone Task</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Git Clone Task</em>'. + * @generated + */ + GitCloneTask createGitCloneTask(); + + /** * Returns a new object of class '<em>Eclipse Version</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -67,13 +85,13 @@ public interface SetupFactory extends EFactory EclipseVersion createEclipseVersion(); /** - * Returns a new object of class '<em>Director Call</em>'. + * Returns a new object of class '<em>P2 Task</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return a new object of class '<em>Director Call</em>'. + * @return a new object of class '<em>P2 Task</em>'. * @generated */ - DirectorCall createDirectorCall(); + P2Task createP2Task(); /** * Returns a new object of class '<em>Installable Unit</em>'. @@ -94,49 +112,85 @@ public interface SetupFactory extends EFactory P2Repository createP2Repository(); /** - * Returns a new object of class '<em>Api Baseline</em>'. + * Returns a new object of class '<em>Setup</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return a new object of class '<em>Api Baseline</em>'. + * @return a new object of class '<em>Setup</em>'. * @generated */ - ApiBaseline createApiBaseline(); + Setup createSetup(); /** - * Returns a new object of class '<em>Git Clone</em>'. + * Returns a new object of class '<em>Working Set Task</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return a new object of class '<em>Git Clone</em>'. + * @return a new object of class '<em>Working Set Task</em>'. * @generated */ - GitClone createGitClone(); + WorkingSetTask createWorkingSetTask(); /** - * Returns a new object of class '<em>Setup</em>'. + * Returns a new object of class '<em>Resource Copy Task</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return a new object of class '<em>Setup</em>'. + * @return a new object of class '<em>Resource Copy Task</em>'. * @generated */ - Setup createSetup(); + ResourceCopyTask createResourceCopyTask(); /** - * Returns a new object of class '<em>Tool Preference</em>'. + * Returns a new object of class '<em>Text Modify Task</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Text Modify Task</em>'. + * @generated + */ + TextModifyTask createTextModifyTask(); + + /** + * Returns a new object of class '<em>Text Modification</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Text Modification</em>'. + * @generated + */ + TextModification createTextModification(); + + /** + * Returns a new object of class '<em>Eclipse Ini Task</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Eclipse Ini Task</em>'. + * @generated + */ + EclipseIniTask createEclipseIniTask(); + + /** + * Returns a new object of class '<em>Compound Setup Task</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Compound Setup Task</em>'. + * @generated + */ + CompoundSetupTask createCompoundSetupTask(); + + /** + * Returns a new object of class '<em>Buckminster Import Task</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return a new object of class '<em>Tool Preference</em>'. + * @return a new object of class '<em>Buckminster Import Task</em>'. * @generated */ - ToolPreference createToolPreference(); + BuckminsterImportTask createBuckminsterImportTask(); /** - * Returns a new object of class '<em>Link Location</em>'. + * Returns a new object of class '<em>String Variable Task</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return a new object of class '<em>Link Location</em>'. + * @return a new object of class '<em>String Variable Task</em>'. * @generated */ - LinkLocation createLinkLocation(); + StringVariableTask createStringVariableTask(); /** * Returns a new object of class '<em>Preferences</em>'. @@ -148,6 +202,24 @@ public interface SetupFactory extends EFactory Preferences createPreferences(); /** + * Returns a new object of class '<em>Link Location Task</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Link Location Task</em>'. + * @generated + */ + LinkLocationTask createLinkLocationTask(); + + /** + * Returns a new object of class '<em>Eclipse Preference Task</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Eclipse Preference Task</em>'. + * @generated + */ + EclipsePreferenceTask createEclipsePreferenceTask(); + + /** * Returns the package supported by this factory. * <!-- begin-user-doc --> * <!-- end-user-doc --> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupPackage.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupPackage.java index eece03b9e8..8040621c5c 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupPackage.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupPackage.java @@ -13,6 +13,7 @@ package org.eclipse.emf.cdo.releng.setup; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EEnum; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EReference; @@ -67,24 +68,24 @@ public interface SetupPackage extends EPackage SetupPackage eINSTANCE = org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl.init(); /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ConfigurationImpl <em>Configuration</em>}' class. + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl <em>Task Container</em>}' class. * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.ConfigurationImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getConfiguration() + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTaskContainer() * @generated */ - int CONFIGURATION = 8; + int SETUP_TASK_CONTAINER = 8; /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl <em>Tool Installation</em>}' class. + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ConfigurationImpl <em>Configuration</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getToolInstallation() + * @see org.eclipse.emf.cdo.releng.setup.impl.ConfigurationImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getConfiguration() * @generated */ - int TOOL_INSTALLATION = 2; + int CONFIGURATION = 1; /** * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl <em>Project</em>}' class. @@ -94,7 +95,7 @@ public interface SetupPackage extends EPackage * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getProject() * @generated */ - int PROJECT = 9; + int PROJECT = 3; /** * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl <em>Branch</em>}' class. @@ -104,7 +105,7 @@ public interface SetupPackage extends EPackage * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBranch() * @generated */ - int BRANCH = 10; + int BRANCH = 4; /** * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl <em>Eclipse Version</em>}' class. @@ -114,17 +115,7 @@ public interface SetupPackage extends EPackage * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipseVersion() * @generated */ - int ECLIPSE_VERSION = 4; - - /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl <em>Director Call</em>}' class. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getDirectorCall() - * @generated - */ - int DIRECTOR_CALL = 5; + int ECLIPSE_VERSION = 0; /** * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl <em>Installable Unit</em>}' class. @@ -134,7 +125,7 @@ public interface SetupPackage extends EPackage * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getInstallableUnit() * @generated */ - int INSTALLABLE_UNIT = 6; + int INSTALLABLE_UNIT = 14; /** * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.P2RepositoryImpl <em>P2 Repository</em>}' class. @@ -144,82 +135,266 @@ public interface SetupPackage extends EPackage * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getP2Repository() * @generated */ - int P2_REPOSITORY = 7; + int P2_REPOSITORY = 15; /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl <em>Api Baseline</em>}' class. + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl <em>Preferences</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getApiBaseline() + * @see org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getPreferences() * @generated */ - int API_BASELINE = 11; + int PREFERENCES = 5; /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl <em>Git Clone</em>}' class. + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl <em>Task</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getGitClone() + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTask() * @generated */ - int GIT_CLONE = 12; + int SETUP_TASK = 7; /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl <em>Preferences</em>}' class. + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl <em>Link Location Task</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getPreferences() + * @see org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getLinkLocationTask() + * @generated + */ + int LINK_LOCATION_TASK = 12; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl <em>Eclipse Preference Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipsePreferenceTask() + * @generated + */ + int ECLIPSE_PREFERENCE_TASK = 19; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl <em>Setup</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetup() + * @generated + */ + int SETUP = 6; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl <em>P2 Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getP2Task() + * @generated + */ + int P2_TASK = 13; + + /** + * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SETUP_TASK_CONTAINER__SETUP_TASKS = 0; + + /** + * The number of structural features of the '<em>Task Container</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SETUP_TASK_CONTAINER_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ConfigurableItemImpl <em>Configurable Item</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.ConfigurableItemImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getConfigurableItem() + * @generated + */ + int CONFIGURABLE_ITEM = 2; + + /** + * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CONFIGURABLE_ITEM__SETUP_TASKS = SETUP_TASK_CONTAINER__SETUP_TASKS; + + /** + * The number of structural features of the '<em>Configurable Item</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CONFIGURABLE_ITEM_FEATURE_COUNT = SETUP_TASK_CONTAINER_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> * @generated + * @ordered */ - int PREFERENCES = 0; + int ECLIPSE_VERSION__SETUP_TASKS = CONFIGURABLE_ITEM__SETUP_TASKS; /** - * The feature id for the '<em><b>Director Calls</b></em>' containment reference list. + * The feature id for the '<em><b>Configuration</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_VERSION__CONFIGURATION = CONFIGURABLE_ITEM_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Version</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_VERSION__VERSION = CONFIGURABLE_ITEM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Eclipse Version</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_VERSION_FEATURE_COUNT = CONFIGURABLE_ITEM_FEATURE_COUNT + 2; + + /** + * The feature id for the '<em><b>Projects</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CONFIGURATION__PROJECTS = 0; + + /** + * The feature id for the '<em><b>Eclipse Versions</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CONFIGURATION__ECLIPSE_VERSIONS = 1; + + /** + * The number of structural features of the '<em>Configuration</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CONFIGURATION_FEATURE_COUNT = 2; + + /** + * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int TOOL_INSTALLATION__DIRECTOR_CALLS = 0; + int PROJECT__SETUP_TASKS = CONFIGURABLE_ITEM__SETUP_TASKS; /** - * The feature id for the '<em><b>Tool Preferences</b></em>' containment reference list. + * The feature id for the '<em><b>Configuration</b></em>' container reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int TOOL_INSTALLATION__TOOL_PREFERENCES = 1; + int PROJECT__CONFIGURATION = CONFIGURABLE_ITEM_FEATURE_COUNT + 0; /** - * The number of structural features of the '<em>Tool Installation</em>' class. + * The feature id for the '<em><b>Branches</b></em>' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int TOOL_INSTALLATION_FEATURE_COUNT = 2; + int PROJECT__BRANCHES = CONFIGURABLE_ITEM_FEATURE_COUNT + 1; /** - * The feature id for the '<em><b>Director Calls</b></em>' containment reference list. + * The feature id for the '<em><b>Name</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PREFERENCES__DIRECTOR_CALLS = TOOL_INSTALLATION__DIRECTOR_CALLS; + int PROJECT__NAME = CONFIGURABLE_ITEM_FEATURE_COUNT + 2; + + /** + * The number of structural features of the '<em>Project</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PROJECT_FEATURE_COUNT = CONFIGURABLE_ITEM_FEATURE_COUNT + 3; /** - * The feature id for the '<em><b>Tool Preferences</b></em>' containment reference list. + * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PREFERENCES__TOOL_PREFERENCES = TOOL_INSTALLATION__TOOL_PREFERENCES; + int BRANCH__SETUP_TASKS = CONFIGURABLE_ITEM__SETUP_TASKS; + + /** + * The feature id for the '<em><b>Project</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BRANCH__PROJECT = CONFIGURABLE_ITEM_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BRANCH__NAME = CONFIGURABLE_ITEM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Branch</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BRANCH_FEATURE_COUNT = CONFIGURABLE_ITEM_FEATURE_COUNT + 2; + + /** + * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCES__SETUP_TASKS = SETUP_TASK_CONTAINER__SETUP_TASKS; /** * The feature id for the '<em><b>User Name</b></em>' attribute. @@ -228,7 +403,7 @@ public interface SetupPackage extends EPackage * @generated * @ordered */ - int PREFERENCES__USER_NAME = TOOL_INSTALLATION_FEATURE_COUNT + 0; + int PREFERENCES__USER_NAME = SETUP_TASK_CONTAINER_FEATURE_COUNT + 0; /** * The feature id for the '<em><b>Install Folder</b></em>' attribute. @@ -237,7 +412,7 @@ public interface SetupPackage extends EPackage * @generated * @ordered */ - int PREFERENCES__INSTALL_FOLDER = TOOL_INSTALLATION_FEATURE_COUNT + 1; + int PREFERENCES__INSTALL_FOLDER = SETUP_TASK_CONTAINER_FEATURE_COUNT + 1; /** * The feature id for the '<em><b>Git Prefix</b></em>' attribute. @@ -246,64 +421,182 @@ public interface SetupPackage extends EPackage * @generated * @ordered */ - int PREFERENCES__GIT_PREFIX = TOOL_INSTALLATION_FEATURE_COUNT + 2; + int PREFERENCES__GIT_PREFIX = SETUP_TASK_CONTAINER_FEATURE_COUNT + 2; /** - * The feature id for the '<em><b>Link Locations</b></em>' containment reference list. + * The number of structural features of the '<em>Preferences</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PREFERENCES__LINK_LOCATIONS = TOOL_INSTALLATION_FEATURE_COUNT + 3; + int PREFERENCES_FEATURE_COUNT = SETUP_TASK_CONTAINER_FEATURE_COUNT + 3; /** - * The number of structural features of the '<em>Preferences</em>' class. + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl <em>Api Baseline Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getApiBaselineTask() + * @generated + */ + int API_BASELINE_TASK = 17; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl <em>Git Clone Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getGitCloneTask() + * @generated + */ + int GIT_CLONE_TASK = 18; + + /** + * The feature id for the '<em><b>Branch</b></em>' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PREFERENCES_FEATURE_COUNT = TOOL_INSTALLATION_FEATURE_COUNT + 4; + int SETUP__BRANCH = 0; /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl <em>Setup</em>}' class. + * The feature id for the '<em><b>Eclipse Version</b></em>' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetup() * @generated + * @ordered */ - int SETUP = 13; + int SETUP__ECLIPSE_VERSION = 1; /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl <em>Tool Preference</em>}' class. + * The feature id for the '<em><b>Preferences</b></em>' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getToolPreference() * @generated + * @ordered */ - int TOOL_PREFERENCE = 3; + int SETUP__PREFERENCES = 2; /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl <em>Link Location</em>}' class. + * The number of structural features of the '<em>Setup</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getLinkLocation() * @generated + * @ordered */ - int LINK_LOCATION = 1; + int SETUP_FEATURE_COUNT = 3; /** - * The feature id for the '<em><b>Path</b></em>' attribute. + * The feature id for the '<em><b>Requirements</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SETUP_TASK__REQUIREMENTS = 0; + + /** + * The feature id for the '<em><b>Restrictions</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SETUP_TASK__RESTRICTIONS = 1; + + /** + * The feature id for the '<em><b>Scope</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int LINK_LOCATION__PATH = 0; + int SETUP_TASK__SCOPE = 2; + + /** + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SETUP_TASK__EXCLUDED_TRIGGERS = 3; + + /** + * The number of structural features of the '<em>Task</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SETUP_TASK_FEATURE_COUNT = 4; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl <em>Working Set Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getWorkingSetTask() + * @generated + */ + int WORKING_SET_TASK = 21; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl <em>Compound Setup Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getCompoundSetupTask() + * @generated + */ + int COMPOUND_SETUP_TASK = 9; + + /** + * The feature id for the '<em><b>Requirements</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int COMPOUND_SETUP_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; + + /** + * The feature id for the '<em><b>Restrictions</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int COMPOUND_SETUP_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; + + /** + * The feature id for the '<em><b>Scope</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int COMPOUND_SETUP_TASK__SCOPE = SETUP_TASK__SCOPE; + + /** + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int COMPOUND_SETUP_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; + + /** + * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int COMPOUND_SETUP_TASK__SETUP_TASKS = SETUP_TASK_FEATURE_COUNT + 0; /** * The feature id for the '<em><b>Name</b></em>' attribute. @@ -312,25 +605,155 @@ public interface SetupPackage extends EPackage * @generated * @ordered */ - int LINK_LOCATION__NAME = 1; + int COMPOUND_SETUP_TASK__NAME = SETUP_TASK_FEATURE_COUNT + 1; /** - * The number of structural features of the '<em>Link Location</em>' class. + * The number of structural features of the '<em>Compound Setup Task</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int LINK_LOCATION_FEATURE_COUNT = 2; + int COMPOUND_SETUP_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2; /** - * The feature id for the '<em><b>Key</b></em>' attribute. + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl <em>One Time Setup Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getOneTimeSetupTask() + * @generated + */ + int ONE_TIME_SETUP_TASK = 10; + + /** + * The feature id for the '<em><b>Requirements</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int TOOL_PREFERENCE__KEY = 0; + int ONE_TIME_SETUP_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; + + /** + * The feature id for the '<em><b>Restrictions</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ONE_TIME_SETUP_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; + + /** + * The feature id for the '<em><b>Scope</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ONE_TIME_SETUP_TASK__SCOPE = SETUP_TASK__SCOPE; + + /** + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ONE_TIME_SETUP_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; + + /** + * The feature id for the '<em><b>Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ONE_TIME_SETUP_TASK__ID = SETUP_TASK_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>One Time Setup Task</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ONE_TIME_SETUP_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl <em>Buckminster Import Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBuckminsterImportTask() + * @generated + */ + int BUCKMINSTER_IMPORT_TASK = 16; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl <em>String Variable Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getStringVariableTask() + * @generated + */ + int STRING_VARIABLE_TASK = 20; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl <em>Eclipse Ini Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipseIniTask() + * @generated + */ + int ECLIPSE_INI_TASK = 11; + + /** + * The feature id for the '<em><b>Requirements</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_INI_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; + + /** + * The feature id for the '<em><b>Restrictions</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_INI_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; + + /** + * The feature id for the '<em><b>Scope</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_INI_TASK__SCOPE = SETUP_TASK__SCOPE; + + /** + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_INI_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; + + /** + * The feature id for the '<em><b>Option</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_INI_TASK__OPTION = SETUP_TASK_FEATURE_COUNT + 0; /** * The feature id for the '<em><b>Value</b></em>' attribute. @@ -339,88 +762,160 @@ public interface SetupPackage extends EPackage * @generated * @ordered */ - int TOOL_PREFERENCE__VALUE = 1; + int ECLIPSE_INI_TASK__VALUE = SETUP_TASK_FEATURE_COUNT + 1; /** - * The number of structural features of the '<em>Tool Preference</em>' class. + * The feature id for the '<em><b>Vm</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int TOOL_PREFERENCE_FEATURE_COUNT = 2; + int ECLIPSE_INI_TASK__VM = SETUP_TASK_FEATURE_COUNT + 2; /** - * The feature id for the '<em><b>Configuration</b></em>' container reference. + * The number of structural features of the '<em>Eclipse Ini Task</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int ECLIPSE_VERSION__CONFIGURATION = 0; + int ECLIPSE_INI_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 3; /** - * The feature id for the '<em><b>Version</b></em>' attribute. + * The feature id for the '<em><b>Requirements</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int ECLIPSE_VERSION__VERSION = 1; + int LINK_LOCATION_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; /** - * The feature id for the '<em><b>Director Call</b></em>' containment reference. + * The feature id for the '<em><b>Restrictions</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int ECLIPSE_VERSION__DIRECTOR_CALL = 2; + int LINK_LOCATION_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; /** - * The number of structural features of the '<em>Eclipse Version</em>' class. + * The feature id for the '<em><b>Scope</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int ECLIPSE_VERSION_FEATURE_COUNT = 3; + int LINK_LOCATION_TASK__SCOPE = SETUP_TASK__SCOPE; /** - * The feature id for the '<em><b>Installable Units</b></em>' containment reference list. + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int LINK_LOCATION_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; + + /** + * The feature id for the '<em><b>Path</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int LINK_LOCATION_TASK__PATH = SETUP_TASK_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int LINK_LOCATION_TASK__NAME = SETUP_TASK_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Link Location Task</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int LINK_LOCATION_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2; + + /** + * The feature id for the '<em><b>Requirements</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int P2_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; + + /** + * The feature id for the '<em><b>Restrictions</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int P2_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; + + /** + * The feature id for the '<em><b>Scope</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int DIRECTOR_CALL__INSTALLABLE_UNITS = 0; + int P2_TASK__SCOPE = SETUP_TASK__SCOPE; + + /** + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int P2_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; /** * The feature id for the '<em><b>P2 Repositories</b></em>' containment reference list. * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int P2_TASK__P2_REPOSITORIES = SETUP_TASK_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Installable Units</b></em>' containment reference list. + * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int DIRECTOR_CALL__P2_REPOSITORIES = 1; + int P2_TASK__INSTALLABLE_UNITS = SETUP_TASK_FEATURE_COUNT + 1; /** - * The number of structural features of the '<em>Director Call</em>' class. + * The number of structural features of the '<em>P2 Task</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int DIRECTOR_CALL_FEATURE_COUNT = 2; + int P2_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2; /** - * The feature id for the '<em><b>Director Call</b></em>' container reference. + * The feature id for the '<em><b>P2 Task</b></em>' container reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int INSTALLABLE_UNIT__DIRECTOR_CALL = 0; + int INSTALLABLE_UNIT__P2_TASK = 0; /** * The feature id for the '<em><b>Id</b></em>' attribute. @@ -441,13 +936,13 @@ public interface SetupPackage extends EPackage int INSTALLABLE_UNIT_FEATURE_COUNT = 2; /** - * The feature id for the '<em><b>Director Call</b></em>' container reference. + * The feature id for the '<em><b>P2 Task</b></em>' container reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int P2_REPOSITORY__DIRECTOR_CALL = 0; + int P2_REPOSITORY__P2_TASK = 0; /** * The feature id for the '<em><b>Url</b></em>' attribute. @@ -468,325 +963,647 @@ public interface SetupPackage extends EPackage int P2_REPOSITORY_FEATURE_COUNT = 2; /** - * The feature id for the '<em><b>Projects</b></em>' containment reference list. + * The feature id for the '<em><b>Requirements</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int CONFIGURATION__PROJECTS = 0; + int BUCKMINSTER_IMPORT_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; /** - * The feature id for the '<em><b>Eclipse Versions</b></em>' containment reference list. + * The feature id for the '<em><b>Restrictions</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int CONFIGURATION__ECLIPSE_VERSIONS = 1; + int BUCKMINSTER_IMPORT_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; /** - * The number of structural features of the '<em>Configuration</em>' class. + * The feature id for the '<em><b>Scope</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int CONFIGURATION_FEATURE_COUNT = 2; + int BUCKMINSTER_IMPORT_TASK__SCOPE = SETUP_TASK__SCOPE; /** - * The feature id for the '<em><b>Director Calls</b></em>' containment reference list. + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PROJECT__DIRECTOR_CALLS = TOOL_INSTALLATION__DIRECTOR_CALLS; + int BUCKMINSTER_IMPORT_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; /** - * The feature id for the '<em><b>Tool Preferences</b></em>' containment reference list. + * The feature id for the '<em><b>Mspec</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BUCKMINSTER_IMPORT_TASK__MSPEC = SETUP_TASK_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Target Platform</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PROJECT__TOOL_PREFERENCES = TOOL_INSTALLATION__TOOL_PREFERENCES; + int BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM = SETUP_TASK_FEATURE_COUNT + 1; /** - * The feature id for the '<em><b>Configuration</b></em>' container reference. + * The feature id for the '<em><b>Bundle Pool</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PROJECT__CONFIGURATION = TOOL_INSTALLATION_FEATURE_COUNT + 0; + int BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL = SETUP_TASK_FEATURE_COUNT + 2; /** - * The feature id for the '<em><b>Branches</b></em>' containment reference list. + * The number of structural features of the '<em>Buckminster Import Task</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PROJECT__BRANCHES = TOOL_INSTALLATION_FEATURE_COUNT + 1; + int BUCKMINSTER_IMPORT_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 3; /** - * The feature id for the '<em><b>Name</b></em>' attribute. + * The feature id for the '<em><b>Requirements</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PROJECT__NAME = TOOL_INSTALLATION_FEATURE_COUNT + 2; + int API_BASELINE_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; /** - * The feature id for the '<em><b>Api Baselines</b></em>' containment reference list. + * The feature id for the '<em><b>Restrictions</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PROJECT__API_BASELINES = TOOL_INSTALLATION_FEATURE_COUNT + 3; + int API_BASELINE_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; /** - * The feature id for the '<em><b>Working Set Group</b></em>' containment reference. + * The feature id for the '<em><b>Scope</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PROJECT__WORKING_SET_GROUP = TOOL_INSTALLATION_FEATURE_COUNT + 4; + int API_BASELINE_TASK__SCOPE = SETUP_TASK__SCOPE; /** - * The number of structural features of the '<em>Project</em>' class. - * <!-- begin-user-doc --> + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int API_BASELINE_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; + + /** + * The feature id for the '<em><b>Version</b></em>' attribute. + * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @generated - * @ordered - */ - int PROJECT_FEATURE_COUNT = TOOL_INSTALLATION_FEATURE_COUNT + 5; + * @generated + * @ordered + */ + int API_BASELINE_TASK__VERSION = SETUP_TASK_FEATURE_COUNT + 0; /** - * The feature id for the '<em><b>Director Calls</b></em>' containment reference list. + * The feature id for the '<em><b>Zip Location</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int BRANCH__DIRECTOR_CALLS = TOOL_INSTALLATION__DIRECTOR_CALLS; + int API_BASELINE_TASK__ZIP_LOCATION = SETUP_TASK_FEATURE_COUNT + 1; /** - * The feature id for the '<em><b>Tool Preferences</b></em>' containment reference list. + * The number of structural features of the '<em>Api Baseline Task</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int BRANCH__TOOL_PREFERENCES = TOOL_INSTALLATION__TOOL_PREFERENCES; + int API_BASELINE_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2; /** - * The feature id for the '<em><b>Project</b></em>' container reference. + * The feature id for the '<em><b>Requirements</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int BRANCH__PROJECT = TOOL_INSTALLATION_FEATURE_COUNT + 0; + int GIT_CLONE_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; + + /** + * The feature id for the '<em><b>Restrictions</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int GIT_CLONE_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; + + /** + * The feature id for the '<em><b>Scope</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int GIT_CLONE_TASK__SCOPE = SETUP_TASK__SCOPE; + + /** + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int GIT_CLONE_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; /** * The feature id for the '<em><b>Name</b></em>' attribute. * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int GIT_CLONE_TASK__NAME = SETUP_TASK_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Remote Name</b></em>' attribute. + * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int BRANCH__NAME = TOOL_INSTALLATION_FEATURE_COUNT + 1; + int GIT_CLONE_TASK__REMOTE_NAME = SETUP_TASK_FEATURE_COUNT + 1; /** - * The feature id for the '<em><b>Git Clones</b></em>' containment reference list. + * The feature id for the '<em><b>Remote URI</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int BRANCH__GIT_CLONES = TOOL_INSTALLATION_FEATURE_COUNT + 2; + int GIT_CLONE_TASK__REMOTE_URI = SETUP_TASK_FEATURE_COUNT + 2; /** - * The feature id for the '<em><b>Api Baseline</b></em>' reference. + * The feature id for the '<em><b>Checkout Branch</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int BRANCH__API_BASELINE = TOOL_INSTALLATION_FEATURE_COUNT + 3; + int GIT_CLONE_TASK__CHECKOUT_BRANCH = SETUP_TASK_FEATURE_COUNT + 3; /** - * The feature id for the '<em><b>Mspec File Path</b></em>' attribute. + * The number of structural features of the '<em>Git Clone Task</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int BRANCH__MSPEC_FILE_PATH = TOOL_INSTALLATION_FEATURE_COUNT + 4; + int GIT_CLONE_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 4; /** - * The feature id for the '<em><b>Clone Variable Name</b></em>' attribute. + * The feature id for the '<em><b>Requirements</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int BRANCH__CLONE_VARIABLE_NAME = TOOL_INSTALLATION_FEATURE_COUNT + 5; + int ECLIPSE_PREFERENCE_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; /** - * The number of structural features of the '<em>Branch</em>' class. + * The feature id for the '<em><b>Restrictions</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int BRANCH_FEATURE_COUNT = TOOL_INSTALLATION_FEATURE_COUNT + 6; + int ECLIPSE_PREFERENCE_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; /** - * The feature id for the '<em><b>Project</b></em>' container reference. + * The feature id for the '<em><b>Scope</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int API_BASELINE__PROJECT = 0; + int ECLIPSE_PREFERENCE_TASK__SCOPE = SETUP_TASK__SCOPE; /** - * The feature id for the '<em><b>Version</b></em>' attribute. + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int API_BASELINE__VERSION = 1; + int ECLIPSE_PREFERENCE_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; /** - * The feature id for the '<em><b>Zip Location</b></em>' attribute. + * The feature id for the '<em><b>Key</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_PREFERENCE_TASK__KEY = SETUP_TASK_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_PREFERENCE_TASK__VALUE = SETUP_TASK_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Eclipse Preference Task</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_PREFERENCE_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2; + + /** + * The feature id for the '<em><b>Requirements</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int STRING_VARIABLE_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; + + /** + * The feature id for the '<em><b>Restrictions</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int API_BASELINE__ZIP_LOCATION = 2; + int STRING_VARIABLE_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; /** - * The number of structural features of the '<em>Api Baseline</em>' class. + * The feature id for the '<em><b>Scope</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int API_BASELINE_FEATURE_COUNT = 3; + int STRING_VARIABLE_TASK__SCOPE = SETUP_TASK__SCOPE; /** - * The feature id for the '<em><b>Branch</b></em>' container reference. + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int GIT_CLONE__BRANCH = 0; + int STRING_VARIABLE_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; /** * The feature id for the '<em><b>Name</b></em>' attribute. * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int STRING_VARIABLE_TASK__NAME = SETUP_TASK_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int GIT_CLONE__NAME = 1; + int STRING_VARIABLE_TASK__VALUE = SETUP_TASK_FEATURE_COUNT + 1; /** - * The feature id for the '<em><b>Remote URI</b></em>' attribute. + * The feature id for the '<em><b>Description</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int GIT_CLONE__REMOTE_URI = 2; + int STRING_VARIABLE_TASK__DESCRIPTION = SETUP_TASK_FEATURE_COUNT + 2; /** - * The feature id for the '<em><b>Checkout Branch</b></em>' attribute. + * The number of structural features of the '<em>String Variable Task</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int GIT_CLONE__CHECKOUT_BRANCH = 3; + int STRING_VARIABLE_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 3; /** - * The number of structural features of the '<em>Git Clone</em>' class. + * The feature id for the '<em><b>Requirements</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int GIT_CLONE_FEATURE_COUNT = 4; + int WORKING_SET_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; /** - * The feature id for the '<em><b>Branch</b></em>' reference. + * The feature id for the '<em><b>Restrictions</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int SETUP__BRANCH = 0; + int WORKING_SET_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; /** - * The feature id for the '<em><b>Eclipse Version</b></em>' reference. + * The feature id for the '<em><b>Scope</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int SETUP__ECLIPSE_VERSION = 1; + int WORKING_SET_TASK__SCOPE = SETUP_TASK__SCOPE; /** - * The feature id for the '<em><b>Preferences</b></em>' containment reference. + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int SETUP__PREFERENCES = 2; + int WORKING_SET_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; /** - * The feature id for the '<em><b>Update Locations</b></em>' containment reference list. + * The feature id for the '<em><b>Working Sets</b></em>' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int SETUP__UPDATE_LOCATIONS = 3; + int WORKING_SET_TASK__WORKING_SETS = SETUP_TASK_FEATURE_COUNT + 0; /** - * The number of structural features of the '<em>Setup</em>' class. + * The number of structural features of the '<em>Working Set Task</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int WORKING_SET_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl <em>Resource Copy Task</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getResourceCopyTask() + * @generated + */ + int RESOURCE_COPY_TASK = 22; + + /** + * The feature id for the '<em><b>Requirements</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> * @generated * @ordered */ - int SETUP_FEATURE_COUNT = 4; + int RESOURCE_COPY_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; /** - * The meta object id for the '<em>URI</em>' data type. + * The feature id for the '<em><b>Restrictions</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RESOURCE_COPY_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; + + /** + * The feature id for the '<em><b>Scope</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RESOURCE_COPY_TASK__SCOPE = SETUP_TASK__SCOPE; + + /** + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RESOURCE_COPY_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; + + /** + * The feature id for the '<em><b>Source URL</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RESOURCE_COPY_TASK__SOURCE_URL = SETUP_TASK_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Target URL</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RESOURCE_COPY_TASK__TARGET_URL = SETUP_TASK_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Resource Copy Task</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RESOURCE_COPY_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl <em>Text Modify Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTextModifyTask() + * @generated + */ + int TEXT_MODIFY_TASK = 23; + + /** + * The feature id for the '<em><b>Requirements</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFY_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; + + /** + * The feature id for the '<em><b>Restrictions</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFY_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; + + /** + * The feature id for the '<em><b>Scope</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFY_TASK__SCOPE = SETUP_TASK__SCOPE; + + /** + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFY_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; + + /** + * The feature id for the '<em><b>Url</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFY_TASK__URL = SETUP_TASK_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Modifications</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFY_TASK__MODIFICATIONS = SETUP_TASK_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Text Modify Task</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFY_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl <em>Text Modification</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTextModification() + * @generated + */ + int TEXT_MODIFICATION = 24; + + /** + * The feature id for the '<em><b>Pattern</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFICATION__PATTERN = 0; + + /** + * The feature id for the '<em><b>Substitutions</b></em>' attribute list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFICATION__SUBSTITUTIONS = 1; + + /** + * The number of structural features of the '<em>Text Modification</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFICATION_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskScope <em>Task Scope</em>}' enum. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.SetupTaskScope + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTaskScope() + * @generated + */ + int SETUP_TASK_SCOPE = 25; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.Trigger <em>Trigger</em>}' enum. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.Trigger + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTrigger() + * @generated + */ + int TRIGGER = 26; + + /** + * The meta object id for the '<em>URI</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> * @see org.eclipse.emf.common.util.URI * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getURI() * @generated */ - int URI = 14; + int URI = 27; /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Configuration <em>Configuration</em>}'. + * The meta object id for the '<em>Exception</em>' data type. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see java.lang.Exception + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getException() + * @generated + */ + int EXCEPTION = 28; + + /** + * The meta object id for the '<em>Trigger Set</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see java.util.Set + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTriggerSet() + * @generated + */ + int TRIGGER_SET = 29; + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Configuration <em>Configuration</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> * @return the meta object for class '<em>Configuration</em>'. * @see org.eclipse.emf.cdo.releng.setup.Configuration * @generated @@ -859,35 +1676,13 @@ public interface SetupPackage extends EPackage EAttribute getProject_Name(); /** - * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines <em>Api Baselines</em>}'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the meta object for the containment reference list '<em>Api Baselines</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines() - * @see #getProject() - * @generated - */ - EReference getProject_ApiBaselines(); - - /** - * Returns the meta object for the containment reference '{@link org.eclipse.emf.cdo.releng.setup.Project#getWorkingSetGroup <em>Working Set Group</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Branch <em>Branch</em>}'. * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the meta object for the containment reference '<em>Working Set Group</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Project#getWorkingSetGroup() - * @see #getProject() + * <!-- end-user-doc --> + * @return the meta object for class '<em>Branch</em>'. + * @see org.eclipse.emf.cdo.releng.setup.Branch * @generated */ - EReference getProject_WorkingSetGroup(); - - /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Branch <em>Branch</em>}'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the meta object for class '<em>Branch</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Branch - * @generated - */ EClass getBranch(); /** @@ -913,80 +1708,90 @@ public interface SetupPackage extends EPackage EAttribute getBranch_Name(); /** - * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.Branch#getGitClones <em>Git Clones</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask <em>Api Baseline Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the containment reference list '<em>Git Clones</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Branch#getGitClones() - * @see #getBranch() + * @return the meta object for class '<em>Api Baseline Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.ApiBaselineTask * @generated */ - EReference getBranch_GitClones(); + EClass getApiBaselineTask(); /** - * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Branch#getApiBaseline <em>Api Baseline</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getVersion <em>Version</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the reference '<em>Api Baseline</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Branch#getApiBaseline() - * @see #getBranch() + * @return the meta object for the attribute '<em>Version</em>'. + * @see org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getVersion() + * @see #getApiBaselineTask() * @generated */ - EReference getBranch_ApiBaseline(); + EAttribute getApiBaselineTask_Version(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.Branch#getMspecFilePath <em>Mspec File Path</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getZipLocation <em>Zip Location</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Mspec File Path</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Branch#getMspecFilePath() - * @see #getBranch() + * @return the meta object for the attribute '<em>Zip Location</em>'. + * @see org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getZipLocation() + * @see #getApiBaselineTask() * @generated */ - EAttribute getBranch_MspecFilePath(); + EAttribute getApiBaselineTask_ZipLocation(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.Branch#getCloneVariableName <em>Clone Variable Name</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask <em>Git Clone Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Clone Variable Name</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Branch#getCloneVariableName() - * @see #getBranch() + * @return the meta object for class '<em>Git Clone Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask * @generated */ - EAttribute getBranch_CloneVariableName(); + EClass getGitCloneTask(); /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation <em>Tool Installation</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getName <em>Name</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for class '<em>Tool Installation</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ToolInstallation + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask#getName() + * @see #getGitCloneTask() * @generated */ - EClass getToolInstallation(); + EAttribute getGitCloneTask_Name(); /** - * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation#getDirectorCalls <em>Director Calls</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteName <em>Remote Name</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the containment reference list '<em>Director Calls</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ToolInstallation#getDirectorCalls() - * @see #getToolInstallation() + * @return the meta object for the attribute '<em>Remote Name</em>'. + * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteName() + * @see #getGitCloneTask() * @generated */ - EReference getToolInstallation_DirectorCalls(); + EAttribute getGitCloneTask_RemoteName(); /** - * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation#getToolPreferences <em>Tool Preferences</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteURI <em>Remote URI</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the containment reference list '<em>Tool Preferences</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ToolInstallation#getToolPreferences() - * @see #getToolInstallation() + * @return the meta object for the attribute '<em>Remote URI</em>'. + * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteURI() + * @see #getGitCloneTask() * @generated */ - EReference getToolInstallation_ToolPreferences(); + EAttribute getGitCloneTask_RemoteURI(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getCheckoutBranch <em>Checkout Branch</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Checkout Branch</em>'. + * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask#getCheckoutBranch() + * @see #getGitCloneTask() + * @generated + */ + EAttribute getGitCloneTask_CheckoutBranch(); /** * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion <em>Eclipse Version</em>}'. @@ -1021,47 +1826,79 @@ public interface SetupPackage extends EPackage EAttribute getEclipseVersion_Version(); /** - * Returns the meta object for the containment reference '{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getDirectorCall <em>Director Call</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.P2Task <em>P2 Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the containment reference '<em>Director Call</em>'. - * @see org.eclipse.emf.cdo.releng.setup.EclipseVersion#getDirectorCall() - * @see #getEclipseVersion() + * @return the meta object for class '<em>P2 Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.P2Task * @generated */ - EReference getEclipseVersion_DirectorCall(); + EClass getP2Task(); /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall <em>Director Call</em>}'. + * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits <em>Installable Units</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for class '<em>Director Call</em>'. - * @see org.eclipse.emf.cdo.releng.setup.DirectorCall + * @return the meta object for the containment reference list '<em>Installable Units</em>'. + * @see org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits() + * @see #getP2Task() * @generated */ - EClass getDirectorCall(); + EReference getP2Task_InstallableUnits(); /** - * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits <em>Installable Units</em>}'. + * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories <em>P2 Repositories</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the containment reference list '<em>Installable Units</em>'. - * @see org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits() - * @see #getDirectorCall() + * @return the meta object for the containment reference list '<em>P2 Repositories</em>'. + * @see org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories() + * @see #getP2Task() * @generated */ - EReference getDirectorCall_InstallableUnits(); + EReference getP2Task_P2Repositories(); /** - * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories <em>P2 Repositories</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask <em>String Variable Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the containment reference list '<em>P2 Repositories</em>'. - * @see org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories() - * @see #getDirectorCall() + * @return the meta object for class '<em>String Variable Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask * @generated */ - EReference getDirectorCall_P2Repositories(); + EClass getStringVariableTask(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getName <em>Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask#getName() + * @see #getStringVariableTask() + * @generated + */ + EAttribute getStringVariableTask_Name(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getValue <em>Value</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Value</em>'. + * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask#getValue() + * @see #getStringVariableTask() + * @generated + */ + EAttribute getStringVariableTask_Value(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getDescription <em>Description</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Description</em>'. + * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask#getDescription() + * @see #getStringVariableTask() + * @generated + */ + EAttribute getStringVariableTask_Description(); /** * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit <em>Installable Unit</em>}'. @@ -1074,15 +1911,15 @@ public interface SetupPackage extends EPackage EClass getInstallableUnit(); /** - * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall <em>Director Call</em>}'. + * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task <em>P2 Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the container reference '<em>Director Call</em>'. - * @see org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall() + * @return the meta object for the container reference '<em>P2 Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task() * @see #getInstallableUnit() * @generated */ - EReference getInstallableUnit_DirectorCall(); + EReference getInstallableUnit_P2Task(); /** * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getId <em>Id</em>}'. @@ -1106,15 +1943,15 @@ public interface SetupPackage extends EPackage EClass getP2Repository(); /** - * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall <em>Director Call</em>}'. + * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task <em>P2 Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the container reference '<em>Director Call</em>'. - * @see org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall() + * @return the meta object for the container reference '<em>P2 Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task() * @see #getP2Repository() * @generated */ - EReference getP2Repository_DirectorCall(); + EReference getP2Repository_P2Task(); /** * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getUrl <em>Url</em>}'. @@ -1128,219 +1965,376 @@ public interface SetupPackage extends EPackage EAttribute getP2Repository_Url(); /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline <em>Api Baseline</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Setup <em>Setup</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for class '<em>Api Baseline</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline + * @return the meta object for class '<em>Setup</em>'. + * @see org.eclipse.emf.cdo.releng.setup.Setup * @generated */ - EClass getApiBaseline(); + EClass getSetup(); /** - * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject <em>Project</em>}'. + * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getBranch <em>Branch</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the container reference '<em>Project</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject() - * @see #getApiBaseline() + * @return the meta object for the reference '<em>Branch</em>'. + * @see org.eclipse.emf.cdo.releng.setup.Setup#getBranch() + * @see #getSetup() * @generated */ - EReference getApiBaseline_Project(); + EReference getSetup_Branch(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getVersion <em>Version</em>}'. + * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion <em>Eclipse Version</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Version</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline#getVersion() - * @see #getApiBaseline() + * @return the meta object for the reference '<em>Eclipse Version</em>'. + * @see org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion() + * @see #getSetup() * @generated */ - EAttribute getApiBaseline_Version(); + EReference getSetup_EclipseVersion(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getZipLocation <em>Zip Location</em>}'. + * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Zip Location</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline#getZipLocation() - * @see #getApiBaseline() + * @return the meta object for the reference '<em>Preferences</em>'. + * @see org.eclipse.emf.cdo.releng.setup.Setup#getPreferences() + * @see #getSetup() * @generated */ - EAttribute getApiBaseline_ZipLocation(); + EReference getSetup_Preferences(); /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.GitClone <em>Git Clone</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.SetupTask <em>Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for class '<em>Git Clone</em>'. - * @see org.eclipse.emf.cdo.releng.setup.GitClone + * @return the meta object for class '<em>Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.SetupTask * @generated */ - EClass getGitClone(); + EClass getSetupTask(); /** - * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getBranch <em>Branch</em>}'. + * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getRequirements <em>Requirements</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the container reference '<em>Branch</em>'. - * @see org.eclipse.emf.cdo.releng.setup.GitClone#getBranch() - * @see #getGitClone() + * @return the meta object for the reference list '<em>Requirements</em>'. + * @see org.eclipse.emf.cdo.releng.setup.SetupTask#getRequirements() + * @see #getSetupTask() * @generated */ - EReference getGitClone_Branch(); + EReference getSetupTask_Requirements(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getName <em>Name</em>}'. + * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getRestrictions <em>Restrictions</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Name</em>'. - * @see org.eclipse.emf.cdo.releng.setup.GitClone#getName() - * @see #getGitClone() + * @return the meta object for the reference list '<em>Restrictions</em>'. + * @see org.eclipse.emf.cdo.releng.setup.SetupTask#getRestrictions() + * @see #getSetupTask() * @generated */ - EAttribute getGitClone_Name(); + EReference getSetupTask_Restrictions(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getRemoteURI <em>Remote URI</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getScope <em>Scope</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Remote URI</em>'. - * @see org.eclipse.emf.cdo.releng.setup.GitClone#getRemoteURI() - * @see #getGitClone() + * @return the meta object for the attribute '<em>Scope</em>'. + * @see org.eclipse.emf.cdo.releng.setup.SetupTask#getScope() + * @see #getSetupTask() * @generated */ - EAttribute getGitClone_RemoteURI(); + EAttribute getSetupTask_Scope(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getCheckoutBranch <em>Checkout Branch</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getExcludedTriggers <em>Excluded Triggers</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Checkout Branch</em>'. - * @see org.eclipse.emf.cdo.releng.setup.GitClone#getCheckoutBranch() - * @see #getGitClone() + * @return the meta object for the attribute '<em>Excluded Triggers</em>'. + * @see org.eclipse.emf.cdo.releng.setup.SetupTask#getExcludedTriggers() + * @see #getSetupTask() * @generated */ - EAttribute getGitClone_CheckoutBranch(); + EAttribute getSetupTask_ExcludedTriggers(); /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Setup <em>Setup</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask <em>Working Set Task</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Working Set Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.WorkingSetTask + * @generated + */ + EClass getWorkingSetTask(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask#getWorkingSets <em>Working Sets</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for class '<em>Setup</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Setup + * @return the meta object for the containment reference list '<em>Working Sets</em>'. + * @see org.eclipse.emf.cdo.releng.setup.WorkingSetTask#getWorkingSets() + * @see #getWorkingSetTask() * @generated */ - EClass getSetup(); + EReference getWorkingSetTask_WorkingSets(); /** - * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getBranch <em>Branch</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask <em>Resource Copy Task</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Resource Copy Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.ResourceCopyTask + * @generated + */ + EClass getResourceCopyTask(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getSourceURL <em>Source URL</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Source URL</em>'. + * @see org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getSourceURL() + * @see #getResourceCopyTask() + * @generated + */ + EAttribute getResourceCopyTask_SourceURL(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getTargetURL <em>Target URL</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Target URL</em>'. + * @see org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getTargetURL() + * @see #getResourceCopyTask() + * @generated + */ + EAttribute getResourceCopyTask_TargetURL(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask <em>Text Modify Task</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Text Modify Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.TextModifyTask + * @generated + */ + EClass getTextModifyTask(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getUrl <em>Url</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Url</em>'. + * @see org.eclipse.emf.cdo.releng.setup.TextModifyTask#getUrl() + * @see #getTextModifyTask() + * @generated + */ + EAttribute getTextModifyTask_Url(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getModifications <em>Modifications</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Modifications</em>'. + * @see org.eclipse.emf.cdo.releng.setup.TextModifyTask#getModifications() + * @see #getTextModifyTask() + * @generated + */ + EReference getTextModifyTask_Modifications(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.TextModification <em>Text Modification</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Text Modification</em>'. + * @see org.eclipse.emf.cdo.releng.setup.TextModification + * @generated + */ + EClass getTextModification(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.TextModification#getPattern <em>Pattern</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Pattern</em>'. + * @see org.eclipse.emf.cdo.releng.setup.TextModification#getPattern() + * @see #getTextModification() + * @generated + */ + EAttribute getTextModification_Pattern(); + + /** + * Returns the meta object for the attribute list '{@link org.eclipse.emf.cdo.releng.setup.TextModification#getSubstitutions <em>Substitutions</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute list '<em>Substitutions</em>'. + * @see org.eclipse.emf.cdo.releng.setup.TextModification#getSubstitutions() + * @see #getTextModification() + * @generated + */ + EAttribute getTextModification_Substitutions(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask <em>Eclipse Ini Task</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Eclipse Ini Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask + * @generated + */ + EClass getEclipseIniTask(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getOption <em>Option</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the reference '<em>Branch</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Setup#getBranch() - * @see #getSetup() + * @return the meta object for the attribute '<em>Option</em>'. + * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getOption() + * @see #getEclipseIniTask() * @generated */ - EReference getSetup_Branch(); + EAttribute getEclipseIniTask_Option(); /** - * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion <em>Eclipse Version</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getValue <em>Value</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the reference '<em>Eclipse Version</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion() - * @see #getSetup() + * @return the meta object for the attribute '<em>Value</em>'. + * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getValue() + * @see #getEclipseIniTask() * @generated */ - EReference getSetup_EclipseVersion(); + EAttribute getEclipseIniTask_Value(); /** - * Returns the meta object for the containment reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#isVm <em>Vm</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the containment reference '<em>Preferences</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Setup#getPreferences() - * @see #getSetup() + * @return the meta object for the attribute '<em>Vm</em>'. + * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask#isVm() + * @see #getEclipseIniTask() * @generated */ - EReference getSetup_Preferences(); + EAttribute getEclipseIniTask_Vm(); /** - * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.Setup#getUpdateLocations <em>Update Locations</em>}'. + * Returns the meta object for enum '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskScope <em>Task Scope</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the containment reference list '<em>Update Locations</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Setup#getUpdateLocations() - * @see #getSetup() + * @return the meta object for enum '<em>Task Scope</em>'. + * @see org.eclipse.emf.cdo.releng.setup.SetupTaskScope * @generated */ - EReference getSetup_UpdateLocations(); + EEnum getSetupTaskScope(); /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference <em>Tool Preference</em>}'. + * Returns the meta object for enum '{@link org.eclipse.emf.cdo.releng.setup.Trigger <em>Trigger</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for class '<em>Tool Preference</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ToolPreference + * @return the meta object for enum '<em>Trigger</em>'. + * @see org.eclipse.emf.cdo.releng.setup.Trigger * @generated */ - EClass getToolPreference(); + EEnum getTrigger(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getKey <em>Key</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask <em>Compound Setup Task</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Compound Setup Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.CompoundSetupTask + * @generated + */ + EClass getCompoundSetupTask(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask#getName <em>Name</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Key</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ToolPreference#getKey() - * @see #getToolPreference() + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.emf.cdo.releng.setup.CompoundSetupTask#getName() + * @see #getCompoundSetupTask() * @generated */ - EAttribute getToolPreference_Key(); + EAttribute getCompoundSetupTask_Name(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getValue <em>Value</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask <em>One Time Setup Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Value</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ToolPreference#getValue() - * @see #getToolPreference() + * @return the meta object for class '<em>One Time Setup Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask * @generated */ - EAttribute getToolPreference_Value(); + EClass getOneTimeSetupTask(); /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation <em>Link Location</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask#getId <em>Id</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for class '<em>Link Location</em>'. - * @see org.eclipse.emf.cdo.releng.setup.LinkLocation + * @return the meta object for the attribute '<em>Id</em>'. + * @see org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask#getId() + * @see #getOneTimeSetupTask() * @generated */ - EClass getLinkLocation(); + EAttribute getOneTimeSetupTask_Id(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getPath <em>Path</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ConfigurableItem <em>Configurable Item</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Path</em>'. - * @see org.eclipse.emf.cdo.releng.setup.LinkLocation#getPath() - * @see #getLinkLocation() + * @return the meta object for class '<em>Configurable Item</em>'. + * @see org.eclipse.emf.cdo.releng.setup.ConfigurableItem * @generated */ - EAttribute getLinkLocation_Path(); + EClass getConfigurableItem(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getName <em>Name</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask <em>Buckminster Import Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Name</em>'. - * @see org.eclipse.emf.cdo.releng.setup.LinkLocation#getName() - * @see #getLinkLocation() + * @return the meta object for class '<em>Buckminster Import Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask + * @generated + */ + EClass getBuckminsterImportTask(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getMspec <em>Mspec</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Mspec</em>'. + * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getMspec() + * @see #getBuckminsterImportTask() * @generated */ - EAttribute getLinkLocation_Name(); + EAttribute getBuckminsterImportTask_Mspec(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getTargetPlatform <em>Target Platform</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Target Platform</em>'. + * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getTargetPlatform() + * @see #getBuckminsterImportTask() + * @generated + */ + EAttribute getBuckminsterImportTask_TargetPlatform(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getBundlePool <em>Bundle Pool</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Bundle Pool</em>'. + * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getBundlePool() + * @see #getBuckminsterImportTask() + * @generated + */ + EAttribute getBuckminsterImportTask_BundlePool(); /** * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Preferences <em>Preferences</em>}'. @@ -1386,15 +2380,89 @@ public interface SetupPackage extends EPackage EAttribute getPreferences_GitPrefix(); /** - * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.Preferences#getLinkLocations <em>Link Locations</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask <em>Link Location Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the containment reference list '<em>Link Locations</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Preferences#getLinkLocations() - * @see #getPreferences() + * @return the meta object for class '<em>Link Location Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.LinkLocationTask * @generated */ - EReference getPreferences_LinkLocations(); + EClass getLinkLocationTask(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getPath <em>Path</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Path</em>'. + * @see org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getPath() + * @see #getLinkLocationTask() + * @generated + */ + EAttribute getLinkLocationTask_Path(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getName <em>Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getName() + * @see #getLinkLocationTask() + * @generated + */ + EAttribute getLinkLocationTask_Name(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskContainer <em>Task Container</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Task Container</em>'. + * @see org.eclipse.emf.cdo.releng.setup.SetupTaskContainer + * @generated + */ + EClass getSetupTaskContainer(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskContainer#getSetupTasks <em>Setup Tasks</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Setup Tasks</em>'. + * @see org.eclipse.emf.cdo.releng.setup.SetupTaskContainer#getSetupTasks() + * @see #getSetupTaskContainer() + * @generated + */ + EReference getSetupTaskContainer_SetupTasks(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask <em>Eclipse Preference Task</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Eclipse Preference Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask + * @generated + */ + EClass getEclipsePreferenceTask(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getKey <em>Key</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Key</em>'. + * @see org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getKey() + * @see #getEclipsePreferenceTask() + * @generated + */ + EAttribute getEclipsePreferenceTask_Key(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getValue <em>Value</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Value</em>'. + * @see org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getValue() + * @see #getEclipsePreferenceTask() + * @generated + */ + EAttribute getEclipsePreferenceTask_Value(); /** * Returns the meta object for data type '{@link org.eclipse.emf.common.util.URI <em>URI</em>}'. @@ -1408,9 +2476,31 @@ public interface SetupPackage extends EPackage EDataType getURI(); /** - * Returns the factory that creates the instances of the model. + * Returns the meta object for data type '{@link java.lang.Exception <em>Exception</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for data type '<em>Exception</em>'. + * @see java.lang.Exception + * @model instanceClass="java.lang.Exception" + * @generated + */ + EDataType getException(); + + /** + * Returns the meta object for data type '{@link java.util.Set <em>Trigger Set</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @return the meta object for data type '<em>Trigger Set</em>'. + * @see java.util.Set + * @model instanceClass="java.util.Set<org.eclipse.emf.cdo.releng.setup.Trigger>" + * @generated + */ + EDataType getTriggerSet(); + + /** + * Returns the factory that creates the instances of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> * @return the factory that creates the instances of the model. * @generated */ @@ -1492,104 +2582,98 @@ public interface SetupPackage extends EPackage EAttribute PROJECT__NAME = eINSTANCE.getProject_Name(); /** - * The meta object literal for the '<em><b>Api Baselines</b></em>' containment reference list feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl <em>Branch</em>}' class. * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.BranchImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBranch() * @generated */ - EReference PROJECT__API_BASELINES = eINSTANCE.getProject_ApiBaselines(); + EClass BRANCH = eINSTANCE.getBranch(); /** - * The meta object literal for the '<em><b>Working Set Group</b></em>' containment reference feature. + * The meta object literal for the '<em><b>Project</b></em>' container reference feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference PROJECT__WORKING_SET_GROUP = eINSTANCE.getProject_WorkingSetGroup(); - - /** - * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl <em>Branch</em>}' class. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.BranchImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBranch() - * @generated - */ - EClass BRANCH = eINSTANCE.getBranch(); + EReference BRANCH__PROJECT = eINSTANCE.getBranch_Project(); /** - * The meta object literal for the '<em><b>Project</b></em>' container reference feature. + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference BRANCH__PROJECT = eINSTANCE.getBranch_Project(); + EAttribute BRANCH__NAME = eINSTANCE.getBranch_Name(); /** - * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl <em>Api Baseline Task</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getApiBaselineTask() * @generated */ - EAttribute BRANCH__NAME = eINSTANCE.getBranch_Name(); + EClass API_BASELINE_TASK = eINSTANCE.getApiBaselineTask(); /** - * The meta object literal for the '<em><b>Git Clones</b></em>' containment reference list feature. + * The meta object literal for the '<em><b>Version</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference BRANCH__GIT_CLONES = eINSTANCE.getBranch_GitClones(); + EAttribute API_BASELINE_TASK__VERSION = eINSTANCE.getApiBaselineTask_Version(); /** - * The meta object literal for the '<em><b>Api Baseline</b></em>' reference feature. + * The meta object literal for the '<em><b>Zip Location</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference BRANCH__API_BASELINE = eINSTANCE.getBranch_ApiBaseline(); + EAttribute API_BASELINE_TASK__ZIP_LOCATION = eINSTANCE.getApiBaselineTask_ZipLocation(); /** - * The meta object literal for the '<em><b>Mspec File Path</b></em>' attribute feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl <em>Git Clone Task</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getGitCloneTask() * @generated */ - EAttribute BRANCH__MSPEC_FILE_PATH = eINSTANCE.getBranch_MspecFilePath(); + EClass GIT_CLONE_TASK = eINSTANCE.getGitCloneTask(); /** - * The meta object literal for the '<em><b>Clone Variable Name</b></em>' attribute feature. + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EAttribute BRANCH__CLONE_VARIABLE_NAME = eINSTANCE.getBranch_CloneVariableName(); + EAttribute GIT_CLONE_TASK__NAME = eINSTANCE.getGitCloneTask_Name(); /** - * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl <em>Tool Installation</em>}' class. + * The meta object literal for the '<em><b>Remote Name</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getToolInstallation() * @generated */ - EClass TOOL_INSTALLATION = eINSTANCE.getToolInstallation(); + EAttribute GIT_CLONE_TASK__REMOTE_NAME = eINSTANCE.getGitCloneTask_RemoteName(); /** - * The meta object literal for the '<em><b>Director Calls</b></em>' containment reference list feature. + * The meta object literal for the '<em><b>Remote URI</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference TOOL_INSTALLATION__DIRECTOR_CALLS = eINSTANCE.getToolInstallation_DirectorCalls(); + EAttribute GIT_CLONE_TASK__REMOTE_URI = eINSTANCE.getGitCloneTask_RemoteURI(); /** - * The meta object literal for the '<em><b>Tool Preferences</b></em>' containment reference list feature. + * The meta object literal for the '<em><b>Checkout Branch</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference TOOL_INSTALLATION__TOOL_PREFERENCES = eINSTANCE.getToolInstallation_ToolPreferences(); + EAttribute GIT_CLONE_TASK__CHECKOUT_BRANCH = eINSTANCE.getGitCloneTask_CheckoutBranch(); /** * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl <em>Eclipse Version</em>}' class. @@ -1618,38 +2702,64 @@ public interface SetupPackage extends EPackage EAttribute ECLIPSE_VERSION__VERSION = eINSTANCE.getEclipseVersion_Version(); /** - * The meta object literal for the '<em><b>Director Call</b></em>' containment reference feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl <em>P2 Task</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getP2Task() * @generated */ - EReference ECLIPSE_VERSION__DIRECTOR_CALL = eINSTANCE.getEclipseVersion_DirectorCall(); + EClass P2_TASK = eINSTANCE.getP2Task(); /** - * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl <em>Director Call</em>}' class. + * The meta object literal for the '<em><b>Installable Units</b></em>' containment reference list feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getDirectorCall() * @generated */ - EClass DIRECTOR_CALL = eINSTANCE.getDirectorCall(); + EReference P2_TASK__INSTALLABLE_UNITS = eINSTANCE.getP2Task_InstallableUnits(); /** - * The meta object literal for the '<em><b>Installable Units</b></em>' containment reference list feature. + * The meta object literal for the '<em><b>P2 Repositories</b></em>' containment reference list feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference DIRECTOR_CALL__INSTALLABLE_UNITS = eINSTANCE.getDirectorCall_InstallableUnits(); + EReference P2_TASK__P2_REPOSITORIES = eINSTANCE.getP2Task_P2Repositories(); /** - * The meta object literal for the '<em><b>P2 Repositories</b></em>' containment reference list feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl <em>String Variable Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getStringVariableTask() + * @generated + */ + EClass STRING_VARIABLE_TASK = eINSTANCE.getStringVariableTask(); + + /** + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute STRING_VARIABLE_TASK__NAME = eINSTANCE.getStringVariableTask_Name(); + + /** + * The meta object literal for the '<em><b>Value</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute STRING_VARIABLE_TASK__VALUE = eINSTANCE.getStringVariableTask_Value(); + + /** + * The meta object literal for the '<em><b>Description</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference DIRECTOR_CALL__P2_REPOSITORIES = eINSTANCE.getDirectorCall_P2Repositories(); + EAttribute STRING_VARIABLE_TASK__DESCRIPTION = eINSTANCE.getStringVariableTask_Description(); /** * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl <em>Installable Unit</em>}' class. @@ -1662,12 +2772,12 @@ public interface SetupPackage extends EPackage EClass INSTALLABLE_UNIT = eINSTANCE.getInstallableUnit(); /** - * The meta object literal for the '<em><b>Director Call</b></em>' container reference feature. + * The meta object literal for the '<em><b>P2 Task</b></em>' container reference feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference INSTALLABLE_UNIT__DIRECTOR_CALL = eINSTANCE.getInstallableUnit_DirectorCall(); + EReference INSTALLABLE_UNIT__P2_TASK = eINSTANCE.getInstallableUnit_P2Task(); /** * The meta object literal for the '<em><b>Id</b></em>' attribute feature. @@ -1688,12 +2798,12 @@ public interface SetupPackage extends EPackage EClass P2_REPOSITORY = eINSTANCE.getP2Repository(); /** - * The meta object literal for the '<em><b>Director Call</b></em>' container reference feature. + * The meta object literal for the '<em><b>P2 Task</b></em>' container reference feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference P2_REPOSITORY__DIRECTOR_CALL = eINSTANCE.getP2Repository_DirectorCall(); + EReference P2_REPOSITORY__P2_TASK = eINSTANCE.getP2Repository_P2Task(); /** * The meta object literal for the '<em><b>Url</b></em>' attribute feature. @@ -1704,174 +2814,310 @@ public interface SetupPackage extends EPackage EAttribute P2_REPOSITORY__URL = eINSTANCE.getP2Repository_Url(); /** - * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl <em>Api Baseline</em>}' class. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl <em>Setup</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getApiBaseline() + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetup() * @generated */ - EClass API_BASELINE = eINSTANCE.getApiBaseline(); + EClass SETUP = eINSTANCE.getSetup(); /** - * The meta object literal for the '<em><b>Project</b></em>' container reference feature. + * The meta object literal for the '<em><b>Branch</b></em>' reference feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference API_BASELINE__PROJECT = eINSTANCE.getApiBaseline_Project(); + EReference SETUP__BRANCH = eINSTANCE.getSetup_Branch(); /** - * The meta object literal for the '<em><b>Version</b></em>' attribute feature. + * The meta object literal for the '<em><b>Eclipse Version</b></em>' reference feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EAttribute API_BASELINE__VERSION = eINSTANCE.getApiBaseline_Version(); + EReference SETUP__ECLIPSE_VERSION = eINSTANCE.getSetup_EclipseVersion(); /** - * The meta object literal for the '<em><b>Zip Location</b></em>' attribute feature. + * The meta object literal for the '<em><b>Preferences</b></em>' reference feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EAttribute API_BASELINE__ZIP_LOCATION = eINSTANCE.getApiBaseline_ZipLocation(); + EReference SETUP__PREFERENCES = eINSTANCE.getSetup_Preferences(); /** - * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl <em>Git Clone</em>}' class. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl <em>Task</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getGitClone() + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTask() * @generated */ - EClass GIT_CLONE = eINSTANCE.getGitClone(); + EClass SETUP_TASK = eINSTANCE.getSetupTask(); /** - * The meta object literal for the '<em><b>Branch</b></em>' container reference feature. + * The meta object literal for the '<em><b>Requirements</b></em>' reference list feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference GIT_CLONE__BRANCH = eINSTANCE.getGitClone_Branch(); + EReference SETUP_TASK__REQUIREMENTS = eINSTANCE.getSetupTask_Requirements(); /** - * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * The meta object literal for the '<em><b>Restrictions</b></em>' reference list feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EAttribute GIT_CLONE__NAME = eINSTANCE.getGitClone_Name(); + EReference SETUP_TASK__RESTRICTIONS = eINSTANCE.getSetupTask_Restrictions(); /** - * The meta object literal for the '<em><b>Remote URI</b></em>' attribute feature. + * The meta object literal for the '<em><b>Scope</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EAttribute GIT_CLONE__REMOTE_URI = eINSTANCE.getGitClone_RemoteURI(); + EAttribute SETUP_TASK__SCOPE = eINSTANCE.getSetupTask_Scope(); /** - * The meta object literal for the '<em><b>Checkout Branch</b></em>' attribute feature. + * The meta object literal for the '<em><b>Excluded Triggers</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EAttribute GIT_CLONE__CHECKOUT_BRANCH = eINSTANCE.getGitClone_CheckoutBranch(); + EAttribute SETUP_TASK__EXCLUDED_TRIGGERS = eINSTANCE.getSetupTask_ExcludedTriggers(); /** - * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl <em>Setup</em>}' class. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl <em>Working Set Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getWorkingSetTask() + * @generated + */ + EClass WORKING_SET_TASK = eINSTANCE.getWorkingSetTask(); + + /** + * The meta object literal for the '<em><b>Working Sets</b></em>' containment reference list feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetup() * @generated */ - EClass SETUP = eINSTANCE.getSetup(); + EReference WORKING_SET_TASK__WORKING_SETS = eINSTANCE.getWorkingSetTask_WorkingSets(); /** - * The meta object literal for the '<em><b>Branch</b></em>' reference feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl <em>Resource Copy Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getResourceCopyTask() + * @generated + */ + EClass RESOURCE_COPY_TASK = eINSTANCE.getResourceCopyTask(); + + /** + * The meta object literal for the '<em><b>Source URL</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute RESOURCE_COPY_TASK__SOURCE_URL = eINSTANCE.getResourceCopyTask_SourceURL(); + + /** + * The meta object literal for the '<em><b>Target URL</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute RESOURCE_COPY_TASK__TARGET_URL = eINSTANCE.getResourceCopyTask_TargetURL(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl <em>Text Modify Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTextModifyTask() + * @generated + */ + EClass TEXT_MODIFY_TASK = eINSTANCE.getTextModifyTask(); + + /** + * The meta object literal for the '<em><b>Url</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute TEXT_MODIFY_TASK__URL = eINSTANCE.getTextModifyTask_Url(); + + /** + * The meta object literal for the '<em><b>Modifications</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference TEXT_MODIFY_TASK__MODIFICATIONS = eINSTANCE.getTextModifyTask_Modifications(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl <em>Text Modification</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTextModification() + * @generated + */ + EClass TEXT_MODIFICATION = eINSTANCE.getTextModification(); + + /** + * The meta object literal for the '<em><b>Pattern</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute TEXT_MODIFICATION__PATTERN = eINSTANCE.getTextModification_Pattern(); + + /** + * The meta object literal for the '<em><b>Substitutions</b></em>' attribute list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute TEXT_MODIFICATION__SUBSTITUTIONS = eINSTANCE.getTextModification_Substitutions(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl <em>Eclipse Ini Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipseIniTask() + * @generated + */ + EClass ECLIPSE_INI_TASK = eINSTANCE.getEclipseIniTask(); + + /** + * The meta object literal for the '<em><b>Option</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference SETUP__BRANCH = eINSTANCE.getSetup_Branch(); + EAttribute ECLIPSE_INI_TASK__OPTION = eINSTANCE.getEclipseIniTask_Option(); /** - * The meta object literal for the '<em><b>Eclipse Version</b></em>' reference feature. + * The meta object literal for the '<em><b>Value</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference SETUP__ECLIPSE_VERSION = eINSTANCE.getSetup_EclipseVersion(); + EAttribute ECLIPSE_INI_TASK__VALUE = eINSTANCE.getEclipseIniTask_Value(); /** - * The meta object literal for the '<em><b>Preferences</b></em>' containment reference feature. + * The meta object literal for the '<em><b>Vm</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference SETUP__PREFERENCES = eINSTANCE.getSetup_Preferences(); + EAttribute ECLIPSE_INI_TASK__VM = eINSTANCE.getEclipseIniTask_Vm(); /** - * The meta object literal for the '<em><b>Update Locations</b></em>' containment reference list feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskScope <em>Task Scope</em>}' enum. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.SetupTaskScope + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTaskScope() * @generated */ - EReference SETUP__UPDATE_LOCATIONS = eINSTANCE.getSetup_UpdateLocations(); + EEnum SETUP_TASK_SCOPE = eINSTANCE.getSetupTaskScope(); /** - * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl <em>Tool Preference</em>}' class. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.Trigger <em>Trigger</em>}' enum. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getToolPreference() + * @see org.eclipse.emf.cdo.releng.setup.Trigger + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTrigger() * @generated */ - EClass TOOL_PREFERENCE = eINSTANCE.getToolPreference(); + EEnum TRIGGER = eINSTANCE.getTrigger(); /** - * The meta object literal for the '<em><b>Key</b></em>' attribute feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl <em>Compound Setup Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getCompoundSetupTask() + * @generated + */ + EClass COMPOUND_SETUP_TASK = eINSTANCE.getCompoundSetupTask(); + + /** + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EAttribute TOOL_PREFERENCE__KEY = eINSTANCE.getToolPreference_Key(); + EAttribute COMPOUND_SETUP_TASK__NAME = eINSTANCE.getCompoundSetupTask_Name(); /** - * The meta object literal for the '<em><b>Value</b></em>' attribute feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl <em>One Time Setup Task</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getOneTimeSetupTask() * @generated */ - EAttribute TOOL_PREFERENCE__VALUE = eINSTANCE.getToolPreference_Value(); + EClass ONE_TIME_SETUP_TASK = eINSTANCE.getOneTimeSetupTask(); /** - * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl <em>Link Location</em>}' class. + * The meta object literal for the '<em><b>Id</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getLinkLocation() * @generated */ - EClass LINK_LOCATION = eINSTANCE.getLinkLocation(); + EAttribute ONE_TIME_SETUP_TASK__ID = eINSTANCE.getOneTimeSetupTask_Id(); /** - * The meta object literal for the '<em><b>Path</b></em>' attribute feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ConfigurableItemImpl <em>Configurable Item</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.ConfigurableItemImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getConfigurableItem() * @generated */ - EAttribute LINK_LOCATION__PATH = eINSTANCE.getLinkLocation_Path(); + EClass CONFIGURABLE_ITEM = eINSTANCE.getConfigurableItem(); /** - * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl <em>Buckminster Import Task</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBuckminsterImportTask() * @generated */ - EAttribute LINK_LOCATION__NAME = eINSTANCE.getLinkLocation_Name(); + EClass BUCKMINSTER_IMPORT_TASK = eINSTANCE.getBuckminsterImportTask(); + + /** + * The meta object literal for the '<em><b>Mspec</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute BUCKMINSTER_IMPORT_TASK__MSPEC = eINSTANCE.getBuckminsterImportTask_Mspec(); + + /** + * The meta object literal for the '<em><b>Target Platform</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM = eINSTANCE.getBuckminsterImportTask_TargetPlatform(); + + /** + * The meta object literal for the '<em><b>Bundle Pool</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL = eINSTANCE.getBuckminsterImportTask_BundlePool(); /** * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl <em>Preferences</em>}' class. @@ -1908,12 +3154,74 @@ public interface SetupPackage extends EPackage EAttribute PREFERENCES__GIT_PREFIX = eINSTANCE.getPreferences_GitPrefix(); /** - * The meta object literal for the '<em><b>Link Locations</b></em>' containment reference list feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl <em>Link Location Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getLinkLocationTask() + * @generated + */ + EClass LINK_LOCATION_TASK = eINSTANCE.getLinkLocationTask(); + + /** + * The meta object literal for the '<em><b>Path</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute LINK_LOCATION_TASK__PATH = eINSTANCE.getLinkLocationTask_Path(); + + /** + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute LINK_LOCATION_TASK__NAME = eINSTANCE.getLinkLocationTask_Name(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl <em>Task Container</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTaskContainer() + * @generated + */ + EClass SETUP_TASK_CONTAINER = eINSTANCE.getSetupTaskContainer(); + + /** + * The meta object literal for the '<em><b>Setup Tasks</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference SETUP_TASK_CONTAINER__SETUP_TASKS = eINSTANCE.getSetupTaskContainer_SetupTasks(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl <em>Eclipse Preference Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipsePreferenceTask() + * @generated + */ + EClass ECLIPSE_PREFERENCE_TASK = eINSTANCE.getEclipsePreferenceTask(); + + /** + * The meta object literal for the '<em><b>Key</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute ECLIPSE_PREFERENCE_TASK__KEY = eINSTANCE.getEclipsePreferenceTask_Key(); + + /** + * The meta object literal for the '<em><b>Value</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference PREFERENCES__LINK_LOCATIONS = eINSTANCE.getPreferences_LinkLocations(); + EAttribute ECLIPSE_PREFERENCE_TASK__VALUE = eINSTANCE.getEclipsePreferenceTask_Value(); /** * The meta object literal for the '<em>URI</em>' data type. @@ -1925,6 +3233,26 @@ public interface SetupPackage extends EPackage */ EDataType URI = eINSTANCE.getURI(); + /** + * The meta object literal for the '<em>Exception</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see java.lang.Exception + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getException() + * @generated + */ + EDataType EXCEPTION = eINSTANCE.getException(); + + /** + * The meta object literal for the '<em>Trigger Set</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see java.util.Set + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTriggerSet() + * @generated + */ + EDataType TRIGGER_SET = eINSTANCE.getTriggerSet(); + } } // SetupPackage diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTask.java new file mode 100644 index 0000000000..67280a0d2f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTask.java @@ -0,0 +1,139 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; + +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getRequirements <em>Requirements</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getRestrictions <em>Restrictions</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getScope <em>Scope</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getExcludedTriggers <em>Excluded Triggers</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask() + * @model abstract="true" + * @generated + */ +public interface SetupTask extends EObject +{ + /** + * Returns the value of the '<em><b>Requirements</b></em>' reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.SetupTask}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Requirements</em>' reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Requirements</em>' reference list. + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask_Requirements() + * @model + * @generated + */ + EList<SetupTask> getRequirements(); + + /** + * Returns the value of the '<em><b>Restrictions</b></em>' reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.ConfigurableItem}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Restrictions</em>' reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Restrictions</em>' reference list. + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask_Restrictions() + * @model + * @generated + */ + EList<ConfigurableItem> getRestrictions(); + + /** + * Returns the value of the '<em><b>Scope</b></em>' attribute. + * The literals are from the enumeration {@link org.eclipse.emf.cdo.releng.setup.SetupTaskScope}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Scope</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Scope</em>' attribute. + * @see org.eclipse.emf.cdo.releng.setup.SetupTaskScope + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask_Scope() + * @model transient="true" changeable="false" volatile="true" derived="true" + * @generated + */ + SetupTaskScope getScope(); + + /** + * Returns the value of the '<em><b>Excluded Triggers</b></em>' attribute. + * The default value is <code>""</code>. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Excluded Triggers</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Excluded Triggers</em>' attribute. + * @see #setExcludedTriggers(Set) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask_ExcludedTriggers() + * @model default="" dataType="org.eclipse.emf.cdo.releng.setup.TriggerSet" required="true" + * @generated + */ + Set<Trigger> getExcludedTriggers(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getExcludedTriggers <em>Excluded Triggers</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Excluded Triggers</em>' attribute. + * @see #getExcludedTriggers() + * @generated + */ + void setExcludedTriggers(Set<Trigger> value); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model + * @generated + */ + boolean requires(SetupTask setupTask); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model kind="operation" dataType="org.eclipse.emf.cdo.releng.setup.TriggerSet" required="true" + * @generated + */ + Set<Trigger> getValidTriggers(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model kind="operation" dataType="org.eclipse.emf.cdo.releng.setup.TriggerSet" required="true" + * @generated + */ + Set<Trigger> getTriggers(); + + Object getOverrideToken(); + + boolean isNeeded(SetupTaskContext context) throws Exception; + + void perform(SetupTaskContext context) throws Exception; + + void dispose(); + +} // SetupTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContainer.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContainer.java new file mode 100644 index 0000000000..ff3f5a7e87 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContainer.java @@ -0,0 +1,42 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Task Container</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTaskContainer#getSetupTasks <em>Setup Tasks</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTaskContainer() + * @model abstract="true" + * @generated + */ +public interface SetupTaskContainer extends EObject +{ + /** + * Returns the value of the '<em><b>Setup Tasks</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.SetupTask}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Setup Tasks</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Setup Tasks</em>' containment reference list. + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTaskContainer_SetupTasks() + * @model containment="true" resolveProxies="true" + * @generated + */ + EList<SetupTask> getSetupTasks(); + +} // SetupTaskContainer diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContext.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContext.java new file mode 100644 index 0000000000..4eaf92ecb2 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContext.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.setup; + +import org.eclipse.emf.cdo.releng.setup.util.OS; +import org.eclipse.emf.cdo.releng.setup.util.StringExpander; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog; + +import java.io.File; +import java.util.Map; + +/** + * @author Eike Stepper + */ +public interface SetupTaskContext extends Map<Object, Object>, ProgressLog, StringExpander +{ + public Trigger getTrigger(); + + public boolean isRestartNeeded(); + + public void setRestartNeeded(); + + public OS getOS(); + + public String getP2ProfileName(); + + public File getP2ProfileDir(); + + public File getP2AgentDir(); + + public File getP2PoolDir(); + + public File getInstallDir(); + + public File getProjectDir(); + + public File getBranchDir(); + + public File getEclipseDir(); + + public File getTargetPlatformDir(); + + public File getWorkspaceDir(); + + public Setup getSetup(); +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskScope.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskScope.java new file mode 100644 index 0000000000..b31b3ad090 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskScope.java @@ -0,0 +1,302 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +import org.eclipse.emf.common.util.Enumerator; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** + * <!-- begin-user-doc --> + * A representation of the literals of the enumeration '<em><b>Task Scope</b></em>', + * and utility methods for working with them. + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTaskScope() + * @model + * @generated + */ +public enum SetupTaskScope implements Enumerator +{ + /** + * The '<em><b>None</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #NONE_VALUE + * @generated + * @ordered + */ + NONE(0, "None", "None"), + + /** + * The '<em><b>Configuration</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #CONFIGURATION_VALUE + * @generated + * @ordered + */ + CONFIGURATION(1, "Configuration", "Configuration"), + + /** + * The '<em><b>Project</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #PROJECT_VALUE + * @generated + * @ordered + */ + PROJECT(2, "Project", "Project"), + + /** + * The '<em><b>Branch</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #BRANCH_VALUE + * @generated + * @ordered + */ + BRANCH(3, "Branch", "Branch"), + + /** + * The '<em><b>User</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #USER_VALUE + * @generated + * @ordered + */ + USER(4, "User", "User"); + + /** + * The '<em><b>None</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>None</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #NONE + * @model name="None" + * @generated + * @ordered + */ + public static final int NONE_VALUE = 0; + + /** + * The '<em><b>Configuration</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Configuration</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #CONFIGURATION + * @model name="Configuration" + * @generated + * @ordered + */ + public static final int CONFIGURATION_VALUE = 1; + + /** + * The '<em><b>Project</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Project</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #PROJECT + * @model name="Project" + * @generated + * @ordered + */ + public static final int PROJECT_VALUE = 2; + + /** + * The '<em><b>Branch</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Branch</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #BRANCH + * @model name="Branch" + * @generated + * @ordered + */ + public static final int BRANCH_VALUE = 3; + + /** + * The '<em><b>User</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>User</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #USER + * @model name="User" + * @generated + * @ordered + */ + public static final int USER_VALUE = 4; + + /** + * An array of all the '<em><b>Task Scope</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static final SetupTaskScope[] VALUES_ARRAY = new SetupTaskScope[] { NONE, CONFIGURATION, PROJECT, BRANCH, + USER, }; + + /** + * A public read-only list of all the '<em><b>Task Scope</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final List<SetupTaskScope> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the '<em><b>Task Scope</b></em>' literal with the specified literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static SetupTaskScope get(String literal) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + SetupTaskScope result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) + { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Task Scope</b></em>' literal with the specified name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static SetupTaskScope getByName(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + SetupTaskScope result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) + { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Task Scope</b></em>' literal with the specified integer value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static SetupTaskScope get(int value) + { + switch (value) + { + case NONE_VALUE: + return NONE; + case CONFIGURATION_VALUE: + return CONFIGURATION; + case PROJECT_VALUE: + return PROJECT; + case BRANCH_VALUE: + return BRANCH; + case USER_VALUE: + return USER; + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final int value; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final String name; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private SetupTaskScope(int value, String name, String literal) + { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getValue() + { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() + { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getLiteral() + { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + return literal; + } + +} // SetupTaskScope diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/StringVariableTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/StringVariableTask.java new file mode 100644 index 0000000000..4dbaf7cfec --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/StringVariableTask.java @@ -0,0 +1,103 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>String Variable Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getValue <em>Value</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getDescription <em>Description</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getStringVariableTask() + * @model + * @generated + */ +public interface StringVariableTask extends SetupTask +{ + /** + * Returns the value of the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Name</em>' attribute. + * @see #setName(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getStringVariableTask_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getName <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Name</em>' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Value</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Value</em>' attribute. + * @see #setValue(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getStringVariableTask_Value() + * @model + * @generated + */ + String getValue(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getValue <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Value</em>' attribute. + * @see #getValue() + * @generated + */ + void setValue(String value); + + /** + * Returns the value of the '<em><b>Description</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Description</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Description</em>' attribute. + * @see #setDescription(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getStringVariableTask_Description() + * @model + * @generated + */ + String getDescription(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getDescription <em>Description</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Description</em>' attribute. + * @see #getDescription() + * @generated + */ + void setDescription(String value); + +} // StringVariableTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModification.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModification.java new file mode 100644 index 0000000000..e16971d568 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModification.java @@ -0,0 +1,69 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Text Modification</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.TextModification#getPattern <em>Pattern</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.TextModification#getSubstitutions <em>Substitutions</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModification() + * @model + * @generated + */ +public interface TextModification extends EObject +{ + /** + * Returns the value of the '<em><b>Pattern</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Pattern</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Pattern</em>' attribute. + * @see #setPattern(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModification_Pattern() + * @model + * @generated + */ + String getPattern(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.TextModification#getPattern <em>Pattern</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Pattern</em>' attribute. + * @see #getPattern() + * @generated + */ + void setPattern(String value); + + /** + * Returns the value of the '<em><b>Substitutions</b></em>' attribute list. + * The list contents are of type {@link java.lang.String}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Substitutions</em>' attribute list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Substitutions</em>' attribute list. + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModification_Substitutions() + * @model + * @generated + */ + EList<String> getSubstitutions(); + +} // TextModification diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModifyTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModifyTask.java new file mode 100644 index 0000000000..e4036362c6 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModifyTask.java @@ -0,0 +1,68 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +import org.eclipse.emf.common.util.EList; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Text Modify Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getUrl <em>Url</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getModifications <em>Modifications</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModifyTask() + * @model + * @generated + */ +public interface TextModifyTask extends SetupTask +{ + /** + * Returns the value of the '<em><b>Url</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Url</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Url</em>' attribute. + * @see #setUrl(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModifyTask_Url() + * @model + * @generated + */ + String getUrl(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getUrl <em>Url</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Url</em>' attribute. + * @see #getUrl() + * @generated + */ + void setUrl(String value); + + /** + * Returns the value of the '<em><b>Modifications</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.TextModification}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Modifications</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Modifications</em>' containment reference list. + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModifyTask_Modifications() + * @model containment="true" resolveProxies="true" + * @generated + */ + EList<TextModification> getModifications(); + +} // TextModifyTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolInstallation.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolInstallation.java deleted file mode 100644 index 40ddaea307..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolInstallation.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup; - -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EObject; - -/** - * <!-- begin-user-doc --> - * A representation of the model object '<em><b>Tool Installation</b></em>'. - * <!-- end-user-doc --> - * - * <p> - * The following features are supported: - * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation#getDirectorCalls <em>Director Calls</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation#getToolPreferences <em>Tool Preferences</em>}</li> - * </ul> - * </p> - * - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolInstallation() - * @model abstract="true" - * @generated - */ -public interface ToolInstallation extends EObject -{ - /** - * Returns the value of the '<em><b>Director Calls</b></em>' containment reference list. - * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.DirectorCall}. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Director Calls</em>' containment reference list isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Director Calls</em>' containment reference list. - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolInstallation_DirectorCalls() - * @model containment="true" - * @generated - */ - EList<DirectorCall> getDirectorCalls(); - - /** - * Returns the value of the '<em><b>Tool Preferences</b></em>' containment reference list. - * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.ToolPreference}. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Tool Preferences</em>' containment reference list isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Tool Preferences</em>' containment reference list. - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolInstallation_ToolPreferences() - * @model containment="true" - * @generated - */ - EList<ToolPreference> getToolPreferences(); - -} // ToolInstallation diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Trigger.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Trigger.java new file mode 100644 index 0000000000..2247926e92 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Trigger.java @@ -0,0 +1,327 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +import org.eclipse.emf.common.util.Enumerator; + +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * A representation of the literals of the enumeration '<em><b>Trigger</b></em>', + * and utility methods for working with them. + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTrigger() + * @model + * @generated + */ +public enum Trigger implements Enumerator +{ + /** + * The '<em><b>BOOTSTRAP</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #BOOTSTRAP_VALUE + * @generated + * @ordered + */ + BOOTSTRAP(0, "BOOTSTRAP", "BOOTSTRAP"), + + /** + * The '<em><b>STARTUP</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #STARTUP_VALUE + * @generated + * @ordered + */ + STARTUP(1, "STARTUP", "STARTUP"), + + /** + * The '<em><b>MANUAL</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #MANUAL_VALUE + * @generated + * @ordered + */ + MANUAL(2, "MANUAL", "MANUAL"); + + /** + * The '<em><b>BOOTSTRAP</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>BOOTSTRAP</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #BOOTSTRAP + * @model + * @generated + * @ordered + */ + public static final int BOOTSTRAP_VALUE = 0; + + /** + * The '<em><b>STARTUP</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>STARTUP</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #STARTUP + * @model + * @generated + * @ordered + */ + public static final int STARTUP_VALUE = 1; + + /** + * The '<em><b>MANUAL</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>MANUAL</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #MANUAL + * @model + * @generated + * @ordered + */ + public static final int MANUAL_VALUE = 2; + + /** + * An array of all the '<em><b>Trigger</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static final Trigger[] VALUES_ARRAY = new Trigger[] { BOOTSTRAP, STARTUP, MANUAL, }; + + /** + * A public read-only list of all the '<em><b>Trigger</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final List<Trigger> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the '<em><b>Trigger</b></em>' literal with the specified literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static Trigger get(String literal) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + Trigger result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) + { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Trigger</b></em>' literal with the specified name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static Trigger getByName(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + Trigger result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) + { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Trigger</b></em>' literal with the specified integer value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static Trigger get(int value) + { + switch (value) + { + case BOOTSTRAP_VALUE: + return BOOTSTRAP; + case STARTUP_VALUE: + return STARTUP; + case MANUAL_VALUE: + return MANUAL; + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final int value; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final String name; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private Trigger(int value, String name, String literal) + { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getValue() + { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() + { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getLiteral() + { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + return literal; + } + + public static Set<Trigger> toSet(Trigger... triggers) + { + return intern(new HashSet<Trigger>(Arrays.asList(triggers))); + } + + public static Set<Trigger> intern(Set<Trigger> triggerSet) + { + return CANONICAL_TRIGGER_SETS.get(triggerSet); + } + + private static final Map<Set<Trigger>, Set<Trigger>> CANONICAL_TRIGGER_SETS = new HashMap<Set<Trigger>, Set<Trigger>>(); + + public static final Map<Set<Trigger>, String> LITERALS; + + static + { + Map<Set<Trigger>, String> literals = new LinkedHashMap<Set<Trigger>, String>(); + for (int i = 0; i < 2; ++i) + { + for (int j = 0; j < 2; ++j) + { + for (int k = 0; k < 2; ++k) + { + Set<Trigger> value = new LinkedHashSet<Trigger>() + { + private static final long serialVersionUID = 1L; + + @Override + public String toString() + { + StringBuilder result = new StringBuilder(); + for (Trigger trigger : this) + { + if (result.length() != 0) + { + result.append(' '); + } + + result.append(trigger); + } + + return result.toString(); + } + }; + + if (i == 1) + { + value.add(Trigger.BOOTSTRAP); + } + + if (j == 1) + { + value.add(Trigger.STARTUP); + } + + if (k == 1) + { + value.add(Trigger.MANUAL); + } + + value = Collections.unmodifiableSet(value); + literals.put(value, value.toString()); + CANONICAL_TRIGGER_SETS.put(value, value); + } + } + } + + LITERALS = Collections.unmodifiableMap(literals); + } + + public static final Set<Trigger> ALL_TRIGGERS = toSet(values()); + + public static final Set<Trigger> IDE_TRIGGERS = toSet(Trigger.STARTUP, Trigger.MANUAL); + +} // Trigger diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/WorkingSetTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/WorkingSetTask.java new file mode 100644 index 0000000000..1d9ea1eb9e --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/WorkingSetTask.java @@ -0,0 +1,42 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +import org.eclipse.emf.cdo.releng.workingsets.WorkingSet; +import org.eclipse.emf.common.util.EList; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Set Working Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask#getWorkingSets <em>Working Sets</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getWorkingSetTask() + * @model + * @generated + */ +public interface WorkingSetTask extends SetupTask +{ + /** + * Returns the value of the '<em><b>Working Sets</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Working Sets</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Working Sets</em>' containment reference list. + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getWorkingSetTask_WorkingSets() + * @model containment="true" resolveProxies="true" + * @generated + */ + EList<WorkingSet> getWorkingSets(); + +} // SetWorkingTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Progress.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Progress.java deleted file mode 100644 index 4bfe77cae3..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Progress.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.helper; - -/** - * @author Eike Stepper - */ -public final class Progress -{ - private static final ProgressLog DEFAULT = new ProgressLog() - { - public boolean isCancelled() - { - return false; - } - - public void addLine(String line) - { - System.out.println(line); - } - }; - - private static ProgressLog log; - - public static ProgressLog log() - { - if (log == null) - { - return DEFAULT; - } - - return log; - } - - public static void set(ProgressLog log) - { - Progress.log = log; - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineImpl.java deleted file mode 100644 index 567947cb97..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineImpl.java +++ /dev/null @@ -1,355 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.impl; - -import org.eclipse.emf.cdo.releng.setup.ApiBaseline; -import org.eclipse.emf.cdo.releng.setup.Project; -import org.eclipse.emf.cdo.releng.setup.SetupPackage; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; -import org.eclipse.emf.ecore.util.EcoreUtil; - -/** - * <!-- begin-user-doc --> - * An implementation of the model object '<em><b>Api Baseline</b></em>'. - * <!-- end-user-doc --> - * <p> - * The following features are implemented: - * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl#getProject <em>Project</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl#getVersion <em>Version</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl#getZipLocation <em>Zip Location</em>}</li> - * </ul> - * </p> - * - * @generated - */ -public class ApiBaselineImpl extends MinimalEObjectImpl.Container implements ApiBaseline -{ - /** - * The default value of the '{@link #getVersion() <em>Version</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getVersion() - * @generated - * @ordered - */ - protected static final String VERSION_EDEFAULT = null; - - /** - * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getVersion() - * @generated - * @ordered - */ - protected String version = VERSION_EDEFAULT; - - /** - * The default value of the '{@link #getZipLocation() <em>Zip Location</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getZipLocation() - * @generated - * @ordered - */ - protected static final String ZIP_LOCATION_EDEFAULT = null; - - /** - * The cached value of the '{@link #getZipLocation() <em>Zip Location</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getZipLocation() - * @generated - * @ordered - */ - protected String zipLocation = ZIP_LOCATION_EDEFAULT; - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected ApiBaselineImpl() - { - super(); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SetupPackage.Literals.API_BASELINE; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public Project getProject() - { - if (eContainerFeatureID() != SetupPackage.API_BASELINE__PROJECT) - return null; - return (Project)eInternalContainer(); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public NotificationChain basicSetProject(Project newProject, NotificationChain msgs) - { - msgs = eBasicSetContainer((InternalEObject)newProject, SetupPackage.API_BASELINE__PROJECT, msgs); - return msgs; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setProject(Project newProject) - { - if (newProject != eInternalContainer() - || (eContainerFeatureID() != SetupPackage.API_BASELINE__PROJECT && newProject != null)) - { - if (EcoreUtil.isAncestor(this, newProject)) - throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); - NotificationChain msgs = null; - if (eInternalContainer() != null) - msgs = eBasicRemoveFromContainer(msgs); - if (newProject != null) - msgs = ((InternalEObject)newProject) - .eInverseAdd(this, SetupPackage.PROJECT__API_BASELINES, Project.class, msgs); - msgs = basicSetProject(newProject, msgs); - if (msgs != null) - msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE__PROJECT, newProject, newProject)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public String getVersion() - { - return version; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setVersion(String newVersion) - { - String oldVersion = version; - version = newVersion; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE__VERSION, oldVersion, version)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public String getZipLocation() - { - return zipLocation; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setZipLocation(String newZipLocation) - { - String oldZipLocation = zipLocation; - zipLocation = newZipLocation; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE__ZIP_LOCATION, oldZipLocation, - zipLocation)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SetupPackage.API_BASELINE__PROJECT: - if (eInternalContainer() != null) - msgs = eBasicRemoveFromContainer(msgs); - return basicSetProject((Project)otherEnd, msgs); - } - return super.eInverseAdd(otherEnd, featureID, msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SetupPackage.API_BASELINE__PROJECT: - return basicSetProject(null, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) - { - switch (eContainerFeatureID()) - { - case SetupPackage.API_BASELINE__PROJECT: - return eInternalContainer().eInverseRemove(this, SetupPackage.PROJECT__API_BASELINES, Project.class, msgs); - } - return super.eBasicRemoveFromContainerFeature(msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SetupPackage.API_BASELINE__PROJECT: - return getProject(); - case SetupPackage.API_BASELINE__VERSION: - return getVersion(); - case SetupPackage.API_BASELINE__ZIP_LOCATION: - return getZipLocation(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SetupPackage.API_BASELINE__PROJECT: - setProject((Project)newValue); - return; - case SetupPackage.API_BASELINE__VERSION: - setVersion((String)newValue); - return; - case SetupPackage.API_BASELINE__ZIP_LOCATION: - setZipLocation((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SetupPackage.API_BASELINE__PROJECT: - setProject((Project)null); - return; - case SetupPackage.API_BASELINE__VERSION: - setVersion(VERSION_EDEFAULT); - return; - case SetupPackage.API_BASELINE__ZIP_LOCATION: - setZipLocation(ZIP_LOCATION_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SetupPackage.API_BASELINE__PROJECT: - return getProject() != null; - case SetupPackage.API_BASELINE__VERSION: - return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version); - case SetupPackage.API_BASELINE__ZIP_LOCATION: - return ZIP_LOCATION_EDEFAULT == null ? zipLocation != null : !ZIP_LOCATION_EDEFAULT.equals(zipLocation); - } - return super.eIsSet(featureID); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) - return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (version: "); - result.append(version); - result.append(", zipLocation: "); - result.append(zipLocation); - result.append(')'); - return result.toString(); - } - -} // ApiBaselineImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineTaskImpl.java new file mode 100644 index 0000000000..019df2d065 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineTaskImpl.java @@ -0,0 +1,340 @@ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; +import org.eclipse.emf.cdo.releng.setup.Trigger; +import org.eclipse.emf.cdo.releng.setup.util.DownloadUtil; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogMonitor; + +import org.eclipse.net4j.util.io.ZIPUtil; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.core.runtime.Path; +import org.eclipse.pde.api.tools.internal.ApiBaselineManager; +import org.eclipse.pde.api.tools.internal.model.ApiModelFactory; +import org.eclipse.pde.api.tools.internal.provisional.ApiPlugin; +import org.eclipse.pde.api.tools.internal.provisional.IApiBaselineManager; +import org.eclipse.pde.api.tools.internal.provisional.model.IApiBaseline; + +import java.io.File; +import java.io.InputStream; +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Api Baseline Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl#getVersion <em>Version</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl#getZipLocation <em>Zip Location</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class ApiBaselineTaskImpl extends SetupTaskImpl implements ApiBaselineTask +{ + /** + * The default value of the '{@link #getVersion() <em>Version</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getVersion() + * @generated + * @ordered + */ + protected static final String VERSION_EDEFAULT = null; + + /** + * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getVersion() + * @generated + * @ordered + */ + protected String version = VERSION_EDEFAULT; + + /** + * The default value of the '{@link #getZipLocation() <em>Zip Location</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getZipLocation() + * @generated + * @ordered + */ + protected static final String ZIP_LOCATION_EDEFAULT = null; + + /** + * The cached value of the '{@link #getZipLocation() <em>Zip Location</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getZipLocation() + * @generated + * @ordered + */ + protected String zipLocation = ZIP_LOCATION_EDEFAULT; + + private transient String baselineName; + + private transient File baselineDir; + + private transient Object cachedBaseline; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ApiBaselineTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.API_BASELINE_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getVersion() + { + return version; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setVersion(String newVersion) + { + String oldVersion = version; + version = newVersion; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE_TASK__VERSION, oldVersion, + version)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getZipLocation() + { + return zipLocation; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setZipLocation(String newZipLocation) + { + String oldZipLocation = zipLocation; + zipLocation = newZipLocation; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE_TASK__ZIP_LOCATION, + oldZipLocation, zipLocation)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.API_BASELINE_TASK__VERSION: + return getVersion(); + case SetupPackage.API_BASELINE_TASK__ZIP_LOCATION: + return getZipLocation(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.API_BASELINE_TASK__VERSION: + setVersion((String)newValue); + return; + case SetupPackage.API_BASELINE_TASK__ZIP_LOCATION: + setZipLocation((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.API_BASELINE_TASK__VERSION: + setVersion(VERSION_EDEFAULT); + return; + case SetupPackage.API_BASELINE_TASK__ZIP_LOCATION: + setZipLocation(ZIP_LOCATION_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.API_BASELINE_TASK__VERSION: + return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version); + case SetupPackage.API_BASELINE_TASK__ZIP_LOCATION: + return ZIP_LOCATION_EDEFAULT == null ? zipLocation != null : !ZIP_LOCATION_EDEFAULT.equals(zipLocation); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (version: "); + result.append(version); + result.append(", zipLocation: "); + result.append(zipLocation); + result.append(')'); + return result.toString(); + } + + @Override + public Set<Trigger> getValidTriggers() + { + return Trigger.IDE_TRIGGERS; + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + baselineName = context.getSetup().getBranch().getProject().getName() + " Baseline"; + baselineDir = new File(new File(context.getProjectDir(), ".baselines"), getVersion()); + + IApiBaselineManager baselineManager = ApiPlugin.getDefault().getApiBaselineManager(); + IApiBaseline baseline = baselineManager.getApiBaseline(baselineName); + if (baseline == null) + { + return true; + } + + ((ApiBaselineManager)baselineManager).loadBaselineInfos(baseline); + + if (!new File(baseline.getLocation()).equals(baselineDir)) + { + baselineManager.removeApiBaseline(baselineName); + baseline.setName(baselineName + " " + System.currentTimeMillis()); + baselineManager.addApiBaseline(baseline); + return true; + } + + if (baselineManager.getDefaultApiBaseline() != baseline) + { + cachedBaseline = baseline; + return true; + } + + return false; + } + + public void perform(SetupTaskContext context) throws Exception + { + IApiBaselineManager baselineManager = ApiPlugin.getDefault().getApiBaselineManager(); + IApiBaseline baseline = (IApiBaseline)cachedBaseline; + if (baseline == null) + { + if (!baselineDir.exists()) + { + downloadAndUnzip(context); + } + + String location = baselineDir.toString(); + context.log("Creating API baseline from " + location); + + baseline = ApiModelFactory.newApiBaseline(baselineName, location); + ApiModelFactory.addComponents(baseline, location, new ProgressLogMonitor(context)); + baselineManager.addApiBaseline(baseline); + } + + context.log("Activating API baseline: " + baselineName); + baselineManager.setDefaultApiBaseline(baselineName); + } + + private void downloadAndUnzip(final SetupTaskContext context) + { + final File baselinesDir = baselineDir.getParentFile(); + baselinesDir.mkdirs(); + + File zipFile = DownloadUtil.downloadURL(getZipLocation(), context); + + final File[] rootDir = { null }; + ZIPUtil.unzip(zipFile, new ZIPUtil.FileSystemUnzipHandler(baselinesDir, ZIPUtil.DEFAULT_BUFFER_SIZE) + { + @Override + public void unzipFile(String name, InputStream zipStream) + { + if (rootDir[0] == null) + { + rootDir[0] = new File(baselinesDir, new Path(name).segment(0)); + } + + context.log("Unzipping " + name); + super.unzipFile(name, zipStream); + } + }); + + rootDir[0].renameTo(baselineDir); + } + +} // ApiBaselineTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BranchImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BranchImpl.java index 26044a7b20..2c688c0421 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BranchImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BranchImpl.java @@ -10,25 +10,16 @@ */ package org.eclipse.emf.cdo.releng.setup.impl; -import org.eclipse.emf.cdo.releng.setup.ApiBaseline; import org.eclipse.emf.cdo.releng.setup.Branch; -import org.eclipse.emf.cdo.releng.setup.GitClone; import org.eclipse.emf.cdo.releng.setup.Project; import org.eclipse.emf.cdo.releng.setup.SetupPackage; + import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.NotificationChain; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; import org.eclipse.emf.ecore.util.EcoreUtil; -import org.eclipse.emf.ecore.util.InternalEList; -import java.io.File; -import java.util.Collection; /** * <!-- begin-user-doc --> @@ -39,16 +30,12 @@ import java.util.Collection; * <ul> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getProject <em>Project</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getName <em>Name</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getGitClones <em>Git Clones</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getApiBaseline <em>Api Baseline</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getMspecFilePath <em>Mspec File Path</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getCloneVariableName <em>Clone Variable Name</em>}</li> * </ul> * </p> * * @generated */ -public class BranchImpl extends ToolInstallationImpl implements Branch +public class BranchImpl extends ConfigurableItemImpl implements Branch { /** * The default value of the '{@link #getName() <em>Name</em>}' attribute. @@ -71,66 +58,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch protected String name = NAME_EDEFAULT; /** - * The cached value of the '{@link #getGitClones() <em>Git Clones</em>}' containment reference list. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getGitClones() - * @generated - * @ordered - */ - protected EList<GitClone> gitClones; - - /** - * The cached value of the '{@link #getApiBaseline() <em>Api Baseline</em>}' reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getApiBaseline() - * @generated - * @ordered - */ - protected ApiBaseline apiBaseline; - - /** - * The default value of the '{@link #getMspecFilePath() <em>Mspec File Path</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getMspecFilePath() - * @generated - * @ordered - */ - protected static final String MSPEC_FILE_PATH_EDEFAULT = null; - - /** - * The cached value of the '{@link #getMspecFilePath() <em>Mspec File Path</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getMspecFilePath() - * @generated - * @ordered - */ - protected String mspecFilePath = MSPEC_FILE_PATH_EDEFAULT; - - /** - * The default value of the '{@link #getCloneVariableName() <em>Clone Variable Name</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getCloneVariableName() - * @generated - * @ordered - */ - protected static final String CLONE_VARIABLE_NAME_EDEFAULT = null; - - /** - * The cached value of the '{@link #getCloneVariableName() <em>Clone Variable Name</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getCloneVariableName() - * @generated - * @ordered - */ - protected String cloneVariableName = CLONE_VARIABLE_NAME_EDEFAULT; - - /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -160,6 +87,18 @@ public class BranchImpl extends ToolInstallationImpl implements Branch { if (eContainerFeatureID() != SetupPackage.BRANCH__PROJECT) return null; + return (Project)eContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Project basicGetProject() + { + if (eContainerFeatureID() != SetupPackage.BRANCH__PROJECT) + return null; return (Project)eInternalContainer(); } @@ -227,150 +166,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch * <!-- end-user-doc --> * @generated */ - public EList<GitClone> getGitClones() - { - if (gitClones == null) - { - gitClones = new EObjectContainmentWithInverseEList<GitClone>(GitClone.class, this, - SetupPackage.BRANCH__GIT_CLONES, SetupPackage.GIT_CLONE__BRANCH); - } - return gitClones; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public ApiBaseline getApiBaseline() - { - if (apiBaseline != null && apiBaseline.eIsProxy()) - { - InternalEObject oldApiBaseline = (InternalEObject)apiBaseline; - apiBaseline = (ApiBaseline)eResolveProxy(oldApiBaseline); - if (apiBaseline != oldApiBaseline) - { - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.RESOLVE, SetupPackage.BRANCH__API_BASELINE, oldApiBaseline, - apiBaseline)); - } - } - return apiBaseline; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public ApiBaseline basicGetApiBaseline() - { - return apiBaseline; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setApiBaseline(ApiBaseline newApiBaseline) - { - ApiBaseline oldApiBaseline = apiBaseline; - apiBaseline = newApiBaseline; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BRANCH__API_BASELINE, oldApiBaseline, - apiBaseline)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public String getMspecFilePath() - { - return mspecFilePath; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setMspecFilePath(String newMspecFilePath) - { - String oldMspecFilePath = mspecFilePath; - mspecFilePath = newMspecFilePath; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BRANCH__MSPEC_FILE_PATH, oldMspecFilePath, - mspecFilePath)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public String getCloneVariableName() - { - return cloneVariableName; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setCloneVariableName(String newCloneVariableName) - { - String oldCloneVariableName = cloneVariableName; - cloneVariableName = newCloneVariableName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BRANCH__CLONE_VARIABLE_NAME, - oldCloneVariableName, cloneVariableName)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated NOT - */ - public boolean isInstalled(String installFolder) - { - Resource resource = eResource(); - if (resource != null) - { - ResourceSet resourceSet = resource.getResourceSet(); - if (resourceSet != null) - { - URI uri = getURI(installFolder); - return resourceSet.getURIConverter().exists(uri, null); - } - } - - return false; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated NOT - */ - public URI getURI(String installFolder) - { - File folder = new File(installFolder); - File projectFolder = new File(folder, getProject().getName().toLowerCase()); - File branchFolder = new File(projectFolder, getName().toLowerCase()); - File setupFile = new File(branchFolder, "setup.xmi"); - return URI.createFileURI(setupFile.getAbsolutePath()); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @SuppressWarnings("unchecked") @Override public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { @@ -380,8 +175,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); return basicSetProject((Project)otherEnd, msgs); - case SetupPackage.BRANCH__GIT_CLONES: - return ((InternalEList<InternalEObject>)(InternalEList<?>)getGitClones()).basicAdd(otherEnd, msgs); } return super.eInverseAdd(otherEnd, featureID, msgs); } @@ -398,8 +191,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch { case SetupPackage.BRANCH__PROJECT: return basicSetProject(null, msgs); - case SetupPackage.BRANCH__GIT_CLONES: - return ((InternalEList<?>)getGitClones()).basicRemove(otherEnd, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } @@ -431,19 +222,11 @@ public class BranchImpl extends ToolInstallationImpl implements Branch switch (featureID) { case SetupPackage.BRANCH__PROJECT: - return getProject(); + if (resolve) + return getProject(); + return basicGetProject(); case SetupPackage.BRANCH__NAME: return getName(); - case SetupPackage.BRANCH__GIT_CLONES: - return getGitClones(); - case SetupPackage.BRANCH__API_BASELINE: - if (resolve) - return getApiBaseline(); - return basicGetApiBaseline(); - case SetupPackage.BRANCH__MSPEC_FILE_PATH: - return getMspecFilePath(); - case SetupPackage.BRANCH__CLONE_VARIABLE_NAME: - return getCloneVariableName(); } return super.eGet(featureID, resolve, coreType); } @@ -453,7 +236,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch * <!-- end-user-doc --> * @generated */ - @SuppressWarnings("unchecked") @Override public void eSet(int featureID, Object newValue) { @@ -465,19 +247,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch case SetupPackage.BRANCH__NAME: setName((String)newValue); return; - case SetupPackage.BRANCH__GIT_CLONES: - getGitClones().clear(); - getGitClones().addAll((Collection<? extends GitClone>)newValue); - return; - case SetupPackage.BRANCH__API_BASELINE: - setApiBaseline((ApiBaseline)newValue); - return; - case SetupPackage.BRANCH__MSPEC_FILE_PATH: - setMspecFilePath((String)newValue); - return; - case SetupPackage.BRANCH__CLONE_VARIABLE_NAME: - setCloneVariableName((String)newValue); - return; } super.eSet(featureID, newValue); } @@ -498,18 +267,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch case SetupPackage.BRANCH__NAME: setName(NAME_EDEFAULT); return; - case SetupPackage.BRANCH__GIT_CLONES: - getGitClones().clear(); - return; - case SetupPackage.BRANCH__API_BASELINE: - setApiBaseline((ApiBaseline)null); - return; - case SetupPackage.BRANCH__MSPEC_FILE_PATH: - setMspecFilePath(MSPEC_FILE_PATH_EDEFAULT); - return; - case SetupPackage.BRANCH__CLONE_VARIABLE_NAME: - setCloneVariableName(CLONE_VARIABLE_NAME_EDEFAULT); - return; } super.eUnset(featureID); } @@ -525,18 +282,9 @@ public class BranchImpl extends ToolInstallationImpl implements Branch switch (featureID) { case SetupPackage.BRANCH__PROJECT: - return getProject() != null; + return basicGetProject() != null; case SetupPackage.BRANCH__NAME: return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - case SetupPackage.BRANCH__GIT_CLONES: - return gitClones != null && !gitClones.isEmpty(); - case SetupPackage.BRANCH__API_BASELINE: - return apiBaseline != null; - case SetupPackage.BRANCH__MSPEC_FILE_PATH: - return MSPEC_FILE_PATH_EDEFAULT == null ? mspecFilePath != null : !MSPEC_FILE_PATH_EDEFAULT.equals(mspecFilePath); - case SetupPackage.BRANCH__CLONE_VARIABLE_NAME: - return CLONE_VARIABLE_NAME_EDEFAULT == null ? cloneVariableName != null : !CLONE_VARIABLE_NAME_EDEFAULT - .equals(cloneVariableName); } return super.eIsSet(featureID); } @@ -555,10 +303,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch StringBuffer result = new StringBuffer(super.toString()); result.append(" (name: "); result.append(name); - result.append(", mspecFilePath: "); - result.append(mspecFilePath); - result.append(", cloneVariableName: "); - result.append(cloneVariableName); result.append(')'); return result.toString(); } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BuckminsterImportTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BuckminsterImportTaskImpl.java new file mode 100644 index 0000000000..4755b8a631 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BuckminsterImportTaskImpl.java @@ -0,0 +1,515 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; +import org.eclipse.emf.cdo.releng.setup.Trigger; +import org.eclipse.emf.cdo.releng.setup.util.FileUtil; +import org.eclipse.emf.cdo.releng.setup.util.TargetPlatformUtil; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogMonitor; + +import org.eclipse.net4j.util.io.FileLock; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.buckminster.core.CorePlugin; +import org.eclipse.buckminster.core.materializer.MaterializationContext; +import org.eclipse.buckminster.core.materializer.MaterializationJob; +import org.eclipse.buckminster.core.metadata.model.BillOfMaterials; +import org.eclipse.buckminster.core.mspec.builder.MaterializationSpecBuilder; +import org.eclipse.buckminster.core.mspec.model.MaterializationSpec; +import org.eclipse.buckminster.core.parser.IParser; +import org.eclipse.buckminster.core.query.model.ComponentQuery; +import org.eclipse.buckminster.core.resolver.IResolver; +import org.eclipse.buckminster.core.resolver.MainResolver; +import org.eclipse.buckminster.core.resolver.ResolutionContext; +import org.eclipse.buckminster.download.DownloadManager; +import org.eclipse.buckminster.runtime.MonitorUtils; +import org.eclipse.core.resources.IWorkspaceDescription; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.equinox.p2.publisher.AbstractPublisherApplication; +import org.eclipse.equinox.p2.publisher.eclipse.FeaturesAndBundlesPublisherApplication; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.net.URL; +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Buckminster Import Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl#getMspec <em>Mspec</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl#getTargetPlatform <em>Target Platform</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl#getBundlePool <em>Bundle Pool</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class BuckminsterImportTaskImpl extends SetupTaskImpl implements BuckminsterImportTask +{ + /** + * The default value of the '{@link #getMspec() <em>Mspec</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMspec() + * @generated + * @ordered + */ + protected static final String MSPEC_EDEFAULT = null; + + /** + * The cached value of the '{@link #getMspec() <em>Mspec</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMspec() + * @generated + * @ordered + */ + protected String mspec = MSPEC_EDEFAULT; + + /** + * The default value of the '{@link #getTargetPlatform() <em>Target Platform</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTargetPlatform() + * @generated + * @ordered + */ + protected static final String TARGET_PLATFORM_EDEFAULT = null; + + /** + * The cached value of the '{@link #getTargetPlatform() <em>Target Platform</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTargetPlatform() + * @generated + * @ordered + */ + protected String targetPlatform = TARGET_PLATFORM_EDEFAULT; + + /** + * The default value of the '{@link #getBundlePool() <em>Bundle Pool</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getBundlePool() + * @generated + * @ordered + */ + protected static final String BUNDLE_POOL_EDEFAULT = null; + + /** + * The cached value of the '{@link #getBundlePool() <em>Bundle Pool</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getBundlePool() + * @generated + * @ordered + */ + protected String bundlePool = BUNDLE_POOL_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected BuckminsterImportTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.BUCKMINSTER_IMPORT_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getMspec() + { + return mspec; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setMspec(String newMspec) + { + String oldMspec = mspec; + mspec = newMspec; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC, oldMspec, + mspec)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getTargetPlatform() + { + return targetPlatform; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTargetPlatform(String newTargetPlatform) + { + String oldTargetPlatform = targetPlatform; + targetPlatform = newTargetPlatform; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM, + oldTargetPlatform, targetPlatform)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getBundlePool() + { + return bundlePool; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setBundlePool(String newBundlePool) + { + String oldBundlePool = bundlePool; + bundlePool = newBundlePool; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL, + oldBundlePool, bundlePool)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC: + return getMspec(); + case SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM: + return getTargetPlatform(); + case SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL: + return getBundlePool(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC: + setMspec((String)newValue); + return; + case SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM: + setTargetPlatform((String)newValue); + return; + case SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL: + setBundlePool((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC: + setMspec(MSPEC_EDEFAULT); + return; + case SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM: + setTargetPlatform(TARGET_PLATFORM_EDEFAULT); + return; + case SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL: + setBundlePool(BUNDLE_POOL_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC: + return MSPEC_EDEFAULT == null ? mspec != null : !MSPEC_EDEFAULT.equals(mspec); + case SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM: + return TARGET_PLATFORM_EDEFAULT == null ? targetPlatform != null : !TARGET_PLATFORM_EDEFAULT + .equals(targetPlatform); + case SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL: + return BUNDLE_POOL_EDEFAULT == null ? bundlePool != null : !BUNDLE_POOL_EDEFAULT.equals(bundlePool); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (mspec: "); + result.append(mspec); + result.append(", targetPlatform: "); + result.append(targetPlatform); + result.append(", bundlePool: "); + result.append(bundlePool); + result.append(')'); + return result.toString(); + } + + @Override + public Set<Trigger> getValidTriggers() + { + return Trigger.IDE_TRIGGERS; + } + + public boolean isNeeded(SetupTaskContext context) + { + return context.getTrigger() == Trigger.MANUAL + || !TargetPlatformUtil.hasTargetPlatform(context.getTargetPlatformDir().toString(), context); + } + + public void perform(SetupTaskContext context) throws Exception + { + IProgressMonitor monitor = new ProgressLogMonitor(context); + monitor.beginTask("Starting Buckminster import", 160); + + try + { + File tpOld = null; + File tp = context.getTargetPlatformDir(); + if (tp.exists()) + { + tpOld = new File(tp.getParentFile(), tp.getName() + "." + System.currentTimeMillis()); + FileUtil.rename(tp, tpOld); + } + + FileLock tpPoolLock = null; + boolean isAutoBuilding = disableAutoBuilding(); + + try + { + File tpPool = updateTargetPlatformPool(context); + tpPoolLock = FileLock.forWrite(tpPool); + + File targetPlatformLocation = context.getTargetPlatformDir(); + targetPlatformLocation.mkdirs(); + TargetPlatformUtil.setTargetPlatform(targetPlatformLocation.toString(), context.getSetup().getBranch() + .getProject().getName() + + " Target", true, context); + + URL mSpecURL = new URL(context.expandString(getMspec())); + MaterializationSpec mspec = getMSpec(mSpecURL, monitor); // 20 ticks + ComponentQuery cquery = getCQuery(mspec.getResolvedURL(), monitor); // 20 ticks + + IResolver resolver = new MainResolver(new ResolutionContext(mspec, cquery)); + resolver.getContext().setContinueOnError(true); + + monitor.subTask("Resolving components"); + BillOfMaterials bom = resolver.resolve(MonitorUtils.subMonitor(monitor, 40)); + + MaterializationSpecBuilder mspecBuilder = new MaterializationSpecBuilder(); + mspecBuilder.initFrom(mspec); + mspecBuilder.setName(bom.getViewName()); + + bom.addMaterializationNodes(mspecBuilder); + + ResolutionContext resolutionContext = new ResolutionContext(bom.getQuery()); + MaterializationContext materializationContext = new MaterializationContext(bom, mspec, resolutionContext); + + monitor.subTask("Materializing components"); + MaterializationJob job = new MaterializationJob(materializationContext); + job.run(MonitorUtils.subMonitor(monitor, 80)); + + if (tpPoolLock != null) + { + updateBundlePool(context, tp.getAbsolutePath(), tpPool.getAbsolutePath()); + } + + if (context.isCancelled()) + { + throw new InterruptedException(); + } + } + catch (Exception ex) + { + File tpBroken = new File(tp.getParentFile(), tp.getName() + "." + System.currentTimeMillis()); + FileUtil.rename(tp, tpBroken); + if (tpOld != null) + { + FileUtil.rename(tpOld, tp); + } + + FileUtil.deleteAsync(tpBroken); + throw ex; + } + finally + { + try + { + if (tpPoolLock != null) + { + tpPoolLock.release(); + } + } + finally + { + restoreAutoBuilding(isAutoBuilding); + } + } + + if (tpOld != null) + { + FileUtil.deleteAsync(tpOld); + } + } + finally + { + monitor.done(); + } + } + + public static boolean disableAutoBuilding() throws CoreException + { + boolean autoBuilding = ResourcesPlugin.getWorkspace().isAutoBuilding(); + if (autoBuilding) + { + restoreAutoBuilding(false); + } + + return autoBuilding; + } + + public static void restoreAutoBuilding(boolean autoBuilding) throws CoreException + { + if (autoBuilding != ResourcesPlugin.getWorkspace().isAutoBuilding()) + { + IWorkspaceDescription description = ResourcesPlugin.getWorkspace().getDescription(); + description.setAutoBuilding(autoBuilding); + + ResourcesPlugin.getWorkspace().setDescription(description); + } + } + + private static File updateTargetPlatformPool(SetupTaskContext context) throws Exception + { + File installFolder = new File(context.getSetup().getPreferences().getInstallFolder()); + + File idePool = new File(installFolder, ".p2pool-ide"); + idePool.mkdirs(); + + File tpPool = new File(installFolder, ".p2pool-tp"); + tpPool.mkdirs(); + + FileLock idePoolLock = FileLock.forWrite(idePool); + + try + { + updateBundlePool(context, idePool.getAbsolutePath(), tpPool.getAbsolutePath()); + } + finally + { + idePoolLock.release(); + } + + return tpPool; + } + + private static void updateBundlePool(SetupTaskContext context, String source, String bundlePool) throws Exception + { + context.log("Updating bundle pool: " + bundlePool); + + String bundlePoolURL = "file:/" + bundlePool.replace('\\', '/'); + String[] args = { "-source", source, "-metadataRepository", bundlePoolURL, "-artifactRepository", bundlePoolURL, + "-append", "-publishArtifacts" }; + + AbstractPublisherApplication publisher = new FeaturesAndBundlesPublisherApplication(); + publisher.run(args); + } + + private MaterializationSpec getMSpec(URL mspecURL, IProgressMonitor monitor) throws Exception + { + monitor.subTask("Downloading MSpec"); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DownloadManager.readInto(mspecURL, null, baos, MonitorUtils.subMonitor(monitor, 20)); + + monitor.subTask("Parsing MSpec"); + IParser<MaterializationSpec> parser = CorePlugin.getDefault().getParserFactory().getMaterializationSpecParser(true); + return parser.parse(mspecURL.toString(), new ByteArrayInputStream(baos.toByteArray())); + } + + private ComponentQuery getCQuery(URL cqueryURL, IProgressMonitor monitor) throws Exception + { + monitor.subTask("Downloading CQuery"); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DownloadManager.readInto(cqueryURL, null, baos, MonitorUtils.subMonitor(monitor, 20)); + + monitor.subTask("Parsing CQuery"); + return ComponentQuery.fromStream(cqueryURL, null, new ByteArrayInputStream(baos.toByteArray()), true); + } + +} // BuckminsterImportTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/CompoundSetupTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/CompoundSetupTaskImpl.java new file mode 100644 index 0000000000..20256976ce --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/CompoundSetupTaskImpl.java @@ -0,0 +1,306 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import java.util.Collection; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Compound Setup Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl#getSetupTasks <em>Setup Tasks</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl#getName <em>Name</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class CompoundSetupTaskImpl extends SetupTaskImpl implements CompoundSetupTask +{ + /** + * The cached value of the '{@link #getSetupTasks() <em>Setup Tasks</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSetupTasks() + * @generated + * @ordered + */ + protected EList<SetupTask> setupTasks; + + /** + * The default value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CompoundSetupTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.COMPOUND_SETUP_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<SetupTask> getSetupTasks() + { + if (setupTasks == null) + { + setupTasks = new EObjectContainmentEList.Resolving<SetupTask>(SetupTask.class, this, + SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS); + } + return setupTasks; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() + { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.COMPOUND_SETUP_TASK__NAME, oldName, name)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS: + return ((InternalEList<?>)getSetupTasks()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS: + return getSetupTasks(); + case SetupPackage.COMPOUND_SETUP_TASK__NAME: + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS: + getSetupTasks().clear(); + getSetupTasks().addAll((Collection<? extends SetupTask>)newValue); + return; + case SetupPackage.COMPOUND_SETUP_TASK__NAME: + setName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS: + getSetupTasks().clear(); + return; + case SetupPackage.COMPOUND_SETUP_TASK__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS: + return setupTasks != null && !setupTasks.isEmpty(); + case SetupPackage.COMPOUND_SETUP_TASK__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) + { + if (baseClass == SetupTaskContainer.class) + { + switch (derivedFeatureID) + { + case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS: + return SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS; + default: + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) + { + if (baseClass == SetupTaskContainer.class) + { + switch (baseFeatureID) + { + case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS: + return SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS; + default: + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + + @Override + public Object getOverrideToken() + { + return createToken(getName()); + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + boolean needed = false; + for (SetupTask setupTask : getSetupTasks()) + { + needed |= setupTask.isNeeded(context); + } + + return needed; + } + + public void perform(SetupTaskContext context) throws Exception + { + for (SetupTask setupTask : getSetupTasks()) + { + setupTask.perform(context); + } + } + +} // CompoundSetupTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurableItemImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurableItemImpl.java new file mode 100644 index 0000000000..00e17e3e6b --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurableItemImpl.java @@ -0,0 +1,42 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.ConfigurableItem; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Configurable Item</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public abstract class ConfigurableItemImpl extends SetupTaskContainerImpl implements ConfigurableItem +{ + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ConfigurableItemImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.CONFIGURABLE_ITEM; + } + +} // ConfigurableItemImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurationImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurationImpl.java index bc5b37f887..41d4512821 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurationImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurationImpl.java @@ -91,7 +91,7 @@ public class ConfigurationImpl extends MinimalEObjectImpl.Container implements C { if (projects == null) { - projects = new EObjectContainmentWithInverseEList<Project>(Project.class, this, + projects = new EObjectContainmentWithInverseEList.Resolving<Project>(Project.class, this, SetupPackage.CONFIGURATION__PROJECTS, SetupPackage.PROJECT__CONFIGURATION); } return projects; @@ -106,7 +106,7 @@ public class ConfigurationImpl extends MinimalEObjectImpl.Container implements C { if (eclipseVersions == null) { - eclipseVersions = new EObjectContainmentWithInverseEList<EclipseVersion>(EclipseVersion.class, this, + eclipseVersions = new EObjectContainmentWithInverseEList.Resolving<EclipseVersion>(EclipseVersion.class, this, SetupPackage.CONFIGURATION__ECLIPSE_VERSIONS, SetupPackage.ECLIPSE_VERSION__CONFIGURATION); } return eclipseVersions; diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/DirectorCallImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/DirectorCallImpl.java deleted file mode 100644 index 0c2fed673a..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/DirectorCallImpl.java +++ /dev/null @@ -1,231 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.impl; - -import org.eclipse.emf.cdo.releng.setup.DirectorCall; -import org.eclipse.emf.cdo.releng.setup.InstallableUnit; -import org.eclipse.emf.cdo.releng.setup.P2Repository; -import org.eclipse.emf.cdo.releng.setup.SetupPackage; - -import org.eclipse.emf.common.notify.NotificationChain; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; -import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; -import org.eclipse.emf.ecore.util.InternalEList; - -import java.util.Collection; - -/** - * <!-- begin-user-doc --> - * An implementation of the model object '<em><b>Director Call</b></em>'. - * <!-- end-user-doc --> - * <p> - * The following features are implemented: - * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl#getInstallableUnits <em>Installable Units</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl#getP2Repositories <em>P2 Repositories</em>}</li> - * </ul> - * </p> - * - * @generated - */ -public class DirectorCallImpl extends MinimalEObjectImpl.Container implements DirectorCall -{ - /** - * The cached value of the '{@link #getInstallableUnits() <em>Installable Units</em>}' containment reference list. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getInstallableUnits() - * @generated - * @ordered - */ - protected EList<InstallableUnit> installableUnits; - - /** - * The cached value of the '{@link #getP2Repositories() <em>P2 Repositories</em>}' containment reference list. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getP2Repositories() - * @generated - * @ordered - */ - protected EList<P2Repository> p2Repositories; - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected DirectorCallImpl() - { - super(); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SetupPackage.Literals.DIRECTOR_CALL; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public EList<InstallableUnit> getInstallableUnits() - { - if (installableUnits == null) - { - installableUnits = new EObjectContainmentWithInverseEList<InstallableUnit>(InstallableUnit.class, this, - SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS, SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL); - } - return installableUnits; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public EList<P2Repository> getP2Repositories() - { - if (p2Repositories == null) - { - p2Repositories = new EObjectContainmentWithInverseEList<P2Repository>(P2Repository.class, this, - SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES, SetupPackage.P2_REPOSITORY__DIRECTOR_CALL); - } - return p2Repositories; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS: - return ((InternalEList<InternalEObject>)(InternalEList<?>)getInstallableUnits()).basicAdd(otherEnd, msgs); - case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES: - return ((InternalEList<InternalEObject>)(InternalEList<?>)getP2Repositories()).basicAdd(otherEnd, msgs); - } - return super.eInverseAdd(otherEnd, featureID, msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS: - return ((InternalEList<?>)getInstallableUnits()).basicRemove(otherEnd, msgs); - case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES: - return ((InternalEList<?>)getP2Repositories()).basicRemove(otherEnd, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS: - return getInstallableUnits(); - case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES: - return getP2Repositories(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS: - getInstallableUnits().clear(); - getInstallableUnits().addAll((Collection<? extends InstallableUnit>)newValue); - return; - case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES: - getP2Repositories().clear(); - getP2Repositories().addAll((Collection<? extends P2Repository>)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS: - getInstallableUnits().clear(); - return; - case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES: - getP2Repositories().clear(); - return; - } - super.eUnset(featureID); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS: - return installableUnits != null && !installableUnits.isEmpty(); - case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES: - return p2Repositories != null && !p2Repositories.isEmpty(); - } - return super.eIsSet(featureID); - } - -} // DirectorCallImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseIniTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseIniTaskImpl.java new file mode 100644 index 0000000000..4d36f17566 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseIniTaskImpl.java @@ -0,0 +1,374 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.EclipseIniTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Eclipse Ini Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl#getOption <em>Option</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl#getValue <em>Value</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl#isVm <em>Vm</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class EclipseIniTaskImpl extends SetupTaskImpl implements EclipseIniTask +{ + /** + * The default value of the '{@link #getOption() <em>Option</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getOption() + * @generated + * @ordered + */ + protected static final String OPTION_EDEFAULT = null; + + /** + * The cached value of the '{@link #getOption() <em>Option</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getOption() + * @generated + * @ordered + */ + protected String option = OPTION_EDEFAULT; + + /** + * The default value of the '{@link #getValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getValue() + * @generated + * @ordered + */ + protected static final String VALUE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getValue() + * @generated + * @ordered + */ + protected String value = VALUE_EDEFAULT; + + /** + * The default value of the '{@link #isVm() <em>Vm</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isVm() + * @generated + * @ordered + */ + protected static final boolean VM_EDEFAULT = false; + + /** + * The cached value of the '{@link #isVm() <em>Vm</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isVm() + * @generated + * @ordered + */ + protected boolean vm = VM_EDEFAULT; + + private transient File file; + + private transient List<String> contents; + + private transient String expandedValue; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EclipseIniTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.ECLIPSE_INI_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getOption() + { + return option; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setOption(String newOption) + { + String oldOption = option; + option = newOption; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_INI_TASK__OPTION, oldOption, option)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getValue() + { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setValue(String newValue) + { + String oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_INI_TASK__VALUE, oldValue, value)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isVm() + { + return vm; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setVm(boolean newVm) + { + boolean oldVm = vm; + vm = newVm; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_INI_TASK__VM, oldVm, vm)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.ECLIPSE_INI_TASK__OPTION: + return getOption(); + case SetupPackage.ECLIPSE_INI_TASK__VALUE: + return getValue(); + case SetupPackage.ECLIPSE_INI_TASK__VM: + return isVm(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.ECLIPSE_INI_TASK__OPTION: + setOption((String)newValue); + return; + case SetupPackage.ECLIPSE_INI_TASK__VALUE: + setValue((String)newValue); + return; + case SetupPackage.ECLIPSE_INI_TASK__VM: + setVm((Boolean)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.ECLIPSE_INI_TASK__OPTION: + setOption(OPTION_EDEFAULT); + return; + case SetupPackage.ECLIPSE_INI_TASK__VALUE: + setValue(VALUE_EDEFAULT); + return; + case SetupPackage.ECLIPSE_INI_TASK__VM: + setVm(VM_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.ECLIPSE_INI_TASK__OPTION: + return OPTION_EDEFAULT == null ? option != null : !OPTION_EDEFAULT.equals(option); + case SetupPackage.ECLIPSE_INI_TASK__VALUE: + return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); + case SetupPackage.ECLIPSE_INI_TASK__VM: + return vm != VM_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (option: "); + result.append(option); + result.append(", value: "); + result.append(value); + result.append(", vm: "); + result.append(vm); + result.append(')'); + return result.toString(); + } + + public String getLabel(String value) + { + return getOption() + (value == null ? "" : (isVm() ? "" : " ") + value); + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + file = new File(context.getEclipseDir(), context.getOS().getEclipseIni()); + boolean result = !file.exists() || createNewContent(context); + // Ensure that the perform recomputes the contents because they could be modified by other tasks between now and + // when doPeform is called. + contents = null; + return result; + } + + private boolean createNewContent(SetupTaskContext context) + { + List<String> oldContents = context.getOS().readText(file); + contents = new ArrayList<String>(oldContents); + int vmargsIndex = contents.indexOf("-vmargs"); + + String option = getOption(); + expandedValue = context.expandString(getValue()); + + if (isVm()) + { + String line = option + expandedValue; + if (vmargsIndex != -1) + { + for (int i = vmargsIndex + 1; i < contents.size(); i++) + { + String oldLine = contents.get(i); + if (oldLine.startsWith(option)) + { + contents.set(i, line); + line = null; + break; + } + } + } + else + { + contents.add("-vmargs"); + } + + if (line != null) + { + contents.add(line); + } + } + else + { + int optionIndex = contents.indexOf(option); + if (optionIndex != -1) + { + contents.set(optionIndex + 1, expandedValue); + } + else + { + optionIndex = vmargsIndex != -1 ? vmargsIndex : contents.size(); + contents.add(optionIndex, option); + contents.add(optionIndex + 1, expandedValue); + } + } + + return !contents.equals(oldContents); + } + + public void perform(SetupTaskContext context) throws Exception + { + if (contents != null || createNewContent(context)) + { + context.log("Changing " + file + " (" + getLabel(expandedValue) + ")"); + context.getOS().writeText(file, contents); + } + } +} // EclipseIniTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolPreferenceImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipsePreferenceTaskImpl.java index 1ba24f3678..3beed3cb54 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolPreferenceImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipsePreferenceTaskImpl.java @@ -1,38 +1,36 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup.impl; +import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask; import org.eclipse.emf.cdo.releng.setup.SetupPackage; -import org.eclipse.emf.cdo.releng.setup.ToolPreference; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; +import org.eclipse.emf.cdo.releng.setup.Trigger; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.core.runtime.Platform; +import org.eclipse.ui.PlatformUI; + +import java.util.Set; /** * <!-- begin-user-doc --> - * An implementation of the model object '<em><b>Tool Preference</b></em>'. + * An implementation of the model object '<em><b>Eclipse Preference Task</b></em>'. * <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl#getKey <em>Key</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl#getValue <em>Value</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl#getKey <em>Key</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl#getValue <em>Value</em>}</li> * </ul> * </p> * * @generated */ -public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements ToolPreference +public class EclipsePreferenceTaskImpl extends SetupTaskImpl implements EclipsePreferenceTask { /** * The default value of the '{@link #getKey() <em>Key</em>}' attribute. @@ -74,12 +72,18 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements */ protected String value = VALUE_EDEFAULT; + private transient Object cachedNode; + + private transient String property; + + private transient String expandedValue; + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - protected ToolPreferenceImpl() + protected EclipsePreferenceTaskImpl() { super(); } @@ -92,7 +96,7 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements @Override protected EClass eStaticClass() { - return SetupPackage.Literals.TOOL_PREFERENCE; + return SetupPackage.Literals.ECLIPSE_PREFERENCE_TASK; } /** @@ -115,9 +119,7 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements String oldKey = key; key = newKey; if (eNotificationRequired()) - { - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.TOOL_PREFERENCE__KEY, oldKey, key)); - } + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY, oldKey, key)); } /** @@ -140,9 +142,8 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements String oldValue = value; value = newValue; if (eNotificationRequired()) - { - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.TOOL_PREFERENCE__VALUE, oldValue, value)); - } + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE, oldValue, + value)); } /** @@ -155,9 +156,9 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.TOOL_PREFERENCE__KEY: + case SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY: return getKey(); - case SetupPackage.TOOL_PREFERENCE__VALUE: + case SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE: return getValue(); } return super.eGet(featureID, resolve, coreType); @@ -173,10 +174,10 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.TOOL_PREFERENCE__KEY: + case SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY: setKey((String)newValue); return; - case SetupPackage.TOOL_PREFERENCE__VALUE: + case SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE: setValue((String)newValue); return; } @@ -193,10 +194,10 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.TOOL_PREFERENCE__KEY: + case SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY: setKey(KEY_EDEFAULT); return; - case SetupPackage.TOOL_PREFERENCE__VALUE: + case SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE: setValue(VALUE_EDEFAULT); return; } @@ -213,9 +214,9 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.TOOL_PREFERENCE__KEY: + case SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY: return KEY_EDEFAULT == null ? key != null : !KEY_EDEFAULT.equals(key); - case SetupPackage.TOOL_PREFERENCE__VALUE: + case SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE: return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); } return super.eIsSet(featureID); @@ -230,9 +231,7 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements public String toString() { if (eIsProxy()) - { return super.toString(); - } StringBuffer result = new StringBuffer(super.toString()); result.append(" (key: "); @@ -243,4 +242,68 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements return result.toString(); } -} // ToolPreferenceImpl + @Override + public Object getOverrideToken() + { + return createToken(getKey()); + } + + @Override + public Set<Trigger> getValidTriggers() + { + return Trigger.IDE_TRIGGERS; + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + org.osgi.service.prefs.Preferences node = Platform.getPreferencesService().getRootNode(); + + String[] segments = key.split("/"); + for (int i = 0; i < segments.length - 1; i++) + { + String segment = segments[i]; + node = node.node(segment); + } + + property = segments[segments.length - 1]; + expandedValue = context.expandString(getValue()); + + String oldValue = node.get(property, null); + if (expandedValue.equals(oldValue)) + { + return false; + } + + cachedNode = node; + return true; + } + + public void perform(SetupTaskContext context) throws Exception + { + context.log("Setting preference " + getKey() + " = " + expandedValue); + + final Exception[] exception = { null }; + PlatformUI.getWorkbench().getWorkbenchWindows()[0].getShell().getDisplay().syncExec(new Runnable() + { + public void run() + { + try + { + org.osgi.service.prefs.Preferences node = (org.osgi.service.prefs.Preferences)cachedNode; + node.put(property, expandedValue); + node.flush(); + } + catch (Exception ex) + { + exception[0] = ex; + } + } + }); + + if (exception[0] != null) + { + throw exception[0]; + } + } + +} // EclipsePreferenceTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseVersionImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseVersionImpl.java index 41195b31e5..955f010086 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseVersionImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseVersionImpl.java @@ -11,7 +11,6 @@ package org.eclipse.emf.cdo.releng.setup.impl; import org.eclipse.emf.cdo.releng.setup.Configuration; -import org.eclipse.emf.cdo.releng.setup.DirectorCall; import org.eclipse.emf.cdo.releng.setup.EclipseVersion; import org.eclipse.emf.cdo.releng.setup.SetupPackage; @@ -20,7 +19,6 @@ import org.eclipse.emf.common.notify.NotificationChain; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; import org.eclipse.emf.ecore.util.EcoreUtil; /** @@ -32,13 +30,12 @@ import org.eclipse.emf.ecore.util.EcoreUtil; * <ul> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl#getConfiguration <em>Configuration</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl#getVersion <em>Version</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl#getDirectorCall <em>Director Call</em>}</li> * </ul> * </p> * * @generated */ -public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements EclipseVersion +public class EclipseVersionImpl extends ConfigurableItemImpl implements EclipseVersion { /** * The default value of the '{@link #getVersion() <em>Version</em>}' attribute. @@ -61,16 +58,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements protected String version = VERSION_EDEFAULT; /** - * The cached value of the '{@link #getDirectorCall() <em>Director Call</em>}' containment reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getDirectorCall() - * @generated - * @ordered - */ - protected DirectorCall directorCall; - - /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -100,6 +87,18 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements { if (eContainerFeatureID() != SetupPackage.ECLIPSE_VERSION__CONFIGURATION) return null; + return (Configuration)eContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Configuration basicGetConfiguration() + { + if (eContainerFeatureID() != SetupPackage.ECLIPSE_VERSION__CONFIGURATION) + return null; return (Configuration)eInternalContainer(); } @@ -169,62 +168,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements * <!-- end-user-doc --> * @generated */ - public DirectorCall getDirectorCall() - { - return directorCall; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public NotificationChain basicSetDirectorCall(DirectorCall newDirectorCall, NotificationChain msgs) - { - DirectorCall oldDirectorCall = directorCall; - directorCall = newDirectorCall; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, - SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL, oldDirectorCall, newDirectorCall); - if (msgs == null) - msgs = notification; - else - msgs.add(notification); - } - return msgs; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setDirectorCall(DirectorCall newDirectorCall) - { - if (newDirectorCall != directorCall) - { - NotificationChain msgs = null; - if (directorCall != null) - msgs = ((InternalEObject)directorCall).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - - SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL, null, msgs); - if (newDirectorCall != null) - msgs = ((InternalEObject)newDirectorCall).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - - SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL, null, msgs); - msgs = basicSetDirectorCall(newDirectorCall, msgs); - if (msgs != null) - msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL, - newDirectorCall, newDirectorCall)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ @Override public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { @@ -250,8 +193,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements { case SetupPackage.ECLIPSE_VERSION__CONFIGURATION: return basicSetConfiguration(null, msgs); - case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL: - return basicSetDirectorCall(null, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } @@ -284,11 +225,11 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements switch (featureID) { case SetupPackage.ECLIPSE_VERSION__CONFIGURATION: - return getConfiguration(); + if (resolve) + return getConfiguration(); + return basicGetConfiguration(); case SetupPackage.ECLIPSE_VERSION__VERSION: return getVersion(); - case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL: - return getDirectorCall(); } return super.eGet(featureID, resolve, coreType); } @@ -309,9 +250,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements case SetupPackage.ECLIPSE_VERSION__VERSION: setVersion((String)newValue); return; - case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL: - setDirectorCall((DirectorCall)newValue); - return; } super.eSet(featureID, newValue); } @@ -332,9 +270,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements case SetupPackage.ECLIPSE_VERSION__VERSION: setVersion(VERSION_EDEFAULT); return; - case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL: - setDirectorCall((DirectorCall)null); - return; } super.eUnset(featureID); } @@ -350,11 +285,9 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements switch (featureID) { case SetupPackage.ECLIPSE_VERSION__CONFIGURATION: - return getConfiguration() != null; + return basicGetConfiguration() != null; case SetupPackage.ECLIPSE_VERSION__VERSION: return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version); - case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL: - return directorCall != null; } return super.eIsSet(featureID); } @@ -376,5 +309,4 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements result.append(')'); return result.toString(); } - } // EclipseVersionImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneImpl.java deleted file mode 100644 index dae9b0c1db..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneImpl.java +++ /dev/null @@ -1,411 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.impl; - -import org.eclipse.emf.cdo.releng.setup.Branch; -import org.eclipse.emf.cdo.releng.setup.GitClone; -import org.eclipse.emf.cdo.releng.setup.SetupPackage; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; -import org.eclipse.emf.ecore.util.EcoreUtil; - -/** - * <!-- begin-user-doc --> - * An implementation of the model object '<em><b>Git Clone</b></em>'. - * <!-- end-user-doc --> - * <p> - * The following features are implemented: - * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl#getBranch <em>Branch</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl#getName <em>Name</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl#getRemoteURI <em>Remote URI</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl#getCheckoutBranch <em>Checkout Branch</em>}</li> - * </ul> - * </p> - * - * @generated - */ -public class GitCloneImpl extends MinimalEObjectImpl.Container implements GitClone -{ - /** - * The default value of the '{@link #getName() <em>Name</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getName() - * @generated - * @ordered - */ - protected static final String NAME_EDEFAULT = null; - - /** - * The cached value of the '{@link #getName() <em>Name</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getName() - * @generated - * @ordered - */ - protected String name = NAME_EDEFAULT; - - /** - * The default value of the '{@link #getRemoteURI() <em>Remote URI</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getRemoteURI() - * @generated - * @ordered - */ - protected static final String REMOTE_URI_EDEFAULT = null; - - /** - * The cached value of the '{@link #getRemoteURI() <em>Remote URI</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getRemoteURI() - * @generated - * @ordered - */ - protected String remoteURI = REMOTE_URI_EDEFAULT; - - /** - * The default value of the '{@link #getCheckoutBranch() <em>Checkout Branch</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getCheckoutBranch() - * @generated - * @ordered - */ - protected static final String CHECKOUT_BRANCH_EDEFAULT = null; - - /** - * The cached value of the '{@link #getCheckoutBranch() <em>Checkout Branch</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getCheckoutBranch() - * @generated - * @ordered - */ - protected String checkoutBranch = CHECKOUT_BRANCH_EDEFAULT; - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected GitCloneImpl() - { - super(); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SetupPackage.Literals.GIT_CLONE; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public Branch getBranch() - { - if (eContainerFeatureID() != SetupPackage.GIT_CLONE__BRANCH) - return null; - return (Branch)eInternalContainer(); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public NotificationChain basicSetBranch(Branch newBranch, NotificationChain msgs) - { - msgs = eBasicSetContainer((InternalEObject)newBranch, SetupPackage.GIT_CLONE__BRANCH, msgs); - return msgs; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setBranch(Branch newBranch) - { - if (newBranch != eInternalContainer() - || (eContainerFeatureID() != SetupPackage.GIT_CLONE__BRANCH && newBranch != null)) - { - if (EcoreUtil.isAncestor(this, newBranch)) - throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); - NotificationChain msgs = null; - if (eInternalContainer() != null) - msgs = eBasicRemoveFromContainer(msgs); - if (newBranch != null) - msgs = ((InternalEObject)newBranch).eInverseAdd(this, SetupPackage.BRANCH__GIT_CLONES, Branch.class, msgs); - msgs = basicSetBranch(newBranch, msgs); - if (msgs != null) - msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE__BRANCH, newBranch, newBranch)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public String getName() - { - return name; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setName(String newName) - { - String oldName = name; - name = newName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE__NAME, oldName, name)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public String getRemoteURI() - { - return remoteURI; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setRemoteURI(String newRemoteURI) - { - String oldRemoteURI = remoteURI; - remoteURI = newRemoteURI; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE__REMOTE_URI, oldRemoteURI, remoteURI)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public String getCheckoutBranch() - { - return checkoutBranch; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setCheckoutBranch(String newCheckoutBranch) - { - String oldCheckoutBranch = checkoutBranch; - checkoutBranch = newCheckoutBranch; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE__CHECKOUT_BRANCH, oldCheckoutBranch, - checkoutBranch)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SetupPackage.GIT_CLONE__BRANCH: - if (eInternalContainer() != null) - msgs = eBasicRemoveFromContainer(msgs); - return basicSetBranch((Branch)otherEnd, msgs); - } - return super.eInverseAdd(otherEnd, featureID, msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SetupPackage.GIT_CLONE__BRANCH: - return basicSetBranch(null, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) - { - switch (eContainerFeatureID()) - { - case SetupPackage.GIT_CLONE__BRANCH: - return eInternalContainer().eInverseRemove(this, SetupPackage.BRANCH__GIT_CLONES, Branch.class, msgs); - } - return super.eBasicRemoveFromContainerFeature(msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SetupPackage.GIT_CLONE__BRANCH: - return getBranch(); - case SetupPackage.GIT_CLONE__NAME: - return getName(); - case SetupPackage.GIT_CLONE__REMOTE_URI: - return getRemoteURI(); - case SetupPackage.GIT_CLONE__CHECKOUT_BRANCH: - return getCheckoutBranch(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SetupPackage.GIT_CLONE__BRANCH: - setBranch((Branch)newValue); - return; - case SetupPackage.GIT_CLONE__NAME: - setName((String)newValue); - return; - case SetupPackage.GIT_CLONE__REMOTE_URI: - setRemoteURI((String)newValue); - return; - case SetupPackage.GIT_CLONE__CHECKOUT_BRANCH: - setCheckoutBranch((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SetupPackage.GIT_CLONE__BRANCH: - setBranch((Branch)null); - return; - case SetupPackage.GIT_CLONE__NAME: - setName(NAME_EDEFAULT); - return; - case SetupPackage.GIT_CLONE__REMOTE_URI: - setRemoteURI(REMOTE_URI_EDEFAULT); - return; - case SetupPackage.GIT_CLONE__CHECKOUT_BRANCH: - setCheckoutBranch(CHECKOUT_BRANCH_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SetupPackage.GIT_CLONE__BRANCH: - return getBranch() != null; - case SetupPackage.GIT_CLONE__NAME: - return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - case SetupPackage.GIT_CLONE__REMOTE_URI: - return REMOTE_URI_EDEFAULT == null ? remoteURI != null : !REMOTE_URI_EDEFAULT.equals(remoteURI); - case SetupPackage.GIT_CLONE__CHECKOUT_BRANCH: - return CHECKOUT_BRANCH_EDEFAULT == null ? checkoutBranch != null : !CHECKOUT_BRANCH_EDEFAULT - .equals(checkoutBranch); - } - return super.eIsSet(featureID); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) - return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (name: "); - result.append(name); - result.append(", remoteURI: "); - result.append(remoteURI); - result.append(", checkoutBranch: "); - result.append(checkoutBranch); - result.append(')'); - return result.toString(); - } - -} // GitCloneImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneTaskImpl.java new file mode 100644 index 0000000000..1dfbf1aa87 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneTaskImpl.java @@ -0,0 +1,615 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.GitCloneTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; +import org.eclipse.emf.cdo.releng.setup.Trigger; +import org.eclipse.emf.cdo.releng.setup.util.FileUtil; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.jgit.api.CheckoutCommand; +import org.eclipse.jgit.api.CloneCommand; +import org.eclipse.jgit.api.CreateBranchCommand; +import org.eclipse.jgit.api.CreateBranchCommand.SetupUpstreamMode; +import org.eclipse.jgit.api.Git; +import org.eclipse.jgit.api.ResetCommand; +import org.eclipse.jgit.api.ResetCommand.ResetType; +import org.eclipse.jgit.api.StatusCommand; +import org.eclipse.jgit.errors.NoWorkTreeException; +import org.eclipse.jgit.lib.ConfigConstants; +import org.eclipse.jgit.lib.CoreConfig.AutoCRLF; +import org.eclipse.jgit.lib.ProgressMonitor; +import org.eclipse.jgit.lib.Repository; +import org.eclipse.jgit.lib.StoredConfig; +import org.eclipse.jgit.transport.RefSpec; +import org.eclipse.jgit.transport.RemoteConfig; + +import java.io.File; +import java.io.IOException; +import java.util.Collections; +import java.util.List; +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Git Clone Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl#getRemoteName <em>Remote Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl#getRemoteURI <em>Remote URI</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl#getCheckoutBranch <em>Checkout Branch</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class GitCloneTaskImpl extends SetupTaskImpl implements GitCloneTask +{ + /** + * The default value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * The default value of the '{@link #getRemoteName() <em>Remote Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRemoteName() + * @generated + * @ordered + */ + protected static final String REMOTE_NAME_EDEFAULT = "origin"; + + /** + * The cached value of the '{@link #getRemoteName() <em>Remote Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRemoteName() + * @generated + * @ordered + */ + protected String remoteName = REMOTE_NAME_EDEFAULT; + + /** + * The default value of the '{@link #getRemoteURI() <em>Remote URI</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRemoteURI() + * @generated + * @ordered + */ + protected static final String REMOTE_URI_EDEFAULT = null; + + /** + * The cached value of the '{@link #getRemoteURI() <em>Remote URI</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRemoteURI() + * @generated + * @ordered + */ + protected String remoteURI = REMOTE_URI_EDEFAULT; + + /** + * The default value of the '{@link #getCheckoutBranch() <em>Checkout Branch</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCheckoutBranch() + * @generated + * @ordered + */ + protected static final String CHECKOUT_BRANCH_EDEFAULT = null; + + /** + * The cached value of the '{@link #getCheckoutBranch() <em>Checkout Branch</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCheckoutBranch() + * @generated + * @ordered + */ + protected String checkoutBranch = CHECKOUT_BRANCH_EDEFAULT; + + private transient Object cachedGit; + + private transient Object cachedRepository; + + private transient File workDir; + + private transient boolean hasCheckout; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected GitCloneTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.GIT_CLONE_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() + { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE_TASK__NAME, oldName, name)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getRemoteName() + { + return remoteName; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setRemoteName(String newRemoteName) + { + String oldRemoteName = remoteName; + remoteName = newRemoteName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE_TASK__REMOTE_NAME, oldRemoteName, + remoteName)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getRemoteURI() + { + return remoteURI; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setRemoteURI(String newRemoteURI) + { + String oldRemoteURI = remoteURI; + remoteURI = newRemoteURI; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE_TASK__REMOTE_URI, oldRemoteURI, + remoteURI)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getCheckoutBranch() + { + return checkoutBranch; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setCheckoutBranch(String newCheckoutBranch) + { + String oldCheckoutBranch = checkoutBranch; + checkoutBranch = newCheckoutBranch; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH, + oldCheckoutBranch, checkoutBranch)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.GIT_CLONE_TASK__NAME: + return getName(); + case SetupPackage.GIT_CLONE_TASK__REMOTE_NAME: + return getRemoteName(); + case SetupPackage.GIT_CLONE_TASK__REMOTE_URI: + return getRemoteURI(); + case SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH: + return getCheckoutBranch(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.GIT_CLONE_TASK__NAME: + setName((String)newValue); + return; + case SetupPackage.GIT_CLONE_TASK__REMOTE_NAME: + setRemoteName((String)newValue); + return; + case SetupPackage.GIT_CLONE_TASK__REMOTE_URI: + setRemoteURI((String)newValue); + return; + case SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH: + setCheckoutBranch((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.GIT_CLONE_TASK__NAME: + setName(NAME_EDEFAULT); + return; + case SetupPackage.GIT_CLONE_TASK__REMOTE_NAME: + setRemoteName(REMOTE_NAME_EDEFAULT); + return; + case SetupPackage.GIT_CLONE_TASK__REMOTE_URI: + setRemoteURI(REMOTE_URI_EDEFAULT); + return; + case SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH: + setCheckoutBranch(CHECKOUT_BRANCH_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.GIT_CLONE_TASK__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case SetupPackage.GIT_CLONE_TASK__REMOTE_NAME: + return REMOTE_NAME_EDEFAULT == null ? remoteName != null : !REMOTE_NAME_EDEFAULT.equals(remoteName); + case SetupPackage.GIT_CLONE_TASK__REMOTE_URI: + return REMOTE_URI_EDEFAULT == null ? remoteURI != null : !REMOTE_URI_EDEFAULT.equals(remoteURI); + case SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH: + return CHECKOUT_BRANCH_EDEFAULT == null ? checkoutBranch != null : !CHECKOUT_BRANCH_EDEFAULT + .equals(checkoutBranch); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(", remoteName: "); + result.append(remoteName); + result.append(", remoteURI: "); + result.append(remoteURI); + result.append(", checkoutBranch: "); + result.append(checkoutBranch); + result.append(')'); + return result.toString(); + } + + @Override + public Set<Trigger> getValidTriggers() + { + return Trigger.IDE_TRIGGERS; + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + workDir = getWorkDir(context); + if (!workDir.isDirectory()) + { + return true; + } + + context.log("Opening Git clone " + workDir); + + Git git = Git.open(workDir); + if (!hasWorkTree(git)) + { + FileUtil.rename(workDir); + return true; + } + + Repository repository = git.getRepository(); + configureRepository(context, repository); + + hasCheckout = repository.getAllRefs().containsKey("refs/heads/" + getCheckoutBranch()); + if (!hasCheckout) + { + cachedGit = git; + cachedRepository = repository; + return true; + } + + return false; + } + + public void perform(SetupTaskContext context) throws Exception + { + Git git = (Git)cachedGit; + Repository repository = (Repository)cachedRepository; + + if (git == null) + { + git = cloneRepository(context, workDir, getCheckoutBranch()); + repository = git.getRepository(); + configureRepository(context, repository); + } + + if (!hasCheckout) + { + createBranch(context, git, getCheckoutBranch()); + checkout(context, git, getCheckoutBranch()); + resetHard(context, git); + } + } + + @Override + public void dispose() + { + if (cachedRepository != null) + { + ((Repository)cachedRepository).close(); + } + } + + private File getWorkDir(SetupTaskContext context) + { + File gitDir = new File(context.getBranchDir(), "git"); + return new File(gitDir, getName()); + } + + private boolean hasWorkTree(Git git) throws Exception + { + try + { + StatusCommand statusCommand = git.status(); + statusCommand.call(); + return true; + } + catch (NoWorkTreeException ex) + { + return false; + } + } + + private Git cloneRepository(SetupTaskContext context, File workDir, String checkoutBranch) throws Exception + { + URI baseURI = URI.createURI(getRemoteURI()); + String remote = URI.createHierarchicalURI(baseURI.scheme(), + context.getSetup().getPreferences().getUserName() + "@" + baseURI.authority(), baseURI.device(), + baseURI.segments(), baseURI.query(), baseURI.fragment()).toString(); + + context.log("Cloning Git repo " + remote + " to " + workDir); + + CloneCommand command = Git.cloneRepository(); + command.setNoCheckout(true); + command.setURI(remote); + command.setRemote(getRemoteName()); + command.setBranchesToClone(Collections.singleton(checkoutBranch)); + command.setDirectory(workDir); + command.setTimeout(10); + command.setProgressMonitor(new ProgressLogWrapper(context)); + return command.call(); + } + + private void configureRepository(SetupTaskContext context, Repository repository) throws Exception, IOException + { + StoredConfig config = repository.getConfig(); + + boolean changed = false; + changed |= configureLineEndingConversion(context, config); + changed |= addPushRefSpec(context, config); + if (changed) + { + config.save(); + } + } + + private boolean configureLineEndingConversion(SetupTaskContext context, StoredConfig config) throws Exception + { + if (context.getOS().isLineEndingConversionNeeded()) + { + context.log("Setting " + ConfigConstants.CONFIG_KEY_AUTOCRLF + " = true"); + config.setEnum(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_AUTOCRLF, AutoCRLF.TRUE); + return true; + } + + return false; + } + + private boolean addPushRefSpec(SetupTaskContext context, StoredConfig config) throws Exception + { + String gerritQueue = "refs/for/" + getCheckoutBranch(); + for (RemoteConfig remoteConfig : RemoteConfig.getAllRemoteConfigs(config)) + { + if (getRemoteName().equals(remoteConfig.getName())) + { + List<RefSpec> pushRefSpecs = remoteConfig.getPushRefSpecs(); + if (hasGerritPushRefSpec(pushRefSpecs, gerritQueue)) + { + return false; + } + + RefSpec refSpec = new RefSpec("HEAD:" + gerritQueue); + context.log("Adding push ref spec: " + refSpec); + + remoteConfig.addPushRefSpec(refSpec); + remoteConfig.update(config); + return true; + } + } + + return false; + } + + private boolean hasGerritPushRefSpec(List<RefSpec> pushRefSpecs, String gerritQueue) + { + for (RefSpec refSpec : pushRefSpecs) + { + if (refSpec.getDestination().equals(gerritQueue)) + { + return true; + } + } + + return false; + } + + private void createBranch(SetupTaskContext context, Git git, String checkoutBranch) throws Exception + { + context.log("Creating local branch " + checkoutBranch); + + CreateBranchCommand command = git.branchCreate(); + command.setUpstreamMode(SetupUpstreamMode.SET_UPSTREAM); + command.setName(checkoutBranch); + command.setStartPoint("refs/remotes/origin/" + checkoutBranch); + command.call(); + } + + private void checkout(SetupTaskContext context, Git git, String checkoutBranch) throws Exception + { + context.log("Checking out local branch " + checkoutBranch); + + CheckoutCommand command = git.checkout(); + command.setName(checkoutBranch); + command.call(); + } + + private void resetHard(SetupTaskContext context, Git git) throws Exception + { + context.log("Resetting hard"); + + ResetCommand command = git.reset(); + command.setMode(ResetType.HARD); + command.call(); + } + + /** + * @author Eike Stepper + */ + private static final class ProgressLogWrapper implements ProgressMonitor + { + private SetupTaskContext context; + + public ProgressLogWrapper(SetupTaskContext context) + { + this.context = context; + } + + public void update(int completed) + { + } + + public void start(int totalTasks) + { + } + + public boolean isCancelled() + { + return context.isCancelled(); + } + + public void endTask() + { + } + + public void beginTask(String title, int totalWork) + { + context.log(title); + } + } + +} // GitCloneTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/InstallableUnitImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/InstallableUnitImpl.java index 23faaea6ce..0e95540e13 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/InstallableUnitImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/InstallableUnitImpl.java @@ -10,8 +10,8 @@ */ package org.eclipse.emf.cdo.releng.setup.impl; -import org.eclipse.emf.cdo.releng.setup.DirectorCall; import org.eclipse.emf.cdo.releng.setup.InstallableUnit; +import org.eclipse.emf.cdo.releng.setup.P2Task; import org.eclipse.emf.cdo.releng.setup.SetupPackage; import org.eclipse.emf.common.notify.Notification; @@ -29,7 +29,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil; * <p> * The following features are implemented: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl#getDirectorCall <em>Director Call</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl#getP2Task <em>P2 Task</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl#getId <em>Id</em>}</li> * </ul> * </p> @@ -84,11 +84,11 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements * <!-- end-user-doc --> * @generated */ - public DirectorCall getDirectorCall() + public P2Task getP2Task() { - if (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL) + if (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__P2_TASK) return null; - return (DirectorCall)eInternalContainer(); + return (P2Task)eContainer(); } /** @@ -96,9 +96,21 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements * <!-- end-user-doc --> * @generated */ - public NotificationChain basicSetDirectorCall(DirectorCall newDirectorCall, NotificationChain msgs) + public P2Task basicGetP2Task() { - msgs = eBasicSetContainer((InternalEObject)newDirectorCall, SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL, msgs); + if (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__P2_TASK) + return null; + return (P2Task)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetP2Task(P2Task newP2Task, NotificationChain msgs) + { + msgs = eBasicSetContainer((InternalEObject)newP2Task, SetupPackage.INSTALLABLE_UNIT__P2_TASK, msgs); return msgs; } @@ -107,26 +119,26 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements * <!-- end-user-doc --> * @generated */ - public void setDirectorCall(DirectorCall newDirectorCall) + public void setP2Task(P2Task newP2Task) { - if (newDirectorCall != eInternalContainer() - || (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL && newDirectorCall != null)) + if (newP2Task != eInternalContainer() + || (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__P2_TASK && newP2Task != null)) { - if (EcoreUtil.isAncestor(this, newDirectorCall)) + if (EcoreUtil.isAncestor(this, newP2Task)) throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); NotificationChain msgs = null; if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); - if (newDirectorCall != null) - msgs = ((InternalEObject)newDirectorCall).eInverseAdd(this, SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS, - DirectorCall.class, msgs); - msgs = basicSetDirectorCall(newDirectorCall, msgs); + if (newP2Task != null) + msgs = ((InternalEObject)newP2Task).eInverseAdd(this, SetupPackage.P2_TASK__INSTALLABLE_UNITS, P2Task.class, + msgs); + msgs = basicSetP2Task(newP2Task, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL, - newDirectorCall, newDirectorCall)); + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.INSTALLABLE_UNIT__P2_TASK, newP2Task, + newP2Task)); } /** @@ -162,10 +174,10 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL: + case SetupPackage.INSTALLABLE_UNIT__P2_TASK: if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); - return basicSetDirectorCall((DirectorCall)otherEnd, msgs); + return basicSetP2Task((P2Task)otherEnd, msgs); } return super.eInverseAdd(otherEnd, featureID, msgs); } @@ -180,8 +192,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL: - return basicSetDirectorCall(null, msgs); + case SetupPackage.INSTALLABLE_UNIT__P2_TASK: + return basicSetP2Task(null, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } @@ -196,9 +208,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements { switch (eContainerFeatureID()) { - case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL: - return eInternalContainer().eInverseRemove(this, SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS, - DirectorCall.class, msgs); + case SetupPackage.INSTALLABLE_UNIT__P2_TASK: + return eInternalContainer().eInverseRemove(this, SetupPackage.P2_TASK__INSTALLABLE_UNITS, P2Task.class, msgs); } return super.eBasicRemoveFromContainerFeature(msgs); } @@ -213,8 +224,10 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL: - return getDirectorCall(); + case SetupPackage.INSTALLABLE_UNIT__P2_TASK: + if (resolve) + return getP2Task(); + return basicGetP2Task(); case SetupPackage.INSTALLABLE_UNIT__ID: return getId(); } @@ -231,8 +244,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL: - setDirectorCall((DirectorCall)newValue); + case SetupPackage.INSTALLABLE_UNIT__P2_TASK: + setP2Task((P2Task)newValue); return; case SetupPackage.INSTALLABLE_UNIT__ID: setId((String)newValue); @@ -251,8 +264,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL: - setDirectorCall((DirectorCall)null); + case SetupPackage.INSTALLABLE_UNIT__P2_TASK: + setP2Task((P2Task)null); return; case SetupPackage.INSTALLABLE_UNIT__ID: setId(ID_EDEFAULT); @@ -271,8 +284,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL: - return getDirectorCall() != null; + case SetupPackage.INSTALLABLE_UNIT__P2_TASK: + return basicGetP2Task() != null; case SetupPackage.INSTALLABLE_UNIT__ID: return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id); } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationTaskImpl.java index c8c4b97d2e..ac4727ba96 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationTaskImpl.java @@ -1,38 +1,34 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup.impl; -import org.eclipse.emf.cdo.releng.setup.LinkLocation; +import org.eclipse.emf.cdo.releng.setup.LinkLocationTask; import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import java.io.File; +import java.util.Collections; +import java.util.List; /** * <!-- begin-user-doc --> - * An implementation of the model object '<em><b>Link Location</b></em>'. + * An implementation of the model object '<em><b>Link Location Task</b></em>'. * <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl#getPath <em>Path</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl#getPath <em>Path</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl#getName <em>Name</em>}</li> * </ul> * </p> * * @generated */ -public class LinkLocationImpl extends MinimalEObjectImpl.Container implements LinkLocation +public class LinkLocationTaskImpl extends SetupTaskImpl implements LinkLocationTask { /** * The default value of the '{@link #getPath() <em>Path</em>}' attribute. @@ -74,12 +70,16 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li */ protected String name = NAME_EDEFAULT; + private transient File link; + + private transient File canonicalPath; + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - protected LinkLocationImpl() + protected LinkLocationTaskImpl() { super(); } @@ -92,7 +92,7 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li @Override protected EClass eStaticClass() { - return SetupPackage.Literals.LINK_LOCATION; + return SetupPackage.Literals.LINK_LOCATION_TASK; } /** @@ -115,9 +115,7 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li String oldPath = path; path = newPath; if (eNotificationRequired()) - { - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.LINK_LOCATION__PATH, oldPath, path)); - } + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.LINK_LOCATION_TASK__PATH, oldPath, path)); } /** @@ -140,9 +138,7 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li String oldName = name; name = newName; if (eNotificationRequired()) - { - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.LINK_LOCATION__NAME, oldName, name)); - } + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.LINK_LOCATION_TASK__NAME, oldName, name)); } /** @@ -155,9 +151,9 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li { switch (featureID) { - case SetupPackage.LINK_LOCATION__PATH: + case SetupPackage.LINK_LOCATION_TASK__PATH: return getPath(); - case SetupPackage.LINK_LOCATION__NAME: + case SetupPackage.LINK_LOCATION_TASK__NAME: return getName(); } return super.eGet(featureID, resolve, coreType); @@ -173,10 +169,10 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li { switch (featureID) { - case SetupPackage.LINK_LOCATION__PATH: + case SetupPackage.LINK_LOCATION_TASK__PATH: setPath((String)newValue); return; - case SetupPackage.LINK_LOCATION__NAME: + case SetupPackage.LINK_LOCATION_TASK__NAME: setName((String)newValue); return; } @@ -193,10 +189,10 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li { switch (featureID) { - case SetupPackage.LINK_LOCATION__PATH: + case SetupPackage.LINK_LOCATION_TASK__PATH: setPath(PATH_EDEFAULT); return; - case SetupPackage.LINK_LOCATION__NAME: + case SetupPackage.LINK_LOCATION_TASK__NAME: setName(NAME_EDEFAULT); return; } @@ -213,9 +209,9 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li { switch (featureID) { - case SetupPackage.LINK_LOCATION__PATH: + case SetupPackage.LINK_LOCATION_TASK__PATH: return PATH_EDEFAULT == null ? path != null : !PATH_EDEFAULT.equals(path); - case SetupPackage.LINK_LOCATION__NAME: + case SetupPackage.LINK_LOCATION_TASK__NAME: return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); } return super.eIsSet(featureID); @@ -230,9 +226,7 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li public String toString() { if (eIsProxy()) - { return super.toString(); - } StringBuffer result = new StringBuffer(super.toString()); result.append(" (path: "); @@ -243,4 +237,26 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li return result.toString(); } -} // LinkLocationImpl + public boolean isNeeded(SetupTaskContext context) throws Exception + { + File links = new File(context.getEclipseDir(), "links"); + canonicalPath = new File(context.expandString(getPath())).getCanonicalFile(); + + String name = getName(); + if (name == null || name.length() == 0) + { + name = canonicalPath.getName(); + } + + link = new File(links, name + ".link"); + return link.isFile(); + } + + public void perform(SetupTaskContext context) throws Exception + { + List<String> lines = Collections.singletonList("path=" + canonicalPath.toString().replace("\\", "\\\\")); + context.getOS().writeText(link, lines); + context.setRestartNeeded(); + } + +} // LinkLocationTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/OneTimeSetupTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/OneTimeSetupTaskImpl.java new file mode 100644 index 0000000000..1b6f14c9fc --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/OneTimeSetupTaskImpl.java @@ -0,0 +1,215 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import java.util.HashSet; +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>One Time Setup Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl#getId <em>Id</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public abstract class OneTimeSetupTaskImpl extends SetupTaskImpl implements OneTimeSetupTask +{ + /** + * The default value of the '{@link #getId() <em>Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getId() + * @generated + * @ordered + */ + protected static final String ID_EDEFAULT = null; + + /** + * The cached value of the '{@link #getId() <em>Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getId() + * @generated + * @ordered + */ + protected String id = ID_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected OneTimeSetupTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.ONE_TIME_SETUP_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getId() + { + return id; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setId(String newId) + { + String oldId = id; + id = newId; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ONE_TIME_SETUP_TASK__ID, oldId, id)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.ONE_TIME_SETUP_TASK__ID: + return getId(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.ONE_TIME_SETUP_TASK__ID: + setId((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.ONE_TIME_SETUP_TASK__ID: + setId(ID_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.ONE_TIME_SETUP_TASK__ID: + return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (id: "); + result.append(id); + result.append(')'); + return result.toString(); + } + + public final boolean isNeeded(SetupTaskContext context) throws Exception + { + return !isPerformed(); + } + + public final void perform(SetupTaskContext context) throws Exception + { + doPerform(context); + setPerformed(true); + } + + protected abstract void doPerform(SetupTaskContext context) throws Exception; + + private int xxx; + + private static final Set<String> PERFORMED = new HashSet<String>(); + + protected boolean isPerformed() + { + String id = getId(); + return PERFORMED.contains(id); + } + + protected void setPerformed(boolean performed) + { + String id = getId(); + if (performed) + { + PERFORMED.add(id); + } + else + { + PERFORMED.remove(id); + } + } + +} // OneTimeSetupTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2RepositoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2RepositoryImpl.java index ae64c0864f..ea56defc23 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2RepositoryImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2RepositoryImpl.java @@ -10,8 +10,8 @@ */ package org.eclipse.emf.cdo.releng.setup.impl; -import org.eclipse.emf.cdo.releng.setup.DirectorCall; import org.eclipse.emf.cdo.releng.setup.P2Repository; +import org.eclipse.emf.cdo.releng.setup.P2Task; import org.eclipse.emf.cdo.releng.setup.SetupPackage; import org.eclipse.emf.common.notify.Notification; @@ -29,7 +29,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil; * <p> * The following features are implemented: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2RepositoryImpl#getDirectorCall <em>Director Call</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2RepositoryImpl#getP2Task <em>P2 Task</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2RepositoryImpl#getUrl <em>Url</em>}</li> * </ul> * </p> @@ -84,11 +84,11 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 * <!-- end-user-doc --> * @generated */ - public DirectorCall getDirectorCall() + public P2Task getP2Task() { - if (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__DIRECTOR_CALL) + if (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__P2_TASK) return null; - return (DirectorCall)eInternalContainer(); + return (P2Task)eContainer(); } /** @@ -96,9 +96,21 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 * <!-- end-user-doc --> * @generated */ - public NotificationChain basicSetDirectorCall(DirectorCall newDirectorCall, NotificationChain msgs) + public P2Task basicGetP2Task() { - msgs = eBasicSetContainer((InternalEObject)newDirectorCall, SetupPackage.P2_REPOSITORY__DIRECTOR_CALL, msgs); + if (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__P2_TASK) + return null; + return (P2Task)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetP2Task(P2Task newP2Task, NotificationChain msgs) + { + msgs = eBasicSetContainer((InternalEObject)newP2Task, SetupPackage.P2_REPOSITORY__P2_TASK, msgs); return msgs; } @@ -107,26 +119,25 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 * <!-- end-user-doc --> * @generated */ - public void setDirectorCall(DirectorCall newDirectorCall) + public void setP2Task(P2Task newP2Task) { - if (newDirectorCall != eInternalContainer() - || (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__DIRECTOR_CALL && newDirectorCall != null)) + if (newP2Task != eInternalContainer() + || (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__P2_TASK && newP2Task != null)) { - if (EcoreUtil.isAncestor(this, newDirectorCall)) + if (EcoreUtil.isAncestor(this, newP2Task)) throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); NotificationChain msgs = null; if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); - if (newDirectorCall != null) - msgs = ((InternalEObject)newDirectorCall).eInverseAdd(this, SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES, - DirectorCall.class, msgs); - msgs = basicSetDirectorCall(newDirectorCall, msgs); + if (newP2Task != null) + msgs = ((InternalEObject)newP2Task) + .eInverseAdd(this, SetupPackage.P2_TASK__P2_REPOSITORIES, P2Task.class, msgs); + msgs = basicSetP2Task(newP2Task, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.P2_REPOSITORY__DIRECTOR_CALL, newDirectorCall, - newDirectorCall)); + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.P2_REPOSITORY__P2_TASK, newP2Task, newP2Task)); } /** @@ -162,10 +173,10 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 { switch (featureID) { - case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL: + case SetupPackage.P2_REPOSITORY__P2_TASK: if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); - return basicSetDirectorCall((DirectorCall)otherEnd, msgs); + return basicSetP2Task((P2Task)otherEnd, msgs); } return super.eInverseAdd(otherEnd, featureID, msgs); } @@ -180,8 +191,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 { switch (featureID) { - case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL: - return basicSetDirectorCall(null, msgs); + case SetupPackage.P2_REPOSITORY__P2_TASK: + return basicSetP2Task(null, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } @@ -196,9 +207,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 { switch (eContainerFeatureID()) { - case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL: - return eInternalContainer().eInverseRemove(this, SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES, DirectorCall.class, - msgs); + case SetupPackage.P2_REPOSITORY__P2_TASK: + return eInternalContainer().eInverseRemove(this, SetupPackage.P2_TASK__P2_REPOSITORIES, P2Task.class, msgs); } return super.eBasicRemoveFromContainerFeature(msgs); } @@ -213,8 +223,10 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 { switch (featureID) { - case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL: - return getDirectorCall(); + case SetupPackage.P2_REPOSITORY__P2_TASK: + if (resolve) + return getP2Task(); + return basicGetP2Task(); case SetupPackage.P2_REPOSITORY__URL: return getUrl(); } @@ -231,8 +243,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 { switch (featureID) { - case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL: - setDirectorCall((DirectorCall)newValue); + case SetupPackage.P2_REPOSITORY__P2_TASK: + setP2Task((P2Task)newValue); return; case SetupPackage.P2_REPOSITORY__URL: setUrl((String)newValue); @@ -251,8 +263,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 { switch (featureID) { - case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL: - setDirectorCall((DirectorCall)null); + case SetupPackage.P2_REPOSITORY__P2_TASK: + setP2Task((P2Task)null); return; case SetupPackage.P2_REPOSITORY__URL: setUrl(URL_EDEFAULT); @@ -271,8 +283,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 { switch (featureID) { - case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL: - return getDirectorCall() != null; + case SetupPackage.P2_REPOSITORY__P2_TASK: + return basicGetP2Task() != null; case SetupPackage.P2_REPOSITORY__URL: return URL_EDEFAULT == null ? url != null : !URL_EDEFAULT.equals(url); } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2TaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2TaskImpl.java new file mode 100644 index 0000000000..b948f95368 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2TaskImpl.java @@ -0,0 +1,516 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.internal.setup.Activator; +import org.eclipse.emf.cdo.releng.setup.InstallableUnit; +import org.eclipse.emf.cdo.releng.setup.P2Repository; +import org.eclipse.emf.cdo.releng.setup.P2Task; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; +import org.eclipse.emf.cdo.releng.setup.SetupTaskScope; +import org.eclipse.emf.cdo.releng.setup.util.FileUtil; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogMonitor; + +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.OperationCanceledException; +import org.eclipse.core.runtime.Platform; +import org.eclipse.equinox.internal.p2.director.app.DirectorApplication; +import org.eclipse.equinox.internal.p2.director.app.ILog; +import org.eclipse.equinox.internal.p2.ui.ProvUI; +import org.eclipse.equinox.p2.engine.IProfile; +import org.eclipse.equinox.p2.engine.ProvisioningContext; +import org.eclipse.equinox.p2.metadata.IInstallableUnit; +import org.eclipse.equinox.p2.metadata.MetadataFactory; +import org.eclipse.equinox.p2.metadata.MetadataFactory.InstallableUnitDescription; +import org.eclipse.equinox.p2.operations.InstallOperation; +import org.eclipse.equinox.p2.operations.ProvisioningJob; +import org.eclipse.equinox.p2.operations.ProvisioningSession; +import org.eclipse.equinox.p2.operations.RepositoryTracker; +import org.eclipse.equinox.p2.query.IQuery; +import org.eclipse.equinox.p2.query.IQueryResult; +import org.eclipse.equinox.p2.query.QueryUtil; +import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository; +import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager; +import org.eclipse.equinox.p2.ui.ProvisioningUI; + +import java.io.File; +import java.net.URI; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Install Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl#getP2Repositories <em>P2 Repositories</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl#getInstallableUnits <em>Installable Units</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class P2TaskImpl extends SetupTaskImpl implements P2Task +{ + /** + * The cached value of the '{@link #getP2Repositories() <em>P2 Repositories</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getP2Repositories() + * @generated + * @ordered + */ + protected EList<P2Repository> p2Repositories; + + /** + * The cached value of the '{@link #getInstallableUnits() <em>Installable Units</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getInstallableUnits() + * @generated + * @ordered + */ + protected EList<InstallableUnit> installableUnits; + + private transient Set<String> neededInstallableUnits; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected P2TaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.P2_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<InstallableUnit> getInstallableUnits() + { + if (installableUnits == null) + { + installableUnits = new EObjectContainmentWithInverseEList.Resolving<InstallableUnit>(InstallableUnit.class, this, + SetupPackage.P2_TASK__INSTALLABLE_UNITS, SetupPackage.INSTALLABLE_UNIT__P2_TASK); + } + return installableUnits; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<P2Repository> getP2Repositories() + { + if (p2Repositories == null) + { + p2Repositories = new EObjectContainmentWithInverseEList.Resolving<P2Repository>(P2Repository.class, this, + SetupPackage.P2_TASK__P2_REPOSITORIES, SetupPackage.P2_REPOSITORY__P2_TASK); + } + return p2Repositories; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SetupPackage.P2_TASK__P2_REPOSITORIES: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getP2Repositories()).basicAdd(otherEnd, msgs); + case SetupPackage.P2_TASK__INSTALLABLE_UNITS: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getInstallableUnits()).basicAdd(otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SetupPackage.P2_TASK__P2_REPOSITORIES: + return ((InternalEList<?>)getP2Repositories()).basicRemove(otherEnd, msgs); + case SetupPackage.P2_TASK__INSTALLABLE_UNITS: + return ((InternalEList<?>)getInstallableUnits()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.P2_TASK__P2_REPOSITORIES: + return getP2Repositories(); + case SetupPackage.P2_TASK__INSTALLABLE_UNITS: + return getInstallableUnits(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.P2_TASK__P2_REPOSITORIES: + getP2Repositories().clear(); + getP2Repositories().addAll((Collection<? extends P2Repository>)newValue); + return; + case SetupPackage.P2_TASK__INSTALLABLE_UNITS: + getInstallableUnits().clear(); + getInstallableUnits().addAll((Collection<? extends InstallableUnit>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.P2_TASK__P2_REPOSITORIES: + getP2Repositories().clear(); + return; + case SetupPackage.P2_TASK__INSTALLABLE_UNITS: + getInstallableUnits().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.P2_TASK__P2_REPOSITORIES: + return p2Repositories != null && !p2Repositories.isEmpty(); + case SetupPackage.P2_TASK__INSTALLABLE_UNITS: + return installableUnits != null && !installableUnits.isEmpty(); + } + return super.eIsSet(featureID); + } + + private static Set<String> getInstalledUnits() + { + Set<String> result = new HashSet<String>(); + ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI(); + ProvisioningSession session = provisioningUI.getSession(); + String profileId = provisioningUI.getProfileId(); + IProfile profile = ProvUI.getProfileRegistry(session).getProfile(profileId); + IQueryResult<IInstallableUnit> queryResult = profile.query(QueryUtil.createIUAnyQuery(), null); + + for (IInstallableUnit installableUnit : queryResult) + { + result.add(installableUnit.getId()); + } + + return result; + } + + private static Set<String> getKnownRepositories() + { + Set<String> result = new HashSet<String>(); + ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI(); + ProvisioningSession session = provisioningUI.getSession(); + for (URI knowRepository : provisioningUI.getRepositoryTracker().getKnownRepositories(session)) + { + result.add(knowRepository.toString()); + } + return result; + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + if (!Activator.SETUP_IDE) + { + return true; + } + + Set<String> installedUnits = getInstalledUnits(); + for (InstallableUnit installableUnit : getInstallableUnits()) + { + String id = context.expandString(installableUnit.getId()); + if (!installedUnits.contains(id)) + { + if (neededInstallableUnits == null) + { + neededInstallableUnits = new HashSet<String>(); + } + neededInstallableUnits.add(id); + } + } + + Set<String> knownRepositories = getKnownRepositories(); + for (P2Repository p2Repository : getP2Repositories()) + { + String url = context.expandString(p2Repository.getUrl()); + if (!knownRepositories.contains(url)) + { + return true; + } + } + + return neededInstallableUnits != null; + } + + public void perform(SetupTaskContext context) throws Exception + { + if (Activator.SETUP_IDE) + { + ProgressLogMonitor monitor = new ProgressLogMonitor(context); + + ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI(); + ProvisioningSession session = provisioningUI.getSession(); + IMetadataRepositoryManager manager = (IMetadataRepositoryManager)session.getProvisioningAgent().getService( + IMetadataRepositoryManager.SERVICE_NAME); + RepositoryTracker repositoryTracker = provisioningUI.getRepositoryTracker(); + + Set<String> knownRepositories = getKnownRepositories(); + Set<IMetadataRepository> repositories = new HashSet<IMetadataRepository>(); + List<URI> repos = new ArrayList<URI>(); + for (P2Repository p2Repository : getP2Repositories()) + { + String url = context.expandString(p2Repository.getUrl()); + URI uri = new URI(url); + if (neededInstallableUnits == null) + { + if (!knownRepositories.contains(url)) + { + IMetadataRepository repository = manager.loadRepository(uri, monitor); + repositoryTracker.addRepository(uri, repository.getName(), session); + } + } + else + { + repos.add(uri); + + IMetadataRepository repository = manager.loadRepository(uri, monitor); + repositories.add(repository); + + if (!knownRepositories.contains(url)) + { + repositoryTracker.addRepository(uri, repository.getName(), session); + } + } + } + + if (neededInstallableUnits != null) + { + List<IInstallableUnit> toInstall = new ArrayList<IInstallableUnit>(); + for (String installableUnit : neededInstallableUnits) + { + IQuery<IInstallableUnit> iuQuery = QueryUtil.createIUQuery(installableUnit); + IInstallableUnit candidate = null; + for (IMetadataRepository repository : repositories) + { + IQueryResult<IInstallableUnit> queryResult = repository.query(iuQuery, monitor); + for (IInstallableUnit installableUnitMatch : queryResult) + { + if (candidate == null || candidate.getVersion().compareTo(installableUnitMatch.getVersion()) < 0) + { + candidate = installableUnitMatch; + } + break; + } + } + if (candidate != null) + { + toInstall.add(candidate); + } + else + { + // This will fail. + // TODO + InstallableUnitDescription installableUnitDescription = new InstallableUnitDescription(); + installableUnitDescription.setId(installableUnit); + toInstall.add(MetadataFactory.createInstallableUnit(installableUnitDescription)); + } + } + + InstallOperation installOperation = new InstallOperation(session, toInstall); + String profileId = provisioningUI.getProfileId(); + installOperation.setProfileId(profileId); + + ProvisioningContext provisioningContext = makeProvisioningContext(session, repos); + installOperation.setProvisioningContext(provisioningContext); + + IStatus status = installOperation.resolveModal(monitor); + if (status.isOK()) + { + ProvisioningJob provisioningJob = installOperation.getProvisioningJob(null); + provisioningJob.run(monitor); + } + else + { + context.log(status.toString()); + } + } + } + else + { + callDirectorApp(context); + } + context.setRestartNeeded(); + } + + private ProvisioningContext makeProvisioningContext(ProvisioningSession session, Collection<URI> repositories) + { + URI[] repos = repositories.toArray(new URI[repositories.size()]); + ProvisioningContext context = new ProvisioningContext(session.getProvisioningAgent()); + context.setMetadataRepositories(repos); + context.setArtifactRepositories(repos); + return context; + } + + // public void computeRemediationOperation(ProfileChangeOperation op, ProvisioningUI ui, IProgressMonitor monitor) { + // SubMonitor sub = SubMonitor.convert(monitor, ProvUIMessages.ProvisioningOperationWizard_Remediation_Operation, + // RemedyConfig.getAllRemedyConfigs().length); + // monitor.setTaskName(ProvUIMessages.ProvisioningOperationWizard_Remediation_Operation); + // remediationOperation = new RemediationOperation(ui.getSession(), op.getProfileChangeRequest()); + // remediationOperation.resolveModal(monitor); + // sub.done(); + // } + + private void callDirectorApp(final SetupTaskContext context) throws Exception + { + if (getScope() == SetupTaskScope.CONFIGURATION) + + { + FileUtil.delete(context.getP2ProfileDir(), new ProgressLogMonitor(context)); + } + + String destination = context.getEclipseDir().toString(); + String bundlePool = context.getP2PoolDir().toString(); + String bundleAgent = context.getP2AgentDir().toString(); + + String os = Platform.getOS(); + String ws = Platform.getWS(); + String arch = Platform.getOSArch(); + + EList<P2Repository> p2Repositories = getP2Repositories(); + EList<InstallableUnit> installableUnits = getInstallableUnits(); + + context.log("Calling director to install " + installableUnits.size() + + (installableUnits.size() == 1 ? " unit" : " units") + " from " + p2Repositories.size() + + (p2Repositories.size() == 1 ? " repository" : " repositories") + " to " + destination); + + new File(destination).mkdirs(); + + String repositories = makeList(context, p2Repositories, SetupPackage.Literals.P2_REPOSITORY__URL); + String ius = makeList(context, installableUnits, SetupPackage.Literals.INSTALLABLE_UNIT__ID); + + String[] args = { "-destination", destination, "-repository", repositories, "-installIU", ius, "-profile", + context.getP2ProfileName(), "-profileProperties", "org.eclipse.update.install.features=true", "-bundlepool", + bundlePool, "-shared", bundleAgent, "-p2.os", os, "-p2.ws", ws, "-p2.arch", arch }; + + DirectorApplication app = new DirectorApplication(); + app.setLog(new ILog() + { + public void log(String message) + { + if (context.isCancelled()) + { + throw new OperationCanceledException(); + } + + context.log(message); + } + + public void log(IStatus status) + { + log(status.getMessage()); + } + + public void close() + { + } + }); + + app.run(args); + } + + private String makeList(SetupTaskContext context, EList<? extends EObject> objects, EAttribute attribute) + { + StringBuilder builder = new StringBuilder(); + for (EObject object : objects) + { + if (builder.length() > 0) + { + builder.append(','); + } + + String value = (String)object.eGet(attribute); + value = context.expandString(value); + builder.append(value); + } + + return builder.toString(); + } + +} // InstallTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/PreferencesImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/PreferencesImpl.java index f54be8534e..10866085b9 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/PreferencesImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/PreferencesImpl.java @@ -10,18 +10,12 @@ */ package org.eclipse.emf.cdo.releng.setup.impl; -import java.util.Collection; -import org.eclipse.emf.cdo.releng.setup.LinkLocation; import org.eclipse.emf.cdo.releng.setup.Preferences; import org.eclipse.emf.cdo.releng.setup.SetupPackage; + import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; -import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.util.EObjectContainmentEList; -import org.eclipse.emf.ecore.util.InternalEList; /** * <!-- begin-user-doc --> @@ -33,13 +27,12 @@ import org.eclipse.emf.ecore.util.InternalEList; * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl#getUserName <em>User Name</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl#getInstallFolder <em>Install Folder</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl#getGitPrefix <em>Git Prefix</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl#getLinkLocations <em>Link Locations</em>}</li> * </ul> * </p> * * @generated */ -public class PreferencesImpl extends ToolInstallationImpl implements Preferences +public class PreferencesImpl extends SetupTaskContainerImpl implements Preferences { /** * The default value of the '{@link #getUserName() <em>User Name</em>}' attribute. @@ -102,16 +95,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences protected String gitPrefix = GIT_PREFIX_EDEFAULT; /** - * The cached value of the '{@link #getLinkLocations() <em>Link Locations</em>}' containment reference list. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getLinkLocations() - * @generated - * @ordered - */ - protected EList<LinkLocation> linkLocations; - - /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -208,37 +191,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences * <!-- end-user-doc --> * @generated */ - public EList<LinkLocation> getLinkLocations() - { - if (linkLocations == null) - { - linkLocations = new EObjectContainmentEList<LinkLocation>(LinkLocation.class, this, - SetupPackage.PREFERENCES__LINK_LOCATIONS); - } - return linkLocations; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SetupPackage.PREFERENCES__LINK_LOCATIONS: - return ((InternalEList<?>)getLinkLocations()).basicRemove(otherEnd, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { @@ -250,8 +202,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences return getInstallFolder(); case SetupPackage.PREFERENCES__GIT_PREFIX: return getGitPrefix(); - case SetupPackage.PREFERENCES__LINK_LOCATIONS: - return getLinkLocations(); } return super.eGet(featureID, resolve, coreType); } @@ -261,7 +211,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences * <!-- end-user-doc --> * @generated */ - @SuppressWarnings("unchecked") @Override public void eSet(int featureID, Object newValue) { @@ -276,10 +225,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences case SetupPackage.PREFERENCES__GIT_PREFIX: setGitPrefix((String)newValue); return; - case SetupPackage.PREFERENCES__LINK_LOCATIONS: - getLinkLocations().clear(); - getLinkLocations().addAll((Collection<? extends LinkLocation>)newValue); - return; } super.eSet(featureID, newValue); } @@ -303,9 +248,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences case SetupPackage.PREFERENCES__GIT_PREFIX: setGitPrefix(GIT_PREFIX_EDEFAULT); return; - case SetupPackage.PREFERENCES__LINK_LOCATIONS: - getLinkLocations().clear(); - return; } super.eUnset(featureID); } @@ -326,8 +268,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences return INSTALL_FOLDER_EDEFAULT == null ? installFolder != null : !INSTALL_FOLDER_EDEFAULT.equals(installFolder); case SetupPackage.PREFERENCES__GIT_PREFIX: return GIT_PREFIX_EDEFAULT == null ? gitPrefix != null : !GIT_PREFIX_EDEFAULT.equals(gitPrefix); - case SetupPackage.PREFERENCES__LINK_LOCATIONS: - return linkLocations != null && !linkLocations.isEmpty(); } return super.eIsSet(featureID); } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectImpl.java index 3c0a1fe2af..51902935e0 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectImpl.java @@ -10,13 +10,11 @@ */ package org.eclipse.emf.cdo.releng.setup.impl; -import org.eclipse.emf.cdo.releng.setup.ApiBaseline; import org.eclipse.emf.cdo.releng.setup.Branch; import org.eclipse.emf.cdo.releng.setup.Configuration; import org.eclipse.emf.cdo.releng.setup.Project; import org.eclipse.emf.cdo.releng.setup.SetupPackage; -import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.NotificationChain; import org.eclipse.emf.common.util.EList; @@ -39,14 +37,12 @@ import java.util.Collection; * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getConfiguration <em>Configuration</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getBranches <em>Branches</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getName <em>Name</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getApiBaselines <em>Api Baselines</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getWorkingSetGroup <em>Working Set Group</em>}</li> * </ul> * </p> * * @generated */ -public class ProjectImpl extends ToolInstallationImpl implements Project +public class ProjectImpl extends ConfigurableItemImpl implements Project { /** * The cached value of the '{@link #getBranches() <em>Branches</em>}' containment reference list. @@ -79,30 +75,10 @@ public class ProjectImpl extends ToolInstallationImpl implements Project protected String name = NAME_EDEFAULT; /** - * The cached value of the '{@link #getApiBaselines() <em>Api Baselines</em>}' containment reference list. * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getApiBaselines() - * @generated - * @ordered - */ - protected EList<ApiBaseline> apiBaselines; - - /** - * The cached value of the '{@link #getWorkingSetGroup() <em>Working Set Group</em>}' containment reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getWorkingSetGroup() + * <!-- end-user-doc --> * @generated - * @ordered */ - protected WorkingSetGroup workingSetGroup; - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ protected ProjectImpl() { super(); @@ -128,6 +104,18 @@ public class ProjectImpl extends ToolInstallationImpl implements Project { if (eContainerFeatureID() != SetupPackage.PROJECT__CONFIGURATION) return null; + return (Configuration)eContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Configuration basicGetConfiguration() + { + if (eContainerFeatureID() != SetupPackage.PROJECT__CONFIGURATION) + return null; return (Configuration)eInternalContainer(); } @@ -178,8 +166,8 @@ public class ProjectImpl extends ToolInstallationImpl implements Project { if (branches == null) { - branches = new EObjectContainmentWithInverseEList<Branch>(Branch.class, this, SetupPackage.PROJECT__BRANCHES, - SetupPackage.BRANCH__PROJECT); + branches = new EObjectContainmentWithInverseEList.Resolving<Branch>(Branch.class, this, + SetupPackage.PROJECT__BRANCHES, SetupPackage.BRANCH__PROJECT); } return branches; } @@ -209,80 +197,9 @@ public class ProjectImpl extends ToolInstallationImpl implements Project /** * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public EList<ApiBaseline> getApiBaselines() - { - if (apiBaselines == null) - { - apiBaselines = new EObjectContainmentWithInverseEList<ApiBaseline>(ApiBaseline.class, this, - SetupPackage.PROJECT__API_BASELINES, SetupPackage.API_BASELINE__PROJECT); - } - return apiBaselines; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * <!-- end-user-doc --> * @generated */ - public WorkingSetGroup getWorkingSetGroup() - { - return workingSetGroup; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public NotificationChain basicSetWorkingSetGroup(WorkingSetGroup newWorkingSetGroup, NotificationChain msgs) - { - WorkingSetGroup oldWorkingSetGroup = workingSetGroup; - workingSetGroup = newWorkingSetGroup; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, - SetupPackage.PROJECT__WORKING_SET_GROUP, oldWorkingSetGroup, newWorkingSetGroup); - if (msgs == null) - msgs = notification; - else - msgs.add(notification); - } - return msgs; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setWorkingSetGroup(WorkingSetGroup newWorkingSetGroup) - { - if (newWorkingSetGroup != workingSetGroup) - { - NotificationChain msgs = null; - if (workingSetGroup != null) - msgs = ((InternalEObject)workingSetGroup).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - - SetupPackage.PROJECT__WORKING_SET_GROUP, null, msgs); - if (newWorkingSetGroup != null) - msgs = ((InternalEObject)newWorkingSetGroup).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - - SetupPackage.PROJECT__WORKING_SET_GROUP, null, msgs); - msgs = basicSetWorkingSetGroup(newWorkingSetGroup, msgs); - if (msgs != null) - msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.PROJECT__WORKING_SET_GROUP, - newWorkingSetGroup, newWorkingSetGroup)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ @SuppressWarnings("unchecked") @Override public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) @@ -295,8 +212,6 @@ public class ProjectImpl extends ToolInstallationImpl implements Project return basicSetConfiguration((Configuration)otherEnd, msgs); case SetupPackage.PROJECT__BRANCHES: return ((InternalEList<InternalEObject>)(InternalEList<?>)getBranches()).basicAdd(otherEnd, msgs); - case SetupPackage.PROJECT__API_BASELINES: - return ((InternalEList<InternalEObject>)(InternalEList<?>)getApiBaselines()).basicAdd(otherEnd, msgs); } return super.eInverseAdd(otherEnd, featureID, msgs); } @@ -315,10 +230,6 @@ public class ProjectImpl extends ToolInstallationImpl implements Project return basicSetConfiguration(null, msgs); case SetupPackage.PROJECT__BRANCHES: return ((InternalEList<?>)getBranches()).basicRemove(otherEnd, msgs); - case SetupPackage.PROJECT__API_BASELINES: - return ((InternalEList<?>)getApiBaselines()).basicRemove(otherEnd, msgs); - case SetupPackage.PROJECT__WORKING_SET_GROUP: - return basicSetWorkingSetGroup(null, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } @@ -350,15 +261,13 @@ public class ProjectImpl extends ToolInstallationImpl implements Project switch (featureID) { case SetupPackage.PROJECT__CONFIGURATION: - return getConfiguration(); + if (resolve) + return getConfiguration(); + return basicGetConfiguration(); case SetupPackage.PROJECT__BRANCHES: return getBranches(); case SetupPackage.PROJECT__NAME: return getName(); - case SetupPackage.PROJECT__API_BASELINES: - return getApiBaselines(); - case SetupPackage.PROJECT__WORKING_SET_GROUP: - return getWorkingSetGroup(); } return super.eGet(featureID, resolve, coreType); } @@ -384,13 +293,6 @@ public class ProjectImpl extends ToolInstallationImpl implements Project case SetupPackage.PROJECT__NAME: setName((String)newValue); return; - case SetupPackage.PROJECT__API_BASELINES: - getApiBaselines().clear(); - getApiBaselines().addAll((Collection<? extends ApiBaseline>)newValue); - return; - case SetupPackage.PROJECT__WORKING_SET_GROUP: - setWorkingSetGroup((WorkingSetGroup)newValue); - return; } super.eSet(featureID, newValue); } @@ -414,12 +316,6 @@ public class ProjectImpl extends ToolInstallationImpl implements Project case SetupPackage.PROJECT__NAME: setName(NAME_EDEFAULT); return; - case SetupPackage.PROJECT__API_BASELINES: - getApiBaselines().clear(); - return; - case SetupPackage.PROJECT__WORKING_SET_GROUP: - setWorkingSetGroup((WorkingSetGroup)null); - return; } super.eUnset(featureID); } @@ -435,15 +331,11 @@ public class ProjectImpl extends ToolInstallationImpl implements Project switch (featureID) { case SetupPackage.PROJECT__CONFIGURATION: - return getConfiguration() != null; + return basicGetConfiguration() != null; case SetupPackage.PROJECT__BRANCHES: return branches != null && !branches.isEmpty(); case SetupPackage.PROJECT__NAME: return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - case SetupPackage.PROJECT__API_BASELINES: - return apiBaselines != null && !apiBaselines.isEmpty(); - case SetupPackage.PROJECT__WORKING_SET_GROUP: - return workingSetGroup != null; } return super.eIsSet(featureID); } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ResourceCopyTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ResourceCopyTaskImpl.java new file mode 100644 index 0000000000..c033ee8969 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ResourceCopyTaskImpl.java @@ -0,0 +1,298 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; + +import org.eclipse.net4j.util.io.IOUtil; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.resource.URIConverter; + +import java.io.InputStream; +import java.io.OutputStream; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Resource Copy Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl#getSourceURL <em>Source URL</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl#getTargetURL <em>Target URL</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class ResourceCopyTaskImpl extends SetupTaskImpl implements ResourceCopyTask +{ + /** + * The default value of the '{@link #getSourceURL() <em>Source URL</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSourceURL() + * @generated + * @ordered + */ + protected static final String SOURCE_URL_EDEFAULT = null; + + /** + * The cached value of the '{@link #getSourceURL() <em>Source URL</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSourceURL() + * @generated + * @ordered + */ + protected String sourceURL = SOURCE_URL_EDEFAULT; + + /** + * The default value of the '{@link #getTargetURL() <em>Target URL</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTargetURL() + * @generated + * @ordered + */ + protected static final String TARGET_URL_EDEFAULT = null; + + /** + * The cached value of the '{@link #getTargetURL() <em>Target URL</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTargetURL() + * @generated + * @ordered + */ + protected String targetURL = TARGET_URL_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ResourceCopyTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.RESOURCE_COPY_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getSourceURL() + { + return sourceURL; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setSourceURL(String newSourceURL) + { + String oldSourceURL = sourceURL; + sourceURL = newSourceURL; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL, oldSourceURL, + sourceURL)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getTargetURL() + { + return targetURL; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTargetURL(String newTargetURL) + { + String oldTargetURL = targetURL; + targetURL = newTargetURL; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.RESOURCE_COPY_TASK__TARGET_URL, oldTargetURL, + targetURL)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL: + return getSourceURL(); + case SetupPackage.RESOURCE_COPY_TASK__TARGET_URL: + return getTargetURL(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL: + setSourceURL((String)newValue); + return; + case SetupPackage.RESOURCE_COPY_TASK__TARGET_URL: + setTargetURL((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL: + setSourceURL(SOURCE_URL_EDEFAULT); + return; + case SetupPackage.RESOURCE_COPY_TASK__TARGET_URL: + setTargetURL(TARGET_URL_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL: + return SOURCE_URL_EDEFAULT == null ? sourceURL != null : !SOURCE_URL_EDEFAULT.equals(sourceURL); + case SetupPackage.RESOURCE_COPY_TASK__TARGET_URL: + return TARGET_URL_EDEFAULT == null ? targetURL != null : !TARGET_URL_EDEFAULT.equals(targetURL); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (sourceURL: "); + result.append(sourceURL); + result.append(", targetURL: "); + result.append(targetURL); + result.append(')'); + return result.toString(); + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + URI sourceURI = URI.createURI(context.expandString(getSourceURL())); + URI targetURI = URI.createURI(context.expandString(getTargetURL())); + if (targetURI.hasTrailingPathSeparator()) + { + if (sourceURI.hasTrailingPathSeparator()) + { + // TODO + } + else if (URIConverter.INSTANCE.exists(sourceURI, null)) + { + return !URIConverter.INSTANCE.exists(targetURI.appendSegment(sourceURI.lastSegment()), null); + } + } + else + { + // TODO + } + + return false; + } + + public void perform(SetupTaskContext context) throws Exception + { + URI sourceURI = URI.createURI(context.expandString(getSourceURL())); + URI targetURI = URI.createURI(context.expandString(getTargetURL())); + if (targetURI.hasTrailingPathSeparator()) + { + if (sourceURI.hasTrailingPathSeparator()) + { + // TODO + } + else if (URIConverter.INSTANCE.exists(sourceURI, null)) + { + InputStream input = null; + OutputStream output = null; + + try + { + input = URIConverter.INSTANCE.createInputStream(sourceURI); + output = URIConverter.INSTANCE.createOutputStream(targetURI.appendSegment(sourceURI.lastSegment()), null); + IOUtil.copy(input, output); + } + finally + { + IOUtil.closeSilent(input); + IOUtil.closeSilent(output); + } + } + } + else + { + // TODO + } + } + +} // ResourceCopyTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupFactoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupFactoryImpl.java index efcd362915..c2baca746b 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupFactoryImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupFactoryImpl.java @@ -10,7 +10,31 @@ */ package org.eclipse.emf.cdo.releng.setup.impl; -import org.eclipse.emf.cdo.releng.setup.*; +import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask; +import org.eclipse.emf.cdo.releng.setup.Branch; +import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask; +import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask; +import org.eclipse.emf.cdo.releng.setup.Configuration; +import org.eclipse.emf.cdo.releng.setup.EclipseIniTask; +import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask; +import org.eclipse.emf.cdo.releng.setup.EclipseVersion; +import org.eclipse.emf.cdo.releng.setup.GitCloneTask; +import org.eclipse.emf.cdo.releng.setup.InstallableUnit; +import org.eclipse.emf.cdo.releng.setup.LinkLocationTask; +import org.eclipse.emf.cdo.releng.setup.P2Repository; +import org.eclipse.emf.cdo.releng.setup.P2Task; +import org.eclipse.emf.cdo.releng.setup.Preferences; +import org.eclipse.emf.cdo.releng.setup.Project; +import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask; +import org.eclipse.emf.cdo.releng.setup.Setup; +import org.eclipse.emf.cdo.releng.setup.SetupFactory; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskScope; +import org.eclipse.emf.cdo.releng.setup.StringVariableTask; +import org.eclipse.emf.cdo.releng.setup.TextModification; +import org.eclipse.emf.cdo.releng.setup.TextModifyTask; +import org.eclipse.emf.cdo.releng.setup.Trigger; +import org.eclipse.emf.cdo.releng.setup.WorkingSetTask; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EDataType; @@ -18,6 +42,8 @@ import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.impl.EFactoryImpl; import org.eclipse.emf.ecore.plugin.EcorePlugin; +import java.util.HashSet; +import java.util.Set; /** * <!-- begin-user-doc --> @@ -71,32 +97,48 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory { switch (eClass.getClassifierID()) { - case SetupPackage.PREFERENCES: - return createPreferences(); - case SetupPackage.LINK_LOCATION: - return createLinkLocation(); - case SetupPackage.TOOL_PREFERENCE: - return createToolPreference(); case SetupPackage.ECLIPSE_VERSION: return createEclipseVersion(); - case SetupPackage.DIRECTOR_CALL: - return createDirectorCall(); - case SetupPackage.INSTALLABLE_UNIT: - return createInstallableUnit(); - case SetupPackage.P2_REPOSITORY: - return createP2Repository(); case SetupPackage.CONFIGURATION: return createConfiguration(); case SetupPackage.PROJECT: return createProject(); case SetupPackage.BRANCH: return createBranch(); - case SetupPackage.API_BASELINE: - return createApiBaseline(); - case SetupPackage.GIT_CLONE: - return createGitClone(); + case SetupPackage.PREFERENCES: + return createPreferences(); case SetupPackage.SETUP: return createSetup(); + case SetupPackage.COMPOUND_SETUP_TASK: + return createCompoundSetupTask(); + case SetupPackage.ECLIPSE_INI_TASK: + return createEclipseIniTask(); + case SetupPackage.LINK_LOCATION_TASK: + return createLinkLocationTask(); + case SetupPackage.P2_TASK: + return createP2Task(); + case SetupPackage.INSTALLABLE_UNIT: + return createInstallableUnit(); + case SetupPackage.P2_REPOSITORY: + return createP2Repository(); + case SetupPackage.BUCKMINSTER_IMPORT_TASK: + return createBuckminsterImportTask(); + case SetupPackage.API_BASELINE_TASK: + return createApiBaselineTask(); + case SetupPackage.GIT_CLONE_TASK: + return createGitCloneTask(); + case SetupPackage.ECLIPSE_PREFERENCE_TASK: + return createEclipsePreferenceTask(); + case SetupPackage.STRING_VARIABLE_TASK: + return createStringVariableTask(); + case SetupPackage.WORKING_SET_TASK: + return createWorkingSetTask(); + case SetupPackage.RESOURCE_COPY_TASK: + return createResourceCopyTask(); + case SetupPackage.TEXT_MODIFY_TASK: + return createTextModifyTask(); + case SetupPackage.TEXT_MODIFICATION: + return createTextModification(); default: throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); } @@ -112,8 +154,16 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory { switch (eDataType.getClassifierID()) { + case SetupPackage.SETUP_TASK_SCOPE: + return createSetupTaskScopeFromString(eDataType, initialValue); + case SetupPackage.TRIGGER: + return createTriggerFromString(eDataType, initialValue); case SetupPackage.URI: return createURIFromString(eDataType, initialValue); + case SetupPackage.EXCEPTION: + return createExceptionFromString(eDataType, initialValue); + case SetupPackage.TRIGGER_SET: + return createTriggerSetFromString(eDataType, initialValue); default: throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); } @@ -129,8 +179,16 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory { switch (eDataType.getClassifierID()) { + case SetupPackage.SETUP_TASK_SCOPE: + return convertSetupTaskScopeToString(eDataType, instanceValue); + case SetupPackage.TRIGGER: + return convertTriggerToString(eDataType, instanceValue); case SetupPackage.URI: return convertURIToString(eDataType, instanceValue); + case SetupPackage.EXCEPTION: + return convertExceptionToString(eDataType, instanceValue); + case SetupPackage.TRIGGER_SET: + return convertTriggerSetToString(eDataType, instanceValue); default: throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); } @@ -174,6 +232,28 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory * <!-- end-user-doc --> * @generated */ + public ApiBaselineTask createApiBaselineTask() + { + ApiBaselineTaskImpl apiBaselineTask = new ApiBaselineTaskImpl(); + return apiBaselineTask; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public GitCloneTask createGitCloneTask() + { + GitCloneTaskImpl gitCloneTask = new GitCloneTaskImpl(); + return gitCloneTask; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ public EclipseVersion createEclipseVersion() { EclipseVersionImpl eclipseVersion = new EclipseVersionImpl(); @@ -185,10 +265,10 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory * <!-- end-user-doc --> * @generated */ - public DirectorCall createDirectorCall() + public P2Task createP2Task() { - DirectorCallImpl directorCall = new DirectorCallImpl(); - return directorCall; + P2TaskImpl p2Task = new P2TaskImpl(); + return p2Task; } /** @@ -218,10 +298,10 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory * <!-- end-user-doc --> * @generated */ - public ApiBaseline createApiBaseline() + public Setup createSetup() { - ApiBaselineImpl apiBaseline = new ApiBaselineImpl(); - return apiBaseline; + SetupImpl setup = new SetupImpl(); + return setup; } /** @@ -229,10 +309,10 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory * <!-- end-user-doc --> * @generated */ - public GitClone createGitClone() + public WorkingSetTask createWorkingSetTask() { - GitCloneImpl gitClone = new GitCloneImpl(); - return gitClone; + WorkingSetTaskImpl workingSetTask = new WorkingSetTaskImpl(); + return workingSetTask; } /** @@ -240,10 +320,43 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory * <!-- end-user-doc --> * @generated */ - public Setup createSetup() + public ResourceCopyTask createResourceCopyTask() { - SetupImpl setup = new SetupImpl(); - return setup; + ResourceCopyTaskImpl resourceCopyTask = new ResourceCopyTaskImpl(); + return resourceCopyTask; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TextModifyTask createTextModifyTask() + { + TextModifyTaskImpl textModifyTask = new TextModifyTaskImpl(); + return textModifyTask; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TextModification createTextModification() + { + TextModificationImpl textModification = new TextModificationImpl(); + return textModification; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EclipseIniTask createEclipseIniTask() + { + EclipseIniTaskImpl eclipseIniTask = new EclipseIniTaskImpl(); + return eclipseIniTask; } /** @@ -251,10 +364,13 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory * <!-- end-user-doc --> * @generated */ - public ToolPreference createToolPreference() + public SetupTaskScope createSetupTaskScopeFromString(EDataType eDataType, String initialValue) { - ToolPreferenceImpl toolPreference = new ToolPreferenceImpl(); - return toolPreference; + SetupTaskScope result = SetupTaskScope.get(initialValue); + if (result == null) + throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + + eDataType.getName() + "'"); + return result; } /** @@ -262,10 +378,66 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory * <!-- end-user-doc --> * @generated */ - public LinkLocation createLinkLocation() + public String convertSetupTaskScopeToString(EDataType eDataType, Object instanceValue) { - LinkLocationImpl linkLocation = new LinkLocationImpl(); - return linkLocation; + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Trigger createTriggerFromString(EDataType eDataType, String initialValue) + { + Trigger result = Trigger.get(initialValue); + if (result == null) + throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + + eDataType.getName() + "'"); + return result; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String convertTriggerToString(EDataType eDataType, Object instanceValue) + { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CompoundSetupTask createCompoundSetupTask() + { + CompoundSetupTaskImpl compoundSetupTask = new CompoundSetupTaskImpl(); + return compoundSetupTask; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public BuckminsterImportTask createBuckminsterImportTask() + { + BuckminsterImportTaskImpl buckminsterImportTask = new BuckminsterImportTaskImpl(); + return buckminsterImportTask; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public StringVariableTask createStringVariableTask() + { + StringVariableTaskImpl stringVariableTask = new StringVariableTaskImpl(); + return stringVariableTask; } /** @@ -284,6 +456,28 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory * <!-- end-user-doc --> * @generated */ + public LinkLocationTask createLinkLocationTask() + { + LinkLocationTaskImpl linkLocationTask = new LinkLocationTaskImpl(); + return linkLocationTask; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EclipsePreferenceTask createEclipsePreferenceTask() + { + EclipsePreferenceTaskImpl eclipsePreferenceTask = new EclipsePreferenceTaskImpl(); + return eclipsePreferenceTask; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ public URI createURIFromString(EDataType eDataType, String initialValue) { return (URI)super.createFromString(eDataType, initialValue); @@ -304,6 +498,64 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory * <!-- end-user-doc --> * @generated */ + public Exception createExceptionFromString(EDataType eDataType, String initialValue) + { + return (Exception)super.createFromString(eDataType, initialValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String convertExceptionToString(EDataType eDataType, Object instanceValue) + { + return super.convertToString(eDataType, instanceValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public Set<Trigger> createTriggerSetFromString(EDataType eDataType, String initialValue) + { + if (initialValue == null) + { + return null; + } + + Set<Trigger> result = new HashSet<Trigger>(); + for (String value : split(initialValue)) + { + result.add(Trigger.get(value)); + } + + return Trigger.intern(result); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public String convertTriggerSetToString(EDataType eDataType, Object instanceValue) + { + if (instanceValue == null) + { + return null; + } + + @SuppressWarnings("unchecked") + Set<Trigger> triggerSet = (Set<Trigger>)instanceValue; + return Trigger.LITERALS.get(triggerSet); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ public SetupPackage getSetupPackage() { return (SetupPackage)getEPackage(); diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupImpl.java index c61306de5d..b4bb261357 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupImpl.java @@ -10,23 +10,24 @@ */ package org.eclipse.emf.cdo.releng.setup.impl; -import java.util.Collection; import org.eclipse.emf.cdo.releng.setup.Branch; +import org.eclipse.emf.cdo.releng.setup.ConfigurableItem; import org.eclipse.emf.cdo.releng.setup.EclipseVersion; -import org.eclipse.emf.cdo.releng.setup.P2Repository; import org.eclipse.emf.cdo.releng.setup.Preferences; +import org.eclipse.emf.cdo.releng.setup.Project; import org.eclipse.emf.cdo.releng.setup.Setup; import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer; +import org.eclipse.emf.cdo.releng.setup.Trigger; import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.BasicEList; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; -import org.eclipse.emf.ecore.util.EObjectContainmentEList; -import org.eclipse.emf.ecore.util.InternalEList; /** * <!-- begin-user-doc --> @@ -38,7 +39,6 @@ import org.eclipse.emf.ecore.util.InternalEList; * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl#getBranch <em>Branch</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl#getEclipseVersion <em>Eclipse Version</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl#getPreferences <em>Preferences</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl#getUpdateLocations <em>Update Locations</em>}</li> * </ul> * </p> * @@ -67,7 +67,7 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup protected EclipseVersion eclipseVersion; /** - * The cached value of the '{@link #getPreferences() <em>Preferences</em>}' containment reference. + * The cached value of the '{@link #getPreferences() <em>Preferences</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getPreferences() @@ -77,16 +77,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup protected Preferences preferences; /** - * The cached value of the '{@link #getUpdateLocations() <em>Update Locations</em>}' containment reference list. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getUpdateLocations() - * @generated - * @ordered - */ - protected EList<P2Repository> updateLocations; - - /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -202,6 +192,17 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup */ public Preferences getPreferences() { + if (preferences != null && preferences.eIsProxy()) + { + InternalEObject oldPreferences = (InternalEObject)preferences; + preferences = (Preferences)eResolveProxy(oldPreferences); + if (preferences != oldPreferences) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, SetupPackage.SETUP__PREFERENCES, oldPreferences, + preferences)); + } + } return preferences; } @@ -210,20 +211,9 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup * <!-- end-user-doc --> * @generated */ - public NotificationChain basicSetPreferences(Preferences newPreferences, NotificationChain msgs) + public Preferences basicGetPreferences() { - Preferences oldPreferences = preferences; - preferences = newPreferences; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SetupPackage.SETUP__PREFERENCES, - oldPreferences, newPreferences); - if (msgs == null) - msgs = notification; - else - msgs.add(notification); - } - return msgs; + return preferences; } /** @@ -233,55 +223,59 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup */ public void setPreferences(Preferences newPreferences) { - if (newPreferences != preferences) - { - NotificationChain msgs = null; - if (preferences != null) - msgs = ((InternalEObject)preferences).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - - SetupPackage.SETUP__PREFERENCES, null, msgs); - if (newPreferences != null) - msgs = ((InternalEObject)newPreferences).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - - SetupPackage.SETUP__PREFERENCES, null, msgs); - msgs = basicSetPreferences(newPreferences, msgs); - if (msgs != null) - msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.SETUP__PREFERENCES, newPreferences, - newPreferences)); + Preferences oldPreferences = preferences; + preferences = newPreferences; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.SETUP__PREFERENCES, oldPreferences, + preferences)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @generated + * @generated NOT */ - public EList<P2Repository> getUpdateLocations() + public EList<SetupTask> getSetupTasks(boolean filterRestrictions, Trigger trigger) { - if (updateLocations == null) - { - updateLocations = new EObjectContainmentEList<P2Repository>(P2Repository.class, this, - SetupPackage.SETUP__UPDATE_LOCATIONS); - } - return updateLocations; + EList<SetupTask> setupTasks = new BasicEList<SetupTask>(); + + Preferences preferences = getPreferences(); + getSetupTasks(filterRestrictions, trigger, setupTasks, preferences); + + Branch branch = getBranch(); + getSetupTasks(filterRestrictions, trigger, setupTasks, branch); + + Project project = branch.getProject(); + getSetupTasks(filterRestrictions, trigger, setupTasks, project); + + EclipseVersion eclipseVersion = getEclipseVersion(); + getSetupTasks(filterRestrictions, trigger, setupTasks, eclipseVersion); + + return setupTasks; } - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + private void getSetupTasks(boolean filterRestrictions, Trigger trigger, EList<SetupTask> setupTasks, + SetupTaskContainer setupTaskContainer) { - switch (featureID) + Branch branch = getBranch(); + Project project = branch.getProject(); + + for (SetupTask setupTask : setupTaskContainer.getSetupTasks()) { - case SetupPackage.SETUP__PREFERENCES: - return basicSetPreferences(null, msgs); - case SetupPackage.SETUP__UPDATE_LOCATIONS: - return ((InternalEList<?>)getUpdateLocations()).basicRemove(otherEnd, msgs); + if (setupTask.getTriggers().contains(trigger)) + { + EList<ConfigurableItem> restrictions = setupTask.getRestrictions(); + if (!restrictions.isEmpty()) + { + if (!restrictions.contains(branch) && !restrictions.contains(project)) + { + continue; + } + } + + setupTasks.add(setupTask); + } } - return super.eInverseRemove(otherEnd, featureID, msgs); } /** @@ -303,9 +297,9 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup return getEclipseVersion(); return basicGetEclipseVersion(); case SetupPackage.SETUP__PREFERENCES: - return getPreferences(); - case SetupPackage.SETUP__UPDATE_LOCATIONS: - return getUpdateLocations(); + if (resolve) + return getPreferences(); + return basicGetPreferences(); } return super.eGet(featureID, resolve, coreType); } @@ -315,7 +309,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup * <!-- end-user-doc --> * @generated */ - @SuppressWarnings("unchecked") @Override public void eSet(int featureID, Object newValue) { @@ -330,10 +323,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup case SetupPackage.SETUP__PREFERENCES: setPreferences((Preferences)newValue); return; - case SetupPackage.SETUP__UPDATE_LOCATIONS: - getUpdateLocations().clear(); - getUpdateLocations().addAll((Collection<? extends P2Repository>)newValue); - return; } super.eSet(featureID, newValue); } @@ -357,9 +346,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup case SetupPackage.SETUP__PREFERENCES: setPreferences((Preferences)null); return; - case SetupPackage.SETUP__UPDATE_LOCATIONS: - getUpdateLocations().clear(); - return; } super.eUnset(featureID); } @@ -380,8 +366,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup return eclipseVersion != null; case SetupPackage.SETUP__PREFERENCES: return preferences != null; - case SetupPackage.SETUP__UPDATE_LOCATIONS: - return updateLocations != null && !updateLocations.isEmpty(); } return super.eIsSet(featureID); } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupPackageImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupPackageImpl.java index d08b90ff97..4305ebc213 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupPackageImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupPackageImpl.java @@ -10,31 +10,48 @@ */ package org.eclipse.emf.cdo.releng.setup.impl; -import org.eclipse.emf.cdo.releng.setup.ApiBaseline; +import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask; import org.eclipse.emf.cdo.releng.setup.Branch; +import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask; +import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask; +import org.eclipse.emf.cdo.releng.setup.ConfigurableItem; import org.eclipse.emf.cdo.releng.setup.Configuration; -import org.eclipse.emf.cdo.releng.setup.DirectorCall; +import org.eclipse.emf.cdo.releng.setup.EclipseIniTask; +import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask; import org.eclipse.emf.cdo.releng.setup.EclipseVersion; -import org.eclipse.emf.cdo.releng.setup.GitClone; +import org.eclipse.emf.cdo.releng.setup.GitCloneTask; import org.eclipse.emf.cdo.releng.setup.InstallableUnit; -import org.eclipse.emf.cdo.releng.setup.LinkLocation; +import org.eclipse.emf.cdo.releng.setup.LinkLocationTask; +import org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask; import org.eclipse.emf.cdo.releng.setup.P2Repository; +import org.eclipse.emf.cdo.releng.setup.P2Task; import org.eclipse.emf.cdo.releng.setup.Preferences; import org.eclipse.emf.cdo.releng.setup.Project; +import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask; import org.eclipse.emf.cdo.releng.setup.Setup; import org.eclipse.emf.cdo.releng.setup.SetupFactory; import org.eclipse.emf.cdo.releng.setup.SetupPackage; -import org.eclipse.emf.cdo.releng.setup.ToolInstallation; -import org.eclipse.emf.cdo.releng.setup.ToolPreference; +import org.eclipse.emf.cdo.releng.setup.SetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer; +import org.eclipse.emf.cdo.releng.setup.SetupTaskScope; +import org.eclipse.emf.cdo.releng.setup.StringVariableTask; +import org.eclipse.emf.cdo.releng.setup.TextModification; +import org.eclipse.emf.cdo.releng.setup.TextModifyTask; +import org.eclipse.emf.cdo.releng.setup.Trigger; +import org.eclipse.emf.cdo.releng.setup.WorkingSetTask; import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage; + import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EEnum; import org.eclipse.emf.ecore.EOperation; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.impl.EPackageImpl; +import java.util.Set; + /** * <!-- begin-user-doc --> * An implementation of the model <b>Package</b>. @@ -69,7 +86,14 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - private EClass toolInstallationEClass = null; + private EClass apiBaselineTaskEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass gitCloneTaskEClass = null; /** * <!-- begin-user-doc --> @@ -83,7 +107,14 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - private EClass directorCallEClass = null; + private EClass p2TaskEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass stringVariableTaskEClass = null; /** * <!-- begin-user-doc --> @@ -104,35 +135,91 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - private EClass apiBaselineEClass = null; + private EClass setupEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - private EClass gitCloneEClass = null; + private EClass setupTaskEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - private EClass setupEClass = null; + private EClass workingSetTaskEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass resourceCopyTaskEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass textModifyTaskEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass textModificationEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass eclipseIniTaskEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EEnum setupTaskScopeEEnum = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EEnum triggerEEnum = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass compoundSetupTaskEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass oneTimeSetupTaskEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - private EClass toolPreferenceEClass = null; + private EClass configurableItemEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - private EClass linkLocationEClass = null; + private EClass buckminsterImportTaskEClass = null; /** * <!-- begin-user-doc --> @@ -146,9 +233,44 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ + private EClass linkLocationTaskEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass setupTaskContainerEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass eclipsePreferenceTaskEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ private EDataType uriEDataType = null; /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EDataType exceptionEDataType = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EDataType triggerSetEDataType = null; + + /** * Creates an instance of the model <b>Package</b>, registered with * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package * package URI value. @@ -157,7 +279,7 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * initialization of the package, or returns the registered package, * if one already exists. * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * <!-- end-user-doc --> * @see org.eclipse.emf.ecore.EPackage.Registry * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#eNS_URI * @see #init() @@ -287,12 +409,12 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage /** * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * <!-- end-user-doc --> * @generated */ - public EReference getProject_ApiBaselines() + public EClass getBranch() { - return (EReference)projectEClass.getEStructuralFeatures().get(3); + return branchEClass; } /** @@ -300,19 +422,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getProject_WorkingSetGroup() - { - return (EReference)projectEClass.getEStructuralFeatures().get(4); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public EClass getBranch() + public EReference getBranch_Project() { - return branchEClass; + return (EReference)branchEClass.getEStructuralFeatures().get(0); } /** @@ -320,9 +432,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getBranch_Project() + public EAttribute getBranch_Name() { - return (EReference)branchEClass.getEStructuralFeatures().get(0); + return (EAttribute)branchEClass.getEStructuralFeatures().get(1); } /** @@ -330,9 +442,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getBranch_Name() + public EClass getApiBaselineTask() { - return (EAttribute)branchEClass.getEStructuralFeatures().get(1); + return apiBaselineTaskEClass; } /** @@ -340,9 +452,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getBranch_GitClones() + public EAttribute getApiBaselineTask_Version() { - return (EReference)branchEClass.getEStructuralFeatures().get(2); + return (EAttribute)apiBaselineTaskEClass.getEStructuralFeatures().get(0); } /** @@ -350,9 +462,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getBranch_ApiBaseline() + public EAttribute getApiBaselineTask_ZipLocation() { - return (EReference)branchEClass.getEStructuralFeatures().get(3); + return (EAttribute)apiBaselineTaskEClass.getEStructuralFeatures().get(1); } /** @@ -360,9 +472,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getBranch_MspecFilePath() + public EClass getGitCloneTask() { - return (EAttribute)branchEClass.getEStructuralFeatures().get(4); + return gitCloneTaskEClass; } /** @@ -370,9 +482,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getBranch_CloneVariableName() + public EAttribute getGitCloneTask_Name() { - return (EAttribute)branchEClass.getEStructuralFeatures().get(5); + return (EAttribute)gitCloneTaskEClass.getEStructuralFeatures().get(0); } /** @@ -380,9 +492,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EClass getToolInstallation() + public EAttribute getGitCloneTask_RemoteName() { - return toolInstallationEClass; + return (EAttribute)gitCloneTaskEClass.getEStructuralFeatures().get(1); } /** @@ -390,9 +502,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getToolInstallation_DirectorCalls() + public EAttribute getGitCloneTask_RemoteURI() { - return (EReference)toolInstallationEClass.getEStructuralFeatures().get(0); + return (EAttribute)gitCloneTaskEClass.getEStructuralFeatures().get(2); } /** @@ -400,9 +512,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getToolInstallation_ToolPreferences() + public EAttribute getGitCloneTask_CheckoutBranch() { - return (EReference)toolInstallationEClass.getEStructuralFeatures().get(1); + return (EAttribute)gitCloneTaskEClass.getEStructuralFeatures().get(3); } /** @@ -440,9 +552,19 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getEclipseVersion_DirectorCall() + public EClass getP2Task() + { + return p2TaskEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getP2Task_InstallableUnits() { - return (EReference)eclipseVersionEClass.getEStructuralFeatures().get(2); + return (EReference)p2TaskEClass.getEStructuralFeatures().get(1); } /** @@ -450,9 +572,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EClass getDirectorCall() + public EReference getP2Task_P2Repositories() { - return directorCallEClass; + return (EReference)p2TaskEClass.getEStructuralFeatures().get(0); } /** @@ -460,9 +582,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getDirectorCall_InstallableUnits() + public EClass getStringVariableTask() { - return (EReference)directorCallEClass.getEStructuralFeatures().get(0); + return stringVariableTaskEClass; } /** @@ -470,9 +592,29 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getDirectorCall_P2Repositories() + public EAttribute getStringVariableTask_Name() { - return (EReference)directorCallEClass.getEStructuralFeatures().get(1); + return (EAttribute)stringVariableTaskEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getStringVariableTask_Value() + { + return (EAttribute)stringVariableTaskEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getStringVariableTask_Description() + { + return (EAttribute)stringVariableTaskEClass.getEStructuralFeatures().get(2); } /** @@ -490,7 +632,7 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getInstallableUnit_DirectorCall() + public EReference getInstallableUnit_P2Task() { return (EReference)installableUnitEClass.getEStructuralFeatures().get(0); } @@ -520,7 +662,7 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getP2Repository_DirectorCall() + public EReference getP2Repository_P2Task() { return (EReference)p2RepositoryEClass.getEStructuralFeatures().get(0); } @@ -540,9 +682,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EClass getApiBaseline() + public EClass getSetup() { - return apiBaselineEClass; + return setupEClass; } /** @@ -550,9 +692,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getApiBaseline_Project() + public EReference getSetup_Branch() { - return (EReference)apiBaselineEClass.getEStructuralFeatures().get(0); + return (EReference)setupEClass.getEStructuralFeatures().get(0); } /** @@ -560,9 +702,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getApiBaseline_Version() + public EReference getSetup_EclipseVersion() { - return (EAttribute)apiBaselineEClass.getEStructuralFeatures().get(1); + return (EReference)setupEClass.getEStructuralFeatures().get(1); } /** @@ -570,9 +712,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getApiBaseline_ZipLocation() + public EReference getSetup_Preferences() { - return (EAttribute)apiBaselineEClass.getEStructuralFeatures().get(2); + return (EReference)setupEClass.getEStructuralFeatures().get(2); } /** @@ -580,9 +722,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EClass getGitClone() + public EClass getSetupTask() { - return gitCloneEClass; + return setupTaskEClass; } /** @@ -590,9 +732,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getGitClone_Branch() + public EReference getSetupTask_Requirements() { - return (EReference)gitCloneEClass.getEStructuralFeatures().get(0); + return (EReference)setupTaskEClass.getEStructuralFeatures().get(0); } /** @@ -600,9 +742,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getGitClone_Name() + public EReference getSetupTask_Restrictions() { - return (EAttribute)gitCloneEClass.getEStructuralFeatures().get(1); + return (EReference)setupTaskEClass.getEStructuralFeatures().get(1); } /** @@ -610,9 +752,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getGitClone_RemoteURI() + public EAttribute getSetupTask_Scope() { - return (EAttribute)gitCloneEClass.getEStructuralFeatures().get(2); + return (EAttribute)setupTaskEClass.getEStructuralFeatures().get(2); } /** @@ -620,9 +762,19 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getGitClone_CheckoutBranch() + public EAttribute getSetupTask_ExcludedTriggers() + { + return (EAttribute)setupTaskEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getWorkingSetTask() { - return (EAttribute)gitCloneEClass.getEStructuralFeatures().get(3); + return workingSetTaskEClass; } /** @@ -630,9 +782,109 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EClass getSetup() + public EReference getWorkingSetTask_WorkingSets() { - return setupEClass; + return (EReference)workingSetTaskEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getResourceCopyTask() + { + return resourceCopyTaskEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getResourceCopyTask_SourceURL() + { + return (EAttribute)resourceCopyTaskEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getResourceCopyTask_TargetURL() + { + return (EAttribute)resourceCopyTaskEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getTextModifyTask() + { + return textModifyTaskEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getTextModifyTask_Url() + { + return (EAttribute)textModifyTaskEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getTextModifyTask_Modifications() + { + return (EReference)textModifyTaskEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getTextModification() + { + return textModificationEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getTextModification_Pattern() + { + return (EAttribute)textModificationEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getTextModification_Substitutions() + { + return (EAttribute)textModificationEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getEclipseIniTask() + { + return eclipseIniTaskEClass; } /** @@ -640,9 +892,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getSetup_Branch() + public EAttribute getEclipseIniTask_Option() { - return (EReference)setupEClass.getEStructuralFeatures().get(0); + return (EAttribute)eclipseIniTaskEClass.getEStructuralFeatures().get(0); } /** @@ -650,9 +902,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getSetup_EclipseVersion() + public EAttribute getEclipseIniTask_Value() { - return (EReference)setupEClass.getEStructuralFeatures().get(1); + return (EAttribute)eclipseIniTaskEClass.getEStructuralFeatures().get(1); } /** @@ -660,9 +912,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getSetup_Preferences() + public EAttribute getEclipseIniTask_Vm() { - return (EReference)setupEClass.getEStructuralFeatures().get(2); + return (EAttribute)eclipseIniTaskEClass.getEStructuralFeatures().get(2); } /** @@ -670,9 +922,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getSetup_UpdateLocations() + public EEnum getSetupTaskScope() { - return (EReference)setupEClass.getEStructuralFeatures().get(3); + return setupTaskScopeEEnum; } /** @@ -680,9 +932,19 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EClass getToolPreference() + public EEnum getTrigger() { - return toolPreferenceEClass; + return triggerEEnum; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getCompoundSetupTask() + { + return compoundSetupTaskEClass; } /** @@ -690,9 +952,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getToolPreference_Key() + public EAttribute getCompoundSetupTask_Name() { - return (EAttribute)toolPreferenceEClass.getEStructuralFeatures().get(0); + return (EAttribute)compoundSetupTaskEClass.getEStructuralFeatures().get(0); } /** @@ -700,9 +962,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getToolPreference_Value() + public EClass getOneTimeSetupTask() { - return (EAttribute)toolPreferenceEClass.getEStructuralFeatures().get(1); + return oneTimeSetupTaskEClass; } /** @@ -710,9 +972,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EClass getLinkLocation() + public EAttribute getOneTimeSetupTask_Id() { - return linkLocationEClass; + return (EAttribute)oneTimeSetupTaskEClass.getEStructuralFeatures().get(0); } /** @@ -720,9 +982,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getLinkLocation_Path() + public EClass getConfigurableItem() { - return (EAttribute)linkLocationEClass.getEStructuralFeatures().get(0); + return configurableItemEClass; } /** @@ -730,9 +992,39 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getLinkLocation_Name() + public EClass getBuckminsterImportTask() { - return (EAttribute)linkLocationEClass.getEStructuralFeatures().get(1); + return buckminsterImportTaskEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getBuckminsterImportTask_Mspec() + { + return (EAttribute)buckminsterImportTaskEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getBuckminsterImportTask_TargetPlatform() + { + return (EAttribute)buckminsterImportTaskEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getBuckminsterImportTask_BundlePool() + { + return (EAttribute)buckminsterImportTaskEClass.getEStructuralFeatures().get(2); } /** @@ -780,9 +1072,79 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getPreferences_LinkLocations() + public EClass getLinkLocationTask() + { + return linkLocationTaskEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getLinkLocationTask_Path() + { + return (EAttribute)linkLocationTaskEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getLinkLocationTask_Name() + { + return (EAttribute)linkLocationTaskEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getSetupTaskContainer() + { + return setupTaskContainerEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getSetupTaskContainer_SetupTasks() + { + return (EReference)setupTaskContainerEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getEclipsePreferenceTask() + { + return eclipsePreferenceTaskEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getEclipsePreferenceTask_Key() { - return (EReference)preferencesEClass.getEStructuralFeatures().get(3); + return (EAttribute)eclipsePreferenceTaskEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getEclipsePreferenceTask_Value() + { + return (EAttribute)eclipsePreferenceTaskEClass.getEStructuralFeatures().get(1); } /** @@ -800,6 +1162,26 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ + public EDataType getException() + { + return exceptionEDataType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EDataType getTriggerSet() + { + return triggerSetEDataType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ public SetupFactory getSetupFactory() { return (SetupFactory)getEFactoryInstance(); @@ -826,79 +1208,118 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage isCreated = true; // Create classes and their features - preferencesEClass = createEClass(PREFERENCES); - createEAttribute(preferencesEClass, PREFERENCES__USER_NAME); - createEAttribute(preferencesEClass, PREFERENCES__INSTALL_FOLDER); - createEAttribute(preferencesEClass, PREFERENCES__GIT_PREFIX); - createEReference(preferencesEClass, PREFERENCES__LINK_LOCATIONS); - - linkLocationEClass = createEClass(LINK_LOCATION); - createEAttribute(linkLocationEClass, LINK_LOCATION__PATH); - createEAttribute(linkLocationEClass, LINK_LOCATION__NAME); - - toolInstallationEClass = createEClass(TOOL_INSTALLATION); - createEReference(toolInstallationEClass, TOOL_INSTALLATION__DIRECTOR_CALLS); - createEReference(toolInstallationEClass, TOOL_INSTALLATION__TOOL_PREFERENCES); - - toolPreferenceEClass = createEClass(TOOL_PREFERENCE); - createEAttribute(toolPreferenceEClass, TOOL_PREFERENCE__KEY); - createEAttribute(toolPreferenceEClass, TOOL_PREFERENCE__VALUE); - eclipseVersionEClass = createEClass(ECLIPSE_VERSION); createEReference(eclipseVersionEClass, ECLIPSE_VERSION__CONFIGURATION); createEAttribute(eclipseVersionEClass, ECLIPSE_VERSION__VERSION); - createEReference(eclipseVersionEClass, ECLIPSE_VERSION__DIRECTOR_CALL); - - directorCallEClass = createEClass(DIRECTOR_CALL); - createEReference(directorCallEClass, DIRECTOR_CALL__INSTALLABLE_UNITS); - createEReference(directorCallEClass, DIRECTOR_CALL__P2_REPOSITORIES); - - installableUnitEClass = createEClass(INSTALLABLE_UNIT); - createEReference(installableUnitEClass, INSTALLABLE_UNIT__DIRECTOR_CALL); - createEAttribute(installableUnitEClass, INSTALLABLE_UNIT__ID); - - p2RepositoryEClass = createEClass(P2_REPOSITORY); - createEReference(p2RepositoryEClass, P2_REPOSITORY__DIRECTOR_CALL); - createEAttribute(p2RepositoryEClass, P2_REPOSITORY__URL); configurationEClass = createEClass(CONFIGURATION); createEReference(configurationEClass, CONFIGURATION__PROJECTS); createEReference(configurationEClass, CONFIGURATION__ECLIPSE_VERSIONS); + configurableItemEClass = createEClass(CONFIGURABLE_ITEM); + projectEClass = createEClass(PROJECT); createEReference(projectEClass, PROJECT__CONFIGURATION); createEReference(projectEClass, PROJECT__BRANCHES); createEAttribute(projectEClass, PROJECT__NAME); - createEReference(projectEClass, PROJECT__API_BASELINES); - createEReference(projectEClass, PROJECT__WORKING_SET_GROUP); branchEClass = createEClass(BRANCH); createEReference(branchEClass, BRANCH__PROJECT); createEAttribute(branchEClass, BRANCH__NAME); - createEReference(branchEClass, BRANCH__GIT_CLONES); - createEReference(branchEClass, BRANCH__API_BASELINE); - createEAttribute(branchEClass, BRANCH__MSPEC_FILE_PATH); - createEAttribute(branchEClass, BRANCH__CLONE_VARIABLE_NAME); - - apiBaselineEClass = createEClass(API_BASELINE); - createEReference(apiBaselineEClass, API_BASELINE__PROJECT); - createEAttribute(apiBaselineEClass, API_BASELINE__VERSION); - createEAttribute(apiBaselineEClass, API_BASELINE__ZIP_LOCATION); - - gitCloneEClass = createEClass(GIT_CLONE); - createEReference(gitCloneEClass, GIT_CLONE__BRANCH); - createEAttribute(gitCloneEClass, GIT_CLONE__NAME); - createEAttribute(gitCloneEClass, GIT_CLONE__REMOTE_URI); - createEAttribute(gitCloneEClass, GIT_CLONE__CHECKOUT_BRANCH); + + preferencesEClass = createEClass(PREFERENCES); + createEAttribute(preferencesEClass, PREFERENCES__USER_NAME); + createEAttribute(preferencesEClass, PREFERENCES__INSTALL_FOLDER); + createEAttribute(preferencesEClass, PREFERENCES__GIT_PREFIX); setupEClass = createEClass(SETUP); createEReference(setupEClass, SETUP__BRANCH); createEReference(setupEClass, SETUP__ECLIPSE_VERSION); createEReference(setupEClass, SETUP__PREFERENCES); - createEReference(setupEClass, SETUP__UPDATE_LOCATIONS); + + setupTaskEClass = createEClass(SETUP_TASK); + createEReference(setupTaskEClass, SETUP_TASK__REQUIREMENTS); + createEReference(setupTaskEClass, SETUP_TASK__RESTRICTIONS); + createEAttribute(setupTaskEClass, SETUP_TASK__SCOPE); + createEAttribute(setupTaskEClass, SETUP_TASK__EXCLUDED_TRIGGERS); + + setupTaskContainerEClass = createEClass(SETUP_TASK_CONTAINER); + createEReference(setupTaskContainerEClass, SETUP_TASK_CONTAINER__SETUP_TASKS); + + compoundSetupTaskEClass = createEClass(COMPOUND_SETUP_TASK); + createEAttribute(compoundSetupTaskEClass, COMPOUND_SETUP_TASK__NAME); + + oneTimeSetupTaskEClass = createEClass(ONE_TIME_SETUP_TASK); + createEAttribute(oneTimeSetupTaskEClass, ONE_TIME_SETUP_TASK__ID); + + eclipseIniTaskEClass = createEClass(ECLIPSE_INI_TASK); + createEAttribute(eclipseIniTaskEClass, ECLIPSE_INI_TASK__OPTION); + createEAttribute(eclipseIniTaskEClass, ECLIPSE_INI_TASK__VALUE); + createEAttribute(eclipseIniTaskEClass, ECLIPSE_INI_TASK__VM); + + linkLocationTaskEClass = createEClass(LINK_LOCATION_TASK); + createEAttribute(linkLocationTaskEClass, LINK_LOCATION_TASK__PATH); + createEAttribute(linkLocationTaskEClass, LINK_LOCATION_TASK__NAME); + + p2TaskEClass = createEClass(P2_TASK); + createEReference(p2TaskEClass, P2_TASK__P2_REPOSITORIES); + createEReference(p2TaskEClass, P2_TASK__INSTALLABLE_UNITS); + + installableUnitEClass = createEClass(INSTALLABLE_UNIT); + createEReference(installableUnitEClass, INSTALLABLE_UNIT__P2_TASK); + createEAttribute(installableUnitEClass, INSTALLABLE_UNIT__ID); + + p2RepositoryEClass = createEClass(P2_REPOSITORY); + createEReference(p2RepositoryEClass, P2_REPOSITORY__P2_TASK); + createEAttribute(p2RepositoryEClass, P2_REPOSITORY__URL); + + buckminsterImportTaskEClass = createEClass(BUCKMINSTER_IMPORT_TASK); + createEAttribute(buckminsterImportTaskEClass, BUCKMINSTER_IMPORT_TASK__MSPEC); + createEAttribute(buckminsterImportTaskEClass, BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM); + createEAttribute(buckminsterImportTaskEClass, BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL); + + apiBaselineTaskEClass = createEClass(API_BASELINE_TASK); + createEAttribute(apiBaselineTaskEClass, API_BASELINE_TASK__VERSION); + createEAttribute(apiBaselineTaskEClass, API_BASELINE_TASK__ZIP_LOCATION); + + gitCloneTaskEClass = createEClass(GIT_CLONE_TASK); + createEAttribute(gitCloneTaskEClass, GIT_CLONE_TASK__NAME); + createEAttribute(gitCloneTaskEClass, GIT_CLONE_TASK__REMOTE_NAME); + createEAttribute(gitCloneTaskEClass, GIT_CLONE_TASK__REMOTE_URI); + createEAttribute(gitCloneTaskEClass, GIT_CLONE_TASK__CHECKOUT_BRANCH); + + eclipsePreferenceTaskEClass = createEClass(ECLIPSE_PREFERENCE_TASK); + createEAttribute(eclipsePreferenceTaskEClass, ECLIPSE_PREFERENCE_TASK__KEY); + createEAttribute(eclipsePreferenceTaskEClass, ECLIPSE_PREFERENCE_TASK__VALUE); + + stringVariableTaskEClass = createEClass(STRING_VARIABLE_TASK); + createEAttribute(stringVariableTaskEClass, STRING_VARIABLE_TASK__NAME); + createEAttribute(stringVariableTaskEClass, STRING_VARIABLE_TASK__VALUE); + createEAttribute(stringVariableTaskEClass, STRING_VARIABLE_TASK__DESCRIPTION); + + workingSetTaskEClass = createEClass(WORKING_SET_TASK); + createEReference(workingSetTaskEClass, WORKING_SET_TASK__WORKING_SETS); + + resourceCopyTaskEClass = createEClass(RESOURCE_COPY_TASK); + createEAttribute(resourceCopyTaskEClass, RESOURCE_COPY_TASK__SOURCE_URL); + createEAttribute(resourceCopyTaskEClass, RESOURCE_COPY_TASK__TARGET_URL); + + textModifyTaskEClass = createEClass(TEXT_MODIFY_TASK); + createEAttribute(textModifyTaskEClass, TEXT_MODIFY_TASK__URL); + createEReference(textModifyTaskEClass, TEXT_MODIFY_TASK__MODIFICATIONS); + + textModificationEClass = createEClass(TEXT_MODIFICATION); + createEAttribute(textModificationEClass, TEXT_MODIFICATION__PATTERN); + createEAttribute(textModificationEClass, TEXT_MODIFICATION__SUBSTITUTIONS); + + // Create enums + setupTaskScopeEEnum = createEEnum(SETUP_TASK_SCOPE); + triggerEEnum = createEEnum(TRIGGER); // Create data types uriEDataType = createEDataType(URI); + exceptionEDataType = createEDataType(EXCEPTION); + triggerSetEDataType = createEDataType(TRIGGER_SET); } /** @@ -935,11 +1356,65 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage // Set bounds for type parameters // Add supertypes to classes - preferencesEClass.getESuperTypes().add(this.getToolInstallation()); - projectEClass.getESuperTypes().add(this.getToolInstallation()); - branchEClass.getESuperTypes().add(this.getToolInstallation()); + eclipseVersionEClass.getESuperTypes().add(this.getConfigurableItem()); + configurableItemEClass.getESuperTypes().add(this.getSetupTaskContainer()); + projectEClass.getESuperTypes().add(this.getConfigurableItem()); + branchEClass.getESuperTypes().add(this.getConfigurableItem()); + preferencesEClass.getESuperTypes().add(this.getSetupTaskContainer()); + compoundSetupTaskEClass.getESuperTypes().add(this.getSetupTask()); + compoundSetupTaskEClass.getESuperTypes().add(this.getSetupTaskContainer()); + oneTimeSetupTaskEClass.getESuperTypes().add(this.getSetupTask()); + eclipseIniTaskEClass.getESuperTypes().add(this.getSetupTask()); + linkLocationTaskEClass.getESuperTypes().add(this.getSetupTask()); + p2TaskEClass.getESuperTypes().add(this.getSetupTask()); + buckminsterImportTaskEClass.getESuperTypes().add(this.getSetupTask()); + apiBaselineTaskEClass.getESuperTypes().add(this.getSetupTask()); + gitCloneTaskEClass.getESuperTypes().add(this.getSetupTask()); + eclipsePreferenceTaskEClass.getESuperTypes().add(this.getSetupTask()); + stringVariableTaskEClass.getESuperTypes().add(this.getSetupTask()); + workingSetTaskEClass.getESuperTypes().add(this.getSetupTask()); + resourceCopyTaskEClass.getESuperTypes().add(this.getSetupTask()); + textModifyTaskEClass.getESuperTypes().add(this.getSetupTask()); // Initialize classes and features; add operations and parameters + initEClass(eclipseVersionEClass, EclipseVersion.class, "EclipseVersion", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEReference(getEclipseVersion_Configuration(), this.getConfiguration(), this.getConfiguration_EclipseVersions(), + "configuration", null, 0, 1, EclipseVersion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, + IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getEclipseVersion_Version(), ecorePackage.getEString(), "version", null, 0, 1, EclipseVersion.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(configurationEClass, Configuration.class, "Configuration", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEReference(getConfiguration_Projects(), this.getProject(), this.getProject_Configuration(), "projects", null, + 1, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getConfiguration_EclipseVersions(), this.getEclipseVersion(), + this.getEclipseVersion_Configuration(), "eclipseVersions", null, 1, -1, Configuration.class, !IS_TRANSIENT, + !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, + IS_ORDERED); + + initEClass(configurableItemEClass, ConfigurableItem.class, "ConfigurableItem", IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + + initEClass(projectEClass, Project.class, "Project", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getProject_Configuration(), this.getConfiguration(), this.getConfiguration_Projects(), + "configuration", null, 0, 1, Project.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, + IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getProject_Branches(), this.getBranch(), this.getBranch_Project(), "branches", null, 1, -1, + Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getProject_Name(), ecorePackage.getEString(), "name", null, 0, 1, Project.class, !IS_TRANSIENT, + !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(branchEClass, Branch.class, "Branch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getBranch_Project(), this.getProject(), this.getProject_Branches(), "project", null, 0, 1, + Branch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getBranch_Name(), ecorePackage.getEString(), "name", null, 0, 1, Branch.class, !IS_TRANSIENT, + !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(preferencesEClass, Preferences.class, "Preferences", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getPreferences_UserName(), ecorePackage.getEString(), "userName", null, 0, 1, Preferences.class, @@ -949,160 +1424,204 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage IS_ORDERED); initEAttribute(getPreferences_GitPrefix(), ecorePackage.getEString(), "gitPrefix", null, 0, 1, Preferences.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getPreferences_LinkLocations(), this.getLinkLocation(), null, "linkLocations", null, 0, -1, - Preferences.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, + + initEClass(setupEClass, Setup.class, "Setup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSetup_Branch(), this.getBranch(), null, "branch", null, 1, 1, Setup.class, !IS_TRANSIENT, + !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, + IS_ORDERED); + initEReference(getSetup_EclipseVersion(), this.getEclipseVersion(), null, "eclipseVersion", null, 1, 1, + Setup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getSetup_Preferences(), this.getPreferences(), null, "preferences", null, 1, 1, Setup.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + + EOperation op = addEOperation(setupEClass, this.getSetupTask(), "getSetupTasks", 0, -1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, ecorePackage.getEBoolean(), "filterRestrictions", 0, 1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getTrigger(), "trigger", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(setupTaskEClass, SetupTask.class, "SetupTask", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSetupTask_Requirements(), this.getSetupTask(), null, "requirements", null, 0, -1, + SetupTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getSetupTask_Restrictions(), this.getConfigurableItem(), null, "restrictions", null, 0, -1, + SetupTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getSetupTask_Scope(), this.getSetupTaskScope(), "scope", null, 0, 1, SetupTask.class, IS_TRANSIENT, + IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEAttribute(getSetupTask_ExcludedTriggers(), this.getTriggerSet(), "excludedTriggers", "", 1, 1, + SetupTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, + IS_ORDERED); + + op = addEOperation(setupTaskEClass, ecorePackage.getEBoolean(), "requires", 0, 1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getSetupTask(), "setupTask", 0, 1, IS_UNIQUE, IS_ORDERED); + + addEOperation(setupTaskEClass, this.getTriggerSet(), "getValidTriggers", 1, 1, IS_UNIQUE, IS_ORDERED); + + addEOperation(setupTaskEClass, this.getTriggerSet(), "getTriggers", 1, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(setupTaskContainerEClass, SetupTaskContainer.class, "SetupTaskContainer", IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEReference(getSetupTaskContainer_SetupTasks(), this.getSetupTask(), null, "setupTasks", null, 0, -1, + SetupTaskContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(linkLocationEClass, LinkLocation.class, "LinkLocation", !IS_ABSTRACT, !IS_INTERFACE, + initEClass(compoundSetupTaskEClass, CompoundSetupTask.class, "CompoundSetupTask", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getLinkLocation_Path(), ecorePackage.getEString(), "path", null, 0, 1, LinkLocation.class, - !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getLinkLocation_Name(), ecorePackage.getEString(), "name", null, 0, 1, LinkLocation.class, + initEAttribute(getCompoundSetupTask_Name(), ecorePackage.getEString(), "name", null, 0, 1, CompoundSetupTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(toolInstallationEClass, ToolInstallation.class, "ToolInstallation", IS_ABSTRACT, !IS_INTERFACE, + initEClass(oneTimeSetupTaskEClass, OneTimeSetupTask.class, "OneTimeSetupTask", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getToolInstallation_DirectorCalls(), this.getDirectorCall(), null, "directorCalls", null, 0, -1, - ToolInstallation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, - !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getToolInstallation_ToolPreferences(), this.getToolPreference(), null, "toolPreferences", null, 0, - -1, ToolInstallation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, - !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getOneTimeSetupTask_Id(), ecorePackage.getEString(), "id", null, 1, 1, OneTimeSetupTask.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(toolPreferenceEClass, ToolPreference.class, "ToolPreference", !IS_ABSTRACT, !IS_INTERFACE, + initEClass(eclipseIniTaskEClass, EclipseIniTask.class, "EclipseIniTask", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getToolPreference_Key(), ecorePackage.getEString(), "key", null, 0, 1, ToolPreference.class, + initEAttribute(getEclipseIniTask_Option(), ecorePackage.getEString(), "option", null, 0, 1, EclipseIniTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getToolPreference_Value(), ecorePackage.getEString(), "value", null, 0, 1, ToolPreference.class, + initEAttribute(getEclipseIniTask_Value(), ecorePackage.getEString(), "value", null, 0, 1, EclipseIniTask.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getEclipseIniTask_Vm(), ecorePackage.getEBoolean(), "vm", null, 0, 1, EclipseIniTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(eclipseVersionEClass, EclipseVersion.class, "EclipseVersion", !IS_ABSTRACT, !IS_INTERFACE, + initEClass(linkLocationTaskEClass, LinkLocationTask.class, "LinkLocationTask", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getEclipseVersion_Configuration(), this.getConfiguration(), this.getConfiguration_EclipseVersions(), - "configuration", null, 0, 1, EclipseVersion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, - !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getEclipseVersion_Version(), ecorePackage.getEString(), "version", null, 0, 1, EclipseVersion.class, + initEAttribute(getLinkLocationTask_Path(), ecorePackage.getEString(), "path", null, 0, 1, LinkLocationTask.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getLinkLocationTask_Name(), ecorePackage.getEString(), "name", null, 0, 1, LinkLocationTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getEclipseVersion_DirectorCall(), this.getDirectorCall(), null, "directorCall", null, 1, 1, - EclipseVersion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, - !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(directorCallEClass, DirectorCall.class, "DirectorCall", !IS_ABSTRACT, !IS_INTERFACE, - IS_GENERATED_INSTANCE_CLASS); - initEReference(getDirectorCall_InstallableUnits(), this.getInstallableUnit(), - this.getInstallableUnit_DirectorCall(), "installableUnits", null, 1, -1, DirectorCall.class, !IS_TRANSIENT, - !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, - IS_ORDERED); - initEReference(getDirectorCall_P2Repositories(), this.getP2Repository(), this.getP2Repository_DirectorCall(), - "p2Repositories", null, 1, -1, DirectorCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, - !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(p2TaskEClass, P2Task.class, "P2Task", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getP2Task_P2Repositories(), this.getP2Repository(), this.getP2Repository_P2Task(), "p2Repositories", + null, 1, -1, P2Task.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getP2Task_InstallableUnits(), this.getInstallableUnit(), this.getInstallableUnit_P2Task(), + "installableUnits", null, 1, -1, P2Task.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, + IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(installableUnitEClass, InstallableUnit.class, "InstallableUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getInstallableUnit_DirectorCall(), this.getDirectorCall(), this.getDirectorCall_InstallableUnits(), - "directorCall", null, 0, 1, InstallableUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, - !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getInstallableUnit_P2Task(), this.getP2Task(), this.getP2Task_InstallableUnits(), "p2Task", null, 0, + 1, InstallableUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getInstallableUnit_Id(), ecorePackage.getEString(), "id", null, 0, 1, InstallableUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(p2RepositoryEClass, P2Repository.class, "P2Repository", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getP2Repository_DirectorCall(), this.getDirectorCall(), this.getDirectorCall_P2Repositories(), - "directorCall", null, 0, 1, P2Repository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, - !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getP2Repository_P2Task(), this.getP2Task(), this.getP2Task_P2Repositories(), "p2Task", null, 0, 1, + P2Repository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getP2Repository_Url(), ecorePackage.getEString(), "url", null, 0, 1, P2Repository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(configurationEClass, Configuration.class, "Configuration", !IS_ABSTRACT, !IS_INTERFACE, - IS_GENERATED_INSTANCE_CLASS); - initEReference(getConfiguration_Projects(), this.getProject(), this.getProject_Configuration(), "projects", null, - 1, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, - !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getConfiguration_EclipseVersions(), this.getEclipseVersion(), - this.getEclipseVersion_Configuration(), "eclipseVersions", null, 1, -1, Configuration.class, !IS_TRANSIENT, - !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, - IS_ORDERED); - - initEClass(projectEClass, Project.class, "Project", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getProject_Configuration(), this.getConfiguration(), this.getConfiguration_Projects(), - "configuration", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, - !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getProject_Branches(), this.getBranch(), this.getBranch_Project(), "branches", null, 1, -1, - Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, - IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getProject_Name(), ecorePackage.getEString(), "name", null, 0, 1, Project.class, !IS_TRANSIENT, - !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getProject_ApiBaselines(), this.getApiBaseline(), this.getApiBaseline_Project(), "apiBaselines", - null, 0, -1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, - !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getProject_WorkingSetGroup(), theWorkingSetsPackage.getWorkingSetGroup(), null, "workingSetGroup", - null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, - !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(buckminsterImportTaskEClass, BuckminsterImportTask.class, "BuckminsterImportTask", !IS_ABSTRACT, + !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getBuckminsterImportTask_Mspec(), ecorePackage.getEString(), "mspec", null, 0, 1, + BuckminsterImportTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getBuckminsterImportTask_TargetPlatform(), ecorePackage.getEString(), "targetPlatform", null, 0, 1, + BuckminsterImportTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getBuckminsterImportTask_BundlePool(), ecorePackage.getEString(), "bundlePool", null, 0, 1, + BuckminsterImportTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); - initEClass(branchEClass, Branch.class, "Branch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getBranch_Project(), this.getProject(), this.getProject_Branches(), "project", null, 0, 1, - Branch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, - IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getBranch_Name(), ecorePackage.getEString(), "name", null, 0, 1, Branch.class, !IS_TRANSIENT, - !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getBranch_GitClones(), this.getGitClone(), this.getGitClone_Branch(), "gitClones", null, 1, -1, - Branch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, - IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getBranch_ApiBaseline(), this.getApiBaseline(), null, "apiBaseline", null, 0, 1, Branch.class, - !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, + initEClass(apiBaselineTaskEClass, ApiBaselineTask.class, "ApiBaselineTask", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getApiBaselineTask_Version(), ecorePackage.getEString(), "version", null, 0, 1, + ApiBaselineTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getApiBaselineTask_ZipLocation(), ecorePackage.getEString(), "zipLocation", null, 0, 1, + ApiBaselineTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getBranch_MspecFilePath(), ecorePackage.getEString(), "mspecFilePath", null, 0, 1, Branch.class, + + initEClass(gitCloneTaskEClass, GitCloneTask.class, "GitCloneTask", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getGitCloneTask_Name(), ecorePackage.getEString(), "name", null, 0, 1, GitCloneTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getBranch_CloneVariableName(), ecorePackage.getEString(), "cloneVariableName", null, 0, 1, - Branch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, + initEAttribute(getGitCloneTask_RemoteName(), ecorePackage.getEString(), "remoteName", "origin", 0, 1, + GitCloneTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, + IS_ORDERED); + initEAttribute(getGitCloneTask_RemoteURI(), ecorePackage.getEString(), "remoteURI", null, 0, 1, GitCloneTask.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getGitCloneTask_CheckoutBranch(), ecorePackage.getEString(), "checkoutBranch", null, 0, 1, + GitCloneTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - EOperation op = addEOperation(branchEClass, ecorePackage.getEBoolean(), "isInstalled", 0, 1, IS_UNIQUE, IS_ORDERED); - addEParameter(op, ecorePackage.getEString(), "installFolder", 0, 1, IS_UNIQUE, IS_ORDERED); + initEClass(eclipsePreferenceTaskEClass, EclipsePreferenceTask.class, "EclipsePreferenceTask", !IS_ABSTRACT, + !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getEclipsePreferenceTask_Key(), ecorePackage.getEString(), "key", null, 0, 1, + EclipsePreferenceTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getEclipsePreferenceTask_Value(), ecorePackage.getEString(), "value", null, 0, 1, + EclipsePreferenceTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); - op = addEOperation(branchEClass, this.getURI(), "getURI", 0, 1, IS_UNIQUE, IS_ORDERED); - addEParameter(op, ecorePackage.getEString(), "installFolder", 0, 1, IS_UNIQUE, IS_ORDERED); + initEClass(stringVariableTaskEClass, StringVariableTask.class, "StringVariableTask", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getStringVariableTask_Name(), ecorePackage.getEString(), "name", null, 0, 1, + StringVariableTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getStringVariableTask_Value(), ecorePackage.getEString(), "value", null, 0, 1, + StringVariableTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getStringVariableTask_Description(), ecorePackage.getEString(), "description", null, 0, 1, + StringVariableTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); - initEClass(apiBaselineEClass, ApiBaseline.class, "ApiBaseline", !IS_ABSTRACT, !IS_INTERFACE, + initEClass(workingSetTaskEClass, WorkingSetTask.class, "WorkingSetTask", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getApiBaseline_Project(), this.getProject(), this.getProject_ApiBaselines(), "project", null, 0, 1, - ApiBaseline.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, + initEReference(getWorkingSetTask_WorkingSets(), theWorkingSetsPackage.getWorkingSet(), null, "workingSets", null, + 0, -1, WorkingSetTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getApiBaseline_Version(), ecorePackage.getEString(), "version", null, 0, 1, ApiBaseline.class, - !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getApiBaseline_ZipLocation(), ecorePackage.getEString(), "zipLocation", null, 0, 1, - ApiBaseline.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, - IS_ORDERED); - initEClass(gitCloneEClass, GitClone.class, "GitClone", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getGitClone_Branch(), this.getBranch(), this.getBranch_GitClones(), "branch", null, 0, 1, - GitClone.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, - IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGitClone_Name(), ecorePackage.getEString(), "name", null, 0, 1, GitClone.class, !IS_TRANSIENT, - !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGitClone_RemoteURI(), ecorePackage.getEString(), "remoteURI", null, 0, 1, GitClone.class, + initEClass(resourceCopyTaskEClass, ResourceCopyTask.class, "ResourceCopyTask", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getResourceCopyTask_SourceURL(), ecorePackage.getEString(), "sourceURL", null, 0, 1, + ResourceCopyTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getResourceCopyTask_TargetURL(), ecorePackage.getEString(), "targetURL", null, 0, 1, + ResourceCopyTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + + initEClass(textModifyTaskEClass, TextModifyTask.class, "TextModifyTask", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getTextModifyTask_Url(), ecorePackage.getEString(), "url", null, 0, 1, TextModifyTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGitClone_CheckoutBranch(), ecorePackage.getEString(), "checkoutBranch", null, 0, 1, - GitClone.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, - IS_ORDERED); + initEReference(getTextModifyTask_Modifications(), this.getTextModification(), null, "modifications", null, 0, -1, + TextModifyTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(setupEClass, Setup.class, "Setup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getSetup_Branch(), this.getBranch(), null, "branch", null, 1, 1, Setup.class, !IS_TRANSIENT, - !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, - IS_ORDERED); - initEReference(getSetup_EclipseVersion(), this.getEclipseVersion(), null, "eclipseVersion", null, 1, 1, - Setup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, - IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getSetup_Preferences(), this.getPreferences(), null, "preferences", null, 0, 1, Setup.class, - !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, + initEClass(textModificationEClass, TextModification.class, "TextModification", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getTextModification_Pattern(), ecorePackage.getEString(), "pattern", null, 0, 1, + TextModification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getSetup_UpdateLocations(), this.getP2Repository(), null, "updateLocations", null, 0, -1, - Setup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, - IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getTextModification_Substitutions(), ecorePackage.getEString(), "substitutions", null, 0, -1, + TextModification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + + // Initialize enums and add enum literals + initEEnum(setupTaskScopeEEnum, SetupTaskScope.class, "SetupTaskScope"); + addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.NONE); + addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.CONFIGURATION); + addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.PROJECT); + addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.BRANCH); + addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.USER); + + initEEnum(triggerEEnum, Trigger.class, "Trigger"); + addEEnumLiteral(triggerEEnum, Trigger.BOOTSTRAP); + addEEnumLiteral(triggerEEnum, Trigger.STARTUP); + addEEnumLiteral(triggerEEnum, Trigger.MANUAL); // Initialize data types initEDataType(uriEDataType, org.eclipse.emf.common.util.URI.class, "URI", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); + initEDataType(exceptionEDataType, Exception.class, "Exception", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); + initEDataType(triggerSetEDataType, Set.class, "TriggerSet", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS, + "java.util.Set<org.eclipse.emf.cdo.releng.setup.Trigger>"); // Create resource createResource(eNS_URI); diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskContainerImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskContainerImpl.java new file mode 100644 index 0000000000..3a5df4b135 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskContainerImpl.java @@ -0,0 +1,164 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer; + +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import java.util.Collection; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Task Container</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl#getSetupTasks <em>Setup Tasks</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public abstract class SetupTaskContainerImpl extends MinimalEObjectImpl.Container implements SetupTaskContainer +{ + /** + * The cached value of the '{@link #getSetupTasks() <em>Setup Tasks</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSetupTasks() + * @generated + * @ordered + */ + protected EList<SetupTask> setupTasks; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected SetupTaskContainerImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.SETUP_TASK_CONTAINER; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<SetupTask> getSetupTasks() + { + if (setupTasks == null) + { + setupTasks = new EObjectContainmentEList.Resolving<SetupTask>(SetupTask.class, this, + SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS); + } + return setupTasks; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS: + return ((InternalEList<?>)getSetupTasks()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS: + return getSetupTasks(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS: + getSetupTasks().clear(); + getSetupTasks().addAll((Collection<? extends SetupTask>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS: + getSetupTasks().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS: + return setupTasks != null && !setupTasks.isEmpty(); + } + return super.eIsSet(featureID); + } + +} // SetupTaskContainerImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskImpl.java new file mode 100644 index 0000000000..c33d040385 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskImpl.java @@ -0,0 +1,471 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.Branch; +import org.eclipse.emf.cdo.releng.setup.ConfigurableItem; +import org.eclipse.emf.cdo.releng.setup.Configuration; +import org.eclipse.emf.cdo.releng.setup.Preferences; +import org.eclipse.emf.cdo.releng.setup.Project; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupTaskScope; +import org.eclipse.emf.cdo.releng.setup.Trigger; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl#getRequirements <em>Requirements</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl#getRestrictions <em>Restrictions</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl#getScope <em>Scope</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl#getExcludedTriggers <em>Excluded Triggers</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public abstract class SetupTaskImpl extends MinimalEObjectImpl.Container implements SetupTask +{ + /** + * The cached value of the '{@link #getRequirements() <em>Requirements</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRequirements() + * @generated + * @ordered + */ + protected EList<SetupTask> requirements; + + /** + * The cached value of the '{@link #getRestrictions() <em>Restrictions</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRestrictions() + * @generated + * @ordered + */ + protected EList<ConfigurableItem> restrictions; + + /** + * The default value of the '{@link #getScope() <em>Scope</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getScope() + * @generated + * @ordered + */ + protected static final SetupTaskScope SCOPE_EDEFAULT = SetupTaskScope.NONE; + + /** + * The cached value of the '{@link #getExcludedTriggers() <em>Excluded Triggers</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExcludedTriggers() + * @generated + * @ordered + */ + protected Set<Trigger> excludedTriggers; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected SetupTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.SETUP_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<SetupTask> getRequirements() + { + if (requirements == null) + { + requirements = new EObjectResolvingEList<SetupTask>(SetupTask.class, this, SetupPackage.SETUP_TASK__REQUIREMENTS); + } + return requirements; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<ConfigurableItem> getRestrictions() + { + if (restrictions == null) + { + restrictions = new EObjectResolvingEList<ConfigurableItem>(ConfigurableItem.class, this, + SetupPackage.SETUP_TASK__RESTRICTIONS); + } + return restrictions; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public SetupTaskScope getScope() + { + return getScope(this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public Set<Trigger> getExcludedTriggers() + { + return excludedTriggers == null ? Collections.<Trigger> emptySet() : excludedTriggers; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setExcludedTriggersGen(Set<Trigger> newExcludedTriggers) + { + Set<Trigger> oldExcludedTriggers = excludedTriggers; + excludedTriggers = newExcludedTriggers; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS, + oldExcludedTriggers, excludedTriggers)); + } + + public void setExcludedTriggers(Set<Trigger> newExcludedTriggers) + { + setExcludedTriggersGen(newExcludedTriggers == null || newExcludedTriggers.isEmpty() ? null : newExcludedTriggers); + } + + private SetupTaskScope getScope(EObject object) + { + if (object instanceof Configuration) + { + return SetupTaskScope.CONFIGURATION; + } + + if (object instanceof Project) + { + return SetupTaskScope.PROJECT; + } + + if (object instanceof Branch) + { + return SetupTaskScope.BRANCH; + } + + if (object instanceof Preferences) + { + return SetupTaskScope.USER; + } + + EObject container = object.eContainer(); + if (container == null) + { + return SetupTaskScope.NONE; + } + + return getScope(container); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public boolean requires(SetupTask setupTask) + { + Set<SetupTask> visited = new HashSet<SetupTask>(); + return requires(setupTask, visited); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public Set<Trigger> getValidTriggers() + { + return Trigger.ALL_TRIGGERS; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public final Set<Trigger> getTriggers() + { + Set<Trigger> excludedTriggers = getExcludedTriggers(); + if (excludedTriggers == null || excludedTriggers.isEmpty()) + { + return getValidTriggers(); + } + + Set<Trigger> result = new HashSet<Trigger>(getValidTriggers()); + result.removeAll(excludedTriggers); + return Trigger.intern(result); + } + + private boolean requires(SetupTask setupTask, Set<SetupTask> visited) + { + if (visited.add(setupTask)) + { + if (setupTask == this) + { + return true; + } + + for (SetupTask requirement : getRequirements()) + { + if (((SetupTaskImpl)requirement).requires(setupTask, visited)) + { + return true; + } + } + } + + return false; + } + + protected final Object createToken(String value) + { + return new TypedStringToken(eClass(), value); + } + + /** + * Subclasses may override to indicate that this task overrides another task with the same token. + * + * @see #createToken(String) + */ + public Object getOverrideToken() + { + return this; + } + + /** + * Subclasses may override to reset this task to its initial state. + */ + public void dispose() + { + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.SETUP_TASK__REQUIREMENTS: + return getRequirements(); + case SetupPackage.SETUP_TASK__RESTRICTIONS: + return getRestrictions(); + case SetupPackage.SETUP_TASK__SCOPE: + return getScope(); + case SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS: + return getExcludedTriggers(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.SETUP_TASK__REQUIREMENTS: + getRequirements().clear(); + getRequirements().addAll((Collection<? extends SetupTask>)newValue); + return; + case SetupPackage.SETUP_TASK__RESTRICTIONS: + getRestrictions().clear(); + getRestrictions().addAll((Collection<? extends ConfigurableItem>)newValue); + return; + case SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS: + setExcludedTriggers((Set<Trigger>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.SETUP_TASK__REQUIREMENTS: + getRequirements().clear(); + return; + case SetupPackage.SETUP_TASK__RESTRICTIONS: + getRestrictions().clear(); + return; + case SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS: + setExcludedTriggers((Set<Trigger>)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.SETUP_TASK__REQUIREMENTS: + return requirements != null && !requirements.isEmpty(); + case SetupPackage.SETUP_TASK__RESTRICTIONS: + return restrictions != null && !restrictions.isEmpty(); + case SetupPackage.SETUP_TASK__SCOPE: + return getScope() != SCOPE_EDEFAULT; + case SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS: + return excludedTriggers != null; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (excludedTriggers: "); + result.append(excludedTriggers); + result.append(')'); + return result.toString(); + } + + /** + * @author Eike Stepper + */ + protected static final class TypedStringToken + { + private final Object type; + + private final String value; + + public TypedStringToken(Object type, String value) + { + this.type = type; + this.value = value; + } + + @Override + public int hashCode() + { + final int prime = 31; + int result = 1; + result = prime * result + (type == null ? 0 : type.hashCode()); + result = prime * result + (value == null ? 0 : value.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) + { + if (this == obj) + { + return true; + } + + if (obj == null) + { + return false; + } + + if (getClass() != obj.getClass()) + { + return false; + } + + TypedStringToken other = (TypedStringToken)obj; + if (type == null) + { + if (other.type != null) + { + return false; + } + } + else if (!type.equals(other.type)) + { + return false; + } + + if (value == null) + { + if (other.value != null) + { + return false; + } + } + else if (!value.equals(other.value)) + { + return false; + } + + return true; + } + } + +} // SetupTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/StringVariableTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/StringVariableTaskImpl.java new file mode 100644 index 0000000000..f3c5461fc6 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/StringVariableTaskImpl.java @@ -0,0 +1,355 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; +import org.eclipse.emf.cdo.releng.setup.StringVariableTask; +import org.eclipse.emf.cdo.releng.setup.Trigger; + +import org.eclipse.net4j.util.StringUtil; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.core.variables.IStringVariableManager; +import org.eclipse.core.variables.IValueVariable; +import org.eclipse.core.variables.VariablesPlugin; + +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>String Variable Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl#getValue <em>Value</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl#getDescription <em>Description</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class StringVariableTaskImpl extends SetupTaskImpl implements StringVariableTask +{ + /** + * The default value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * The default value of the '{@link #getValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getValue() + * @generated + * @ordered + */ + protected static final String VALUE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getValue() + * @generated + * @ordered + */ + protected String value = VALUE_EDEFAULT; + + /** + * The default value of the '{@link #getDescription() <em>Description</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getDescription() + * @generated + * @ordered + */ + protected static final String DESCRIPTION_EDEFAULT = null; + + /** + * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getDescription() + * @generated + * @ordered + */ + protected String description = DESCRIPTION_EDEFAULT; + + private transient Object cachedVariable; + + private transient String expandedValue; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected StringVariableTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.STRING_VARIABLE_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() + { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.STRING_VARIABLE_TASK__NAME, oldName, name)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getValue() + { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setValue(String newValue) + { + String oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.STRING_VARIABLE_TASK__VALUE, oldValue, value)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getDescription() + { + return description; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setDescription(String newDescription) + { + String oldDescription = description; + description = newDescription; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION, + oldDescription, description)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.STRING_VARIABLE_TASK__NAME: + return getName(); + case SetupPackage.STRING_VARIABLE_TASK__VALUE: + return getValue(); + case SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION: + return getDescription(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.STRING_VARIABLE_TASK__NAME: + setName((String)newValue); + return; + case SetupPackage.STRING_VARIABLE_TASK__VALUE: + setValue((String)newValue); + return; + case SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION: + setDescription((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.STRING_VARIABLE_TASK__NAME: + setName(NAME_EDEFAULT); + return; + case SetupPackage.STRING_VARIABLE_TASK__VALUE: + setValue(VALUE_EDEFAULT); + return; + case SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION: + setDescription(DESCRIPTION_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.STRING_VARIABLE_TASK__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case SetupPackage.STRING_VARIABLE_TASK__VALUE: + return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); + case SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION: + return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(", value: "); + result.append(value); + result.append(", description: "); + result.append(description); + result.append(')'); + return result.toString(); + } + + @Override + public Object getOverrideToken() + { + return createToken(getName()); + } + + @Override + public Set<Trigger> getValidTriggers() + { + return Trigger.IDE_TRIGGERS; + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager(); + IValueVariable variable = manager.getValueVariable(getName()); + + cachedVariable = variable; + expandedValue = context.expandString(getValue()); + + if (variable == null) + { + return true; + } + + if (!expandedValue.equals(variable.getValue())) + { + return true; + } + + if (!StringUtil.safe(getDescription()).equals(StringUtil.safe(variable.getDescription()))) + { + return true; + } + + return false; + } + + public void perform(SetupTaskContext context) throws Exception + { + context.log("Setting string substitution variable " + getName() + " = " + expandedValue); + + IValueVariable variable = (IValueVariable)cachedVariable; + if (variable == null) + { + IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager(); + variable = manager.newValueVariable(getName(), null); + manager.addVariables(new IValueVariable[] { variable }); + } + + variable.setDescription(getDescription()); + variable.setValue(expandedValue); + } +} // StringVariableTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModificationImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModificationImpl.java new file mode 100644 index 0000000000..15125bc0b7 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModificationImpl.java @@ -0,0 +1,221 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.TextModification; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.emf.ecore.util.EDataTypeUniqueEList; + +import java.util.Collection; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Text Modification</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl#getPattern <em>Pattern</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl#getSubstitutions <em>Substitutions</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class TextModificationImpl extends MinimalEObjectImpl.Container implements TextModification +{ + /** + * The default value of the '{@link #getPattern() <em>Pattern</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPattern() + * @generated + * @ordered + */ + protected static final String PATTERN_EDEFAULT = null; + + /** + * The cached value of the '{@link #getPattern() <em>Pattern</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPattern() + * @generated + * @ordered + */ + protected String pattern = PATTERN_EDEFAULT; + + /** + * The cached value of the '{@link #getSubstitutions() <em>Substitutions</em>}' attribute list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSubstitutions() + * @generated + * @ordered + */ + protected EList<String> substitutions; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TextModificationImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.TEXT_MODIFICATION; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getPattern() + { + return pattern; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setPattern(String newPattern) + { + String oldPattern = pattern; + pattern = newPattern; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.TEXT_MODIFICATION__PATTERN, oldPattern, + pattern)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<String> getSubstitutions() + { + if (substitutions == null) + { + substitutions = new EDataTypeUniqueEList<String>(String.class, this, + SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS); + } + return substitutions; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.TEXT_MODIFICATION__PATTERN: + return getPattern(); + case SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS: + return getSubstitutions(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.TEXT_MODIFICATION__PATTERN: + setPattern((String)newValue); + return; + case SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS: + getSubstitutions().clear(); + getSubstitutions().addAll((Collection<? extends String>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.TEXT_MODIFICATION__PATTERN: + setPattern(PATTERN_EDEFAULT); + return; + case SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS: + getSubstitutions().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.TEXT_MODIFICATION__PATTERN: + return PATTERN_EDEFAULT == null ? pattern != null : !PATTERN_EDEFAULT.equals(pattern); + case SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS: + return substitutions != null && !substitutions.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (pattern: "); + result.append(pattern); + result.append(", substitutions: "); + result.append(substitutions); + result.append(')'); + return result.toString(); + } + +} //TextModificationImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModifyTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModifyTaskImpl.java new file mode 100644 index 0000000000..6ede46e41e --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModifyTaskImpl.java @@ -0,0 +1,250 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; +import org.eclipse.emf.cdo.releng.setup.TextModification; +import org.eclipse.emf.cdo.releng.setup.TextModifyTask; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import java.util.Collection; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Text Modify Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl#getUrl <em>Url</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl#getModifications <em>Modifications</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class TextModifyTaskImpl extends SetupTaskImpl implements TextModifyTask +{ + /** + * The default value of the '{@link #getUrl() <em>Url</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getUrl() + * @generated + * @ordered + */ + protected static final String URL_EDEFAULT = null; + + /** + * The cached value of the '{@link #getUrl() <em>Url</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getUrl() + * @generated + * @ordered + */ + protected String url = URL_EDEFAULT; + + /** + * The cached value of the '{@link #getModifications() <em>Modifications</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getModifications() + * @generated + * @ordered + */ + protected EList<TextModification> modifications; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TextModifyTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.TEXT_MODIFY_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getUrl() + { + return url; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setUrl(String newUrl) + { + String oldUrl = url; + url = newUrl; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.TEXT_MODIFY_TASK__URL, oldUrl, url)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<TextModification> getModifications() + { + if (modifications == null) + { + modifications = new EObjectContainmentEList.Resolving<TextModification>(TextModification.class, this, + SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS); + } + return modifications; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS: + return ((InternalEList<?>)getModifications()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.TEXT_MODIFY_TASK__URL: + return getUrl(); + case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS: + return getModifications(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.TEXT_MODIFY_TASK__URL: + setUrl((String)newValue); + return; + case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS: + getModifications().clear(); + getModifications().addAll((Collection<? extends TextModification>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.TEXT_MODIFY_TASK__URL: + setUrl(URL_EDEFAULT); + return; + case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS: + getModifications().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.TEXT_MODIFY_TASK__URL: + return URL_EDEFAULT == null ? url != null : !URL_EDEFAULT.equals(url); + case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS: + return modifications != null && !modifications.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (url: "); + result.append(url); + result.append(')'); + return result.toString(); + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + // TODO + throw new UnsupportedOperationException(); + } + + public void perform(SetupTaskContext context) throws Exception + { + // TODO + throw new UnsupportedOperationException(); + } + +} // TextModifyTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolInstallationImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolInstallationImpl.java deleted file mode 100644 index eac9bd8e7d..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolInstallationImpl.java +++ /dev/null @@ -1,212 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.impl; - -import org.eclipse.emf.cdo.releng.setup.DirectorCall; -import org.eclipse.emf.cdo.releng.setup.SetupPackage; -import org.eclipse.emf.cdo.releng.setup.ToolInstallation; - -import org.eclipse.emf.cdo.releng.setup.ToolPreference; -import org.eclipse.emf.common.notify.NotificationChain; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; -import org.eclipse.emf.ecore.util.EObjectContainmentEList; -import org.eclipse.emf.ecore.util.InternalEList; - -import java.util.Collection; - -/** - * <!-- begin-user-doc --> - * An implementation of the model object '<em><b>Tool Installation</b></em>'. - * <!-- end-user-doc --> - * <p> - * The following features are implemented: - * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl#getDirectorCalls <em>Director Calls</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl#getToolPreferences <em>Tool Preferences</em>}</li> - * </ul> - * </p> - * - * @generated - */ -public abstract class ToolInstallationImpl extends MinimalEObjectImpl.Container implements ToolInstallation -{ - /** - * The cached value of the '{@link #getDirectorCalls() <em>Director Calls</em>}' containment reference list. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getDirectorCalls() - * @generated - * @ordered - */ - protected EList<DirectorCall> directorCalls; - - /** - * The cached value of the '{@link #getToolPreferences() <em>Tool Preferences</em>}' containment reference list. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getToolPreferences() - * @generated - * @ordered - */ - protected EList<ToolPreference> toolPreferences; - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected ToolInstallationImpl() - { - super(); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SetupPackage.Literals.TOOL_INSTALLATION; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public EList<DirectorCall> getDirectorCalls() - { - if (directorCalls == null) - { - directorCalls = new EObjectContainmentEList<DirectorCall>(DirectorCall.class, this, - SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS); - } - return directorCalls; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public EList<ToolPreference> getToolPreferences() - { - if (toolPreferences == null) - { - toolPreferences = new EObjectContainmentEList<ToolPreference>(ToolPreference.class, this, - SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES); - } - return toolPreferences; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS: - return ((InternalEList<?>)getDirectorCalls()).basicRemove(otherEnd, msgs); - case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES: - return ((InternalEList<?>)getToolPreferences()).basicRemove(otherEnd, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS: - return getDirectorCalls(); - case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES: - return getToolPreferences(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS: - getDirectorCalls().clear(); - getDirectorCalls().addAll((Collection<? extends DirectorCall>)newValue); - return; - case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES: - getToolPreferences().clear(); - getToolPreferences().addAll((Collection<? extends ToolPreference>)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS: - getDirectorCalls().clear(); - return; - case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES: - getToolPreferences().clear(); - return; - } - super.eUnset(featureID); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS: - return directorCalls != null && !directorCalls.isEmpty(); - case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES: - return toolPreferences != null && !toolPreferences.isEmpty(); - } - return super.eIsSet(featureID); - } - -} // ToolInstallationImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/WorkingSetTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/WorkingSetTaskImpl.java new file mode 100644 index 0000000000..c45a4b1f7b --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/WorkingSetTaskImpl.java @@ -0,0 +1,289 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.internal.setup.Activator; +import org.eclipse.emf.cdo.releng.setup.Branch; +import org.eclipse.emf.cdo.releng.setup.Preferences; +import org.eclipse.emf.cdo.releng.setup.Project; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; +import org.eclipse.emf.cdo.releng.setup.Trigger; +import org.eclipse.emf.cdo.releng.setup.WorkingSetTask; +import org.eclipse.emf.cdo.releng.workingsets.WorkingSet; +import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup; +import org.eclipse.emf.cdo.releng.workingsets.util.WorkingSetsUtil; + +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.ui.IViewPart; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Set Working Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl#getWorkingSets <em>Working Sets</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class WorkingSetTaskImpl extends SetupTaskImpl implements WorkingSetTask +{ + /** + * The cached value of the '{@link #getWorkingSets() <em>Working Sets</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getWorkingSets() + * @generated + * @ordered + */ + protected EList<WorkingSet> workingSets; + + private static final String PACKAGE_EXPLORER_ID = "org.eclipse.jdt.ui.PackageExplorer"; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected WorkingSetTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.WORKING_SET_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<WorkingSet> getWorkingSets() + { + if (workingSets == null) + { + workingSets = new EObjectContainmentEList.Resolving<WorkingSet>(WorkingSet.class, this, + SetupPackage.WORKING_SET_TASK__WORKING_SETS); + } + return workingSets; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SetupPackage.WORKING_SET_TASK__WORKING_SETS: + return ((InternalEList<?>)getWorkingSets()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.WORKING_SET_TASK__WORKING_SETS: + return getWorkingSets(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.WORKING_SET_TASK__WORKING_SETS: + getWorkingSets().clear(); + getWorkingSets().addAll((Collection<? extends WorkingSet>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.WORKING_SET_TASK__WORKING_SETS: + getWorkingSets().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.WORKING_SET_TASK__WORKING_SETS: + return workingSets != null && !workingSets.isEmpty(); + } + return super.eIsSet(featureID); + } + + @Override + public Set<Trigger> getValidTriggers() + { + return Trigger.IDE_TRIGGERS; + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + WorkingSetGroup defaultWorkingSetGroup = WorkingSetsUtil.getWorkingSetGroup(); + Set<String> existingIds = new HashSet<String>(); + for (WorkingSet workingSet : defaultWorkingSetGroup.getWorkingSets()) + { + existingIds.add(workingSet.getId()); + } + + String prefix = ""; + for (EObject eContainer = eContainer(); eContainer != null; eContainer = eContainer.eContainer()) + { + if (eContainer instanceof Project) + { + prefix += ((Project)eContainer).getName() + " "; + } + else if (eContainer instanceof Branch) + { + prefix += ((Branch)eContainer).getName() + " "; + } + else if (eContainer instanceof Preferences) + { + prefix += ((Preferences)eContainer).getUserName() + " "; + } + } + + Set<String> newIds = new HashSet<String>(); + for (WorkingSet workingSet : getWorkingSets()) + { + String id = prefix + workingSet.getName(); + workingSet.setId(id); + newIds.add(id); + } + + return !existingIds.containsAll(newIds); + } + + public void perform(SetupTaskContext context) throws Exception + { + initPackageExplorer(); + + WorkingSetGroup defaultWorkingSetGroup = WorkingSetsUtil.getWorkingSetGroup(); + Set<String> existingIds = new HashSet<String>(); + EList<WorkingSet> workingSets = defaultWorkingSetGroup.getWorkingSets(); + for (WorkingSet workingSet : workingSets) + { + existingIds.add(workingSet.getId()); + } + + EList<WorkingSet> newWorkingSetGroups = getWorkingSets(); + int index = 0; + for (WorkingSet workingSet : new ArrayList<WorkingSet>(newWorkingSetGroups)) + { + String id = workingSet.getId(); + if (!existingIds.contains(id)) + { + workingSets.add(index++, workingSet); + } + else + { + for (int i = 0, size = workingSets.size(); i < size; ++i) + { + if (id.equals(workingSets.get(i).getId())) + { + index = i + 1; + break; + } + } + } + } + + Resource resource = defaultWorkingSetGroup.eResource(); + resource.save(null); + } + + private static void initPackageExplorer() + { + final IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getWorkbenchWindows()[0]; + workbenchWindow.getShell().getDisplay().asyncExec(new Runnable() + { + public void run() + { + try + { + IViewPart view = workbenchWindow.getActivePage().showView(PACKAGE_EXPLORER_ID, null, + IWorkbenchPage.VIEW_CREATE); + if (view != null) + { + Method method = view.getClass().getMethod("rootModeChanged", int.class); + method.invoke(view, 2); + } + } + catch (Exception ex) + { + Activator.log(ex); + } + } + }); + } +} // SetWorkingTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Downloads.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/DownloadUtil.java index a5d15fda65..9c19526c1c 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Downloads.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/DownloadUtil.java @@ -8,7 +8,9 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.helper; +package org.eclipse.emf.cdo.releng.setup.util; + +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog; import java.io.BufferedInputStream; import java.io.File; @@ -21,11 +23,11 @@ import java.net.URLConnection; /** * @author Eike Stepper */ -public final class Downloads +public final class DownloadUtil { private static final int BUFFER_SIZE = 4096; - public static File downloadURL(String url) + public static File downloadURL(String url, ProgressLog progress) { if (url.endsWith("/")) { @@ -39,7 +41,7 @@ public final class Downloads File file = new File(tmp.getParentFile(), name + ".zip"); if (!file.exists()) { - downloadURL(url, tmp); + downloadURL(url, tmp, progress); tmp.renameTo(file); } @@ -51,7 +53,7 @@ public final class Downloads } } - private static void downloadURL(String url, File file) + private static void downloadURL(String url, File file, ProgressLog progress) { final byte data[] = new byte[BUFFER_SIZE]; BufferedInputStream in = null; @@ -89,7 +91,7 @@ public final class Downloads int percent = Math.round(factor * read); if (percent != lastPercent) { - Progress.log().addLine("Downloading " + fileName + " (" + percent + "%)"); + progress.log("Downloading " + fileName + " (" + percent + "%)"); } } } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Files.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/FileUtil.java index ca4bc423c0..1e584cca9e 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Files.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/FileUtil.java @@ -8,7 +8,9 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.helper; +package org.eclipse.emf.cdo.releng.setup.util; + +import org.eclipse.emf.cdo.releng.internal.setup.Activator; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; @@ -25,22 +27,12 @@ import java.util.List; /** * @author Eike Stepper */ -public final class Files +public final class FileUtil { public static void rename(File from) throws IOException, InterruptedException { File to = new File(from.getParentFile(), from.getName() + "." + System.currentTimeMillis()); - for (int i = 0; i < 1000; i++) - { - if (from.renameTo(to)) - { - return; - } - - Thread.sleep(5); - } - - throw new IOException("Could not rename '" + from.getAbsolutePath() + "' to '" + to.getAbsolutePath() + "'"); + rename(from, to); } public static void rename(File from, File to) throws IOException, InterruptedException diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/OS.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/OS.java index 3b5032793d..158e84f017 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/OS.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/OS.java @@ -8,7 +8,7 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.helper; +package org.eclipse.emf.cdo.releng.setup.util; import org.eclipse.core.runtime.Platform; @@ -74,6 +74,8 @@ public abstract class OS try { + file.getParentFile().mkdirs(); + out = new FileOutputStream(file); Writer writer = new OutputStreamWriter(out); @SuppressWarnings("resource") @@ -99,6 +101,8 @@ public abstract class OS public abstract String getEclipseExecutable(); + public abstract String getEclipseIni(); + public abstract String getGitPrefix(); public abstract String getJREsRoot(); @@ -158,6 +162,12 @@ public abstract class OS } @Override + public String getEclipseIni() + { + return "eclipse.ini"; + } + + @Override public String getGitPrefix() { return "C:\\Program Files (x86)\\Git"; @@ -182,6 +192,12 @@ public abstract class OS } @Override + public String getEclipseIni() + { + return "Contents/MacOS/eclipse.ini"; + } + + @Override public String getGitPrefix() { return "/"; @@ -206,6 +222,12 @@ public abstract class OS } @Override + public String getEclipseIni() + { + return "eclipse.ini"; + } + + @Override public String getGitPrefix() { return ""; diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/ServiceUtil.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/ServiceUtil.java new file mode 100644 index 0000000000..c4fa29fd7f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/ServiceUtil.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.setup.util; + +import org.eclipse.emf.cdo.releng.internal.setup.Activator; + +import org.eclipse.core.runtime.Plugin; + +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceReference; + +import java.util.IdentityHashMap; +import java.util.Map; + +/** + * @author Eike Stepper + */ +public final class ServiceUtil extends Plugin +{ + private static BundleContext bundleContext = Activator.getBundleContext(); + + private static Map<Object, ServiceReference<?>> services = new IdentityHashMap<Object, ServiceReference<?>>(); + + public static <T> T getService(Class<T> serviceClass) + { + String serviceName = serviceClass.getName(); + ServiceReference<?> serviceRef = bundleContext.getServiceReference(serviceName); + if (serviceRef == null) + { + throw new IllegalStateException("Missing OSGi service " + serviceName); + } + + @SuppressWarnings("unchecked") + T service = (T)bundleContext.getService(serviceRef); + services.put(service, serviceRef); + return service; + } + + public static void ungetService(Object service) + { + if (service != null) + { + ServiceReference<?> serviceRef = services.remove(service); + if (serviceRef != null) + { + bundleContext.ungetService(serviceRef); + } + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupAdapterFactory.java index ecd94719cb..8867ca7292 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupAdapterFactory.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupAdapterFactory.java @@ -10,21 +10,32 @@ */ package org.eclipse.emf.cdo.releng.setup.util; -import org.eclipse.emf.cdo.releng.setup.*; -import org.eclipse.emf.cdo.releng.setup.ApiBaseline; +import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask; import org.eclipse.emf.cdo.releng.setup.Branch; +import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask; +import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask; +import org.eclipse.emf.cdo.releng.setup.ConfigurableItem; import org.eclipse.emf.cdo.releng.setup.Configuration; -import org.eclipse.emf.cdo.releng.setup.DirectorCall; +import org.eclipse.emf.cdo.releng.setup.EclipseIniTask; +import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask; import org.eclipse.emf.cdo.releng.setup.EclipseVersion; -import org.eclipse.emf.cdo.releng.setup.GitClone; +import org.eclipse.emf.cdo.releng.setup.GitCloneTask; import org.eclipse.emf.cdo.releng.setup.InstallableUnit; +import org.eclipse.emf.cdo.releng.setup.LinkLocationTask; +import org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask; import org.eclipse.emf.cdo.releng.setup.P2Repository; +import org.eclipse.emf.cdo.releng.setup.P2Task; import org.eclipse.emf.cdo.releng.setup.Preferences; import org.eclipse.emf.cdo.releng.setup.Project; +import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask; import org.eclipse.emf.cdo.releng.setup.Setup; import org.eclipse.emf.cdo.releng.setup.SetupPackage; -import org.eclipse.emf.cdo.releng.setup.ToolInstallation; - +import org.eclipse.emf.cdo.releng.setup.SetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer; +import org.eclipse.emf.cdo.releng.setup.StringVariableTask; +import org.eclipse.emf.cdo.releng.setup.TextModification; +import org.eclipse.emf.cdo.releng.setup.TextModifyTask; +import org.eclipse.emf.cdo.releng.setup.WorkingSetTask; import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.notify.Notifier; import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; @@ -93,39 +104,87 @@ public class SetupAdapterFactory extends AdapterFactoryImpl protected SetupSwitch<Adapter> modelSwitch = new SetupSwitch<Adapter>() { @Override + public Adapter caseEclipseVersion(EclipseVersion object) + { + return createEclipseVersionAdapter(); + } + + @Override + public Adapter caseConfiguration(Configuration object) + { + return createConfigurationAdapter(); + } + + @Override + public Adapter caseConfigurableItem(ConfigurableItem object) + { + return createConfigurableItemAdapter(); + } + + @Override + public Adapter caseProject(Project object) + { + return createProjectAdapter(); + } + + @Override + public Adapter caseBranch(Branch object) + { + return createBranchAdapter(); + } + + @Override public Adapter casePreferences(Preferences object) { return createPreferencesAdapter(); } @Override - public Adapter caseLinkLocation(LinkLocation object) + public Adapter caseSetup(Setup object) + { + return createSetupAdapter(); + } + + @Override + public Adapter caseSetupTask(SetupTask object) { - return createLinkLocationAdapter(); + return createSetupTaskAdapter(); } @Override - public Adapter caseToolInstallation(ToolInstallation object) + public Adapter caseSetupTaskContainer(SetupTaskContainer object) { - return createToolInstallationAdapter(); + return createSetupTaskContainerAdapter(); } @Override - public Adapter caseToolPreference(ToolPreference object) + public Adapter caseCompoundSetupTask(CompoundSetupTask object) { - return createToolPreferenceAdapter(); + return createCompoundSetupTaskAdapter(); } @Override - public Adapter caseEclipseVersion(EclipseVersion object) + public Adapter caseOneTimeSetupTask(OneTimeSetupTask object) { - return createEclipseVersionAdapter(); + return createOneTimeSetupTaskAdapter(); } @Override - public Adapter caseDirectorCall(DirectorCall object) + public Adapter caseEclipseIniTask(EclipseIniTask object) { - return createDirectorCallAdapter(); + return createEclipseIniTaskAdapter(); + } + + @Override + public Adapter caseLinkLocationTask(LinkLocationTask object) + { + return createLinkLocationTaskAdapter(); + } + + @Override + public Adapter caseP2Task(P2Task object) + { + return createP2TaskAdapter(); } @Override @@ -141,39 +200,57 @@ public class SetupAdapterFactory extends AdapterFactoryImpl } @Override - public Adapter caseConfiguration(Configuration object) + public Adapter caseBuckminsterImportTask(BuckminsterImportTask object) { - return createConfigurationAdapter(); + return createBuckminsterImportTaskAdapter(); } @Override - public Adapter caseProject(Project object) + public Adapter caseApiBaselineTask(ApiBaselineTask object) { - return createProjectAdapter(); + return createApiBaselineTaskAdapter(); } @Override - public Adapter caseBranch(Branch object) + public Adapter caseGitCloneTask(GitCloneTask object) { - return createBranchAdapter(); + return createGitCloneTaskAdapter(); } @Override - public Adapter caseApiBaseline(ApiBaseline object) + public Adapter caseEclipsePreferenceTask(EclipsePreferenceTask object) { - return createApiBaselineAdapter(); + return createEclipsePreferenceTaskAdapter(); } @Override - public Adapter caseGitClone(GitClone object) + public Adapter caseStringVariableTask(StringVariableTask object) { - return createGitCloneAdapter(); + return createStringVariableTaskAdapter(); } @Override - public Adapter caseSetup(Setup object) + public Adapter caseWorkingSetTask(WorkingSetTask object) { - return createSetupAdapter(); + return createWorkingSetTaskAdapter(); + } + + @Override + public Adapter caseResourceCopyTask(ResourceCopyTask object) + { + return createResourceCopyTaskAdapter(); + } + + @Override + public Adapter caseTextModifyTask(TextModifyTask object) + { + return createTextModifyTaskAdapter(); + } + + @Override + public Adapter caseTextModification(TextModification object) + { + return createTextModificationAdapter(); } @Override @@ -243,16 +320,31 @@ public class SetupAdapterFactory extends AdapterFactoryImpl } /** - * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation <em>Tool Installation</em>}'. + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask <em>Api Baseline Task</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.ApiBaselineTask + * @generated + */ + public Adapter createApiBaselineTaskAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask <em>Git Clone Task</em>}'. * <!-- begin-user-doc --> * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * <!-- end-user-doc --> * @return the new adapter. - * @see org.eclipse.emf.cdo.releng.setup.ToolInstallation + * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask * @generated */ - public Adapter createToolInstallationAdapter() + public Adapter createGitCloneTaskAdapter() { return null; } @@ -273,16 +365,31 @@ public class SetupAdapterFactory extends AdapterFactoryImpl } /** - * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall <em>Director Call</em>}'. + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.P2Task <em>P2 Task</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.P2Task + * @generated + */ + public Adapter createP2TaskAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask <em>String Variable Task</em>}'. * <!-- begin-user-doc --> * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * <!-- end-user-doc --> * @return the new adapter. - * @see org.eclipse.emf.cdo.releng.setup.DirectorCall + * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask * @generated */ - public Adapter createDirectorCallAdapter() + public Adapter createStringVariableTaskAdapter() { return null; } @@ -318,76 +425,166 @@ public class SetupAdapterFactory extends AdapterFactoryImpl } /** - * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline <em>Api Baseline</em>}'. + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.Setup <em>Setup</em>}'. * <!-- begin-user-doc --> * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * <!-- end-user-doc --> * @return the new adapter. - * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline + * @see org.eclipse.emf.cdo.releng.setup.Setup * @generated */ - public Adapter createApiBaselineAdapter() + public Adapter createSetupAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.GitClone <em>Git Clone</em>}'. + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.SetupTask <em>Task</em>}'. * <!-- begin-user-doc --> * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * <!-- end-user-doc --> * @return the new adapter. - * @see org.eclipse.emf.cdo.releng.setup.GitClone + * @see org.eclipse.emf.cdo.releng.setup.SetupTask * @generated */ - public Adapter createGitCloneAdapter() + public Adapter createSetupTaskAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.Setup <em>Setup</em>}'. + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask <em>Working Set Task</em>}'. * <!-- begin-user-doc --> * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * <!-- end-user-doc --> * @return the new adapter. - * @see org.eclipse.emf.cdo.releng.setup.Setup + * @see org.eclipse.emf.cdo.releng.setup.WorkingSetTask * @generated */ - public Adapter createSetupAdapter() + public Adapter createWorkingSetTaskAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask <em>Resource Copy Task</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.ResourceCopyTask + * @generated + */ + public Adapter createResourceCopyTaskAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask <em>Text Modify Task</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.TextModifyTask + * @generated + */ + public Adapter createTextModifyTaskAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.TextModification <em>Text Modification</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.TextModification + * @generated + */ + public Adapter createTextModificationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask <em>Eclipse Ini Task</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask + * @generated + */ + public Adapter createEclipseIniTaskAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask <em>Compound Setup Task</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.CompoundSetupTask + * @generated + */ + public Adapter createCompoundSetupTaskAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference <em>Tool Preference</em>}'. + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask <em>One Time Setup Task</em>}'. * <!-- begin-user-doc --> * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * <!-- end-user-doc --> * @return the new adapter. - * @see org.eclipse.emf.cdo.releng.setup.ToolPreference + * @see org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask * @generated */ - public Adapter createToolPreferenceAdapter() + public Adapter createOneTimeSetupTaskAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation <em>Link Location</em>}'. + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ConfigurableItem <em>Configurable Item</em>}'. * <!-- begin-user-doc --> * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * <!-- end-user-doc --> * @return the new adapter. - * @see org.eclipse.emf.cdo.releng.setup.LinkLocation + * @see org.eclipse.emf.cdo.releng.setup.ConfigurableItem * @generated */ - public Adapter createLinkLocationAdapter() + public Adapter createConfigurableItemAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask <em>Buckminster Import Task</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask + * @generated + */ + public Adapter createBuckminsterImportTaskAdapter() { return null; } @@ -408,6 +605,51 @@ public class SetupAdapterFactory extends AdapterFactoryImpl } /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask <em>Link Location Task</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.LinkLocationTask + * @generated + */ + public Adapter createLinkLocationTaskAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskContainer <em>Task Container</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.SetupTaskContainer + * @generated + */ + public Adapter createSetupTaskContainerAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask <em>Eclipse Preference Task</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask + * @generated + */ + public Adapter createEclipsePreferenceTaskAdapter() + { + return null; + } + + /** * Creates a new adapter for the default case. * <!-- begin-user-doc --> * This default implementation returns null. diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupSwitch.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupSwitch.java index 1ab1628d62..44af8cb514 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupSwitch.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupSwitch.java @@ -1,34 +1,35 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup.util; -import org.eclipse.emf.cdo.releng.setup.ApiBaseline; +import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask; import org.eclipse.emf.cdo.releng.setup.Branch; +import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask; +import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask; +import org.eclipse.emf.cdo.releng.setup.ConfigurableItem; import org.eclipse.emf.cdo.releng.setup.Configuration; -import org.eclipse.emf.cdo.releng.setup.DirectorCall; +import org.eclipse.emf.cdo.releng.setup.EclipseIniTask; +import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask; import org.eclipse.emf.cdo.releng.setup.EclipseVersion; -import org.eclipse.emf.cdo.releng.setup.GitClone; +import org.eclipse.emf.cdo.releng.setup.GitCloneTask; import org.eclipse.emf.cdo.releng.setup.InstallableUnit; -import org.eclipse.emf.cdo.releng.setup.LinkLocation; +import org.eclipse.emf.cdo.releng.setup.LinkLocationTask; +import org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask; import org.eclipse.emf.cdo.releng.setup.P2Repository; +import org.eclipse.emf.cdo.releng.setup.P2Task; import org.eclipse.emf.cdo.releng.setup.Preferences; import org.eclipse.emf.cdo.releng.setup.Project; +import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask; import org.eclipse.emf.cdo.releng.setup.Setup; import org.eclipse.emf.cdo.releng.setup.SetupPackage; -import org.eclipse.emf.cdo.releng.setup.ToolInstallation; -import org.eclipse.emf.cdo.releng.setup.ToolPreference; - +import org.eclipse.emf.cdo.releng.setup.SetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer; +import org.eclipse.emf.cdo.releng.setup.StringVariableTask; +import org.eclipse.emf.cdo.releng.setup.TextModification; +import org.eclipse.emf.cdo.releng.setup.TextModifyTask; +import org.eclipse.emf.cdo.releng.setup.WorkingSetTask; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; - import java.util.List; /** @@ -108,68 +109,144 @@ public class SetupSwitch<T> { switch (classifierID) { + case SetupPackage.ECLIPSE_VERSION: + { + EclipseVersion eclipseVersion = (EclipseVersion)theEObject; + T result = caseEclipseVersion(eclipseVersion); + if (result == null) + result = caseConfigurableItem(eclipseVersion); + if (result == null) + result = caseSetupTaskContainer(eclipseVersion); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.CONFIGURATION: + { + Configuration configuration = (Configuration)theEObject; + T result = caseConfiguration(configuration); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.CONFIGURABLE_ITEM: + { + ConfigurableItem configurableItem = (ConfigurableItem)theEObject; + T result = caseConfigurableItem(configurableItem); + if (result == null) + result = caseSetupTaskContainer(configurableItem); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.PROJECT: + { + Project project = (Project)theEObject; + T result = caseProject(project); + if (result == null) + result = caseConfigurableItem(project); + if (result == null) + result = caseSetupTaskContainer(project); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.BRANCH: + { + Branch branch = (Branch)theEObject; + T result = caseBranch(branch); + if (result == null) + result = caseConfigurableItem(branch); + if (result == null) + result = caseSetupTaskContainer(branch); + if (result == null) + result = defaultCase(theEObject); + return result; + } case SetupPackage.PREFERENCES: { Preferences preferences = (Preferences)theEObject; T result = casePreferences(preferences); if (result == null) - { - result = caseToolInstallation(preferences); - } + result = caseSetupTaskContainer(preferences); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.SETUP: + { + Setup setup = (Setup)theEObject; + T result = caseSetup(setup); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.LINK_LOCATION: + case SetupPackage.SETUP_TASK: { - LinkLocation linkLocation = (LinkLocation)theEObject; - T result = caseLinkLocation(linkLocation); + SetupTask setupTask = (SetupTask)theEObject; + T result = caseSetupTask(setupTask); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.TOOL_INSTALLATION: + case SetupPackage.SETUP_TASK_CONTAINER: { - ToolInstallation toolInstallation = (ToolInstallation)theEObject; - T result = caseToolInstallation(toolInstallation); + SetupTaskContainer setupTaskContainer = (SetupTaskContainer)theEObject; + T result = caseSetupTaskContainer(setupTaskContainer); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.TOOL_PREFERENCE: + case SetupPackage.COMPOUND_SETUP_TASK: { - ToolPreference toolPreference = (ToolPreference)theEObject; - T result = caseToolPreference(toolPreference); + CompoundSetupTask compoundSetupTask = (CompoundSetupTask)theEObject; + T result = caseCompoundSetupTask(compoundSetupTask); + if (result == null) + result = caseSetupTask(compoundSetupTask); + if (result == null) + result = caseSetupTaskContainer(compoundSetupTask); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.ECLIPSE_VERSION: + case SetupPackage.ONE_TIME_SETUP_TASK: { - EclipseVersion eclipseVersion = (EclipseVersion)theEObject; - T result = caseEclipseVersion(eclipseVersion); + OneTimeSetupTask oneTimeSetupTask = (OneTimeSetupTask)theEObject; + T result = caseOneTimeSetupTask(oneTimeSetupTask); + if (result == null) + result = caseSetupTask(oneTimeSetupTask); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.ECLIPSE_INI_TASK: + { + EclipseIniTask eclipseIniTask = (EclipseIniTask)theEObject; + T result = caseEclipseIniTask(eclipseIniTask); + if (result == null) + result = caseSetupTask(eclipseIniTask); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.DIRECTOR_CALL: + case SetupPackage.LINK_LOCATION_TASK: { - DirectorCall directorCall = (DirectorCall)theEObject; - T result = caseDirectorCall(directorCall); + LinkLocationTask linkLocationTask = (LinkLocationTask)theEObject; + T result = caseLinkLocationTask(linkLocationTask); + if (result == null) + result = caseSetupTask(linkLocationTask); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.P2_TASK: + { + P2Task p2Task = (P2Task)theEObject; + T result = caseP2Task(p2Task); + if (result == null) + result = caseSetupTask(p2Task); if (result == null) - { result = defaultCase(theEObject); - } return result; } case SetupPackage.INSTALLABLE_UNIT: @@ -177,9 +254,7 @@ public class SetupSwitch<T> InstallableUnit installableUnit = (InstallableUnit)theEObject; T result = caseInstallableUnit(installableUnit); if (result == null) - { result = defaultCase(theEObject); - } return result; } case SetupPackage.P2_REPOSITORY: @@ -187,77 +262,95 @@ public class SetupSwitch<T> P2Repository p2Repository = (P2Repository)theEObject; T result = caseP2Repository(p2Repository); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.CONFIGURATION: + case SetupPackage.BUCKMINSTER_IMPORT_TASK: { - Configuration configuration = (Configuration)theEObject; - T result = caseConfiguration(configuration); + BuckminsterImportTask buckminsterImportTask = (BuckminsterImportTask)theEObject; + T result = caseBuckminsterImportTask(buckminsterImportTask); + if (result == null) + result = caseSetupTask(buckminsterImportTask); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.PROJECT: + case SetupPackage.API_BASELINE_TASK: { - Project project = (Project)theEObject; - T result = caseProject(project); + ApiBaselineTask apiBaselineTask = (ApiBaselineTask)theEObject; + T result = caseApiBaselineTask(apiBaselineTask); if (result == null) - { - result = caseToolInstallation(project); - } + result = caseSetupTask(apiBaselineTask); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.BRANCH: + case SetupPackage.GIT_CLONE_TASK: { - Branch branch = (Branch)theEObject; - T result = caseBranch(branch); + GitCloneTask gitCloneTask = (GitCloneTask)theEObject; + T result = caseGitCloneTask(gitCloneTask); if (result == null) - { - result = caseToolInstallation(branch); - } + result = caseSetupTask(gitCloneTask); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.API_BASELINE: + case SetupPackage.ECLIPSE_PREFERENCE_TASK: { - ApiBaseline apiBaseline = (ApiBaseline)theEObject; - T result = caseApiBaseline(apiBaseline); + EclipsePreferenceTask eclipsePreferenceTask = (EclipsePreferenceTask)theEObject; + T result = caseEclipsePreferenceTask(eclipsePreferenceTask); + if (result == null) + result = caseSetupTask(eclipsePreferenceTask); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.GIT_CLONE: + case SetupPackage.STRING_VARIABLE_TASK: { - GitClone gitClone = (GitClone)theEObject; - T result = caseGitClone(gitClone); + StringVariableTask stringVariableTask = (StringVariableTask)theEObject; + T result = caseStringVariableTask(stringVariableTask); + if (result == null) + result = caseSetupTask(stringVariableTask); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.SETUP: + case SetupPackage.WORKING_SET_TASK: { - Setup setup = (Setup)theEObject; - T result = caseSetup(setup); + WorkingSetTask workingSetTask = (WorkingSetTask)theEObject; + T result = caseWorkingSetTask(workingSetTask); + if (result == null) + result = caseSetupTask(workingSetTask); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.RESOURCE_COPY_TASK: + { + ResourceCopyTask resourceCopyTask = (ResourceCopyTask)theEObject; + T result = caseResourceCopyTask(resourceCopyTask); + if (result == null) + result = caseSetupTask(resourceCopyTask); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.TEXT_MODIFY_TASK: + { + TextModifyTask textModifyTask = (TextModifyTask)theEObject; + T result = caseTextModifyTask(textModifyTask); + if (result == null) + result = caseSetupTask(textModifyTask); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.TEXT_MODIFICATION: + { + TextModification textModification = (TextModification)theEObject; + T result = caseTextModification(textModification); if (result == null) - { result = defaultCase(theEObject); - } return result; } default: @@ -282,6 +375,54 @@ public class SetupSwitch<T> } /** + * Returns the result of interpreting the object as an instance of '<em>Link Location Task</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Link Location Task</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLinkLocationTask(LinkLocationTask object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Task Container</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Task Container</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSetupTaskContainer(SetupTaskContainer object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Eclipse Preference Task</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Eclipse Preference Task</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEclipsePreferenceTask(EclipsePreferenceTask object) + { + return null; + } + + /** * Returns the result of interpreting the object as an instance of '<em>Eclipse Version</em>'. * <!-- begin-user-doc --> * This implementation returns null; @@ -298,17 +439,17 @@ public class SetupSwitch<T> } /** - * Returns the result of interpreting the object as an instance of '<em>Director Call</em>'. + * Returns the result of interpreting the object as an instance of '<em>P2 Task</em>'. * <!-- begin-user-doc --> * This implementation returns null; * returning a non-null result will terminate the switch. * <!-- end-user-doc --> * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Director Call</em>'. + * @return the result of interpreting the object as an instance of '<em>P2 Task</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseDirectorCall(DirectorCall object) + public T caseP2Task(P2Task object) { return null; } @@ -362,129 +503,257 @@ public class SetupSwitch<T> } /** - * Returns the result of interpreting the object as an instance of '<em>Tool Installation</em>'. + * Returns the result of interpreting the object as an instance of '<em>Project</em>'. * <!-- begin-user-doc --> * This implementation returns null; * returning a non-null result will terminate the switch. * <!-- end-user-doc --> * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Tool Installation</em>'. + * @return the result of interpreting the object as an instance of '<em>Project</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseToolInstallation(ToolInstallation object) + public T caseProject(Project object) { return null; } /** - * Returns the result of interpreting the object as an instance of '<em>Project</em>'. + * Returns the result of interpreting the object as an instance of '<em>Branch</em>'. * <!-- begin-user-doc --> * This implementation returns null; * returning a non-null result will terminate the switch. * <!-- end-user-doc --> * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Project</em>'. + * @return the result of interpreting the object as an instance of '<em>Branch</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseProject(Project object) + public T caseBranch(Branch object) { return null; } /** - * Returns the result of interpreting the object as an instance of '<em>Branch</em>'. + * Returns the result of interpreting the object as an instance of '<em>Api Baseline Task</em>'. * <!-- begin-user-doc --> * This implementation returns null; * returning a non-null result will terminate the switch. * <!-- end-user-doc --> * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Branch</em>'. + * @return the result of interpreting the object as an instance of '<em>Api Baseline Task</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseBranch(Branch object) + public T caseApiBaselineTask(ApiBaselineTask object) { return null; } /** - * Returns the result of interpreting the object as an instance of '<em>Api Baseline</em>'. + * Returns the result of interpreting the object as an instance of '<em>Git Clone Task</em>'. * <!-- begin-user-doc --> * This implementation returns null; * returning a non-null result will terminate the switch. * <!-- end-user-doc --> * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Api Baseline</em>'. + * @return the result of interpreting the object as an instance of '<em>Git Clone Task</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseApiBaseline(ApiBaseline object) + public T caseGitCloneTask(GitCloneTask object) { return null; } /** - * Returns the result of interpreting the object as an instance of '<em>Git Clone</em>'. + * Returns the result of interpreting the object as an instance of '<em>Setup</em>'. * <!-- begin-user-doc --> * This implementation returns null; * returning a non-null result will terminate the switch. * <!-- end-user-doc --> * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Git Clone</em>'. + * @return the result of interpreting the object as an instance of '<em>Setup</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseGitClone(GitClone object) + public T caseSetup(Setup object) { return null; } /** - * Returns the result of interpreting the object as an instance of '<em>Setup</em>'. + * Returns the result of interpreting the object as an instance of '<em>Task</em>'. * <!-- begin-user-doc --> * This implementation returns null; * returning a non-null result will terminate the switch. * <!-- end-user-doc --> * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Setup</em>'. + * @return the result of interpreting the object as an instance of '<em>Task</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseSetup(Setup object) + public T caseSetupTask(SetupTask object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Working Set Task</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Working Set Task</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseWorkingSetTask(WorkingSetTask object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Resource Copy Task</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Resource Copy Task</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseResourceCopyTask(ResourceCopyTask object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Text Modify Task</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Text Modify Task</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTextModifyTask(TextModifyTask object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Text Modification</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Text Modification</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTextModification(TextModification object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Eclipse Ini Task</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Eclipse Ini Task</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEclipseIniTask(EclipseIniTask object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Compound Setup Task</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Compound Setup Task</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCompoundSetupTask(CompoundSetupTask object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>One Time Setup Task</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>One Time Setup Task</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseOneTimeSetupTask(OneTimeSetupTask object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Configurable Item</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Configurable Item</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConfigurableItem(ConfigurableItem object) { return null; } /** - * Returns the result of interpreting the object as an instance of '<em>Tool Preference</em>'. + * Returns the result of interpreting the object as an instance of '<em>Buckminster Import Task</em>'. * <!-- begin-user-doc --> * This implementation returns null; * returning a non-null result will terminate the switch. * <!-- end-user-doc --> * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Tool Preference</em>'. + * @return the result of interpreting the object as an instance of '<em>Buckminster Import Task</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseToolPreference(ToolPreference object) + public T caseBuckminsterImportTask(BuckminsterImportTask object) { return null; } /** - * Returns the result of interpreting the object as an instance of '<em>Link Location</em>'. + * Returns the result of interpreting the object as an instance of '<em>String Variable Task</em>'. * <!-- begin-user-doc --> * This implementation returns null; * returning a non-null result will terminate the switch. * <!-- end-user-doc --> * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Link Location</em>'. + * @return the result of interpreting the object as an instance of '<em>String Variable Task</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseLinkLocation(LinkLocation object) + public T caseStringVariableTask(StringVariableTask object) { return null; } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/StringExpander.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/StringExpander.java new file mode 100644 index 0000000000..9213edf21f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/StringExpander.java @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.setup.util; + +/** + * @author Eike Stepper + */ +public interface StringExpander +{ + public String expandString(String string); +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/TargetPlatformUtil.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/TargetPlatformUtil.java new file mode 100644 index 0000000000..2ac501ded0 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/TargetPlatformUtil.java @@ -0,0 +1,155 @@ +/* + * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.setup.util; + +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogMonitor; + +import org.eclipse.buckminster.runtime.MonitorUtils; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.pde.core.target.ITargetDefinition; +import org.eclipse.pde.core.target.ITargetHandle; +import org.eclipse.pde.core.target.ITargetLocation; +import org.eclipse.pde.core.target.ITargetPlatformService; +import org.eclipse.pde.core.target.LoadTargetDefinitionJob; + +import java.io.File; +import java.io.IOException; + +/** + * @author Eike Stepper + */ +public final class TargetPlatformUtil +{ + public static boolean hasTargetPlatform(String targetPlatformPath, ProgressLog progress) + { + ITargetPlatformService service = null; + + try + { + service = ServiceUtil.getService(ITargetPlatformService.class); + for (ITargetHandle targetHandle : service.getTargets(new ProgressLogMonitor(progress))) + { + try + { + ITargetDefinition candidate = targetHandle.getTargetDefinition(); + ITargetLocation[] containers = candidate.getTargetLocations(); + if (containers == null || containers.length != 1) + { + continue; + } + + String location = containers[0].getLocation(true); + if (targetPlatformPath.equals(location)) + { + File file = new File(location); + // Check that it's a directory that contains not only "." and ".." + return file.isDirectory() && file.listFiles().length > 2; + } + } + catch (CoreException ex) + { + // Ignore + } + } + } + finally + { + ServiceUtil.ungetService(service); + } + + return false; + } + + public static void setTargetPlatform(String targetPlatformPath, String name, boolean active, ProgressLog progress) + throws Exception + { + ITargetPlatformService service = null; + + try + { + service = ServiceUtil.getService(ITargetPlatformService.class); + ITargetDefinition target = null; + for (ITargetHandle targetHandle : service.getTargets(new ProgressLogMonitor(progress))) + { + ITargetDefinition candidate = targetHandle.getTargetDefinition(); + ITargetLocation[] containers = candidate.getTargetLocations(); + if (containers == null || containers.length != 1) + { + continue; + } + + if (targetPlatformPath.equals(containers[0].getLocation(true))) + { + ITargetHandle activeHandle = service.getWorkspaceTargetHandle(); + if (activeHandle != null && activeHandle.equals(targetHandle)) + { + // This target is already active. Nothing left to do here + return; + } + + target = candidate; + break; + } + } + + if (target == null) + { + target = service.newTarget(); + ITargetLocation container = service.newDirectoryLocation(targetPlatformPath); + target.setTargetLocations(new ITargetLocation[] { container }); + target.setName(name); + File tpDir = new File(targetPlatformPath); + if (!tpDir.isDirectory()) + { + tpDir.mkdirs(); + if (!tpDir.isDirectory()) + { + throw new IOException("Unable to create target platform directory: " + tpDir); + } + } + } + + service.saveTargetDefinition(target); + if (active) + { + setTargetActive(target, new ProgressLogMonitor(progress)); + } + } + finally + { + ServiceUtil.ungetService(service); + } + } + + public static void setTargetActive(ITargetDefinition target, IProgressMonitor monitor) throws Exception + { + MonitorUtils.begin(monitor, 100); + + try + { + target.resolve(MonitorUtils.subMonitor(monitor, 50)); + + LoadTargetDefinitionJob job = new LoadTargetDefinitionJob(target); + IStatus status = job.run(MonitorUtils.subMonitor(monitor, 50)); + if (status.getSeverity() == IStatus.ERROR) + { + throw new CoreException(status); + } + } + finally + { + MonitorUtils.done(monitor); + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLog.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLog.java index 98fd11f850..3123c0f59f 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLog.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLog.java @@ -8,7 +8,7 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.helper; +package org.eclipse.emf.cdo.releng.setup.util.log; import java.util.concurrent.atomic.AtomicReference; @@ -21,5 +21,5 @@ public interface ProgressLog public boolean isCancelled(); - public void addLine(String line); + public void log(String line); } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogMonitor.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogMonitor.java index 2632d50b79..0999d3e609 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogMonitor.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogMonitor.java @@ -8,7 +8,7 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.helper; +package org.eclipse.emf.cdo.releng.setup.util.log; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; @@ -42,20 +42,20 @@ public class ProgressLogMonitor extends ProgressMonitorWrapper public void beginTask(String name, int totalWork) { super.beginTask(name, totalWork); - log.addLine(name); + log.log(name); } @Override public void setTaskName(String name) { super.setTaskName(name); - log.addLine(name); + log.log(name); } @Override public void subTask(String name) { super.subTask(name); - log.addLine(name); + log.log(name); } } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogProvider.java index 40622966b3..02d15d6c34 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogProvider.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogProvider.java @@ -8,7 +8,7 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.helper; +package org.eclipse.emf.cdo.releng.setup.util.log; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.jobs.Job; diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogRunnable.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogRunnable.java index 84283cec9f..99dd18c9a3 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogRunnable.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogRunnable.java @@ -8,7 +8,7 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.helper; +package org.eclipse.emf.cdo.releng.setup.util.log; /** * @author Eike Stepper diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/.classpath b/plugins/org.eclipse.emf.cdo.releng.ui/.classpath new file mode 100644 index 0000000000..64c5e31b7a --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.ui/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <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="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.project b/plugins/org.eclipse.emf.cdo.releng.ui/.project index 92b1eab6e4..f7222c5cc8 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.project +++ b/plugins/org.eclipse.emf.cdo.releng.ui/.project @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <projectDescription> - <name>org.eclipse.emf.cdo.releng.setup.ui</name> + <name>org.eclipse.emf.cdo.releng.ui</name> <comment></comment> <projects> </projects> @@ -26,8 +26,8 @@ </buildCommand> </buildSpec> <natures> - <nature>org.eclipse.jdt.core.javanature</nature> <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> <nature>org.eclipse.emf.cdo.releng.version.VersionNature</nature> </natures> </projectDescription> diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000..703ca4a310 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,3 @@ +#Mon Jul 11 16:02:45 CEST 2011 +eclipse.preferences.version=1 + diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..48aafaf7ea --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,381 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +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.doc.comment.support=enabled +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.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +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.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +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=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +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=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +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.unusedObjectAllocation=ignore +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.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled +org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW +org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED +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=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=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true +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=false +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=120 +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=2 +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=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=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=do not 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=space +org.eclipse.jdt.core.formatter.tabulation.size=2 +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/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000000..3fc140fcdc --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,119 @@ +cleanup.add_default_serial_version_id=true +cleanup.add_generated_serial_version_id=false +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=false +cleanup.always_use_this_for_non_static_method_access=false +cleanup.convert_to_enhanced_for_loop=false +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=false +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=false +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=false +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=false +cleanup.qualify_static_method_accesses_with_declaring_class=false +cleanup.remove_private_constructors=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_parentheses_in_expressions=true +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=true +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=true +cleanup_profile=_EMFT +cleanup_settings_version=2 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +formatter_profile=_EMFT +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=ex +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.ignorelowercasenames=true +org.eclipse.jdt.ui.importorder=org.eclipse.emf.cdo;org.eclipse.emf.internal.cdo;org.eclipse.net4j;org.eclipse.internal.net4j;org.eclipse.emf;org.eclipse;com;org;javax;java; +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=false +org.eclipse.jdt.ui.ondemandthreshold=99 +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.staticondemandthreshold=99 +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" 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 * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made 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 * Eike Stepper - initial API and implementation\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 * @author Eike Stepper\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\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.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" 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">${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${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}</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> +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=false +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=false +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=false +sp_cleanup.make_parameters_final=false +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=false +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=true +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=true +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.ltk.core.refactoring.prefs new file mode 100644 index 0000000000..864e30fe5d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.ltk.core.refactoring.prefs @@ -0,0 +1,3 @@ +#Thu Feb 04 09:44:24 CET 2010 +eclipse.preferences.version=1 +org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs new file mode 100644 index 0000000000..b050639a54 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs @@ -0,0 +1,4 @@ +#Thu Feb 04 09:44:24 CET 2010 +eclipse.preferences.version=1 +project.repository.kind=bugzilla +project.repository.url=https\://bugs.eclipse.org/bugs diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.mylyn.team.ui.prefs new file mode 100644 index 0000000000..2f50f36c0c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.mylyn.team.ui.prefs @@ -0,0 +1,3 @@ +#Thu Feb 04 09:44:24 CET 2010 +commit.comment.template=[${task.id}] ${task.description} \r\n${task.url} +eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.pde.api.tools.prefs new file mode 100644 index 0000000000..0c17d59e45 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.pde.api.tools.prefs @@ -0,0 +1,95 @@ +#Thu Feb 04 09:44:24 CET 2010 +ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error +ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error +ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error +API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error +CLASS_ELEMENT_TYPE_ADDED_METHOD=Error +CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error +CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error +CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error +CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error +ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error +ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error +ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +FIELD_ELEMENT_TYPE_ADDED_VALUE=Error +FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error +FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error +FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error +FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error +ILLEGAL_EXTEND=Warning +ILLEGAL_IMPLEMENT=Warning +ILLEGAL_INSTANTIATE=Warning +ILLEGAL_OVERRIDE=Warning +ILLEGAL_REFERENCE=Warning +INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error +INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error +INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error +INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error +INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error +INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error +INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +INVALID_JAVADOC_TAG=Ignore +INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error +MISSING_EE_DESCRIPTIONS=Warning +LEAK_EXTEND=Warning +LEAK_FIELD_DECL=Warning +LEAK_IMPLEMENT=Warning +LEAK_METHOD_PARAM=Warning +LEAK_METHOD_RETURN_TYPE=Warning +METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error +METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error +METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error +METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error +METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error +METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error +METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error +TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error +UNUSED_PROBLEM_FILTERS=Ignore +automatically_removed_unused_problem_filters=Disabled +eclipse.preferences.version=1 +incompatible_api_component_version=Error +incompatible_api_component_version_include_major_without_breaking_change=Disabled +incompatible_api_component_version_include_minor_without_api_change=Disabled +invalid_since_tag_version=Error +malformed_since_tag=Error +missing_since_tag=Error +report_api_breakage_when_major_version_incremented=Disabled +report_resolution_errors_api_component=Warning diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.pde.prefs new file mode 100644 index 0000000000..fe01bb701d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.pde.prefs @@ -0,0 +1,31 @@ +#Thu Feb 04 09:44:24 CET 2010 +compilers.f.unresolved-features=1 +compilers.f.unresolved-plugins=1 +compilers.incompatible-environment=1 +compilers.p.build=1 +compilers.p.build.bin.includes=1 +compilers.p.build.java.compliance=1 +compilers.p.build.missing.output=2 +compilers.p.build.output.library=1 +compilers.p.build.source.library=1 +compilers.p.build.src.includes=1 +compilers.p.deprecated=2 +compilers.p.discouraged-class=1 +compilers.p.internal=1 +compilers.p.missing-packages=1 +compilers.p.missing-version-export-package=1 +compilers.p.missing-version-import-package=1 +compilers.p.missing-version-require-bundle=1 +compilers.p.no-required-att=0 +compilers.p.not-externalized-att=2 +compilers.p.unknown-attribute=1 +compilers.p.unknown-class=1 +compilers.p.unknown-element=1 +compilers.p.unknown-identifier=1 +compilers.p.unknown-resource=1 +compilers.p.unresolved-ex-points=0 +compilers.p.unresolved-import=0 +compilers.s.create-docs=false +compilers.s.doc-folder=doc +compilers.s.open-tags=1 +eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.ui/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..4e46724dbb --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.ui/META-INF/MANIFEST.MF @@ -0,0 +1,21 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-SymbolicName: org.eclipse.emf.cdo.releng.ui;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Name: %pluginName +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-ActivationPolicy: lazy +Bundle-Activator: org.eclipse.emf.cdo.releng.ui.Activator +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Bundle-ClassPath: . +Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", + org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)", + org.eclipse.core.filebuffers;bundle-version="[3.5.0,4.0.0)", + org.eclipse.jface.text;bundle-version="[3.8.0,4.0.0)", + org.eclipse.ui;bundle-version="[3.5.0,4.0.0)", + org.eclipse.ui.ide;bundle-version="[3.5.0,4.0.0)", + org.eclipse.pde.core;bundle-version="[3.5.0,4.0.0)" +Export-Package: org.eclipse.emf.cdo.releng.ui;version="1.0.0";x-internal:=true, + org.eclipse.emf.cdo.releng.ui.preferences;version="1.0.0";x-internal:=true +Eclipse-BuddyPolicy: dependent diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/about.html b/plugins/org.eclipse.emf.cdo.releng.ui/about.html new file mode 100644 index 0000000000..d35d5aed64 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.ui/about.html @@ -0,0 +1,28 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>About</title> +</head> +<body lang="EN-US"> +<h2>About This Content</h2> + +<p>June 5, 2007</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. +For purposes of the EPL, "Program" will mean the Content.</p> + +<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p> + +</body> +</html> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/build.properties b/plugins/org.eclipse.emf.cdo.releng.ui/build.properties index 090c97473b..fd1bda38c4 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/build.properties +++ b/plugins/org.eclipse.emf.cdo.releng.ui/build.properties @@ -1,4 +1,4 @@ -# Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. +# Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at @@ -7,14 +7,19 @@ # Contributors: # Eike Stepper - initial API and implementation -bin.includes = .,\ - icons/,\ - META-INF/,\ - plugin.properties,\ - about.html,\ - copyright.txt -jars.compile.order = . +# NLS_MESSAGEFORMAT_VAR + source.. = src/ -output.. = bin +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + about.html,\ + copyright.txt,\ + plugin.properties,\ + plugin.xml src.includes = about.html,\ copyright.txt + +doc.project = org.eclipse.emf.cdo.releng.version.doc + +generateSourceReferences = true diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/copyright.txt b/plugins/org.eclipse.emf.cdo.releng.ui/copyright.txt new file mode 100644 index 0000000000..1c77978050 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.ui/copyright.txt @@ -0,0 +1,8 @@ +Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. +All rights reserved. This program and the accompanying materials +are made available under the terms of the Eclipse Public License v1.0 +which accompanies this distribution, and is available at +http://www.eclipse.org/legal/epl-v10.html + +Contributors: + Eike Stepper - initial API and implementation diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.ui/plugin.properties index 409b0427e7..3aab2f8dbb 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/plugin.properties +++ b/plugins/org.eclipse.emf.cdo.releng.ui/plugin.properties @@ -1,4 +1,4 @@ -# Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. +# Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at @@ -7,5 +7,5 @@ # Contributors: # Eike Stepper - initial API and implementation -pluginName = Setup Development Environment UI +pluginName = Version Management Tool UI providerName = Eclipse Modeling Project diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.ui/plugin.xml new file mode 100644 index 0000000000..47177ad11c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.ui/plugin.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.4"?> +<!-- + Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + Eike Stepper - initial API and implementation +--> + +<plugin> + + <extension + point="org.eclipse.ui.preferencePages"> + <page + class="org.eclipse.emf.cdo.releng.ui.preferences.RelengPreferencePage" + id="org.eclipse.emf.cdo.releng.ui.preferences.RelengPreferencePage" + name="Release Engineering"> + </page> + </extension> + +</plugin> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/emf/cdo/releng/setup/ui/Activator.java b/plugins/org.eclipse.emf.cdo.releng.ui/src/org/eclipse/emf/cdo/releng/ui/Activator.java index 1af47fd974..30323d4555 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/emf/cdo/releng/setup/ui/Activator.java +++ b/plugins/org.eclipse.emf.cdo.releng.ui/src/org/eclipse/emf/cdo/releng/ui/Activator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. + * Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -8,12 +8,12 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.ui; +package org.eclipse.emf.cdo.releng.ui; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; -import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.swt.graphics.Image; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext; @@ -23,7 +23,13 @@ import org.osgi.framework.BundleContext; */ public class Activator extends AbstractUIPlugin { - public static final String PLUGIN_ID = "org.eclipse.emf.cdo.releng.setup.ui"; + public static final String CORRECTION_DELETE_GIF = "icons/correction_delete.gif"; + + public static final String CORRECTION_CHANGE_GIF = "icons/correction_change.gif"; + + public static final String CORRECTION_CONFIGURE_GIF = "icons/correction_configure.gif"; + + public static final String PLUGIN_ID = "org.eclipse.emf.cdo.releng.ui"; private static Activator plugin; @@ -31,11 +37,26 @@ public class Activator extends AbstractUIPlugin { } + public static Activator getPlugin() + { + return plugin; + } + @Override public void start(BundleContext context) throws Exception { super.start(context); plugin = this; + + registerImage(CORRECTION_CHANGE_GIF); + registerImage(CORRECTION_DELETE_GIF); + registerImage(CORRECTION_CONFIGURE_GIF); + } + + private void registerImage(String key) + { + Image image = imageDescriptorFromPlugin(PLUGIN_ID, key).createImage(); + getImageRegistry().put(key, image); } @Override @@ -47,12 +68,7 @@ public class Activator extends AbstractUIPlugin public static void log(String message) { - log(message, IStatus.INFO); - } - - protected static void log(String message, int severity) - { - plugin.getLog().log(new Status(severity, PLUGIN_ID, message)); + plugin.getLog().log(new Status(IStatus.INFO, PLUGIN_ID, message)); } public static void log(IStatus status) @@ -83,14 +99,4 @@ public class Activator extends AbstractUIPlugin return new Status(IStatus.ERROR, PLUGIN_ID, msg, t); } - - public static Activator getDefault() - { - return plugin; - } - - public static ImageDescriptor getImageDescriptor(String path) - { - return imageDescriptorFromPlugin(PLUGIN_ID, path); - } } diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/src/org/eclipse/emf/cdo/releng/ui/preferences/RelengPreferencePage.java b/plugins/org.eclipse.emf.cdo.releng.ui/src/org/eclipse/emf/cdo/releng/ui/preferences/RelengPreferencePage.java new file mode 100644 index 0000000000..03f26c665f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.ui/src/org/eclipse/emf/cdo/releng/ui/preferences/RelengPreferencePage.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.ui.preferences; + +import org.eclipse.jface.preference.PreferencePage; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPreferencePage; + +/** + * @author Eike Stepper + */ +public class RelengPreferencePage extends PreferencePage implements IWorkbenchPreferencePage +{ + public RelengPreferencePage() + { + super("<taken from plugin.xml>"); + setDescription("General Release Engineering Preferences"); + } + + public void init(IWorkbench workbench) + { + // Do nothing + } + + @Override + protected Control createContents(Composite parent) + { + return new Composite(parent, SWT.NULL); + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/META-INF/MANIFEST.MF index c0bbc659c0..c3089720a6 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/META-INF/MANIFEST.MF @@ -10,6 +10,8 @@ Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: J2SE-1.5 Export-Package: org.eclipse.emf.cdo.releng.workingsets.provider;version="1.0.0" Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", - org.eclipse.emf.cdo.releng.workingsets;bundle-version="[1.0.0,2.0.0)";visibility:=reexport, - org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport + org.eclipse.emf.cdo.releng.workingsets;visibility:=reexport;bundle-version="[1.0.0,2.0.0)", + org.eclipse.emf.edit;visibility:=reexport;bundle-version="[2.5.0,3.0.0)", + org.eclipse.emf.cdo.releng.predicates;visibility:=reexport;bundle-version="[1.0.0,2.0.0)", + org.eclipse.emf.cdo.releng.predicates.edit;visibility:=reexport;bundle-version="[1.0.0,2.0.0)" Bundle-ActivationPolicy: lazy diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/plugin.properties index 7ea4dddd2b..eea0d15e75 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/plugin.properties +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/plugin.properties @@ -33,3 +33,4 @@ _UI_WorkingSetGroup_workingSets_feature = Working Sets _UI_NamePredicate_pattern_feature = Pattern _UI_Unknown_feature = Unspecified +_UI_WorkingSet_id_feature = Id diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetItemProvider.java index a1caec5df8..cd709b243d 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetItemProvider.java +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetItemProvider.java @@ -11,9 +11,7 @@ package org.eclipse.emf.cdo.releng.workingsets.provider; import org.eclipse.emf.cdo.releng.workingsets.WorkingSet; -import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsFactory; import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage; - import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.util.ResourceLocator; @@ -28,9 +26,9 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ViewerNotification; - import java.util.Collection; import java.util.List; +import org.eclipse.emf.cdo.releng.predicates.PredicatesFactory; /** * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet} object. @@ -170,6 +168,7 @@ public class WorkingSetItemProvider extends ItemProviderAdapter implements IEdit switch (notification.getFeatureID(WorkingSet.class)) { case WorkingSetsPackage.WORKING_SET__NAME: + case WorkingSetsPackage.WORKING_SET__ID: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); return; case WorkingSetsPackage.WORKING_SET__PREDICATES: @@ -192,7 +191,28 @@ public class WorkingSetItemProvider extends ItemProviderAdapter implements IEdit super.collectNewChildDescriptors(newChildDescriptors, object); newChildDescriptors.add(createChildParameter(WorkingSetsPackage.Literals.WORKING_SET__PREDICATES, - WorkingSetsFactory.eINSTANCE.createNamePredicate())); + PredicatesFactory.eINSTANCE.createNamePredicate())); + + newChildDescriptors.add(createChildParameter(WorkingSetsPackage.Literals.WORKING_SET__PREDICATES, + PredicatesFactory.eINSTANCE.createRepositoryPredicate())); + + newChildDescriptors.add(createChildParameter(WorkingSetsPackage.Literals.WORKING_SET__PREDICATES, + PredicatesFactory.eINSTANCE.createAndPredicate())); + + newChildDescriptors.add(createChildParameter(WorkingSetsPackage.Literals.WORKING_SET__PREDICATES, + PredicatesFactory.eINSTANCE.createOrPredicate())); + + newChildDescriptors.add(createChildParameter(WorkingSetsPackage.Literals.WORKING_SET__PREDICATES, + PredicatesFactory.eINSTANCE.createNotPredicate())); + + newChildDescriptors.add(createChildParameter(WorkingSetsPackage.Literals.WORKING_SET__PREDICATES, + PredicatesFactory.eINSTANCE.createNaturePredicate())); + + newChildDescriptors.add(createChildParameter(WorkingSetsPackage.Literals.WORKING_SET__PREDICATES, + PredicatesFactory.eINSTANCE.createBuilderPredicate())); + + newChildDescriptors.add(createChildParameter(WorkingSetsPackage.Literals.WORKING_SET__PREDICATES, + PredicatesFactory.eINSTANCE.createFilePredicate())); } /** diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetsEditPlugin.java b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetsEditPlugin.java index ee8029d114..2f963e7e4d 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetsEditPlugin.java +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetsEditPlugin.java @@ -10,6 +10,7 @@ */ package org.eclipse.emf.cdo.releng.workingsets.provider; +import org.eclipse.emf.cdo.releng.predicates.provider.PredicatesEditPlugin; import org.eclipse.emf.common.EMFPlugin; import org.eclipse.emf.common.util.ResourceLocator; @@ -45,7 +46,7 @@ public final class WorkingSetsEditPlugin extends EMFPlugin */ public WorkingSetsEditPlugin() { - super(new ResourceLocator[] {}); + super(new ResourceLocator[] { PredicatesEditPlugin.INSTANCE, }); } /** diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetsItemProviderAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetsItemProviderAdapterFactory.java index 63fc58cd4d..0766222522 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetsItemProviderAdapterFactory.java +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetsItemProviderAdapterFactory.java @@ -132,31 +132,6 @@ public class WorkingSetsItemProviderAdapterFactory extends WorkingSetsAdapterFac } /** - * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.workingsets.NamePredicate} instances. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected NamePredicateItemProvider namePredicateItemProvider; - - /** - * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.workingsets.NamePredicate}. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Adapter createNamePredicateAdapter() - { - if (namePredicateItemProvider == null) - { - namePredicateItemProvider = new NamePredicateItemProvider(this); - } - - return namePredicateItemProvider; - } - - /** * This returns the root adapter factory that contains this factory. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -212,7 +187,7 @@ public class WorkingSetsItemProviderAdapterFactory extends WorkingSetsAdapterFac if (isFactoryForType(type)) { Object adapter = super.adapt(object, type); - if (!(type instanceof Class<?>) || ((Class<?>)type).isInstance(adapter)) + if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) { return adapter; } @@ -268,17 +243,9 @@ public class WorkingSetsItemProviderAdapterFactory extends WorkingSetsAdapterFac public void dispose() { if (workingSetItemProvider != null) - { workingSetItemProvider.dispose(); - } if (workingSetGroupItemProvider != null) - { workingSetGroupItemProvider.dispose(); - } - if (namePredicateItemProvider != null) - { - namePredicateItemProvider.dispose(); - } } } diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/META-INF/MANIFEST.MF index fb1f1f6f77..bd1f928cae 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/META-INF/MANIFEST.MF @@ -12,7 +12,8 @@ Export-Package: org.eclipse.emf.cdo.releng.workingsets.presentation;version="1.0 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)";visibility:=reexport, org.eclipse.emf.cdo.releng.workingsets.edit;bundle-version="[1.0.0,2.0.0)";visibility:=reexport, - org.eclipse.emf.ecore.xmi;visibility:=reexport;bundle-version="[2.5.0,3.0.0)", - org.eclipse.emf.edit.ui;visibility:=reexport;bundle-version="[2.5.0,3.0.0)", - org.eclipse.ui.ide;visibility:=reexport;bundle-version="[3.5.0,4.0.0)" + org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)";visibility:=reexport, + org.eclipse.emf.edit.ui;bundle-version="[2.5.0,3.0.0)";visibility:=reexport, + org.eclipse.ui.ide;bundle-version="[3.5.0,4.0.0)";visibility:=reexport, + org.eclipse.emf.cdo.releng.predicates.edit;bundle-version="[1.0.0,2.0.0)";visibility:=reexport Bundle-ActivationPolicy: lazy diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/plugin.properties index ef1729083d..97efd99ae3 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/plugin.properties +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/plugin.properties @@ -33,7 +33,7 @@ _UI_MultiObjectSelected = Selected {0} Objects _UI_OpenEditorError_label = Open Editor -_UI_Wizard_category = Example EMF Model Creation Wizards +_UI_Wizard_category = Release Engineering _UI_CreateModelError_message = Problems encountered in file "{0}" diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/plugin.xml index 828474b25a..41f9b292d5 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/plugin.xml +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/plugin.xml @@ -23,6 +23,7 @@ <extension point="org.eclipse.ui.preferencePages"> <page + category="org.eclipse.emf.cdo.releng.ui.preferences.RelengPreferencePage" class="org.eclipse.emf.cdo.releng.workingsets.presentation.WorkingSetsPreferencePage" id="org.eclipse.emf.cdo.releng.workingsets.presentation.VersionBuilderPreferencePage" name="Dynamic Working Sets"> @@ -34,11 +35,14 @@ <category id="org.eclipse.emf.ecore.Wizard.category.ID" name="%_UI_Wizard_category"/> + <category + id="org.eclipse.emf.cdo.releng" + name="%_UI_Wizard_category"/> <wizard id="org.eclipse.emf.cdo.releng.workingsets.presentation.WorkingSetsModelWizardID" name="%_UI_WorkingSetsModelWizard_label" class="org.eclipse.emf.cdo.releng.workingsets.presentation.WorkingSetsModelWizard" - category="org.eclipse.emf.ecore.Wizard.category.ID" + category="org.eclipse.emf.cdo.releng" icon="icons/full/obj16/WorkingSetsModelFile.gif"> <description>%_UI_WorkingSetsModelWizard_description</description> <selection class="org.eclipse.core.resources.IResource"/> diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetManager.java b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetManager.java index 4aec8b85f6..dbaaa5c6a5 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetManager.java +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetManager.java @@ -10,7 +10,7 @@ */ package org.eclipse.emf.cdo.releng.workingsets.presentation; -import org.eclipse.emf.cdo.releng.workingsets.Predicate; +import org.eclipse.emf.cdo.releng.predicates.Predicate; import org.eclipse.emf.cdo.releng.workingsets.WorkingSet; import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup; import org.eclipse.emf.cdo.releng.workingsets.util.WorkingSetsUtil; diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsEditor.java b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsEditor.java index db28ea16b6..db7d61c916 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsEditor.java +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsEditor.java @@ -13,6 +13,7 @@ package org.eclipse.emf.cdo.releng.workingsets.presentation; import org.eclipse.emf.cdo.releng.workingsets.impl.PreferencesURIHandlerImpl; import org.eclipse.emf.cdo.releng.workingsets.provider.WorkingSetsItemProviderAdapterFactory; +import org.eclipse.emf.cdo.releng.predicates.provider.PredicatesItemProviderAdapterFactory; import org.eclipse.emf.common.command.BasicCommandStack; import org.eclipse.emf.common.command.Command; import org.eclipse.emf.common.command.CommandStack; @@ -697,6 +698,7 @@ public class WorkingSetsEditor extends MultiPageEditorPart implements IEditingDo adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory()); adapterFactory.addAdapterFactory(new WorkingSetsItemProviderAdapterFactory()); + adapterFactory.addAdapterFactory(new PredicatesItemProviderAdapterFactory()); adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory()); // Create the command stack that will notify this editor as commands are executed. @@ -1480,7 +1482,7 @@ public class WorkingSetsEditor extends MultiPageEditorPart implements IEditingDo */ protected void doSaveAs(URI uri, IEditorInput editorInput) { - editingDomain.getResourceSet().getResources().get(0).setURI(uri); + (editingDomain.getResourceSet().getResources().get(0)).setURI(uri); setInputWithNotify(editorInput); setPartName(editorInput.getName()); IProgressMonitor progressMonitor = getActionBars().getStatusLineManager() != null ? getActionBars() diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsEditorPlugin.java b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsEditorPlugin.java index b84f5a8165..e37dbc5e9a 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsEditorPlugin.java +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsEditorPlugin.java @@ -10,6 +10,7 @@ */ package org.eclipse.emf.cdo.releng.workingsets.presentation; +import org.eclipse.emf.cdo.releng.predicates.provider.PredicatesEditPlugin; import org.eclipse.emf.common.EMFPlugin; import org.eclipse.emf.common.ui.EclipseUIPlugin; import org.eclipse.emf.common.util.ResourceLocator; @@ -48,7 +49,7 @@ public final class WorkingSetsEditorPlugin extends EMFPlugin */ public WorkingSetsEditorPlugin() { - super(new ResourceLocator[] {}); + super(new ResourceLocator[] { PredicatesEditPlugin.INSTANCE, }); } /** diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsPreferencePage.java b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsPreferencePage.java index 767cfc3824..539edfa558 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsPreferencePage.java +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsPreferencePage.java @@ -10,11 +10,11 @@ */ package org.eclipse.emf.cdo.releng.workingsets.presentation; -import org.eclipse.emf.cdo.releng.workingsets.provider.WorkingSetsItemProviderAdapterFactory; -import org.eclipse.emf.cdo.releng.workingsets.util.WorkingSetsAdapterFactory; import org.eclipse.emf.cdo.releng.workingsets.util.WorkingSetsUtil; +import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.ui.URIEditorInput; +import org.eclipse.emf.edit.provider.ComposedAdapterFactory; import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; @@ -73,7 +73,7 @@ public class WorkingSetsPreferencePage extends PreferencePage implements IWorkbe composite.setLayout(layout); TreeViewer treeViewer = new TreeViewer(composite); - WorkingSetsAdapterFactory adapterFactory = new WorkingSetsItemProviderAdapterFactory(); + AdapterFactory adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE); treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory)); treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory)); treeViewer.setInput(WorkingSetsUtil.getWorkingSetGroup()); diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.workingsets/META-INF/MANIFEST.MF index b67d6138b0..d6efd9b362 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/META-INF/MANIFEST.MF @@ -7,7 +7,8 @@ Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-Localization: plugin Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", - org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)";visibility:=reexport, + org.eclipse.emf.ecore;visibility:=reexport;bundle-version="[2.9.0,3.0.0)", + org.eclipse.emf.cdo.releng.predicates;visibility:=reexport;bundle-version="[1.0.0,2.0.0)", org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)" Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: J2SE-1.5 diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecore b/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecore index 92e795e6ce..1b411afac1 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecore +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecore @@ -3,23 +3,16 @@ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="workingsets" nsURI="http://www.eclipse.org/CDO/releng/workingsets/1.0" nsPrefix="workingsets"> <eClassifiers xsi:type="ecore:EClass" name="WorkingSet"> - <eStructuralFeatures xsi:type="ecore:EReference" name="predicates" upperBound="-1" - eType="#//Predicate" containment="true"/> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="predicates" upperBound="-1" + eType="ecore:EClass ../../org.eclipse.emf.cdo.releng.predicates/model/predicates.ecore#//Predicate" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="WorkingSetGroup"> <eStructuralFeatures xsi:type="ecore:EReference" name="workingSets" upperBound="-1" eType="#//WorkingSet" containment="true" eKeys="#//WorkingSet/name"/> </eClassifiers> - <eClassifiers xsi:type="ecore:EClass" name="Predicate" abstract="true" interface="true"> - <eOperations name="matches" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> - <eParameters name="project" eType="#//Project"/> - </eOperations> - </eClassifiers> <eClassifiers xsi:type="ecore:EDataType" name="Project" instanceClassName="org.eclipse.core.resources.IProject" serializable="false"/> - <eClassifiers xsi:type="ecore:EClass" name="NamePredicate" eSuperTypes="#//Predicate"> - <eStructuralFeatures xsi:type="ecore:EAttribute" name="pattern" lowerBound="1" - eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - </eClassifiers> </ecore:EPackage> diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecorediag b/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecorediag index 1fadaeec92..e82095abde 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecorediag +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecorediag @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_7Ik9wANJEeOzDrIpOa7NnA" type="EcoreTools" measurementUnit="Pixel"> +<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_7Ik9wANJEeOzDrIpOa7NnA" type="EcoreTools" measurementUnit="Pixel"> <children xmi:type="notation:Node" xmi:id="_7JI-cANJEeOzDrIpOa7NnA" type="1001"> <children xmi:type="notation:Node" xmi:id="_7JdukANJEeOzDrIpOa7NnA" type="4001"/> <children xmi:type="notation:Node" xmi:id="_7Je8sANJEeOzDrIpOa7NnA" type="5001"> @@ -7,6 +7,10 @@ <element xmi:type="ecore:EAttribute" href="workingsets.ecore#//WorkingSet/name"/> <layoutConstraint xmi:type="notation:Location" xmi:id="_lY9kwQNLEeOzDrIpOa7NnA"/> </children> + <children xmi:type="notation:Node" xmi:id="_fvvEMDVYEeO0we5dUm5hxw" type="2001"> + <element xmi:type="ecore:EAttribute" href="workingsets.ecore#//WorkingSet/id"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_fvvEMTVYEeO0we5dUm5hxw"/> + </children> <styles xmi:type="notation:DrawerStyle" xmi:id="_7Je8sQNJEeOzDrIpOa7NnA"/> <styles xmi:type="notation:SortingStyle" xmi:id="_7Je8sgNJEeOzDrIpOa7NnA"/> <styles xmi:type="notation:FilteringStyle" xmi:id="_7Je8swNJEeOzDrIpOa7NnA"/> @@ -36,26 +40,6 @@ <element xmi:type="ecore:EClass" href="workingsets.ecore#//WorkingSetGroup"/> <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8tuWogNJEeOzDrIpOa7NnA" x="105" y="35"/> </children> - <children xmi:type="notation:Node" xmi:id="_WOD9UANKEeOzDrIpOa7NnA" type="1001"> - <children xmi:type="notation:Node" xmi:id="_WOFygANKEeOzDrIpOa7NnA" type="4001"/> - <children xmi:type="notation:Node" xmi:id="_WOFygQNKEeOzDrIpOa7NnA" type="5001"> - <styles xmi:type="notation:DrawerStyle" xmi:id="_WOFyggNKEeOzDrIpOa7NnA"/> - <styles xmi:type="notation:SortingStyle" xmi:id="_WOFygwNKEeOzDrIpOa7NnA"/> - <styles xmi:type="notation:FilteringStyle" xmi:id="_WOFyhANKEeOzDrIpOa7NnA"/> - </children> - <children xmi:type="notation:Node" xmi:id="_WOGZkANKEeOzDrIpOa7NnA" type="5002"> - <children xmi:type="notation:Node" xmi:id="_X4DZ8ANKEeOzDrIpOa7NnA" type="2002"> - <element xmi:type="ecore:EOperation" href="workingsets.ecore#//Predicate/matches"/> - <layoutConstraint xmi:type="notation:Location" xmi:id="_X4DZ8QNKEeOzDrIpOa7NnA"/> - </children> - <styles xmi:type="notation:DrawerStyle" xmi:id="_WOGZkQNKEeOzDrIpOa7NnA"/> - <styles xmi:type="notation:SortingStyle" xmi:id="_WOHAoANKEeOzDrIpOa7NnA"/> - <styles xmi:type="notation:FilteringStyle" xmi:id="_WOHAoQNKEeOzDrIpOa7NnA"/> - </children> - <styles xmi:type="notation:ShapeStyle" xmi:id="_WOD9UQNKEeOzDrIpOa7NnA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> - <element xmi:type="ecore:EClass" href="workingsets.ecore#//Predicate"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WOD9UgNKEeOzDrIpOa7NnA" x="71" y="260"/> - </children> <children xmi:type="notation:Node" xmi:id="_bidPIANKEeOzDrIpOa7NnA" type="1004"> <children xmi:type="notation:Node" xmi:id="_bifrYANKEeOzDrIpOa7NnA" type="4008"/> <children xmi:type="notation:Node" xmi:id="_big5gANKEeOzDrIpOa7NnA" type="4009"/> @@ -63,25 +47,24 @@ <element xmi:type="ecore:EDataType" href="workingsets.ecore#//Project"/> <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bidPIgNKEeOzDrIpOa7NnA" x="386" y="260"/> </children> - <children xmi:type="notation:Node" xmi:id="_weXoYANKEeOzDrIpOa7NnA" type="1001"> - <children xmi:type="notation:Node" xmi:id="_weY2gANKEeOzDrIpOa7NnA" type="4001"/> - <children xmi:type="notation:Node" xmi:id="_weZdkANKEeOzDrIpOa7NnA" type="5001"> - <children xmi:type="notation:Node" xmi:id="_2DFOIANKEeOzDrIpOa7NnA" type="2001"> - <element xmi:type="ecore:EAttribute" href="workingsets.ecore#//NamePredicate/pattern"/> - <layoutConstraint xmi:type="notation:Location" xmi:id="_2DFOIQNKEeOzDrIpOa7NnA"/> - </children> - <styles xmi:type="notation:DrawerStyle" xmi:id="_weZdkQNKEeOzDrIpOa7NnA"/> - <styles xmi:type="notation:SortingStyle" xmi:id="_weZdkgNKEeOzDrIpOa7NnA"/> - <styles xmi:type="notation:FilteringStyle" xmi:id="_weZdkwNKEeOzDrIpOa7NnA"/> + <children xmi:type="notation:Node" xmi:id="_PXT3gAvHEeOoPqB4RyWmHw" type="1001"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PXe2oAvHEeOoPqB4RyWmHw" source="Shortcut"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PXe2oQvHEeOoPqB4RyWmHw" key="modelID" value="EcoreTools"/> + </eAnnotations> + <children xmi:type="notation:Node" xmi:id="_PXWTwAvHEeOoPqB4RyWmHw" type="4001"/> + <children xmi:type="notation:Node" xmi:id="_PXW60AvHEeOoPqB4RyWmHw" type="5001"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_PXW60QvHEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_PXW60gvHEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_PXW60wvHEeOoPqB4RyWmHw"/> </children> - <children xmi:type="notation:Node" xmi:id="_weaEoANKEeOzDrIpOa7NnA" type="5002"> - <styles xmi:type="notation:DrawerStyle" xmi:id="_weaEoQNKEeOzDrIpOa7NnA"/> - <styles xmi:type="notation:SortingStyle" xmi:id="_weaEogNKEeOzDrIpOa7NnA"/> - <styles xmi:type="notation:FilteringStyle" xmi:id="_weaEowNKEeOzDrIpOa7NnA"/> + <children xmi:type="notation:Node" xmi:id="_PXW61AvHEeOoPqB4RyWmHw" type="5002"> + <styles xmi:type="notation:DrawerStyle" xmi:id="_PXW61QvHEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:SortingStyle" xmi:id="_PXW61gvHEeOoPqB4RyWmHw"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_PXW61wvHEeOoPqB4RyWmHw"/> </children> - <styles xmi:type="notation:ShapeStyle" xmi:id="_weXoYQNKEeOzDrIpOa7NnA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> - <element xmi:type="ecore:EClass" href="workingsets.ecore#//NamePredicate"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_weXoYgNKEeOzDrIpOa7NnA" x="105" y="380"/> + <styles xmi:type="notation:ShapeStyle" xmi:id="_PXT3gQvHEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/> + <element xmi:type="ecore:EClass" href="platform:/resource/org.eclipse.emf.cdo.releng.predicates/model/predicates.ecore#//Predicate"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PXT3ggvHEeOoPqB4RyWmHw" x="105" y="330"/> </children> <styles xmi:type="notation:DiagramStyle" xmi:id="_7Ik9wQNJEeOzDrIpOa7NnA"/> <element xmi:type="ecore:EPackage" href="workingsets.ecore#/"/> @@ -97,24 +80,17 @@ <element xmi:type="ecore:EReference" href="workingsets.ecore#//WorkingSetGroup/workingSets"/> <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RTJigwNKEeOzDrIpOa7NnA" points="[-5, 24, 7, -96]$[-5, 97, 7, -23]"/> </edges> - <edges xmi:type="notation:Edge" xmi:id="_ogBRwANKEeOzDrIpOa7NnA" type="3002" source="_7JI-cANJEeOzDrIpOa7NnA" target="_WOD9UANKEeOzDrIpOa7NnA"> - <children xmi:type="notation:Node" xmi:id="_ogBRxANKEeOzDrIpOa7NnA" type="4011"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_ogBRxQNKEeOzDrIpOa7NnA" x="-10" y="-54"/> + <edges xmi:type="notation:Edge" xmi:id="_R8WAEAvHEeOoPqB4RyWmHw" type="3002" source="_7JI-cANJEeOzDrIpOa7NnA" target="_PXT3gAvHEeOoPqB4RyWmHw"> + <children xmi:type="notation:Node" xmi:id="_R8XOMAvHEeOoPqB4RyWmHw" type="4011"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_R8XOMQvHEeOoPqB4RyWmHw" x="-20" y="-69"/> </children> - <children xmi:type="notation:Node" xmi:id="_ogBRxgNKEeOzDrIpOa7NnA" type="4012"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_ogBRxwNKEeOzDrIpOa7NnA" x="-10" y="32"/> + <children xmi:type="notation:Node" xmi:id="_R8XOMgvHEeOoPqB4RyWmHw" type="4012"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_R8XOMwvHEeOoPqB4RyWmHw" x="-20" y="48"/> </children> - <styles xmi:type="notation:ConnectorStyle" xmi:id="_ogBRwQNKEeOzDrIpOa7NnA" routing="Rectilinear" lineColor="4210752"/> - <styles xmi:type="notation:FontStyle" xmi:id="_ogBRwgNKEeOzDrIpOa7NnA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> + <styles xmi:type="notation:ConnectorStyle" xmi:id="_R8WAEQvHEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/> + <styles xmi:type="notation:FontStyle" xmi:id="_R8WAEgvHEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/> <element xmi:type="ecore:EReference" href="workingsets.ecore#//WorkingSet/predicates"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ogBRwwNKEeOzDrIpOa7NnA" points="[0, 25, 48, -64]$[0, 81, 48, -8]"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ogDG8ANKEeOzDrIpOa7NnA" id="(0.25102880658436216,0.1746031746031746)"/> - </edges> - <edges xmi:type="notation:Edge" xmi:id="_0QkHoANKEeOzDrIpOa7NnA" type="3003" source="_weXoYANKEeOzDrIpOa7NnA" target="_WOD9UANKEeOzDrIpOa7NnA"> - <styles xmi:type="notation:ConnectorStyle" xmi:id="_0QkHoQNKEeOzDrIpOa7NnA" routing="Rectilinear" lineColor="4210752"/> - <styles xmi:type="notation:FontStyle" xmi:id="_0QkHogNKEeOzDrIpOa7NnA" fontName="Segoe UI"/> - <element xsi:nil="true"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0QkHowNKEeOzDrIpOa7NnA" points="[0, -24, 39, 82]$[0, -95, 39, 11]"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0QvGwANKEeOzDrIpOa7NnA" id="(0.2962962962962963,0.7936507936507936)"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_R8WAEwvHEeOoPqB4RyWmHw" points="[0, 42, 30, -91]$[0, 133, 30, 0]"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_R8ctwAvHEeOoPqB4RyWmHw" id="(0.3497942386831276,0.011627906976744186)"/> </edges> </notation:Diagram> diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.genmodel b/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.genmodel index 4a3e012652..dbfd1f8d63 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.genmodel +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.genmodel @@ -6,25 +6,19 @@ editorPluginClass="org.eclipse.emf.cdo.releng.workingsets.presentation.WorkingSetsEditorPlugin" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" codeFormatting="true" testsDirectory="" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" - copyrightFields="false" operationReflection="true" importOrganizing="true" decoration="Live"> + copyrightFields="false" usedGenPackages="../../org.eclipse.emf.cdo.releng.predicates/model/predicates.genmodel#//predicates" + operationReflection="true" importOrganizing="true" decoration="Live"> <foreignModel>workingsets.ecore</foreignModel> <genPackages prefix="WorkingSets" basePackage="org.eclipse.emf.cdo.releng" disposableProviderFactory="true" multipleEditorPages="false" ecorePackage="workingsets.ecore#/"> <genDataTypes ecoreDataType="workingsets.ecore#//Project"/> <genClasses ecoreClass="workingsets.ecore#//WorkingSet"> - <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference workingsets.ecore#//WorkingSet/predicates"/> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute workingsets.ecore#//WorkingSet/name"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference workingsets.ecore#//WorkingSet/predicates"/> + <genFeatures property="None" createChild="false" ecoreFeature="ecore:EAttribute workingsets.ecore#//WorkingSet/id"/> </genClasses> <genClasses ecoreClass="workingsets.ecore#//WorkingSetGroup"> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference workingsets.ecore#//WorkingSetGroup/workingSets"/> </genClasses> - <genClasses ecoreClass="workingsets.ecore#//Predicate"> - <genOperations ecoreOperation="workingsets.ecore#//Predicate/matches"> - <genParameters ecoreParameter="workingsets.ecore#//Predicate/matches/project"/> - </genOperations> - </genClasses> - <genClasses ecoreClass="workingsets.ecore#//NamePredicate"> - <genFeatures createChild="false" ecoreFeature="ecore:EAttribute workingsets.ecore#//NamePredicate/pattern"/> - </genClasses> </genPackages> </genmodel:GenModel> diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/Predicate.java b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/Predicate.java deleted file mode 100644 index a81f910094..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/Predicate.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.workingsets; - -import org.eclipse.emf.ecore.EObject; - -import org.eclipse.core.resources.IProject; - -/** - * <!-- begin-user-doc --> - * A representation of the model object '<em><b>Predicate</b></em>'. - * <!-- end-user-doc --> - * - * - * @see org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage#getPredicate() - * @model interface="true" abstract="true" - * @generated - */ -public interface Predicate extends EObject -{ - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @model projectDataType="org.eclipse.emf.cdo.releng.workingsets.Project" - * @generated - */ - boolean matches(IProject project); - -} // Predicate diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSet.java b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSet.java index 615044bc6e..7ebf110ab6 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSet.java +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSet.java @@ -10,6 +10,7 @@ */ package org.eclipse.emf.cdo.releng.workingsets; +import org.eclipse.emf.cdo.releng.predicates.Predicate; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; @@ -21,8 +22,9 @@ import org.eclipse.emf.ecore.EObject; * <p> * The following features are supported: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getPredicates <em>Predicates</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getPredicates <em>Predicates</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getId <em>Id</em>}</li> * </ul> * </p> * @@ -34,7 +36,7 @@ public interface WorkingSet extends EObject { /** * Returns the value of the '<em><b>Predicates</b></em>' containment reference list. - * The list contents are of type {@link org.eclipse.emf.cdo.releng.workingsets.Predicate}. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.predicates.Predicate}. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Predicates</em>' containment reference list isn't clear, @@ -49,19 +51,45 @@ public interface WorkingSet extends EObject EList<Predicate> getPredicates(); /** - * Returns the value of the '<em><b>Name</b></em>' attribute. + * Returns the value of the '<em><b>Id</b></em>' attribute. * <!-- begin-user-doc --> * <p> - * If the meaning of the '<em>Name</em>' attribute isn't clear, + * If the meaning of the '<em>Id</em>' attribute isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> - * @return the value of the '<em>Name</em>' attribute. - * @see #setName(String) - * @see org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage#getWorkingSet_Name() - * @model required="true" + * @return the value of the '<em>Id</em>' attribute. + * @see #setId(String) + * @see org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage#getWorkingSet_Id() + * @model * @generated */ + String getId(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getId <em>Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Id</em>' attribute. + * @see #getId() + * @generated + */ + void setId(String value); + + /** + * Returns the value of the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Name</em>' attribute. + * @see #setName(String) + * @see org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage#getWorkingSet_Name() + * @model required="true" + * @generated + */ String getName(); /** diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSetsFactory.java b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSetsFactory.java index 8bf4547757..7956d18d5f 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSetsFactory.java +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSetsFactory.java @@ -49,15 +49,6 @@ public interface WorkingSetsFactory extends EFactory WorkingSetGroup createWorkingSetGroup(); /** - * Returns a new object of class '<em>Name Predicate</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return a new object of class '<em>Name Predicate</em>'. - * @generated - */ - NamePredicate createNamePredicate(); - - /** * Returns the package supported by this factory. * <!-- begin-user-doc --> * <!-- end-user-doc --> diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSetsPackage.java b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSetsPackage.java index 4450bdf9d2..59d098ee3a 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSetsPackage.java +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSetsPackage.java @@ -13,7 +13,6 @@ package org.eclipse.emf.cdo.releng.workingsets; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EDataType; -import org.eclipse.emf.ecore.EOperation; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EReference; @@ -78,31 +77,40 @@ public interface WorkingSetsPackage extends EPackage int WORKING_SET = 0; /** - * The feature id for the '<em><b>Predicates</b></em>' containment reference list. + * The feature id for the '<em><b>Name</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int WORKING_SET__PREDICATES = 0; + int WORKING_SET__NAME = 0; /** - * The feature id for the '<em><b>Name</b></em>' attribute. + * The feature id for the '<em><b>Predicates</b></em>' containment reference list. * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * <!-- end-user-doc --> * @generated * @ordered */ - int WORKING_SET__NAME = 1; + int WORKING_SET__PREDICATES = 1; /** - * The number of structural features of the '<em>Working Set</em>' class. + * The feature id for the '<em><b>Id</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int WORKING_SET_FEATURE_COUNT = 2; + int WORKING_SET__ID = 2; + + /** + * The number of structural features of the '<em>Working Set</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int WORKING_SET_FEATURE_COUNT = 3; /** * The number of operations of the '<em>Working Set</em>' class. @@ -151,89 +159,6 @@ public interface WorkingSetsPackage extends EPackage int WORKING_SET_GROUP_OPERATION_COUNT = 0; /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.workingsets.Predicate <em>Predicate</em>}' class. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.workingsets.Predicate - * @see org.eclipse.emf.cdo.releng.workingsets.impl.WorkingSetsPackageImpl#getPredicate() - * @generated - */ - int PREDICATE = 2; - - /** - * The number of structural features of the '<em>Predicate</em>' class. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int PREDICATE_FEATURE_COUNT = 0; - - /** - * The operation id for the '<em>Matches</em>' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int PREDICATE___MATCHES__IPROJECT = 0; - - /** - * The number of operations of the '<em>Predicate</em>' class. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int PREDICATE_OPERATION_COUNT = 1; - - /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.workingsets.impl.NamePredicateImpl <em>Name Predicate</em>}' class. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.workingsets.impl.NamePredicateImpl - * @see org.eclipse.emf.cdo.releng.workingsets.impl.WorkingSetsPackageImpl#getNamePredicate() - * @generated - */ - int NAME_PREDICATE = 3; - - /** - * The feature id for the '<em><b>Pattern</b></em>' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int NAME_PREDICATE__PATTERN = PREDICATE_FEATURE_COUNT + 0; - - /** - * The number of structural features of the '<em>Name Predicate</em>' class. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int NAME_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1; - - /** - * The operation id for the '<em>Matches</em>' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int NAME_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT; - - /** - * The number of operations of the '<em>Name Predicate</em>' class. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int NAME_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0; - - /** * The meta object id for the '<em>Project</em>' data type. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -241,7 +166,7 @@ public interface WorkingSetsPackage extends EPackage * @see org.eclipse.emf.cdo.releng.workingsets.impl.WorkingSetsPackageImpl#getProject() * @generated */ - int PROJECT = 4; + int PROJECT = 2; /** * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet <em>Working Set</em>}'. @@ -265,14 +190,25 @@ public interface WorkingSetsPackage extends EPackage EReference getWorkingSet_Predicates(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getName <em>Name</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getId <em>Id</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Name</em>'. - * @see org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getName() + * @return the meta object for the attribute '<em>Id</em>'. + * @see org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getId() * @see #getWorkingSet() * @generated */ + EAttribute getWorkingSet_Id(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getName <em>Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getName() + * @see #getWorkingSet() + * @generated + */ EAttribute getWorkingSet_Name(); /** @@ -297,47 +233,6 @@ public interface WorkingSetsPackage extends EPackage EReference getWorkingSetGroup_WorkingSets(); /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.workingsets.Predicate <em>Predicate</em>}'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the meta object for class '<em>Predicate</em>'. - * @see org.eclipse.emf.cdo.releng.workingsets.Predicate - * @generated - */ - EClass getPredicate(); - - /** - * Returns the meta object for the '{@link org.eclipse.emf.cdo.releng.workingsets.Predicate#matches(org.eclipse.core.resources.IProject) <em>Matches</em>}' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the meta object for the '<em>Matches</em>' operation. - * @see org.eclipse.emf.cdo.releng.workingsets.Predicate#matches(org.eclipse.core.resources.IProject) - * @generated - */ - EOperation getPredicate__Matches__IProject(); - - /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.workingsets.NamePredicate <em>Name Predicate</em>}'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the meta object for class '<em>Name Predicate</em>'. - * @see org.eclipse.emf.cdo.releng.workingsets.NamePredicate - * @generated - */ - EClass getNamePredicate(); - - /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.workingsets.NamePredicate#getPattern <em>Pattern</em>}'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Pattern</em>'. - * @see org.eclipse.emf.cdo.releng.workingsets.NamePredicate#getPattern() - * @see #getNamePredicate() - * @generated - */ - EAttribute getNamePredicate_Pattern(); - - /** * Returns the meta object for data type '{@link org.eclipse.core.resources.IProject <em>Project</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -391,11 +286,19 @@ public interface WorkingSetsPackage extends EPackage EReference WORKING_SET__PREDICATES = eINSTANCE.getWorkingSet_Predicates(); /** - * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * The meta object literal for the '<em><b>Id</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ + EAttribute WORKING_SET__ID = eINSTANCE.getWorkingSet_Id(); + + /** + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ EAttribute WORKING_SET__NAME = eINSTANCE.getWorkingSet_Name(); /** @@ -417,42 +320,6 @@ public interface WorkingSetsPackage extends EPackage EReference WORKING_SET_GROUP__WORKING_SETS = eINSTANCE.getWorkingSetGroup_WorkingSets(); /** - * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.workingsets.Predicate <em>Predicate</em>}' class. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.workingsets.Predicate - * @see org.eclipse.emf.cdo.releng.workingsets.impl.WorkingSetsPackageImpl#getPredicate() - * @generated - */ - EClass PREDICATE = eINSTANCE.getPredicate(); - - /** - * The meta object literal for the '<em><b>Matches</b></em>' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - EOperation PREDICATE___MATCHES__IPROJECT = eINSTANCE.getPredicate__Matches__IProject(); - - /** - * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.workingsets.impl.NamePredicateImpl <em>Name Predicate</em>}' class. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.workingsets.impl.NamePredicateImpl - * @see org.eclipse.emf.cdo.releng.workingsets.impl.WorkingSetsPackageImpl#getNamePredicate() - * @generated - */ - EClass NAME_PREDICATE = eINSTANCE.getNamePredicate(); - - /** - * The meta object literal for the '<em><b>Pattern</b></em>' attribute feature. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - EAttribute NAME_PREDICATE__PATTERN = eINSTANCE.getNamePredicate_Pattern(); - - /** * The meta object literal for the '<em>Project</em>' data type. * <!-- begin-user-doc --> * <!-- end-user-doc --> diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetImpl.java b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetImpl.java index 2a489abc72..4f4648b555 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetImpl.java @@ -10,10 +10,8 @@ */ package org.eclipse.emf.cdo.releng.workingsets.impl; -import org.eclipse.emf.cdo.releng.workingsets.Predicate; import org.eclipse.emf.cdo.releng.workingsets.WorkingSet; import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage; - import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.NotificationChain; import org.eclipse.emf.common.util.EList; @@ -23,8 +21,8 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; import org.eclipse.emf.ecore.util.EObjectContainmentEList; import org.eclipse.emf.ecore.util.InternalEList; - import java.util.Collection; +import org.eclipse.emf.cdo.releng.predicates.Predicate; /** * <!-- begin-user-doc --> @@ -33,8 +31,9 @@ import java.util.Collection; * <p> * The following features are implemented: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.workingsets.impl.WorkingSetImpl#getPredicates <em>Predicates</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.workingsets.impl.WorkingSetImpl#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.workingsets.impl.WorkingSetImpl#getPredicates <em>Predicates</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.workingsets.impl.WorkingSetImpl#getId <em>Id</em>}</li> * </ul> * </p> * @@ -43,40 +42,60 @@ import java.util.Collection; public class WorkingSetImpl extends MinimalEObjectImpl.Container implements WorkingSet { /** - * The cached value of the '{@link #getPredicates() <em>Predicates</em>}' containment reference list. + * The default value of the '{@link #getName() <em>Name</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see #getPredicates() + * @see #getName() * @generated * @ordered */ - protected EList<Predicate> predicates; + protected static final String NAME_EDEFAULT = null; /** - * The default value of the '{@link #getName() <em>Name</em>}' attribute. + * The cached value of the '{@link #getName() <em>Name</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getName() * @generated * @ordered */ - protected static final String NAME_EDEFAULT = null; + protected String name = NAME_EDEFAULT; /** - * The cached value of the '{@link #getName() <em>Name</em>}' attribute. + * The cached value of the '{@link #getPredicates() <em>Predicates</em>}' containment reference list. * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getName() + * <!-- end-user-doc --> + * @see #getPredicates() * @generated * @ordered */ - protected String name = NAME_EDEFAULT; + protected EList<Predicate> predicates; /** + * The default value of the '{@link #getId() <em>Id</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see #getId() * @generated + * @ordered */ + protected static final String ID_EDEFAULT = null; + + /** + * The cached value of the '{@link #getId() <em>Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getId() + * @generated + * @ordered + */ + protected String id = ID_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ protected WorkingSetImpl() { super(); @@ -113,6 +132,29 @@ public class WorkingSetImpl extends MinimalEObjectImpl.Container implements Work * <!-- end-user-doc --> * @generated */ + public String getId() + { + return id; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setId(String newId) + { + String oldId = id; + id = newId; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, WorkingSetsPackage.WORKING_SET__ID, oldId, id)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ public String getName() { return name; @@ -157,10 +199,12 @@ public class WorkingSetImpl extends MinimalEObjectImpl.Container implements Work { switch (featureID) { - case WorkingSetsPackage.WORKING_SET__PREDICATES: - return getPredicates(); case WorkingSetsPackage.WORKING_SET__NAME: return getName(); + case WorkingSetsPackage.WORKING_SET__PREDICATES: + return getPredicates(); + case WorkingSetsPackage.WORKING_SET__ID: + return getId(); } return super.eGet(featureID, resolve, coreType); } @@ -176,12 +220,15 @@ public class WorkingSetImpl extends MinimalEObjectImpl.Container implements Work { switch (featureID) { + case WorkingSetsPackage.WORKING_SET__NAME: + setName((String)newValue); + return; case WorkingSetsPackage.WORKING_SET__PREDICATES: getPredicates().clear(); getPredicates().addAll((Collection<? extends Predicate>)newValue); return; - case WorkingSetsPackage.WORKING_SET__NAME: - setName((String)newValue); + case WorkingSetsPackage.WORKING_SET__ID: + setId((String)newValue); return; } super.eSet(featureID, newValue); @@ -197,11 +244,14 @@ public class WorkingSetImpl extends MinimalEObjectImpl.Container implements Work { switch (featureID) { + case WorkingSetsPackage.WORKING_SET__NAME: + setName(NAME_EDEFAULT); + return; case WorkingSetsPackage.WORKING_SET__PREDICATES: getPredicates().clear(); return; - case WorkingSetsPackage.WORKING_SET__NAME: - setName(NAME_EDEFAULT); + case WorkingSetsPackage.WORKING_SET__ID: + setId(ID_EDEFAULT); return; } super.eUnset(featureID); @@ -217,10 +267,12 @@ public class WorkingSetImpl extends MinimalEObjectImpl.Container implements Work { switch (featureID) { - case WorkingSetsPackage.WORKING_SET__PREDICATES: - return predicates != null && !predicates.isEmpty(); case WorkingSetsPackage.WORKING_SET__NAME: return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case WorkingSetsPackage.WORKING_SET__PREDICATES: + return predicates != null && !predicates.isEmpty(); + case WorkingSetsPackage.WORKING_SET__ID: + return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id); } return super.eIsSet(featureID); } @@ -239,6 +291,8 @@ public class WorkingSetImpl extends MinimalEObjectImpl.Container implements Work StringBuffer result = new StringBuffer(super.toString()); result.append(" (name: "); result.append(name); + result.append(", id: "); + result.append(id); result.append(')'); return result.toString(); } diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetsFactoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetsFactoryImpl.java index eaa1411f84..bed7e75bbd 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetsFactoryImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetsFactoryImpl.java @@ -10,11 +10,7 @@ */ package org.eclipse.emf.cdo.releng.workingsets.impl; -import org.eclipse.emf.cdo.releng.workingsets.NamePredicate; -import org.eclipse.emf.cdo.releng.workingsets.WorkingSet; -import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup; -import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsFactory; -import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage; +import org.eclipse.emf.cdo.releng.workingsets.*; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EDataType; import org.eclipse.emf.ecore.EObject; @@ -79,8 +75,6 @@ public class WorkingSetsFactoryImpl extends EFactoryImpl implements WorkingSetsF return createWorkingSet(); case WorkingSetsPackage.WORKING_SET_GROUP: return createWorkingSetGroup(); - case WorkingSetsPackage.NAME_PREDICATE: - return createNamePredicate(); default: throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); } @@ -143,17 +137,6 @@ public class WorkingSetsFactoryImpl extends EFactoryImpl implements WorkingSetsF * <!-- end-user-doc --> * @generated */ - public NamePredicate createNamePredicate() - { - NamePredicateImpl namePredicate = new NamePredicateImpl(); - return namePredicate; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ public WorkingSetsPackage getWorkingSetsPackage() { return (WorkingSetsPackage)getEPackage(); diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetsPackageImpl.java b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetsPackageImpl.java index 1fbf3786bf..b1241d98a6 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetsPackageImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetsPackageImpl.java @@ -10,22 +10,18 @@ */ package org.eclipse.emf.cdo.releng.workingsets.impl; -import org.eclipse.emf.cdo.releng.workingsets.NamePredicate; -import org.eclipse.emf.cdo.releng.workingsets.Predicate; import org.eclipse.emf.cdo.releng.workingsets.WorkingSet; import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup; import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsFactory; import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage; - import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EDataType; -import org.eclipse.emf.ecore.EOperation; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.impl.EPackageImpl; - import org.eclipse.core.resources.IProject; +import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage; /** * <!-- begin-user-doc --> @@ -54,20 +50,6 @@ public class WorkingSetsPackageImpl extends EPackageImpl implements WorkingSetsP * <!-- end-user-doc --> * @generated */ - private EClass predicateEClass = null; - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - private EClass namePredicateEClass = null; - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ private EDataType projectEDataType = null; /** @@ -120,6 +102,9 @@ public class WorkingSetsPackageImpl extends EPackageImpl implements WorkingSetsP isInited = true; + // Initialize simple dependencies + PredicatesPackage.eINSTANCE.eClass(); + // Create package meta-data objects theWorkingSetsPackage.createPackageContents(); @@ -151,7 +136,7 @@ public class WorkingSetsPackageImpl extends EPackageImpl implements WorkingSetsP */ public EReference getWorkingSet_Predicates() { - return (EReference)workingSetEClass.getEStructuralFeatures().get(0); + return (EReference)workingSetEClass.getEStructuralFeatures().get(1); } /** @@ -159,9 +144,19 @@ public class WorkingSetsPackageImpl extends EPackageImpl implements WorkingSetsP * <!-- end-user-doc --> * @generated */ + public EAttribute getWorkingSet_Id() + { + return (EAttribute)workingSetEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ public EAttribute getWorkingSet_Name() { - return (EAttribute)workingSetEClass.getEStructuralFeatures().get(1); + return (EAttribute)workingSetEClass.getEStructuralFeatures().get(0); } /** @@ -189,46 +184,6 @@ public class WorkingSetsPackageImpl extends EPackageImpl implements WorkingSetsP * <!-- end-user-doc --> * @generated */ - public EClass getPredicate() - { - return predicateEClass; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public EOperation getPredicate__Matches__IProject() - { - return predicateEClass.getEOperations().get(0); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public EClass getNamePredicate() - { - return namePredicateEClass; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public EAttribute getNamePredicate_Pattern() - { - return (EAttribute)namePredicateEClass.getEStructuralFeatures().get(0); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ public EDataType getProject() { return projectEDataType; @@ -266,18 +221,13 @@ public class WorkingSetsPackageImpl extends EPackageImpl implements WorkingSetsP // Create classes and their features workingSetEClass = createEClass(WORKING_SET); - createEReference(workingSetEClass, WORKING_SET__PREDICATES); createEAttribute(workingSetEClass, WORKING_SET__NAME); + createEReference(workingSetEClass, WORKING_SET__PREDICATES); + createEAttribute(workingSetEClass, WORKING_SET__ID); workingSetGroupEClass = createEClass(WORKING_SET_GROUP); createEReference(workingSetGroupEClass, WORKING_SET_GROUP__WORKING_SETS); - predicateEClass = createEClass(PREDICATE); - createEOperation(predicateEClass, PREDICATE___MATCHES__IPROJECT); - - namePredicateEClass = createEClass(NAME_PREDICATE); - createEAttribute(namePredicateEClass, NAME_PREDICATE__PATTERN); - // Create data types projectEDataType = createEDataType(PROJECT); } @@ -307,21 +257,26 @@ public class WorkingSetsPackageImpl extends EPackageImpl implements WorkingSetsP setNsPrefix(eNS_PREFIX); setNsURI(eNS_URI); + // Obtain other dependent packages + PredicatesPackage thePredicatesPackage = (PredicatesPackage)EPackage.Registry.INSTANCE + .getEPackage(PredicatesPackage.eNS_URI); + // Create type parameters // Set bounds for type parameters // Add supertypes to classes - namePredicateEClass.getESuperTypes().add(this.getPredicate()); // Initialize classes, features, and operations; add parameters initEClass(workingSetEClass, WorkingSet.class, "WorkingSet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getWorkingSet_Predicates(), this.getPredicate(), null, "predicates", null, 0, -1, WorkingSet.class, - !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, - !IS_DERIVED, IS_ORDERED); initEAttribute(getWorkingSet_Name(), ecorePackage.getEString(), "name", null, 1, 1, WorkingSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getWorkingSet_Predicates(), thePredicatesPackage.getPredicate(), null, "predicates", null, 0, -1, + WorkingSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getWorkingSet_Id(), ecorePackage.getEString(), "id", null, 0, 1, WorkingSet.class, !IS_TRANSIENT, + !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(workingSetGroupEClass, WorkingSetGroup.class, "WorkingSetGroup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); @@ -330,17 +285,6 @@ public class WorkingSetsPackageImpl extends EPackageImpl implements WorkingSetsP !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); getWorkingSetGroup_WorkingSets().getEKeys().add(this.getWorkingSet_Name()); - initEClass(predicateEClass, Predicate.class, "Predicate", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - EOperation op = initEOperation(getPredicate__Matches__IProject(), ecorePackage.getEBoolean(), "matches", 0, 1, - IS_UNIQUE, IS_ORDERED); - addEParameter(op, this.getProject(), "project", 0, 1, IS_UNIQUE, IS_ORDERED); - - initEClass(namePredicateEClass, NamePredicate.class, "NamePredicate", !IS_ABSTRACT, !IS_INTERFACE, - IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getNamePredicate_Pattern(), ecorePackage.getEString(), "pattern", null, 1, 1, NamePredicate.class, - !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - // Initialize data types initEDataType(projectEDataType, IProject.class, "Project", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/util/WorkingSetsAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/util/WorkingSetsAdapterFactory.java index 3a82879a1c..4ffaac018a 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/util/WorkingSetsAdapterFactory.java +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/util/WorkingSetsAdapterFactory.java @@ -10,11 +10,7 @@ */ package org.eclipse.emf.cdo.releng.workingsets.util; -import org.eclipse.emf.cdo.releng.workingsets.NamePredicate; -import org.eclipse.emf.cdo.releng.workingsets.Predicate; -import org.eclipse.emf.cdo.releng.workingsets.WorkingSet; -import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup; -import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage; +import org.eclipse.emf.cdo.releng.workingsets.*; import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.notify.Notifier; import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; @@ -95,18 +91,6 @@ public class WorkingSetsAdapterFactory extends AdapterFactoryImpl } @Override - public Adapter casePredicate(Predicate object) - { - return createPredicateAdapter(); - } - - @Override - public Adapter caseNamePredicate(NamePredicate object) - { - return createNamePredicateAdapter(); - } - - @Override public Adapter defaultCase(EObject object) { return createEObjectAdapter(); @@ -158,36 +142,6 @@ public class WorkingSetsAdapterFactory extends AdapterFactoryImpl } /** - * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.workingsets.Predicate <em>Predicate</em>}'. - * <!-- begin-user-doc --> - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * <!-- end-user-doc --> - * @return the new adapter. - * @see org.eclipse.emf.cdo.releng.workingsets.Predicate - * @generated - */ - public Adapter createPredicateAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.workingsets.NamePredicate <em>Name Predicate</em>}'. - * <!-- begin-user-doc --> - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * <!-- end-user-doc --> - * @return the new adapter. - * @see org.eclipse.emf.cdo.releng.workingsets.NamePredicate - * @generated - */ - public Adapter createNamePredicateAdapter() - { - return null; - } - - /** * Creates a new adapter for the default case. * <!-- begin-user-doc --> * This default implementation returns null. diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/util/WorkingSetsSwitch.java b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/util/WorkingSetsSwitch.java index 0001938b45..0269b870ad 100644 --- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/util/WorkingSetsSwitch.java +++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/util/WorkingSetsSwitch.java @@ -10,11 +10,7 @@ */ package org.eclipse.emf.cdo.releng.workingsets.util; -import org.eclipse.emf.cdo.releng.workingsets.NamePredicate; -import org.eclipse.emf.cdo.releng.workingsets.Predicate; -import org.eclipse.emf.cdo.releng.workingsets.WorkingSet; -import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup; -import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage; +import org.eclipse.emf.cdo.releng.workingsets.*; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.util.Switch; @@ -98,24 +94,6 @@ public class WorkingSetsSwitch<T> extends Switch<T> result = defaultCase(theEObject); return result; } - case WorkingSetsPackage.PREDICATE: - { - Predicate predicate = (Predicate)theEObject; - T result = casePredicate(predicate); - if (result == null) - result = defaultCase(theEObject); - return result; - } - case WorkingSetsPackage.NAME_PREDICATE: - { - NamePredicate namePredicate = (NamePredicate)theEObject; - T result = caseNamePredicate(namePredicate); - if (result == null) - result = casePredicate(namePredicate); - if (result == null) - result = defaultCase(theEObject); - return result; - } default: return defaultCase(theEObject); } @@ -154,38 +132,6 @@ public class WorkingSetsSwitch<T> extends Switch<T> } /** - * Returns the result of interpreting the object as an instance of '<em>Predicate</em>'. - * <!-- begin-user-doc --> - * This implementation returns null; - * returning a non-null result will terminate the switch. - * <!-- end-user-doc --> - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Predicate</em>'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T casePredicate(Predicate object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of '<em>Name Predicate</em>'. - * <!-- begin-user-doc --> - * This implementation returns null; - * returning a non-null result will terminate the switch. - * <!-- end-user-doc --> - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Name Predicate</em>'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseNamePredicate(NamePredicate object) - { - return null; - } - - /** * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. * <!-- begin-user-doc --> * This implementation returns null; diff --git a/plugins/org.eclipse.emf.cdo.releng/local.setup b/plugins/org.eclipse.emf.cdo.releng/local.setup index fc8d0d4695..d732153c6f 100644 --- a/plugins/org.eclipse.emf.cdo.releng/local.setup +++ b/plugins/org.eclipse.emf.cdo.releng/local.setup @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="ASCII"?> -<setup:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:setup="http://www.eclipse.org/CDO/releng/setup/1.0" xmlns:workingsets="http://www.eclipse.org/CDO/releng/workingsets/1.0" name="CDO"> - <configuration href="../org.eclipse.emf.cdo.releng.setup/model/My.setup#/"/> +<setup:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:predicates="http://www.eclipse.org/CDO/releng/predicates/1.0" xmlns:setup="http://www.eclipse.org/CDO/releng/setup/1.0" name="CDO"> <setupTasks xsi:type="setup:P2Task"> <p2Repositories url="http://download.eclipse.org/releases/kepler"/> <p2Repositories url="http://download.eclipse.org/modeling/emf/cdo/updates/integration"/> @@ -16,16 +15,6 @@ <installableUnits id="org.eclipse.emf.cdo.releng.tasks.feature.group"/> <installableUnits id="org.eclipse.emf.cdo.releng.version.feature.group"/> <installableUnits id="org.eclipse.emf.cdo.releng.workingsets.feature.group"/> - <installableUnits id="org.eclipse.mylyn.github.feature.feature.group"/> - <installableUnits id="org.eclipse.mylyn.hudson.feature.group"/> - <installableUnits id="org.eclipse.mylyn.ide_feature.feature.group"/> - <installableUnits id="org.eclipse.mylyn.java_feature.feature.group"/> - <installableUnits id="org.eclipse.mylyn.pde_feature.feature.group"/> - <installableUnits id="org.eclipse.mylyn.team_feature.feature.group"/> - <installableUnits id="org.eclipse.mylyn.gerrit.feature.feature.group"/> - <installableUnits id="org.eclipse.mylyn_feature.feature.group"/> - <installableUnits id="org.eclipse.mylyn.bugzilla_feature.feature.group"/> - <installableUnits id="org.eclipse.mylyn.git.feature.group"/> <installableUnits id="org.eclipse.egit.feature.group"/> <installableUnits id="org.eclipse.egit.mylyn.feature.group"/> <installableUnits id="org.eclipse.buckminster.core.feature.feature.group"/> @@ -36,64 +25,65 @@ <setupTasks xsi:type="setup:EclipseIniTask" option="-data" value="${setup.branch.dir}/ws"/> <setupTasks xsi:type="setup:EclipseIniTask" option="-Djgit.gitprefix" value="=${setup.git.prefix}" vm="true"/> <setupTasks xsi:type="setup:EclipseIniTask" option="-Dorg.eclipse.buckminster.core.bundle.pool" value="=${setup.install.dir}/.p2pool-tp" vm="true"/> + <setupTasks xsi:type="setup:EclipseIniTask" option="-Xmx" value="2048m" vm="true"/> <setupTasks xsi:type="setup:EclipsePreferenceTask" key="instance/org.eclipse.jdt.launching/org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE" value="ignore"/> <setupTasks xsi:type="setup:EclipsePreferenceTask" key="instance/org.eclipse.jdt.core/org.eclipse.jdt.core.compiler.problem.unclosedCloseable" value="ignore"/> <setupTasks xsi:type="setup:EclipsePreferenceTask" key="instance/org.eclipse.pde/compilers.f.unresolved-features" value="2"/> - <setupTasks xsi:type="setup:WorkingSetTask" id="CDO"> - <workingSetGroup> + <setupTasks xsi:type="setup:WorkingSetTask"> + <workingSets name="Features"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo.*-feature"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j.*-feature"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.gastro.*-feature"/> + <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.emf\.cdo.*-feature"/> + <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.net4j.*-feature"/> + <predicates xsi:type="predicates:NamePredicate" pattern="org\.gastro.*-feature"/> </workingSets> <workingSets name="Infrastructure"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.releng\.promotion.*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.releng\.doc\.supplemental.*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="cdo\.www.*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.simrel\.build.*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="com\.ibm\.db2\.jcc.*"/> + <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.releng\.promotion.*"/> + <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.releng\.doc\.supplemental.*"/> + <predicates xsi:type="predicates:NamePredicate" pattern="cdo\.www.*"/> + <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.simrel\.build.*"/> + <predicates xsi:type="predicates:NamePredicate" pattern="com\.ibm\.db2\.jcc.*"/> </workingSets> <workingSets name="Releng"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.releng.*"/> + <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.releng.*"/> </workingSets> <workingSets name="CDO Dawn"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.dawn.*"/> + <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.dawn.*"/> </workingSets> <workingSets name="CDO Tests"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf.cdo\.tests.*"/> + <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.emf.cdo\.tests.*"/> </workingSets> <workingSets name="CDO Examples"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.examples.*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.gastro.*"/> + <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.examples.*"/> + <predicates xsi:type="predicates:NamePredicate" pattern="org\.gastro.*"/> </workingSets> <workingSets name="CDO"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo.*"/> + <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.emf\.cdo.*"/> </workingSets> <workingSets name="Net4j DB"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j\.db.*"/> + <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.net4j\.db.*"/> </workingSets> <workingSets name="Net4j Examples"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j\.examples.*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j\.buddies.*"/> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j\.jms.*"/> + <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.net4j\.examples.*"/> + <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.net4j\.buddies.*"/> + <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.net4j\.jms.*"/> </workingSets> <workingSets name="Net4j"> - <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j.*"/> + <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.net4j.*"/> </workingSets> - </workingSetGroup> + </setupTasks> <branches name="master"> <setupTasks xsi:type="setup:P2Task"> <p2Repositories url="http://download.eclipse.org/releases/kepler"/> <installableUnits id="org.eclipse.emf.sdk.feature.group"/> - <installableUnits id="org.eclipse.emf.ecoretools.sdk.feature.group"/> + <installableUnits id="org.eclipse.emf.ecoretools.sdk.feature.group"/> <installableUnits id="org.eclipse.gmf.runtime.notation.sdk.feature.group"/> <installableUnits id="org.eclipse.gmf.runtime.sdk.feature.group"/> <installableUnits id="org.eclipse.gmf.sdk.feature.group"/> </setupTasks> <setupTasks xsi:type="setup:GitCloneTask" name="cdo" remoteURI="ssh://git.eclipse.org:29418/cdo/cdo" checkoutBranch="master"/> - <setupTasks xsi:type="setup:StringVariableTask" requirements="//@branches.0/@setupTasks.1" name="git.clone" value="${setup.branch.dir}/git/cdo" description="Location of CDO's Git clone."/> - <setupTasks xsi:type="setup:BuckminsterImportTask" requirements="//@branches.0/@setupTasks.2" id="CDO" mspec="${setup.branch.dir}/git/cdo/plugins/org.eclipse.emf.cdo.releng/local.mspec" targetPlatform="${setup.branch.dir}/tp" bundlePool="${setup.install.dir}/.p2pool-tp"/> + <setupTasks xsi:type="setup:StringVariableTask" requirements="//@branches.0/@setupTasks.1" name="git.clone" value="${setup.branch.dir|uri}/git/cdo" description="Location of CDO's Git clone."/> + <setupTasks xsi:type="setup:BuckminsterImportTask" requirements="//@branches.0/@setupTasks.2" mspec="${setup.branch.dir|uri}/git/cdo/plugins/org.eclipse.emf.cdo.releng/local.mspec" targetPlatform="${setup.branch.dir}/tp" bundlePool="${setup.install.dir}/.p2pool-tp"/> <setupTasks xsi:type="setup:ApiBaselineTask" requirements="//@branches.0/@setupTasks.3" version="4.2" zipLocation="http://sourceforge.net/projects/net4j/files/Baselines/emf-cdo-4.2-baseline.zip/download"/> </branches> <branches name="4.2"> @@ -105,8 +95,8 @@ <installableUnits id="org.eclipse.gmf.sdk.feature.group"/> </setupTasks> <setupTasks xsi:type="setup:GitCloneTask" name="cdo" remoteURI="ssh://git.eclipse.org:29418/cdo/cdo" checkoutBranch="streams/4.2-maintenance"/> - <setupTasks xsi:type="setup:StringVariableTask" requirements="//@branches.1/@setupTasks.1" name="git.clone" value="${setup.branch.dir}/git/cdo" description="Location of CDO's Git clone."/> - <setupTasks xsi:type="setup:BuckminsterImportTask" requirements="//@branches.1/@setupTasks.2" id="CDO" mspec="${setup.branch.dir}/git/cdo/plugins/org.eclipse.emf.cdo.releng/local.mspec" targetPlatform="${setup.branch.dir}/tp" bundlePool="${setup.install.dir}/.p2pool-tp"/> + <setupTasks xsi:type="setup:StringVariableTask" requirements="//@branches.1/@setupTasks.1" name="git.clone" value="${setup.branch.dir|uri}/git/cdo" description="Location of CDO's Git clone."/> + <setupTasks xsi:type="setup:BuckminsterImportTask" requirements="//@branches.1/@setupTasks.2" mspec="${setup.branch.dir|uri}/git/cdo/plugins/org.eclipse.emf.cdo.releng/local.mspec" targetPlatform="${setup.branch.dir}/tp" bundlePool="${setup.install.dir}/.p2pool-tp"/> <setupTasks xsi:type="setup:ApiBaselineTask" requirements="//@branches.1/@setupTasks.3" version="4.2" zipLocation="http://sourceforge.net/projects/net4j/files/Baselines/emf-cdo-4.2-baseline.zip/download"/> </branches> </setup:Project> |