aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/optimization/ObjectiveKind.java
blob: f65428feb177aa4dccd3fbb5b50b1fdba4e134ef (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.optimization;

import java.util.Comparator;

import org.eclipse.viatra.dse.objectives.Comparators;

public enum ObjectiveKind {
	LOWER_IS_BETTER {

		@Override
		public Comparator<Double> getComparator() {
			return Comparators.LOWER_IS_BETTER;
		}

	},
	HIGHER_IS_BETTER {

		@Override
		public Comparator<Double> getComparator() {
			return Comparators.HIGHER_IS_BETTER;
		}

	};

	public abstract Comparator<Double> getComparator();

	public static ObjectiveKind fromComparator(Comparator<Double> comparator) {
		if (Comparators.LOWER_IS_BETTER.equals(comparator)) {
			return ObjectiveKind.LOWER_IS_BETTER;
		} else if (Comparators.HIGHER_IS_BETTER.equals(comparator)) {
			return ObjectiveKind.HIGHER_IS_BETTER;
		} else {
			throw new IllegalStateException("Only LOWER_IS_BETTER and HIGHER_IS_BETTER comparators are supported.");
		}
	}
}