1 29 30 package com.caucho.make; 31 32 import com.caucho.loader.Environment; 33 import com.caucho.util.Alarm; 34 import com.caucho.vfs.Dependency; 35 36 39 abstract public class CachedDependency implements Dependency { 40 private long _checkInterval; 41 private long _lastCheckTime; 42 private boolean _isModified; 43 44 public CachedDependency() 45 { 46 _checkInterval = Environment.getDependencyCheckInterval(); 47 } 48 49 52 public long getCheckInterval() 53 { 54 return _checkInterval; 55 } 56 57 60 public void setCheckInterval(long checkInterval) 61 { 62 _checkInterval = checkInterval; 63 } 64 65 68 public final boolean isModified() 69 { 70 long now = Alarm.getCurrentTime(); 71 if (now <= _lastCheckTime + _checkInterval) 72 return _isModified; 73 74 synchronized (this) { 75 now = Alarm.getCurrentTime(); 76 77 if (now <= _lastCheckTime + _checkInterval) 78 return _isModified; 79 80 _lastCheckTime = now; 81 } 82 83 _isModified = isModifiedImpl(); 84 85 return _isModified; 86 } 87 88 91 abstract public boolean isModifiedImpl(); 92 } 93 | Popular Tags |