1 cananian 1.1.2.1 // FieldOracle.java, created Wed Nov 15 15:57:40 2000 by cananian 2 cananian 1.1.2.2 // Copyright (C) 2000 C. Scott Ananian <cananian@alumni.princeton.edu> 3 cananian 1.1.2.1 // Licensed under the terms of the GNU GPL; see COPYING for details. 4 cananian 1.1.2.1 package harpoon.Analysis.Transactions; 5 cananian 1.1.2.1 6 cananian 1.1.2.1 import harpoon.ClassFile.HField; 7 cananian 1.1.2.1 8 cananian 1.1.2.1 /** 9 cananian 1.1.2.1 * A <code>FieldOracle</code> helps the <code>SyncTransformer</code> 10 cananian 1.1.2.1 * decide which field references it can skip checks for. 11 cananian 1.1.2.1 * 12 cananian 1.1.2.2 * @author C. Scott Ananian <cananian@alumni.princeton.edu> 13 cananian 1.2 * @version $Id: FieldOracle.java,v 1.2 2002/02/25 21:00:09 cananian Exp $ 14 cananian 1.1.2.1 */ 15 cananian 1.1.2.1 abstract class FieldOracle { 16 cananian 1.1.2.1 /** Returns <code>true</code> if this field can be read within a 17 cananian 1.1.2.1 synchronized context. */ 18 cananian 1.1.2.1 public abstract boolean isSyncRead(HField hf); 19 cananian 1.1.2.1 /** Returns <code>true</code> if this field can be written within a 20 cananian 1.1.2.1 synchronized context. */ 21 cananian 1.1.2.1 public abstract boolean isSyncWrite(HField hf); 22 cananian 1.1.2.1 /** Returns <code>true</code> if this field can be read outside a 23 cananian 1.1.2.1 synchronized context. */ 24 cananian 1.1.2.1 public abstract boolean isUnsyncRead(HField hf); 25 cananian 1.1.2.1 /** Returns <code>true</code> if this field can be written outside a 26 cananian 1.1.2.1 synchronized context. */ 27 cananian 1.1.2.1 public abstract boolean isUnsyncWrite(HField hf); 28 cananian 1.2 }