use of com.sun.jdo.spi.persistence.support.sqlstore.query.util.type.Type in project Payara by payara.
the class ParameterTable method getParameterInfoForParamName.
/**
* Returns the parameter info for the specified parameter name
* and associated field.
* If the associated field is not known, then null is used as
* input parameter.
* @param paramName
* @param associatedField
* @return corresponding parameterInfo
*/
public ParameterInfo getParameterInfoForParamName(String paramName, String associatedField) {
int index = names.indexOf(paramName);
Type type = (Type) types.get(index);
return new ParameterInfo(index, type.getEnumType(), associatedField);
}
use of com.sun.jdo.spi.persistence.support.sqlstore.query.util.type.Type in project Payara by payara.
the class ParameterTable method defineValueByIndex.
/**
*/
private void defineValueByIndex(int index, Object value) {
// index < 0 => implementation error
if (index < 0)
throw new JDOFatalInternalException(I18NHelper.getMessage(messages, // NOI18N
"jqlc.parametertable.definevaluebyindex.wrongindex", String.valueOf(index)));
// index > type.size => too many actual parameters
if (index >= types.size())
throw new JDOQueryException(// NOI18N
I18NHelper.getMessage(messages, "jqlc.parametertable.definevaluebyindex.wrongnumberofargs"));
// check type compatibility of actual and formal parameter
Class formalType = ((Type) types.get(index)).getJavaClass();
if (!isCompatibleValue(formalType, value)) {
String actualTypeName = ((value == null) ? "<type of null>" : value.getClass().getName());
throw new JDOQueryException(// NOI18N
I18NHelper.getMessage(// NOI18N
messages, // NOI18N
"jqlc.parametertable.definevaluebyindex.typemismatch", actualTypeName, formalType.getName()));
}
// everything is ok => set the actual parameters's value
values.set(index, value);
}
Aggregations