in interceptors/event/src/main/java/org/apache/directory/server/core/event/EventInterceptor.java [124:245]
private void fire( final OperationContext opContext, EventType type, final DirectoryListener listener )
{
switch ( type )
{
case ADD:
if ( listener.isSynchronous() )
{
listener.entryAdded( ( AddOperationContext ) opContext );
}
else
{
executor.execute( new Runnable()
{
@Override
public void run()
{
listener.entryAdded( ( AddOperationContext ) opContext );
}
} );
}
break;
case DELETE:
if ( listener.isSynchronous() )
{
listener.entryDeleted( ( DeleteOperationContext ) opContext );
}
else
{
executor.execute( new Runnable()
{
@Override
public void run()
{
listener.entryDeleted( ( DeleteOperationContext ) opContext );
}
} );
}
break;
case MODIFY:
if ( listener.isSynchronous() )
{
listener.entryModified( ( ModifyOperationContext ) opContext );
}
else
{
executor.execute( new Runnable()
{
@Override
public void run()
{
listener.entryModified( ( ModifyOperationContext ) opContext );
}
} );
}
break;
case MOVE:
if ( listener.isSynchronous() )
{
listener.entryMoved( ( MoveOperationContext ) opContext );
}
else
{
executor.execute( new Runnable()
{
@Override
public void run()
{
listener.entryMoved( ( MoveOperationContext ) opContext );
}
} );
}
break;
case RENAME:
if ( listener.isSynchronous() )
{
listener.entryRenamed( ( RenameOperationContext ) opContext );
}
else
{
executor.execute( new Runnable()
{
@Override
public void run()
{
listener.entryRenamed( ( RenameOperationContext ) opContext );
}
} );
}
break;
case MOVE_AND_RENAME:
if ( listener.isSynchronous() )
{
listener.entryMovedAndRenamed( ( MoveAndRenameOperationContext ) opContext );
}
else
{
executor.execute( new Runnable()
{
@Override
public void run()
{
listener.entryMovedAndRenamed( ( MoveAndRenameOperationContext ) opContext );
}
} );
}
break;
default:
throw new IllegalArgumentException( "Unexpected event type " + type );
}
}