/*******************************************************************************
 * Copyright (c) 1998, 2013 Oracle and/or its affiliates. All rights reserved.
 * This program and the accompanying materials are made available under the 
 * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
 * which accompanies this distribution. 
 * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
 * and the Eclipse Distribution License is available at 
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * Contributors:
 *     Denise Smith - 2.3.3
 ******************************************************************************/
package org.eclipse.persistence.internal.oxm.record.namespaces;

import java.util.Map;

import org.eclipse.persistence.oxm.NamespacePrefixMapper;

/**
 * Implementation of NamespacePrefixMapper.  Allows user to set a Map<String, String>
 * or uris to prefixes for to be used during marshal/unmarshal.
 * @since 2.3.3
 */
public class MapNamespacePrefixMapper extends NamespacePrefixMapper{

	private Map<String, String> urisToPrefixes;
		
	public MapNamespacePrefixMapper(Map<String, String> urisToPrefixes){
		this.urisToPrefixes = urisToPrefixes;		
	}
	
	@Override
	public String getPreferredPrefix(String namespaceUri, String suggestion,
			boolean requirePrefix) {
		if(urisToPrefixes == null){
			return null;
		}else{
			return urisToPrefixes.get(namespaceUri);
		}
	}
	
	public String[] getPreDeclaredNamespaceUris() {
	
		String[] uris = new String[urisToPrefixes.size()];		
		return urisToPrefixes.keySet().toArray(uris);
	}	

}
