/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2005 Sun Microsystems Inc. All Rights Reserved * * The contents of this file are subject to the terms * of the Common Development and Distribution License * (the License). You may not use this file except in * compliance with the License. * * You can obtain a copy of the License at * https://opensso.dev.java.net/public/CDDLv1.0.html or * opensso/legal/CDDLv1.0.txt * See the License for the specific language governing * permission and limitations under the License. * * When distributing Covered Code, include this CDDL * Header Notice in each file and include the License file * at opensso/legal/CDDLv1.0.txt. * If applicable, add the following below the CDDL Header, * with the fields enclosed by brackets [] replaced by * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * * $Id: AMEvent.java,v 1.8 2009/01/28 05:34:47 ww203982 Exp $ * * Portions Copyright 2015 ForgeRock AS. */ package com.iplanet.am.sdk; import java.util.EventObject; import com.iplanet.services.ldap.event.DSEvent; import org.forgerock.openam.ldap.PersistentSearchChangeType; /**

Represents an event fired by Sun Java System Access Manager SDK.

* *

AMEvent's state consists of the following: *

* * @deprecated As of Sun Java System Access Manager 7.1. * @supported.all.api */ public class AMEvent extends EventObject { private static final long serialVersionUID = 6448554078141700417L; /** * Represents an object addition event type. */ public static final int OBJECT_ADDED = PersistentSearchChangeType.ADDED; /** * Represents an object change event type. */ public static final int OBJECT_CHANGED = PersistentSearchChangeType.MODIFIED; /** * Represents an object removal event type. */ public static final int OBJECT_REMOVED = PersistentSearchChangeType.REMOVED; /** Represents an object expiration event type. Occurs when the TTL for the * object data is over. */ public static final int OBJECT_EXPIRED = 9; /** * Represents an object renaming event type. */ public static final int OBJECT_RENAMED = PersistentSearchChangeType.RENAMED; /* The above constants OBJECT_ADDED, OBJECT_CHANGED, OBJECT_REMOVED, OBJECT_RENAMED should be kept in synch with the corresponding constants defined in com.iplanet.services.ldap.event.IDSEventListener OBJECT_ADDED=IDSEventListener.CHANGE_ADD OBJECT_CHANGED=IDSEventListener.CHANGE_MODIFY OBJECT_REMOVED=IDSEventListener.CHANGE_DELETE OBJECT_RENAMED=IDSEventListener.CHANGE_MOD_LOCATION */ private int eventType; private String sourceDN; private int sourceType; /** * Constructs an event object. * This constructor accepts the event source object and passes it onto the * base class constructor. * * @param source The source object that caused the event. The source object * could be User, Role, Group, Organization, etc., from this * SDK. The source could also be a String * representing the DN (distinguished name) of the source * object. * @param eventType type of event. */ public AMEvent(Object source, int eventType) { super(source); if (source instanceof DSEvent) { DSEvent dsEvent = (DSEvent) source; this.sourceDN = dsEvent.getID(); this.sourceType = determineSourceType(dsEvent); } else if (source instanceof AMEvent) { this.sourceDN = ((AMEvent) source).getSourceDN(); this.sourceType = AMObject.UNKNOWN_OBJECT_TYPE; } else { this.sourceDN = null; this.sourceType = AMObject.UNKNOWN_OBJECT_TYPE; } this.eventType = eventType; } protected AMEvent(Object source, int eventType, String sourceDN, int sourceType) { super(source); this.eventType = eventType; this.sourceDN = sourceDN; this.sourceType = sourceType; } /** * Protected constructor for package use only */ protected AMEvent(String dn) { super(new String("")); this.eventType = OBJECT_CHANGED; sourceDN = dn; } /** * Returns the distinguished name of the source object in a String format. * Use this method if no searching or parsing operations need to be * performed on the distinguished name. * * @return distinguished name of the source object. */ public String getSourceDN() { return sourceDN; } /** * Returns the type of the event. * * @return Returns one of the * following possible values: * */ public int getEventType() { return eventType; } /** * Returns the type of the source object that caused the event. *

* @return Returns one of the following possible values: *

*/ public int getSourceType() { return sourceType; } private int determineSourceType(DSEvent source) { // getClassName() returns all the object classes as a comma separated // String if (source == null) { return AMObject.UNKNOWN_OBJECT_TYPE; } String objectClasses = source.getClassName().toLowerCase(); if (objectClasses.indexOf(AMObjectClassManager .getObjectClass(AMObject.USER)) != -1) { return AMObject.USER; } else if (objectClasses.indexOf(AMObjectClassManager .getObjectClass(AMObject.ROLE)) != -1) { return AMObject.ROLE; } else if (objectClasses.indexOf(AMObjectClassManager .getObjectClass(AMObject.FILTERED_ROLE)) != -1) { return AMObject.FILTERED_ROLE; } else if (objectClasses.indexOf(AMObjectClassManager .getObjectClass(AMObject.ORGANIZATION)) != -1) { return AMObject.ORGANIZATION; } else if (objectClasses.indexOf(AMObjectClassManager .getObjectClass(AMObject.GROUP)) != -1) { return AMObject.GROUP; } else if (objectClasses.indexOf(AMObjectClassManager .getObjectClass(AMObject.ASSIGNABLE_DYNAMIC_GROUP)) != -1) { return AMObject.ASSIGNABLE_DYNAMIC_GROUP; } else if (objectClasses.indexOf(AMObjectClassManager .getObjectClass(AMObject.DYNAMIC_GROUP)) != -1) { return AMObject.DYNAMIC_GROUP; } else if (objectClasses.indexOf(AMObjectClassManager .getObjectClass(AMObject.PEOPLE_CONTAINER)) != -1) { return AMObject.PEOPLE_CONTAINER; } else if (objectClasses.indexOf(AMObjectClassManager .getObjectClass(AMObject.GROUP_CONTAINER)) != -1) { return AMObject.GROUP_CONTAINER; } else if (objectClasses.indexOf(AMObjectClassManager .getObjectClass(AMObject.ORGANIZATIONAL_UNIT)) != -1) { return AMObject.ORGANIZATIONAL_UNIT; } else if (objectClasses.indexOf(AMObjectClassManager .getObjectClass(AMObject.RESOURCE)) != -1) { return AMObject.RESOURCE; } return AMObject.UNKNOWN_OBJECT_TYPE; } }