/******************************************************************************* | |
* Copyright (c) 2006, 2012 Oracle Corporation and others. | |
* All rights reserved. This program and the accompanying materials | |
* are made available under the terms of the Eclipse Public License v1.0 | |
* which accompanies this distribution, and is available at | |
* http://www.eclipse.org/legal/epl-v10.html | |
* | |
* Contributors: | |
* Oracle Corporation - initial API and implementation | |
*******************************************************************************/ | |
package org.eclipse.bpel.ui.expressions; | |
import java.util.HashMap; | |
import java.util.Map; | |
import org.eclipse.bpel.fnmeta.FunctionLibrary; | |
import org.eclipse.bpel.fnmeta.FunctionRegistry; | |
import org.eclipse.bpel.fnmeta.model.Function; | |
/** | |
* @author Michal Chmielewski (michal.chmielewski@oracle.com) | |
* @date Aug 3, 2007 | |
* | |
*/ | |
@SuppressWarnings("nls") | |
public class Functions { | |
protected Map<String,Function> allFunctions = new HashMap<String,Function>(); | |
static Map<String,Functions> MAP = new HashMap<String,Functions>(); | |
private Functions ( String namespace ) { | |
FunctionRegistry registry = FunctionLibrary.INSTANCE.getRegistryForLanguage( namespace ); | |
for( Function fn : registry.getRegistry() ) { | |
allFunctions.put(fn.getName(), fn); | |
} | |
}; | |
/** | |
* @param namespace | |
* @return Return the singleton | |
*/ | |
static public final Functions getInstance ( String namespace ) { | |
Functions funcs = MAP.get(namespace); | |
if (funcs == null) { | |
synchronized (MAP) { | |
funcs = new Functions(namespace); | |
MAP.put(namespace, funcs); | |
} | |
} | |
return funcs; | |
} | |
/** | |
* @return all registered functions. | |
* | |
*/ | |
public Map<String,Function> getFunctions() { | |
return allFunctions; | |
} | |
} |