/** * This file is licensed under the University of Illinois/NCSA Open Source License. See LICENSE.TXT for details. */ package edu.illinois.keshmesh.detector; /** * * @author Samira Tasharofi */ import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; import edu.illinois.keshmesh.detector.util.AnalysisUtils; public class LCK01JReusableCheckerFactory { private static final String JAVA_LANG_INTEGER = "java.lang.Integer"; private static final String JAVA_LANG_STRING = "java.lang.String"; private static final String JAVA_LANG_BOOLEAN = "java.lang.Boolean"; private static final String JAVA_LANG_LONG = "java.lang.Long"; private static final String JAVA_LANG_SHORT = "java.lang.Short"; private static final String JAVA_LANG_FLOAT = "java.lang.Float"; private static final String JAVA_LANG_DOUBLE = "java.lang.Double"; private static final String JAVA_LANG_BYTE = "java.lang.Byte"; public static LCK01JReusableChecker createReusableChecker(InstanceKey instanceKey) { String javaType = AnalysisUtils.walaTypeNameToJavaName(instanceKey.getConcreteType().getName()); if (javaType.equals(JAVA_LANG_INTEGER)) return new ReusableIntegerChecker(instanceKey); else if (javaType.equals(JAVA_LANG_BOOLEAN)) return new ReusableBooleanChecker(instanceKey); else if (javaType.equals(JAVA_LANG_STRING)) return new ReusableStringChecker(instanceKey); else if (javaType.equals(JAVA_LANG_LONG)) return new ReusableLongChecker(instanceKey); else if (javaType.equals(JAVA_LANG_SHORT)) return new ReusableShortChecker(instanceKey); else if (javaType.equals(JAVA_LANG_FLOAT)) return new ReusableFloatChecker(instanceKey); else if (javaType.equals(JAVA_LANG_DOUBLE)) return new ReusableDoubleChecker(instanceKey); else if (javaType.equals(JAVA_LANG_BYTE)) return new ReusableByteChecker(instanceKey); else return new NullLCK01ReusableChecker(); } }