// Path: src/main/java/com/github/levin81/daelic/exception/InvalidPropertyException.java
// public class InvalidPropertyException extends RuntimeException {
//     public InvalidPropertyException(String message) {
//         super(message);
//     }
// }
// 
// Path: src/main/java/com/github/levin81/daelic/exception/RequiredPropertyException.java
// public class RequiredPropertyException extends RuntimeException {
//     public RequiredPropertyException(String message) {
//         super(message);
//     }
// }


import com.github.levin81.daelic.exception.InvalidPropertyException;
import com.github.levin81.daelic.exception.RequiredPropertyException;
import java.util.function.Function;
package com.github.levin81.daelic.util;



public final class Properties {

    private Properties() {

    }

// Path: src/main/java/com/github/levin81/daelic/exception/InvalidPropertyException.java
// public class InvalidPropertyException extends RuntimeException {
//     public InvalidPropertyException(String message) {
//         super(message);
//     }
// }
// 
// Path: src/main/java/com/github/levin81/daelic/exception/RequiredPropertyException.java
// public class RequiredPropertyException extends RuntimeException {
//     public RequiredPropertyException(String message) {
//         super(message);
//     }
// }


// Path: src/main/java/com/github/levin81/daelic/util/Properties.java
import com.github.levin81.daelic.exception.InvalidPropertyException;
import com.github.levin81.daelic.exception.RequiredPropertyException;
import java.util.function.Function;

package com.github.levin81.daelic.util;



public final class Properties {

    private Properties() {

    }

    public static <T> void assertRequired(T property, String errorMessage) {