class ObjCObjectTypeConverter implements TypeConverter {

    public T fromNative(Object nativeValue, FromNativeContext context) {
        Number nativeValueAsNumber = (Number) nativeValue;
        if (nativeValueAsNumber == null) {
            return null;
        }
        ID id = ID.fromLong(nativeValueAsNumber.longValue());
        if (id.isNull()) {
            return null;
        }
        boolean shouldRetain = shouldRetainFor(context);        
        return Rococoa.wrap(id, javaType, shouldRetain);
    }

    public  ObjCObjectTypeConverter(Class<T> javaType);

}