18ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved. 28ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 38ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * This program and the accompanying materials are made available under 48ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * the terms of the Common Public License v1.0 which accompanies this distribution, 58ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * and is available at http://www.eclipse.org/legal/cpl-v10.html 68ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 78ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * $Id: CoverageOptionsFactory.java,v 1.1.2.1 2004/06/27 22:58:26 vlad_r Exp $ 88ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project */ 98ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectpackage com.vladium.emma.data; 108ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 118ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectimport java.util.Properties; 128ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 138ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectimport com.vladium.emma.instr.InstrProcessor; 148ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectimport com.vladium.util.IProperties; 158ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectimport com.vladium.util.Property; 168ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 178ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project// ---------------------------------------------------------------------------- 188ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/** 198ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * @author Vlad Roubtsov, (C) 2004 208ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project */ 218ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectpublic 228ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectabstract class CoverageOptionsFactory 238ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project{ 248ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project // public: ................................................................ 258ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 268ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project public static CoverageOptions create (final Properties properties) 278ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project { 288ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project final boolean excludeSyntheticMethods = 298ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project Property.toBoolean (properties.getProperty (InstrProcessor.PROPERTY_EXCLUDE_SYNTHETIC_METHODS, 308ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project InstrProcessor.DEFAULT_EXCLUDE_SYNTHETIC_METHODS)); 318ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 328ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project final boolean excludeBridgeMethods = 338ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project Property.toBoolean (properties.getProperty (InstrProcessor.PROPERTY_EXCLUDE_BRIDGE_METHODS, 348ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project InstrProcessor.DEFAULT_EXCLUDE_BRIDGE_METHODS)); 358ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 368ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project final boolean doSUIDCompensaton = 378ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project Property.toBoolean (properties.getProperty (InstrProcessor.PROPERTY_DO_SUID_COMPENSATION, 388ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project InstrProcessor.DEFAULT_DO_SUID_COMPENSATION)); 398ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 408ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project return new CoverageOptions (excludeSyntheticMethods, excludeBridgeMethods, doSUIDCompensaton); 418ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project } 428ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 438ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project public static CoverageOptions create (final IProperties properties) 448ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project { 458ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project final boolean excludeSyntheticMethods = 468ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project Property.toBoolean (properties.getProperty (InstrProcessor.PROPERTY_EXCLUDE_SYNTHETIC_METHODS, 478ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project InstrProcessor.DEFAULT_EXCLUDE_SYNTHETIC_METHODS)); 488ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 498ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project final boolean excludeBridgeMethods = 508ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project Property.toBoolean (properties.getProperty (InstrProcessor.PROPERTY_EXCLUDE_BRIDGE_METHODS, 518ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project InstrProcessor.DEFAULT_EXCLUDE_BRIDGE_METHODS)); 528ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 538ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project final boolean doSUIDCompensaton = 548ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project Property.toBoolean (properties.getProperty (InstrProcessor.PROPERTY_DO_SUID_COMPENSATION, 558ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project InstrProcessor.DEFAULT_DO_SUID_COMPENSATION)); 568ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 578ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project return new CoverageOptions (excludeSyntheticMethods, excludeBridgeMethods, doSUIDCompensaton); 588ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project } 598ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 608ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project // protected: ............................................................. 618ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 628ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project // package: ............................................................... 638ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 648ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project // private: ............................................................... 658ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 668ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 678ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project private CoverageOptionsFactory () {} // this class is not extendible 688ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 698ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project} // end of class 708ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project// ----------------------------------------------------------------------------