public class DefaultMergeStrategy extends StrategyBase implements IMergeStrategy
Modifier and Type | Field and Description |
---|---|
protected MergeMode |
defaultCollectionMergeMode |
protected MergeMode |
defaultMergeMode |
protected java.lang.Class<? extends CdmBase> |
mergeClass |
protected java.util.Map<java.lang.String,java.lang.reflect.Field> |
mergeFields |
protected java.util.Map<java.lang.String,MergeMode> |
mergeModeMap |
Modifier | Constructor and Description |
---|---|
protected |
DefaultMergeStrategy(java.lang.Class<? extends CdmBase> mergeClazz) |
Modifier and Type | Method and Description |
---|---|
static java.lang.reflect.Method |
getAddMethod(java.lang.reflect.Field field,
boolean remove) |
java.lang.Class<? extends CdmBase> |
getMergeClass() |
MergeMode |
getMergeMode(java.lang.String propertyName) |
protected <T extends IMergable> |
getMergeValue(T mergeFirst,
T mergeSecond,
java.lang.reflect.Field field) |
static java.lang.reflect.Method |
getReplaceMethod(java.lang.reflect.Field field) |
protected java.util.UUID |
getUuid() |
<T extends IMergable> |
invoke(T mergeFirst,
T mergeSecond)
Merges mergeSecond into mergeFirst.
|
<T extends IMergable> |
invoke(T mergeFirst,
T mergeSecond,
java.util.Set<ICdmBase> clonedObjects)
Merges mergeSecond into mergeFirst.
|
boolean |
isOnlyReallocateReferences()
If set to true the merge will only reallocate all references that point
to the second entity to the first entity.
|
protected <T extends IMergable> |
mergeCollectionFieldNoFirst(T mergeFirst,
T mergeSecond,
java.lang.reflect.Field field,
MergeMode mergeMode,
java.util.Set<ICdmBase> deleteSet,
java.util.Set<ICdmBase> clonedObjects) |
static DefaultMergeStrategy |
NewInstance(java.lang.Class<? extends CdmBase> mergeClazz) |
void |
setDefaultCollectionMergeMode(MergeMode defaultCollectionMergeMode)
Sets the default merge mode for all collection properties.
|
void |
setDefaultMergeMode(MergeMode defaultMergeMode)
Sets the default merge mode for all properties.
|
void |
setMergeClazz(java.lang.Class<? extends CdmBase> mergeClazz) |
void |
setMergeMode(java.lang.String propertyName,
MergeMode mergeMode)
Sets the merge mode for property propertyName
|
isBlank, isCollection, isNotBlank, isPrimitive, isSingleCdmBaseObject, isUserType, Nz
protected MergeMode defaultMergeMode
protected MergeMode defaultCollectionMergeMode
protected java.util.Map<java.lang.String,MergeMode> mergeModeMap
protected java.lang.Class<? extends CdmBase> mergeClass
protected java.util.Map<java.lang.String,java.lang.reflect.Field> mergeFields
protected DefaultMergeStrategy(java.lang.Class<? extends CdmBase> mergeClazz)
public static DefaultMergeStrategy NewInstance(java.lang.Class<? extends CdmBase> mergeClazz)
public boolean isOnlyReallocateReferences()
IMergeStrategy
MergeMode
information will
be neglected.#setOnlyReallocateLinks(boolean)
isOnlyReallocateReferences
in interface IMergeStrategy
protected java.util.UUID getUuid()
getUuid
in class StrategyBase
public java.lang.Class<? extends CdmBase> getMergeClass()
public void setMergeClazz(java.lang.Class<? extends CdmBase> mergeClazz)
mergeClazz
- the mergeClazz to setpublic MergeMode getMergeMode(java.lang.String propertyName)
getMergeMode
in interface IMergeStrategy
public void setMergeMode(java.lang.String propertyName, MergeMode mergeMode) throws MergeException
IMergeStrategy
setMergeMode
in interface IMergeStrategy
MergeException
public void setDefaultMergeMode(MergeMode defaultMergeMode)
IMergeStrategy
setDefaultMergeMode
in interface IMergeStrategy
public void setDefaultCollectionMergeMode(MergeMode defaultCollectionMergeMode)
IMergeStrategy
setDefaultCollectionMergeMode
in interface IMergeStrategy
public <T extends IMergable> java.util.Set<ICdmBase> invoke(T mergeFirst, T mergeSecond) throws MergeException
IMergeStrategy
invoke
in interface IMergeStrategy
MergeException
public <T extends IMergable> java.util.Set<ICdmBase> invoke(T mergeFirst, T mergeSecond, java.util.Set<ICdmBase> clonedObjects) throws MergeException
IMergeStrategy
invoke
in interface IMergeStrategy
clonedObjects
- a set of objects that needed to be cloned during merge.
This set will be filled during merge and should preferably be empty at the beginningMergeException
protected <T extends IMergable> void mergeCollectionFieldNoFirst(T mergeFirst, T mergeSecond, java.lang.reflect.Field field, MergeMode mergeMode, java.util.Set<ICdmBase> deleteSet, java.util.Set<ICdmBase> clonedObjects) throws java.lang.Exception
java.lang.Exception
public static java.lang.reflect.Method getReplaceMethod(java.lang.reflect.Field field) throws MergeException
MergeException
public static java.lang.reflect.Method getAddMethod(java.lang.reflect.Field field, boolean remove) throws MergeException
MergeException
protected <T extends IMergable> java.lang.Object getMergeValue(T mergeFirst, T mergeSecond, java.lang.reflect.Field field) throws java.lang.Exception
cdmBase
- toMerge
- field
- mergeMode
- java.lang.Exception
Copyright © 2007-2020 EDIT. All Rights Reserved.