/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.sesame.graph;
import java.util.List;
import com.opengamma.sesame.function.Parameter;
/**
* A node in the function model defined as an interface.
* <p>
* This is used for an object that is referred to via an interface.
* The implementation type is determined and created by the injection framework.
*/
public final class InterfaceNode extends ClassNode {
/**
* Creates an instance.
*
* @param interfaceType the expected type of the object created by this node, not null
* @param parameter the parameter this node satisfies, null if it's the root node
* @param implementationType the implementation type to create, may be null
* @param arguments the list of nodes representing the arguments to the constructor, not null
*/
InterfaceNode(Class<?> interfaceType, Class<?> implementationType, List<FunctionModelNode> arguments, Parameter parameter) {
super(interfaceType, implementationType, arguments, parameter);
}
//-------------------------------------------------------------------------
@Override
protected String prettyPrintLine() {
return getType().getSimpleName() + " (new " + getImplementationType().getSimpleName() + ")";
}
}