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.JVMNonPrimitiveType;
import st.gravel.support.compiler.jvm.JVMNonPrimitiveType.JVMNonPrimitiveType_Factory;
import st.gravel.support.compiler.jvm.JVMNodeVisitor;
import st.gravel.support.compiler.jvm.JVMType;
import st.gravel.support.compiler.jvm.JVMBooleanType;
import st.gravel.support.compiler.jvm.JVMDefinedObjectType;
import st.gravel.support.compiler.jvm.JVMIntType;
import st.gravel.support.compiler.jvm.JVMArrayType;
import st.gravel.support.compiler.jvm.CastArrayToObject;
import st.gravel.support.compiler.jvm.CastBooleanToObject;
import st.gravel.support.compiler.jvm.CastByteToObject;
import st.gravel.support.compiler.jvm.CastCharToObject;
import st.gravel.support.compiler.jvm.CastTo;
import st.gravel.support.compiler.jvm.CastDefinedToObject;
import st.gravel.support.compiler.jvm.CastDoubleToObject;
import st.gravel.support.compiler.jvm.CastFloatToObject;
import st.gravel.support.compiler.jvm.CastIntToObject;
import st.gravel.support.compiler.jvm.CastLongToObject;
public class JVMDynamicObjectType extends JVMNonPrimitiveType implements Cloneable {
public static JVMDynamicObjectType_Factory factory = new JVMDynamicObjectType_Factory();
public static class JVMDynamicObjectType_Factory extends JVMNonPrimitiveType_Factory {
public JVMDynamicObjectType basicNew() {
JVMDynamicObjectType newInstance = new JVMDynamicObjectType();
newInstance.initialize();
return newInstance;
}
}
@Override
public <X> X accept_(final JVMNodeVisitor<X> _visitor) {
return _visitor.visitJVMDynamicObjectType_(this);
}
@Override
public String className() {
return "java/lang/Object";
}
@Override
public JVMDynamicObjectType commonSuperTypeWithBoolean_(final JVMBooleanType _aJVMBooleanType) {
return this;
}
@Override
public JVMDynamicObjectType commonSuperTypeWithDefined_(final JVMDefinedObjectType _aJVMDefinedObjectType) {
return this;
}
@Override
public JVMType commonSuperTypeWithInt_(final JVMIntType _aJVMIntType) {
return this;
}
@Override
public JVMType commonSuperTypeWith_(final JVMType _aType) {
return this;
}
public JVMDynamicObjectType copy() {
try {
JVMDynamicObjectType _temp1 = (JVMDynamicObjectType) this.clone();
_temp1.postCopy();
return _temp1;
} catch (CloneNotSupportedException e) {
throw new RuntimeException(e);
}
}
@Override
public JVMDynamicObjectType descriptorOn_(final StringBuilder _aStream) {
_aStream.append('L');
_aStream.append(this.className());
_aStream.append(';');
return this;
}
@Override
public String dottedClassName() {
return "java.lang.Object";
}
public JVMDynamicObjectType_Factory factory() {
return factory;
}
@Override
public boolean isDynamicObjectType() {
return true;
}
@Override
public boolean isObjectType() {
return true;
}
@Override
public CastArrayToObject newCastInstructionFromArray_(final JVMArrayType _aJVMArrayType) {
return CastArrayToObject.factory.basicNew();
}
@Override
public CastBooleanToObject newCastInstructionFromBoolean() {
return CastBooleanToObject.factory.basicNew();
}
@Override
public CastByteToObject newCastInstructionFromByte() {
return CastByteToObject.factory.basicNew();
}
@Override
public CastCharToObject newCastInstructionFromChar() {
return CastCharToObject.factory.basicNew();
}
@Override
public CastTo newCastInstructionFromDefinedObject_(final JVMDefinedObjectType _anObject) {
return CastDefinedToObject.factory.basicNew();
}
@Override
public CastDoubleToObject newCastInstructionFromDouble() {
return CastDoubleToObject.factory.basicNew();
}
@Override
public CastFloatToObject newCastInstructionFromFloat() {
return CastFloatToObject.factory.basicNew();
}
@Override
public CastIntToObject newCastInstructionFromInt() {
return CastIntToObject.factory.basicNew();
}
@Override
public CastLongToObject newCastInstructionFromLong() {
return CastLongToObject.factory.basicNew();
}
@Override
public CastTo newCastInstructionTo_(final JVMType _aJVMType) {
return _aJVMType.newCastInstructionFromDynamicObject();
}
@Override
public JVMDynamicObjectType printOn_(final StringBuilder _aStream) {
this.sourceOn_(_aStream);
return this;
}
@Override
public JVMDynamicObjectType sourceOn_(final StringBuilder _aStream) {
_aStream.append('*');
return this;
}
}