com.jalios.jcms.tools.storemerge.rule
Class ConflictResolutionRule

java.lang.Object
  extended by 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 Object
implements StoreConstants


Field Summary
static String ACTION_DELETE
           
static String ACTION_IGNORE
           
static String ACTION_IGNORE_EMPTY_ITEM
           
static String ACTION_IGNORE_ORDER
           
static String ACTION_MERGE
           
static String ACTION_PREFER_NOT_EMPTY
           
static String ACTION_STORE1
           
static String ACTION_STORE2
           
static 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
ConflictResolutionRule(String target)
           
 
Method Summary
static ConflictResolutionRule buildRule(String action, String target)
          Returns a new rule according an action and a target.
 boolean canResolveAttributeConflict(String id, String className, String attName, String value1, String value2)
          Returns true if the conflict on the given attribute can be resolved by a rule.
 boolean canResolveUpdateDeleteConflict(String id, String className)
          Returns true if the Update/Delete conflict on the given data can be resolved.
protected  String[] decodeArray(String value)
          Returns an String[] from the encoded value.
protected  Set<String> decodeCollectionOrMapItemSet(String value)
          Returns a Set from the encoded value.
protected  List<String> decodeList(String value)
          Returns a List from the encoded value.
 String getAction()
          Returns the name of the action.
 String getResolvedAttributeValue(String id, String className, String attName, String value1, String value2)
          Returns the resolved value for the conflict on the given attribute or null if the conflict must be ignored.
protected  boolean isArray(String value)
          Returns true if this value is an array.
protected  boolean isArrayOrCollectionAttribute(String value1, String value2)
          Returns true if one of the 2 values is an array or a collection.
protected  boolean isCollection(String value)
          Returns true if this value is a collection.
protected  boolean isMap(String value)
          Returns true if this value is a map.
protected  boolean isMapAttribute(String value1, String value2)
          Returns true if one of the 2 values is a map.
protected  void parseTarget(String target)
           
 List<StorableLogEntry> resolveUpdateDeleteConflict(List<StorableLogEntry> store1OpList, List<StorableLogEntry> store2OpList)
          Returns either store1OpList or store2OpList according the resolution behavior.
protected  boolean selectorMatches(String id, String className, String attName)
           
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ACTION_IGNORE

public static final String ACTION_IGNORE
See Also:
Constant Field Values

ACTION_IGNORE_ORDER

public static final String ACTION_IGNORE_ORDER
See Also:
Constant Field Values

ACTION_IGNORE_EMPTY_ITEM

public static final String ACTION_IGNORE_EMPTY_ITEM
See Also:
Constant Field Values

ACTION_PREFER_NOT_EMPTY

public static final String ACTION_PREFER_NOT_EMPTY
See Also:
Constant Field Values

ACTION_MERGE

public static final String ACTION_MERGE
See Also:
Constant Field Values

ACTION_STORE1

public static final String ACTION_STORE1
See Also:
Constant Field Values

ACTION_STORE2

public static final String ACTION_STORE2
See Also:
Constant Field Values

ACTION_UPDATE

public static final String ACTION_UPDATE
See Also:
Constant Field Values

ACTION_DELETE

public static final String ACTION_DELETE
See Also:
Constant Field Values
Constructor Detail

ConflictResolutionRule

public ConflictResolutionRule(String target)
Method Detail

parseTarget

protected void parseTarget(String target)

canResolveAttributeConflict

public boolean canResolveAttributeConflict(String id,
                                           String className,
                                           String attName,
                                           String value1,
                                           String value2)
Returns true if the conflict on the given attribute can be resolved by a rule.

Parameters:
id - the data id
className - the data class
attName - the name of the attribute
value1 - the value of the attribute in store1
value2 - 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 String getResolvedAttributeValue(String id,
                                        String className,
                                        String attName,
                                        String value1,
                                        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 id
className - the data class
attName - the name of the attribute
value1 - the value of the attribute in store1
value2 - 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

canResolveUpdateDeleteConflict

public boolean canResolveUpdateDeleteConflict(String id,
                                              String className)
Returns true if the Update/Delete conflict on the given data can be resolved.

Parameters:
id - the data id
className - the data class
Returns:
true if the Update/Delete conflict on the given data can be resolved.
Since:
jcms-8.0.0

resolveUpdateDeleteConflict

public List<StorableLogEntry> resolveUpdateDeleteConflict(List<StorableLogEntry> store1OpList,
                                                          List<StorableLogEntry> store2OpList)
Returns either store1OpList or store2OpList according the resolution behavior.

Parameters:
store1OpList - the list of operations on the data from store 1
store2OpList - the list of operations on the data from store 1
Returns:
either store1OpList or store2OpList according the resolution behavior.
Since:
jcms-8.0.0

selectorMatches

protected boolean selectorMatches(String id,
                                  String className,
                                  String attName)

isArray

protected boolean isArray(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(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(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(String value1,
                                               String value2)
Returns true if one of the 2 values is an array or a collection.

Parameters:
value1 - the first value
value2 - 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(String value1,
                                 String value2)
Returns true if one of the 2 values is a map.

Parameters:
value1 - the first value
value2 - the second value.
Returns:
true if one of the 2 values is a map.
Since:
jcms-8.0.0

decodeArray

protected String[] decodeArray(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 Set<String> decodeCollectionOrMapItemSet(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 List<String> decodeList(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 String getAction()
Returns the name of the action.

Returns:
the name of the action.
Since:
jcms-8.0.0

buildRule

public static ConflictResolutionRule buildRule(String action,
                                               String target)
Returns a new rule according an action and a target.

Parameters:
action - the action
target - the target.
Returns:
a new rule according an action and a target.
Since:
jcms-8.0.0

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2001-2010 Jalios SA. All Rights Reserved.