/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.metamodels.function.util; import java.util.Iterator; import org.teiid.designer.metamodels.function.FunctionParameter; import org.teiid.designer.metamodels.function.ReturnParameter; import org.teiid.designer.metamodels.function.ScalarFunction; /** * FunctionUtil * * @since 8.0 */ public class FunctionUtil { private FunctionUtil() { super(); } public static String getSignature( final ScalarFunction function ) { final String name = function.getName(); final StringBuffer sb = new StringBuffer(); sb.append(name); // Add the parameters ... sb.append('('); boolean isFirst = true; final Iterator iter = function.getInputParameters().iterator(); while (iter.hasNext()) { final FunctionParameter param = (FunctionParameter)iter.next(); if (!isFirst) { sb.append(','); } final String paramSig = getSignature(param); sb.append(paramSig); isFirst = false; } sb.append(')'); // Add the return parameter ... final ReturnParameter returnParam = function.getReturnParameter(); if (returnParam == null) { sb.append(':'); sb.append("void"); //$NON-NLS-1$ } else { sb.append(':'); final String paramSig = getSignature(returnParam); sb.append(paramSig); } return sb.toString(); } public static String getSignature( final FunctionParameter param ) { final String type = param.getType(); return type; } public static String getSignature( final ReturnParameter param ) { final String type = param.getType(); return type; } public static String getValidationSignature( final ScalarFunction function ) { // NO_UCD final String name = function.getInvocationClass(); final StringBuffer sb = new StringBuffer(); sb.append(name); sb.append('#'); sb.append(function.getInvocationMethod()); // Add the parameters ... sb.append('('); boolean isFirst = true; final Iterator iter = function.getInputParameters().iterator(); while (iter.hasNext()) { final FunctionParameter param = (FunctionParameter)iter.next(); if (!isFirst) { sb.append(','); } final String paramSig = getValidationSignature(param); sb.append(paramSig); isFirst = false; } sb.append(')'); // Add the return parameter ... final ReturnParameter returnParam = function.getReturnParameter(); if (returnParam == null) { sb.append(':'); sb.append("void"); //$NON-NLS-1$ } else { sb.append(':'); final String paramSig = getValidationSignature(returnParam); sb.append(paramSig); } return sb.toString(); } public static String getValidationSignature( final FunctionParameter param ) { final String type = param.getType(); return type; } public static String getValidationSignature( final ReturnParameter param ) { final String type = param.getType(); return type; } }