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.JVMVariable;
import st.gravel.support.compiler.jvm.JVMVariable.JVMVariable_Factory;
import st.gravel.support.compiler.jvm.JVMDynamicObjectType;
import st.gravel.support.compiler.jvm.JVMType;
import st.gravel.support.compiler.jvm.JVMNodeVisitor;
public class JVMLocalDeclaration extends JVMVariable implements Cloneable {
public static JVMLocalDeclaration_Factory factory = new JVMLocalDeclaration_Factory();
int _index;
public static class JVMLocalDeclaration_Factory extends JVMVariable_Factory {
public JVMLocalDeclaration basicNew() {
JVMLocalDeclaration newInstance = new JVMLocalDeclaration();
newInstance.initialize();
return newInstance;
}
public JVMLocalDeclaration blockSelf() {
return this.varName_type_index_("__block", JVMDynamicObjectType.factory.basicNew(), 0);
}
public JVMLocalDeclaration[] localsForSignature_(final JVMType[] _anArray) {
return st.gravel.support.jvm.ArrayExtensions.keysAndValuesCollect_(_anArray, new st.gravel.support.jvm.Block2<JVMLocalDeclaration, Integer, JVMType>() {
@Override
public JVMLocalDeclaration value_value_(final Integer _i, final JVMType _type) {
return (JVMLocalDeclaration) JVMLocalDeclaration.factory.varName_type_index_("arg" + "" + _i, _type, (_i - 1));
}
});
}
public JVMLocalDeclaration self() {
return this.varName_type_index_("self", JVMDynamicObjectType.factory.basicNew(), 0);
}
public JVMLocalDeclaration varName_type_index_(final String _aString, final JVMType _aJVMObjectType, final int _anInteger) {
return this.basicNew().initializeVarName_type_index_(_aString, _aJVMObjectType, _anInteger);
}
}
static public JVMLocalDeclaration _blockSelf(Object receiver) {
return factory.blockSelf();
}
static public JVMLocalDeclaration[] _localsForSignature_(Object receiver, final JVMType[] _anArray) {
return factory.localsForSignature_(_anArray);
}
static public JVMLocalDeclaration _self(Object receiver) {
return factory.self();
}
static public JVMLocalDeclaration _varName_type_index_(Object receiver, final String _aString, final JVMType _aJVMObjectType, final int _anInteger) {
return factory.varName_type_index_(_aString, _aJVMObjectType, _anInteger);
}
@Override
public <X> X accept_(final JVMNodeVisitor<X> _visitor) {
return _visitor.visitJVMLocalDeclaration_(this);
}
public JVMLocalDeclaration copy() {
try {
JVMLocalDeclaration _temp1 = (JVMLocalDeclaration) this.clone();
_temp1.postCopy();
return _temp1;
} catch (CloneNotSupportedException e) {
throw new RuntimeException(e);
}
}
public JVMLocalDeclaration_Factory factory() {
return factory;
}
public int index() {
return _index;
}
public JVMLocalDeclaration initializeVarName_type_index_(final String _aString, final JVMType _aJVMObjectType, final int _anInteger) {
_varName = _aString;
_type = _aJVMObjectType;
_index = _anInteger;
this.initialize();
return this;
}
@Override
public JVMLocalDeclaration printOn_(final StringBuilder _aStream) {
this.sourceOn_(_aStream);
return this;
}
public JVMLocalDeclaration pvtSetVarName_(final String _aName) {
_varName = _aName;
return this;
}
@Override
public JVMLocalDeclaration sourceOn_(final StringBuilder _aStream) {
_aStream.append(_varName);
return this;
}
public JVMLocalDeclaration withVarName_(final String _aName) {
return this.copy().pvtSetVarName_(_aName);
}
}