package st.gravel.support.compiler.ast;
/*
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.ast.Reference;
import st.gravel.support.compiler.ast.Reference.Reference_Factory;
import st.gravel.support.compiler.ast.AbsoluteReference;
public class ClassReference extends Reference implements Cloneable {
public static ClassReference_Factory factory = new ClassReference_Factory();
AbsoluteReference _reference;
public static class ClassReference_Factory extends Reference_Factory {
public ClassReference basicNew() {
ClassReference newInstance = new ClassReference();
newInstance.initialize();
return newInstance;
}
public ClassReference reference_(final AbsoluteReference _anAbsoluteReference) {
return this.basicNew().initializeReference_(_anAbsoluteReference);
}
}
static public ClassReference _reference_(Object receiver, final AbsoluteReference _anAbsoluteReference) {
return factory.reference_(_anAbsoluteReference);
}
public ClassReference copy() {
try {
ClassReference _temp1 = (ClassReference) this.clone();
_temp1.postCopy();
return _temp1;
} catch (CloneNotSupportedException e) {
throw new RuntimeException(e);
}
}
@Override
public boolean equals(final Object _anObject) {
if (!(this.getClass() == _anObject.getClass())) {
return false;
}
if (this._reference == null) {
if (!(((ClassReference) _anObject)._reference == null)) {
return false;
}
} else {
if (!st.gravel.support.jvm.ObjectExtensions.equals_(this._reference, ((ClassReference) _anObject)._reference)) {
return false;
}
}
return true;
}
public ClassReference_Factory factory() {
return factory;
}
@Override
public int hashCode() {
return (7 ^ (_reference == null ? 0 : _reference.hashCode()));
}
public ClassReference initializeReference_(final AbsoluteReference _anAbsoluteReference) {
_reference = _anAbsoluteReference;
this.initialize();
return this;
}
@Override
public boolean isMeta() {
return true;
}
@Override
public Reference meta() {
throw new RuntimeException("niy");
}
@Override
public AbsoluteReference namespace() {
return _reference.namespace();
}
@Override
public AbsoluteReference nonmeta() {
return _reference;
}
@Override
public ClassReference printOn_(final StringBuilder _aStream) {
_reference.printOn_(_aStream);
_aStream.append(" class");
return this;
}
public AbsoluteReference reference() {
return _reference;
}
}