Package de.xima.fc.importer.config
Class AEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
java.lang.Object
de.xima.fc.importer.config.AEntityImportConfig<T>
- All Implemented Interfaces:
IEntityImportConfig<T>
,Serializable
,Comparable<IEntityImportConfig<?>>
- Direct Known Subclasses:
ActionImportConfig
,AppointmentTemplateImportConfig
,ClientCounterImportConfig
,ClientResourceImportConfig
,DataSourceImportConfig
,EntityImportConfig
,FormVersionImportConfig
,InboxImportConfig
,ProjectDoiDataImportConfig
,ProjectIdentityCheckDataImportConfig
,ProjectImportConfig
,ProjectInviteDataImportConfig
,ProjectResourceImportConfig
,StateImportConfig
,TemplateImportConfig
,UserGroupImportConfig
public abstract class AEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
extends Object
implements IEntityImportConfig<T>
Configuration class for entity imports
- Author:
- XIMA MEDIA GmbH
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected de.xima.cmn.dao.interfaces.IEntity<Long>
protected T
protected final com.vdurmont.semver4j.Semver
protected String
protected static final org.slf4j.Logger
protected static final String
protected Long
protected String
protected UUID
protected T
protected String
protected Map<de.xima.cmn.dao.interfaces.IEntity<Long>,
List<IEntityDependency>> -
Constructor Summary
ConstructorsConstructorDescriptionAEntityImportConfig
(IEntityContext ec, de.xima.cmn.dao.interfaces.IEntity<Long> context, T entity, Set<IEntityDependency> dependencies, String importJson) Deprecated. -
Method Summary
Modifier and TypeMethodDescriptionfinalize
(IEntityContext ec, String fcVersion, String exportVersion) Finish the import.protected T
protected abstract IGenericDao<T>
getDao()
protected static UUID
getDependencyUuid
(IEntityImportConfig<?> config, String fieldDescriptor) Class<?>
de.xima.cmn.dao.interfaces.IEntity<Long>
Deprecated.Deprecated.Map<de.xima.cmn.dao.interfaces.IEntity<Long>,
List<IEntityDependency>> protected static String
getUuidEntityValue
(com.google.gson.JsonObject authConfig, String key) boolean
boolean
protected boolean
protected abstract void
protected void
protected void
protected void
protected void
void
Deprecated.void
setAlternativeId
(Long alternativeId) void
setConflictResolveAction
(EEntityConflictResolveAction conflictResolveAction) void
Deprecated.void
setEntityToOverride
(de.xima.cmn.dao.interfaces.IEntity<Long> entityToOverride) Deprecated.void
setImported
(boolean imported) Deprecated.void
setPersisted
(T persisted) void
stage
(IEntityContext ec) Stages the import for execution based on the given configurationtoString()
void
Updates the persisted entity if existing based on the entity represented by this configprotected void
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface de.xima.fc.importer.interfaces.IEntityImportConfig
compareTo, getDependencies
-
Field Details
-
LOG
protected static final org.slf4j.Logger LOG -
LOG_PREFIX
- See Also:
-
entity
-
formcycleVersion
protected final com.vdurmont.semver4j.Semver formcycleVersion -
persisted
-
persistedName
-
unresolvedDependencies
protected Map<de.xima.cmn.dao.interfaces.IEntity<Long>,List<IEntityDependency>> unresolvedDependencies -
importJson
-
originalID
-
originalUUID
-
originalName
-
context
-
-
Constructor Details
-
AEntityImportConfig
@Deprecated public AEntityImportConfig(IEntityContext ec, de.xima.cmn.dao.interfaces.IEntity<Long> context, T entity, Set<IEntityDependency> dependencies, String importJson) Deprecated.
-
-
Method Details
-
getEntity
- Specified by:
getEntity
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Returns:
- The entity that should be imported
-
getPersisted
- Specified by:
getPersisted
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Returns:
- The persisted entity that may be overridden
-
setPersisted
- Specified by:
setPersisted
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Parameters:
persisted
- The persisted entity that may be overridden
-
getEntityClass
- Specified by:
getEntityClass
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Returns:
- the class of the entity
-
getUnresolvedDependencies
public Map<de.xima.cmn.dao.interfaces.IEntity<Long>,List<IEntityDependency>> getUnresolvedDependencies()- Specified by:
getUnresolvedDependencies
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Returns:
- a map of all the entities of this import config that have unresolved dependencies. This includes not only entity dependencies of this import configs entity but also dependencies of its children, e.g.: a ProjectImportConfig might have unresolved dependencies for one of its WorkflowStates.
-
getConflictResolveAction
- Specified by:
getConflictResolveAction
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Returns:
EEntityConflictResolveAction
specifying what to do if the entity already exists
-
setConflictResolveAction
- Specified by:
setConflictResolveAction
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Parameters:
conflictResolveAction
-EEntityConflictResolveAction
specifying what to do if the entity already exists
-
isEntityExists
public boolean isEntityExists()- Specified by:
isEntityExists
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Returns:
true
if the given entity already exists (based on UUID and its context)
-
isImported
public boolean isImported()- Specified by:
isImported
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Returns:
- whether or not the entity has been imported yet
-
getOriginalID
- Specified by:
getOriginalID
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Returns:
- original ID of the entity
-
getOriginalExportId
- Specified by:
getOriginalExportId
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Returns:
- The original ID of the entity from the export file. Note that
IEntityImportConfig.getOriginalID()
may benull
when the IDs are not preserved, this will always be set to the original ID from the export file.
-
getOriginalUUID
- Specified by:
getOriginalUUID
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Returns:
- original UUID of the entity or
null
if the entity is noIUUIDEntity
-
getOriginalName
- Specified by:
getOriginalName
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Returns:
- original name of the entity before import (and possible name change)
-
getChildren
- Specified by:
getChildren
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Returns:
- all child importConfigs
-
getAllChildrenFlat
- Specified by:
getAllChildrenFlat
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Returns:
- all child importConfigs. Including the children of children
-
setAlternativeId
- Specified by:
setAlternativeId
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Parameters:
alternativeId
- of an existing entity of typeT
that should be used instead
-
loadAlternative
- Specified by:
loadAlternative
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Parameters:
ec
-IEntityContext
to use- Returns:
- Entity that should be used instead
-
updatePersisted
Description copied from interface:IEntityImportConfig
Updates the persisted entity if existing based on the entity represented by this config- Specified by:
updatePersisted
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Parameters:
ec
-IEntityContext
to be used for updating the persisted entity
-
stage
Description copied from interface:IEntityImportConfig
Stages the import for execution based on the given configuration- Specified by:
stage
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Parameters:
ec
-IEntityContext
to be used- Throws:
Exception
- When the entity could not be staged.
-
finalize
public List<DependencyDescriptor> finalize(IEntityContext ec, String fcVersion, String exportVersion) throws Exception Description copied from interface:IEntityImportConfig
Finish the import. Should be called after every import config has been staged for import and deprecated fields have been handled.- Specified by:
finalize
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Parameters:
ec
-IEntityContext
to be usedfcVersion
- The current formcycle version where the entity is imported.exportVersion
- The formcycle version that was used to create the export file with the entity.- Returns:
List
ofDependencyDescriptor
s of missing dependencies- Throws:
Exception
- When the entity import could not be finalized.
-
toString
-
isUuidExisting
-
getDao
-
makeEntityUnique
- Throws:
Exception
-
preCreate
- Throws:
Exception
-
preUpdate
- Throws:
Exception
-
postCreate
- Throws:
Exception
-
postUpdate
- Throws:
Exception
-
validateImport
- Throws:
Exception
-
getDependencyUuid
-
getUuidEntityValue
-
findPersisted
-
resolveDependencies
Deprecated.Description copied from interface:IEntityImportConfig
Resolves the dependencies of this entity- Specified by:
resolveDependencies
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Parameters:
ec
-IEntityContext
to be used
-
setEntity
Deprecated.- Specified by:
setEntity
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Parameters:
entity
- The entity that should be imported
-
getEntityToOverride
Deprecated.- Specified by:
getEntityToOverride
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Returns:
IEntity
that should be overridden instead of the persisted
-
setEntityToOverride
@Deprecated public void setEntityToOverride(de.xima.cmn.dao.interfaces.IEntity<Long> entityToOverride) Deprecated.- Specified by:
setEntityToOverride
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Parameters:
entityToOverride
-IEntity
that should be overridden instead of the persisted
-
setImported
Deprecated.Description copied from interface:IEntityImportConfig
Set totrue
if the entity has been imported- Specified by:
setImported
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
-
getImportJson
Deprecated.- Specified by:
getImportJson
in interfaceIEntityImportConfig<T extends de.xima.cmn.dao.interfaces.IEntity<Long>>
- Returns:
- the original JSON String of the import entity
-