Function types versus arrays
Howard Lovatt
howard.lovatt at iee.org
Thu Feb 18 01:44:53 PST 2010
Hi Neal,
On 17 February 2010 16:26, Neal Gafter <neal at gafter.com> wrote:
> Howard-
>
> Can you please show the implementation of
> _Array_From_void_throws_ChangedCharSetException_SAXParseException_UnkownHostException__To_void_throws_AWTException_IOException_SAXException.instance?
Sure:
public final static class
_Array_From_void_throws_ChangedCharSetException_UnknownHostException__To_void_throws_ChangedCharSetException_SAXParseException_UnknownHostException
{
public static
_Callable_void_throws_ChangedCharSetException_SAXParseException_UnknownHostException[]
instance(final _Callable_void_throws_ChangedCharSetException_UnknownHostException[]
from) {
if (from == null) { return null; }
final _Callable_void_throws_ChangedCharSetException_SAXParseException_UnknownHostException[]
to = new _Callable_void_throws_ChangedCharSetException_SAXParseException_UnknownHostException[from.length];
for (int i = 0; i < from.length; i++) { to[i] =
_From_void_throws_ChangedCharSetException_UnkownHostException__To_void_throws_ChangedCharSetException_SAXParseException_UnkownHostException.instance(from[i]);
}
return to;
}
}
public final static class
_From_void_throws_ChangedCharSetException_UnkownHostException__To_void_throws_ChangedCharSetException_SAXParseException_UnkownHostException
extends
_Callable_void_throws_ChangedCharSetException_SAXParseException_UnknownHostException
implements Wrapper {
private final
_Callable_void_throws_ChangedCharSetException_UnknownHostException f;
private _From_void_throws_ChangedCharSetException_UnkownHostException__To_void_throws_ChangedCharSetException_SAXParseException_UnkownHostException(final
_Callable_void_throws_ChangedCharSetException_UnknownHostException f)
{ this.f = f; }
public static
_From_void_throws_ChangedCharSetException_UnkownHostException__To_void_throws_ChangedCharSetException_SAXParseException_UnkownHostException
instance(final _Callable_void_throws_ChangedCharSetException_UnknownHostException
from) {
if (from == null) { return null; }
final _Callable_void_throws_ChangedCharSetException_UnknownHostException
f = (_Callable_void_throws_ChangedCharSetException_UnknownHostException)Wrappers.unWrap(from);
return new
_From_void_throws_ChangedCharSetException_UnkownHostException__To_void_throws_ChangedCharSetException_SAXParseException_UnkownHostException(f);
}
@Override public void callPrimitive() throws
ChangedCharSetException, SAXParseException, UnknownHostException {
f.callPrimitive(); }
@Override public Object getWrappee() { return f; }
@Override public int hashCode() { return f.hashCode(); }
}
public final static class
_Array_From_void_throws_ChangedCharSetException_SAXParseException_UnknownHostException__To_void_throws_AWTException_IOException_SAXException
{
public static
_Callable_void_throws_AWTException_IOException_SAXException[]
instance(final _Callable_void_throws_ChangedCharSetException_SAXParseException_UnknownHostException[]
from) {
if (from == null) { return null; }
final _Callable_void_throws_AWTException_IOException_SAXException[]
to = new _Callable_void_throws_AWTException_IOException_SAXException[from.length];
for (int i = 0; i < from.length; i++) { to[i] =
_From_void_throws_ChangedCharSetException_SAXParseException_UnknownHostException__To_void_throws_AWTException_IOException_SAXException.instance(from[i]);
}
return to;
}
}
public final static class
_From_void_throws_ChangedCharSetException_SAXParseException_UnknownHostException__To_void_throws_AWTException_IOException_SAXException
extends
_Callable_void_throws_AWTException_IOException_SAXException implements
Wrapper {
private final
_Callable_void_throws_ChangedCharSetException_SAXParseException_UnknownHostException
f;
private _From_void_throws_ChangedCharSetException_SAXParseException_UnknownHostException__To_void_throws_AWTException_IOException_SAXException(final
_Callable_void_throws_ChangedCharSetException_SAXParseException_UnknownHostException
f) { this.f = f; }
public static
_From_void_throws_ChangedCharSetException_SAXParseException_UnknownHostException__To_void_throws_AWTException_IOException_SAXException
instance(final _Callable_void_throws_ChangedCharSetException_SAXParseException_UnknownHostException
from) {
if (from == null) { return null; }
final _Callable_void_throws_ChangedCharSetException_SAXParseException_UnknownHostException
f = (_Callable_void_throws_ChangedCharSetException_SAXParseException_UnknownHostException)Wrappers.unWrap(from);
return new
_From_void_throws_ChangedCharSetException_SAXParseException_UnknownHostException__To_void_throws_AWTException_IOException_SAXException(f);
}
@Override public void callPrimitive() throws AWTException,
IOException, SAXException { f.callPrimitive(); }
@Override public Object getWrappee() { return f; }
@Override public int hashCode() { return f.hashCode(); }
}
// #void()(throws IOException, AWTException, SAXException)
abstract static class
_Callable_void_throws_AWTException_IOException_SAXException
implements _Callable_0_throws_1<Void, Exception> {
public Void call() throws AWTException, IOException, SAXException {
callPrimitive();
return null;
}
public abstract void callPrimitive() throws AWTException,
IOException, SAXException;
}
// #void()(throws ChangedCharSetException, UnknownHostException,
SAXParseException)
abstract static class
_Callable_void_throws_ChangedCharSetException_SAXParseException_UnknownHostException
implements _Callable_0_throws_1<Void, Exception> {
public Void call() throws ChangedCharSetException,
SAXParseException, UnknownHostException {
callPrimitive();
return null;
}
public abstract void callPrimitive() throws
ChangedCharSetException, SAXParseException, UnknownHostException;
}
// #void()(throws ChangedCharSetException, UnknownHostException)
abstract static class
_Callable_void_throws_ChangedCharSetException_UnknownHostException
implements _Callable_0_throws_1<Void, IOException> {
public Void call() throws ChangedCharSetException, UnknownHostException {
callPrimitive();
return null;
}
public abstract void callPrimitive() throws
ChangedCharSetException, UnknownHostException;
}
// Generics can't declare an arbitrary number of exceptions (incl.
0), therefore use
// _Callable_0_throws_1<Void, IOException> which throws IOException
public interface _Callable_0_throws_1<R, E extends Exception> { R
call() throws E; }
Cheers,
-- Howard.
>
> Cheers,
> Neal
>
> On Tue, Feb 16, 2010 at 8:58 PM, Howard Lovatt <howard.lovatt at iee.org> wrote:
>> (the above translation is an extension of sections 5.2.2, 5.4, and 4.4) and:
>>
>>> #void()(throws IOException, AWTException, SAXException)[] array2 = array1;
>>
>> becomes:
>>
>> _Callable_void_throws_AWTException_IOException_SAXException[] array2 =
>> _Array_From_void_throws_ChangedCharSetException_SAXParseException_UnkownHostException__To_void_throws_AWTException_IOException_SAXException.instance(
>> array1 );
>
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit http://www.messagelabs.com/email
> ______________________________________________________________________
>
--
-- Howard.
More information about the lambda-dev
mailing list