1 23 package org.hammurapi.inspectors; 24 25 import java.util.Collection ; 26 import java.util.Iterator ; 27 28 import org.hammurapi.InspectorBase; 29 30 import com.pavelvlasov.jsel.LanguageElement; 31 import com.pavelvlasov.jsel.statements.CasesGroup; 32 import com.pavelvlasov.jsel.statements.CompoundStatement; 33 import com.pavelvlasov.jsel.statements.Statement; 34 import com.pavelvlasov.review.SourceMarker; 35 36 37 43 public class OneStatementPerLineRule extends InspectorBase { 44 45 public void visit(CompoundStatement element) { 46 analyze(element.getStatements()); 47 } 48 49 public void visit(CasesGroup element) { 50 analyze(element.getStatements()); 51 } 52 53 private void analyze(Collection statements) { 54 Statement prevStatement=null; 55 Iterator it=statements.iterator(); 56 while (it.hasNext()) { 57 Statement statement = (Statement) it.next(); 58 if (prevStatement!=null && ((LanguageElement) statement).getAst().getLine()==((LanguageElement) prevStatement).getLine()) { 59 context.reportViolation((SourceMarker) statement); 60 } 61 prevStatement=statement; 62 } 63 } 64 } 65 | Popular Tags |