+ ": entries not ordererd");
}
String getterName = "get" + info.getName();
Method getter = findMethod(methods, getterName);
Type t = info.getUnoType();
ITypeDescription type = t == null
? getTypeDescription(getter.getReturnType(), info)
: getDefinitely(t);
directList.add(
new MethodDescription(
getterName, index++ + methodOffset, false,
new ITypeDescription[0], new ITypeDescription[0],
type, getter));
if (!info.isReadOnly()) {
String setterName = "set" + info.getName();
Method setter = findMethod(methods, setterName);
directList.add(
new MethodDescription(
setterName, index++ + methodOffset, false,
new ITypeDescription[] { type },
new ITypeDescription[] { null },
getDefinitely(Type.VOID), setter));
}
} else {
MethodTypeInfo info = (MethodTypeInfo) infos[i++];
if (info.getIndex() != index) {
throw new IllegalArgumentException(
"Bad UNOTYPEINFO for " + zClass
+ ": entries not ordererd");
}
Method method = findMethod(methods, info.getName());
Class[] params = method.getParameterTypes();
ITypeDescription[] in = new ITypeDescription[params.length];
ITypeDescription[] out
= new ITypeDescription[params.length];
for (int j = 0; j < params.length; ++j) {
ParameterTypeInfo p = null;
if (i < infoCount
&& infos[i] instanceof ParameterTypeInfo
&& ((ParameterTypeInfo) infos[i]).getIndex() == j)
{
p = (ParameterTypeInfo) infos[i++];
}
Type pt = p == null ? null : p.getUnoType();
ITypeDescription d = pt == null
? getTypeDescription(params[j], p)
: getDefinitely(pt);
if (p == null || p.isIN()) {
in[j] = d;
}