if ( "[]".equals( path ) ) {
return new AutoExpandArrayTraversalStep( this, child );
}
else if ( path.startsWith( "[" ) && path.endsWith( "]" ) ) {
return new ArrayTraversalStep( this, child );
}
else {
return new MapTraversalStep( this, child );
}
}