1 package no.uio.ifi.refaktor.utils;
3 import org.eclipse.jdt.core.ICompilationUnit;
4 import org.eclipse.jdt.core.dom.CompilationUnit;
6 public class CompilationUnitRecentlyUsedCache implements CompilationUnitCache {
8 private ICompilationUnit unit;
9 private Long modificationStamp;
10 private CompilationUnit concreteCompilationUnit;
13 public boolean contains(ICompilationUnit unit) {
14 if (!hasMatchingCompilationUnit(unit))
17 if (CacheCompilationUnitUtils.hasMatchingModificationStamp(unit, modificationStamp)) {
26 public CompilationUnit get(ICompilationUnit unit) {
27 return hasMatchingCompilationUnit(unit) ? concreteCompilationUnit : null;
30 private boolean hasMatchingCompilationUnit(ICompilationUnit unit) {
31 return this.unit != null && this.unit.equals(unit);
34 private void cleanCache() {
36 modificationStamp = null;
37 concreteCompilationUnit = null;
41 public void add(ICompilationUnit unit, CompilationUnit concreteCompilationUnit) {
43 this.concreteCompilationUnit = concreteCompilationUnit;
44 modificationStamp = CacheCompilationUnitUtils.getModificationStampOf(unit);