Home | History | Annotate | Download | only in data
      1 /* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved.
      2  *
      3  * This program and the accompanying materials are made available under
      4  * the terms of the Common Public License v1.0 which accompanies this distribution,
      5  * and is available at http://www.eclipse.org/legal/cpl-v10.html
      6  *
      7  * $Id: ICoverageData.java,v 1.1.1.1 2004/05/09 16:57:31 vlad_r Exp $
      8  */
      9 package com.vladium.emma.data;
     10 
     11 // ----------------------------------------------------------------------------
     12 /**
     13  * @author Vlad Roubtsov, (C) 2003
     14  */
     15 public
     16 interface ICoverageData extends IMergeable
     17 {
     18     // public: ................................................................
     19 
     20     final class DataHolder
     21     {
     22         public DataHolder (final boolean [][] coverage, final long stamp)
     23         {
     24             m_coverage = coverage;
     25             m_stamp = stamp;
     26         }
     27 
     28         public final boolean [][] m_coverage;
     29         public final long m_stamp;
     30 
     31     } // end of nested class
     32 
     33     Object lock ();
     34 
     35     ICoverageData shallowCopy ();
     36 
     37     int size ();
     38 
     39     /**
     40      * can return null
     41      * can return data holder with a different version stamp than cls.getStamp()
     42      */
     43     DataHolder getCoverage (ClassDescriptor cls);
     44 
     45     //void setImmutable (); // TODO: this only disables addClass(), not coverage array updates; rename
     46     void addClass (boolean [][] coverage, String classVMName, long stamp);
     47 
     48 } // end of interface
     49 // ----------------------------------------------------------------------------