/**
* 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 com.opengamma.util.ArgumentChecker;
/**
* Represents a property name spanning a value property in both a requirement and spec in a map so they can be seen side-by-side
*/
public class SpanningValuePropertyEntryNode extends AbstractTreeTableLeafNode {
private static final Object NAME = null;
private final String _commonConstraintName;
private final String _requirementConstraint;
private final boolean _requirementOptional;
private final String _specificationConstraing;
private final boolean _specificationOptional;
public SpanningValuePropertyEntryNode(String commonConstraintName,
String requirementConstraint, boolean requirementOptional,
String specificationConstraint, boolean specificationOptional) {
ArgumentChecker.notNull(commonConstraintName, "commonConstraintName");
_commonConstraintName = commonConstraintName;
_requirementConstraint = requirementConstraint;
_requirementOptional = requirementOptional;
_specificationConstraing = specificationConstraint;
_specificationOptional = specificationOptional;
}
public String getCommonConstraintName() {
return _commonConstraintName;
}
public String getRequirementConstraint() {
return _requirementConstraint;
}
public boolean isRequirementOptional() {
return _requirementOptional;
}
public String getSpecificationConstraint() {
return _specificationConstraing;
}
public boolean isSpecificationOptional() {
return _specificationOptional;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + _commonConstraintName.hashCode();
result = prime * result + ((_requirementConstraint == null) ? 0 : _requirementConstraint.hashCode());
result = prime * result + (_requirementOptional ? 1231 : 1237);
result = prime * result + ((_specificationConstraing == null) ? 0 : _specificationConstraing.hashCode());
result = prime * result + (_specificationOptional ? 1231 : 1237);
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof SpanningValuePropertyEntryNode)) {
return false;
}
SpanningValuePropertyEntryNode other = (SpanningValuePropertyEntryNode) obj;
if (_commonConstraintName.equals(other._commonConstraintName)) {
return true;
}
if (_requirementConstraint == null) {
if (other._requirementConstraint != null) {
return false;
}
} else if (!_requirementConstraint.equals(other._requirementConstraint)) {
return false;
}
if (_requirementOptional != other._requirementOptional) {
return false;
}
if (_specificationConstraing == null) {
if (other._specificationConstraing != null) {
return false;
}
} else if (!_specificationConstraing.equals(other._specificationConstraing)) {
return false;
}
if (_specificationOptional != other._specificationOptional) {
return false;
}
return true;
}
@Override
public Object getColumn(int column) {
switch (column) {
case 0:
return getCommonConstraintName();
case 1:
return getRequirementConstraint() + (isRequirementOptional() ? "?" : "");
case 2:
return getSpecificationConstraint() + (isSpecificationOptional() ? "?" : "");
}
return null;
}
}