class MultipleInstanceActivityPropertyWriter extends ActivityPropertyWriter {

    public void setCollectionInput(String collectionInput) {
        if (isEmpty(collectionInput)) {
            return;
        }

        setUpLoopCharacteristics();
        String suffix = "IN_COLLECTION";
        String id = Ids.dataInput(activity.getId(), suffix);
        DataInput dataInputElement = createDataInput(id, suffix);
        ioSpec.getDataInputs().add(dataInputElement);

        // check whether this exist
        Optional<Property> property = findPropertyById(collectionInput);
        Optional<DataObject> dataObject = findDataObjectById(collectionInput);

        if (property.isPresent()) {
            processDataInput(dataInputElement, property.get());
        } else if (dataObject.isPresent()) {
            processDataInput(dataInputElement, dataObject.get());
        }
    }

    public  MultipleInstanceActivityPropertyWriter(Activity activity,
                                                  VariableScope variableScope,
                                                  Set<DataObject> dataObjects);

}