Deleted unused AssignmentCalculator
diff --git a/plugins/org.eclipse.epsilon.flexmi/src/org/eclipse/epsilon/flexmi/AssignmentCalculator.java b/plugins/org.eclipse.epsilon.flexmi/src/org/eclipse/epsilon/flexmi/AssignmentCalculator.java
deleted file mode 100644
index e80f77c..0000000
--- a/plugins/org.eclipse.epsilon.flexmi/src/org/eclipse/epsilon/flexmi/AssignmentCalculator.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*********************************************************************
-* Copyright (c) 2008 The University of York.
-*
-* This program and the accompanying materials are made
-* available under the terms of the Eclipse Public License 2.0
-* which is available at https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-**********************************************************************/
-package org.eclipse.epsilon.flexmi;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class AssignmentCalculator {
-
- public static void main(String[] args) {
-
- Map<Object, Object> assignment = new AssignmentCalculator().calculateAssignment(Arrays.asList(10, 20), Arrays.asList(5,6,7), (left, right) -> {
- int leftInt = (Integer) left;
- int rightInt = (Integer) right;
-
- if (leftInt > rightInt) {
- return rightInt / (float) leftInt;
- }
- else {
- return -1;
- }
- });
-
- for (Object key : assignment.keySet()) {
- System.out.println(key + "->" + assignment.get(key));
- }
- }
-
- public Map<Object, Object> calculateAssignment(List<?> leftList, List<?> rightList, AssignmentScorer scorer) {
- ArrayList<?> leftArrayList = toArrayList(leftList);
- ArrayList<?> rightArrayList = toArrayList(rightList);
- List<Assignment> bestAssignment = null;
- float maxScore = Float.NEGATIVE_INFINITY;
-
- for (List<Assignment> assignmentList : calculateAssignments(leftArrayList, rightArrayList)) {
- float score = 0;
- for (Assignment assignment : assignmentList) {
- score += scorer.score(assignment.getLeft(), assignment.getRight());
- }
- if (score > maxScore) {
- maxScore = score;
- bestAssignment = assignmentList;
- }
- }
-
- HashMap<Object, Object> map = new HashMap<>();
- if (bestAssignment != null) {
- for (Assignment assignment : bestAssignment) {
- if (scorer.score(assignment.getLeft(), assignment.getRight()) >= 0) {
- map.put(assignment.getLeft(), assignment.getRight());
- }
- }
- }
- return map;
- }
-
- private static ArrayList<?> toArrayList(List<?> list) {
- if (list instanceof ArrayList<?>) {
- return (ArrayList<?>) list;
- }
- else {
- return new ArrayList<Object>(list);
- }
- }
-
-
- private ArrayList<ArrayList<Assignment>> calculateAssignments(ArrayList<?> leftList, ArrayList<?> rightList) {
-
- Tree<Assignment> root = new Tree<>();
-
- calculateAssignments(root, leftList, rightList);
-
- ArrayList<ArrayList<Tree<Assignment>>> allPaths = root.getAllPaths();
- ArrayList<ArrayList<Assignment>> assignmentLists = new ArrayList<>(allPaths.size());
-
- for (ArrayList<Tree<Assignment>> path : allPaths) {
- ArrayList<Assignment> assignmentList = new ArrayList<>(path.size());
- for (Tree<Assignment> tree : path) {
- assignmentList.add(tree.getValue());
- }
- assignmentLists.add(assignmentList);
- }
-
- return assignmentLists;
- }
-
- private void calculateAssignments(Tree<Assignment> parent, ArrayList<?> leftList, ArrayList<?> rightList) {
-
- if (leftList.isEmpty()) return;
-
- Object firstLeft = leftList.get(0);
- for (Object right : rightList) {
- Tree<Assignment> tree = new Tree<>();
- tree.setValue(new Assignment(firstLeft, right));
- parent.getChildren().add(tree);
-
- ArrayList<Object> newLeftList = (ArrayList<Object>) leftList.clone();
- newLeftList.remove(firstLeft);
- ArrayList<Object> newRightList = (ArrayList<Object>) rightList.clone();
- newRightList.remove(right);
-
- calculateAssignments(tree, newLeftList, newRightList);
-
- }
- }
-
- public interface AssignmentScorer {
-
- public float score(Object left, Object right);
-
- }
-
- class Tree<T> {
-
- protected ArrayList<Tree<T>> children = new ArrayList<>();
- protected T value;
-
- public List<Tree<T>> getChildren() {
- return children;
- }
-
- public ArrayList<ArrayList<Tree<T>>> getAllPaths() {
-
- ArrayList<ArrayList<Tree<T>>> allPaths = new ArrayList<>();
-
- for (Tree<T> child : getChildren()) {
- ArrayList<Tree<T>> path = new ArrayList<>();
- path.add(child);
- collectAllPaths(path, allPaths);
- }
-
- return allPaths;
- }
-
- public void collectAllPaths(ArrayList<Tree<T>> path, ArrayList<ArrayList<Tree<T>>> allPaths) {
- Tree<T> lastElement = path.get(path.size()-1);
- if (lastElement.getChildren().isEmpty()) {
- allPaths.add(path);
- }
- else {
- for (Tree<T> child : lastElement.getChildren()) {
- ArrayList<Tree<T>> newPath = new ArrayList<>((List) path.clone());
- newPath.add(child);
- collectAllPaths(newPath, allPaths);
- }
- }
- }
-
- public void setValue(T value) {
- this.value = value;
- }
-
- public T getValue() {
- return value;
- }
-
- }
-
- private class Assignment {
-
- protected Object left;
- protected Object right;
-
- public Assignment(Object left, Object right) {
- this.left = left;
- this.right = right;
- }
-
- public Object getLeft() {
- return left;
- }
-
- public Object getRight() {
- return right;
- }
-
- @Override
- public String toString() {
- return left + " -> " + right;
- }
- }
-
-}