public final class Stigmata{\r
private static final Stigmata instance = new Stigmata();\r
\r
- private BirthmarkEnvironment defaultContext = BirthmarkEnvironment.getDefaultContext();\r
+ private BirthmarkEnvironment defaultEnvironment = BirthmarkEnvironment.getDefaultEnvironment();\r
private boolean configDone = false;\r
private Stack<WarningMessages> stack = new Stack<WarningMessages>();\r
private WarningMessages warnings;\r
return instance;\r
}\r
\r
- public void addOperationListener(BirthmarkEngineListener listener){\r
+ public void addBirthmarkEngineListener(BirthmarkEngineListener listener){\r
listeners.add(listener);\r
}\r
\r
- public void removeOperationListener(BirthmarkEngineListener listener){\r
+ public void removeBirthmarkEngineListener(BirthmarkEngineListener listener){\r
listeners.remove(listener);\r
}\r
\r
}\r
\r
/**\r
- * create a new {@link BirthmarkEnvironment <code>BirthmarkContext</code>}.\r
+ * create a new {@link BirthmarkEnvironment <code>BirthmarkEnvironment</code>}.\r
*/\r
- public BirthmarkEnvironment createContext(){\r
+ public BirthmarkEnvironment createEnvironment(){\r
operationStart(OperationType.CREATE_CONTEXT);\r
- BirthmarkEnvironment context = new BirthmarkEnvironment();\r
- operationDone(OperationType.EXTRACT_BIRTHMARKS);\r
- return context;\r
+ BirthmarkEnvironment environment = new BirthmarkEnvironment();\r
+ operationDone(OperationType.CREATE_CONTEXT);\r
+ return environment;\r
}\r
\r
public BirthmarkSet[] extract(String[] birthmarks, String[] files) throws BirthmarkExtractionFailedException{\r
operationStart(OperationType.EXTRACT_BIRTHMARKS);\r
- BirthmarkSet[] set = extract(birthmarks, files, createContext());\r
+ BirthmarkSet[] set = extract(birthmarks, files, createEnvironment());\r
operationDone(OperationType.EXTRACT_BIRTHMARKS);\r
\r
return set;\r
}\r
\r
public BirthmarkSet[] extract(String[] birthmarks, String[] files,\r
- BirthmarkEnvironment context) throws BirthmarkExtractionFailedException{\r
+ BirthmarkEnvironment environment) throws BirthmarkExtractionFailedException{\r
operationStart(OperationType.EXTRACT_BIRTHMARKS);\r
try{\r
- return extractImpl(birthmarks, files, context);\r
+ return extractImpl(birthmarks, files, environment);\r
} catch(IOException e){\r
throw new BirthmarkExtractionFailedException(e);\r
} finally{\r
\r
public ComparisonResultSet compare(BirthmarkSet[] holders) throws IOException{\r
operationStart(OperationType.COMPARE_BIRTHMARKS);\r
- ComparisonResultSet crs = compare(holders, createContext());\r
+ ComparisonResultSet crs = compare(holders, createEnvironment());\r
operationDone(OperationType.COMPARE_BIRTHMARKS);\r
\r
return crs;\r
}\r
\r
- public ComparisonResultSet compare(BirthmarkSet[] holders, BirthmarkEnvironment context) throws IOException{\r
+ public ComparisonResultSet compare(BirthmarkSet[] holders, BirthmarkEnvironment environment) throws IOException{\r
operationStart(OperationType.COMPARE_BIRTHMARKS);\r
- ComparisonResultSet result = new RoundRobinComparisonResultSet(holders, context, true);\r
+ ComparisonResultSet result = new RoundRobinComparisonResultSet(holders, environment, true);\r
operationDone(OperationType.COMPARE_BIRTHMARKS);\r
\r
return result;\r
\r
public ComparisonResultSet compare(BirthmarkSet[] holders1, BirthmarkSet[] holders2) throws IOException{\r
operationStart(OperationType.COMPARE_BIRTHMARKS);\r
- ComparisonResultSet crs = compare(holders1, holders2, createContext());\r
+ ComparisonResultSet crs = compare(holders1, holders2, createEnvironment());\r
operationDone(OperationType.COMPARE_BIRTHMARKS);\r
return crs;\r
}\r
\r
- public ComparisonResultSet compare(BirthmarkSet[] holders1, BirthmarkSet[] holders2, BirthmarkEnvironment context) throws IOException{\r
+ public ComparisonResultSet compare(BirthmarkSet[] holders1, BirthmarkSet[] holders2, BirthmarkEnvironment environment) throws IOException{\r
operationStart(OperationType.COMPARE_BIRTHMARKS);\r
- ComparisonResultSet result = new RoundRobinComparisonResultSet(holders1, holders2, context);\r
+ ComparisonResultSet result = new RoundRobinComparisonResultSet(holders1, holders2, environment);\r
operationDone(OperationType.COMPARE_BIRTHMARKS);\r
\r
return result;\r
\r
public ComparisonResultSet filter(ComparisonResultSet resultset, String[] filters){\r
operationStart(OperationType.FILTER_BIRTHMARKS);\r
- ComparisonResultSet crs = filter(resultset, filters, createContext());\r
+ ComparisonResultSet crs = filter(resultset, filters, createEnvironment());\r
operationDone(OperationType.FILTER_BIRTHMARKS);\r
\r
return crs;\r
}\r
\r
- public ComparisonResultSet filter(ComparisonResultSet resultset, String[] filters, BirthmarkEnvironment context){\r
+ public ComparisonResultSet filter(ComparisonResultSet resultset, String[] filters, BirthmarkEnvironment environment){\r
operationStart(OperationType.FILTER_BIRTHMARKS);\r
if(filters != null){\r
List<ComparisonPairFilterSet> filterList = new ArrayList<ComparisonPairFilterSet>();\r
- ComparisonPairFilterManager manager = context.getFilterManager();\r
+ ComparisonPairFilterManager manager = environment.getFilterManager();\r
for(int i = 0; i < filters.length; i++){\r
ComparisonPairFilterSet fset = manager.getFilterSet(filters[i]);\r
if(fset != null){\r
\r
public ComparisonResultSet filter(ComparisonResultSet resultset, ComparisonPairFilterSet[] filters){\r
operationStart(OperationType.FILTER_BIRTHMARKS);\r
- ComparisonResultSet crs = filter(resultset, filters, createContext());\r
+ ComparisonResultSet crs = filter(resultset, filters, createEnvironment());\r
operationDone(OperationType.FILTER_BIRTHMARKS);\r
\r
return crs;\r
}\r
\r
- public ComparisonResultSet filter(ComparisonResultSet resultset, ComparisonPairFilterSet[] filters, BirthmarkEnvironment context){\r
+ public ComparisonResultSet filter(ComparisonResultSet resultset, ComparisonPairFilterSet[] filters, BirthmarkEnvironment environment){\r
operationStart(OperationType.FILTER_BIRTHMARKS);\r
FilteredComparisonResultSet filterResultSet = new FilteredComparisonResultSet(resultset);\r
operationDone(OperationType.FILTER_BIRTHMARKS);\r
\r
public double compareDetails(BirthmarkSet h1, BirthmarkSet h2){\r
operationStart(OperationType.COMPARE_DETAIL_BIRTHMARKS);\r
- double similarity = compareDetails(h1, h2, createContext());\r
+ double similarity = compareDetails(h1, h2, createEnvironment());\r
operationDone(OperationType.COMPARE_DETAIL_BIRTHMARKS);\r
return similarity;\r
}\r
\r
- public double compareDetails(BirthmarkSet h1, BirthmarkSet h2, BirthmarkEnvironment context){\r
+ public double compareDetails(BirthmarkSet h1, BirthmarkSet h2, BirthmarkEnvironment environment){\r
operationStart(OperationType.COMPARE_DETAIL_BIRTHMARKS);\r
\r
List<Double> list = new ArrayList<Double>();\r
\r
double similarity = Double.NaN;\r
if(b1 != null && b2 != null){\r
- BirthmarkSpi spi = context.getService(type);\r
+ BirthmarkSpi spi = environment.getService(type);\r
BirthmarkComparator comparator = spi.getComparator();\r
\r
similarity = comparator.compare(b1, b2);\r
return similarity / count;\r
}\r
\r
- private BirthmarkExtractor[] createExtractors(String[] birthmarkTypes, BirthmarkEnvironment context){\r
+ private BirthmarkExtractor[] createExtractors(String[] birthmarkTypes, BirthmarkEnvironment environment){\r
List<BirthmarkExtractor> list = new ArrayList<BirthmarkExtractor>();\r
for(String type: birthmarkTypes){\r
- BirthmarkExtractor extractor = createExtractor(type, context);\r
+ BirthmarkExtractor extractor = createExtractor(type, environment);\r
list.add(extractor);\r
}\r
return list.toArray(new BirthmarkExtractor[list.size()]);\r
}\r
\r
- private BirthmarkExtractor createExtractor(String birthmarkType, BirthmarkEnvironment context){\r
- BirthmarkSpi spi = context.getService(birthmarkType);\r
+ private BirthmarkExtractor createExtractor(String birthmarkType, BirthmarkEnvironment environment){\r
+ BirthmarkSpi spi = environment.getService(birthmarkType);\r
if(spi != null){\r
BirthmarkExtractor extractor = spi.getExtractor();\r
try{\r
props.remove("provider");\r
for(Object keyObject: props.keySet()){\r
String key = "extractor." + spi.getType() + "." + String.valueOf(keyObject);\r
- if(context.getProperty(key) != null){\r
- BeanUtils.setProperty(extractor, (String)keyObject, context.getProperty(key));\r
+ if(environment.getProperty(key) != null){\r
+ BeanUtils.setProperty(extractor, (String)keyObject, environment.getProperty(key));\r
}\r
}\r
} catch(InvocationTargetException e){\r
\r
private void initConfiguration(InputStream in){\r
try {\r
- ConfigFileImporter parser = new ConfigFileImporter(defaultContext);\r
+ ConfigFileImporter parser = new ConfigFileImporter(defaultEnvironment);\r
parser.parse(in);\r
} catch(IOException e){\r
throw new ApplicationInitializationError(e);\r
}\r
for(Iterator<BirthmarkSpi> i = ServiceRegistry.lookupProviders(BirthmarkSpi.class); i.hasNext(); ){\r
BirthmarkSpi service = i.next();\r
- defaultContext.addService(service);\r
+ defaultEnvironment.addService(service);\r
}\r
configDone = true;\r
}\r
}\r
}\r
\r
- private BirthmarkSet[] extractImpl(String[] birthmarks, String[] files, BirthmarkEnvironment context) throws IOException, BirthmarkExtractionFailedException{\r
- ClassFileArchive[] archives = createArchives(files, context);\r
- BirthmarkExtractor[] extractors = createExtractors(birthmarks, context);\r
- ExtractionUnit unit = context.getExtractionUnit();\r
+ private BirthmarkSet[] extractImpl(String[] birthmarks, String[] files, BirthmarkEnvironment environment) throws IOException, BirthmarkExtractionFailedException{\r
+ ClassFileArchive[] archives = createArchives(files, environment);\r
+ BirthmarkExtractor[] extractors = createExtractors(birthmarks, environment);\r
+ ExtractionUnit unit = environment.getExtractionUnit();\r
\r
if(unit == ExtractionUnit.CLASS){\r
- return extractFromClass(archives, extractors, context);\r
+ return extractFromClass(archives, extractors, environment);\r
}\r
else if(unit == ExtractionUnit.PACKAGE){\r
- return extractFromPackage(archives, extractors, context);\r
+ return extractFromPackage(archives, extractors, environment);\r
}\r
else if(unit == ExtractionUnit.ARCHIVE){\r
- return extractFromProduct(archives, extractors, context);\r
+ return extractFromProduct(archives, extractors, environment);\r
}\r
return null;\r
}\r
\r
- private BirthmarkSet[] extractFromPackage(ClassFileArchive[] archives, BirthmarkExtractor[] extractors, BirthmarkEnvironment context) throws IOException, BirthmarkExtractionFailedException{\r
+ private BirthmarkSet[] extractFromPackage(ClassFileArchive[] archives, BirthmarkExtractor[] extractors, BirthmarkEnvironment environment) throws IOException, BirthmarkExtractionFailedException{\r
Map<String, BirthmarkSet> list = new HashMap<String, BirthmarkSet>();\r
\r
for(ClassFileArchive archive: archives){\r
b = extractor.createBirthmark();\r
bs.addBirthmark(b);\r
}\r
- extractor.extract(b, new ByteArrayInputStream(data), context);\r
+ extractor.extract(b, new ByteArrayInputStream(data), environment);\r
}\r
}\r
} catch(IOException e){\r
return n;\r
}\r
\r
- private BirthmarkSet[] extractFromClass(ClassFileArchive[] archives, BirthmarkExtractor[] extractors, BirthmarkEnvironment context) throws IOException, BirthmarkExtractionFailedException{\r
+ private BirthmarkSet[] extractFromClass(ClassFileArchive[] archives, BirthmarkExtractor[] extractors, BirthmarkEnvironment environment) throws IOException, BirthmarkExtractionFailedException{\r
List<BirthmarkSet> list = new ArrayList<BirthmarkSet>();\r
\r
for(ClassFileArchive archive: archives){\r
byte[] data = inputStreamToByteArray(entry.getLocation().openStream());\r
for(BirthmarkExtractor extractor: extractors){\r
if(extractor.isAcceptable(ExtractionUnit.CLASS)){\r
- Birthmark b = extractor.extract(new ByteArrayInputStream(data), context);\r
+ Birthmark b = extractor.extract(new ByteArrayInputStream(data), environment);\r
birthmarkset.addBirthmark(b);\r
}\r
}\r
return list.toArray(new BirthmarkSet[list.size()]);\r
}\r
\r
- private BirthmarkSet[] extractFromProduct(ClassFileArchive[] archives, BirthmarkExtractor[] extractors, BirthmarkEnvironment context) throws IOException, BirthmarkExtractionFailedException{\r
+ private BirthmarkSet[] extractFromProduct(ClassFileArchive[] archives, BirthmarkExtractor[] extractors, BirthmarkEnvironment environment) throws IOException, BirthmarkExtractionFailedException{\r
List<BirthmarkSet> list = new ArrayList<BirthmarkSet>();\r
\r
for(ClassFileArchive archive: archives){\r
b = extractor.createBirthmark();\r
birthmarkset.addBirthmark(b);\r
}\r
- extractor.extract(b, new ByteArrayInputStream(data), context);\r
+ extractor.extract(b, new ByteArrayInputStream(data), environment);\r
}\r
}\r
} catch(IOException e){\r
return list.toArray(new BirthmarkSet[list.size()]);\r
}\r
\r
- private ClassFileArchive[] createArchives(String[] files, BirthmarkEnvironment context) throws IOException, MalformedURLException{\r
- ClasspathContext bytecode = context.getClasspathContext();\r
+ private ClassFileArchive[] createArchives(String[] files, BirthmarkEnvironment environment) throws IOException, MalformedURLException{\r
+ ClasspathContext bytecode = environment.getClasspathContext();\r
List<ClassFileArchive> archives = new ArrayList<ClassFileArchive>();\r
for(int i = 0; i < files.length; i++){\r
try{\r