/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at * trunk/opends/resource/legal-notices/OpenDS.LICENSE * or https://OpenDS.dev.java.net/OpenDS.LICENSE. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, * add the following below this CDDL HEADER, with the fields enclosed * by brackets "[]" replaced with your own identifying information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * * Portions Copyright 2006-2007 Sun Microsystems, Inc. */ package org.opends.dsml.protocol; import com.sun.xml.bind.marshaller.NamespacePrefixMapper; /** * This class provides a custom namespace mapping. */ class NamespacePrefixMapperImpl extends NamespacePrefixMapper { /** * Returns a preferred prefix for the given namespace URI. * * This method is intended to be overrided by a derived class. * * @param namespaceUri * The namespace URI for which the prefix needs to be found. * Never be null. "" is used to denote the default namespace. * @param suggestion * When the content tree has a suggestion for the prefix * to the given namespaceUri, that suggestion is passed as a * parameter. Typicall this value comes from the QName.getPrefix * to show the preference of the content tree. This parameter * may be null, and this parameter may represent an already * occupied prefix. * @param requirePrefix * If this method is expected to return non-empty prefix. * When this flag is true, it means that the given namespace URI * cannot be set as the default namespace. * * @return * null if there's no prefered prefix for the namespace URI. * In this case, the system will generate a prefix. * * Otherwise the system will try to use the returned prefix, * but generally there's no guarantee if the prefix will be * actually used or not. * * If this method returns "" when requirePrefix=true, the return * value will be ignored and the system will generate one. */ public String getPreferredPrefix(String namespaceUri, String suggestion, boolean requirePrefix) { // Map this namespace to "xsi" if( "http://www.w3.org/2001/XMLSchema-instance".equals(namespaceUri) ) return "xsi"; // Map this namespace to dsml. if( "urn:oasis:names:tc:DSML:2:0:core".equals(namespaceUri) ) return "dsml"; // Just use the default suggestion, whatever it may be. return suggestion; } }