From 2b65589c5e5549ac2bd7db4e858feb66bd6dbab4 Mon Sep 17 00:00:00 2001 From: Dinesh Bolkensteyn Date: Wed, 26 Oct 2011 20:38:50 +0200 Subject: SONAR-2941 Exclude isolated methods from LCOM4 computation --- ...ExclusionOfFieldNamesFromLcom4Calculation.class | Bin 890 -> 1182 bytes .../bytecode/lcom4/bin/LCOM4Exclusions.class | Bin 695 -> 859 bytes .../lcom4/bin/LCOM4WithIsolatedMethods.class | Bin 0 -> 573 bytes .../bytecode/lcom4/bin/LCOM4WithWorkers.class | Bin 0 -> 991 bytes .../ExclusionOfFieldNamesFromLcom4Calculation.java | 21 +++++++++++++--- .../bytecode/lcom4/src/LCOM4Exclusions.java | 11 ++++++--- .../lcom4/src/LCOM4WithIsolatedMethods.java | 11 +++++++++ .../bytecode/lcom4/src/LCOM4WithWorkers.java | 27 +++++++++++++++++++++ 8 files changed, 64 insertions(+), 6 deletions(-) create mode 100644 plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/bin/LCOM4WithIsolatedMethods.class create mode 100644 plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/bin/LCOM4WithWorkers.class create mode 100644 plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/src/LCOM4WithIsolatedMethods.java create mode 100644 plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/src/LCOM4WithWorkers.java (limited to 'plugins/sonar-squid-java-plugin/test-resources') diff --git a/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/bin/ExclusionOfFieldNamesFromLcom4Calculation.class b/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/bin/ExclusionOfFieldNamesFromLcom4Calculation.class index f779fe90360..bfa2977a941 100644 Binary files a/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/bin/ExclusionOfFieldNamesFromLcom4Calculation.class and b/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/bin/ExclusionOfFieldNamesFromLcom4Calculation.class differ diff --git a/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/bin/LCOM4Exclusions.class b/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/bin/LCOM4Exclusions.class index 1c3b11f2568..53c65ec0981 100644 Binary files a/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/bin/LCOM4Exclusions.class and b/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/bin/LCOM4Exclusions.class differ diff --git a/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/bin/LCOM4WithIsolatedMethods.class b/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/bin/LCOM4WithIsolatedMethods.class new file mode 100644 index 00000000000..0e414fd437a Binary files /dev/null and b/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/bin/LCOM4WithIsolatedMethods.class differ diff --git a/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/bin/LCOM4WithWorkers.class b/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/bin/LCOM4WithWorkers.class new file mode 100644 index 00000000000..7ab3f59ce13 Binary files /dev/null and b/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/bin/LCOM4WithWorkers.class differ diff --git a/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/src/ExclusionOfFieldNamesFromLcom4Calculation.java b/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/src/ExclusionOfFieldNamesFromLcom4Calculation.java index 8e0490f3ea2..760389da3bb 100644 --- a/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/src/ExclusionOfFieldNamesFromLcom4Calculation.java +++ b/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/src/ExclusionOfFieldNamesFromLcom4Calculation.java @@ -5,13 +5,28 @@ import java.util.logging.Logger; public class ExclusionOfFieldNamesFromLcom4Calculation { - private static final Logger LOG =Logger.getLogger("log"); + private final Logger LOG = Logger.getLogger("log"); + private boolean killAccessorBlockA; + private boolean killAccessorBlockB; - public void firstMethod(){ + public void firstMethodBlockA(){ + secondMethodBlockA(); LOG.log(Level.INFO, "a message"); } - public void secondMethod(){ + public void secondMethodBlockA(){ LOG.log(Level.INFO, "a message"); + killAccessorBlockA = true; } + + public void firstMethodBlockB(){ + secondMethodBlockB(); + LOG.log(Level.INFO, "a message"); + } + + public void secondMethodBlockB(){ + LOG.log(Level.INFO, "a message"); + killAccessorBlockB = true; + } + } diff --git a/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/src/LCOM4Exclusions.java b/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/src/LCOM4Exclusions.java index aa1f6bffa26..25f4e8ed464 100644 --- a/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/src/LCOM4Exclusions.java +++ b/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/src/LCOM4Exclusions.java @@ -2,7 +2,8 @@ public abstract class LCOM4Exclusions implements Runnable { - public static String field; + public static String field1; + public static String field2; public LCOM4Exclusions(){} @@ -13,10 +14,14 @@ public abstract class LCOM4Exclusions implements Runnable { public abstract void doAbstractWork(); public void run(){ - int i =0; + run2(); + } + + public void run2(){ + run(); } public boolean equals(Object object){ - return false; + return (field1 == null) ? false : field1.equals(field2); } } diff --git a/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/src/LCOM4WithIsolatedMethods.java b/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/src/LCOM4WithIsolatedMethods.java new file mode 100644 index 00000000000..6e310f01703 --- /dev/null +++ b/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/src/LCOM4WithIsolatedMethods.java @@ -0,0 +1,11 @@ +public class LCOM4WithIsolatedMethods { + + public void myUnsupportedMethod(){ + throw new UnsupportedOperationException("..."); + } + + public String myConstantValue() { + return "..."; + } + +} diff --git a/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/src/LCOM4WithWorkers.java b/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/src/LCOM4WithWorkers.java new file mode 100644 index 00000000000..a4f966e0ed3 --- /dev/null +++ b/plugins/sonar-squid-java-plugin/test-resources/bytecode/lcom4/src/LCOM4WithWorkers.java @@ -0,0 +1,27 @@ +public class LCOM4WithWorkers { + private String field = "toto"; + + public String getField() { + return field; + } + + public void doSomething() { + task1(); + field = "tata"; + } + + public void doSomethingElse() { + task2(); + getField(); + } + + public void task1() { + System.out.println("Hello 1"); + System.out.println("Hello 2"); + } + + public void task2() { + System.out.println("Hello 1"); + System.out.println("Hello 2"); + } +} -- cgit v1.2.3