public override void Visit(ClassModel @class)
{
// TODO review
if (@class.SuperClassName == null)
return;
string instanceVariableNames = string.Empty;
string classVariableNames = string.Empty;
if (@class.InstanceVariableNames != null && @class.InstanceVariableNames.Count > 0)
{
instanceVariableNames = @class.InstanceVariableNames.First();
foreach (var name in @class.InstanceVariableNames.Skip(1))
instanceVariableNames += " " + name;
}
if (@class.ClassVariableNames != null && @class.ClassVariableNames.Count > 0)
{
classVariableNames = @class.ClassVariableNames.First();
foreach (var name in @class.ClassVariableNames.Skip(1))
classVariableNames += " " + name;
}
this.WriteLine(string.Format(
"Smalltalk.{0}.subclass_instanceVariableNames_classVariableNames_('{1}', '{2}', '{3}');",
@class.SuperClassName,
@class.Name,
instanceVariableNames,
classVariableNames));
foreach (MethodModel method in @class.InstanceMethods)
method.Visit(this);
}