public static ISharpenProject create(IProject project, IProgressMonitor monitor) throws CoreException { if (!project.hasNature(SharpenNature.NATURE_ID)) { return null; } ISharpenProject cached = (ISharpenProject) project.getSessionProperty(PROJECT_SESSION_KEY); if (null == cached) { cached = new SharpenProject(project); project.setSessionProperty(PROJECT_SESSION_KEY, cached); } return cached; }