Package cdc.applic.factorization
Interface Splitter
public interface Splitter
Given 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
Modifier and TypeMethodDescription<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 Details
-
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)
-