1 8 package com.mountainminds.eclemma.internal.core; 9 10 import java.util.ArrayList ; 11 import java.util.Arrays ; 12 import java.util.List ; 13 14 import org.eclipse.core.runtime.IPath; 15 import org.eclipse.core.runtime.PlatformObject; 16 import org.eclipse.debug.core.ILaunchConfiguration; 17 18 import com.mountainminds.eclemma.core.ICoverageSession; 19 import com.mountainminds.eclemma.core.IInstrumentation; 20 21 27 public class CoverageSession extends PlatformObject implements ICoverageSession { 28 29 private final String description; 30 31 private final IInstrumentation[] instrumentations; 32 33 private final IPath[] coveragedatafiles; 34 35 private final ILaunchConfiguration launchconfiguration; 36 37 public CoverageSession(String description, 38 IInstrumentation[] instrumentations, IPath[] coveragedatafiles, 39 ILaunchConfiguration launchconfiguration) { 40 this.description = description; 41 this.instrumentations = instrumentations; 42 this.coveragedatafiles = coveragedatafiles; 43 this.launchconfiguration = launchconfiguration; 44 } 45 46 48 public String getDescription() { 49 return description; 50 } 51 52 public IInstrumentation[] getInstrumentations() { 53 return instrumentations; 54 } 55 56 public IPath[] getCoverageDataFiles() { 57 return this.coveragedatafiles; 58 } 59 60 public ILaunchConfiguration getLaunchConfiguration() { 61 return launchconfiguration; 62 } 63 64 public ICoverageSession merge(ICoverageSession other, String description) { 65 List i = merge(instrumentations, other.getInstrumentations()); 66 List c = merge(coveragedatafiles, other.getCoverageDataFiles()); 67 return new CoverageSession(description, 68 (IInstrumentation[]) i.toArray(new IInstrumentation[i.size()]), 69 (IPath[]) c.toArray(new IPath[c.size()]), launchconfiguration); 70 } 71 72 private List merge(Object [] arr1, Object [] arr2) { 73 List l = new ArrayList (Arrays.asList(arr1)); 74 for (int i = 0; i < arr2.length; i++) { 75 if (!l.contains(arr2[i])) { 76 l.add(arr2[i]); 77 } 78 } 79 return l; 80 } 81 82 } 83 | Popular Tags |