1 package org.simantics.scl.compiler.elaboration.chr.planning;
\r
3 public abstract class PrePlanItem {
\r
5 /* Primary priorities:
\r
7 * 1 = functional calculation
\r
8 * 2 = almost completely bound relation
\r
9 * 3 = completely inbound relation
\r
11 public double primaryPriority = Double.POSITIVE_INFINITY;
\r
12 public int secondaryPriority;
\r
13 public long location;
\r
15 public PrePlanItem(int secondaryPriority) {
\r
16 this.secondaryPriority = secondaryPriority;
\r
19 public int compare(PrePlanItem other) {
\r
20 if(primaryPriority < other.primaryPriority)
\r
22 if(primaryPriority > other.primaryPriority)
\r
24 return Integer.compare(secondaryPriority, other.secondaryPriority);
\r
27 public abstract void initializeListeners(QueryPlanningContext context);
\r
28 public abstract void variableSolved(QueryPlanningContext context, int variableId);
\r
30 public abstract void generate(QueryPlanningContext context);
\r