/* * Copyright (c) 2004, Stefan Walter * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above * copyright notice, this list of conditions and the * following disclaimer. * * Redistributions in binary form must reproduce the * above copyright notice, this list of conditions and * the following disclaimer in the documentation and/or * other materials provided with the distribution. * * The names of contributors to this software may not be * used to endorse or promote products derived from this * software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. * * * CONTRIBUTORS * Stef Walter * */ package com.memberwebs.ldapxml; import org.w3c.dom.Element; import com.novell.ldap.LDAPEntry; /** * Interface for hooking into LX processing. * * @author stef@memberwebs.com * @version 0.5 */ public interface LXHook { /** * Initialize this hook. The parameter is passed through to * this object by creating an LXSpecs object, using * LXSpecs.setData to set custom data and then one of the * LXReader methods that allow passing in of a LXSpecs object. * * The custom data will then be passed to this method the * first time that this hook is used. * * @param obj An initialization parameter */ public void initialize(Object obj) throws LXException; /** * Allows pre processing of an entry retrieved from LDAP. * * By modifying the passed LDAPEntry object, you can affect the * way the map handles your data. Returning false, will cause * this entry to be ignored as if it didn't exist. * * @param entry The LDAP entry retrieved * @return If false then this element will not be included. */ public boolean prefix(LDAPEntry entry) throws LXException; /** * Allows post processing of an element retrieved from LDAP. * * You can modify the final constructed XML element at this * point. By returning false you cause this element to be discarded. * * @param entry The LDAP entry retrieved. * @param el The DOM element constructed. * @return If false then this element. */ public boolean postfix(LDAPEntry entry, Element el) throws LXException; }