package chapter20Java8;

import java.util.Optional;
import java.util.function.Predicate;

public class OptionalDemo7Map {
    public static void main(String[] args) {
        String name = "PeterJXL";
        Optional<String> nameOptional = Optional.ofNullable(name);
        Optional<Integer> integerOptional = Optional.ofNullable(name.length());
        integerOptional = nameOptional.map(String::length);

        String password = "Password";
        Optional<String> opt = Optional.ofNullable(password);

        Predicate<String> len6 = pwd -> pwd.length() > 6;
        Predicate<String> len10 = pwd -> pwd.length()  < 10;
        Predicate<String> eq = pwd -> pwd.equals("123456");

        boolean result = opt.map(String::toLowerCase).filter(len6.and(len10).and(eq)).isPresent();
        System.out.println(result); //true
    }
}