/*
* Jitsi, the OpenSource Java VoIP and Instant Messaging client.
*
* Copyright @ 2015 Atlassian Pty Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.java.sip.communicator.service.ldap.event;
import java.util.*;
/**
* An LdapEvent is triggered when
* the state of the LDAP connection changes.
* Available states for the moment are :
* connected
* disconnected
* connecting
* disconnecting
*
* @author Sebastien Mazy
*/
public class LdapEvent
extends EventObject
{
/**
* Serial version UID.
*/
private static final long serialVersionUID = 0L;
/**
* Indicates the possible causes why an event was triggered
*/
public static enum LdapEventCause
{
/**
* New result is available.
*/
NEW_SEARCH_RESULT,
/**
* Search is achieved.
*/
SEARCH_ACHIEVED,
/**
* Search is cancelled.
*/
SEARCH_CANCELLED,
/**
* Problem occurred during search.
*/
SEARCH_ERROR,
/**
* Authentication failed.
*/
SEARCH_AUTH_ERROR
}
/**
* the cause of this event
*/
private final LdapEventCause cause;
/**
* the content of this event
*/
private final Object content;
/**
* Simple constructor for this class
*
* @param source the source of the event (most likely an LdapDirectory)
* @param cause the cause why it was triggered
*/
public LdapEvent(LdapEventManager source, LdapEventCause cause)
{
this(source, cause, null);
}
/**
* Another constructor for this class. Use that one to pass more
* information to the listener using any Object.
*
* @param source the source of the event (most likely an LdapDirectory)
* @param cause the cause why it was triggered
* @param content related content
*/
public LdapEvent(LdapEventManager source, LdapEventCause cause,
Object content)
{
super(source);
this.cause = cause;
this.content = content;
}
/**
* @return the cause why this event was triggered
*/
public LdapEventCause getCause()
{
return this.cause;
}
/**
* @return the object embedded in this event, or null if there isn't one
*/
public Object getContent()
{
return this.content;
}
/**
* Returns the LdapEventManager which sent the LdapEvent.
*
* @return the LdapEventManager which sent the LdapEvent
*/
@Override
public LdapEventManager getSource()
{
return (LdapEventManager) super.getSource();
}
}