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.MethodNode; import st.gravel.support.compiler.ast.ClassDescriptionNode; public class UpdateClassDescriptorDiff extends Object implements Cloneable { public static UpdateClassDescriptorDiff_Factory factory = new UpdateClassDescriptorDiff_Factory(); String[] _deletedSelectors; MethodNode[] _methodNodes; MethodNode[] _updatedMethodNodes; public static class UpdateClassDescriptorDiff_Factory extends st.gravel.support.jvm.SmalltalkFactory { public UpdateClassDescriptorDiff basicNew() { UpdateClassDescriptorDiff newInstance = new UpdateClassDescriptorDiff(); newInstance.initialize(); return newInstance; } public UpdateClassDescriptorDiff empty() { return this.methodNodes_updatedMethodNodes_deletedSelectors_(new MethodNode[] {}, new MethodNode[] {}, new String[] {}); } public UpdateClassDescriptorDiff methodNodes_updatedMethodNodes_deletedSelectors_(final MethodNode[] _anArray, final MethodNode[] _anArray2, final String[] _anArray3) { return this.basicNew().initializeMethodNodes_updatedMethodNodes_deletedSelectors_(_anArray, _anArray2, _anArray3); } } static public UpdateClassDescriptorDiff _empty(Object receiver) { return factory.empty(); } static public UpdateClassDescriptorDiff _methodNodes_updatedMethodNodes_deletedSelectors_(Object receiver, final MethodNode[] _anArray, final MethodNode[] _anArray2, final String[] _anArray3) { return factory.methodNodes_updatedMethodNodes_deletedSelectors_(_anArray, _anArray2, _anArray3); } public ClassDescriptionNode applyOnClassNode_(final ClassDescriptionNode _startClassNode) { ClassDescriptionNode _classNode; _classNode = ((ClassDescriptionNode) st.gravel.support.jvm.ArrayExtensions.inject_into_(_methodNodes, _startClassNode, ((st.gravel.support.jvm.Block2<ClassDescriptionNode, ClassDescriptionNode, MethodNode>) (new st.gravel.support.jvm.Block2<ClassDescriptionNode, ClassDescriptionNode, MethodNode>() { @Override public ClassDescriptionNode value_value_(final ClassDescriptionNode _cn, final MethodNode _m) { return (ClassDescriptionNode) _cn.withMethodNode_(_m); } })))); _classNode = ((ClassDescriptionNode) st.gravel.support.jvm.ArrayExtensions.inject_into_(_updatedMethodNodes, _classNode, ((st.gravel.support.jvm.Block2<ClassDescriptionNode, ClassDescriptionNode, MethodNode>) (new st.gravel.support.jvm.Block2<ClassDescriptionNode, ClassDescriptionNode, MethodNode>() { @Override public ClassDescriptionNode value_value_(final ClassDescriptionNode _cn, final MethodNode _m) { return (ClassDescriptionNode) _cn.copyReplaceMethodNode_(_m); } })))); return ((ClassDescriptionNode) st.gravel.support.jvm.ArrayExtensions.inject_into_(_deletedSelectors, _classNode, ((st.gravel.support.jvm.Block2<ClassDescriptionNode, ClassDescriptionNode, String>) (new st.gravel.support.jvm.Block2<ClassDescriptionNode, ClassDescriptionNode, String>() { @Override public ClassDescriptionNode value_value_(final ClassDescriptionNode _cn, final String _sel) { return (ClassDescriptionNode) _cn.copyRemoveSelector_(_sel); } })))); } public UpdateClassDescriptorDiff copy() { try { UpdateClassDescriptorDiff _temp1 = (UpdateClassDescriptorDiff) this.clone(); _temp1.postCopy(); return _temp1; } catch (CloneNotSupportedException e) { throw new RuntimeException(e); } } public String[] deletedSelectors() { return _deletedSelectors; } public UpdateClassDescriptorDiff_Factory factory() { return factory; } public UpdateClassDescriptorDiff initialize() { return this; } public UpdateClassDescriptorDiff initializeMethodNodes_updatedMethodNodes_deletedSelectors_(final MethodNode[] _anArray, final MethodNode[] _anArray2, final String[] _anArray3) { _methodNodes = _anArray; _updatedMethodNodes = _anArray2; _deletedSelectors = _anArray3; this.initialize(); return this; } public boolean isEmpty() { return (_methodNodes.length == 0) && ((_updatedMethodNodes.length == 0) && (_deletedSelectors.length == 0)); } public MethodNode[] methodNodes() { return _methodNodes; } public UpdateClassDescriptorDiff postCopy() { return this; } public UpdateClassDescriptorDiff pvtSetDeletedSelectors_(final String[] _anArray) { _deletedSelectors = _anArray; return this; } public UpdateClassDescriptorDiff pvtSetMethodNodes_(final MethodNode[] _anArray) { _methodNodes = _anArray; return this; } public UpdateClassDescriptorDiff pvtSetUpdatedMethodNodes_(final MethodNode[] _anArray) { _updatedMethodNodes = _anArray; return this; } public MethodNode[] updatedMethodNodes() { return _updatedMethodNodes; } public UpdateClassDescriptorDiff withAddMethodNode_(final MethodNode _aMethodNode) { return this.copy().pvtSetMethodNodes_(st.gravel.support.jvm.ArrayExtensions.copyWith_(_methodNodes, _aMethodNode)); } public UpdateClassDescriptorDiff withDeletedSelector_(final String _aString) { return this.copy().pvtSetDeletedSelectors_(st.gravel.support.jvm.ArrayExtensions.copyWith_(_deletedSelectors, _aString)); } public UpdateClassDescriptorDiff withUpdateMethodNode_(final MethodNode _aMethodNode) { return this.copy().pvtSetUpdatedMethodNodes_(st.gravel.support.jvm.ArrayExtensions.copyWith_(_updatedMethodNodes, _aMethodNode)); } }