All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yoti.api.client.ExtraData Maven / Gradle / Ivy

The newest version!
package com.yoti.api.client;

import static com.yoti.api.client.spi.remote.util.Validation.notNull;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ExtraData {

    private final AttributeIssuanceDetails attributeIssuanceDetails;

    public ExtraData() {
        this(Collections.emptyList());
    }

    public ExtraData(List dataEntries) {
        notNull(dataEntries, "dataEntries");

        List attributeIssuanceDetailsList = filterForType(dataEntries, AttributeIssuanceDetails.class);
        attributeIssuanceDetails = attributeIssuanceDetailsList.size() > 0 ? attributeIssuanceDetailsList.get(0) : null;
    }

    /**
     * Return the credential issuance details associated with the extra
     * data in a receipt.
     *
     * @return the credential issuance details, null if not available
     */
    public AttributeIssuanceDetails getAttributeIssuanceDetails() {
        return attributeIssuanceDetails;
    }

    @SuppressWarnings("unchecked")
    private  List filterForType(List values, Class clazz) {
        List list = new ArrayList<>();
        for (Object value : values) {
            if (clazz.isInstance(value)) {
                list.add((T) value);
            }
        }
        return Collections.unmodifiableList(list);
    }

}