code: public CallbackResult<V> processCallbacks(Object... params)
  	{
  		if (callbacks.size() == 0)
  			return CallbackResult.noResult();
  
  		CallbackResult<V> result = CallbackResult.noResult();
  		Priority lastPriority = Priority.HIGHEST;
  		for (Pair<C, CallbackOption<P>> pair : callbacks)
  		{
  			if (result.isCancelled() && pair.getRight().getPriority() != lastPriority)
  				return result;
  
  			if (pair.getRight().apply(params))
  			{
  				CallbackResult<V> tmp = pair.getLeft().call(params);
  				result = reduce.apply(result, tmp);
  				if (result.isForcedCancelled())
  					return result;
  
  				lastPriority = pair.getRight().getPriority();
  			}
  		}
  
  		return result;
  	}
docs: Processes the registered {@link ICallback ICallbacks} according to their priority.
  
  @param params the params
  @return the v