static NativeDataConverter getParameterConverter(Type type, Enums enums) { if (isEnumConversionRequired(type, enums)) { NativeDataConverter converter = enumConverters.get(enums); if (converter != null) { return converter; } enumConverters.put(enums, converter = new IntOrEnumConverter(NativeType.INT, enums)); return converter; } else { return getParameterConverter(type); } }
static NativeDataConverter getParameterConverter(Type type, Enums enums) { if (isEnumConversionRequired(type, enums)) { NativeDataConverter converter = enumConverters.get(enums); if (converter != null) { return converter; } enumConverters.put(enums, converter = new IntOrEnumConverter(NativeType.INT, enums)); return converter; } else { return getParameterConverter(type); } }
@Deprecated static NativeDataConverter getParameterConverter(Type type, RubyHash enums) { if (isEnumConversionRequired(type, enums)) { NativeDataConverter converter = enumConverters.get(enums); if (converter != null) { return converter; } enumConverters.put(enums, converter = new IntOrEnumConverter(NativeType.INT, enums)); return converter; } else { return getParameterConverter(type); } }
static NativeDataConverter getParameterConverter(Type type, RubyHash enums) { if (isEnumConversionRequired(type, enums)) { NativeDataConverter converter = enumConverters.get(enums); if (converter != null) { return converter; } enumConverters.put(enums, converter = new IntOrEnumConverter(NativeType.INT, enums)); return converter; } else { return getParameterConverter(type); } }
@Deprecated static NativeDataConverter getParameterConverter(Type type, RubyHash enums) { if (isEnumConversionRequired(type, enums)) { NativeDataConverter converter = enumConverters.get(enums); if (converter != null) { return converter; } enumConverters.put(enums, converter = new IntOrEnumConverter(NativeType.INT, enums)); return converter; } else { return getParameterConverter(type); } }
static NativeDataConverter getParameterConverter(Type type, RubyHash enums) { if (isEnumConversionRequired(type, enums)) { NativeDataConverter converter = enumConverters.get(enums); if (converter != null) { return converter; } enumConverters.put(enums, converter = new IntOrEnumConverter(NativeType.INT, enums)); return converter; } else { return getParameterConverter(type); } }
@SuppressWarnings("deprecation") private static NativeDataConverter getParameterConverter(Signature signature, int i) { return signature.getParameterCount() > i ? DataConverters.getParameterConverter(signature.getParameterType(i), signature.getEnums()) : null; }
@SuppressWarnings("deprecation") private static NativeDataConverter getParameterConverter(Signature signature, int i) { return signature.getParameterCount() > i ? DataConverters.getParameterConverter(signature.getParameterType(i), signature.getEnums()) : null; }
private static NativeDataConverter getParameterConverter(Signature signature, int i) { return signature.getParameterCount() > i ? DataConverters.getParameterConverter(signature.getParameterType(i), signature.getEnums()) : null; }
private static NativeDataConverter getParameterConverter(Signature signature, int i) { return signature.getParameterCount() > i ? DataConverters.getParameterConverter(signature.getParameterType(i), signature.getEnums()) : null; }
@SuppressWarnings("deprecation") private static ParameterMarshaller newConvertingMarshallerWithHash(Type type, CallingConvention convention, IRubyObject enums, MappedType ctype) { return new ConvertingMarshaller( getMarshaller(ctype.getRealType(), convention, enums.isNil() ? null : (RubyHash)enums), DataConverters.getParameterConverter(type, enums.isNil() ? null : (RubyHash)enums)); }
@SuppressWarnings("deprecation") private static ParameterMarshaller newConvertingMarshallerWithHash(Type type, CallingConvention convention, IRubyObject enums, MappedType ctype) { return new ConvertingMarshaller( getMarshaller(ctype.getRealType(), convention, enums.isNil() ? null : (RubyHash)enums), DataConverters.getParameterConverter(type, enums.isNil() ? null : (RubyHash)enums)); }
/** * Gets a marshaller to convert from a ruby type to a native type. * * @param type The native type to convert to. * @return A new <tt>Marshaller</tt> */ static ParameterMarshaller getMarshaller(Type type, CallingConvention convention, IRubyObject enums) { if (type instanceof Type.Builtin) { return enums != null && !enums.isNil() ? getEnumMarshaller(type, convention, enums) : getMarshaller(type.getNativeType()); } else if (type instanceof org.jruby.ext.ffi.CallbackInfo) { return new ConvertingMarshaller(getMarshaller(type.getNativeType()), DataConverters.getParameterConverter(type, null)); } else if (type instanceof org.jruby.ext.ffi.StructByValue) { return new StructByValueMarshaller((org.jruby.ext.ffi.StructByValue) type); } else if (type instanceof org.jruby.ext.ffi.MappedType) { MappedType ctype = (MappedType) type; return new ConvertingMarshaller( getMarshaller(ctype.getRealType(), convention, enums), DataConverters.getParameterConverter(type, enums instanceof RubyHash ? (RubyHash) enums : null)); } else { return null; } }
/** * Gets a marshaller to convert from a ruby type to a native type. * * @param type The native type to convert to. * @return A new <tt>Marshaller</tt> */ static ParameterMarshaller getMarshaller(Type type, CallingConvention convention, IRubyObject enums) { if (type instanceof Type.Builtin) { return enums != null && !enums.isNil() ? getEnumMarshaller(type, convention, enums) : getMarshaller(type.getNativeType()); } else if (type instanceof org.jruby.ext.ffi.CallbackInfo) { return new ConvertingMarshaller(getMarshaller(type.getNativeType()), DataConverters.getParameterConverter(type, null)); } else if (type instanceof org.jruby.ext.ffi.StructByValue) { return new StructByValueMarshaller((org.jruby.ext.ffi.StructByValue) type); } else if (type instanceof org.jruby.ext.ffi.MappedType) { MappedType ctype = (MappedType) type; return new ConvertingMarshaller( getMarshaller(ctype.getRealType(), convention, enums), DataConverters.getParameterConverter(type, enums instanceof RubyHash ? (RubyHash) enums : null)); } else { return null; } }
/** * Gets a marshaller to convert from a ruby type to a native type. * * @param type The native type to convert to. * @param enums The enum map * @return A new <tt>ParameterMarshaller</tt> */ static ParameterMarshaller getEnumMarshaller(Type type, CallingConvention convention, IRubyObject enums) { if (!(enums instanceof RubyHash)) { throw type.getRuntime().newArgumentError("wrong argument type " + enums.getMetaClass().getName() + " (expected Hash)"); } NativeDataConverter converter = DataConverters.getParameterConverter(type, (RubyHash) enums); ParameterMarshaller marshaller = getMarshaller(type.getNativeType()); return converter != null ? new ConvertingMarshaller(marshaller, converter) : marshaller; }
/** * Gets a marshaller to convert from a ruby type to a native type. * * @param type The native type to convert to. * @param enums The enum map * @return A new <tt>ParameterMarshaller</tt> */ static ParameterMarshaller getEnumMarshaller(Type type, CallingConvention convention, IRubyObject enums) { if (!(enums instanceof RubyHash)) { throw type.getRuntime().newArgumentError("wrong argument type " + enums.getMetaClass().getName() + " (expected Hash)"); } NativeDataConverter converter = DataConverters.getParameterConverter(type, (RubyHash) enums); ParameterMarshaller marshaller = getMarshaller(type.getNativeType()); return converter != null ? new ConvertingMarshaller(marshaller, converter) : marshaller; }
/** * Gets a marshaller to convert from a ruby type to a native type. * * @param type The native type to convert to. * @param enums The enum map * @return A new <tt>ParameterMarshaller</tt> */ static ParameterMarshaller getEnumMarshaller(Type type, CallingConvention convention, IRubyObject enums) { if (enums != null && !enums.isNil() && !(enums instanceof RubyHash || enums instanceof Enums)) { throw type.getRuntime().newArgumentError("wrong argument type " + enums.getMetaClass().getName() + " (expected Hash or Enums)"); } NativeDataConverter converter = DataConverters.getParameterConverter(type, (Enums)enums); ParameterMarshaller marshaller = getMarshaller(type.getNativeType()); return converter != null ? new ConvertingMarshaller(marshaller, converter) : marshaller; }
/** * Gets a marshaller to convert from a ruby type to a native type. * * @param type The native type to convert to. * @param enums The enum map * @return A new <tt>ParameterMarshaller</tt> */ static ParameterMarshaller getEnumMarshaller(Type type, CallingConvention convention, IRubyObject enums) { if (enums != null && !enums.isNil() && !(enums instanceof RubyHash || enums instanceof Enums)) { throw type.getRuntime().newArgumentError("wrong argument type " + enums.getMetaClass().getName() + " (expected Hash or Enums)"); } NativeDataConverter converter = DataConverters.getParameterConverter(type, (Enums)enums); ParameterMarshaller marshaller = getMarshaller(type.getNativeType()); return converter != null ? new ConvertingMarshaller(marshaller, converter) : marshaller; }
DataConverters.getParameterConverter(type, (Enums)null)); return new ConvertingMarshaller( getMarshaller(ctype.getRealType(), convention, (Enums)enums), DataConverters.getParameterConverter(type, (Enums)enums)); else return newConvertingMarshallerWithHash(type, convention, enums, ctype);
DataConverters.getParameterConverter(type, (Enums)null)); return new ConvertingMarshaller( getMarshaller(ctype.getRealType(), convention, (Enums)enums), DataConverters.getParameterConverter(type, (Enums)enums)); else return newConvertingMarshallerWithHash(type, convention, enums, ctype);