package org.infernus.idea.checkstyle.checker; import com.intellij.openapi.project.Project; import org.jetbrains.annotations.NotNull; /** * Value for checker cache. */ class CachedChecker { /** * We cache purely to ignore repeated requests in a multi-file scan. Hence we'll treat the cached * value as valid for time in ms. */ private static final int CACHE_VALID_TIME = 60000; private final Project project; private final CheckStyleChecker checkStyleChecker; private long timeStamp; CachedChecker(@NotNull final Project pProject, @NotNull final CheckStyleChecker checkStyleChecker) { project = pProject; this.checkStyleChecker = checkStyleChecker; this.timeStamp = System.currentTimeMillis(); } public CheckStyleChecker getCheckStyleChecker() { this.timeStamp = System.currentTimeMillis(); return checkStyleChecker; } @NotNull public Project getProject() { return project; } private long getTimeStamp() { return timeStamp; } public boolean isValid() { return (getTimeStamp() + CACHE_VALID_TIME) >= System.currentTimeMillis(); } public void destroy() { checkStyleChecker.destroy(); } }