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.AbstractVariableRenamer;
import st.gravel.support.compiler.ast.AbstractVariableRenamer.AbstractVariableRenamer_Factory;
import java.util.HashSet;
public class LocalDefinedVariableRenamer extends AbstractVariableRenamer implements Cloneable {
public static LocalDefinedVariableRenamer_Factory factory = new LocalDefinedVariableRenamer_Factory();
public static class LocalDefinedVariableRenamer_Factory extends AbstractVariableRenamer_Factory {
public LocalDefinedVariableRenamer basicNew() {
LocalDefinedVariableRenamer newInstance = new LocalDefinedVariableRenamer();
newInstance.initialize();
return newInstance;
}
@Override
public LocalDefinedVariableRenamer oldName_newName_(final String _aString, final String _aString2) {
return ((LocalDefinedVariableRenamer) this.basicNew().initializeOldName_newName_(_aString, _aString2));
}
}
static public LocalDefinedVariableRenamer _oldName_newName_(Object receiver, final String _aString, final String _aString2) {
return factory.oldName_newName_(_aString, _aString2);
}
@Override
public LocalDefinedVariableRenamer addLocalName_(final String _name) {
_localNames.add(_name);
return this;
}
public LocalDefinedVariableRenamer copy() {
try {
LocalDefinedVariableRenamer _temp1 = (LocalDefinedVariableRenamer) this.clone();
_temp1.postCopy();
return _temp1;
} catch (CloneNotSupportedException e) {
throw new RuntimeException(e);
}
}
public LocalDefinedVariableRenamer_Factory factory() {
return factory;
}
@Override
public LocalDefinedVariableRenamer initialize() {
super.initialize();
_localNames = new java.util.HashSet();
return this;
}
@Override
public LocalDefinedVariableRenamer initializeOldName_newName_(final String _aString, final String _aString2) {
_oldName = _aString;
_newName = _aString2;
this.initialize();
return this;
}
@Override
public LocalDefinedVariableRenamer postCopy() {
super.postCopy();
_localNames = st.gravel.support.jvm.SetExtensions.copy(_localNames);
return this;
}
@Override
public String renameDefinition_(final String _aString) {
if (st.gravel.support.jvm.StringExtensions.equals_(_aString, _oldName)) {
return _newName;
}
return _aString;
}
@Override
public String rename_(final String _aString) {
if (st.gravel.support.jvm.StringExtensions.equals_(_aString, _oldName) && _localNames.contains(_aString)) {
return _newName;
}
return _aString;
}
@Override
public LocalDefinedVariableRenamer subconverter() {
return this.copy();
}
}