1 8 package com.mountainminds.eclemma.internal.core.instr; 9 10 import java.io.ByteArrayInputStream ; 11 import java.io.InputStream ; 12 import java.util.Date ; 13 14 import org.eclipse.core.resources.IFile; 15 import org.eclipse.core.resources.IFolder; 16 import org.eclipse.core.resources.IResource; 17 import org.eclipse.core.resources.IWorkspaceRoot; 18 import org.eclipse.core.resources.ResourcesPlugin; 19 import org.eclipse.core.runtime.CoreException; 20 import org.eclipse.core.runtime.IPath; 21 22 30 public class InstrMarker { 31 32 private static final String MARKERFILE = ".emma_instrumented"; 34 42 public static void mark(IPath path) throws CoreException { 43 IFolder folder = getFolder(path); 44 if (folder != null) { 45 IFile marker = folder.getFile(MARKERFILE); 46 if (!marker.exists()) { 47 marker.create(getMarkerContent(), true, null); 48 marker.setDerived(true); 49 } 50 } 51 } 52 53 60 public static boolean isMarked(IPath path) { 61 IFolder folder = getFolder(path); 62 return folder == null ? false : folder.getFile(MARKERFILE).exists(); 63 } 64 65 private static IFolder getFolder(IPath path) { 66 IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); 67 IResource res = root.findMember(path); 68 return res instanceof IFolder ? (IFolder) res : null; 69 } 70 71 private static InputStream getMarkerContent() { 72 String text = "Class files instrumented at " + new Date (); return new ByteArrayInputStream (text.getBytes()); 74 } 75 76 } 77 | Popular Tags |