// One type must be a complex type (i. e. a bean), the other must be
// a type that can be used as lookup key.
if (targetType instanceof ComplexTypeItem)
{
// Check the target type for its id member
DataMember idMember = ((ComplexTypeItem) targetType).getSingleIdMember();
if (idMember != null)
{
if (idMember.getDataType() == sourceType)
{
// The type of the id member matches the source parameter type;
// Generate a ">>TargetType" source member path
String targetTypeRef = targetParam.getProcess().determineItemRef(targetType);
ret = ExpressionConstants.REFERENCE_KEY_OPERATOR + targetTypeRef;
}
}
}
if (ret == null && sourceType instanceof ComplexTypeItem)
{
// Check the source type for its id member
DataMember idMember = ((ComplexTypeItem) sourceType).getSingleIdMember();
if (idMember != null)
{
if (idMember.getDataType() == targetType)
{
// The type of the id member matches the target parameter type;
// Generate a ".IdMember" source member path
ret = idMember.getName();
}
}
}
if (ret != null && sourceMemberPath != null)