public static void registerCondition(String conditionName,Class<? extends AttributeFilterCondition> conditionClass){
  String[] newConditionNames=new String[CONDITION_NAMES.length + 1];
  System.arraycopy(CONDITION_NAMES,0,newConditionNames,0,CONDITION_NAMES.length);
  newConditionNames[newConditionNames.length - 1]=conditionName;
  CONDITION_NAMES=newConditionNames;
  Class<?>[] newConditionClasses=new Class[CONDITION_IMPLEMENTATIONS.length + 1];
  System.arraycopy(CONDITION_IMPLEMENTATIONS,0,newConditionClasses,0,CONDITION_IMPLEMENTATIONS.length);
  newConditionClasses[newConditionClasses.length - 1]=conditionClass;
  CONDITION_IMPLEMENTATIONS=newConditionClasses;
}

public static void registerCondition ( String conditionName , Class < ? extends AttributeFilterCondition > conditionClass ) { String [ ] newConditionNames = new String [ CONDITION_NAMES . length + 1 ] ; System . arraycopy ( CONDITION_NAMES , 0 , newConditionNames , 0 , CONDITION_NAMES . length ) ; newConditionNames [ newConditionNames . length - 1 ] = conditionName ; CONDITION_NAMES = newConditionNames ; Class < ? > [ ] newConditionClasses = new Class [ CONDITION_IMPLEMENTATIONS . length + 1 ] ; System . arraycopy ( CONDITION_IMPLEMENTATIONS , 0 , newConditionClasses , 0 , CONDITION_IMPLEMENTATIONS . length ) ; newConditionClasses [ newConditionClasses . length - 1 ] = conditionClass ; CONDITION_IMPLEMENTATIONS = newConditionClasses ; }
this method allows registering filter conditions defined in plugins .
