8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Copyright (c) 2005 Sun Microsystems Inc. All Rights Reserved
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * The contents of this file are subject to the terms
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * of the Common Development and Distribution License
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * (the License). You may not use this file except in
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * compliance with the License.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * You can obtain a copy of the License at
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * See the License for the specific language governing
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * permission and limitations under the License.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * When distributing Covered Code, include this CDDL
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Header Notice in each file and include the License file
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * If applicable, add the following below the CDDL Header,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * with the fields enclosed by brackets [] replaced by
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * your own identifying information:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * "Portions Copyrighted [year] [name of copyright owner]"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * $Id: AMEvent.java,v 1.8 2009/01/28 05:34:47 ww203982 Exp $
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington * Portions Copyright 2015 ForgeRock AS.
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunningtonimport org.forgerock.openam.ldap.PersistentSearchChangeType;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster/** <p>Represents an event fired by Sun Java System Access Manager SDK.</p>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <p><code>AMEvent</code>'s state consists of the following:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li>The event source: The underlying object that caused the event.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li>The event source DN: DN of the underlying object that caused the
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li>The event type
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li>The source object type: Type of the underlying object that caused
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * @deprecated As of Sun Java System Access Manager 7.1.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * @supported.all.api
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static final long serialVersionUID = 6448554078141700417L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Represents an object addition event type.
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington public static final int OBJECT_ADDED = PersistentSearchChangeType.ADDED;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Represents an object change event type.
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington public static final int OBJECT_CHANGED = PersistentSearchChangeType.MODIFIED;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Represents an object removal event type.
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington public static final int OBJECT_REMOVED = PersistentSearchChangeType.REMOVED;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /** Represents an object expiration event type. Occurs when the TTL for the
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * object data is over. */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Represents an object renaming event type.
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington public static final int OBJECT_RENAMED = PersistentSearchChangeType.RENAMED;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /* The above constants OBJECT_ADDED, OBJECT_CHANGED, OBJECT_REMOVED,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster OBJECT_RENAMED should be kept in synch with the corresponding
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster constants defined in com.iplanet.services.ldap.event.IDSEventListener
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster OBJECT_ADDED=IDSEventListener.CHANGE_ADD
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster OBJECT_CHANGED=IDSEventListener.CHANGE_MODIFY
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster OBJECT_REMOVED=IDSEventListener.CHANGE_DELETE
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster OBJECT_RENAMED=IDSEventListener.CHANGE_MOD_LOCATION
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Constructs an event object.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * This constructor accepts the event source object and passes it onto the
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * base class constructor.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * @param source The source object that caused the event. The source object
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * could be User, Role, Group, Organization, etc., from this
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * SDK. The source could also be a String
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * representing the DN (distinguished name) of the source
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * @param eventType type of event.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster this.sourceType = determineSourceType(dsEvent);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster this.sourceDN = ((AMEvent) source).getSourceDN();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster this.sourceType = AMObject.UNKNOWN_OBJECT_TYPE;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster this.sourceType = AMObject.UNKNOWN_OBJECT_TYPE;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster protected AMEvent(Object source, int eventType, String sourceDN,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Protected constructor for package use only
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Returns the distinguished name of the source object in a String format.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Use this method if no searching or parsing operations need to be
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * performed on the distinguished name.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * @return distinguished name of the source object.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Returns the type of the event.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * @return Returns one of the
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * following possible values:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li><code>AMEvent.OBJECT_ADDED</code>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li><code>AMEvent.OBJECT_CHANGED</code>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li><code>AMEvent.OBJECT_REMOVED</code>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li><code>AMEvent.OBJECT_RENAMED</code>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li><code>AMEvent.OBJECT_EXPIRED</code> </ul>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Returns the type of the source object that caused the event.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * @return Returns one of the following possible values:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li> <code>AMObject.USER</code>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li> <code>AMObject.ROLE</code>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li> <code>AMObject.FILTERED_ROLE</code>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li> <code>AMObject.GROUP</code>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li> <code>AMObject.DYNAMIC_GROUP</code>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li> <code>AMObject.ASSIGNABLE_DYNAMIC_GROUP</code>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li> <code>AMObject.ORGANIZATION</code>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li> <code>AMObject.PEOPLE_CONTAINER</code>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li> <code>AMObject.GROUP_CONTAINER</code>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li> <code>AMObject.ORGINATIONAL_UNIT</code>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li> <code>AMObject.UNKNOWN_OBJECT_TYPE</code> if source unknown
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private int determineSourceType(DSEvent source) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // getClassName() returns all the object classes as a comma separated
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String objectClasses = source.getClassName().toLowerCase();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster .getObjectClass(AMObject.FILTERED_ROLE)) != -1) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster .getObjectClass(AMObject.ORGANIZATION)) != -1) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster .getObjectClass(AMObject.ASSIGNABLE_DYNAMIC_GROUP)) != -1) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster .getObjectClass(AMObject.DYNAMIC_GROUP)) != -1) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster .getObjectClass(AMObject.PEOPLE_CONTAINER)) != -1) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster .getObjectClass(AMObject.GROUP_CONTAINER)) != -1) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster .getObjectClass(AMObject.ORGANIZATIONAL_UNIT)) != -1) {