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.JVMDefinedObjectType;
import st.gravel.support.compiler.jvm.JVMType;
import st.gravel.support.compiler.jvm.JVMNodeVisitor;
import st.gravel.support.compiler.jvm.GetField;
import st.gravel.support.compiler.jvm.GetStatic;
public class JVMField extends JVMVariable implements Cloneable {
public static JVMField_Factory factory = new JVMField_Factory();
boolean _isStatic;
JVMDefinedObjectType _ownerType;
public static class JVMField_Factory extends JVMVariable_Factory {
public JVMField basicNew() {
JVMField newInstance = new JVMField();
newInstance.initialize();
return newInstance;
}
public JVMField ownerType_varName_type_isStatic_(final JVMDefinedObjectType _ownerType, final String _aString, final JVMType _aJVMDynamicObjectType, final boolean _aBoolean) {
return this.basicNew().initializeOwnerType_varName_type_isStatic_(_ownerType, _aString, _aJVMDynamicObjectType, _aBoolean);
}
}
static public JVMField _ownerType_varName_type_isStatic_(Object receiver, final JVMDefinedObjectType _ownerType, final String _aString, final JVMType _aJVMDynamicObjectType, final boolean _aBoolean) {
return factory.ownerType_varName_type_isStatic_(_ownerType, _aString, _aJVMDynamicObjectType, _aBoolean);
}
@Override
public <X> X accept_(final JVMNodeVisitor<X> _visitor) {
return _visitor.visitJVMField_(this);
}
public GetField asGetField() {
st.gravel.support.jvm.ObjectExtensions.deny_(this, _isStatic);
return GetField.factory.ownerType_name_type_(_ownerType, _varName, _type);
}
public GetStatic asGetStatic() {
st.gravel.support.jvm.ObjectExtensions.assert_(this, _isStatic);
return GetStatic.factory.ownerType_name_type_(_ownerType, _varName, _type);
}
public JVMField copy() {
try {
JVMField _temp1 = (JVMField) this.clone();
_temp1.postCopy();
return _temp1;
} catch (CloneNotSupportedException e) {
throw new RuntimeException(e);
}
}
public JVMField_Factory factory() {
return factory;
}
public JVMField initializeOwnerType_varName_type_isStatic_(final JVMDefinedObjectType _aType, final String _aVariableDeclarationNode, final JVMType _aJVMDynamicObjectType, final boolean _aBoolean) {
_ownerType = _aType;
_varName = _aVariableDeclarationNode;
_type = _aJVMDynamicObjectType;
_isStatic = _aBoolean;
this.initialize();
return this;
}
public boolean isStatic() {
return _isStatic;
}
public JVMDefinedObjectType ownerType() {
return _ownerType;
}
@Override
public JVMField printOn_(final StringBuilder _aStream) {
this.sourceOn_(_aStream);
return this;
}
@Override
public JVMField sourceOn_(final StringBuilder _aStream) {
_aStream.append(st.gravel.core.Symbol.value(this.getClass().getSimpleName()));
return this;
}
}