/**
* 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.List;
import com.opengamma.engine.value.ValueProperties;
public class ValuePropertiesNode implements TreeTableNode {
private static final String NAME = "ValueProperties";
private Object _parent;
private ValueProperties _constraints;
public ValuePropertiesNode(Object parent, ValueProperties constraints) {
_parent = parent;
_constraints = constraints;
}
@Override
public Object getChildAt(int index) {
if ((_constraints != null) && (_constraints.getProperties() != null)) {
List<String> propertyKeyList = new ArrayList<>(_constraints.getProperties());
return new ValuePropertyNode(propertyKeyList.get(index), _constraints.getValues(propertyKeyList.get(index)).toString());
} else {
return null;
}
}
@Override
public int getChildCount() {
if ((_constraints != null) && (_constraints.getProperties() != null)) {
return _constraints.getProperties().size();
} else {
return 0;
}
}
@Override
public int getIndexOfChild(Object child) {
if ((_constraints != null) && (_constraints.getProperties() != null)) {
if (child instanceof ValuePropertyNode) {
ValuePropertyNode childVP = (ValuePropertyNode) child;
List<String> propertyKeyList = new ArrayList<>(_constraints.getProperties());
int index = propertyKeyList.indexOf(childVP.getName());
if (index >= 0) {
if (_constraints.getValues(childVP.getName()).toString().equals(childVP.getValue())) {
return index;
}
}
}
}
return -1;
}
@Override
public Object getColumn(int column) {
if (column == 0) {
return NAME + ((getChildCount() == 0) ? " (empty)" : "");
}
return null;
}
}