} else {
// actual data, figure out which type
DataType data = input.getData();
if (data.getLiteralData() != null) {
LiteralDataType literal = data.getLiteralData();
decoded = ((LiteralPPIO) ppio).decode(literal.getValue());
} else if (data.getComplexData() != null) {
ComplexDataType complex = data.getComplexData();
decoded = ((ComplexPPIO) ppio).decode(complex.getData().get(0));
} else if (data.getBoundingBoxData() != null) {
decoded = ((BoundingBoxPPIO) ppio).decode(data.getBoundingBoxData());