001 package edu.rice.cs.cunit.instrumentors.threadCheck;
002
003 import edu.rice.cs.cunit.instrumentors.util.CompoundStrategy;
004
005 import java.util.List;
006
007 /**
008 * Compound instrumentor for the reflection-based Thread Check strategy.
009 * @author Mathias Ricken
010 */
011 public class CompoundReflectionThreadCheckStrategy extends CompoundStrategy {
012 /**
013 * Create a new compound instrumentor for the reflection-based Thread Check strategies.
014 * @param parameters parameters for the instrumentors
015 */
016 public CompoundReflectionThreadCheckStrategy(List<String> parameters) {
017 super(parameters);
018 AThreadCheckStrategy.SharedData sharedData =
019 new AThreadCheckStrategy.SharedData(parameters);
020 AAddThreadCheckStrategy.SharedAddData sharedAddData =
021 new AAddThreadCheckStrategy.SharedAddData(parameters,sharedData);
022
023 getCombined().add(sharedData); // collects warnings from AThreadCheckStrategy instances
024 getCombined().add(sharedAddData); // collects warnings from AAddThreadCheckStrategy instances
025 getCombined().add(new AddReflectionThreadCheckStrategy(parameters,
026 sharedData,
027 sharedAddData)); // add reflection-bsaed thread checks
028 }
029 }