/** * Copyright 2004-2016 Riccardo Solmi. All rights reserved. * This file is part of the Whole Platform. * * The Whole Platform is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * The Whole Platform is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with the Whole Platform. If not, see <http://www.gnu.org/licenses/>. */ package org.whole.lang.visitors; import org.whole.gen.CompilationUnitBuilder; import org.whole.gen.JavaModelGenerator; import org.whole.lang.java.model.*; import org.whole.lang.java.parsers.JavaDataTypePersistenceParser; import org.whole.lang.java.visitors.JavaIdentityVisitor; import org.whole.lang.operations.JavaCompilerOperation; import org.whole.lang.util.EntityUtils; /** * @author Riccardo Solmi */ public class JavaJavaModelGeneratorVisitor extends JavaIdentityVisitor { private String name = ""; private org.eclipse.jdt.core.dom.Type type; private org.eclipse.jdt.core.dom.VariableDeclarationFragment varDecFragment; public JavaModelGenerator getGenerator() { return ((JavaCompilerOperation) getOperation()).getGenerator(); } public final CompilationUnitBuilder builder() { return getGenerator().getCurrentBuilder(); } public org.eclipse.jdt.core.dom.Expression getExpression() { return builder().exp; } public org.eclipse.jdt.core.dom.Expression setExpression( org.eclipse.jdt.core.dom.Expression exp) { return builder().exp = exp; } public org.eclipse.jdt.core.dom.Statement getStatement() { return builder().stm; } public org.eclipse.jdt.core.dom.Statement setStatement( org.eclipse.jdt.core.dom.Statement stm) { return builder().stm = stm; } public final org.eclipse.jdt.core.dom.Name astOf(Name n) { n.accept(this); return (org.eclipse.jdt.core.dom.Name) getExpression(); } public final org.eclipse.jdt.core.dom.Type astOf(Type t) { t.accept(this); return type; } public final org.eclipse.jdt.core.dom.VariableDeclarationFragment astOf( VariableDeclarationFragment f) { f.accept(this); return varDecFragment; } private final org.eclipse.jdt.core.dom.Expression astOf(Expression e) { e.accept(this); return getExpression(); } private final org.eclipse.jdt.core.dom.Statement astOf(Statement s) { s.accept(this); return getStatement(); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.InstanceofExpression) */ public void visit(InstanceofExpression entity) { // TODO Auto-generated method stub } public void visit(IfStatement entity) { setStatement(builder().newIfStatement(astOf(entity.getExpression()), astOf(entity.getThenStatement()), astOf(entity.getElseStatement()))); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.ArrayType) */ public void visit(ArrayType entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.SwitchCase) */ public void visit(SwitchCase entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.TypeParameter) */ public void visit(TypeParameter entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.ContinueStatement) */ public void visit(ContinueStatement entity) { // TODO Auto-generated method stub } public void visit(VariableDeclarationFragment entity) { entity.getName().accept(this); String varName = name; builder().exp = null; entity.getInitializer().accept(this); varDecFragment = builder().newVariableDeclarationFragment(varName, getExpression()); } public void visit(FieldDeclaration entity) { VariableDeclarationFragments fragments = entity.getFragments(); if (fragments.wSize() == 0) throw new IllegalArgumentException( "empty IVariableDeclarationFragments"); org.eclipse.jdt.core.dom.FieldDeclaration fieldDec = builder() .newFieldDeclaration(astOf(entity.getType()), astOf((VariableDeclarationFragment) fragments.wGet(0))); for (int i = 1; i < fragments.wSize(); i++) { fieldDec.fragments().add( astOf((VariableDeclarationFragment) fragments.wGet(i))); } builder().addBodyDeclaration(fieldDec); } public void visit(VariableDeclarationFragments entity) { } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.NormalAnnotation_Values) */ public void visit(MemberValuePairs entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.NormalAnnotation) */ public void visit(NormalAnnotation entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.TextElement) */ public void visit(TextElement entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.AnnotationTypeMemberDeclaration) */ public void visit(AnnotationTypeMemberDeclaration entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.SynchronizedStatement) */ public void visit(SynchronizedStatement entity) { // TODO Auto-generated method stub } public void visit(ByteLiteral entity) { setExpression(builder().newNumberLiteral(JavaDataTypePersistenceParser.instance().unparseByte(entity.wGetEntityDescriptor(), entity.getValue()))); } public void visit(FloatLiteral entity) { setExpression(builder().newNumberLiteral(JavaDataTypePersistenceParser.instance().unparseFloat(entity.wGetEntityDescriptor(), entity.getValue()))); } public void visit(DoubleLiteral entity) { setExpression(builder().newNumberLiteral(JavaDataTypePersistenceParser.instance().unparseDouble(entity.wGetEntityDescriptor(), entity.getValue()))); } public void visit(IntLiteral entity) { setExpression(builder().newNumberLiteral(JavaDataTypePersistenceParser.instance().unparseInt(entity.wGetEntityDescriptor(), entity.getValue()))); } public void visit(LongLiteral entity) { setExpression(builder().newNumberLiteral(JavaDataTypePersistenceParser.instance().unparseLong(entity.wGetEntityDescriptor(), entity.getValue()))); } public void visit(ShortLiteral entity) { setExpression(builder().newNumberLiteral(JavaDataTypePersistenceParser.instance().unparseShort(entity.wGetEntityDescriptor(), entity.getValue()))); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.PrefixExpression_Operator) */ public void visit(PrefixOperator entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.PrefixExpression) */ public void visit(PrefixExpression entity) { // TODO Auto-generated method stub } public void visit(StringLiteral entity) { setExpression(builder().newLiteral(entity.getValue())); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.ParameterizedType) */ public void visit(ParameterizedType entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.SuperConstructorInvocation_Arguments) */ public void visit(Arguments entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.SuperConstructorInvocation) */ public void visit(SuperConstructorInvocation entity) { // TODO Auto-generated method stub } public void visit(ExpressionStatement entity) { setStatement(builder().newExpressionStatement( astOf(entity.getExpression()))); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.Javadoc_Tags) */ public void visit(Tags entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.Javadoc) */ public void visit(Javadoc entity) { // TODO Auto-generated method stub } public void visit(NullLiteral entity) { setExpression(builder().newNullLiteral()); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.MethodRef) */ public void visit(MethodRef entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.MethodDeclaration_TypeParameters) */ public void visit(TypeParameters entity) { // TODO Auto-generated method stub } public void visit(MethodDeclaration entity) { org.eclipse.jdt.core.dom.MethodDeclaration method; builder().addBodyDeclaration( method = builder().newMethodDeclaration( astOf(entity.getReturnType()), ((SimpleName) entity.getName()).wStringValue())); entity.getParameters().accept(this); method .setBody((org.eclipse.jdt.core.dom.Block) astOf((Statement) entity .getBody())); } public void visit(Parameters entity) { for (int i = 0; i < entity.wSize(); i++) ((SingleVariableDeclaration) entity.wGet(i)).accept(this); } public void visit(SingleVariableDeclaration entity) { builder().addParameter( builder().newSingleVariableDeclaration(astOf(entity.getType()), ((SimpleName) entity.getName()).wStringValue())); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.MemberRef) */ public void visit(MemberRef entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.ThrowStatement) */ public void visit(ThrowStatement entity) { // TODO Auto-generated method stub } public void visit(ClassDeclaration entity) { entity.getName().accept(this); builder().addClassDeclaration(name); if (!EntityUtils.isResolver(entity.getSuperclassType())) { entity.getSuperclassType().accept(this); builder().setSuperclass(name); } entity.getSuperInterfaceTypes().accept(this); entity.getBodyDeclarations().accept(this); } public void visit(Types entity) { name = null; for (int i = 0; i < entity.wSize(); i++) { ((Type) entity.wGet(i)).accept(this); if (name != null) builder().addSuperInterface(name); } } public void visit(BodyDeclarations entity) { for (int i = 0; i < entity.wSize(); i++) ((BodyDeclaration) entity.wGet(i)).accept(this); } public void visit(PrimitiveType entity) { type = builder().newType(entity.wStringValue()); } public void visit(TypeLiteral entity) { entity.getType().accept(this); setExpression(builder().newTypeLiteral(name)); } public void visit(CharLiteral entity) { setExpression(builder().newLiteral(entity.getValue())); } public void visit(MethodInvocation entity) { org.eclipse.jdt.core.dom.MethodInvocation callExp = EntityUtils.isResolver(entity.getExpression()) ? builder() .newMethodInvocation( ((SimpleName) entity.getName()).wStringValue()) : builder().newMethodInvocation(astOf(entity.getExpression()), ((SimpleName) entity.getName()).wStringValue()); Arguments arguments = entity.getArguments(); for (int i = 0; i < arguments.wSize(); i++) { Expression e = (Expression) arguments.wGet(i); if (!EntityUtils.isResolver(e)) callExp.arguments().add(astOf(e)); } setExpression(callExp); } public void visit(FieldAccess entity) { setExpression(builder().newFieldAccess(astOf(entity.getExpression()), ((SimpleName) entity.getName()).wStringValue())); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.ArrayInitializer) */ public void visit(ArrayInitializer entity) { // TODO Auto-generated method stub } private int inQualifiedName = 0; public void visit(QualifiedName entity) { setExpression(builder().newSimpleName(entity.wStringValue())); } public void visit(SimpleName entity) { name = entity.wStringValue(); if (inQualifiedName == 0) setExpression(builder().newSimpleName(name)); } public void visit(WhileStatement entity) { setStatement(builder().newWhileStatement(astOf(entity.getExpression()), astOf(entity.getBody()))); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.LabeledStatement) */ public void visit(LabeledStatement entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.TryStatement_CatchClauses) */ public void visit(CatchClauses entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.TryStatement) */ public void visit(TryStatement entity) { // TODO Auto-generated method stub } public void visit(Assignment entity) { setExpression(builder() .newAssignment( astOf(entity.getLeftHandSide()), JavaDataTypePersistenceParser.unparseAssignmentOperator(entity.getOperator() .wEnumValue()), astOf(entity.getRightHandSide()))); } public void visit(BooleanLiteral entity) { setExpression(builder().newLiteral(entity.wBooleanValue())); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.WildcardType) */ public void visit(WildcardType entity) { // TODO Auto-generated method stub } public void visit(SuperFieldAccess entity) { setExpression(builder().newSuperFieldAccess( ((SimpleName) entity.getName()).wStringValue())); } public void visit(VariableDeclarationStatement entity) { VariableDeclarationFragments fragments = entity.getFragments(); if (fragments.wSize() == 0) throw new IllegalArgumentException( "empty IVariableDeclarationFragments"); org.eclipse.jdt.core.dom.VariableDeclarationStatement varDec = builder() .newVariableDeclarationStatement(astOf(entity.getType()), astOf((VariableDeclarationFragment) fragments.wGet(0))); for (int i = 1; i < fragments.wSize(); i++) { varDec.fragments().add( astOf((VariableDeclarationFragment) fragments.wGet(i))); } setStatement(varDec); } public void visit(VariableDeclarationExpression entity) { VariableDeclarationFragments fragments = entity.getFragments(); if (fragments.wSize() == 0) throw new IllegalArgumentException( "empty IVariableDeclarationFragments"); org.eclipse.jdt.core.dom.VariableDeclarationExpression varDec = builder() .newVariableDeclarationExpression(astOf(entity.getType()), astOf((VariableDeclarationFragment) fragments.wGet(0))); for (int i = 1; i < fragments.wSize(); i++) { varDec.fragments().add( astOf((VariableDeclarationFragment) fragments.wGet(i))); } setExpression(varDec); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.MemberValuePair) */ public void visit(MemberValuePair entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.AnnotationTypeDeclaration) */ public void visit(AnnotationTypeDeclaration entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.ConstructorInvocation) */ public void visit(ConstructorInvocation entity) { // TODO Auto-generated method stub } public void visit(DoStatement entity) { setStatement(builder().newDoStatement(astOf(entity.getExpression()), astOf(entity.getBody()))); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.QualifiedType) */ public void visit(QualifiedType entity) { type = builder().newQualifiedType(entity.wStringValue()); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.AssertStatement) */ public void visit(AssertStatement entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.MethodRefParameter) */ public void visit(MethodRefParameter entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.CastExpression) */ public void visit(CastExpression entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.EnumDeclaration) */ public void visit(EnumDeclaration entity) { // TODO Auto-generated method stub } public void visit(ReturnStatement entity) { setStatement(builder() .newReturnStatement(astOf(entity.getExpression()))); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.EnhancedForStatement) */ public void visit(EnhancedForStatement entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.CatchClause) */ public void visit(CatchClause entity) { // TODO Auto-generated method stub } public void visit(SimpleType entity) { type = builder().newType(entity.wStringValue()); } public void visit(Expressions entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.ArrayCreation) */ public void visit(ArrayCreation entity) { // TODO Auto-generated method stub } public void visit(ParenthesizedExpression entity) { setExpression(builder().newParenthesizedExpression( astOf(entity.getExpression()))); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.Modifier) */ public void visit(Modifier entity) { // TODO Auto-generated method stub } public void visit(ImportDeclaration entity) { entity.getName().accept(this); builder().addImportDeclaration(name); } public void visit(ThisExpression entity) { org.eclipse.jdt.core.dom.ThisExpression exp = builder().ast .newThisExpression(); if (!EntityUtils.isResolver(entity.getQualifier())) exp.setQualifier(astOf(entity.getQualifier())); setExpression(exp); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.TypeDeclarationStatement) */ public void visit(TypeDeclarationStatement entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.TagElement_Fragments) */ public void visit(DocElements entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.TagElement_TagName) */ public void visit(TagName entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.TagElement) */ public void visit(TagElement entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.ClassInstanceCreation) */ public void visit(ClassInstanceCreation entity) { // TODO Auto-generated method stub } public void visit(PackageDeclaration entity) { inQualifiedName++; entity.getName().accept(this); inQualifiedName--; builder().putPackageDeclaration(name); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.ArrayAccess) */ public void visit(ArrayAccess entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.BlockComment) */ public void visit(BlockComment entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.EnumConstantDeclaration) */ public void visit(EnumConstantDeclaration entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.LineComment) */ public void visit(LineComment entity) { // TODO Auto-generated method stub } public void visit(InfixExpression entity) { org.eclipse.jdt.core.dom.Expression left = astOf(entity .getLeftOperand()); org.eclipse.jdt.core.dom.Expression right = astOf(entity .getRightOperand()); setExpression(builder().newInfixExpression(left, JavaDataTypePersistenceParser.unparseInfixOperator(entity.getOperator().wEnumValue()), right)); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.BreakStatement) */ public void visit(BreakStatement entity) { // TODO Auto-generated method stub } public void visit(SuperMethodInvocation entity) { org.eclipse.jdt.core.dom.SuperMethodInvocation callExp = builder() .newSuperMethodInvocation( ((SimpleName) entity.getName()).wStringValue()); Arguments arguments = entity.getArguments(); for (int i = 0; i < arguments.wSize(); i++) callExp.arguments().add(astOf((Expression) arguments.wGet(i))); setExpression(callExp); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.AnonymousClassDeclaration) */ public void visit(AnonymousClassDeclaration entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.MarkerAnnotation) */ public void visit(MarkerAnnotation entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.SwitchStatement_Statements) */ public void visit(Statements entity) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.SwitchStatement) */ public void visit(SwitchStatement entity) { // TODO Auto-generated method stub } public void visit(Block entity) { org.eclipse.jdt.core.dom.Block body = builder().newBlock(); for (int i = 0; i < entity.wSize(); i++) { body.statements().add(astOf((Statement) entity.wGet(i))); } setStatement(body); } public void visit(PostfixExpression entity) { setExpression(builder().newPostfixExpression( astOf(entity.getOperand()), JavaDataTypePersistenceParser.unparsePostfixOperator(entity.getOperator().wEnumValue()))); } public void visit(Initializer entity) { builder() .addBodyDeclaration( builder() .newInitializer( (org.eclipse.jdt.core.dom.Block) astOf((Statement) entity .getBody()))); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.SingleMemberAnnotation) */ public void visit(SingleMemberAnnotation entity) { // TODO Auto-generated method stub } public void visit(ForStatement entity) { org.eclipse.jdt.core.dom.ForStatement forStm = builder() .newForStatement(astOf(entity.getExpression()), astOf(entity.getBody())); Expressions inits = entity.getInitializers(); for (int i = 0; i < inits.wSize(); i++) forStm.initializers().add(astOf((Expression) inits.wGet(i))); Expressions upds = entity.getUpdaters(); for (int i = 0; i < upds.wSize(); i++) forStm.updaters().add(astOf((Expression) upds.wGet(i))); setStatement(forStm); } public void visit(TypeDeclarations entity) { for (int i = 0; i < entity.wSize(); i++) ((TypeDeclaration) entity.wGet(i)).accept(this); } public void visit(ImportDeclarations entity) { for (int i = 0; i < entity.wSize(); i++) ((ImportDeclaration) entity.wGet(i)).accept(this); } public void visit(CompilationUnit entity) { entity.getPackage().accept(this); entity.getImports().accept(this); entity.getTypes().accept(this); } /* * (non-Javadoc) * * @see org.whole.lang.java.model.IJavaVisitor#visit(org.whole.lang.java.model.impl.ConditionalExpression) */ public void visit(ConditionalExpression entity) { // TODO Auto-generated method stub } public void visit(JavaSystemSoftware entity) { for (int i = 0; i < entity.wSize(); i++) { ((CompilationUnit) entity.wGet(i)).accept(this); getGenerator().setCurrentBuilder(null); } } }