/******************************************************************************* * Copyright (c) 2006 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.validator.adapters; import javax.xml.namespace.QName; import org.eclipse.bpel.fnmeta.model.Argument; import org.eclipse.bpel.fnmeta.model.Function; import org.eclipse.bpel.fnmeta.model.Optionality; import org.eclipse.bpel.model.adapters.AbstractStatefulAdapter; import org.eclipse.bpel.validator.model.IFunctionMeta; /** * @author Michal Chmielewski (michal.chmielewski@oracle.com) * @date Aug 7, 2007 */ public class FunctionAdapter extends AbstractStatefulAdapter implements IFunctionMeta { /** * @see org.eclipse.bpel.validator.model.IFunctionMeta#getClassName() */ public String getClassName() { return getTarget(null,Function.class).getClassName(); } /** * @see org.eclipse.bpel.validator.model.IFunctionMeta#getComment() */ public String getComment() { return getTarget(null,Function.class).getHelp(); } /** * @see org.eclipse.bpel.validator.model.IFunctionMeta#getDeprecateComment() */ public String getDeprecateComment() { return getTarget(null,Function.class).getDeprecateComment(); } /** * @see org.eclipse.bpel.validator.model.IFunctionMeta#getMaxArity() */ public int getMaxArity() { int cnt = 0; Function fn = getTarget(null,Function.class) ; for(Argument a : fn.getArguments()) { if (a.getOptionality() == Optionality.OPTIONAL_MANY) { return Integer.MAX_VALUE; } cnt += 1; } return cnt; } /** * @see org.eclipse.bpel.validator.model.IFunctionMeta#getMinArity() */ public int getMinArity() { Function fn = getTarget(null,Function.class) ; int cnt = 0; for(Argument a : fn.getArguments()) { if (a.getOptionality() == Optionality.REQUIRED) { cnt += 1; } } return cnt; } /** * @see org.eclipse.bpel.validator.model.IFunctionMeta#getName() */ public String getName() { return getTarget(null,Function.class).getName(); } /** * @see org.eclipse.bpel.validator.model.IFunctionMeta#getNamespacePrefix() */ public String getNamespacePrefix() { return getTarget(null,Function.class).getPrefix(); } /** * @see org.eclipse.bpel.validator.model.IFunctionMeta#getNamespaceUri() */ public String getNamespaceUri() { return getTarget(null,Function.class).getNamespace(); } QName fFunctionQName = null; /** * @see org.eclipse.bpel.validator.model.IFunctionMeta#getQName() */ public QName getQName() { if (fFunctionQName != null) { return fFunctionQName; } Function fn = getTarget(null,Function.class) ; fFunctionQName = new QName(fn.getNamespace(),fn.getName(),fn.getPrefix() ); return fFunctionQName; } /** * @see org.eclipse.bpel.validator.model.IFunctionMeta#getReturnType() */ @SuppressWarnings("nls") public Class<?> getReturnType() { Function fn = getTarget(null,Function.class) ; if ("string".equalsIgnoreCase(fn.getReturnType())) { return String.class; } else if ("boolean".equalsIgnoreCase(fn.getReturnType())) { return Boolean.class; } else if ("number".equalsIgnoreCase(fn.getReturnType())) { return Number.class; } return null; } /** * @see org.eclipse.bpel.validator.model.IFunctionMeta#isDeprecated() */ @SuppressWarnings("boxing") public boolean isDeprecated() { return getTarget(null,Function.class).getIsDeprecated(); } }