import java.io.Serializable; 
import java.util.ArrayList; 
import java.util.Collection; 
import java.util.stream.Stream; 

import static java.util.Optional.ofNullable; 
import static java.util.stream.Collectors.toSet; 

public class WebflowConfiguration { 
    public static class ProviderLoginPageConfiguration implements Serializable { 
        private static final long serialVersionUID = 6216882278086699364L; 
        private final String name; 
        private final String redirectUrl; 
        private final String type; 
        private final String cssClass; 
        private final boolean autoRedirect; 

        public ProviderLoginPageConfiguration(String name, String redirectUrl, String type, String cssClass, 
                boolean autoRedirect) { 
            this.name = name; 
            this.redirectUrl = redirectUrl; 
            this.type = type; 
            this.cssClass = cssClass; 
            this.autoRedirect = autoRedirect; 
        } 

        public String getName() { 
            return name; 
        } 

        public String getRedirectUrl() { 
            return redirectUrl; 
        } 

        public String getType() { 
            return type; 
        } 

        public String getCssClass() { 
            return cssClass; 
        } 

        public boolean isAutoRedirect() { 
            return autoRedirect; 
        } 
    } 

    public static void main(String[] args) { 
        final ArrayList value = new ArrayList<>(); 
        ofNullable(value) 
                .map(Collection::stream) 
                .orElseGet(Stream::empty) 
                .map(it -> (ProviderLoginPageConfiguration) it) 
                .map(providerLoginPageConfiguration -> 
                        new ProviderLoginPageConfiguration( 
                                providerLoginPageConfiguration.getName(), 
                                providerLoginPageConfiguration.getRedirectUrl(), 
                                providerLoginPageConfiguration.getType(), 
                                providerLoginPageConfiguration.getCssClass(), 
                                providerLoginPageConfiguration.isAutoRedirect() 
                        ) 
                ).collect(toSet()); 
    } 
} 