public final IHandlerActivation activateHandler(
final IHandlerActivation childActivation) {
final String commandId = childActivation.getCommandId();
final IHandler handler = childActivation.getHandler();
final Expression childExpression = childActivation.getExpression();
final AndExpression expression;
if (childExpression instanceof AndExpression) {
expression = (AndExpression) childExpression;
} else {
expression = new AndExpression();
if (childExpression != null) {
expression.add(childExpression);
}
}
if (defaultExpression != null) {
expression.add(defaultExpression);
}
final int depth = childActivation.getDepth() + 1;
final IHandlerActivation localActivation = new HandlerActivation(
commandId, handler, expression, depth, this);