private void UpdateStateQueue( MinPriorityDecoderQueue<DecoderState> minPriorityDecoderQueue, DecoderState curState, DecoderState prevState, ScoredPhrasePairForSentence phrase, HashMap<DecoderState, BackPointerElement> backPointers) { BackPointerElement elem = backPointers.get(curState); if (elem == null || elem.getState().getScore() < curState.getScore()) { minPriorityDecoderQueue.insert(curState, curState.getScore()); if (elem == null) { backPointers.put(curState, new BackPointerElement(prevState, phrase)); } else { elem.setState(prevState); elem.setPhrase(phrase); } } }