1 23 24 package org.hammurapi.inspectors; 25 26 import java.util.Iterator ; 27 28 import org.hammurapi.InspectorBase; 29 30 import com.pavelvlasov.jsel.statements.CasesGroup; 31 import com.pavelvlasov.jsel.statements.DefaultCase; 32 import com.pavelvlasov.jsel.statements.Statement; 33 import com.pavelvlasov.jsel.statements.SwitchStatement; 34 import com.pavelvlasov.review.SourceMarker; 35 36 41 public class SwitchDefaultRule extends InspectorBase { 42 43 48 public void visit(SwitchStatement statement) { 49 Iterator it=statement.getCasesGroups().iterator(); 50 while (it.hasNext()) { 51 CasesGroup group = (CasesGroup) it.next(); 52 Iterator cit=(group).getCases().iterator(); 53 while (cit.hasNext()) { 54 if (cit.next() instanceof DefaultCase) { 55 Iterator sit=group.getStatements().iterator(); 56 while (sit.hasNext()) { 57 if (!isEmpty((Statement) sit.next())) { 58 return; 59 } 60 } 61 context.reportViolation((SourceMarker) statement, "Default case is present but empty"); 62 return; 63 } 64 } 65 } 66 context.reportViolation((SourceMarker) statement); 67 } 68 } 69 | Popular Tags |