1 23 package org.hammurapi.inspectors; 24 25 import org.hammurapi.InspectorBase; 26 27 import com.pavelvlasov.jsel.JselException; 28 import com.pavelvlasov.jsel.TypeSpecification; 29 import com.pavelvlasov.jsel.expressions.Expression; 30 import com.pavelvlasov.jsel.expressions.NewObject; 31 import com.pavelvlasov.review.SourceMarker; 32 33 38 public class DoNotUseNewForStringsRule extends InspectorBase { 39 40 public void visit(NewObject newObject) { 41 try { 42 if (newObject.getTypeSpecification().isKindOf("java.lang.String")) { 43 if (newObject.getParameters().size()==0) { 44 context.reportViolation((SourceMarker) newObject); 45 } else if (newObject.getParameters().size()==1) { 46 TypeSpecification pt=((Expression) newObject.getParameters().get(0)).getTypeSpecification(); 47 if (pt.isKindOf("java.lang.String") || pt.isKindOf("java.lang.StringBuffer")) { 48 context.reportViolation((SourceMarker) newObject); 49 } 50 } 51 } 52 } catch (JselException e) { 53 context.warn((SourceMarker) newObject, e); 54 } 55 } 56 } 57 | Popular Tags |