Package cdc.applic.factorization
Interface Splitter
-
public interface SplitterGiven a set of objects that have disjoint applicabilities and a target applicability, this is used to produce a new set where exactly one object has a target applicability and all other have an applicability that does not intersect with target applicability.- Author:
- Damien Carbonne
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <T> List<SplitEvent<T>>split(List<? extends T> objects, Expression targetApplicability, ApplicabilityExtractor<? super T> applicabilityExtractor, FactorizationFeatures features)<T> voidsplit(List<? extends T> objects, Expression targetApplicability, ApplicabilityExtractor<? super T> applicabilityExtractor, FactorizationFeatures features, SplitHandler<T> handler)Split a set of objects that have disjoint applicabilities.
-
-
-
Method Detail
-
split
<T> void split(List<? extends T> objects, Expression targetApplicability, ApplicabilityExtractor<? super T> applicabilityExtractor, FactorizationFeatures features, SplitHandler<T> handler)
Split a set of objects that have disjoint applicabilities.This can:
- Change (reduce) that applicability of an object
- Remove an object
- Create an object, which can happen at most once.
- Reuse an object (that is the merge of remove/create and can happen at most once).
- Type Parameters:
T- The object type.- Parameters:
objects- The objects.targetApplicability- The target applicability.applicabilityExtractor- The applicability extractor.features- The features to apply.handler- The event handler.
-
split
<T> List<SplitEvent<T>> split(List<? extends T> objects, Expression targetApplicability, ApplicabilityExtractor<? super T> applicabilityExtractor, FactorizationFeatures features)
-
-