update copyright
[fedora-idea.git] / java / java-impl / src / com / intellij / refactoring / typeCook / deductive / resolver / SolutionHolder.java
blob2c2b4f13d352b7535401d577e13de959a0f6e1aa
1 /*
2 * Copyright 2000-2009 JetBrains s.r.o.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package com.intellij.refactoring.typeCook.deductive.resolver;
18 import java.util.LinkedList;
20 /**
21 * @author db
23 public class SolutionHolder {
24 private final LinkedList<Binding> mySolutions = new LinkedList<Binding>();
26 public void putSolution(final Binding b1) {
27 for (final Binding b2 : mySolutions) {
28 switch (b1.compare(b2)) {
29 case Binding.WORSE:
30 case Binding.SAME:
31 return;
33 case Binding.BETTER:
34 mySolutions.remove(b2);
35 mySolutions.addFirst(b1);
36 return;
38 case Binding.NONCOMPARABLE:
39 continue;
43 mySolutions.addFirst(b1);
46 public Binding getBestSolution() {
47 Binding best = null;
48 int width = 0;
50 for (final Binding binding : mySolutions) {
51 final int w = binding.getWidth();
53 if (w > width && binding.isValid()) {
54 width = w;
55 best = binding;
59 return best;