@Override public ClassNode withMethodNode_(final MethodNode _aMethodNode) { final MethodNode _current; _current = this.methodOrNilAt_(_aMethodNode.selector()); if (_current != null) { throw new RuntimeException("Duplicate selector: " + _aMethodNode.selector()); } return this.copy() .pvtSetMethods_(st.gravel.support.jvm.ArrayExtensions.copyWith_(_methods, _aMethodNode)); }
@Override public Reference superclassReference() { final st.gravel.core.Symbol[] _path; if (_superclassPath == null) { return null; } _path = st.gravel.support.jvm.ArrayExtensions.collect_( st.gravel.support.jvm.StringExtensions.tokensBasedOn_(_superclassPath, '.'), ((st.gravel.support.jvm.Block1<st.gravel.core.Symbol, String>) (new st.gravel.support.jvm.Block1<st.gravel.core.Symbol, String>() { @Override public st.gravel.core.Symbol value_(final String _str) { return (st.gravel.core.Symbol) st.gravel.core.Symbol.value(_str); } }))); if (st.gravel.support.jvm.IntegerExtensions.equals_(_path.length, 1)) { return AbsoluteReference.factory.path_( st.gravel.support.jvm.ArrayExtensions.copyWith_(_namespace, _path[0])); } return AbsoluteReference.factory.path_(_path); }
@Override public ClassNode withInstVar_(final VariableDeclarationNode _aVariableDeclarationNode) { return this.copy() .pvtSetInstVars_( st.gravel.support.jvm.ArrayExtensions.copyWith_(_instVars, _aVariableDeclarationNode)); }
@Override public AbsoluteReference reference() { return AbsoluteReference.factory.path_( st.gravel.support.jvm.ArrayExtensions.copyWith_(_namespace, _name)); }