if (roleOrInfobaseUser != null && !(roleOrInfobaseUser instanceof OCInfoBaseUser || roleOrInfobaseUser instanceof OCRoleMetadataObject)) {
throw new IllegalArgumentException("Wrong [roleOrInfobaseUser] parameter - correct type must be used: OCInfoBaseUser or OCRoleMetadataObject");
}
Object[] callParams = new Object[]{
new JIVariant(right.name()),
new JIVariant(ocObject2Dispatch(metadataObject)),
new JIVariant(roleOrInfobaseUser != null ? roleOrInfobaseUser.dispatch() : null),
JIVariant.makeVariant(standardAttributeStandardTabularSection)};
return callMethodA("AccessRight", callParams)[0].getObjectAsBoolean();
}