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

junitparams.internal.parameters.toarray.IterableResultToArray Maven / Gradle / Ivy

There is a newer version: 1.1.1
Show newest version
package junitparams.internal.parameters.toarray;

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

class IterableResultToArray extends SimpleIterableResultToArray {
    private Object result;

    IterableResultToArray(Object result) {
        super(result);

        this.result = result;
    }

    @Override
    public boolean isApplicable() {
        return Iterable.class.isAssignableFrom(result.getClass());
    }

    @Override
    public Object[] convert() {
        try {
            // Attempt to handle Iterable> case
            List res = new ArrayList();
            for (Iterable paramSetIterable : (Iterable>) result) {
                List paramSet = new ArrayList();
                for (Object param : paramSetIterable) {
                    paramSet.add(param);
                }
                res.add(paramSet.toArray());
            }
            return res.toArray();
        } catch (ClassCastException e1) {
            // Eat the exception and keep trying
        }

        return super.convert();
    }
}