package st.gravel.support.compiler.jvm; /* This file is automatically generated from typed smalltalk source. Do not edit by hand. (C) AG5.com */ import java.math.BigInteger; import st.gravel.support.jvm.NonLocalReturn; import st.gravel.support.compiler.jvm.JVMNode; import st.gravel.support.compiler.jvm.JVMNode.JVMNode_Factory; import st.gravel.support.compiler.jvm.JVMDynamicObjectType; import st.gravel.support.compiler.jvm.JVMDefinedObjectType; import st.gravel.support.compiler.jvm.JVMType; import st.gravel.support.compiler.jvm.JVMVoidType; import st.gravel.support.compiler.jvm.JVMNodeVisitor; public class JVMMethodType extends JVMNode implements Cloneable { public static JVMMethodType_Factory factory = new JVMMethodType_Factory(); JVMType[] _arguments; JVMType _returnType; public static class JVMMethodType_Factory extends JVMNode_Factory { public JVMMethodType basicNew() { JVMMethodType newInstance = new JVMMethodType(); newInstance.initialize(); return newInstance; } public JVMMethodType dynamic_(final int _numArgs) { return ((JVMMethodType) this.returnType_dynamic_(JVMDynamicObjectType.factory.basicNew(), _numArgs)); } public JVMMethodType object() { return ((JVMMethodType) this.returnType_(JVMDefinedObjectType.factory.object())); } public JVMMethodType returnType_(final JVMType _aJVMDefinedObjectType) { return this.returnType_arguments_(_aJVMDefinedObjectType, new JVMType[] {}); } public JVMMethodType returnType_arguments_(final JVMType _aJVMDefinedObjectType, final JVMType[] _anArray) { return this.basicNew().initializeReturnType_arguments_(_aJVMDefinedObjectType, _anArray); } public JVMMethodType returnType_dynamic_(final JVMType _aJVMDefinedObjectType, final int _numArgs) { return ((JVMMethodType) this.returnType_arguments_(_aJVMDefinedObjectType, new st.gravel.core.Interval(1, _numArgs).collect_(new st.gravel.support.jvm.Block1<JVMType, Integer>() { @Override public JVMType value_(final Integer _i) { return (JVMType) JVMDynamicObjectType.factory.basicNew(); } }))); } public JVMMethodType r_void() { return ((JVMMethodType) this.returnType_(JVMVoidType.factory.basicNew())); } public JVMMethodType voidArguments_(final JVMType[] _anArray) { return this.returnType_arguments_(JVMVoidType.factory.basicNew(), _anArray); } public JVMMethodType voidDynamic_(final int _numArgs) { return this.returnType_dynamic_(JVMVoidType.factory.basicNew(), _numArgs); } } static public JVMMethodType _dynamic_(Object receiver, final int _numArgs) { return factory.dynamic_(_numArgs); } static public JVMMethodType _object(Object receiver) { return factory.object(); } static public JVMMethodType _returnType_(Object receiver, final JVMType _aJVMDefinedObjectType) { return factory.returnType_(_aJVMDefinedObjectType); } static public JVMMethodType _returnType_arguments_(Object receiver, final JVMType _aJVMDefinedObjectType, final JVMType[] _anArray) { return factory.returnType_arguments_(_aJVMDefinedObjectType, _anArray); } static public JVMMethodType _returnType_dynamic_(Object receiver, final JVMType _aJVMDefinedObjectType, final int _numArgs) { return factory.returnType_dynamic_(_aJVMDefinedObjectType, _numArgs); } static public JVMMethodType _r_void(Object receiver) { return factory.r_void(); } static public JVMMethodType _voidArguments_(Object receiver, final JVMType[] _anArray) { return factory.voidArguments_(_anArray); } static public JVMMethodType _voidDynamic_(Object receiver, final int _numArgs) { return factory.voidDynamic_(_numArgs); } @Override public <X> X accept_(final JVMNodeVisitor<X> _visitor) { return _visitor.visitJVMMethodType_(this); } public JVMType[] arguments() { return _arguments; } public JVMMethodType copy() { try { JVMMethodType _temp1 = (JVMMethodType) this.clone(); _temp1.postCopy(); return _temp1; } catch (CloneNotSupportedException e) { throw new RuntimeException(e); } } public JVMMethodType copyWithFirst_(final JVMType _aJVMType) { return this.copy().pvtSetArguments_(st.gravel.support.jvm.ArrayExtensions.copyWithFirst_(_arguments, _aJVMType)); } public JVMMethodType descriptorOn_(final StringBuilder _aStream) { _aStream.append('('); for (final JVMType _each : _arguments) { _each.descriptorOn_(_aStream); } _aStream.append(')'); _returnType.descriptorOn_(_aStream); return this; } public String descriptorString() { final StringBuilder _aStream; _aStream = st.gravel.support.jvm.WriteStreamFactory.on_(new String()); this.descriptorOn_(_aStream); return _aStream.toString(); } public JVMMethodType_Factory factory() { return factory; } public JVMMethodType initializeReturnType_arguments_(final JVMType _aJVMDefinedObjectType, final JVMType[] _anArray) { _returnType = _aJVMDefinedObjectType; _arguments = _anArray; this.initialize(); return this; } public int numArgs() { return _arguments.length; } @Override public JVMMethodType printOn_(final StringBuilder _aStream) { this.sourceOn_(_aStream); return this; } public JVMMethodType pvtSetArguments_(final JVMType[] _anArray) { _arguments = _anArray; return this; } public JVMType returnType() { return _returnType; } @Override public JVMMethodType sourceOn_(final StringBuilder _aStream) { _aStream.append('('); for (final JVMType _each : _arguments) { _each.printOn_(_aStream); } _aStream.append(')'); _returnType.printOn_(_aStream); return this; } }