blob: 96f6c5030bd3c39962bea4b38986c5453ade5104 [file] [log] [blame]
/**
* Copyright (c) 2002-2004 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* Contributors:
* IBM - Initial API and implementation
*/
package org.eclipse.xsd.provider;
import java.util.ArrayList;
import java.util.Collection;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.edit.provider.ChangeNotifier;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.Disposable;
import org.eclipse.emf.edit.provider.IChangeNotifier;
import org.eclipse.emf.edit.provider.IDisposable;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertySource;
import org.eclipse.emf.edit.provider.INotifyChangedListener;
import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITableItemLabelProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.xsd.util.XSDAdapterFactory;
/**
* This is the factory that is used to provide the interfaces needed to support JFace viewers.
* The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
* The adapters also support property sheets.
* Note that most of the adapters are shared among multiple instances.
*/
public class XSDItemProviderAdapterFactory
extends
XSDAdapterFactory
implements
ComposeableAdapterFactory,
IChangeNotifier,
IDisposable
{
/**
* This keeps track of the root adapter factory that delegates to this adapter factory.
*/
protected ComposedAdapterFactory parentAdapterFactory;
/**
* This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
*/
protected IChangeNotifier changeNotifier = new ChangeNotifier();
/**
* This is used to implement {@link org.eclipse.emf.edit.provider.IDisposable}.
*/
protected Disposable disposable = new Disposable();
/**
* This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
*/
protected Collection<Object> supportedTypes = new ArrayList<Object>();
/**
* This constructs an instance.
*/
public XSDItemProviderAdapterFactory()
{
supportedTypes.add(IStructuredItemContentProvider.class);
supportedTypes.add(ITreeItemContentProvider.class);
supportedTypes.add(IItemPropertySource.class);
supportedTypes.add(IEditingDomainItemProvider.class);
supportedTypes.add(IItemLabelProvider.class);
supportedTypes.add(ITableItemLabelProvider.class);
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDAnnotation} instances.
*/
protected XSDAnnotationItemProvider xsdAnnotationItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDAnnotation}.
*/
@Override
public Adapter createXSDAnnotationAdapter()
{
if (xsdAnnotationItemProvider == null)
{
xsdAnnotationItemProvider = new XSDAnnotationItemProvider(this);
}
return xsdAnnotationItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDConcreteComponent} instances.
*/
protected XSDConcreteComponentItemProvider xsdConcreteComponentItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDConcreteComponent}.
*/
@Override
public Adapter createXSDConcreteComponentAdapter()
{
if (xsdConcreteComponentItemProvider == null)
{
xsdConcreteComponentItemProvider = new XSDConcreteComponentItemProvider(this);
}
return xsdConcreteComponentItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDComponent} instances.
*/
protected XSDComponentItemProvider xsdComponentItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDComponent}.
*/
@Override
public Adapter createXSDComponentAdapter()
{
if (xsdComponentItemProvider == null)
{
xsdComponentItemProvider = new XSDComponentItemProvider(this);
}
return xsdComponentItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDAttributeUse} instances.
*/
protected XSDAttributeUseItemProvider xsdAttributeUseItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDAttributeUse}.
*/
@Override
public Adapter createXSDAttributeUseAdapter()
{
if (xsdAttributeUseItemProvider == null)
{
xsdAttributeUseItemProvider = new XSDAttributeUseItemProvider(this);
}
return xsdAttributeUseItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDFeature} instances.
*/
protected XSDFeatureItemProvider xsdFeatureItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDFeature}.
*/
@Override
public Adapter createXSDFeatureAdapter()
{
if (xsdFeatureItemProvider == null)
{
xsdFeatureItemProvider = new XSDFeatureItemProvider(this);
}
return xsdFeatureItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDElementDeclaration} instances.
*/
protected XSDElementDeclarationItemProvider xsdElementDeclarationItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDElementDeclaration}.
*/
@Override
public Adapter createXSDElementDeclarationAdapter()
{
if (xsdElementDeclarationItemProvider == null)
{
xsdElementDeclarationItemProvider = new XSDElementDeclarationItemProvider(this);
}
return xsdElementDeclarationItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDSchema} instances.
*/
protected XSDSchemaItemProvider xsdSchemaItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDSchema}.
*/
@Override
public Adapter createXSDSchemaAdapter()
{
if (xsdSchemaItemProvider == null)
{
xsdSchemaItemProvider = new XSDSchemaItemProvider(this);
}
return xsdSchemaItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDComplexTypeDefinition} instances.
*/
protected XSDComplexTypeDefinitionItemProvider xsdComplexTypeDefinitionItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDComplexTypeDefinition}.
*/
@Override
public Adapter createXSDComplexTypeDefinitionAdapter()
{
if (xsdComplexTypeDefinitionItemProvider == null)
{
xsdComplexTypeDefinitionItemProvider = new XSDComplexTypeDefinitionItemProvider(this);
}
return xsdComplexTypeDefinitionItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDScope} instances.
*/
protected XSDScopeItemProvider xsdScopeItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDScope}.
*/
@Override
public Adapter createXSDScopeAdapter()
{
if (xsdScopeItemProvider == null)
{
xsdScopeItemProvider = new XSDScopeItemProvider(this);
}
return xsdScopeItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDTypeDefinition} instances.
*/
protected XSDTypeDefinitionItemProvider xsdTypeDefinitionItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDTypeDefinition}.
*/
@Override
public Adapter createXSDTypeDefinitionAdapter()
{
if (xsdTypeDefinitionItemProvider == null)
{
xsdTypeDefinitionItemProvider = new XSDTypeDefinitionItemProvider(this);
}
return xsdTypeDefinitionItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDSimpleTypeDefinition} instances.
*/
protected XSDSimpleTypeDefinitionItemProvider xsdSimpleTypeDefinitionItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDSimpleTypeDefinition}.
*/
@Override
public Adapter createXSDSimpleTypeDefinitionAdapter()
{
if (xsdSimpleTypeDefinitionItemProvider == null)
{
xsdSimpleTypeDefinitionItemProvider = new XSDSimpleTypeDefinitionItemProvider(this);
}
return xsdSimpleTypeDefinitionItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDComplexTypeContent} instances.
*/
protected XSDComplexTypeContentItemProvider xsdComplexTypeContentItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDComplexTypeContent}.
*/
@Override
public Adapter createXSDComplexTypeContentAdapter()
{
if (xsdComplexTypeContentItemProvider == null)
{
xsdComplexTypeContentItemProvider = new XSDComplexTypeContentItemProvider(this);
}
return xsdComplexTypeContentItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDParticle} instances.
*/
protected XSDParticleItemProvider xsdParticleItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDParticle}.
*/
@Override
public Adapter createXSDParticleAdapter()
{
if (xsdParticleItemProvider == null)
{
xsdParticleItemProvider = new XSDParticleItemProvider(this);
}
return xsdParticleItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDModelGroup} instances.
*/
protected XSDModelGroupItemProvider xsdModelGroupItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDModelGroup}.
*/
@Override
public Adapter createXSDModelGroupAdapter()
{
if (xsdModelGroupItemProvider == null)
{
xsdModelGroupItemProvider = new XSDModelGroupItemProvider(this);
}
return xsdModelGroupItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDTerm} instances.
*/
protected XSDTermItemProvider xsdTermItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDTerm}.
*/
@Override
public Adapter createXSDTermAdapter()
{
if (xsdTermItemProvider == null)
{
xsdTermItemProvider = new XSDTermItemProvider(this);
}
return xsdTermItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDParticleContent} instances.
*/
protected XSDParticleContentItemProvider xsdParticleContentItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDParticleContent}.
*/
@Override
public Adapter createXSDParticleContentAdapter()
{
if (xsdParticleContentItemProvider == null)
{
xsdParticleContentItemProvider = new XSDParticleContentItemProvider(this);
}
return xsdParticleContentItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDModelGroupDefinition} instances.
*/
protected XSDModelGroupDefinitionItemProvider xsdModelGroupDefinitionItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDModelGroupDefinition}.
*/
@Override
public Adapter createXSDModelGroupDefinitionAdapter()
{
if (xsdModelGroupDefinitionItemProvider == null)
{
xsdModelGroupDefinitionItemProvider = new XSDModelGroupDefinitionItemProvider(this);
}
return xsdModelGroupDefinitionItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDRedefineContent} instances.
*/
protected XSDRedefineContentItemProvider xsdRedefineContentItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDRedefineContent}.
*/
@Override
public Adapter createXSDRedefineContentAdapter()
{
if (xsdRedefineContentItemProvider == null)
{
xsdRedefineContentItemProvider = new XSDRedefineContentItemProvider(this);
}
return xsdRedefineContentItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDRedefinableComponent} instances.
*/
protected XSDRedefinableComponentItemProvider xsdRedefinableComponentItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDRedefinableComponent}.
*/
@Override
public Adapter createXSDRedefinableComponentAdapter()
{
if (xsdRedefinableComponentItemProvider == null)
{
xsdRedefinableComponentItemProvider = new XSDRedefinableComponentItemProvider(this);
}
return xsdRedefinableComponentItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDAttributeGroupDefinition} instances.
*/
protected XSDAttributeGroupDefinitionItemProvider xsdAttributeGroupDefinitionItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDAttributeGroupDefinition}.
*/
@Override
public Adapter createXSDAttributeGroupDefinitionAdapter()
{
if (xsdAttributeGroupDefinitionItemProvider == null)
{
xsdAttributeGroupDefinitionItemProvider = new XSDAttributeGroupDefinitionItemProvider(this);
}
return xsdAttributeGroupDefinitionItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDAttributeGroupContent} instances.
*/
protected XSDAttributeGroupContentItemProvider xsdAttributeGroupContentItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDAttributeGroupContent}.
*/
@Override
public Adapter createXSDAttributeGroupContentAdapter()
{
if (xsdAttributeGroupContentItemProvider == null)
{
xsdAttributeGroupContentItemProvider = new XSDAttributeGroupContentItemProvider(this);
}
return xsdAttributeGroupContentItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDWildcard} instances.
*/
protected XSDWildcardItemProvider xsdWildcardItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDWildcard}.
*/
@Override
public Adapter createXSDWildcardAdapter()
{
if (xsdWildcardItemProvider == null)
{
xsdWildcardItemProvider = new XSDWildcardItemProvider(this);
}
return xsdWildcardItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDNamedComponent} instances.
*/
protected XSDNamedComponentItemProvider xsdNamedComponentItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDNamedComponent}.
*/
@Override
public Adapter createXSDNamedComponentAdapter()
{
if (xsdNamedComponentItemProvider == null)
{
xsdNamedComponentItemProvider = new XSDNamedComponentItemProvider(this);
}
return xsdNamedComponentItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDIdentityConstraintDefinition} instances.
*/
protected XSDIdentityConstraintDefinitionItemProvider xsdIdentityConstraintDefinitionItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDIdentityConstraintDefinition}.
*/
@Override
public Adapter createXSDIdentityConstraintDefinitionAdapter()
{
if (xsdIdentityConstraintDefinitionItemProvider == null)
{
xsdIdentityConstraintDefinitionItemProvider = new XSDIdentityConstraintDefinitionItemProvider(this);
}
return xsdIdentityConstraintDefinitionItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDXPathDefinition} instances.
*/
protected XSDXPathDefinitionItemProvider xsdxPathDefinitionItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDXPathDefinition}.
*/
@Override
public Adapter createXSDXPathDefinitionAdapter()
{
if (xsdxPathDefinitionItemProvider == null)
{
xsdxPathDefinitionItemProvider = new XSDXPathDefinitionItemProvider(this);
}
return xsdxPathDefinitionItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDNotationDeclaration} instances.
*/
protected XSDNotationDeclarationItemProvider xsdNotationDeclarationItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDNotationDeclaration}.
*/
@Override
public Adapter createXSDNotationDeclarationAdapter()
{
if (xsdNotationDeclarationItemProvider == null)
{
xsdNotationDeclarationItemProvider = new XSDNotationDeclarationItemProvider(this);
}
return xsdNotationDeclarationItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDSchemaContent} instances.
*/
protected XSDSchemaContentItemProvider xsdSchemaContentItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDSchemaContent}.
*/
@Override
public Adapter createXSDSchemaContentAdapter()
{
if (xsdSchemaContentItemProvider == null)
{
xsdSchemaContentItemProvider = new XSDSchemaContentItemProvider(this);
}
return xsdSchemaContentItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDAttributeDeclaration} instances.
*/
protected XSDAttributeDeclarationItemProvider xsdAttributeDeclarationItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDAttributeDeclaration}.
*/
@Override
public Adapter createXSDAttributeDeclarationAdapter()
{
if (xsdAttributeDeclarationItemProvider == null)
{
xsdAttributeDeclarationItemProvider = new XSDAttributeDeclarationItemProvider(this);
}
return xsdAttributeDeclarationItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDSchemaDirective} instances.
*/
protected XSDSchemaDirectiveItemProvider xsdSchemaDirectiveItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDSchemaDirective}.
*/
@Override
public Adapter createXSDSchemaDirectiveAdapter()
{
if (xsdSchemaDirectiveItemProvider == null)
{
xsdSchemaDirectiveItemProvider = new XSDSchemaDirectiveItemProvider(this);
}
return xsdSchemaDirectiveItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDImport} instances.
*/
protected XSDImportItemProvider xsdImportItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDImport}.
*/
@Override
public Adapter createXSDImportAdapter()
{
if (xsdImportItemProvider == null)
{
xsdImportItemProvider = new XSDImportItemProvider(this);
}
return xsdImportItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDSchemaCompositor} instances.
*/
protected XSDSchemaCompositorItemProvider xsdSchemaCompositorItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDSchemaCompositor}.
*/
@Override
public Adapter createXSDSchemaCompositorAdapter()
{
if (xsdSchemaCompositorItemProvider == null)
{
xsdSchemaCompositorItemProvider = new XSDSchemaCompositorItemProvider(this);
}
return xsdSchemaCompositorItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDRedefine} instances.
*/
protected XSDRedefineItemProvider xsdRedefineItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDRedefine}.
*/
@Override
public Adapter createXSDRedefineAdapter()
{
if (xsdRedefineItemProvider == null)
{
xsdRedefineItemProvider = new XSDRedefineItemProvider(this);
}
return xsdRedefineItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDInclude} instances.
*/
protected XSDIncludeItemProvider xsdIncludeItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDInclude}.
*/
@Override
public Adapter createXSDIncludeAdapter()
{
if (xsdIncludeItemProvider == null)
{
xsdIncludeItemProvider = new XSDIncludeItemProvider(this);
}
return xsdIncludeItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDFacet} instances.
*/
protected XSDFacetItemProvider xsdFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDFacet}.
*/
@Override
public Adapter createXSDFacetAdapter()
{
if (xsdFacetItemProvider == null)
{
xsdFacetItemProvider = new XSDFacetItemProvider(this);
}
return xsdFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDConstrainingFacet} instances.
*/
protected XSDConstrainingFacetItemProvider xsdConstrainingFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDConstrainingFacet}.
*/
@Override
public Adapter createXSDConstrainingFacetAdapter()
{
if (xsdConstrainingFacetItemProvider == null)
{
xsdConstrainingFacetItemProvider = new XSDConstrainingFacetItemProvider(this);
}
return xsdConstrainingFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDFixedFacet} instances.
*/
protected XSDFixedFacetItemProvider xsdFixedFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDFixedFacet}.
*/
@Override
public Adapter createXSDFixedFacetAdapter()
{
if (xsdFixedFacetItemProvider == null)
{
xsdFixedFacetItemProvider = new XSDFixedFacetItemProvider(this);
}
return xsdFixedFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDFractionDigitsFacet} instances.
*/
protected XSDFractionDigitsFacetItemProvider xsdFractionDigitsFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDFractionDigitsFacet}.
*/
@Override
public Adapter createXSDFractionDigitsFacetAdapter()
{
if (xsdFractionDigitsFacetItemProvider == null)
{
xsdFractionDigitsFacetItemProvider = new XSDFractionDigitsFacetItemProvider(this);
}
return xsdFractionDigitsFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDLengthFacet} instances.
*/
protected XSDLengthFacetItemProvider xsdLengthFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDLengthFacet}.
*/
@Override
public Adapter createXSDLengthFacetAdapter()
{
if (xsdLengthFacetItemProvider == null)
{
xsdLengthFacetItemProvider = new XSDLengthFacetItemProvider(this);
}
return xsdLengthFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDMaxFacet} instances.
*/
protected XSDMaxFacetItemProvider xsdMaxFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDMaxFacet}.
*/
@Override
public Adapter createXSDMaxFacetAdapter()
{
if (xsdMaxFacetItemProvider == null)
{
xsdMaxFacetItemProvider = new XSDMaxFacetItemProvider(this);
}
return xsdMaxFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDMaxExclusiveFacet} instances.
*/
protected XSDMaxExclusiveFacetItemProvider xsdMaxExclusiveFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDMaxExclusiveFacet}.
*/
@Override
public Adapter createXSDMaxExclusiveFacetAdapter()
{
if (xsdMaxExclusiveFacetItemProvider == null)
{
xsdMaxExclusiveFacetItemProvider = new XSDMaxExclusiveFacetItemProvider(this);
}
return xsdMaxExclusiveFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDEnumerationFacet} instances.
*/
protected XSDEnumerationFacetItemProvider xsdEnumerationFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDEnumerationFacet}.
*/
@Override
public Adapter createXSDEnumerationFacetAdapter()
{
if (xsdEnumerationFacetItemProvider == null)
{
xsdEnumerationFacetItemProvider = new XSDEnumerationFacetItemProvider(this);
}
return xsdEnumerationFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDRepeatableFacet} instances.
*/
protected XSDRepeatableFacetItemProvider xsdRepeatableFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDRepeatableFacet}.
*/
@Override
public Adapter createXSDRepeatableFacetAdapter()
{
if (xsdRepeatableFacetItemProvider == null)
{
xsdRepeatableFacetItemProvider = new XSDRepeatableFacetItemProvider(this);
}
return xsdRepeatableFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDPatternFacet} instances.
*/
protected XSDPatternFacetItemProvider xsdPatternFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDPatternFacet}.
*/
@Override
public Adapter createXSDPatternFacetAdapter()
{
if (xsdPatternFacetItemProvider == null)
{
xsdPatternFacetItemProvider = new XSDPatternFacetItemProvider(this);
}
return xsdPatternFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDMinFacet} instances.
*/
protected XSDMinFacetItemProvider xsdMinFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDMinFacet}.
*/
@Override
public Adapter createXSDMinFacetAdapter()
{
if (xsdMinFacetItemProvider == null)
{
xsdMinFacetItemProvider = new XSDMinFacetItemProvider(this);
}
return xsdMinFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDMinExclusiveFacet} instances.
*/
protected XSDMinExclusiveFacetItemProvider xsdMinExclusiveFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDMinExclusiveFacet}.
*/
@Override
public Adapter createXSDMinExclusiveFacetAdapter()
{
if (xsdMinExclusiveFacetItemProvider == null)
{
xsdMinExclusiveFacetItemProvider = new XSDMinExclusiveFacetItemProvider(this);
}
return xsdMinExclusiveFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDMinInclusiveFacet} instances.
*/
protected XSDMinInclusiveFacetItemProvider xsdMinInclusiveFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDMinInclusiveFacet}.
*/
@Override
public Adapter createXSDMinInclusiveFacetAdapter()
{
if (xsdMinInclusiveFacetItemProvider == null)
{
xsdMinInclusiveFacetItemProvider = new XSDMinInclusiveFacetItemProvider(this);
}
return xsdMinInclusiveFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDMaxInclusiveFacet} instances.
*/
protected XSDMaxInclusiveFacetItemProvider xsdMaxInclusiveFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDMaxInclusiveFacet}.
*/
@Override
public Adapter createXSDMaxInclusiveFacetAdapter()
{
if (xsdMaxInclusiveFacetItemProvider == null)
{
xsdMaxInclusiveFacetItemProvider = new XSDMaxInclusiveFacetItemProvider(this);
}
return xsdMaxInclusiveFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDMaxLengthFacet} instances.
*/
protected XSDMaxLengthFacetItemProvider xsdMaxLengthFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDMaxLengthFacet}.
*/
@Override
public Adapter createXSDMaxLengthFacetAdapter()
{
if (xsdMaxLengthFacetItemProvider == null)
{
xsdMaxLengthFacetItemProvider = new XSDMaxLengthFacetItemProvider(this);
}
return xsdMaxLengthFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDMinLengthFacet} instances.
*/
protected XSDMinLengthFacetItemProvider xsdMinLengthFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDMinLengthFacet}.
*/
@Override
public Adapter createXSDMinLengthFacetAdapter()
{
if (xsdMinLengthFacetItemProvider == null)
{
xsdMinLengthFacetItemProvider = new XSDMinLengthFacetItemProvider(this);
}
return xsdMinLengthFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDTotalDigitsFacet} instances.
*/
protected XSDTotalDigitsFacetItemProvider xsdTotalDigitsFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDTotalDigitsFacet}.
*/
@Override
public Adapter createXSDTotalDigitsFacetAdapter()
{
if (xsdTotalDigitsFacetItemProvider == null)
{
xsdTotalDigitsFacetItemProvider = new XSDTotalDigitsFacetItemProvider(this);
}
return xsdTotalDigitsFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDWhiteSpaceFacet} instances.
*/
protected XSDWhiteSpaceFacetItemProvider xsdWhiteSpaceFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDWhiteSpaceFacet}.
*/
@Override
public Adapter createXSDWhiteSpaceFacetAdapter()
{
if (xsdWhiteSpaceFacetItemProvider == null)
{
xsdWhiteSpaceFacetItemProvider = new XSDWhiteSpaceFacetItemProvider(this);
}
return xsdWhiteSpaceFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDFundamentalFacet} instances.
*/
protected XSDFundamentalFacetItemProvider xsdFundamentalFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDFundamentalFacet}.
*/
@Override
public Adapter createXSDFundamentalFacetAdapter()
{
if (xsdFundamentalFacetItemProvider == null)
{
xsdFundamentalFacetItemProvider = new XSDFundamentalFacetItemProvider(this);
}
return xsdFundamentalFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDBoundedFacet} instances.
*/
protected XSDBoundedFacetItemProvider xsdBoundedFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDBoundedFacet}.
*/
@Override
public Adapter createXSDBoundedFacetAdapter()
{
if (xsdBoundedFacetItemProvider == null)
{
xsdBoundedFacetItemProvider = new XSDBoundedFacetItemProvider(this);
}
return xsdBoundedFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDCardinalityFacet} instances.
*/
protected XSDCardinalityFacetItemProvider xsdCardinalityFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDCardinalityFacet}.
*/
@Override
public Adapter createXSDCardinalityFacetAdapter()
{
if (xsdCardinalityFacetItemProvider == null)
{
xsdCardinalityFacetItemProvider = new XSDCardinalityFacetItemProvider(this);
}
return xsdCardinalityFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDNumericFacet} instances.
*/
protected XSDNumericFacetItemProvider xsdNumericFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDNumericFacet}.
*/
@Override
public Adapter createXSDNumericFacetAdapter()
{
if (xsdNumericFacetItemProvider == null)
{
xsdNumericFacetItemProvider = new XSDNumericFacetItemProvider(this);
}
return xsdNumericFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDOrderedFacet} instances.
*/
protected XSDOrderedFacetItemProvider xsdOrderedFacetItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDOrderedFacet}.
*/
@Override
public Adapter createXSDOrderedFacetAdapter()
{
if (xsdOrderedFacetItemProvider == null)
{
xsdOrderedFacetItemProvider = new XSDOrderedFacetItemProvider(this);
}
return xsdOrderedFacetItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.eclipse.xsd.XSDDiagnostic} instances.
*/
protected XSDDiagnosticItemProvider xsdDiagnosticItemProvider;
/**
* This creates an adapter for a {@link org.eclipse.xsd.XSDDiagnostic}.
*/
@Override
public Adapter createXSDDiagnosticAdapter()
{
if (xsdDiagnosticItemProvider == null)
{
xsdDiagnosticItemProvider = new XSDDiagnosticItemProvider(this);
}
return xsdDiagnosticItemProvider;
}
/**
* This returns the root adapter factory that contains this factory.
*/
public ComposeableAdapterFactory getRootAdapterFactory()
{
return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
}
/**
* This sets the composed adapter factory that contains this factory.
*/
public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory)
{
this.parentAdapterFactory = parentAdapterFactory;
}
@Override
public boolean isFactoryForType(Object type)
{
return super.isFactoryForType(type) || supportedTypes.contains(type);
}
/**
* This implementation substitutes the factory itself as the key for the adapter.
*/
@Override
public Adapter adapt(Notifier notifier, Object type)
{
return super.adapt(notifier, this);
}
@Override
public Object adapt(Object object, Object type)
{
// This is a kludge to deal with enumerators, which crash the doSwitch.
//
if (object instanceof EObject && ((EObject)object).eClass() == null)
{
return null;
}
if (isFactoryForType(type))
{
Object adapter = super.adapt(object, type);
if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter)))
{
return adapter;
}
}
return null;
}
/**
* This adds a listener.
*/
public void addListener(INotifyChangedListener notifyChangedListener)
{
changeNotifier.addListener(notifyChangedListener);
}
/**
* This removes a listener.
*/
public void removeListener(INotifyChangedListener notifyChangedListener)
{
changeNotifier.removeListener(notifyChangedListener);
}
/**
* This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
*/
public void fireNotifyChanged(Notification notification)
{
changeNotifier.fireNotifyChanged(notification);
if (parentAdapterFactory != null)
{
parentAdapterFactory.fireNotifyChanged(notification);
}
}
@Override
protected void associate(Adapter adapter, Notifier target)
{
super.associate(adapter, target);
if (adapter != null)
{
disposable.add(adapter);
}
}
public void dispose()
{
disposable.dispose();
}
}