blob: 69f2442e3c4aea3b263ca28e0b9ebc52f2b5b38f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2019 Mia-Software
* 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:
* Emmanuelle Rouillé (Mia-Software) - Bug 352618 - To be able to use non derived facet structural features and save them values.
* Nicolas Bros (Mia-Software) - Bug 361612 - New core for new version of the Facet metamodel
* Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
* Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework
* Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
* Thomas Cicognani (Soft-Maint) - Bug 463658 - Impossibility to just create a FacetManager
*******************************************************************************/
package org.eclipse.modisco.facet.efacet.core;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.modisco.facet.efacet.core.internal.FacetManagerFactory;
/**
* Factory for {@link IFacetManager}.
*
* @since 0.2
* @noimplement This interface is not intended to be implemented by clients.
* @noextend This interface is not intended to be extended by clients.
*/
public interface IFacetManagerFactory {
/**
* The singleton instance of the factory.
*/
IFacetManagerFactory DEFAULT = new FacetManagerFactory();
/**
* Create an {@link IFacetManager}.
*
* @param resource
* the {@link Resource} in which virtual {@link EStructuralFeature}s are serialized.
* Can be null if no EStructuralFeature provided a Facet are used.
* @deprecated Use {@link #getOrCreateDefaultFacetManagerWithSerializationResource(Resource)} instead. The new method name is more understandable
*/
@Deprecated
IFacetManager getOrCreateFacetManager(Resource resource);
/**
* Get an existing {@link IFacetManager} or create a new one.
*
* @param resource
* the {@link Resource} in which virtual
* {@link EStructuralFeature}s are serialized. Can be
* <code>null</code> if no EStructuralFeature provided a Facet
* are used.
* @return The default IFacetManager associated to the Resource
* @since 1.0
*/
IFacetManager getOrCreateDefaultFacetManagerWithSerializationResource(
Resource resource);
/**
* Create an {@link IFacetManager}.
*
* @param resourceSet
* the resourceSet which will be used to manage the facet models.
* @deprecated Use {@link #getOrCreateDefaultFacetManager(ResourceSet)} instead. The new method name is more understandable
*
*/
@Deprecated
IFacetManager getOrCreateFacetManager(ResourceSet resourceSet);
/**
* Get an existing {@link IFacetManager} or create a new one.
*
* @param resourceSet
* the resourceSet which will be used to manage the facet models.
* @return The default IFacetManager associated to the ResourceSet
* @since 1.0
*/
IFacetManager getOrCreateDefaultFacetManager(ResourceSet resourceSet);
/**
* Create a new {@link IFacetManager}.
*
* @param resource
* the {@link Resource} in which virtual
* {@link EStructuralFeature}s are serialized. Can be
* <code>null</code> if no EStructuralFeature provided a Facet
* are used.
* @since 1.0
*/
IFacetManager createFacetManagerWithSerializationResource(Resource resource);
/**
* Create a new {@link IFacetManager}.
*
* @param resourceSet
* the resourceSet which will be used to manage the facet models.
* @since 1.0
*/
IFacetManager createFacetManager(ResourceSet resourceSet);
}