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// ----------------------------------------------------------------------------