/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.integration.tool.enginedebugger.node; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Set; import com.opengamma.engine.depgraph.ResolutionFailure; import com.opengamma.engine.depgraph.ResolutionFailureImpl; import com.opengamma.integration.tool.enginedebugger.ResolutionFailureChildNodeCreatingVisitor; /** * wrapper for a set of resolution failures to make tree table model cleaner. */ public class UnsatisfiedResolutionFailuresNode implements TreeTableNode { private static final String NAME = "UnsatisfiedResolutionFailures"; @SuppressWarnings("unused") private Object _parent; private List<ResolutionFailure> _failures; private List<Collection<Object>> _expandedFailures; public UnsatisfiedResolutionFailuresNode(Object parent, Set<ResolutionFailure> failures) { _parent = parent; _failures = new ArrayList<ResolutionFailure>(failures); _expandedFailures = new ArrayList<Collection<Object>>(); for (ResolutionFailure failure : _failures) { _expandedFailures.add(failure.accept(new ResolutionFailureChildNodeCreatingVisitor((ResolutionFailureImpl) failure))); } } @Override public Object getChildAt(int index) { return _expandedFailures.get(index); } @Override public int getChildCount() { return _expandedFailures.size(); } @Override public int getIndexOfChild(Object child) { return _expandedFailures.indexOf(child); } @Override public Object getColumn(int column) { if (column == 0) { return NAME; } return null; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((_failures == null) ? 0 : _failures.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof UnsatisfiedResolutionFailuresNode)) { return false; } UnsatisfiedResolutionFailuresNode other = (UnsatisfiedResolutionFailuresNode) obj; if (_failures == null) { if (other._failures != null) { return false; } } else if (!_failures.equals(other._failures)) { return false; } return true; } }