Package com._1c.g5.v8.dt.core.provider
Class BmContentImportSupport
- java.lang.Object
-
- com._1c.g5.v8.dt.core.provider.BmContentImportSupport
-
- Direct Known Subclasses:
TransactionalBmContentImporter
public abstract class BmContentImportSupport extends Object
Collection of common logic that is required to build efficientIResourceContentImporter
's
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static interface
BmContentImportSupport.ILoadOptionsProvider
Load options provider.protected static class
BmContentImportSupport.LoadedData
Object data being loaded from a data streamprotected static class
BmContentImportSupport.NonCloseableHashingInputStream
Non-closeable version of com.google.common.hash.HashingInputStream
-
Constructor Summary
Constructors Constructor Description BmContentImportSupport()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected byte[]
computeSha256Hash(InputStream content)
Computes a content hash using SHA256protected org.eclipse.emf.ecore.resource.Resource
doResourceLoad(IDtProject project, org.eclipse.core.runtime.IPath path, InputStream content, IBmNamespace namespace, boolean resolveExternalReferencesDuringImport, BmContentImportSupport.ILoadOptionsProvider loadOptionsProvider, Version runtimeVersion, org.eclipse.emf.ecore.resource.Resource.Factory resourceFactory, IBmModelManager bmModelManager)
Loads a resource from a provided contentprotected <T> T
executeTaskInContextIfNecessary(Function<IBmPlatformTransaction,T> importFunction, IDtProject project, boolean executeInGlobalContext, boolean disableEvents, IBmModelManager bmModelManager)
Executes provided generic import function in global editing context or directly as a RW BM taskprotected void
forceDerivedDataRebuild(IDtProject project, IBmNamespace namespace, IBmObject importedObject, IDerivedDataManagerProvider derivedDataManagerProvider)
During full override we are emulating object attachment for DD subsystem to improve performanceprotected Version
getRuntimeVersion(IDtProject project, IRuntimeVersionSupport runtimeVersionSupport)
Gets a runtime version for a given projectprotected BmContentImportSupport.LoadedData
loadData(IBmPlatformTransaction transaction, IBmNamespace namespace, IDtProject project, org.eclipse.core.runtime.IPath path, InputStream content, boolean resolveExternalReferencesDuringImport, BmContentImportSupport.ILoadOptionsProvider loadOptionsProvider, org.eclipse.emf.ecore.resource.Resource.Factory resourceFactory, IBmModelManager bmModelManager, IRuntimeVersionSupport runtimeVersionSupport, IQualifiedNameFilePathConverter qualifiedNameFilePathConverter)
Loads the data from the provided content input streamprotected String
resolveFqn(org.eclipse.core.runtime.IPath path, IQualifiedNameFilePathConverter qualifiedNameFilePathConverter)
Resolves an FQN from a provided path
-
-
-
Method Detail
-
computeSha256Hash
protected byte[] computeSha256Hash(InputStream content)
Computes a content hash using SHA256- Parameters:
content
- The content stream. May not benull
- Returns:
- A hash of the provided content. May not be
null
-
doResourceLoad
protected org.eclipse.emf.ecore.resource.Resource doResourceLoad(IDtProject project, org.eclipse.core.runtime.IPath path, InputStream content, IBmNamespace namespace, boolean resolveExternalReferencesDuringImport, BmContentImportSupport.ILoadOptionsProvider loadOptionsProvider, Version runtimeVersion, org.eclipse.emf.ecore.resource.Resource.Factory resourceFactory, IBmModelManager bmModelManager)
Loads a resource from a provided content- Parameters:
project
- The targetIDtProject
. Cannot benull
path
- The target path. Cannot benull
content
- The imported content stream. Can benull
namespace
- The target BM namespace for an import. Nevernull
resolveExternalReferencesDuringImport
- Flag that specifies the additional resolving of external references during the importloadOptionsProvider
- The load options provider for load process customization. Cannot benull
runtimeVersion
- The target runtime version. Cannot benull
bmModelManager
-IBmModelManager
service reference. Cannot benull
- Returns:
- The loaded resource. May be
null
-
executeTaskInContextIfNecessary
protected <T> T executeTaskInContextIfNecessary(Function<IBmPlatformTransaction,T> importFunction, IDtProject project, boolean executeInGlobalContext, boolean disableEvents, IBmModelManager bmModelManager)
Executes provided generic import function in global editing context or directly as a RW BM task- Parameters:
importFunction
- Import function to execute. Nevernull
project
- TargetIDtProject
. Nevernull
executeInGlobalContext
- Flag that enables global context execution modedisableEvents
- Disables sending ob BM events as a result of import function executionbmModelManager
-IBmModelManager
service reference. Nevernull
- Returns:
- Result of a funtion. May be
null
depending on the function itself
-
forceDerivedDataRebuild
protected void forceDerivedDataRebuild(IDtProject project, IBmNamespace namespace, IBmObject importedObject, IDerivedDataManagerProvider derivedDataManagerProvider)
During full override we are emulating object attachment for DD subsystem to improve performance- Parameters:
project
- TargetIDtProject
. Nevernull
namespace
- The target BM namespace for an import. Nevernull
importedObject
- The object being imported. Nevernull
derivedDataManagerProvider
- TheIDerivedDataManagerProvider
service reference. Nevernull
-
getRuntimeVersion
protected Version getRuntimeVersion(IDtProject project, IRuntimeVersionSupport runtimeVersionSupport)
Gets a runtime version for a given project- Parameters:
project
- A project to get version for. Cannot benull
runtimeVersionSupport
- TheIRuntimeVersionSupport
service reference. Cannot benull
- Returns:
- A platform version of a project. Cannot be
null
-
loadData
protected BmContentImportSupport.LoadedData loadData(IBmPlatformTransaction transaction, IBmNamespace namespace, IDtProject project, org.eclipse.core.runtime.IPath path, InputStream content, boolean resolveExternalReferencesDuringImport, BmContentImportSupport.ILoadOptionsProvider loadOptionsProvider, org.eclipse.emf.ecore.resource.Resource.Factory resourceFactory, IBmModelManager bmModelManager, IRuntimeVersionSupport runtimeVersionSupport, IQualifiedNameFilePathConverter qualifiedNameFilePathConverter)
Loads the data from the provided content input stream- Parameters:
transaction
- The target BM transaction. Cannot benull
namespace
- The target BM namespace. Cannot benull
project
- The targetIDtProject
. Cannot benull
path
- The target path. Cannot benull
content
- The imported content stream. Cannot benull
resolveExternalReferencesDuringImport
- Flag that specifies the additional resolving of external references during the importloadOptionsProvider
- The load options provider for load process customization. Cannot benull
resourceFactory
- The optional resource factory. May benull
. Uses standard resource factory registry if no custom factory is specifiedbmModelManager
- TheIBmModelManager
service reference. Cannot benull
runtimeVersionSupport
- TheIRuntimeVersionSupport
service reference. Cannot benull
qualifiedNameFilePathConverter
- TheIQualifiedNameFilePathConverter
service reference. Cannot benull
- Returns:
- A loaded data container. May be
null
in case of resource absense or unsupported object types for import
-
resolveFqn
protected String resolveFqn(org.eclipse.core.runtime.IPath path, IQualifiedNameFilePathConverter qualifiedNameFilePathConverter)
Resolves an FQN from a provided path- Parameters:
path
- Path to resolve. May not benull
qualifiedNameFilePathConverter
- TheIQualifiedNameFilePathConverter
service reference. Cannot benull
- Returns:
- FQN if found. May be
null
-
-