package org.overture.codegen.vdm2java;
import org.overture.codegen.ir.analysis.AnalysisException;
import org.overture.codegen.ir.analysis.DepthFirstAnalysisAdaptor;
import org.overture.codegen.ir.declarations.ADefaultClassDeclIR;
import org.overture.codegen.ir.declarations.ARecordDeclIR;
import org.overture.codegen.ir.declarations.ATypeDeclIR;
public class RecMethodsTrans extends DepthFirstAnalysisAdaptor
{
private JavaRecordCreator recCreator;
public RecMethodsTrans(JavaRecordCreator recCreator)
{
this.recCreator = recCreator;
}
@Override
public void caseADefaultClassDeclIR(ADefaultClassDeclIR node)
throws AnalysisException
{
for (ATypeDeclIR typeDecl : node.getTypeDecls())
{
if (typeDecl.getDecl() instanceof ARecordDeclIR)
{
ARecordDeclIR rec = (ARecordDeclIR) typeDecl.getDecl();
rec.getMethods().addFirst(recCreator.genToStringMethod(rec));
rec.getMethods().addFirst(recCreator.genCopyMethod(rec));
rec.getMethods().addFirst(recCreator.genHashcodeMethod(rec));
rec.getMethods().addFirst(recCreator.genEqualsMethod(rec));
rec.getMethods().addFirst(recCreator.genRecConstructor(rec));
}
}
}
}