Interface IModelObjectAdopter
-
public interface IModelObjectAdopter
Adopter for model objects. May be used to adopt model object to use in V8 configuration extension project. Adopted model objects in extension projects may be used to set as checked or modify original model object properties when extension will be applied to the configuration in the 1C:Enterprise runtime.- See Also:
IModelObjectAdopterParticipant
- Restriction:
- This interface is not intended to be extended by clients.
- Restriction:
- This interface is not intended to be implemented by clients.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <T extends org.eclipse.emf.ecore.EObject>
Tadopt(T source, Version version, org.eclipse.core.runtime.IProgressMonitor monitor)
Adopt model object from V8 configuration project to use in V8 configuration extension project.List<org.eclipse.emf.ecore.EObject>
adoptAndAttach(List<org.eclipse.emf.ecore.EObject> source, IExtensionProject target, org.eclipse.core.runtime.IProgressMonitor monitor)
Adopt a list of model objects from V8 configuration project to use in V8 configuration extension project and attach them to the target V8 extension project configuration and its BM model.<T extends org.eclipse.emf.ecore.EObject>
TadoptAndAttach(T source, IExtensionProject target, org.eclipse.core.runtime.IProgressMonitor monitor)
Adopt model object from V8 configuration project to use in V8 configuration extension project and attach it to the target V8 extension project configuration and its BM model.<T extends org.eclipse.emf.ecore.EObject>
TgetAdopted(T source, IExtensionProject target)
Returns adopted object for the provided modelsource
object from V8 configuration project, that is contained in the target V8 configuration extension project.<T extends org.eclipse.emf.ecore.EObject>
TgetSource(T adopted)
Returns source native object for the provided modeladopted
object from V8 configuration extension project.boolean
isAdopted(org.eclipse.emf.ecore.EObject source, IExtensionProject target)
Returns whether the given source object is already adopted to the target V8 configuration extension project.boolean
isUpdatable(org.eclipse.emf.ecore.EObject source, IExtensionProject target)
Returns whether the given source object may be updated after adoption to the target V8 configuration extension project.<T extends org.eclipse.emf.ecore.EObject>
TupdateAdopted(T source, IExtensionProject target, org.eclipse.core.runtime.IProgressMonitor monitor)
Updates according adopted model object for the provided source object in the target V8 configuration extension project.
-
-
-
Method Detail
-
adopt
<T extends org.eclipse.emf.ecore.EObject> T adopt(T source, Version version, org.eclipse.core.runtime.IProgressMonitor monitor)
Adopt model object from V8 configuration project to use in V8 configuration extension project. Returned object is not attached to BM model even if the source object is attached. Originalsource
object remains unchanged during adoption.The provided
source
object will be adopted by by itself, without children or parents or related objects.Clients may adopt objects and attach it manually:
- Adopt object from parent V8 configuration project, that client want to use in extension project.
- Attach it to the required V8 configuration extension project manually.
- Parameters:
source
- the model object to adopt, cannot benull
version
- the version of the 1C:Enterprise runtime, cannot benull
monitor
- the progress monitor to report progress and check cancellation status, ornull
if progress reporting is not desired- Returns:
- an adopted object, never
null
- Throws:
IllegalArgumentException
- if the providedsource
object cannot be adopted
-
adoptAndAttach
<T extends org.eclipse.emf.ecore.EObject> T adoptAndAttach(T source, IExtensionProject target, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
Adopt model object from V8 configuration project to use in V8 configuration extension project and attach it to the target V8 extension project configuration and its BM model. Originalsource
object remains unchanged during adoption.If the provided
source
object is top object of the V8 configuration (Catalog or Document for example), then it will be attached to the target project by itself, without children. If the providedsource
object is not a top object of the V8 configuration (Attribute or Command for example), then it will be adopted with all its parents up to the top object (if they are not adopted yet).Also, some model object adoption may cause other related model objects adoption: for example Catalog Attribute with reference type to other model object will cause this related object adoption and attachment.
Examples of model object adoption scenarios:
- If clients adopts Catalog to the target extension project, only this Catalog will be adopted the target extension configuration without any children.
- If clients adopts Catalog Attribute with primitive type to the target extension project, then this Attribute parent Catalog will be adopted with this Attribute as children.
- If clients adopts Catalog Attribute with reference type to some Document to the target extension project, then this Document will be adopted adn this Attribute parent Catalog will be adopted with this Attribute as children.
Returns the adopted object, attached to the
target
project.- Parameters:
source
- the model object to adopt, cannot benull
target
- the target V8 extension configuration project, cannot benull
monitor
- the progress monitor to report progress and check cancellation status, ornull
if progress reporting is not desired- Returns:
- an adopted object, never
null
- Throws:
IllegalArgumentException
- if the providedsource
object cannot be adoptedorg.eclipse.core.runtime.CoreException
- if the adoption or attachment error occurred
-
adoptAndAttach
List<org.eclipse.emf.ecore.EObject> adoptAndAttach(List<org.eclipse.emf.ecore.EObject> source, IExtensionProject target, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
Adopt a list of model objects from V8 configuration project to use in V8 configuration extension project and attach them to the target V8 extension project configuration and its BM model. Originalsource
objects remains unchanged during adoption. SeeadoptAndAttach(EObject, IExtensionProject, IProgressMonitor)
for examples of model object adoption process.Returns a list of adopted objects in the same order, attached to the
target
project.- Parameters:
source
- a list of model objects to adopt, cannot benull
target
- the target V8 extension configuration project, cannot benull
monitor
- the progress monitor to report progress and check cancellation status, ornull
if progress reporting is not desired- Returns:
- a list of adopted objects in the same order, never
null
- Throws:
org.eclipse.core.runtime.CoreException
- if the adoption or attachment error occurred
-
getAdopted
<T extends org.eclipse.emf.ecore.EObject> T getAdopted(T source, IExtensionProject target)
Returns adopted object for the provided modelsource
object from V8 configuration project, that is contained in the target V8 configuration extension project.May return
null
if the provided object is not adopted yet to thetarget
project.- Parameters:
source
- the model object to get adopted for, cannot benull
target
- the target V8 extension configuration project, cannot benull
- Returns:
- the adopted object for the provided model
source
object that is contained in thetarget
project, ornull
if not adopted yet - Throws:
IllegalArgumentException
- if the providedsource
object cannot be adopted
-
getSource
<T extends org.eclipse.emf.ecore.EObject> T getSource(T adopted)
Returns source native object for the provided modeladopted
object from V8 configuration extension project. Result source object will belong to parent configuration project.May return
null
if the provided object extension project has no parent or source object not found in parent project.- Parameters:
adopted
- the model object to get source for, cannot benull
- Returns:
- source object for the provided model
adopted
object from V8 configuration extension project ornull
if not found - Throws:
IllegalArgumentException
- if the providedsource
object is not contained in extension project
-
isAdopted
boolean isAdopted(org.eclipse.emf.ecore.EObject source, IExtensionProject target)
Returns whether the given source object is already adopted to the target V8 configuration extension project.- Parameters:
source
- the model object to check, cannot benull
target
- the target V8 extension configuration project, cannot benull
- Returns:
- whether the given source object is already adopted to the target V8 configuration extension project
- Throws:
IllegalArgumentException
- if the providedsource
object cannot be adopted
-
isUpdatable
boolean isUpdatable(org.eclipse.emf.ecore.EObject source, IExtensionProject target)
Returns whether the given source object may be updated after adoption to the target V8 configuration extension project.- Parameters:
source
- the model object to check, cannot benull
target
- the target V8 extension configuration, cannot benull
- Returns:
- whether the given source object may be updated after adoption to the target V8 configuration extension project
- Throws:
IllegalArgumentException
- if the providedsource
object cannot be adopted
-
updateAdopted
<T extends org.eclipse.emf.ecore.EObject> T updateAdopted(T source, IExtensionProject target, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
Updates according adopted model object for the provided source object in the target V8 configuration extension project. Adopted object will be updated according to the providedsource
object state. Originalsource
object remains unchanged during adopted object update.- Parameters:
source
- the model object to update adopted object for, cannot benull
target
- the target V8 extension configuration project, cannot benull
monitor
- the progress monitor to report progress and check cancellation status, ornull
if progress reporting is not desired- Returns:
- returns the updated according adopted model object, never
null
- Throws:
IllegalArgumentException
- when:- the provided
source
object cannot be adopted - the provided
source
object can be adopted but it is not adopted yet - the provided
source
object cannot be updated after adoption
- the provided
org.eclipse.core.runtime.CoreException
- if the update error occurred
-
-