bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington/*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Copyright (c) 2005 Sun Microsystems Inc. All Rights Reserved
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
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 *
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 * opensso/legal/CDDLv1.0.txt
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * See the License for the specific language governing
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * permission and limitations under the License.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * When distributing Covered Code, include this CDDL
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Header Notice in each file and include the License file
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * at opensso/legal/CDDLv1.0.txt.
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 *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * $Id: AMEvent.java,v 1.8 2009/01/28 05:34:47 ww203982 Exp $
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington * Portions Copyright 2015 ForgeRock AS.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterpackage com.iplanet.am.sdk;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport java.util.EventObject;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterimport com.iplanet.services.ldap.event.DSEvent;
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunningtonimport org.forgerock.openam.ldap.PersistentSearchChangeType;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster/** <p>Represents an event fired by Sun Java System Access Manager SDK.</p>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <p><code>AMEvent</code>'s state consists of the following:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <ul>
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 * event.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li>The event type
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <li>The source object type: Type of the underlying object that caused
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * event.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * </ul>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * @deprecated As of Sun Java System Access Manager 7.1.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * @supported.all.api
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterpublic class AMEvent extends EventObject {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private static final long serialVersionUID = 6448554078141700417L;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Represents an object addition event type.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington public static final int OBJECT_ADDED = PersistentSearchChangeType.ADDED;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Represents an object change event type.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington public static final int OBJECT_CHANGED = PersistentSearchChangeType.MODIFIED;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Represents an object removal event type.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington public static final int OBJECT_REMOVED = PersistentSearchChangeType.REMOVED;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /** Represents an object expiration event type. Occurs when the TTL for the
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * object data is over. */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public static final int OBJECT_EXPIRED = 9;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Represents an object renaming event type.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington public static final int OBJECT_RENAMED = PersistentSearchChangeType.RENAMED;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
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
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 */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private int eventType;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private String sourceDN;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private int sourceType;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
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 *
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 * object.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * @param eventType type of event.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public AMEvent(Object source, int eventType) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster super(source);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (source instanceof DSEvent) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster DSEvent dsEvent = (DSEvent) source;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster this.sourceDN = dsEvent.getID();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster this.sourceType = determineSourceType(dsEvent);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (source instanceof AMEvent) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster this.sourceDN = ((AMEvent) source).getSourceDN();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster this.sourceType = AMObject.UNKNOWN_OBJECT_TYPE;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster this.sourceDN = null;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster this.sourceType = AMObject.UNKNOWN_OBJECT_TYPE;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster this.eventType = eventType;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster protected AMEvent(Object source, int eventType, String sourceDN,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster int sourceType) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster super(source);
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster this.eventType = eventType;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster this.sourceDN = sourceDN;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster this.sourceType = sourceType;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Protected constructor for package use only
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster protected AMEvent(String dn) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster super(new String(""));
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster this.eventType = OBJECT_CHANGED;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster sourceDN = dn;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
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 *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * @return distinguished name of the source object.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public String getSourceDN() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return sourceDN;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Returns the type of the event.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster *
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * @return Returns one of the
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * following possible values:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <ul>
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 */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public int getEventType() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return eventType;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster /**
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Returns the type of the source object that caused the event.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <p>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * @return Returns one of the following possible values:
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * <ul>
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 * </ul>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster public int getSourceType() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return sourceType;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster private int determineSourceType(DSEvent source) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // getClassName() returns all the object classes as a comma separated
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster // String
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (source == null) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return AMObject.UNKNOWN_OBJECT_TYPE;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster String objectClasses = source.getClassName().toLowerCase();
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster .getObjectClass(AMObject.USER)) != -1) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return AMObject.USER;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster .getObjectClass(AMObject.ROLE)) != -1) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return AMObject.ROLE;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster .getObjectClass(AMObject.FILTERED_ROLE)) != -1) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return AMObject.FILTERED_ROLE;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster .getObjectClass(AMObject.ORGANIZATION)) != -1) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return AMObject.ORGANIZATION;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster .getObjectClass(AMObject.GROUP)) != -1) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return AMObject.GROUP;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster .getObjectClass(AMObject.ASSIGNABLE_DYNAMIC_GROUP)) != -1) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return AMObject.ASSIGNABLE_DYNAMIC_GROUP;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster .getObjectClass(AMObject.DYNAMIC_GROUP)) != -1) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return AMObject.DYNAMIC_GROUP;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster .getObjectClass(AMObject.PEOPLE_CONTAINER)) != -1) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return AMObject.PEOPLE_CONTAINER;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster .getObjectClass(AMObject.GROUP_CONTAINER)) != -1) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return AMObject.GROUP_CONTAINER;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster .getObjectClass(AMObject.ORGANIZATIONAL_UNIT)) != -1) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return AMObject.ORGANIZATIONAL_UNIT;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster } else if (objectClasses.indexOf(AMObjectClassManager
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster .getObjectClass(AMObject.RESOURCE)) != -1) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return AMObject.RESOURCE;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster return AMObject.UNKNOWN_OBJECT_TYPE;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster}