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.ClassDiff;
import st.gravel.support.compiler.ast.ClassDiff.ClassDiff_Factory;
import st.gravel.support.compiler.ast.AbsoluteReference;
import st.gravel.support.compiler.ast.UpdateClassDescriptorDiff;
import st.gravel.support.compiler.ast.DiffVisitor;
import st.gravel.support.compiler.ast.Reference;
public class UpdateClassDiff extends ClassDiff implements Cloneable {
public static UpdateClassDiff_Factory factory = new UpdateClassDiff_Factory();
boolean _isStatic;
UpdateClassDescriptorDiff _metaDiff;
AbsoluteReference _reference;
AbsoluteReference _superclassReference;
UpdateClassDescriptorDiff _thisDiff;
public static class UpdateClassDiff_Factory extends ClassDiff_Factory {
public UpdateClassDiff basicNew() {
UpdateClassDiff newInstance = new UpdateClassDiff();
newInstance.initialize();
return newInstance;
}
public UpdateClassDiff reference_superclassReference_thisDiff_metaDiff_(final AbsoluteReference _anAbsoluteReference, final AbsoluteReference _anAbsoluteReference2, final UpdateClassDescriptorDiff _anUpdateClassDescriptorDiff, final UpdateClassDescriptorDiff _anUpdateClassDescriptorDiff2) {
return this.basicNew().initializeReference_superclassReference_thisDiff_metaDiff_(_anAbsoluteReference, _anAbsoluteReference2, _anUpdateClassDescriptorDiff, _anUpdateClassDescriptorDiff2);
}
}
static public UpdateClassDiff _reference_superclassReference_thisDiff_metaDiff_(Object receiver, final AbsoluteReference _anAbsoluteReference, final AbsoluteReference _anAbsoluteReference2, final UpdateClassDescriptorDiff _anUpdateClassDescriptorDiff, final UpdateClassDescriptorDiff _anUpdateClassDescriptorDiff2) {
return factory.reference_superclassReference_thisDiff_metaDiff_(_anAbsoluteReference, _anAbsoluteReference2, _anUpdateClassDescriptorDiff, _anUpdateClassDescriptorDiff2);
}
@Override
public DiffVisitor accept_(final DiffVisitor _visitor) {
return _visitor.visitUpdateClassDiff_(this);
}
@Override
public UpdateClassDiff beStatic() {
_isStatic = true;
return this;
}
public UpdateClassDiff copy() {
try {
UpdateClassDiff _temp1 = (UpdateClassDiff) this.clone();
_temp1.postCopy();
return _temp1;
} catch (CloneNotSupportedException e) {
throw new RuntimeException(e);
}
}
public UpdateClassDiff_Factory factory() {
return factory;
}
@Override
public UpdateClassDiff initialize() {
super.initialize();
_isStatic = false;
return this;
}
public UpdateClassDiff initializeReference_superclassReference_thisDiff_metaDiff_(final AbsoluteReference _anAbsoluteReference, final AbsoluteReference _anAbsoluteReference2, final UpdateClassDescriptorDiff _anUpdateClassDescriptorDiff, final UpdateClassDescriptorDiff _anUpdateClassDescriptorDiff2) {
_reference = _anAbsoluteReference;
_superclassReference = _anAbsoluteReference2;
_thisDiff = _anUpdateClassDescriptorDiff;
_metaDiff = _anUpdateClassDescriptorDiff2;
this.initialize();
return this;
}
@Override
public boolean isEmpty() {
return _thisDiff.isEmpty() && _metaDiff.isEmpty();
}
@Override
public boolean isStatic() {
return _isStatic;
}
public UpdateClassDescriptorDiff metaDiff() {
return _metaDiff;
}
@Override
public AbsoluteReference reference() {
return _reference;
}
@Override
public Reference superclassReference() {
return _superclassReference;
}
public UpdateClassDescriptorDiff thisDiff() {
return _thisDiff;
}
}