00001 package gov.nasa.arc.ase.jpf.jvm.runtime;
00002
00003 import java.util.*;
00004 import gov.nasa.arc.ase.jpf.*;
00005 import gov.nasa.arc.ase.jpf.jvm.*;
00006 import gov.nasa.arc.ase.util.Debug;
00007
00008 public class LockNodeInfo{
00009
00010 private Lock lock;
00011 private boolean marked = false;
00012 private LockAccessList accesses = new LockAccessList();
00013
00014
00015 public LockNodeInfo(Lock lock){
00016 this.lock = lock;
00017 }
00018 public void addCallChain(ThreadInfo thread){
00019 accesses.addCallChain(thread);
00020 }
00021 public Lock getLock(){
00022 return lock;
00023 }
00024 public LockAccessList getLockAccessList(){
00025 return accesses;
00026 }
00027 public boolean isMarked(){
00028 return marked;
00029 }
00030 public void mark(){
00031 marked = true;
00032 }
00033 public void print(){
00034 LockOrder.print("Lock on ");
00035 lock.print();
00036 LockOrder.print(" is taken last");
00037 accesses.print();
00038 }
00039 public void printTreeInfo(){
00040 lock.print();
00041 }
00042 public void unMark(){
00043 marked = false;
00044 }
00045 }