Class ConflictResolutionRule
- java.lang.Object
-
- com.jalios.jcms.tools.storemerge.rule.ConflictResolutionRule
-
- All Implemented Interfaces:
StoreConstants
- Direct Known Subclasses:
DeleteRule
,IgnoreEmptyItemRule
,IgnoreOrderRule
,IgnoreRule
,MergeRule
,NewValueRule
,PreferNotEmptyRule
,Store1Rule
,Store2Rule
,UpdateRule
public abstract class ConflictResolutionRule extends java.lang.Object implements StoreConstants
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ACTION_DELETE
static java.lang.String
ACTION_IGNORE
static java.lang.String
ACTION_IGNORE_EMPTY_ITEM
static java.lang.String
ACTION_IGNORE_ORDER
static java.lang.String
ACTION_MERGE
static java.lang.String
ACTION_PREFER_NOT_EMPTY
static java.lang.String
ACTION_STORE1
static java.lang.String
ACTION_STORE2
static java.lang.String
ACTION_UPDATE
-
Fields inherited from interface com.jalios.jstore.StoreConstants
ARRAY_FLAG, CLEANING_STATE, COLLECTION_FLAG, CREATE_OP, DELETE_OP, IDLE_STATE, INNER_LOGS, INNER_MILESTONE, INNER_PREFIX, INNER_SYNC, ITEM_ESCAPE_CHAR, ITEM_SEPARATOR, LOADING_STATE, MAP_ASSIGN, MAP_CHARS_TO_ESCAPE, MAP_CLASS_SEPARATOR, MAP_FLAG, NAMESPACE, REVISION, SH_SUFFIX, STORING_STATE, UPDATE_OP
-
-
Constructor Summary
Constructors Constructor Description ConflictResolutionRule(java.lang.String target)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ConflictResolutionRule
buildRule(java.lang.String action, java.lang.String target)
Returns a new rule according an action and a target.boolean
canResolveAttributeConflict(java.lang.String id, java.lang.String className, java.lang.String attName, java.lang.String value1, java.lang.String value2)
Returns true if the conflict on the given attribute can be resolved by a rule.boolean
canResolveCreateCreateConflict(java.lang.String id, java.lang.String className)
Returns true if the Create/Create conflict on the given data can be resolved.boolean
canResolveUpdateDeleteConflict(java.lang.String id, java.lang.String className)
Returns true if the Update/Delete conflict on the given data can be resolved.protected java.lang.String[]
decodeArray(java.lang.String value)
Returns an String[] from the encoded value.protected java.util.Set<java.lang.String>
decodeCollectionOrMapItemSet(java.lang.String value)
Returns a Set from the encoded value.protected java.util.List<java.lang.String>
decodeList(java.lang.String value)
Returns a List from the encoded value.java.lang.String
getAction()
Returns the name of the action.java.lang.String
getResolvedAttributeValue(java.lang.String id, java.lang.String className, java.lang.String attName, java.lang.String value1, java.lang.String value2)
Returns the resolved value for the conflict on the given attribute or null if the conflict must be ignored.protected boolean
isArray(java.lang.String value)
Returns true if this value is an array.protected boolean
isArrayOrCollectionAttribute(java.lang.String value1, java.lang.String value2)
Returns true if one of the 2 values is an array or a collection.protected boolean
isCollection(java.lang.String value)
Returns true if this value is a collection.protected boolean
isMap(java.lang.String value)
Returns true if this value is a map.protected boolean
isMapAttribute(java.lang.String value1, java.lang.String value2)
Returns true if one of the 2 values is a map.protected void
parseTarget(java.lang.String target)
java.util.List<StorableLogEntry>
resolveCreateCreateConflict(java.util.List<StorableLogEntry> store1OpList, java.util.List<StorableLogEntry> store2OpList)
Returns either store1OpList or store2OpList according the resolution behavior.java.util.List<StorableLogEntry>
resolveUpdateDeleteConflict(java.util.List<StorableLogEntry> store1OpList, java.util.List<StorableLogEntry> store2OpList)
Returns either store1OpList or store2OpList according the resolution behavior.protected boolean
selectorMatches(java.lang.String id, java.lang.String className, java.lang.String attName)
java.lang.String
toString()
-
-
-
Field Detail
-
ACTION_IGNORE
public static final java.lang.String ACTION_IGNORE
- See Also:
- Constant Field Values
-
ACTION_IGNORE_ORDER
public static final java.lang.String ACTION_IGNORE_ORDER
- See Also:
- Constant Field Values
-
ACTION_IGNORE_EMPTY_ITEM
public static final java.lang.String ACTION_IGNORE_EMPTY_ITEM
- See Also:
- Constant Field Values
-
ACTION_PREFER_NOT_EMPTY
public static final java.lang.String ACTION_PREFER_NOT_EMPTY
- See Also:
- Constant Field Values
-
ACTION_MERGE
public static final java.lang.String ACTION_MERGE
- See Also:
- Constant Field Values
-
ACTION_STORE1
public static final java.lang.String ACTION_STORE1
- See Also:
- Constant Field Values
-
ACTION_STORE2
public static final java.lang.String ACTION_STORE2
- See Also:
- Constant Field Values
-
ACTION_UPDATE
public static final java.lang.String ACTION_UPDATE
- See Also:
- Constant Field Values
-
ACTION_DELETE
public static final java.lang.String ACTION_DELETE
- See Also:
- Constant Field Values
-
-
Method Detail
-
parseTarget
protected void parseTarget(java.lang.String target)
-
canResolveAttributeConflict
public boolean canResolveAttributeConflict(java.lang.String id, java.lang.String className, java.lang.String attName, java.lang.String value1, java.lang.String value2)
Returns true if the conflict on the given attribute can be resolved by a rule.- Parameters:
id
- the data idclassName
- the data classattName
- the name of the attributevalue1
- the value of the attribute in store1value2
- the value of the attribute in store1- Returns:
- true if the conflict on the given attribute can be resolved by a rule.
- Since:
- jcms-8.0.0
-
getResolvedAttributeValue
public java.lang.String getResolvedAttributeValue(java.lang.String id, java.lang.String className, java.lang.String attName, java.lang.String value1, java.lang.String value2)
Returns the resolved value for the conflict on the given attribute or null if the conflict must be ignored.- Parameters:
id
- the data idclassName
- the data classattName
- the name of the attributevalue1
- the value of the attribute in store1value2
- the value of the attribute in store1- Returns:
- the resolved value for the conflict on the given attribute or null if the conflict must be ignored.
- Since:
- jcms-8.0.0
-
canResolveCreateCreateConflict
public boolean canResolveCreateCreateConflict(java.lang.String id, java.lang.String className)
Returns true if the Create/Create conflict on the given data can be resolved.- Parameters:
id
- the data idclassName
- the data class- Returns:
- true if the Create/Create conflict on the given data can be resolved.
- Since:
- jcms-8.0.0
-
canResolveUpdateDeleteConflict
public boolean canResolveUpdateDeleteConflict(java.lang.String id, java.lang.String className)
Returns true if the Update/Delete conflict on the given data can be resolved.- Parameters:
id
- the data idclassName
- the data class- Returns:
- true if the Update/Delete conflict on the given data can be resolved.
- Since:
- jcms-8.0.0
-
resolveUpdateDeleteConflict
public java.util.List<StorableLogEntry> resolveUpdateDeleteConflict(java.util.List<StorableLogEntry> store1OpList, java.util.List<StorableLogEntry> store2OpList)
Returns either store1OpList or store2OpList according the resolution behavior.- Parameters:
store1OpList
- the list of operations on the data from store 1store2OpList
- the list of operations on the data from store 1- Returns:
- either store1OpList or store2OpList according the resolution behavior.
- Since:
- jcms-8.0.0
-
resolveCreateCreateConflict
public java.util.List<StorableLogEntry> resolveCreateCreateConflict(java.util.List<StorableLogEntry> store1OpList, java.util.List<StorableLogEntry> store2OpList)
Returns either store1OpList or store2OpList according the resolution behavior.- Parameters:
store1OpList
- the list of operations on the data from store 1store2OpList
- the list of operations on the data from store 1- Returns:
- either store1OpList or store2OpList according the resolution behavior.
- Since:
- jcms-8.0.1
-
selectorMatches
protected boolean selectorMatches(java.lang.String id, java.lang.String className, java.lang.String attName)
-
isArray
protected boolean isArray(java.lang.String value)
Returns true if this value is an array.- Parameters:
value
- the encoded value.- Returns:
- true if this value is an array.
- Since:
- jcms-8.0.0
-
isCollection
protected boolean isCollection(java.lang.String value)
Returns true if this value is a collection.- Parameters:
value
- the encoded value.- Returns:
- true if this value is a collection.
- Since:
- jcms-8.0.0
-
isMap
protected boolean isMap(java.lang.String value)
Returns true if this value is a map.- Parameters:
value
- the encoded value.- Returns:
- true if this value is a map.
- Since:
- jcms-8.0.0
-
isArrayOrCollectionAttribute
protected boolean isArrayOrCollectionAttribute(java.lang.String value1, java.lang.String value2)
Returns true if one of the 2 values is an array or a collection.- Parameters:
value1
- the first valuevalue2
- the second value.- Returns:
- true if one of the 2 values is an array or a collection.
- Since:
- jcms-8.0.0
-
isMapAttribute
protected boolean isMapAttribute(java.lang.String value1, java.lang.String value2)
Returns true if one of the 2 values is a map.- Parameters:
value1
- the first valuevalue2
- the second value.- Returns:
- true if one of the 2 values is a map.
- Since:
- jcms-8.0.0
-
decodeArray
protected java.lang.String[] decodeArray(java.lang.String value)
Returns an String[] from the encoded value.- Parameters:
value
- the encoded value- Returns:
- an String[] from the encoded value.
- Since:
- jcms-8.0.0
-
decodeCollectionOrMapItemSet
protected java.util.Set<java.lang.String> decodeCollectionOrMapItemSet(java.lang.String value)
Returns a Set from the encoded value.- Parameters:
value
- the encoded value- Returns:
- a Set from the encoded value.
- Since:
- jcms-8.0.0
-
decodeList
protected java.util.List<java.lang.String> decodeList(java.lang.String value)
Returns a List from the encoded value.- Parameters:
value
- the encoded value- Returns:
- a List from the encoded value.
- Since:
- jcms-8.0.0
-
getAction
public java.lang.String getAction()
Returns the name of the action.- Returns:
- the name of the action.
- Since:
- jcms-8.0.0
-
buildRule
public static ConflictResolutionRule buildRule(java.lang.String action, java.lang.String target)
Returns a new rule according an action and a target.- Parameters:
action
- the actiontarget
- the target.- Returns:
- a new rule according an action and a target.
- Since:
- jcms-8.0.0
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-