/******************************************************************************* * Copyright (c) 2005, 2012 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.bpel.ui.adapters; import org.eclipse.bpel.model.Correlation; import org.eclipse.bpel.model.adapters.AdapterProvider; import org.eclipse.bpel.model.util.BPELAdapterFactory; import org.eclipse.bpel.ui.util.BPELUtil; import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.notify.Notifier; /** * BPELUIAdapterFactory for generating adapters. * * We use an instance of AdapterProvider that caches singleton adapters. * * @author Michal Chmielewski (michal.chmielewski@oracle.com) * @date May 23, 2007 * */ public class BPELUIAdapterFactory extends BPELAdapterFactory { static BPELUIAdapterFactory instance; protected AdapterProvider fProvider; /** * Brand new shiny adapter factory. */ public BPELUIAdapterFactory() { fProvider = new AdapterProvider(); } /** * Get the instance of this factory. * * @return an instance of this factory. */ public static BPELUIAdapterFactory getInstance() { if (instance == null) { instance = new BPELUIAdapterFactory(); } return instance; } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createRepeatUntilAdapter() */ @Override public Adapter createRepeatUntilAdapter() { return fProvider.getAdapter(RepeatUntilAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createAssignAdapter() */ @Override public Adapter createAssignAdapter() { return fProvider.getAdapter(AssignAdapter.class); } /** * (non-Javadoc) * * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createCopyAdapter() */ @Override public Adapter createCopyAdapter() { return fProvider.getAdapter(CopyAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createElseIfAdapter() */ @Override public Adapter createElseIfAdapter() { return fProvider.getAdapter(ElseIfAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createCatchAdapter() */ @Override public Adapter createCatchAdapter() { return fProvider.getAdapter(CatchAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createFaultHandlerAdapter() */ @Override public Adapter createFaultHandlerAdapter() { return fProvider.getAdapter(FaultHandlerAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createCompensationHandlerAdapter() */ @Override public Adapter createCompensationHandlerAdapter() { return fProvider.getAdapter(CompensationHandlerAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createTerminationHandlerAdapter() */ @Override public Adapter createTerminationHandlerAdapter() { return fProvider.getAdapter(TerminationHandlerAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createEventHandlerAdapter() */ @Override public Adapter createEventHandlerAdapter() { return fProvider.getAdapter(EventHandlerAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createVariableAdapter() */ @Override public Adapter createVariableAdapter() { return fProvider.getAdapter(VariableAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createEmptyAdapter() */ @Override public Adapter createEmptyAdapter() { return fProvider.getAdapter(EmptyAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createFlowAdapter() */ @Override public Adapter createFlowAdapter() { return fProvider.getAdapter(FlowAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createInvokeAdapter() */ @Override public Adapter createInvokeAdapter() { return fProvider.getAdapter(InvokeAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createLinkAdapter() */ @Override public Adapter createLinkAdapter() { return fProvider.getAdapter(LinkAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createOnAlarmAdapter() */ @Override public Adapter createOnAlarmAdapter() { return fProvider.getAdapter(OnAlarmAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createOnMessageAdapter() */ @Override public Adapter createOnMessageAdapter() { return fProvider.getAdapter(OnMessageAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createOnEventAdapter() */ @Override public Adapter createOnEventAdapter() { return fProvider.getAdapter(OnEventAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createPartnerLinkAdapter() */ @Override public Adapter createPartnerLinkAdapter() { return fProvider.getAdapter(PartnerLinkAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createMessageExchangeAdapter() */ @Override public Adapter createMessageExchangeAdapter() { return fProvider.getAdapter(MessageExchangeAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createPickAdapter() */ @Override public Adapter createPickAdapter() { return fProvider.getAdapter(PickAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createProcessAdapter() */ @Override public Adapter createProcessAdapter() { return fProvider.getAdapter(ProcessAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createIfAdapter() */ @Override public Adapter createIfAdapter() { return fProvider.getAdapter(IfAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createReceiveAdapter() */ @Override public Adapter createReceiveAdapter() { return fProvider.getAdapter(ReceiveAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createReplyAdapter() */ @Override public Adapter createReplyAdapter() { return fProvider.getAdapter(ReplyAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createSequenceAdapter() */ @Override public Adapter createSequenceAdapter() { return fProvider.getAdapter(SequenceAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createScopeAdapter() */ @Override public Adapter createScopeAdapter() { return fProvider.getAdapter(ScopeAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createThrowAdapter() */ @Override public Adapter createThrowAdapter() { return fProvider.getAdapter(ThrowAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createWaitAdapter() */ @Override public Adapter createWaitAdapter() { return fProvider.getAdapter(WaitAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createWhileAdapter() */ @Override public Adapter createWhileAdapter() { return fProvider.getAdapter(WhileAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createForEachAdapter() */ @Override public Adapter createForEachAdapter() { return fProvider.getAdapter(ForEachAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createCorrelationSetAdapter() */ @Override public Adapter createCorrelationSetAdapter() { return fProvider.getAdapter(CorrelationSetAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createCorrelationSetsAdapter() */ @Override public Adapter createMessageExchangesAdapter() { return fProvider.getAdapter(MessageExchangesAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createCorrelationSetsAdapter() */ @Override public Adapter createCorrelationSetsAdapter() { return fProvider.getAdapter(CorrelationSetsAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createPartnerLinksAdapter() */ @Override public Adapter createPartnerLinksAdapter() { return fProvider.getAdapter(PartnerLinksAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createVariablesAdapter() */ @Override public Adapter createVariablesAdapter() { return fProvider.getAdapter(VariablesAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createCatchAllAdapter() */ @Override public Adapter createCatchAllAdapter() { return fProvider.getAdapter(CatchAllAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createElseAdapter() */ @Override public Adapter createElseAdapter() { return fProvider.getAdapter(ElseAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createCompensateAdapter() */ @Override public Adapter createCompensateAdapter() { return fProvider.getAdapter(CompensateAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createCompensateScopeAdapter() */ @Override public Adapter createCompensateScopeAdapter() { return fProvider.getAdapter(CompensateScopeAdapter.class); } /** * * @return the custom activity adapter. */ public Adapter createCustomActivityAdapter() { return fProvider.getAdapter(CustomActivityAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createRethrowAdapter() */ @Override public Adapter createRethrowAdapter() { return fProvider.getAdapter(RethrowAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createExitAdapter() */ @Override public Adapter createExitAdapter() { return fProvider.getAdapter(ExitAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createValidateAdapter() */ @Override public Adapter createValidateAdapter() { return fProvider.getAdapter(ValidateAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createToAdapter() */ @Override public Adapter createToAdapter() { return fProvider.getAdapter(ToAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createFromAdapter() */ @Override public Adapter createFromAdapter() { return fProvider.getAdapter(FromAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createExpressionAdapter() */ @Override public Adapter createExpressionAdapter() { return fProvider.getAdapter(ExpressionAdapter.class); } /** * @see org.eclipse.bpel.model.util.BPELAdapterFactory#createOpaqueActivityAdapter() */ @Override public Adapter createOpaqueActivityAdapter() { return fProvider.getAdapter(OpaqueActivityAdapter.class); } @Override // https://jira.jboss.org/browse/JBIDE-6917 public Adapter createExtensionActivityAdapter() { return fProvider.getAdapter(ExtensionActivityAdapter.class); } /** * @see org.eclipse.emf.common.notify.impl.AdapterFactoryImpl#adaptNew(org.eclipse.emf.common.notify.Notifier, * java.lang.Object) */ @Override public Adapter adaptNew(Notifier target, Object type) { Adapter adapter = createAdapter(target, type); // https://bugs.eclipse.org/bugs/show_bug.cgi?id=330813 // https://jira.jboss.org/browse/JBIDE-7497 // only associate the adapter with the target (i.e. add it to the // target's eAdapters list) if the adapter is for the requested type if (adapter == null) { if (IMarkerHolder.class.equals(type)) { adapter = new MarkerDelegateAdapter(); associate(adapter, target); return adapter; } } else if (adapter.isAdapterForType(type)) { associate(adapter, target); return adapter; } return null; } @Override protected Object resolve(Object object, Object type) { return null; } @Override protected Adapter createAdapter(Notifier target, Object type) { if (BPELUtil.isCustomActivity(target)) { // If we have a custom activity that did not provide a // custom adapter we create a default adapter. return createCustomActivityAdapter(); } return super.createAdapter(target, type); } }