Package tools.refinery.logic.term
Class PartialAggregator<A extends AbstractValue<A,C>,C,A2 extends AbstractValue<A2,C2>,C2>
java.lang.Object
tools.refinery.logic.term.PartialAggregator<A,C,A2,C2>
- All Implemented Interfaces:
AnyPartialAggregator
- Direct Known Subclasses:
PartialAggregator.JoinAggregator
,PartialAggregator.MeetAggregator
,PartialAggregator.MultiplicityInsensitive
,PartialAggregator.MultiplicitySensitive
public abstract sealed class PartialAggregator<A extends AbstractValue<A,C>,C,A2 extends AbstractValue<A2,C2>,C2>
extends Object
implements AnyPartialAggregator
permits PartialAggregator.MultiplicitySensitive<A,C,A2,C2,T>, PartialAggregator.MultiplicityInsensitive<A,C,A2,C2>, PartialAggregator.MeetAggregator<A,C>, PartialAggregator.JoinAggregator<A,C>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final class
PartialAggregator.JoinAggregator<A extends AbstractValue<A,
C>, C> static final class
PartialAggregator.MeetAggregator<A extends AbstractValue<A,
C>, C> static final class
PartialAggregator.MultiplicityInsensitive<A extends AbstractValue<A,
C>, C, A2 extends AbstractValue<A2, C2>, C2> static final class
PartialAggregator.MultiplicitySensitive<A extends AbstractValue<A,
C>, C, A2 extends AbstractValue<A2, C2>, C2, T> -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
PartialAggregator
(AbstractDomain<A, C> resultDomain, AbstractDomain<A2, C2> bodyDomain) -
Method Summary
Modifier and TypeMethodDescriptionstatic <A extends AbstractValue<A,
C>, C>
PartialAggregator<A, C, A, C> join
(AbstractDomain<A, C> domain) static <A extends AbstractValue<A,
C>, C>
PartialAggregator<A, C, A, C> meet
(AbstractDomain<A, C> domain) static <A extends AbstractValue<A,
C>, C, A2 extends AbstractValue<A2, C2>, C2>
PartialAggregator<A, C, A2, C2> multiplicityInsensitive
(AbstractDomain<A, C> resultDomain, AbstractDomain<A2, C2> bodyDomain, A2 neutralElement, Aggregator<A, A2> innerAggregator) static <A extends AbstractValue<A,
C>, C>
PartialAggregator<A, C, A, C> multiplicityInsensitive
(AbstractDomain<A, C> domain, Aggregator<A, A> innerAggregator) static <A extends AbstractValue<A,
C>, C, T>
PartialAggregator<A, C, A, C> multiplicitySensitive
(AbstractDomain<A, C> domain, Class<T> intermediateType, BiFunction<Term<IntInterval>, Term<A>, Term<T>> withWeight, Aggregator<A, T> innerAggregator) static <A extends AbstractValue<A,
C>, C>
PartialAggregator<A, C, A, C> multiplicitySensitive
(AbstractDomain<A, C> domain, BiFunction<Term<IntInterval>, Term<A>, Term<A>> withWeight, Aggregator<A, A> innerAggregator) static <A extends AbstractValue<A,
C>, C, A2 extends AbstractValue<A2, C2>, C2, T>
PartialAggregator<A, C, A2, C2> multiplicitySensitive
(AbstractDomain<A, C> resultDomain, AbstractDomain<A2, C2> bodyDomain, Class<T> intermediateType, BiFunction<Term<IntInterval>, Term<A2>, Term<T>> withWeight, Aggregator<A, T> innerAggregator) static <A extends AbstractValue<A,
C>, C, A2 extends AbstractValue<A2, C2>, C2>
PartialAggregator<A, C, A2, C2> multiplicitySensitive
(AbstractDomain<A, C> resultDomain, AbstractDomain<A2, C2> bodyDomain, BiFunction<Term<IntInterval>, Term<A2>, Term<A2>> withWeight, Aggregator<A, A2> innerAggregator)
-
Constructor Details
-
PartialAggregator
-
-
Method Details
-
getBodyDomain
- Specified by:
getBodyDomain
in interfaceAnyPartialAggregator
-
getResultDomain
- Specified by:
getResultDomain
in interfaceAnyPartialAggregator
-
multiplicitySensitive
public static <A extends AbstractValue<A,C>, PartialAggregator<A,C, A2 extends AbstractValue<A2, C2>, C2, T> C, multiplicitySensitiveA2, C2> (AbstractDomain<A, C> resultDomain, AbstractDomain<A2, C2> bodyDomain, Class<T> intermediateType, BiFunction<Term<IntInterval>, Term<A2>, Term<T>> withWeight, Aggregator<A, T> innerAggregator) -
multiplicitySensitive
public static <A extends AbstractValue<A,C>, PartialAggregator<A,C, A2 extends AbstractValue<A2, C2>, C2> C, multiplicitySensitiveA2, C2> (AbstractDomain<A, C> resultDomain, AbstractDomain<A2, C2> bodyDomain, BiFunction<Term<IntInterval>, Term<A2>, Term<A2>> withWeight, Aggregator<A, A2> innerAggregator) -
multiplicitySensitive
public static <A extends AbstractValue<A,C>, PartialAggregator<A,C, T> C, multiplicitySensitiveA, C> (AbstractDomain<A, C> domain, Class<T> intermediateType, BiFunction<Term<IntInterval>, Term<A>, Term<T>> withWeight, Aggregator<A, T> innerAggregator) -
multiplicitySensitive
public static <A extends AbstractValue<A,C>, PartialAggregator<A,C> C, multiplicitySensitiveA, C> (AbstractDomain<A, C> domain, BiFunction<Term<IntInterval>, Term<A>, Term<A>> withWeight, Aggregator<A, A> innerAggregator) -
multiplicityInsensitive
public static <A extends AbstractValue<A,C>, PartialAggregator<A,C, A2 extends AbstractValue<A2, C2>, C2> C, multiplicityInsensitiveA2, C2> (AbstractDomain<A, C> resultDomain, AbstractDomain<A2, C2> bodyDomain, A2 neutralElement, Aggregator<A, A2> innerAggregator) -
multiplicityInsensitive
public static <A extends AbstractValue<A,C>, PartialAggregator<A,C> C, multiplicityInsensitiveA, C> (AbstractDomain<A, C> domain, Aggregator<A, A> innerAggregator) -
meet
public static <A extends AbstractValue<A,C>, PartialAggregator<A,C> C, meetA, C> (AbstractDomain<A, C> domain) -
join
public static <A extends AbstractValue<A,C>, PartialAggregator<A,C> C, joinA, C> (AbstractDomain<A, C> domain)
-