diff options
34 files changed, 4456 insertions, 3491 deletions
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core/META-INF/MANIFEST.MF b/plugins/infra/core/org.eclipse.papyrus.infra.core/META-INF/MANIFEST.MF index f6d621c2349..1c870582133 100644 --- a/plugins/infra/core/org.eclipse.papyrus.infra.core/META-INF/MANIFEST.MF +++ b/plugins/infra/core/org.eclipse.papyrus.infra.core/META-INF/MANIFEST.MF @@ -31,7 +31,7 @@ Require-Bundle: org.eclipse.emf.workspace;bundle-version="[1.5.0,2.0.0)", org.eclipse.papyrus.infra.core.architecture;bundle-version="[1.0.0,2.0.0)";visibility:=reexport Bundle-Vendor: %providerName Bundle-ActivationPolicy: lazy -Bundle-Version: 3.0.0.qualifier +Bundle-Version: 3.0.100.qualifier Bundle-Name: %pluginName Bundle-Localization: plugin Bundle-Activator: org.eclipse.papyrus.infra.core.Activator diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core/pom.xml b/plugins/infra/core/org.eclipse.papyrus.infra.core/pom.xml index 0907a49f8c4..dcb0047c077 100644 --- a/plugins/infra/core/org.eclipse.papyrus.infra.core/pom.xml +++ b/plugins/infra/core/org.eclipse.papyrus.infra.core/pom.xml @@ -6,6 +6,6 @@ <version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.papyrus.infra.core</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.100-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
\ No newline at end of file diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core/src/org/eclipse/papyrus/infra/core/resource/PapyrusProjectScope.java b/plugins/infra/core/org.eclipse.papyrus.infra.core/src/org/eclipse/papyrus/infra/core/resource/PapyrusProjectScope.java index c792d8c1de0..5efef5e01e3 100644 --- a/plugins/infra/core/org.eclipse.papyrus.infra.core/src/org/eclipse/papyrus/infra/core/resource/PapyrusProjectScope.java +++ b/plugins/infra/core/org.eclipse.papyrus.infra.core/src/org/eclipse/papyrus/infra/core/resource/PapyrusProjectScope.java @@ -1,5 +1,5 @@ /*****************************************************************************
- * Copyright (c) 2016 CEA LIST and others.
+ * Copyright (c) 2016, 2017 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -8,11 +8,14 @@ *
* Contributors:
* Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ * Christian W. Damus - bug 528343
*
*****************************************************************************/
package org.eclipse.papyrus.infra.core.resource;
+import java.util.Objects;
+
import org.eclipse.core.internal.preferences.AbstractScope;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
@@ -36,14 +39,19 @@ public class PapyrusProjectScope extends AbstractScope { /**
* The papyrus project name.
*/
- private String papyrusProjectName;
+ private final String papyrusProjectName;
/**
* The context project.
*/
- private IProject context;
+ private final IProject context;
/**
+ * Cached hash code.
+ */
+ private int hash = 0;
+
+ /**
* Constructor.
*
* @param project
@@ -105,10 +113,10 @@ public class PapyrusProjectScope extends AbstractScope { public boolean equals(final Object obj) {
if (this == obj)
return true;
- if (!super.equals(obj))
- return false;
if (!(obj instanceof PapyrusProjectScope))
return false;
+ if (!super.equals(obj))
+ return false;
PapyrusProjectScope other = (PapyrusProjectScope) obj;
return context.equals(other.context) && papyrusProjectName.equals(other.papyrusProjectName);
}
@@ -120,7 +128,15 @@ public class PapyrusProjectScope extends AbstractScope { */
@Override
public int hashCode() {
- return super.hashCode() + context.getFullPath().hashCode() + "/".hashCode() + papyrusProjectName.hashCode(); //$NON-NLS-1$
+ if (hash == 0) {
+ int h = super.hashCode();
+ h = 37 * h + Objects.hashCode(context);
+ h = 37 * h + Objects.hashCode(papyrusProjectName);
+
+ hash = h;
+ }
+
+ return hash;
}
}
diff --git a/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/META-INF/MANIFEST.MF b/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/META-INF/MANIFEST.MF index 206039bfccc..1f78da869c6 100644 --- a/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/META-INF/MANIFEST.MF +++ b/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.papyrus.infra.internationalization.common;singleton:=true -Bundle-Version: 1.0.0.qualifier +Bundle-Version: 1.100.0.qualifier Bundle-ClassPath: . Bundle-Vendor: %providerName Bundle-Localization: plugin diff --git a/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/pom.xml b/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/pom.xml index f3af17149ec..4308de57e70 100644 --- a/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/pom.xml +++ b/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/pom.xml @@ -8,6 +8,6 @@ <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>org.eclipse.papyrus.infra.internationalization.common</artifactId> - <version>1.0.0-SNAPSHOT</version> + <version>1.100.0-SNAPSHOT</version> <packaging>eclipse-plugin</packaging> </project>
\ No newline at end of file diff --git a/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/src/org/eclipse/papyrus/infra/internationalization/common/Activator.java b/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/src/org/eclipse/papyrus/infra/internationalization/common/Activator.java index ae1975d5007..40a3d627b31 100644 --- a/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/src/org/eclipse/papyrus/infra/internationalization/common/Activator.java +++ b/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/src/org/eclipse/papyrus/infra/internationalization/common/Activator.java @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (c) 2016 CEA LIST and others. + * Copyright (c) 2016, 2017 CEA LIST, Christian W. Damus, and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -8,17 +8,16 @@ * * Contributors: * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation + * Christian W. Damus - bug 528343 * *****************************************************************************/ package org.eclipse.papyrus.infra.internationalization.common; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; +import java.util.HashMap; +import java.util.Map; import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.core.runtime.preferences.IScopeContext; import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.jface.preference.IPreferenceStore; @@ -55,16 +54,15 @@ public class Activator extends AbstractUIPlugin { public static LogHelper log; /** - * Storage for preferences. Use a list of preference store (one preference - * store by internationalization of a project). + * Storage for preferences, per scope. */ - private List<IPreferenceStore> preferencesStore; + private Map<IScopeContext, IPreferenceStore> preferencesStore; /** * The constructor */ public Activator() { - preferencesStore = new ArrayList<IPreferenceStore>(0); + preferencesStore = new HashMap<>(); } /** @@ -101,28 +99,12 @@ public class Activator extends AbstractUIPlugin { */ public IPreferenceStore getInternationalizationPreferenceStore(final IProject project, final String papyrusProjectName) { - IPreferenceStore result = null; + final IScopeContext scope = new PapyrusProjectScope(project, papyrusProjectName); - if (!preferencesStore.isEmpty()) { - final IEclipsePreferences scopePreferenceNode = scope.getNode(INTERNATIONALIZATION_NODE_LABEL); - final Iterator<IPreferenceStore> preferenceStoreIterator = preferencesStore.iterator(); - while (preferenceStoreIterator.hasNext() && null == result) { - final IPreferenceStore preferenceStore = preferenceStoreIterator.next(); - if (preferenceStore instanceof PapyrusScopedPreferenceStore) { - final IEclipsePreferences[] preferenceNodes = ((PapyrusScopedPreferenceStore) preferenceStore) - .getPreferenceNodes(false); - for (int index = 0; index < preferenceNodes.length && null == result; index++) { - if (preferenceNodes[index].equals(scopePreferenceNode)) { - result = preferenceStore; - } - } - } - } - } - + IPreferenceStore result = preferencesStore.get(scope); if (null == result) { result = new PapyrusScopedPreferenceStore(scope, INTERNATIONALIZATION_NODE_LABEL); - preferencesStore.add(result); // $NON-NLS-1$ + preferencesStore.put(scope, result); } return result; @@ -135,11 +117,16 @@ public class Activator extends AbstractUIPlugin { * @return The preference store. */ public IPreferenceStore getInternationalizationPreferenceStore() { - // Create the preference store lazily. - if (preferencesStore.isEmpty()) { - preferencesStore.add(new ScopedPreferenceStore(InstanceScope.INSTANCE, getBundle().getSymbolicName())); + IScopeContext scope = InstanceScope.INSTANCE; + IPreferenceStore result = preferencesStore.get(scope); + + if (result == null) { + // Create the preference store lazily. + result = new ScopedPreferenceStore(scope, getBundle().getSymbolicName()); + preferencesStore.put(scope, result); } - return preferencesStore.get(0); + + return result; } /** diff --git a/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/src/org/eclipse/papyrus/infra/internationalization/common/utils/InternationalizationPreferenceChangeEvent.java b/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/src/org/eclipse/papyrus/infra/internationalization/common/utils/InternationalizationPreferenceChangeEvent.java new file mode 100644 index 00000000000..ae9331d481f --- /dev/null +++ b/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/src/org/eclipse/papyrus/infra/internationalization/common/utils/InternationalizationPreferenceChangeEvent.java @@ -0,0 +1,117 @@ +/******************************************************************************* + * Copyright (c) 2017 Christian W. Damus 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: + * Christian W. Damus - initial API and implementation + *******************************************************************************/ +package org.eclipse.papyrus.infra.internationalization.common.utils; + +import java.util.EventObject; +import java.util.Locale; + +import org.eclipse.emf.common.util.URI; + +/** + * Event indicating some change in the internationalization preferences + * for a resource, by URI. + * + * @author Christian W. Damus + * + * @since 1.1 + */ +public final class InternationalizationPreferenceChangeEvent extends EventObject { + + private static final long serialVersionUID = 1L; + + /** Event type indicating change in enablement of internationalization. */ + public static final int ENABLED = 0; + + /** Event type indicating change in locale of internationalization. */ + public static final int LOCALE = 1; + + private final int eventType; + private final URI resourceURI; + + private final boolean enabled; + private final Locale locale; + + /** + * Initializes me with my source, resource URI, and enablement change. + * + * @param source my source, which is opaque to clients + * @param resourceURI my resource URI + * @param enabled whether enablement changed to {@code true} or {@code false} + */ + public InternationalizationPreferenceChangeEvent(Object source, URI resourceURI, boolean enabled) { + this(source, resourceURI, ENABLED, enabled, null); + } + + /** + * Initializes me with my source, resource URI, and locale change. + * + * @param source my source, which is opaque to clients + * @param resourceURI my resource URI + * @param locale the new locale for the resource + */ + public InternationalizationPreferenceChangeEvent(Object source, URI resourceURI, Locale locale) { + this(source, resourceURI, LOCALE, false, locale); + } + + /** + * Initializes me. + */ + private InternationalizationPreferenceChangeEvent(Object source, URI resourceURI, int eventType, boolean enabled, Locale locale) { + super(source); + + this.resourceURI = resourceURI; + this.eventType = eventType; + this.enabled = enabled; + this.locale = locale; + } + + /** + * Queries the {@linkplain #ENABLED type} of event that I am. + * + * @return my type + */ + public int getEventType() { + return eventType; + } + + /** + * Queries the resource URI to which I pertain. + * + * @return the resource URI for which a preference changed + */ + public URI getResourceURI() { + return resourceURI; + } + + /** + * Queries whether the internationalization was enabled or disabled for + * the resource. Only makes sense for the {@link #ENABLED} event type. + * + * @return {@code true} if I am an {@linkplain #ENABLED enablement} event and my + * resource enabled internationalization; {@code false} if either I am + * not an enablement event or I am but my resource disabled internationalization + */ + public boolean isInternationalizationEnabled() { + return enabled; + } + + /** + * Queries the locale that was set for the internationalization of + * the resource. Only makes sense for the {@link #LOCALE} event type. + * + * @return the new locale if I am a {@linkplain #LOCALE locale} event; + * {@code null} if either I am not a locale event + */ + public Locale getLocale() { + return locale; + } +} diff --git a/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/src/org/eclipse/papyrus/infra/internationalization/common/utils/InternationalizationPreferenceListener.java b/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/src/org/eclipse/papyrus/infra/internationalization/common/utils/InternationalizationPreferenceListener.java new file mode 100644 index 00000000000..0149dff7ab4 --- /dev/null +++ b/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/src/org/eclipse/papyrus/infra/internationalization/common/utils/InternationalizationPreferenceListener.java @@ -0,0 +1,35 @@ +/******************************************************************************* + * Copyright (c) 2017 Christian W. Damus 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: + * Christian W. Damus - initial API and implementation + *******************************************************************************/ +package org.eclipse.papyrus.infra.internationalization.common.utils; + +import java.util.EventListener; +import java.util.EventObject; + +/** + * Protocol for a listener to be notified of changes in the internationalization + * preferences for resources. + * + * @author Christian W. Damus + * + * @since 1.1 + */ +public interface InternationalizationPreferenceListener extends EventListener { + + /** + * Handles the change of internationalization for some resource. + * The {@code event} object's {@link EventObject#getSource() source} is + * to be treated as opaque, not interpreted by the receiver. + * + * @param event the internationalization change event + */ + void internationalizationChanged(InternationalizationPreferenceChangeEvent event); +} diff --git a/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/src/org/eclipse/papyrus/infra/internationalization/common/utils/InternationalizationPreferencesUtils.java b/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/src/org/eclipse/papyrus/infra/internationalization/common/utils/InternationalizationPreferencesUtils.java index 14bbe347097..be71c53b0f6 100644 --- a/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/src/org/eclipse/papyrus/infra/internationalization/common/utils/InternationalizationPreferencesUtils.java +++ b/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.common/src/org/eclipse/papyrus/infra/internationalization/common/utils/InternationalizationPreferencesUtils.java @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (c) 2016 CEA LIST and others. + * Copyright (c) 2016, 2017 CEA LIST, Christian W. Damus, and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -8,12 +8,14 @@ * * Contributors: * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation + * Christian W. Damus - bug 528343 * *****************************************************************************/ package org.eclipse.papyrus.infra.internationalization.common.utils; import java.util.Locale; +import java.util.concurrent.CopyOnWriteArrayList; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; @@ -35,6 +37,8 @@ import org.eclipse.papyrus.infra.internationalization.common.Activator; */ public class InternationalizationPreferencesUtils { + private static final CopyOnWriteArrayList<InternationalizationPreferenceListener> listeners = new CopyOnWriteArrayList<>(); + /** * This allows to get the load of internationalization preference value. * @@ -183,6 +187,10 @@ public class InternationalizationPreferencesUtils { if (null != preferenceStore) { preferenceStore.setValue(InternationalizationPreferencesConstants.USE_INTERNATIONALIZATION_PREFERENCE, value); + + if (hasListeners()) { + fire(new InternationalizationPreferenceChangeEvent(preferenceStore, resourceURI, value)); + } } } @@ -344,6 +352,50 @@ public class InternationalizationPreferencesUtils { if (null != preferenceStore) { preferenceStore.setValue(InternationalizationPreferencesConstants.LANGUAGE_PREFERENCE, language); + + if (hasListeners()) { + Locale locale = (language == null) ? Locale.getDefault() + : LocaleNameResolver.getLocaleFromString(language); + fire(new InternationalizationPreferenceChangeEvent(preferenceStore, resourceURI, locale)); + } + } + } + + private static boolean hasListeners() { + return !listeners.isEmpty(); + } + + private static void fire(InternationalizationPreferenceChangeEvent event) { + for (InternationalizationPreferenceListener next : listeners) { + try { + next.internationalizationChanged(event); + } catch (Exception e) { + Activator.log.error("Uncaught exception in listener call-back.", e); //$NON-NLS-1$ + } } } + + /** + * Adds a {@code listener} for changes in the internationalization preferences of resources. + * Has no effect if the {@code listener} is already attached. + * + * @param listener a listener to add + * + * @since 1.1 + */ + public static void addPreferenceListener(InternationalizationPreferenceListener listener) { + listeners.addIfAbsent(listener); + } + + /** + * Removes a {@code listener} for changes in the internationalization preferences of resources. + * Has no effect if the {@code listener} is not currently attached. + * + * @param listener a listener to remove + * + * @since 1.1 + */ + public static void removePreferenceListener(InternationalizationPreferenceListener listener) { + listeners.remove(listener); + } } diff --git a/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/META-INF/MANIFEST.MF b/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/META-INF/MANIFEST.MF index ee5306322a8..fb0dd50d6d2 100644 --- a/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/META-INF/MANIFEST.MF +++ b/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.papyrus.uml.internationalization.edit;singleton:=true -Bundle-Version: 1.0.0.qualifier +Bundle-Version: 1.100.0.qualifier Bundle-ClassPath: . Bundle-Vendor: %providerName Bundle-Localization: plugin @@ -10,13 +10,14 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: org.eclipse.ui.workbench;bundle-version="[3.108.0,4.0.0)", org.eclipse.emf.ecore;bundle-version="[2.12.0,3.0.0)";visibility:=reexport, org.eclipse.papyrus.infra.core.log;bundle-version="[1.2.0,2.0.0)", - org.eclipse.uml2.uml;bundle-version="[5.3.0,6.0.0)", - org.eclipse.uml2.uml.edit;bundle-version="[5.3.0,6.0.0)", + org.eclipse.uml2.uml;bundle-version="[5.3.0,6.0.0)";visibility:=reexport, + org.eclipse.uml2.uml.edit;bundle-version="[5.3.0,6.0.0)";visibility:=reexport, org.eclipse.papyrus.infra.internationalization;bundle-version="[1.0.0,2.0.0)", org.eclipse.papyrus.uml.internationalization.utils;bundle-version="[1.0.0,2.0.0)", - org.eclipse.papyrus.infra.internationalization.common;bundle-version="[1.0.0,2.0.0)" + org.eclipse.papyrus.infra.internationalization.common;bundle-version="[1.1.0,2.0.0)" Bundle-ActivationPolicy: lazy Bundle-Activator: org.eclipse.papyrus.uml.internationalization.edit.Activator Export-Package: org.eclipse.papyrus.uml.internationalization.edit, + org.eclipse.papyrus.uml.internationalization.edit.internal.providers;x-internal:=true, org.eclipse.papyrus.uml.internationalization.edit.providers, org.eclipse.papyrus.uml.internationalization.edit.utils diff --git a/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/pom.xml b/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/pom.xml index f8815f5e51b..1184e521ed7 100644 --- a/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/pom.xml +++ b/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/pom.xml @@ -8,6 +8,6 @@ <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>org.eclipse.papyrus.uml.internationalization.edit</artifactId> - <version>1.0.0-SNAPSHOT</version> + <version>1.100.0-SNAPSHOT</version> <packaging>eclipse-plugin</packaging> </project>
\ No newline at end of file diff --git a/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/src/org/eclipse/papyrus/uml/internationalization/edit/internal/providers/InternationalizationUMLItemProviderAdapterFactoryImpl.java b/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/src/org/eclipse/papyrus/uml/internationalization/edit/internal/providers/InternationalizationUMLItemProviderAdapterFactoryImpl.java new file mode 100644 index 00000000000..359fd1946a2 --- /dev/null +++ b/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/src/org/eclipse/papyrus/uml/internationalization/edit/internal/providers/InternationalizationUMLItemProviderAdapterFactoryImpl.java @@ -0,0 +1,3493 @@ +/***************************************************************************** + * Copyright (c) 2016, 2017 CEA LIST, Christian W. Damus, 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: + * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation + * Christian W. Damus - bug 528343 + * + *****************************************************************************/ + +package org.eclipse.papyrus.uml.internationalization.edit.internal.providers; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.papyrus.uml.internationalization.edit.utils.InternationalizationElementItemProviderUtils; +import org.eclipse.papyrus.uml.internationalization.utils.utils.UMLLabelInternationalization; +import org.eclipse.uml2.common.util.UML2Util; +import org.eclipse.uml2.uml.LiteralUnlimitedNatural; +import org.eclipse.uml2.uml.MultiplicityElement; +import org.eclipse.uml2.uml.NamedElement; +import org.eclipse.uml2.uml.Operation; +import org.eclipse.uml2.uml.Parameter; +import org.eclipse.uml2.uml.Property; +import org.eclipse.uml2.uml.Type; +import org.eclipse.uml2.uml.UMLPackage; +import org.eclipse.uml2.uml.edit.providers.*; +import org.eclipse.uml2.uml.util.UMLUtil; + +/** + * This allows to override the {@link UMLItemProviderAdapterFactory} to avoid + * the {@link NamedElement#getLabel()} call when the internationalization + * preference is set to false. + */ +public class InternationalizationUMLItemProviderAdapterFactoryImpl extends UMLItemProviderAdapterFactory { + + /** + * Constructor. + */ + public InternationalizationUMLItemProviderAdapterFactoryImpl() { + super(); + } + + @Override + public Adapter createDependencyAdapter() { + if (dependencyItemProvider == null) { + dependencyItemProvider = new DependencyItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return dependencyItemProvider; + } + + @Override + public Adapter createPackageAdapter() { + if (packageItemProvider == null) { + packageItemProvider = new PackageItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return packageItemProvider; + } + + @Override + public Adapter createProfileAdapter() { + if (profileItemProvider == null) { + profileItemProvider = new ProfileItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return profileItemProvider; + } + + @Override + public Adapter createStereotypeAdapter() { + if (stereotypeItemProvider == null) { + stereotypeItemProvider = new StereotypeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return stereotypeItemProvider; + } + + @Override + public Adapter createClassAdapter() { + if (classItemProvider == null) { + classItemProvider = new ClassItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return classItemProvider; + } + + @Override + public Adapter createGeneralizationSetAdapter() { + if (generalizationSetItemProvider == null) { + generalizationSetItemProvider = new GeneralizationSetItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return generalizationSetItemProvider; + } + + @Override + public Adapter createUseCaseAdapter() { + if (useCaseItemProvider == null) { + useCaseItemProvider = new UseCaseItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return useCaseItemProvider; + } + + @Override + public Adapter createIncludeAdapter() { + if (includeItemProvider == null) { + includeItemProvider = new IncludeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return includeItemProvider; + } + + @Override + public Adapter createExtendAdapter() { + if (extendItemProvider == null) { + extendItemProvider = new ExtendItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return extendItemProvider; + } + + @Override + public Adapter createConstraintAdapter() { + if (constraintItemProvider == null) { + constraintItemProvider = new ConstraintItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return constraintItemProvider; + } + + @Override + public Adapter createExtensionPointAdapter() { + if (extensionPointItemProvider == null) { + extensionPointItemProvider = new ExtensionPointItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return extensionPointItemProvider; + } + + @Override + public Adapter createSubstitutionAdapter() { + if (substitutionItemProvider == null) { + substitutionItemProvider = new SubstitutionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return substitutionItemProvider; + } + + @Override + public Adapter createRealizationAdapter() { + if (realizationItemProvider == null) { + realizationItemProvider = new RealizationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return realizationItemProvider; + } + + @Override + public Adapter createAbstractionAdapter() { + if (abstractionItemProvider == null) { + abstractionItemProvider = new AbstractionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return abstractionItemProvider; + } + + @Override + public Adapter createOpaqueExpressionAdapter() { + if (opaqueExpressionItemProvider == null) { + opaqueExpressionItemProvider = new OpaqueExpressionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return opaqueExpressionItemProvider; + } + + @Override + public Adapter createParameterAdapter() { + if (parameterItemProvider == null) { + parameterItemProvider = new ParameterItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return parameterItemProvider; + } + + @Override + public Adapter createPropertyAdapter() { + if (propertyItemProvider == null) { + propertyItemProvider = new PropertyItemProvider(this) { + + public String getText(Object object) { + StringBuffer text = appendType( + appendKeywords(new StringBuffer(), object), "_UI_Property_type"); //$NON-NLS-1$ + + final Property property = (Property) object; + final Type type = property.getType(); + + if (property.isDerived()) { + appendString(text, "/"); //$NON-NLS-1$ + } + + String label = UMLLabelInternationalization.getInstance().getLabel(property, shouldTranslate()); + + if (!UML2Util.isEmpty(label)) { + appendString(text, label); + } else if (property.getAssociation() != null && type != null) { + String typeName = type.getName(); + + if (!UML2Util.isEmpty(typeName)) { + appendString(text, Character.toLowerCase(typeName.charAt(0)) + + typeName.substring(1)); + } + } + + if (type != null) { + String typeLabel = UMLLabelInternationalization.getInstance().getLabel(type, shouldTranslate()); + + if (!UMLUtil.isEmpty(typeLabel)) { + appendString(text, ": " + typeLabel); //$NON-NLS-1$ + } + } + + return ExtendedMultiplicityElementItemProvider.appendMultiplicityString(text, object) + .toString(); + } + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return propertyItemProvider; + } + + /** + * This allows to redefine the 'appendMultiplicity' method. + */ + public static class ExtendedMultiplicityElementItemProvider extends MultiplicityElementItemProvider{ + + /** + * Constructor. + * + * @param adapterFactory The adapter factory + */ + public ExtendedMultiplicityElementItemProvider(final AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This allows to append the multiplicity. + * + * @param text The existing string buffer. + * @param object The multiplicity element. + * @return The existing string buffer concat with multiplicity. + */ + public static StringBuffer appendMultiplicityString(final StringBuffer text, final Object object) { + return MultiplicityElementItemProvider.appendMultiplicity(text, object); + } + } + + @Override + public Adapter createDeploymentAdapter() { + if (deploymentItemProvider == null) { + deploymentItemProvider = new DeploymentItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return deploymentItemProvider; + } + + @Override + public Adapter createDeploymentSpecificationAdapter() { + if (deploymentSpecificationItemProvider == null) { + deploymentSpecificationItemProvider = new DeploymentSpecificationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return deploymentSpecificationItemProvider; + } + + @Override + public Adapter createArtifactAdapter() { + if (artifactItemProvider == null) { + artifactItemProvider = new ArtifactItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return artifactItemProvider; + } + + @Override + public Adapter createManifestationAdapter() { + if (manifestationItemProvider == null) { + manifestationItemProvider = new ManifestationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return manifestationItemProvider; + } + + @Override + public Adapter createOperationAdapter() { + if (operationItemProvider == null) { + operationItemProvider = new OperationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + + @Override + public String getText(Object object) { + final StringBuffer text = appendLabel( + appendType(appendKeywords(new StringBuffer(), object), "_UI_Operation_type"), object); //$NON-NLS-1$ + + final Operation operation = (Operation) object; + + appendString(text, "("); + + final List<Parameter> ownedParameters = new ArrayList<Parameter>(operation.getOwnedParameters()); + ownedParameters.removeAll(operation.returnResult()); + + for (Iterator<Parameter> parameters = ownedParameters.iterator(); parameters.hasNext();) { + + final Parameter parameter = parameters.next(); + final String label = UMLLabelInternationalization.getInstance().getLabel(parameter, + shouldTranslate()); + if (UMLUtil.isEmpty(label)) { + text.append('<').append(getTypeText(parameter)).append('>'); + } else { + text.append(label); + } + + final Type type = parameter.getType(); + + if (null != type) { + final String typeLabel = UMLLabelInternationalization.getInstance().getLabel(type, + shouldTranslate()); + + if (!UMLUtil.isEmpty(typeLabel)) { + appendString(text, ": " + typeLabel); //$NON-NLS-1$ + } + } + + appendMultiplicity(text, parameter); + + if (parameters.hasNext()) { + text.append(", "); //$NON-NLS-1$ + } + } + + text.append(')'); + + Parameter returnResult = operation.getReturnResult(); + + if (returnResult != null) { + Type type = returnResult.getType(); + + if (type != null) { + String typeLabel = type.getLabel(shouldTranslate()); + + if (!UMLUtil.isEmpty(typeLabel)) { + appendString(text, ": " + typeLabel); //$NON-NLS-1$ + } + } + + appendMultiplicity(text, returnResult); + } + + return text.toString(); + } + }; + } + return operationItemProvider; + } + + @Override + public Adapter createParameterSetAdapter() { + if (parameterSetItemProvider == null) { + parameterSetItemProvider = new ParameterSetItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return parameterSetItemProvider; + } + + @Override + public Adapter createDataTypeAdapter() { + if (dataTypeItemProvider == null) { + dataTypeItemProvider = new DataTypeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return dataTypeItemProvider; + } + + @Override + public Adapter createInterfaceAdapter() { + if (interfaceItemProvider == null) { + interfaceItemProvider = new InterfaceItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return interfaceItemProvider; + } + + @Override + public Adapter createReceptionAdapter() { + if (receptionItemProvider == null) { + receptionItemProvider = new ReceptionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return receptionItemProvider; + } + + @Override + public Adapter createSignalAdapter() { + if (signalItemProvider == null) { + signalItemProvider = new SignalItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return signalItemProvider; + } + + @Override + public Adapter createProtocolStateMachineAdapter() { + if (protocolStateMachineItemProvider == null) { + protocolStateMachineItemProvider = new ProtocolStateMachineItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return protocolStateMachineItemProvider; + } + + @Override + public Adapter createStateMachineAdapter() { + if (stateMachineItemProvider == null) { + stateMachineItemProvider = new StateMachineItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return stateMachineItemProvider; + } + + @Override + public Adapter createRegionAdapter() { + if (regionItemProvider == null) { + regionItemProvider = new RegionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return regionItemProvider; + } + + @Override + public Adapter createTransitionAdapter() { + if (transitionItemProvider == null) { + transitionItemProvider = new TransitionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return transitionItemProvider; + } + + @Override + public Adapter createTriggerAdapter() { + if (triggerItemProvider == null) { + triggerItemProvider = new TriggerItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return triggerItemProvider; + } + + @Override + public Adapter createPortAdapter() { + if (portItemProvider == null) { + portItemProvider = new PortItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return portItemProvider; + } + + @Override + public Adapter createStateAdapter() { + if (stateItemProvider == null) { + stateItemProvider = new StateItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return stateItemProvider; + } + + @Override + public Adapter createConnectionPointReferenceAdapter() { + if (connectionPointReferenceItemProvider == null) { + connectionPointReferenceItemProvider = new ConnectionPointReferenceItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return connectionPointReferenceItemProvider; + } + + @Override + public Adapter createPseudostateAdapter() { + if (pseudostateItemProvider == null) { + pseudostateItemProvider = new PseudostateItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return pseudostateItemProvider; + } + + @Override + public Adapter createAssociationAdapter() { + if (associationItemProvider == null) { + associationItemProvider = new AssociationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return associationItemProvider; + } + + @Override + public Adapter createCollaborationUseAdapter() { + if (collaborationUseItemProvider == null) { + collaborationUseItemProvider = new CollaborationUseItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return collaborationUseItemProvider; + } + + @Override + public Adapter createCollaborationAdapter() { + if (collaborationItemProvider == null) { + collaborationItemProvider = new CollaborationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return collaborationItemProvider; + } + + @Override + public Adapter createConnectorAdapter() { + if (connectorItemProvider == null) { + connectorItemProvider = new ConnectorItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return connectorItemProvider; + } + + @Override + public Adapter createRedefinableTemplateSignatureAdapter() { + if (redefinableTemplateSignatureItemProvider == null) { + redefinableTemplateSignatureItemProvider = new RedefinableTemplateSignatureItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return redefinableTemplateSignatureItemProvider; + } + + @Override + public Adapter createInterfaceRealizationAdapter() { + if (interfaceRealizationItemProvider == null) { + interfaceRealizationItemProvider = new InterfaceRealizationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return interfaceRealizationItemProvider; + } + + @Override + public Adapter createExtensionAdapter() { + if (extensionItemProvider == null) { + extensionItemProvider = new ExtensionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return extensionItemProvider; + } + + @Override + public Adapter createExtensionEndAdapter() { + if (extensionEndItemProvider == null) { + extensionEndItemProvider = new ExtensionEndItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return extensionEndItemProvider; + } + + @Override + public Adapter createStringExpressionAdapter() { + if (stringExpressionItemProvider == null) { + stringExpressionItemProvider = new StringExpressionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return stringExpressionItemProvider; + } + + @Override + public Adapter createExpressionAdapter() { + if (expressionItemProvider == null) { + expressionItemProvider = new ExpressionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return expressionItemProvider; + } + + @Override + public Adapter createLiteralIntegerAdapter() { + if (literalIntegerItemProvider == null) { + literalIntegerItemProvider = new LiteralIntegerItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return literalIntegerItemProvider; + } + + @Override + public Adapter createLiteralStringAdapter() { + if (literalStringItemProvider == null) { + literalStringItemProvider = new LiteralStringItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return literalStringItemProvider; + } + + @Override + public Adapter createLiteralBooleanAdapter() { + if (literalBooleanItemProvider == null) { + literalBooleanItemProvider = new LiteralBooleanItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return literalBooleanItemProvider; + } + + @Override + public Adapter createLiteralNullAdapter() { + if (literalNullItemProvider == null) { + literalNullItemProvider = new LiteralNullItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return literalNullItemProvider; + } + + @Override + public Adapter createInstanceSpecificationAdapter() { + if (instanceSpecificationItemProvider == null) { + instanceSpecificationItemProvider = new InstanceSpecificationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return instanceSpecificationItemProvider; + } + + @Override + public Adapter createEnumerationAdapter() { + if (enumerationItemProvider == null) { + enumerationItemProvider = new EnumerationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return enumerationItemProvider; + } + + @Override + public Adapter createEnumerationLiteralAdapter() { + if (enumerationLiteralItemProvider == null) { + enumerationLiteralItemProvider = new EnumerationLiteralItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return enumerationLiteralItemProvider; + } + + @Override + public Adapter createPrimitiveTypeAdapter() { + if (primitiveTypeItemProvider == null) { + primitiveTypeItemProvider = new PrimitiveTypeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return primitiveTypeItemProvider; + } + + @Override + public Adapter createInstanceValueAdapter() { + if (instanceValueItemProvider == null) { + instanceValueItemProvider = new InstanceValueItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return instanceValueItemProvider; + } + + @Override + public Adapter createLiteralUnlimitedNaturalAdapter() { + if (literalUnlimitedNaturalItemProvider == null) { + literalUnlimitedNaturalItemProvider = new LiteralUnlimitedNaturalItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return literalUnlimitedNaturalItemProvider; + } + + @Override + public Adapter createOpaqueBehaviorAdapter() { + if (opaqueBehaviorItemProvider == null) { + opaqueBehaviorItemProvider = new OpaqueBehaviorItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return opaqueBehaviorItemProvider; + } + + @Override + public Adapter createFunctionBehaviorAdapter() { + if (functionBehaviorItemProvider == null) { + functionBehaviorItemProvider = new FunctionBehaviorItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return functionBehaviorItemProvider; + } + + @Override + public Adapter createActorAdapter() { + if (actorItemProvider == null) { + actorItemProvider = new ActorItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return actorItemProvider; + } + + @Override + public Adapter createUsageAdapter() { + if (usageItemProvider == null) { + usageItemProvider = new UsageItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return usageItemProvider; + } + + @Override + public Adapter createMessageAdapter() { + if (messageItemProvider == null) { + messageItemProvider = new MessageItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return messageItemProvider; + } + + @Override + public Adapter createInteractionAdapter() { + if (interactionItemProvider == null) { + interactionItemProvider = new InteractionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return interactionItemProvider; + } + + @Override + public Adapter createLifelineAdapter() { + if (lifelineItemProvider == null) { + lifelineItemProvider = new LifelineItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return lifelineItemProvider; + } + + @Override + public Adapter createPartDecompositionAdapter() { + if (partDecompositionItemProvider == null) { + partDecompositionItemProvider = new PartDecompositionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return partDecompositionItemProvider; + } + + @Override + public Adapter createInteractionUseAdapter() { + if (interactionUseItemProvider == null) { + interactionUseItemProvider = new InteractionUseItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return interactionUseItemProvider; + } + + @Override + public Adapter createGateAdapter() { + if (gateItemProvider == null) { + gateItemProvider = new GateItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return gateItemProvider; + } + + @Override + public Adapter createActivityAdapter() { + if (activityItemProvider == null) { + activityItemProvider = new ActivityItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return activityItemProvider; + } + + @Override + public Adapter createActivityPartitionAdapter() { + if (activityPartitionItemProvider == null) { + activityPartitionItemProvider = new ActivityPartitionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return activityPartitionItemProvider; + } + + @Override + public Adapter createStructuredActivityNodeAdapter() { + if (structuredActivityNodeItemProvider == null) { + structuredActivityNodeItemProvider = new StructuredActivityNodeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return structuredActivityNodeItemProvider; + } + + @Override + public Adapter createVariableAdapter() { + if (variableItemProvider == null) { + variableItemProvider = new VariableItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return variableItemProvider; + } + + @Override + public Adapter createInterruptibleActivityRegionAdapter() { + if (interruptibleActivityRegionItemProvider == null) { + interruptibleActivityRegionItemProvider = new InterruptibleActivityRegionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return interruptibleActivityRegionItemProvider; + } + + @Override + public Adapter createExceptionHandlerAdapter() { + if (exceptionHandlerItemProvider == null) { + exceptionHandlerItemProvider = new ExceptionHandlerItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return exceptionHandlerItemProvider; + } + + @Override + public Adapter createOutputPinAdapter() { + if (outputPinItemProvider == null) { + outputPinItemProvider = new OutputPinItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return outputPinItemProvider; + } + + @Override + public Adapter createInputPinAdapter() { + if (inputPinItemProvider == null) { + inputPinItemProvider = new InputPinItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return inputPinItemProvider; + } + + @Override + public Adapter createGeneralOrderingAdapter() { + if (generalOrderingItemProvider == null) { + generalOrderingItemProvider = new GeneralOrderingItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return generalOrderingItemProvider; + } + + @Override + public Adapter createOccurrenceSpecificationAdapter() { + if (occurrenceSpecificationItemProvider == null) { + occurrenceSpecificationItemProvider = new OccurrenceSpecificationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return occurrenceSpecificationItemProvider; + } + + @Override + public Adapter createInteractionOperandAdapter() { + if (interactionOperandItemProvider == null) { + interactionOperandItemProvider = new InteractionOperandItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return interactionOperandItemProvider; + } + + @Override + public Adapter createInteractionConstraintAdapter() { + if (interactionConstraintItemProvider == null) { + interactionConstraintItemProvider = new InteractionConstraintItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return interactionConstraintItemProvider; + } + + @Override + public Adapter createExecutionOccurrenceSpecificationAdapter() { + if (executionOccurrenceSpecificationItemProvider == null) { + executionOccurrenceSpecificationItemProvider = new ExecutionOccurrenceSpecificationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return executionOccurrenceSpecificationItemProvider; + } + + @Override + public Adapter createStateInvariantAdapter() { + if (stateInvariantItemProvider == null) { + stateInvariantItemProvider = new StateInvariantItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return stateInvariantItemProvider; + } + + @Override + public Adapter createActionExecutionSpecificationAdapter() { + if (actionExecutionSpecificationItemProvider == null) { + actionExecutionSpecificationItemProvider = new ActionExecutionSpecificationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return actionExecutionSpecificationItemProvider; + } + + @Override + public Adapter createBehaviorExecutionSpecificationAdapter() { + if (behaviorExecutionSpecificationItemProvider == null) { + behaviorExecutionSpecificationItemProvider = new BehaviorExecutionSpecificationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return behaviorExecutionSpecificationItemProvider; + } + + @Override + public Adapter createMessageOccurrenceSpecificationAdapter() { + if (messageOccurrenceSpecificationItemProvider == null) { + messageOccurrenceSpecificationItemProvider = new MessageOccurrenceSpecificationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return messageOccurrenceSpecificationItemProvider; + } + + @Override + public Adapter createCombinedFragmentAdapter() { + if (combinedFragmentItemProvider == null) { + combinedFragmentItemProvider = new CombinedFragmentItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return combinedFragmentItemProvider; + } + + @Override + public Adapter createContinuationAdapter() { + if (continuationItemProvider == null) { + continuationItemProvider = new ContinuationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return continuationItemProvider; + } + + @Override + public Adapter createConsiderIgnoreFragmentAdapter() { + if (considerIgnoreFragmentItemProvider == null) { + considerIgnoreFragmentItemProvider = new ConsiderIgnoreFragmentItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return considerIgnoreFragmentItemProvider; + } + + @Override + public Adapter createCallEventAdapter() { + if (callEventItemProvider == null) { + callEventItemProvider = new CallEventItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return callEventItemProvider; + } + + @Override + public Adapter createChangeEventAdapter() { + if (changeEventItemProvider == null) { + changeEventItemProvider = new ChangeEventItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return changeEventItemProvider; + } + + @Override + public Adapter createSignalEventAdapter() { + if (signalEventItemProvider == null) { + signalEventItemProvider = new SignalEventItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return signalEventItemProvider; + } + + @Override + public Adapter createAnyReceiveEventAdapter() { + if (anyReceiveEventItemProvider == null) { + anyReceiveEventItemProvider = new AnyReceiveEventItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return anyReceiveEventItemProvider; + } + + @Override + public Adapter createCreateObjectActionAdapter() { + if (createObjectActionItemProvider == null) { + createObjectActionItemProvider = new CreateObjectActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return createObjectActionItemProvider; + } + + @Override + public Adapter createDestroyObjectActionAdapter() { + if (destroyObjectActionItemProvider == null) { + destroyObjectActionItemProvider = new DestroyObjectActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return destroyObjectActionItemProvider; + } + + @Override + public Adapter createTestIdentityActionAdapter() { + if (testIdentityActionItemProvider == null) { + testIdentityActionItemProvider = new TestIdentityActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return testIdentityActionItemProvider; + } + + @Override + public Adapter createReadSelfActionAdapter() { + if (readSelfActionItemProvider == null) { + readSelfActionItemProvider = new ReadSelfActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return readSelfActionItemProvider; + } + + @Override + public Adapter createReadStructuralFeatureActionAdapter() { + if (readStructuralFeatureActionItemProvider == null) { + readStructuralFeatureActionItemProvider = new ReadStructuralFeatureActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return readStructuralFeatureActionItemProvider; + } + + @Override + public Adapter createClearStructuralFeatureActionAdapter() { + if (clearStructuralFeatureActionItemProvider == null) { + clearStructuralFeatureActionItemProvider = new ClearStructuralFeatureActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return clearStructuralFeatureActionItemProvider; + } + + @Override + public Adapter createRemoveStructuralFeatureValueActionAdapter() { + if (removeStructuralFeatureValueActionItemProvider == null) { + removeStructuralFeatureValueActionItemProvider = new RemoveStructuralFeatureValueActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return removeStructuralFeatureValueActionItemProvider; + } + + @Override + public Adapter createAddStructuralFeatureValueActionAdapter() { + if (addStructuralFeatureValueActionItemProvider == null) { + addStructuralFeatureValueActionItemProvider = new AddStructuralFeatureValueActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return addStructuralFeatureValueActionItemProvider; + } + + @Override + public Adapter createLinkEndDataAdapter() { + if (linkEndDataItemProvider == null) { + linkEndDataItemProvider = new LinkEndDataItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return linkEndDataItemProvider; + } + + @Override + public Adapter createQualifierValueAdapter() { + if (qualifierValueItemProvider == null) { + qualifierValueItemProvider = new QualifierValueItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return qualifierValueItemProvider; + } + + @Override + public Adapter createReadLinkActionAdapter() { + if (readLinkActionItemProvider == null) { + readLinkActionItemProvider = new ReadLinkActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return readLinkActionItemProvider; + } + + @Override + public Adapter createLinkEndCreationDataAdapter() { + if (linkEndCreationDataItemProvider == null) { + linkEndCreationDataItemProvider = new LinkEndCreationDataItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return linkEndCreationDataItemProvider; + } + + @Override + public Adapter createCreateLinkActionAdapter() { + if (createLinkActionItemProvider == null) { + createLinkActionItemProvider = new CreateLinkActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return createLinkActionItemProvider; + } + + @Override + public Adapter createDestroyLinkActionAdapter() { + if (destroyLinkActionItemProvider == null) { + destroyLinkActionItemProvider = new DestroyLinkActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return destroyLinkActionItemProvider; + } + + @Override + public Adapter createLinkEndDestructionDataAdapter() { + if (linkEndDestructionDataItemProvider == null) { + linkEndDestructionDataItemProvider = new LinkEndDestructionDataItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return linkEndDestructionDataItemProvider; + } + + @Override + public Adapter createClearAssociationActionAdapter() { + if (clearAssociationActionItemProvider == null) { + clearAssociationActionItemProvider = new ClearAssociationActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return clearAssociationActionItemProvider; + } + + @Override + public Adapter createBroadcastSignalActionAdapter() { + if (broadcastSignalActionItemProvider == null) { + broadcastSignalActionItemProvider = new BroadcastSignalActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return broadcastSignalActionItemProvider; + } + + @Override + public Adapter createSendObjectActionAdapter() { + if (sendObjectActionItemProvider == null) { + sendObjectActionItemProvider = new SendObjectActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return sendObjectActionItemProvider; + } + + @Override + public Adapter createValueSpecificationActionAdapter() { + if (valueSpecificationActionItemProvider == null) { + valueSpecificationActionItemProvider = new ValueSpecificationActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return valueSpecificationActionItemProvider; + } + + @Override + public Adapter createTimeExpressionAdapter() { + if (timeExpressionItemProvider == null) { + timeExpressionItemProvider = new TimeExpressionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return timeExpressionItemProvider; + } + + @Override + public Adapter createDurationAdapter() { + if (durationItemProvider == null) { + durationItemProvider = new DurationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return durationItemProvider; + } + + @Override + public Adapter createValuePinAdapter() { + if (valuePinItemProvider == null) { + valuePinItemProvider = new ValuePinItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return valuePinItemProvider; + } + + @Override + public Adapter createDurationIntervalAdapter() { + if (durationIntervalItemProvider == null) { + durationIntervalItemProvider = new DurationIntervalItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return durationIntervalItemProvider; + } + + @Override + public Adapter createIntervalAdapter() { + if (intervalItemProvider == null) { + intervalItemProvider = new IntervalItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return intervalItemProvider; + } + + @Override + public Adapter createTimeConstraintAdapter() { + if (timeConstraintItemProvider == null) { + timeConstraintItemProvider = new TimeConstraintItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return timeConstraintItemProvider; + } + + @Override + public Adapter createIntervalConstraintAdapter() { + if (intervalConstraintItemProvider == null) { + intervalConstraintItemProvider = new IntervalConstraintItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return intervalConstraintItemProvider; + } + + @Override + public Adapter createTimeIntervalAdapter() { + if (timeIntervalItemProvider == null) { + timeIntervalItemProvider = new TimeIntervalItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return timeIntervalItemProvider; + } + + @Override + public Adapter createDurationConstraintAdapter() { + if (durationConstraintItemProvider == null) { + durationConstraintItemProvider = new DurationConstraintItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return durationConstraintItemProvider; + } + + @Override + public Adapter createTimeObservationAdapter() { + if (timeObservationItemProvider == null) { + timeObservationItemProvider = new TimeObservationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return timeObservationItemProvider; + } + + @Override + public Adapter createDurationObservationAdapter() { + if (durationObservationItemProvider == null) { + durationObservationItemProvider = new DurationObservationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return durationObservationItemProvider; + } + + @Override + public Adapter createOpaqueActionAdapter() { + if (opaqueActionItemProvider == null) { + opaqueActionItemProvider = new OpaqueActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return opaqueActionItemProvider; + } + + @Override + public Adapter createSendSignalActionAdapter() { + if (sendSignalActionItemProvider == null) { + sendSignalActionItemProvider = new SendSignalActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return sendSignalActionItemProvider; + } + + @Override + public Adapter createCallOperationActionAdapter() { + if (callOperationActionItemProvider == null) { + callOperationActionItemProvider = new CallOperationActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return callOperationActionItemProvider; + } + + @Override + public Adapter createCallBehaviorActionAdapter() { + if (callBehaviorActionItemProvider == null) { + callBehaviorActionItemProvider = new CallBehaviorActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return callBehaviorActionItemProvider; + } + + @Override + public Adapter createInformationItemAdapter() { + if (informationItemItemProvider == null) { + informationItemItemProvider = new InformationItemItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return informationItemItemProvider; + } + + @Override + public Adapter createInformationFlowAdapter() { + if (informationFlowItemProvider == null) { + informationFlowItemProvider = new InformationFlowItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return informationFlowItemProvider; + } + + @Override + public Adapter createModelAdapter() { + if (modelItemProvider == null) { + modelItemProvider = new ModelItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return modelItemProvider; + } + + @Override + public Adapter createReadVariableActionAdapter() { + if (readVariableActionItemProvider == null) { + readVariableActionItemProvider = new ReadVariableActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return readVariableActionItemProvider; + } + + @Override + public Adapter createClearVariableActionAdapter() { + if (clearVariableActionItemProvider == null) { + clearVariableActionItemProvider = new ClearVariableActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return clearVariableActionItemProvider; + } + + @Override + public Adapter createAddVariableValueActionAdapter() { + if (addVariableValueActionItemProvider == null) { + addVariableValueActionItemProvider = new AddVariableValueActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return addVariableValueActionItemProvider; + } + + @Override + public Adapter createRemoveVariableValueActionAdapter() { + if (removeVariableValueActionItemProvider == null) { + removeVariableValueActionItemProvider = new RemoveVariableValueActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return removeVariableValueActionItemProvider; + } + + @Override + public Adapter createRaiseExceptionActionAdapter() { + if (raiseExceptionActionItemProvider == null) { + raiseExceptionActionItemProvider = new RaiseExceptionActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return raiseExceptionActionItemProvider; + } + + @Override + public Adapter createActionInputPinAdapter() { + if (actionInputPinItemProvider == null) { + actionInputPinItemProvider = new ActionInputPinItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return actionInputPinItemProvider; + } + + @Override + public Adapter createReadExtentActionAdapter() { + if (readExtentActionItemProvider == null) { + readExtentActionItemProvider = new ReadExtentActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return readExtentActionItemProvider; + } + + @Override + public Adapter createReclassifyObjectActionAdapter() { + if (reclassifyObjectActionItemProvider == null) { + reclassifyObjectActionItemProvider = new ReclassifyObjectActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return reclassifyObjectActionItemProvider; + } + + @Override + public Adapter createReadIsClassifiedObjectActionAdapter() { + if (readIsClassifiedObjectActionItemProvider == null) { + readIsClassifiedObjectActionItemProvider = new ReadIsClassifiedObjectActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return readIsClassifiedObjectActionItemProvider; + } + + @Override + public Adapter createStartClassifierBehaviorActionAdapter() { + if (startClassifierBehaviorActionItemProvider == null) { + startClassifierBehaviorActionItemProvider = new StartClassifierBehaviorActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return startClassifierBehaviorActionItemProvider; + } + + @Override + public Adapter createReadLinkObjectEndActionAdapter() { + if (readLinkObjectEndActionItemProvider == null) { + readLinkObjectEndActionItemProvider = new ReadLinkObjectEndActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return readLinkObjectEndActionItemProvider; + } + + @Override + public Adapter createReadLinkObjectEndQualifierActionAdapter() { + if (readLinkObjectEndQualifierActionItemProvider == null) { + readLinkObjectEndQualifierActionItemProvider = new ReadLinkObjectEndQualifierActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return readLinkObjectEndQualifierActionItemProvider; + } + + @Override + public Adapter createCreateLinkObjectActionAdapter() { + if (createLinkObjectActionItemProvider == null) { + createLinkObjectActionItemProvider = new CreateLinkObjectActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return createLinkObjectActionItemProvider; + } + + @Override + public Adapter createAcceptEventActionAdapter() { + if (acceptEventActionItemProvider == null) { + acceptEventActionItemProvider = new AcceptEventActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return acceptEventActionItemProvider; + } + + @Override + public Adapter createAcceptCallActionAdapter() { + if (acceptCallActionItemProvider == null) { + acceptCallActionItemProvider = new AcceptCallActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return acceptCallActionItemProvider; + } + + @Override + public Adapter createReplyActionAdapter() { + if (replyActionItemProvider == null) { + replyActionItemProvider = new ReplyActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return replyActionItemProvider; + } + + @Override + public Adapter createUnmarshallActionAdapter() { + if (unmarshallActionItemProvider == null) { + unmarshallActionItemProvider = new UnmarshallActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return unmarshallActionItemProvider; + } + + @Override + public Adapter createReduceActionAdapter() { + if (reduceActionItemProvider == null) { + reduceActionItemProvider = new ReduceActionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return reduceActionItemProvider; + } + + @Override + public Adapter createControlFlowAdapter() { + if (controlFlowItemProvider == null) { + controlFlowItemProvider = new ControlFlowItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return controlFlowItemProvider; + } + + @Override + public Adapter createInitialNodeAdapter() { + if (initialNodeItemProvider == null) { + initialNodeItemProvider = new InitialNodeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return initialNodeItemProvider; + } + + @Override + public Adapter createActivityParameterNodeAdapter() { + if (activityParameterNodeItemProvider == null) { + activityParameterNodeItemProvider = new ActivityParameterNodeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return activityParameterNodeItemProvider; + } + + @Override + public Adapter createForkNodeAdapter() { + if (forkNodeItemProvider == null) { + forkNodeItemProvider = new ForkNodeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return forkNodeItemProvider; + } + + @Override + public Adapter createFlowFinalNodeAdapter() { + if (flowFinalNodeItemProvider == null) { + flowFinalNodeItemProvider = new FlowFinalNodeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return flowFinalNodeItemProvider; + } + + @Override + public Adapter createCentralBufferNodeAdapter() { + if (centralBufferNodeItemProvider == null) { + centralBufferNodeItemProvider = new CentralBufferNodeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return centralBufferNodeItemProvider; + } + + @Override + public Adapter createMergeNodeAdapter() { + if (mergeNodeItemProvider == null) { + mergeNodeItemProvider = new MergeNodeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return mergeNodeItemProvider; + } + + @Override + public Adapter createDecisionNodeAdapter() { + if (decisionNodeItemProvider == null) { + decisionNodeItemProvider = new DecisionNodeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return decisionNodeItemProvider; + } + + @Override + public Adapter createActivityFinalNodeAdapter() { + if (activityFinalNodeItemProvider == null) { + activityFinalNodeItemProvider = new ActivityFinalNodeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return activityFinalNodeItemProvider; + } + + @Override + public Adapter createJoinNodeAdapter() { + if (joinNodeItemProvider == null) { + joinNodeItemProvider = new JoinNodeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return joinNodeItemProvider; + } + + @Override + public Adapter createDataStoreNodeAdapter() { + if (dataStoreNodeItemProvider == null) { + dataStoreNodeItemProvider = new DataStoreNodeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return dataStoreNodeItemProvider; + } + + @Override + public Adapter createObjectFlowAdapter() { + if (objectFlowItemProvider == null) { + objectFlowItemProvider = new ObjectFlowItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return objectFlowItemProvider; + } + + @Override + public Adapter createSequenceNodeAdapter() { + if (sequenceNodeItemProvider == null) { + sequenceNodeItemProvider = new SequenceNodeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return sequenceNodeItemProvider; + } + + @Override + public Adapter createConditionalNodeAdapter() { + if (conditionalNodeItemProvider == null) { + conditionalNodeItemProvider = new ConditionalNodeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return conditionalNodeItemProvider; + } + + @Override + public Adapter createClauseAdapter() { + if (clauseItemProvider == null) { + clauseItemProvider = new ClauseItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return clauseItemProvider; + } + + @Override + public Adapter createLoopNodeAdapter() { + if (loopNodeItemProvider == null) { + loopNodeItemProvider = new LoopNodeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return loopNodeItemProvider; + } + + @Override + public Adapter createExpansionNodeAdapter() { + if (expansionNodeItemProvider == null) { + expansionNodeItemProvider = new ExpansionNodeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return expansionNodeItemProvider; + } + + @Override + public Adapter createExpansionRegionAdapter() { + if (expansionRegionItemProvider == null) { + expansionRegionItemProvider = new ExpansionRegionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return expansionRegionItemProvider; + } + + @Override + public Adapter createComponentRealizationAdapter() { + if (componentRealizationItemProvider == null) { + componentRealizationItemProvider = new ComponentRealizationItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return componentRealizationItemProvider; + } + + @Override + public Adapter createComponentAdapter() { + if (componentItemProvider == null) { + componentItemProvider = new ComponentItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return componentItemProvider; + } + + @Override + public Adapter createNodeAdapter() { + if (nodeItemProvider == null) { + nodeItemProvider = new NodeItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return nodeItemProvider; + } + + @Override + public Adapter createDeviceAdapter() { + if (deviceItemProvider == null) { + deviceItemProvider = new DeviceItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return deviceItemProvider; + } + + @Override + public Adapter createExecutionEnvironmentAdapter() { + if (executionEnvironmentItemProvider == null) { + executionEnvironmentItemProvider = new ExecutionEnvironmentItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return executionEnvironmentItemProvider; + } + + @Override + public Adapter createCommunicationPathAdapter() { + if (communicationPathItemProvider == null) { + communicationPathItemProvider = new CommunicationPathItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return communicationPathItemProvider; + } + + @Override + public Adapter createFinalStateAdapter() { + if (finalStateItemProvider == null) { + finalStateItemProvider = new FinalStateItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return finalStateItemProvider; + } + + @Override + public Adapter createTimeEventAdapter() { + if (timeEventItemProvider == null) { + timeEventItemProvider = new TimeEventItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return timeEventItemProvider; + } + + @Override + public Adapter createProtocolTransitionAdapter() { + if (protocolTransitionItemProvider == null) { + protocolTransitionItemProvider = new ProtocolTransitionItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return protocolTransitionItemProvider; + } + + @Override + public Adapter createAssociationClassAdapter() { + if (associationClassItemProvider == null) { + associationClassItemProvider = new AssociationClassItemProvider(this) { + + @Override + protected StringBuffer appendLabel(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + } + + @Override + protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { + return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); + } + }; + } + return associationClassItemProvider; + } + + /** + * This is copied from MiltiplicityElementItemProvider because the initial + * function is protected scoped. + * + * @param text + * The initial string buffer. + * @param object + * The object to manage multiplicity. + * @return The modified string buffer. + */ + protected static StringBuffer appendMultiplicity(final StringBuffer text, final Object object) { + + if (object instanceof MultiplicityElement) { + MultiplicityElement multiplicityElement = (MultiplicityElement) object; + + if (multiplicityElement.eIsSet(UMLPackage.Literals.MULTIPLICITY_ELEMENT__LOWER) + || multiplicityElement.eIsSet(UMLPackage.Literals.MULTIPLICITY_ELEMENT__UPPER)) { + + if (0 < text.length()) { + text.append(' '); + } + + int upper = multiplicityElement.getUpper(); + + text.append('[').append(multiplicityElement.getLower()).append("..") //$NON-NLS-1$ + .append(upper == LiteralUnlimitedNatural.UNLIMITED ? "*" : String.valueOf(upper)).append(']'); //$NON-NLS-1$ + } + } + + return text; + } +} diff --git a/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/src/org/eclipse/papyrus/uml/internationalization/edit/providers/InternationalizationUMLItemProviderAdapterFactory.java b/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/src/org/eclipse/papyrus/uml/internationalization/edit/providers/InternationalizationUMLItemProviderAdapterFactory.java index e16a9de9a4c..31635aae56f 100644 --- a/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/src/org/eclipse/papyrus/uml/internationalization/edit/providers/InternationalizationUMLItemProviderAdapterFactory.java +++ b/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/src/org/eclipse/papyrus/uml/internationalization/edit/providers/InternationalizationUMLItemProviderAdapterFactory.java @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (c) 2016 CEA LIST and others. + * Copyright (c) 2017 Christian W. Damus and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -7,3486 +7,246 @@ * http://www.eclipse.org/legal/epl-v10.html * * Contributors: - * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation + * Christian W. Damus - Initial API and implementation * *****************************************************************************/ package org.eclipse.papyrus.uml.internationalization.edit.providers; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; +import java.util.Collection; +import java.util.Map; +import java.util.WeakHashMap; import org.eclipse.emf.common.notify.Adapter; -import org.eclipse.emf.common.notify.AdapterFactory; -import org.eclipse.papyrus.uml.internationalization.edit.utils.InternationalizationElementItemProviderUtils; -import org.eclipse.papyrus.uml.internationalization.utils.utils.UMLLabelInternationalization; -import org.eclipse.uml2.common.util.UML2Util; -import org.eclipse.uml2.uml.LiteralUnlimitedNatural; -import org.eclipse.uml2.uml.MultiplicityElement; -import org.eclipse.uml2.uml.NamedElement; -import org.eclipse.uml2.uml.Operation; -import org.eclipse.uml2.uml.Parameter; -import org.eclipse.uml2.uml.Property; -import org.eclipse.uml2.uml.Type; -import org.eclipse.uml2.uml.UMLPackage; -import org.eclipse.uml2.uml.edit.providers.*; -import org.eclipse.uml2.uml.util.UMLUtil; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.notify.impl.AdapterImpl; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.edit.provider.ComposedAdapterFactory; +import org.eclipse.emf.edit.provider.INotifyChangedListener; +import org.eclipse.papyrus.infra.internationalization.common.utils.InternationalizationPreferenceChangeEvent; +import org.eclipse.papyrus.infra.internationalization.common.utils.InternationalizationPreferenceListener; +import org.eclipse.papyrus.infra.internationalization.common.utils.InternationalizationPreferencesUtils; +import org.eclipse.papyrus.uml.internationalization.edit.internal.providers.InternationalizationUMLItemProviderAdapterFactoryImpl; +import org.eclipse.uml2.uml.edit.providers.UMLItemProviderAdapterFactory; /** - * This allows to override the {@link UMLItemProviderAdapterFactory} to avoid - * the {@link NamedElement#getLabel()} call when the internationalization - * preference is set to false. + * An item-provider adapter factory for UML that switches between the standard + * UML2 item-providers and item-providers that support the <em>Papyrus Model + * Internationalization</em> mechanism for models that do not or do have + * internationalization enabled, respectively. */ -public class InternationalizationUMLItemProviderAdapterFactory extends UMLItemProviderAdapterFactory { +public class InternationalizationUMLItemProviderAdapterFactory + extends InternationalizationUMLItemProviderAdapterFactoryImpl { + + // Delegate for standard UML item providers. Delegate to super for i18n support + private final UMLItemProviderAdapterFactory uml = new UMLItemProviderAdapterFactory(); + + // Weakly track multiple resource sets because Papyrus uses a singleton adapter + // factory instance in many scenarios + private final Map<ResourceSet, Boolean> resourceSets; + + private final Adapter resourceSetAdapter; + private final InternationalizationPreferenceListener prefListener; /** * Constructor. */ public InternationalizationUMLItemProviderAdapterFactory() { super(); - } - - @Override - public Adapter createDependencyAdapter() { - if (dependencyItemProvider == null) { - dependencyItemProvider = new DependencyItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return dependencyItemProvider; - } - - @Override - public Adapter createPackageAdapter() { - if (packageItemProvider == null) { - packageItemProvider = new PackageItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return packageItemProvider; - } - - @Override - public Adapter createProfileAdapter() { - if (profileItemProvider == null) { - profileItemProvider = new ProfileItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return profileItemProvider; - } - - @Override - public Adapter createStereotypeAdapter() { - if (stereotypeItemProvider == null) { - stereotypeItemProvider = new StereotypeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return stereotypeItemProvider; - } - - @Override - public Adapter createClassAdapter() { - if (classItemProvider == null) { - classItemProvider = new ClassItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return classItemProvider; - } - - @Override - public Adapter createGeneralizationSetAdapter() { - if (generalizationSetItemProvider == null) { - generalizationSetItemProvider = new GeneralizationSetItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return generalizationSetItemProvider; - } - - @Override - public Adapter createUseCaseAdapter() { - if (useCaseItemProvider == null) { - useCaseItemProvider = new UseCaseItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return useCaseItemProvider; - } - - @Override - public Adapter createIncludeAdapter() { - if (includeItemProvider == null) { - includeItemProvider = new IncludeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return includeItemProvider; - } - - @Override - public Adapter createExtendAdapter() { - if (extendItemProvider == null) { - extendItemProvider = new ExtendItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return extendItemProvider; - } - - @Override - public Adapter createConstraintAdapter() { - if (constraintItemProvider == null) { - constraintItemProvider = new ConstraintItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return constraintItemProvider; - } - - @Override - public Adapter createExtensionPointAdapter() { - if (extensionPointItemProvider == null) { - extensionPointItemProvider = new ExtensionPointItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return extensionPointItemProvider; - } - @Override - public Adapter createSubstitutionAdapter() { - if (substitutionItemProvider == null) { - substitutionItemProvider = new SubstitutionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } + resourceSets = new WeakHashMap<>(); + resourceSetAdapter = createResourceSetAdapter(); + prefListener = createPreferenceListener(); - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return substitutionItemProvider; + InternationalizationPreferencesUtils.addPreferenceListener(prefListener); } @Override - public Adapter createRealizationAdapter() { - if (realizationItemProvider == null) { - realizationItemProvider = new RealizationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } + public void dispose() { + InternationalizationPreferencesUtils.removePreferenceListener(prefListener); - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; + for (ResourceSet next : resourceSets.keySet()) { + next.eAdapters().remove(resourceSetAdapter); } - return realizationItemProvider; - } + resourceSets.clear(); - @Override - public Adapter createAbstractionAdapter() { - if (abstractionItemProvider == null) { - abstractionItemProvider = new AbstractionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return abstractionItemProvider; + uml.dispose(); + super.dispose(); } - @Override - public Adapter createOpaqueExpressionAdapter() { - if (opaqueExpressionItemProvider == null) { - opaqueExpressionItemProvider = new OpaqueExpressionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return opaqueExpressionItemProvider; - } - - @Override - public Adapter createParameterAdapter() { - if (parameterItemProvider == null) { - parameterItemProvider = new ParameterItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return parameterItemProvider; - } - - @Override - public Adapter createPropertyAdapter() { - if (propertyItemProvider == null) { - propertyItemProvider = new PropertyItemProvider(this) { - - public String getText(Object object) { - StringBuffer text = appendType( - appendKeywords(new StringBuffer(), object), "_UI_Property_type"); //$NON-NLS-1$ - - final Property property = (Property) object; - final Type type = property.getType(); - - if (property.isDerived()) { - appendString(text, "/"); //$NON-NLS-1$ - } - - String label = UMLLabelInternationalization.getInstance().getLabel(property, shouldTranslate()); - - if (!UML2Util.isEmpty(label)) { - appendString(text, label); - } else if (property.getAssociation() != null && type != null) { - String typeName = type.getName(); - - if (!UML2Util.isEmpty(typeName)) { - appendString(text, Character.toLowerCase(typeName.charAt(0)) - + typeName.substring(1)); - } - } - - if (type != null) { - String typeLabel = UMLLabelInternationalization.getInstance().getLabel(type, shouldTranslate()); - - if (!UMLUtil.isEmpty(typeLabel)) { - appendString(text, ": " + typeLabel); //$NON-NLS-1$ + /** + * Creates a listener on the internationalization preferences utility that will + * be notified when the settings for any resource change. + * + * @return the preference listener + */ + private InternationalizationPreferenceListener createPreferenceListener() { + return new InternationalizationPreferenceListener() { + @Override + public void internationalizationChanged(InternationalizationPreferenceChangeEvent event) { + switch (event.getEventType()) { + case InternationalizationPreferenceChangeEvent.ENABLED: + if (event.isInternationalizationEnabled() && !resourceSets.isEmpty()) { + for (Map.Entry<ResourceSet, Boolean> entry : resourceSets.entrySet()) { + if (entry.getKey().getResource(event.getResourceURI(), false) != null) { + // This resource set now requires i18n + entry.setValue(true); + // And we don't need to track its resources any more + entry.getKey().eAdapters().remove(resourceSetAdapter); + + // Any adapters already attached to this resource set + // need to be purged. Unfortunately, this will also + // remove adapters from other non-internationalized + // models, so they will have to be rebuilt, too, as + // a one-time cost + uml.dispose(); + } } } - - return ExtendedMultiplicityElementItemProvider.appendMultiplicityString(text, object) - .toString(); + break; + default: + // Pass + break; } - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return propertyItemProvider; + } + }; } /** - * This allows to redefine the 'appendMultiplicity' method. + * Create an adapter that will check the internationalization status of + * resources as they are added to any of my contextual resource sets. + * + * @return the resource-set adapter */ - public static class ExtendedMultiplicityElementItemProvider extends MultiplicityElementItemProvider{ - - /** - * Constructor. - * - * @param adapterFactory The adapter factory - */ - public ExtendedMultiplicityElementItemProvider(final AdapterFactory adapterFactory) { - super(adapterFactory); - } - - /** - * This allows to append the multiplicity. - * - * @param text The existing string buffer. - * @param object The multiplicity element. - * @return The existing string buffer concat with multiplicity. - */ - public static StringBuffer appendMultiplicityString(final StringBuffer text, final Object object) { - return MultiplicityElementItemProvider.appendMultiplicity(text, object); - } - } - - @Override - public Adapter createDeploymentAdapter() { - if (deploymentItemProvider == null) { - deploymentItemProvider = new DeploymentItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return deploymentItemProvider; - } - - @Override - public Adapter createDeploymentSpecificationAdapter() { - if (deploymentSpecificationItemProvider == null) { - deploymentSpecificationItemProvider = new DeploymentSpecificationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return deploymentSpecificationItemProvider; - } - - @Override - public Adapter createArtifactAdapter() { - if (artifactItemProvider == null) { - artifactItemProvider = new ArtifactItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return artifactItemProvider; - } - - @Override - public Adapter createManifestationAdapter() { - if (manifestationItemProvider == null) { - manifestationItemProvider = new ManifestationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return manifestationItemProvider; - } - - @Override - public Adapter createOperationAdapter() { - if (operationItemProvider == null) { - operationItemProvider = new OperationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - - @Override - public String getText(Object object) { - final StringBuffer text = appendLabel( - appendType(appendKeywords(new StringBuffer(), object), "_UI_Operation_type"), object); //$NON-NLS-1$ - - final Operation operation = (Operation) object; - - appendString(text, "("); - - final List<Parameter> ownedParameters = new ArrayList<Parameter>(operation.getOwnedParameters()); - ownedParameters.removeAll(operation.returnResult()); - - for (Iterator<Parameter> parameters = ownedParameters.iterator(); parameters.hasNext();) { - - final Parameter parameter = parameters.next(); - final String label = UMLLabelInternationalization.getInstance().getLabel(parameter, - shouldTranslate()); - if (UMLUtil.isEmpty(label)) { - text.append('<').append(getTypeText(parameter)).append('>'); - } else { - text.append(label); - } - - final Type type = parameter.getType(); - - if (null != type) { - final String typeLabel = UMLLabelInternationalization.getInstance().getLabel(type, - shouldTranslate()); - - if (!UMLUtil.isEmpty(typeLabel)) { - appendString(text, ": " + typeLabel); //$NON-NLS-1$ + private Adapter createResourceSetAdapter() { + return new AdapterImpl() { + @Override + public void notifyChanged(Notification msg) { + if (msg.isTouch()) { + return; + } + + switch (msg.getFeatureID(ResourceSet.class)) { + case ResourceSet.RESOURCE_SET__RESOURCES: + switch (msg.getEventType()) { + case Notification.ADD: + checkResource((Resource) msg.getNewValue()); + break; + case Notification.ADD_MANY: + for (Object next : (Collection<?>) msg.getNewValue()) { + if (checkResource((Resource) next)) { + break; // Need look no further } } - - appendMultiplicity(text, parameter); - - if (parameters.hasNext()) { - text.append(", "); //$NON-NLS-1$ - } - } - - text.append(')'); - - Parameter returnResult = operation.getReturnResult(); - - if (returnResult != null) { - Type type = returnResult.getType(); - - if (type != null) { - String typeLabel = type.getLabel(shouldTranslate()); - - if (!UMLUtil.isEmpty(typeLabel)) { - appendString(text, ": " + typeLabel); //$NON-NLS-1$ - } - } - - appendMultiplicity(text, returnResult); + break; + case Notification.SET: + checkResource((Resource) msg.getNewValue()); + break; } - - return text.toString(); - } - }; - } - return operationItemProvider; - } - - @Override - public Adapter createParameterSetAdapter() { - if (parameterSetItemProvider == null) { - parameterSetItemProvider = new ParameterSetItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return parameterSetItemProvider; - } - - @Override - public Adapter createDataTypeAdapter() { - if (dataTypeItemProvider == null) { - dataTypeItemProvider = new DataTypeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return dataTypeItemProvider; - } - - @Override - public Adapter createInterfaceAdapter() { - if (interfaceItemProvider == null) { - interfaceItemProvider = new InterfaceItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return interfaceItemProvider; - } - - @Override - public Adapter createReceptionAdapter() { - if (receptionItemProvider == null) { - receptionItemProvider = new ReceptionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return receptionItemProvider; - } - - @Override - public Adapter createSignalAdapter() { - if (signalItemProvider == null) { - signalItemProvider = new SignalItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return signalItemProvider; - } - - @Override - public Adapter createProtocolStateMachineAdapter() { - if (protocolStateMachineItemProvider == null) { - protocolStateMachineItemProvider = new ProtocolStateMachineItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return protocolStateMachineItemProvider; - } - - @Override - public Adapter createStateMachineAdapter() { - if (stateMachineItemProvider == null) { - stateMachineItemProvider = new StateMachineItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return stateMachineItemProvider; - } - - @Override - public Adapter createRegionAdapter() { - if (regionItemProvider == null) { - regionItemProvider = new RegionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return regionItemProvider; - } - - @Override - public Adapter createTransitionAdapter() { - if (transitionItemProvider == null) { - transitionItemProvider = new TransitionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return transitionItemProvider; - } - - @Override - public Adapter createTriggerAdapter() { - if (triggerItemProvider == null) { - triggerItemProvider = new TriggerItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return triggerItemProvider; - } - - @Override - public Adapter createPortAdapter() { - if (portItemProvider == null) { - portItemProvider = new PortItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return portItemProvider; - } - - @Override - public Adapter createStateAdapter() { - if (stateItemProvider == null) { - stateItemProvider = new StateItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return stateItemProvider; - } - - @Override - public Adapter createConnectionPointReferenceAdapter() { - if (connectionPointReferenceItemProvider == null) { - connectionPointReferenceItemProvider = new ConnectionPointReferenceItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return connectionPointReferenceItemProvider; - } - - @Override - public Adapter createPseudostateAdapter() { - if (pseudostateItemProvider == null) { - pseudostateItemProvider = new PseudostateItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return pseudostateItemProvider; - } - - @Override - public Adapter createAssociationAdapter() { - if (associationItemProvider == null) { - associationItemProvider = new AssociationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return associationItemProvider; - } - - @Override - public Adapter createCollaborationUseAdapter() { - if (collaborationUseItemProvider == null) { - collaborationUseItemProvider = new CollaborationUseItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return collaborationUseItemProvider; - } - - @Override - public Adapter createCollaborationAdapter() { - if (collaborationItemProvider == null) { - collaborationItemProvider = new CollaborationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return collaborationItemProvider; - } - - @Override - public Adapter createConnectorAdapter() { - if (connectorItemProvider == null) { - connectorItemProvider = new ConnectorItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return connectorItemProvider; - } - - @Override - public Adapter createRedefinableTemplateSignatureAdapter() { - if (redefinableTemplateSignatureItemProvider == null) { - redefinableTemplateSignatureItemProvider = new RedefinableTemplateSignatureItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return redefinableTemplateSignatureItemProvider; - } - - @Override - public Adapter createInterfaceRealizationAdapter() { - if (interfaceRealizationItemProvider == null) { - interfaceRealizationItemProvider = new InterfaceRealizationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return interfaceRealizationItemProvider; - } - - @Override - public Adapter createExtensionAdapter() { - if (extensionItemProvider == null) { - extensionItemProvider = new ExtensionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return extensionItemProvider; - } - - @Override - public Adapter createExtensionEndAdapter() { - if (extensionEndItemProvider == null) { - extensionEndItemProvider = new ExtensionEndItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return extensionEndItemProvider; - } - - @Override - public Adapter createStringExpressionAdapter() { - if (stringExpressionItemProvider == null) { - stringExpressionItemProvider = new StringExpressionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return stringExpressionItemProvider; - } - - @Override - public Adapter createExpressionAdapter() { - if (expressionItemProvider == null) { - expressionItemProvider = new ExpressionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return expressionItemProvider; - } - - @Override - public Adapter createLiteralIntegerAdapter() { - if (literalIntegerItemProvider == null) { - literalIntegerItemProvider = new LiteralIntegerItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return literalIntegerItemProvider; - } - - @Override - public Adapter createLiteralStringAdapter() { - if (literalStringItemProvider == null) { - literalStringItemProvider = new LiteralStringItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return literalStringItemProvider; - } - - @Override - public Adapter createLiteralBooleanAdapter() { - if (literalBooleanItemProvider == null) { - literalBooleanItemProvider = new LiteralBooleanItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return literalBooleanItemProvider; - } - - @Override - public Adapter createLiteralNullAdapter() { - if (literalNullItemProvider == null) { - literalNullItemProvider = new LiteralNullItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return literalNullItemProvider; - } - - @Override - public Adapter createInstanceSpecificationAdapter() { - if (instanceSpecificationItemProvider == null) { - instanceSpecificationItemProvider = new InstanceSpecificationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return instanceSpecificationItemProvider; - } - - @Override - public Adapter createEnumerationAdapter() { - if (enumerationItemProvider == null) { - enumerationItemProvider = new EnumerationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return enumerationItemProvider; - } - - @Override - public Adapter createEnumerationLiteralAdapter() { - if (enumerationLiteralItemProvider == null) { - enumerationLiteralItemProvider = new EnumerationLiteralItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return enumerationLiteralItemProvider; - } - - @Override - public Adapter createPrimitiveTypeAdapter() { - if (primitiveTypeItemProvider == null) { - primitiveTypeItemProvider = new PrimitiveTypeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return primitiveTypeItemProvider; - } - - @Override - public Adapter createInstanceValueAdapter() { - if (instanceValueItemProvider == null) { - instanceValueItemProvider = new InstanceValueItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return instanceValueItemProvider; - } - - @Override - public Adapter createLiteralUnlimitedNaturalAdapter() { - if (literalUnlimitedNaturalItemProvider == null) { - literalUnlimitedNaturalItemProvider = new LiteralUnlimitedNaturalItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return literalUnlimitedNaturalItemProvider; - } - - @Override - public Adapter createOpaqueBehaviorAdapter() { - if (opaqueBehaviorItemProvider == null) { - opaqueBehaviorItemProvider = new OpaqueBehaviorItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return opaqueBehaviorItemProvider; - } - - @Override - public Adapter createFunctionBehaviorAdapter() { - if (functionBehaviorItemProvider == null) { - functionBehaviorItemProvider = new FunctionBehaviorItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return functionBehaviorItemProvider; - } - - @Override - public Adapter createActorAdapter() { - if (actorItemProvider == null) { - actorItemProvider = new ActorItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return actorItemProvider; - } - - @Override - public Adapter createUsageAdapter() { - if (usageItemProvider == null) { - usageItemProvider = new UsageItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return usageItemProvider; - } - - @Override - public Adapter createMessageAdapter() { - if (messageItemProvider == null) { - messageItemProvider = new MessageItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return messageItemProvider; - } - - @Override - public Adapter createInteractionAdapter() { - if (interactionItemProvider == null) { - interactionItemProvider = new InteractionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return interactionItemProvider; - } - - @Override - public Adapter createLifelineAdapter() { - if (lifelineItemProvider == null) { - lifelineItemProvider = new LifelineItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return lifelineItemProvider; - } - - @Override - public Adapter createPartDecompositionAdapter() { - if (partDecompositionItemProvider == null) { - partDecompositionItemProvider = new PartDecompositionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return partDecompositionItemProvider; - } - - @Override - public Adapter createInteractionUseAdapter() { - if (interactionUseItemProvider == null) { - interactionUseItemProvider = new InteractionUseItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return interactionUseItemProvider; - } - - @Override - public Adapter createGateAdapter() { - if (gateItemProvider == null) { - gateItemProvider = new GateItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return gateItemProvider; - } - - @Override - public Adapter createActivityAdapter() { - if (activityItemProvider == null) { - activityItemProvider = new ActivityItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return activityItemProvider; - } - - @Override - public Adapter createActivityPartitionAdapter() { - if (activityPartitionItemProvider == null) { - activityPartitionItemProvider = new ActivityPartitionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return activityPartitionItemProvider; - } - - @Override - public Adapter createStructuredActivityNodeAdapter() { - if (structuredActivityNodeItemProvider == null) { - structuredActivityNodeItemProvider = new StructuredActivityNodeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return structuredActivityNodeItemProvider; - } - - @Override - public Adapter createVariableAdapter() { - if (variableItemProvider == null) { - variableItemProvider = new VariableItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return variableItemProvider; - } - - @Override - public Adapter createInterruptibleActivityRegionAdapter() { - if (interruptibleActivityRegionItemProvider == null) { - interruptibleActivityRegionItemProvider = new InterruptibleActivityRegionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return interruptibleActivityRegionItemProvider; - } - - @Override - public Adapter createExceptionHandlerAdapter() { - if (exceptionHandlerItemProvider == null) { - exceptionHandlerItemProvider = new ExceptionHandlerItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return exceptionHandlerItemProvider; - } - - @Override - public Adapter createOutputPinAdapter() { - if (outputPinItemProvider == null) { - outputPinItemProvider = new OutputPinItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return outputPinItemProvider; - } - - @Override - public Adapter createInputPinAdapter() { - if (inputPinItemProvider == null) { - inputPinItemProvider = new InputPinItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return inputPinItemProvider; - } - - @Override - public Adapter createGeneralOrderingAdapter() { - if (generalOrderingItemProvider == null) { - generalOrderingItemProvider = new GeneralOrderingItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return generalOrderingItemProvider; - } - - @Override - public Adapter createOccurrenceSpecificationAdapter() { - if (occurrenceSpecificationItemProvider == null) { - occurrenceSpecificationItemProvider = new OccurrenceSpecificationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return occurrenceSpecificationItemProvider; - } - - @Override - public Adapter createInteractionOperandAdapter() { - if (interactionOperandItemProvider == null) { - interactionOperandItemProvider = new InteractionOperandItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return interactionOperandItemProvider; - } - - @Override - public Adapter createInteractionConstraintAdapter() { - if (interactionConstraintItemProvider == null) { - interactionConstraintItemProvider = new InteractionConstraintItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return interactionConstraintItemProvider; - } - - @Override - public Adapter createExecutionOccurrenceSpecificationAdapter() { - if (executionOccurrenceSpecificationItemProvider == null) { - executionOccurrenceSpecificationItemProvider = new ExecutionOccurrenceSpecificationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return executionOccurrenceSpecificationItemProvider; - } - - @Override - public Adapter createStateInvariantAdapter() { - if (stateInvariantItemProvider == null) { - stateInvariantItemProvider = new StateInvariantItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return stateInvariantItemProvider; - } - - @Override - public Adapter createActionExecutionSpecificationAdapter() { - if (actionExecutionSpecificationItemProvider == null) { - actionExecutionSpecificationItemProvider = new ActionExecutionSpecificationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return actionExecutionSpecificationItemProvider; - } - - @Override - public Adapter createBehaviorExecutionSpecificationAdapter() { - if (behaviorExecutionSpecificationItemProvider == null) { - behaviorExecutionSpecificationItemProvider = new BehaviorExecutionSpecificationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return behaviorExecutionSpecificationItemProvider; - } - - @Override - public Adapter createMessageOccurrenceSpecificationAdapter() { - if (messageOccurrenceSpecificationItemProvider == null) { - messageOccurrenceSpecificationItemProvider = new MessageOccurrenceSpecificationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return messageOccurrenceSpecificationItemProvider; - } - - @Override - public Adapter createCombinedFragmentAdapter() { - if (combinedFragmentItemProvider == null) { - combinedFragmentItemProvider = new CombinedFragmentItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return combinedFragmentItemProvider; - } - - @Override - public Adapter createContinuationAdapter() { - if (continuationItemProvider == null) { - continuationItemProvider = new ContinuationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return continuationItemProvider; - } - - @Override - public Adapter createConsiderIgnoreFragmentAdapter() { - if (considerIgnoreFragmentItemProvider == null) { - considerIgnoreFragmentItemProvider = new ConsiderIgnoreFragmentItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return considerIgnoreFragmentItemProvider; - } - - @Override - public Adapter createCallEventAdapter() { - if (callEventItemProvider == null) { - callEventItemProvider = new CallEventItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return callEventItemProvider; - } - - @Override - public Adapter createChangeEventAdapter() { - if (changeEventItemProvider == null) { - changeEventItemProvider = new ChangeEventItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return changeEventItemProvider; - } - - @Override - public Adapter createSignalEventAdapter() { - if (signalEventItemProvider == null) { - signalEventItemProvider = new SignalEventItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return signalEventItemProvider; - } - - @Override - public Adapter createAnyReceiveEventAdapter() { - if (anyReceiveEventItemProvider == null) { - anyReceiveEventItemProvider = new AnyReceiveEventItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return anyReceiveEventItemProvider; - } - - @Override - public Adapter createCreateObjectActionAdapter() { - if (createObjectActionItemProvider == null) { - createObjectActionItemProvider = new CreateObjectActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return createObjectActionItemProvider; - } - - @Override - public Adapter createDestroyObjectActionAdapter() { - if (destroyObjectActionItemProvider == null) { - destroyObjectActionItemProvider = new DestroyObjectActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return destroyObjectActionItemProvider; - } - - @Override - public Adapter createTestIdentityActionAdapter() { - if (testIdentityActionItemProvider == null) { - testIdentityActionItemProvider = new TestIdentityActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return testIdentityActionItemProvider; - } - - @Override - public Adapter createReadSelfActionAdapter() { - if (readSelfActionItemProvider == null) { - readSelfActionItemProvider = new ReadSelfActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return readSelfActionItemProvider; - } - - @Override - public Adapter createReadStructuralFeatureActionAdapter() { - if (readStructuralFeatureActionItemProvider == null) { - readStructuralFeatureActionItemProvider = new ReadStructuralFeatureActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return readStructuralFeatureActionItemProvider; - } - - @Override - public Adapter createClearStructuralFeatureActionAdapter() { - if (clearStructuralFeatureActionItemProvider == null) { - clearStructuralFeatureActionItemProvider = new ClearStructuralFeatureActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return clearStructuralFeatureActionItemProvider; - } - - @Override - public Adapter createRemoveStructuralFeatureValueActionAdapter() { - if (removeStructuralFeatureValueActionItemProvider == null) { - removeStructuralFeatureValueActionItemProvider = new RemoveStructuralFeatureValueActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return removeStructuralFeatureValueActionItemProvider; - } - - @Override - public Adapter createAddStructuralFeatureValueActionAdapter() { - if (addStructuralFeatureValueActionItemProvider == null) { - addStructuralFeatureValueActionItemProvider = new AddStructuralFeatureValueActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return addStructuralFeatureValueActionItemProvider; - } - - @Override - public Adapter createLinkEndDataAdapter() { - if (linkEndDataItemProvider == null) { - linkEndDataItemProvider = new LinkEndDataItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return linkEndDataItemProvider; - } - - @Override - public Adapter createQualifierValueAdapter() { - if (qualifierValueItemProvider == null) { - qualifierValueItemProvider = new QualifierValueItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return qualifierValueItemProvider; - } - - @Override - public Adapter createReadLinkActionAdapter() { - if (readLinkActionItemProvider == null) { - readLinkActionItemProvider = new ReadLinkActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return readLinkActionItemProvider; - } - - @Override - public Adapter createLinkEndCreationDataAdapter() { - if (linkEndCreationDataItemProvider == null) { - linkEndCreationDataItemProvider = new LinkEndCreationDataItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return linkEndCreationDataItemProvider; - } - - @Override - public Adapter createCreateLinkActionAdapter() { - if (createLinkActionItemProvider == null) { - createLinkActionItemProvider = new CreateLinkActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return createLinkActionItemProvider; - } - - @Override - public Adapter createDestroyLinkActionAdapter() { - if (destroyLinkActionItemProvider == null) { - destroyLinkActionItemProvider = new DestroyLinkActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return destroyLinkActionItemProvider; - } - - @Override - public Adapter createLinkEndDestructionDataAdapter() { - if (linkEndDestructionDataItemProvider == null) { - linkEndDestructionDataItemProvider = new LinkEndDestructionDataItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return linkEndDestructionDataItemProvider; - } - - @Override - public Adapter createClearAssociationActionAdapter() { - if (clearAssociationActionItemProvider == null) { - clearAssociationActionItemProvider = new ClearAssociationActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return clearAssociationActionItemProvider; - } - - @Override - public Adapter createBroadcastSignalActionAdapter() { - if (broadcastSignalActionItemProvider == null) { - broadcastSignalActionItemProvider = new BroadcastSignalActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return broadcastSignalActionItemProvider; - } - - @Override - public Adapter createSendObjectActionAdapter() { - if (sendObjectActionItemProvider == null) { - sendObjectActionItemProvider = new SendObjectActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return sendObjectActionItemProvider; - } - - @Override - public Adapter createValueSpecificationActionAdapter() { - if (valueSpecificationActionItemProvider == null) { - valueSpecificationActionItemProvider = new ValueSpecificationActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return valueSpecificationActionItemProvider; - } - - @Override - public Adapter createTimeExpressionAdapter() { - if (timeExpressionItemProvider == null) { - timeExpressionItemProvider = new TimeExpressionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return timeExpressionItemProvider; - } - - @Override - public Adapter createDurationAdapter() { - if (durationItemProvider == null) { - durationItemProvider = new DurationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return durationItemProvider; - } - - @Override - public Adapter createValuePinAdapter() { - if (valuePinItemProvider == null) { - valuePinItemProvider = new ValuePinItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return valuePinItemProvider; - } - - @Override - public Adapter createDurationIntervalAdapter() { - if (durationIntervalItemProvider == null) { - durationIntervalItemProvider = new DurationIntervalItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return durationIntervalItemProvider; - } - - @Override - public Adapter createIntervalAdapter() { - if (intervalItemProvider == null) { - intervalItemProvider = new IntervalItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return intervalItemProvider; - } - - @Override - public Adapter createTimeConstraintAdapter() { - if (timeConstraintItemProvider == null) { - timeConstraintItemProvider = new TimeConstraintItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return timeConstraintItemProvider; - } - - @Override - public Adapter createIntervalConstraintAdapter() { - if (intervalConstraintItemProvider == null) { - intervalConstraintItemProvider = new IntervalConstraintItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return intervalConstraintItemProvider; - } - - @Override - public Adapter createTimeIntervalAdapter() { - if (timeIntervalItemProvider == null) { - timeIntervalItemProvider = new TimeIntervalItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return timeIntervalItemProvider; - } - - @Override - public Adapter createDurationConstraintAdapter() { - if (durationConstraintItemProvider == null) { - durationConstraintItemProvider = new DurationConstraintItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return durationConstraintItemProvider; - } - - @Override - public Adapter createTimeObservationAdapter() { - if (timeObservationItemProvider == null) { - timeObservationItemProvider = new TimeObservationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return timeObservationItemProvider; - } - - @Override - public Adapter createDurationObservationAdapter() { - if (durationObservationItemProvider == null) { - durationObservationItemProvider = new DurationObservationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return durationObservationItemProvider; - } - - @Override - public Adapter createOpaqueActionAdapter() { - if (opaqueActionItemProvider == null) { - opaqueActionItemProvider = new OpaqueActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return opaqueActionItemProvider; - } - - @Override - public Adapter createSendSignalActionAdapter() { - if (sendSignalActionItemProvider == null) { - sendSignalActionItemProvider = new SendSignalActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return sendSignalActionItemProvider; - } - - @Override - public Adapter createCallOperationActionAdapter() { - if (callOperationActionItemProvider == null) { - callOperationActionItemProvider = new CallOperationActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return callOperationActionItemProvider; - } - - @Override - public Adapter createCallBehaviorActionAdapter() { - if (callBehaviorActionItemProvider == null) { - callBehaviorActionItemProvider = new CallBehaviorActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return callBehaviorActionItemProvider; - } - - @Override - public Adapter createInformationItemAdapter() { - if (informationItemItemProvider == null) { - informationItemItemProvider = new InformationItemItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return informationItemItemProvider; - } - - @Override - public Adapter createInformationFlowAdapter() { - if (informationFlowItemProvider == null) { - informationFlowItemProvider = new InformationFlowItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return informationFlowItemProvider; - } - - @Override - public Adapter createModelAdapter() { - if (modelItemProvider == null) { - modelItemProvider = new ModelItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return modelItemProvider; - } - - @Override - public Adapter createReadVariableActionAdapter() { - if (readVariableActionItemProvider == null) { - readVariableActionItemProvider = new ReadVariableActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return readVariableActionItemProvider; - } - - @Override - public Adapter createClearVariableActionAdapter() { - if (clearVariableActionItemProvider == null) { - clearVariableActionItemProvider = new ClearVariableActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return clearVariableActionItemProvider; - } - - @Override - public Adapter createAddVariableValueActionAdapter() { - if (addVariableValueActionItemProvider == null) { - addVariableValueActionItemProvider = new AddVariableValueActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return addVariableValueActionItemProvider; - } - - @Override - public Adapter createRemoveVariableValueActionAdapter() { - if (removeVariableValueActionItemProvider == null) { - removeVariableValueActionItemProvider = new RemoveVariableValueActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return removeVariableValueActionItemProvider; - } - - @Override - public Adapter createRaiseExceptionActionAdapter() { - if (raiseExceptionActionItemProvider == null) { - raiseExceptionActionItemProvider = new RaiseExceptionActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return raiseExceptionActionItemProvider; - } - - @Override - public Adapter createActionInputPinAdapter() { - if (actionInputPinItemProvider == null) { - actionInputPinItemProvider = new ActionInputPinItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return actionInputPinItemProvider; - } - - @Override - public Adapter createReadExtentActionAdapter() { - if (readExtentActionItemProvider == null) { - readExtentActionItemProvider = new ReadExtentActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return readExtentActionItemProvider; - } - - @Override - public Adapter createReclassifyObjectActionAdapter() { - if (reclassifyObjectActionItemProvider == null) { - reclassifyObjectActionItemProvider = new ReclassifyObjectActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return reclassifyObjectActionItemProvider; - } - - @Override - public Adapter createReadIsClassifiedObjectActionAdapter() { - if (readIsClassifiedObjectActionItemProvider == null) { - readIsClassifiedObjectActionItemProvider = new ReadIsClassifiedObjectActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return readIsClassifiedObjectActionItemProvider; - } - - @Override - public Adapter createStartClassifierBehaviorActionAdapter() { - if (startClassifierBehaviorActionItemProvider == null) { - startClassifierBehaviorActionItemProvider = new StartClassifierBehaviorActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return startClassifierBehaviorActionItemProvider; - } - - @Override - public Adapter createReadLinkObjectEndActionAdapter() { - if (readLinkObjectEndActionItemProvider == null) { - readLinkObjectEndActionItemProvider = new ReadLinkObjectEndActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return readLinkObjectEndActionItemProvider; - } - - @Override - public Adapter createReadLinkObjectEndQualifierActionAdapter() { - if (readLinkObjectEndQualifierActionItemProvider == null) { - readLinkObjectEndQualifierActionItemProvider = new ReadLinkObjectEndQualifierActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return readLinkObjectEndQualifierActionItemProvider; - } - - @Override - public Adapter createCreateLinkObjectActionAdapter() { - if (createLinkObjectActionItemProvider == null) { - createLinkObjectActionItemProvider = new CreateLinkObjectActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return createLinkObjectActionItemProvider; - } - - @Override - public Adapter createAcceptEventActionAdapter() { - if (acceptEventActionItemProvider == null) { - acceptEventActionItemProvider = new AcceptEventActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return acceptEventActionItemProvider; - } - - @Override - public Adapter createAcceptCallActionAdapter() { - if (acceptCallActionItemProvider == null) { - acceptCallActionItemProvider = new AcceptCallActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return acceptCallActionItemProvider; - } - - @Override - public Adapter createReplyActionAdapter() { - if (replyActionItemProvider == null) { - replyActionItemProvider = new ReplyActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return replyActionItemProvider; - } - - @Override - public Adapter createUnmarshallActionAdapter() { - if (unmarshallActionItemProvider == null) { - unmarshallActionItemProvider = new UnmarshallActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return unmarshallActionItemProvider; - } - - @Override - public Adapter createReduceActionAdapter() { - if (reduceActionItemProvider == null) { - reduceActionItemProvider = new ReduceActionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return reduceActionItemProvider; - } - - @Override - public Adapter createControlFlowAdapter() { - if (controlFlowItemProvider == null) { - controlFlowItemProvider = new ControlFlowItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return controlFlowItemProvider; - } - - @Override - public Adapter createInitialNodeAdapter() { - if (initialNodeItemProvider == null) { - initialNodeItemProvider = new InitialNodeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return initialNodeItemProvider; - } - - @Override - public Adapter createActivityParameterNodeAdapter() { - if (activityParameterNodeItemProvider == null) { - activityParameterNodeItemProvider = new ActivityParameterNodeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return activityParameterNodeItemProvider; - } - - @Override - public Adapter createForkNodeAdapter() { - if (forkNodeItemProvider == null) { - forkNodeItemProvider = new ForkNodeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return forkNodeItemProvider; - } - - @Override - public Adapter createFlowFinalNodeAdapter() { - if (flowFinalNodeItemProvider == null) { - flowFinalNodeItemProvider = new FlowFinalNodeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return flowFinalNodeItemProvider; - } - - @Override - public Adapter createCentralBufferNodeAdapter() { - if (centralBufferNodeItemProvider == null) { - centralBufferNodeItemProvider = new CentralBufferNodeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + break; + default: + // Pass + break; } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return centralBufferNodeItemProvider; - } - - @Override - public Adapter createMergeNodeAdapter() { - if (mergeNodeItemProvider == null) { - mergeNodeItemProvider = new MergeNodeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return mergeNodeItemProvider; - } - - @Override - public Adapter createDecisionNodeAdapter() { - if (decisionNodeItemProvider == null) { - decisionNodeItemProvider = new DecisionNodeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return decisionNodeItemProvider; - } - - @Override - public Adapter createActivityFinalNodeAdapter() { - if (activityFinalNodeItemProvider == null) { - activityFinalNodeItemProvider = new ActivityFinalNodeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return activityFinalNodeItemProvider; - } - - @Override - public Adapter createJoinNodeAdapter() { - if (joinNodeItemProvider == null) { - joinNodeItemProvider = new JoinNodeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return joinNodeItemProvider; - } - - @Override - public Adapter createDataStoreNodeAdapter() { - if (dataStoreNodeItemProvider == null) { - dataStoreNodeItemProvider = new DataStoreNodeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return dataStoreNodeItemProvider; - } - - @Override - public Adapter createObjectFlowAdapter() { - if (objectFlowItemProvider == null) { - objectFlowItemProvider = new ObjectFlowItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return objectFlowItemProvider; - } - - @Override - public Adapter createSequenceNodeAdapter() { - if (sequenceNodeItemProvider == null) { - sequenceNodeItemProvider = new SequenceNodeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return sequenceNodeItemProvider; - } - - @Override - public Adapter createConditionalNodeAdapter() { - if (conditionalNodeItemProvider == null) { - conditionalNodeItemProvider = new ConditionalNodeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return conditionalNodeItemProvider; - } - - @Override - public Adapter createClauseAdapter() { - if (clauseItemProvider == null) { - clauseItemProvider = new ClauseItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return clauseItemProvider; - } - - @Override - public Adapter createLoopNodeAdapter() { - if (loopNodeItemProvider == null) { - loopNodeItemProvider = new LoopNodeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return loopNodeItemProvider; - } - - @Override - public Adapter createExpansionNodeAdapter() { - if (expansionNodeItemProvider == null) { - expansionNodeItemProvider = new ExpansionNodeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return expansionNodeItemProvider; - } - - @Override - public Adapter createExpansionRegionAdapter() { - if (expansionRegionItemProvider == null) { - expansionRegionItemProvider = new ExpansionRegionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return expansionRegionItemProvider; + } + }; } @Override - public Adapter createComponentRealizationAdapter() { - if (componentRealizationItemProvider == null) { - componentRealizationItemProvider = new ComponentRealizationItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; + public Adapter createAdapter(Notifier target) { + if (target instanceof EObject) { + // Which delegate to use? + return needsInterationalization((EObject) target) // + ? super.createAdapter(target) // + : uml.createAdapter(target); } - return componentRealizationItemProvider; - } - @Override - public Adapter createComponentAdapter() { - if (componentItemProvider == null) { - componentItemProvider = new ComponentItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return componentItemProvider; + // Assume that i18n will be required + return super.createAdapter(target); } - @Override - public Adapter createNodeAdapter() { - if (nodeItemProvider == null) { - nodeItemProvider = new NodeItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; + /** + * Queries whether an {@code object} requires i18n support. + * + * @param object + * an object + * @return whether it needs i18n + */ + protected final boolean needsInterationalization(EObject object) { + Resource resource = object.eResource(); + if (resource != null) { + ResourceSet rset = resource.getResourceSet(); + if (rset != null) { + initializeI18n(rset); + return resourceSets.get(rset); + } } - return nodeItemProvider; - } - @Override - public Adapter createDeviceAdapter() { - if (deviceItemProvider == null) { - deviceItemProvider = new DeviceItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return deviceItemProvider; + // Assume that i18n will be required + return true; } - @Override - public Adapter createExecutionEnvironmentAdapter() { - if (executionEnvironmentItemProvider == null) { - executionEnvironmentItemProvider = new ExecutionEnvironmentItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); + /** + * Discover the internationalization status of a newly encountered resource set. + * + * @param resourceSet + * a resource set now encountered + */ + private void initializeI18n(ResourceSet resourceSet) { + if (!resourceSets.containsKey(resourceSet)) { + // Is there any internationalization enabled? + for (Resource next : resourceSet.getResources()) { + if (checkResource(next)) { + return; // Need look no further } + } - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; + resourceSets.put(resourceSet, false); + resourceSet.eAdapters().add(resourceSetAdapter); } - return executionEnvironmentItemProvider; } - @Override - public Adapter createCommunicationPathAdapter() { - if (communicationPathItemProvider == null) { - communicationPathItemProvider = new CommunicationPathItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; + /** + * Discover the internationalization status of a newly encountered resource. + * + * @param resource + * a resource now encountered + */ + boolean checkResource(Resource resource) { + if (InternationalizationPreferencesUtils.getInternationalizationPreference(resource)) { + // We won't need to observe this resource set any more + ResourceSet rset = resource.getResourceSet(); + rset.eAdapters().remove(resourceSetAdapter); + resourceSets.put(rset, true); + return true; } - return communicationPathItemProvider; - } - @Override - public Adapter createFinalStateAdapter() { - if (finalStateItemProvider == null) { - finalStateItemProvider = new FinalStateItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return finalStateItemProvider; + return false; } @Override - public Adapter createTimeEventAdapter() { - if (timeEventItemProvider == null) { - timeEventItemProvider = new TimeEventItemProvider(this) { + public void addListener(INotifyChangedListener notifyChangedListener) { + super.addListener(notifyChangedListener); - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return timeEventItemProvider; + // Get notifications from the alternate's adapters, too + uml.addListener(notifyChangedListener); } @Override - public Adapter createProtocolTransitionAdapter() { - if (protocolTransitionItemProvider == null) { - protocolTransitionItemProvider = new ProtocolTransitionItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } - - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return protocolTransitionItemProvider; + public void removeListener(INotifyChangedListener notifyChangedListener) { + uml.removeListener(notifyChangedListener); + super.removeListener(notifyChangedListener); } @Override - public Adapter createAssociationClassAdapter() { - if (associationClassItemProvider == null) { - associationClassItemProvider = new AssociationClassItemProvider(this) { - - @Override - protected StringBuffer appendLabel(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendLabel(text, object, shouldTranslate()); - } + public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) { + super.setParentAdapterFactory(parentAdapterFactory); - @Override - protected StringBuffer appendKeywords(final StringBuffer text, final Object object) { - return InternationalizationElementItemProviderUtils.appendKeywords(text, object, shouldTranslate()); - } - }; - } - return associationClassItemProvider; + // The alternate needs to know about this composition structure, too + uml.setParentAdapterFactory(parentAdapterFactory); } - /** - * This is copied from MiltiplicityElementItemProvider because the initial - * function is protected scoped. - * - * @param text - * The initial string buffer. - * @param object - * The object to manage multiplicity. - * @return The modified string buffer. - */ - protected static StringBuffer appendMultiplicity(final StringBuffer text, final Object object) { - - if (object instanceof MultiplicityElement) { - MultiplicityElement multiplicityElement = (MultiplicityElement) object; - - if (multiplicityElement.eIsSet(UMLPackage.Literals.MULTIPLICITY_ELEMENT__LOWER) - || multiplicityElement.eIsSet(UMLPackage.Literals.MULTIPLICITY_ELEMENT__UPPER)) { - - if (0 < text.length()) { - text.append(' '); - } - - int upper = multiplicityElement.getUpper(); - - text.append('[').append(multiplicityElement.getLower()).append("..") //$NON-NLS-1$ - .append(upper == LiteralUnlimitedNatural.UNLIMITED ? "*" : String.valueOf(upper)).append(']'); //$NON-NLS-1$ - } - } - - return text; - } } diff --git a/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/src/org/eclipse/papyrus/uml/internationalization/edit/utils/InternationalizationElementItemProviderUtils.java b/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/src/org/eclipse/papyrus/uml/internationalization/edit/utils/InternationalizationElementItemProviderUtils.java index edc9e26d7c2..08c19427213 100644 --- a/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/src/org/eclipse/papyrus/uml/internationalization/edit/utils/InternationalizationElementItemProviderUtils.java +++ b/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.edit/src/org/eclipse/papyrus/uml/internationalization/edit/utils/InternationalizationElementItemProviderUtils.java @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (c) 2016 CEA LIST and others. + * Copyright (c) 2016, 2017 CEA LIST, Christian W. Damus, and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -8,6 +8,7 @@ * * Contributors: * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation + * Christian W. Damus - bug 528343 * *****************************************************************************/ @@ -85,10 +86,11 @@ public class InternationalizationElementItemProviderUtils { final boolean shouldTranslate) { if (object instanceof Element) { final Element element = (Element) object; + final boolean i18nEnabled = InternationalizationPreferencesUtils.getInternationalizationPreference(element); final Iterator<Stereotype> appliedStereotypes = element.getAppliedStereotypes().iterator(); Iterator<String> keywords = new ArrayList<String>().iterator(); - if (InternationalizationPreferencesUtils.getInternationalizationPreference(element)) { + if (i18nEnabled) { keywords = element.getKeywords().iterator(); } @@ -101,7 +103,7 @@ public class InternationalizationElementItemProviderUtils { text.append("<<"); //$NON-NLS-1$ while (appliedStereotypes.hasNext()) { - if (InternationalizationPreferencesUtils.getInternationalizationPreference(element)) { + if (i18nEnabled) { text.append(UMLLabelInternationalization.getInstance().getKeyword(appliedStereotypes.next(), shouldTranslate)); } else { text.append(appliedStereotypes.next().getName()); diff --git a/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.suite.tests/META-INF/MANIFEST.MF b/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.suite.tests/META-INF/MANIFEST.MF index 9ca06f1bee7..72f72d4c543 100755 --- a/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.suite.tests/META-INF/MANIFEST.MF +++ b/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.suite.tests/META-INF/MANIFEST.MF @@ -13,7 +13,7 @@ Require-Bundle: org.eclipse.ui, org.junit;bundle-version="4.10.0",
org.eclipse.papyrus.junit.framework;bundle-version="[1.2.0,2.0.0)",
org.eclipse.papyrus.junit.utils;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.papyrus.infra.core.tests;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.papyrus.infra.core.tests;bundle-version="[3.0.1,4.0.0)",
org.eclipse.papyrus.infra.core.sasheditor.tests;bundle-version="[1.2.0,2.0.0)",
org.eclipse.papyrus.infra.core.sasheditor.di.tests;bundle-version="[1.2.0,2.0.0)",
org.eclipse.papyrus.infra.core.clipboard.tests;bundle-version="[1.3.0,2.0.0)"
diff --git a/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.tests/META-INF/MANIFEST.MF b/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.tests/META-INF/MANIFEST.MF index 2b50ad6a26e..e6a1c7cc0a0 100644 --- a/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.tests/META-INF/MANIFEST.MF +++ b/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.tests/META-INF/MANIFEST.MF @@ -2,12 +2,12 @@ Manifest-Version: 1.0 Require-Bundle: org.junit;bundle-version="4.10.0",
org.eclipse.papyrus.junit.framework;bundle-version="[1.2.0,2.0.0)",
org.eclipse.papyrus.junit.utils;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.papyrus.infra.core;bundle-version="[3.0.0,4.0.0)"
+ org.eclipse.papyrus.infra.core;bundle-version="[3.0.100,4.0.0)"
Export-Package: org.eclipse.papyrus.infra.core.resource,
org.eclipse.papyrus.infra.core.services,
org.eclipse.papyrus.infra.core.tests
Bundle-Vendor: %providerName
-Bundle-Version: 1.2.0.qualifier
+Bundle-Version: 3.0.100.qualifier
Bundle-Name: %pluginName
Bundle-Localization: plugin
Bundle-ManifestVersion: 2
diff --git a/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.tests/pom.xml b/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.tests/pom.xml index 7c561b8f4c2..58dba1d1edb 100644 --- a/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.tests/pom.xml +++ b/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.tests/pom.xml @@ -9,6 +9,6 @@ </parent> <groupId>org.eclipse.papyrus.tests</groupId> <artifactId>org.eclipse.papyrus.infra.core.tests</artifactId> - <version>1.2.0-SNAPSHOT</version> + <version>3.0.100-SNAPSHOT</version> <packaging>eclipse-test-plugin</packaging> </project> diff --git a/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.tests/test/org/eclipse/papyrus/infra/core/resource/PapyrusProjectScopeTest.java b/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.tests/test/org/eclipse/papyrus/infra/core/resource/PapyrusProjectScopeTest.java new file mode 100644 index 00000000000..eaa8643d3bc --- /dev/null +++ b/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.tests/test/org/eclipse/papyrus/infra/core/resource/PapyrusProjectScopeTest.java @@ -0,0 +1,118 @@ +/***************************************************************************** + * Copyright (c) 2017 Christian W. Damus 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: + * Christian W. Damus - Initial API and implementation + * + *****************************************************************************/ + +package org.eclipse.papyrus.infra.core.resource; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.not; +import static org.hamcrest.CoreMatchers.notNullValue; +import static org.hamcrest.CoreMatchers.nullValue; +import static org.hamcrest.MatcherAssert.assertThat; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.ProjectScope; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.preferences.IEclipsePreferences; +import org.junit.Test; + +/** + * Test cases for the {@link PapyrusProjectScope} class. + * + * @author Christian W. Damus + */ +public class PapyrusProjectScopeTest { + + /** + * Initializes me. + */ + public PapyrusProjectScopeTest() { + super(); + } + + /** + * Verify the {@link PapyrusProjectScope#equals(Object)} method. + */ + @Test + public void equals() { + PapyrusProjectScope scope1 = scope("p1", "foo"); + PapyrusProjectScope scope2 = scope("p1", "bar"); + PapyrusProjectScope scope3 = scope("p2", "foo"); + PapyrusProjectScope scope4 = scope("p1", "foo"); + + assertThat(scope1, equalTo(scope1)); // Reflexive on the same instance + assertThat(scope1, equalTo(scope4)); // Distinct instance + assertThat(scope1, not(equalTo(scope2))); + assertThat(scope1, not(equalTo(scope3))); + + assertThat(scope1, not(equalTo(new ProjectScope(getProject("p1"))))); + + assertThat(scope1.equals(null), is(false)); + } + + /** + * Verify the {@link PapyrusProjectScope#hashCode()} method. + */ + @Test + public void hashCode_() { + PapyrusProjectScope scope1 = scope("p1", "foo"); + PapyrusProjectScope scope2 = scope("p1", "foo"); + + assertThat(scope1.hashCode(), is(scope2.hashCode())); + assertThat(scope1.hashCode(), not(0)); // All of the parts have non-zero hashcodes + } + + /** + * Verify the {@link PapyrusProjectScope#getName()} method. + */ + @Test + public void getName() { + PapyrusProjectScope scope1 = scope("p1", "foo"); + + assertThat(scope1.getName(), is(PapyrusProjectScope.SCOPE)); + } + + /** + * Verify the {@link PapyrusProjectScope#getLocation()} method. + */ + @Test + public void getLocation() { + PapyrusProjectScope scope1 = scope("p1", "foo"); + + assertThat(scope1.getLocation(), nullValue()); + } + + /** + * Verify the {@link PapyrusProjectScope#getNode(String)} method. + */ + @Test + public void getNode() { + PapyrusProjectScope scope1 = scope("p1", "foo"); + IEclipsePreferences node = scope1.getNode("test"); + + assertThat(node, notNullValue()); + assertThat(node.absolutePath(), is("/papyrusProject/p1/foo/test")); + } + + // + // Test framework + // + + IProject getProject(String name) { + return ResourcesPlugin.getWorkspace().getRoot().getProject(name); + } + + PapyrusProjectScope scope(String projectName, String papyrusName) { + return new PapyrusProjectScope(getProject(projectName), papyrusName); + } +} diff --git a/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.tests/test/org/eclipse/papyrus/infra/core/tests/AllTests.java b/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.tests/test/org/eclipse/papyrus/infra/core/tests/AllTests.java index 8a41e04c361..ad070dc6d0e 100644 --- a/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.tests/test/org/eclipse/papyrus/infra/core/tests/AllTests.java +++ b/tests/junit/plugins/infra/core/org.eclipse.papyrus.infra.core.tests/test/org/eclipse/papyrus/infra/core/tests/AllTests.java @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (c) 2010, 2016 CEA LIST, Christian W. Damus, and others. + * Copyright (c) 2010, 2017 CEA LIST, Christian W. Damus, and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -10,7 +10,7 @@ * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation * Christian W. Damus (CEA LIST) - add test for AdapterUtils * Christian W. Damus (CEA) - bugs 402525, 422257, 399859 - * Christian W. Damus - bugs 456934, 468030, 482949, 485220, 488558, 498140 + * Christian W. Damus - bugs 456934, 468030, 482949, 485220, 488558, 498140, 528343 * *****************************************************************************/ package org.eclipse.papyrus.infra.core.tests; @@ -19,6 +19,7 @@ import org.eclipse.papyrus.infra.core.language.LanguageServiceTest; import org.eclipse.papyrus.infra.core.resource.AbstractModelWithSharedResourceTest; import org.eclipse.papyrus.infra.core.resource.ModelSetTest; import org.eclipse.papyrus.infra.core.resource.NestingTransactionalCommandStackTest; +import org.eclipse.papyrus.infra.core.resource.PapyrusProjectScopeTest; import org.eclipse.papyrus.infra.core.resource.ResourceAdapterTest; import org.eclipse.papyrus.infra.core.resource.ResourceAdapterTransactionalTest; import org.eclipse.papyrus.infra.core.services.ComposedServiceTest; @@ -41,6 +42,7 @@ import org.junit.runners.Suite.SuiteClasses; // {oep.resource} ModelSetTest.class, AbstractModelWithSharedResourceTest.class, NestingTransactionalCommandStackTest.class, ResourceAdapterTest.class, ResourceAdapterTransactionalTest.class, + PapyrusProjectScopeTest.class, // {oep}.core.language LanguageServiceTest.class, // {oep}.core.services diff --git a/tests/junit/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.tests/META-INF/MANIFEST.MF b/tests/junit/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.tests/META-INF/MANIFEST.MF index 94cb11d2517..6355deb2f60 100644 --- a/tests/junit/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.tests/META-INF/MANIFEST.MF +++ b/tests/junit/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.tests/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.papyrus.infra.internationalization.tests;singleton:=true
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 1.100.0.qualifier
Bundle-ClassPath: .
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -17,7 +17,7 @@ Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)", org.eclipse.papyrus.infra.internationalization;bundle-version="[1.0.0,2.0.0)",
org.eclipse.papyrus.infra.internationalization.utils;bundle-version="[1.0.0,2.0.0)",
org.eclipse.ui.workbench;bundle-version="[3.108.0,4.0.0)",
- org.eclipse.papyrus.infra.internationalization.common;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.papyrus.infra.internationalization.common;bundle-version="[1.100.0,2.0.0)",
org.eclipse.papyrus.views.modelexplorer;bundle-version="[3.0.0,4.0.0)"
Bundle-ActivationPolicy: lazy
Bundle-Activator: org.eclipse.papyrus.infra.internationalization.tests.Activator
diff --git a/tests/junit/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.tests/pom.xml b/tests/junit/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.tests/pom.xml index ef7fa0162ee..460de4ee66d 100644 --- a/tests/junit/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.tests/pom.xml +++ b/tests/junit/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.tests/pom.xml @@ -9,6 +9,6 @@ </parent> <groupId>org.eclipse.papyrus.tests</groupId> <artifactId>org.eclipse.papyrus.infra.internationalization.tests</artifactId> - <version>1.0.0-SNAPSHOT</version> + <version>1.100.0-SNAPSHOT</version> <packaging>eclipse-test-plugin</packaging> </project>
\ No newline at end of file diff --git a/tests/junit/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.tests/src/org/eclipse/papyrus/infra/internationalization/tests/tests/AllTests.java b/tests/junit/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.tests/src/org/eclipse/papyrus/infra/internationalization/tests/tests/AllTests.java index 5352566760c..4c35b26bf5d 100644 --- a/tests/junit/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.tests/src/org/eclipse/papyrus/infra/internationalization/tests/tests/AllTests.java +++ b/tests/junit/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.tests/src/org/eclipse/papyrus/infra/internationalization/tests/tests/AllTests.java @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (c) 2016 CEA LIST and others. + * Copyright (c) 2016, 2017 CEA LIST, Christian W. Damus, and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -8,6 +8,7 @@ * * Contributors: * Nicolas FAUVERGUE (CEA LIST) nicolas.fauvergue@cea.fr - Initial API and implementation + * Christian W. Damus - bug 528343 * *****************************************************************************/ @@ -20,7 +21,8 @@ import org.junit.runners.Suite.SuiteClasses; @RunWith(ClassificationSuite.class) @SuiteClasses({ InternationalizationLabelProviderTest.class, - InternationalizationChangePreferencesTest.class + InternationalizationChangePreferencesTest.class, + InternationalizationPreferenceChangeEventTest.class, }) public class AllTests { diff --git a/tests/junit/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.tests/src/org/eclipse/papyrus/infra/internationalization/tests/tests/InternationalizationPreferenceChangeEventTest.java b/tests/junit/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.tests/src/org/eclipse/papyrus/infra/internationalization/tests/tests/InternationalizationPreferenceChangeEventTest.java new file mode 100644 index 00000000000..efc8d1ae094 --- /dev/null +++ b/tests/junit/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.tests/src/org/eclipse/papyrus/infra/internationalization/tests/tests/InternationalizationPreferenceChangeEventTest.java @@ -0,0 +1,175 @@ +/******************************************************************************* + * Copyright (c) 2017 Christian W. Damus 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: + * Christian W. Damus - initial API and implementation + *******************************************************************************/ +package org.eclipse.papyrus.infra.internationalization.tests.tests; + +import static org.eclipse.papyrus.infra.internationalization.common.utils.InternationalizationPreferencesConstants.LANGUAGE_PREFERENCE; +import static org.eclipse.papyrus.infra.internationalization.common.utils.InternationalizationPreferencesUtils.getInternationalizationPreference; +import static org.eclipse.papyrus.infra.internationalization.common.utils.InternationalizationPreferencesUtils.getPreferenceStore; +import static org.eclipse.papyrus.infra.internationalization.common.utils.InternationalizationPreferencesUtils.setInternationalizationPreference; +import static org.eclipse.papyrus.infra.internationalization.common.utils.InternationalizationPreferencesUtils.setLanguagePreference; +import static org.hamcrest.CoreMatchers.instanceOf; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + +import java.util.Locale; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.IntSupplier; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.papyrus.infra.internationalization.common.utils.InternationalizationPreferenceChangeEvent; +import org.eclipse.papyrus.infra.internationalization.common.utils.InternationalizationPreferenceListener; +import org.eclipse.papyrus.infra.internationalization.common.utils.InternationalizationPreferencesUtils; +import org.eclipse.papyrus.junit.utils.rules.PluginResource; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Test cases for the notification of internationalization preference changes. + * + * @author Christian W. Damus + */ +@SuppressWarnings("nls") +@PluginResource({ "resources/internationalizationModel.di", "resources/internationalizationModel_en_US.properties", + "resources/internationalizationModel_fr_FR.properties" }) +public class InternationalizationPreferenceChangeEventTest extends AbstractInternationalizationTest { + + private boolean useRestore; + private String languageRestore; + + private InternationalizationPreferenceListener listener; + + /** + * Initializes me. + */ + public InternationalizationPreferenceChangeEventTest() { + super(); + } + + /** + * Verify the notification that enablement of internationalization changes. + */ + @Test + public void enablementNotification() { + IntSupplier count = listen(InternationalizationPreferenceChangeEvent.ENABLED, diagram, + event -> assertThat(event.isInternationalizationEnabled(), is(false))); + + setInternationalizationPreference(diagram, false); + assertThat(count.getAsInt(), is(1)); + + count = listen(InternationalizationPreferenceChangeEvent.ENABLED, diagram, + event -> assertThat(event.isInternationalizationEnabled(), is(true))); + + setInternationalizationPreference(diagram, true); + assertThat(count.getAsInt(), is(1)); + } + + /** + * Verify the notification that the locale of internationalization changes. + */ + @Test + public void localeNotification() { + IntSupplier count = listen(InternationalizationPreferenceChangeEvent.LOCALE, diagram, + event -> assertThat(event.getLocale(), is(Locale.CANADA_FRENCH))); + + setLanguagePreference(diagram, Locale.CANADA_FRENCH.toLanguageTag()); + assertThat(count.getAsInt(), is(1)); + + Locale en_US = Locale.forLanguageTag("en_US"); + count = listen(InternationalizationPreferenceChangeEvent.LOCALE, diagram, + event -> assertThat(event.getLocale(), is(en_US))); + + setLanguagePreference(diagram, "en_US"); + assertThat(count.getAsInt(), is(1)); + } + + /** + * Verify that a removed listener gets no notifications. + */ + @Test + public void removePreferenceListener() { + IntSupplier count = listen(InternationalizationPreferenceChangeEvent.LOCALE, diagram, + event -> assertThat(event.getLocale(), is(Locale.CANADA_FRENCH))); + + setLanguagePreference(diagram, Locale.CANADA_FRENCH.toLanguageTag()); + assertThat(count.getAsInt(), is(1)); + + removeListener(); + + setLanguagePreference(diagram, "en_US"); + assertThat(count.getAsInt(), is(1)); // No new notification + } + + // + // Test framework + // + + @Before + public void captureInitialState() { + useRestore = getInternationalizationPreference(diagram); + + // Asymmetric locale getter and language setter (!) + languageRestore = getPreferenceStore(diagram).getString(LANGUAGE_PREFERENCE); + } + + @After + public void removeListener() { + if (listener != null) { + InternationalizationPreferencesUtils.removePreferenceListener(listener); + listener = null; + } + } + + @After + public void restoreInitialState() { + setInternationalizationPreference(diagram, useRestore); + setLanguagePreference(diagram, languageRestore); + } + + /** + * Adds a preference listener. + * + * @param eventType + * the event type to assert for every incoming event + * @param subject + * an object in the resource which URI to assert for every incoming + * event + * @param listener + * the listener to add, with custom assertions + * + * @return a supplier of the number of events received by the {@code listener} + */ + IntSupplier listen(int eventType, EObject subject, InternationalizationPreferenceListener listener) { + // Remove previous listener, if any + removeListener(); + + if (listener == null) { + return () -> 0; + } else { + AtomicInteger count = new AtomicInteger(); + + // Wrap the listener with standard assertions on the events + this.listener = event -> { + assertThat(event.getSource(), instanceOf(IPreferenceStore.class)); + assertThat(event.getResourceURI().trimFileExtension(), + is(fixture.getModelSet().getURIWithoutExtension())); + assertThat(event.getEventType(), is(eventType)); + + count.incrementAndGet(); + }; + + InternationalizationPreferencesUtils.addPreferenceListener(this.listener); + return count::intValue; + } + } +} diff --git a/tests/junit/plugins/org.eclipse.papyrus.tests/META-INF/MANIFEST.MF b/tests/junit/plugins/org.eclipse.papyrus.tests/META-INF/MANIFEST.MF index 6fbbebee5f9..5eae0df29bf 100644 --- a/tests/junit/plugins/org.eclipse.papyrus.tests/META-INF/MANIFEST.MF +++ b/tests/junit/plugins/org.eclipse.papyrus.tests/META-INF/MANIFEST.MF @@ -40,7 +40,7 @@ Require-Bundle: org.eclipse.ui, org.eclipse.papyrus.uml.diagram.dnd.tests;bundle-version="[1.2.0,2.0.0)",
org.eclipse.papyrus.uml.diagram.stereotypeproperty.tests;bundle-version="[1.2.0,2.0.0)",
org.eclipse.papyrus.uml.diagram.tests;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.papyrus.infra.core.tests;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.papyrus.infra.core.tests;bundle-version="[3.0.1,4.0.0)",
org.eclipse.papyrus.infra.services.edit;bundle-version="[3.0.0,4.0.0)",
org.eclipse.papyrus.infra.core.sasheditor.tests;bundle-version="[1.2.0,2.0.0)",
org.eclipse.papyrus.infra.core.sasheditor.di.tests;bundle-version="[1.2.0,2.0.0)",
diff --git a/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/META-INF/MANIFEST.MF b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/META-INF/MANIFEST.MF index b2d708f5fc2..b89c0987563 100644 --- a/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/META-INF/MANIFEST.MF +++ b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.papyrus.uml.internationalization.tests;singleton:=true
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 1.100.0.qualifier
Bundle-ClassPath: .
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -19,7 +19,8 @@ Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)", org.eclipse.ui.workbench;bundle-version="[3.108.0,4.0.0)",
org.eclipse.papyrus.infra.emf.tests;bundle-version="[1.4.0,2.0.0)",
org.eclipse.uml2.uml;bundle-version="[5.3.0,6.0.0)",
- org.eclipse.papyrus.infra.internationalization.common;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.papyrus.views.modelexplorer;bundle-version="[3.0.0,4.0.0)"
+ org.eclipse.papyrus.infra.internationalization.common;bundle-version="[1.100.0,2.0.0)",
+ org.eclipse.papyrus.views.modelexplorer;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.papyrus.uml.internationalization.edit;bundle-version="[1.100.0,2.0.0)"
Bundle-ActivationPolicy: lazy
Bundle-Activator: org.eclipse.papyrus.uml.internationalization.tests.Activator
diff --git a/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/pom.xml b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/pom.xml index 67063858fd0..39919c57141 100644 --- a/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/pom.xml +++ b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/pom.xml @@ -9,6 +9,6 @@ </parent> <groupId>org.eclipse.papyrus.tests</groupId> <artifactId>org.eclipse.papyrus.uml.internationalization.tests</artifactId> - <version>1.0.0-SNAPSHOT</version> + <version>1.100.0-SNAPSHOT</version> <packaging>eclipse-test-plugin</packaging> </project>
\ No newline at end of file diff --git a/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/resources/model.di b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/resources/model.di new file mode 100644 index 00000000000..bf9abab340f --- /dev/null +++ b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/resources/model.di @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/> diff --git a/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/resources/model.notation b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/resources/model.notation new file mode 100644 index 00000000000..85e4a0f2879 --- /dev/null +++ b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/resources/model.notation @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xmi:XMI 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:nattable="http://www.eclipse.org/papyrus/nattable/model" xmlns:nattableaxisprovider="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisprovider" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xsi:schemaLocation="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisprovider http://www.eclipse.org/papyrus/nattable/model#//nattableaxisprovider"> + <nattable:Table xmi:id="_yqOrMKHCEeaOZo-nqA3kVA" name="GenericTable0" currentRowAxisProvider="_yqPSQaHCEeaOZo-nqA3kVA" currentColumnAxisProvider="_yqPSQKHCEeaOZo-nqA3kVA"> + <context href="model.uml#_auoNsKHCEeaOZo-nqA3kVA"/> + <owner href="model.uml#_auoNsKHCEeaOZo-nqA3kVA"/> + <prototype href="platform:/plugin/org.eclipse.papyrus.uml.nattable.generic.config/configs/genericTable.configuration#_Uz8agHDuEeWh-MssWmCB_A"/> + <tableConfiguration href="platform:/plugin/org.eclipse.papyrus.uml.nattable.generic.config/configs/generic.nattableconfiguration#/"/> + <columnAxisProvidersHistory xsi:type="nattableaxisprovider:SlaveObjectAxisProvider" xmi:id="_yqPSQKHCEeaOZo-nqA3kVA" description="This axis provider provides available columns according to the rows of the table (features of the object displayed on the other axis)" name="UML Feature axis provider"/> + <rowAxisProvidersHistory xsi:type="nattableaxisprovider:MasterObjectAxisProvider" xmi:id="_yqPSQaHCEeaOZo-nqA3kVA" description="This axis provider contains the object dropped by the user into the table" name="DroppedElementAxisProvider"/> + </nattable:Table> + <notation:Diagram xmi:id="_z2Uq4KHCEeaOZo-nqA3kVA" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel"> + <styles xsi:type="notation:StringValueStyle" xmi:id="_z2Uq4aHCEeaOZo-nqA3kVA" name="diagram_compatibility_version" stringValue="1.2.0"/> + <styles xsi:type="notation:DiagramStyle" xmi:id="_z2Uq4qHCEeaOZo-nqA3kVA"/> + <styles xsi:type="style:PapyrusViewStyle" xmi:id="_z2Uq46HCEeaOZo-nqA3kVA"> + <owner href="model.uml#_auoNsKHCEeaOZo-nqA3kVA"/> + </styles> + <element href="model.uml#_auoNsKHCEeaOZo-nqA3kVA"/> + </notation:Diagram> +</xmi:XMI> diff --git a/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/resources/model.uml b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/resources/model.uml new file mode 100644 index 00000000000..fd50538e34f --- /dev/null +++ b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/resources/model.uml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_auoNsKHCEeaOZo-nqA3kVA" name="RootElement"> + <packagedElement xmi:type="uml:Class" xmi:id="_q44woKHUEeaOZo-nqA3kVA" name="Class1"> + <ownedAttribute xmi:type="uml:Property" xmi:id="_s0HuQKHUEeaOZo-nqA3kVA" name="Attribute1"/> + <ownedOperation xmi:type="uml:Operation" xmi:id="_rpqtUKHUEeaOZo-nqA3kVA" name="Operation1"> + <ownedParameter xmi:type="uml:Parameter" xmi:id="_sLwtwKHUEeaOZo-nqA3kVA" name="Parameter1"/> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Package" xmi:id="_t4LzUKHUEeaOZo-nqA3kVA" name="Package1"> + <packagedElement xmi:type="uml:Interface" xmi:id="_xti7UKHUEeaOZo-nqA3kVA" name="Interface1"> + <nestedClassifier xmi:type="uml:Enumeration" xmi:id="_zoN4QKHUEeaOZo-nqA3kVA" name="Enumeration1"/> + </packagedElement> + </packagedElement> +</uml:Model> diff --git a/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/resources/model_en_US.properties b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/resources/model_en_US.properties new file mode 100644 index 00000000000..9921693610a --- /dev/null +++ b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/resources/model_en_US.properties @@ -0,0 +1,11 @@ +#Thu Nov 03 15:50:58 CET 2016 +_label_RootElement__Package1__Interface1=MyInterface +_label_RootElement__Class1__Operation1=MyOperation +_label_RootElement__Package1__Interface1__Enumeration1=MyEnumeration +_label_RootElement__Package1=MyPackage +_labelTable_RootElement_label_GenericTable0=MyGenericTable +_label_RootElement__Class1__Attribute1=MyAttribute +_label_RootElement__Class1=MyFirstClass +_label_RootElement__Class1__Operation1__Parameter1=MyParameter +_label_RootElement=MyRootElement +_labelDiagram_RootElement_label_ClassDiagram=MyClassDiagram diff --git a/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/resources/model_fr_FR.properties b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/resources/model_fr_FR.properties new file mode 100644 index 00000000000..e0caea2abe0 --- /dev/null +++ b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/resources/model_fr_FR.properties @@ -0,0 +1,11 @@ +#Thu Nov 03 15:50:58 CET 2016 +_label_RootElement__Package1__Interface1=MonInterface +_label_RootElement__Class1__Operation1=MonOperation +_label_RootElement__Package1__Interface1__Enumeration1=MonEnumeration +_label_RootElement__Package1=MonPackage +_labelTable_RootElement_label_GenericTable0=MaTableGenerique +_label_RootElement__Class1__Attribute1=MonAttribut +_label_RootElement__Class1=MaPremiereClasse +_label_RootElement__Class1__Operation1__Parameter1=MonParametre +_label_RootElement=MonElementRoot +_labelDiagram_RootElement_label_ClassDiagram=MonDiagrammeDeClasse diff --git a/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/src/org/eclipse/papyrus/uml/internationalization/tests/tests/AbstractUMLInternationalizationTest.java b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/src/org/eclipse/papyrus/uml/internationalization/tests/tests/AbstractUMLInternationalizationTest.java index fc6e015353d..462f6ea8bcf 100644 --- a/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/src/org/eclipse/papyrus/uml/internationalization/tests/tests/AbstractUMLInternationalizationTest.java +++ b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/src/org/eclipse/papyrus/uml/internationalization/tests/tests/AbstractUMLInternationalizationTest.java @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (c) 2016 CEA LIST and others. + * Copyright (c) 2016, 2017 CEA LIST, Christian W. Damus, and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -8,14 +8,15 @@ * * Contributors: * Nicolas FAUVERGUE (CEA LIST) nicolas.fauvergue@cea.fr - Initial API and implementation + * Christian W. Damus - bug 528343 * *****************************************************************************/ package org.eclipse.papyrus.uml.internationalization.tests.tests; +import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest; import org.eclipse.papyrus.junit.utils.rules.PapyrusEditorFixture; -import org.eclipse.papyrus.views.modelexplorer.DecoratingLabelProviderWTooltips; import org.eclipse.uml2.uml.Class; import org.eclipse.uml2.uml.Enumeration; import org.eclipse.uml2.uml.Interface; @@ -32,7 +33,7 @@ import org.junit.Rule; * This allows to define the abstract class for the UML internationalization * tests. */ -@SuppressWarnings({ "nls", "restriction" }) +@SuppressWarnings("nls") public abstract class AbstractUMLInternationalizationTest extends AbstractPapyrusTest { /** The papyrus fixture for the project. */ @@ -85,7 +86,7 @@ public abstract class AbstractUMLInternationalizationTest extends AbstractPapyru protected Enumeration modelEnumeration; /** The label provider. */ - protected DecoratingLabelProviderWTooltips labelProvider; + protected ILabelProvider labelProvider; /** * Constructor. @@ -108,8 +109,7 @@ public abstract class AbstractUMLInternationalizationTest extends AbstractPapyru model = (Model) fixture.getModel(); Assert.assertNotNull("The model cannot be null", model); - labelProvider = (DecoratingLabelProviderWTooltips) fixture.getModelExplorerView().getCommonViewer() - .getLabelProvider(); + labelProvider = initLabelProvider(); modelClass = (Class) model.getOwnedMember(CLASS_NAME); Assert.assertNotNull("The class cannot be null", modelClass); @@ -139,6 +139,15 @@ public abstract class AbstractUMLInternationalizationTest extends AbstractPapyru Assert.assertNotNull("The enumeration cannot be null", modelEnumeration); Assert.assertEquals("Enumeration is not the one Expected", ENUMERATION_NAME, modelEnumeration.getName()); } + + /** + * Obtain or create the label provider for tests to verify labels. + * + * @return the label provider fixture + */ + protected ILabelProvider initLabelProvider() { + return (ILabelProvider) fixture.getModelExplorerView().getCommonViewer().getLabelProvider(); + } /** * This allows to test the labels when the internationalization is not used. @@ -237,5 +246,4 @@ public abstract class AbstractUMLInternationalizationTest extends AbstractPapyru Assert.assertEquals("The enumeration label is not the expected one.", "MyEnumeration", labelProvider.getText(modelEnumeration)); } - } diff --git a/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/src/org/eclipse/papyrus/uml/internationalization/tests/tests/AllTests.java b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/src/org/eclipse/papyrus/uml/internationalization/tests/tests/AllTests.java index 20f7dd06dec..77d49875806 100644 --- a/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/src/org/eclipse/papyrus/uml/internationalization/tests/tests/AllTests.java +++ b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/src/org/eclipse/papyrus/uml/internationalization/tests/tests/AllTests.java @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (c) 2016 CEA LIST and others. + * Copyright (c) 2016, 2017 CEA LIST, Christian W. Damus, and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -8,6 +8,7 @@ * * Contributors: * Nicolas FAUVERGUE (CEA LIST) nicolas.fauvergue@cea.fr - Initial API and implementation + * Christian W. Damus - bug 528343 * *****************************************************************************/ @@ -20,7 +21,8 @@ import org.junit.runners.Suite.SuiteClasses; @RunWith(ClassificationSuite.class) @SuiteClasses({ UMLInternationalizationChangePreferencesTest.class, - UMLInternationalizationChangeLanguageTest.class + UMLInternationalizationChangeLanguageTest.class, + InternationalizationUMLItemProviderAdapterFactoryTest.class, }) public class AllTests { diff --git a/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/src/org/eclipse/papyrus/uml/internationalization/tests/tests/InternationalizationUMLItemProviderAdapterFactoryTest.java b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/src/org/eclipse/papyrus/uml/internationalization/tests/tests/InternationalizationUMLItemProviderAdapterFactoryTest.java new file mode 100644 index 00000000000..9a82fdb2f59 --- /dev/null +++ b/tests/junit/plugins/uml/internationalization/org.eclipse.papyrus.uml.internationalization.tests/src/org/eclipse/papyrus/uml/internationalization/tests/tests/InternationalizationUMLItemProviderAdapterFactoryTest.java @@ -0,0 +1,137 @@ +/******************************************************************************* + * Copyright (c) 2017 Christian W. Damus 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: + * Christian W. Damus - initial API and implementation + *******************************************************************************/ +package org.eclipse.papyrus.uml.internationalization.tests.tests; + +import static org.eclipse.papyrus.infra.internationalization.common.utils.InternationalizationPreferencesUtils.setInternationalizationPreference; +import static org.eclipse.papyrus.infra.internationalization.common.utils.InternationalizationPreferencesUtils.setLanguagePreference; +import static org.eclipse.papyrus.junit.matchers.MoreMatchers.greaterThan; +import static org.eclipse.papyrus.junit.matchers.MoreMatchers.lessThan; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.not; +import static org.hamcrest.MatcherAssert.assertThat; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.edit.provider.IDisposable; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; +import org.eclipse.jface.viewers.ILabelProvider; +import org.eclipse.papyrus.junit.utils.rules.PluginResource; +import org.eclipse.papyrus.uml.internationalization.edit.providers.InternationalizationUMLItemProviderAdapterFactory; +import org.junit.After; +import org.junit.Test; + +/** + * Test cases for the {@link InternationalizationUMLItemProviderAdapterFactory} class. + * + * @author Christian W. Damus + */ +@SuppressWarnings("nls") +@PluginResource({"resources/model.di", "resources/model_en_US.properties", "resources/model_fr_FR.properties"}) +public class InternationalizationUMLItemProviderAdapterFactoryTest extends AbstractUMLInternationalizationTest { + + private AdapterFactory factory; + + /** + * Initializes e. + */ + public InternationalizationUMLItemProviderAdapterFactoryTest() { + super(); + } + + @Test + public void normalAdapters() { + checkUMLNoLabels(); + + // The last adapter added should be our item-provider + Adapter last = modelClass.eAdapters().get(modelClass.eAdapters().size() - 1); + assertThat(last.getClass().getSimpleName(), is("ClassItemProvider")); + } + + @Test + public void rebuildAdapters() { + int initialAdapterCount = modelClass.eAdapters().size(); + checkUMLNoLabels(); + + int newAdapterCount = modelClass.eAdapters().size(); + assertThat(newAdapterCount, greaterThan(initialAdapterCount)); + + Adapter adapter = modelClass.eAdapters().get(newAdapterCount - 1); + + setLanguagePreference(modelClass, "fr_FR"); + setInternationalizationPreference(modelClass, true); + + // Purged the adapters + assertThat(modelClass.eAdapters().size(), lessThan(newAdapterCount)); + + checkUMLFrenchLabels(); + + // Just replaced the adapter with a new one + assertThat(modelClass.eAdapters().size(), is(newAdapterCount)); + Adapter newAdapter = modelClass.eAdapters().get(newAdapterCount - 1); + assertThat(newAdapter.getClass(), not(adapter.getClass())); + } + + // + // Test framework + // + + @Override + protected ILabelProvider initLabelProvider() { + factory = new InternationalizationUMLItemProviderAdapterFactory(); + + // Initially disable the i18n + setInternationalizationPreference(fixture.getModelResource(), false); + + return new AdapterFactoryLabelProvider(factory); + } + + @After + public void disposeFactory() { + labelProvider.dispose(); + ((IDisposable)factory).dispose(); + } + + /** + * Verify that the labels in the model are the standard UML-defined labels. + */ + public void checkUMLNoLabels() { + assertThat(labelProvider.getText(model), is(withMetaclass(model, "RootElement"))); + assertThat(labelProvider.getText(modelClass), is(withMetaclass(modelClass, CLASS_NAME))); + assertThat(labelProvider.getText(modelOperation), + is(withMetaclass(modelOperation, OPERATION_NAME + " (" + PARAMETER_NAME + ")"))); + assertThat(labelProvider.getText(modelParameter), is(withMetaclass(modelParameter, PARAMETER_NAME))); + assertThat(labelProvider.getText(modelProperty), is(withMetaclass(modelProperty, PROPERTY_NAME))); + assertThat(labelProvider.getText(modelPackage), is(withMetaclass(modelPackage, PACKAGE_NAME))); + assertThat(labelProvider.getText(modelInterface), is(withMetaclass(modelInterface, INTERFACE_NAME))); + assertThat(labelProvider.getText(modelEnumeration), is(withMetaclass(modelEnumeration, ENUMERATION_NAME))); + } + + /** + * Verify that the labels in the model are the standard UML-ish French labels. + */ + public void checkUMLFrenchLabels() { + assertThat(labelProvider.getText(model), is(withMetaclass(model, "MonElementRoot"))); + assertThat(labelProvider.getText(modelClass), is(withMetaclass(modelClass, "MaPremiereClasse"))); + assertThat(labelProvider.getText(modelOperation), + is(withMetaclass(modelOperation, "MonOperation (MonParametre)"))); + assertThat(labelProvider.getText(modelParameter), is(withMetaclass(modelParameter, "MonParametre"))); + assertThat(labelProvider.getText(modelProperty), is(withMetaclass(modelProperty, "MonAttribut"))); + assertThat(labelProvider.getText(modelPackage), is(withMetaclass(modelPackage, "MonPackage"))); + assertThat(labelProvider.getText(modelInterface), is(withMetaclass(modelInterface, "MonInterface"))); + assertThat(labelProvider.getText(modelEnumeration), is(withMetaclass(modelEnumeration, "MonEnumeration"))); + } + + private static String withMetaclass(EObject object, String label) { + return String.format("<%s> %s", object.eClass().getName(), label); + } +} |