// Path: stecker-plugin-loader/src/main/java/org/meridor/stecker/VersionRelation.java
// public enum VersionRelation {
// 
//     GREATER_THAN,
//     LESS_THAN,
//     EQUAL,
//     NOT_EQUAL,
//     IN_RANGE,
//     NOT_IN_RANGE
// 
// }
// 
// Path: stecker-plugin-loader/src/main/java/org/meridor/stecker/interfaces/VersionComparator.java
// public interface VersionComparator {
// 
//     /**
//      * Returns how actual version is related to required, e.g. whether it's less or greater than required or in required
//      * version range. See {@link org.meridor.stecker.VersionRelation} values for details.
//      *
//      * @param required required version or version range or nothing
//      * @param actual   actual version or nothing
//      * @return how actual version relates to required
//      */
//     VersionRelation compare(Optional<String> required, Optional<String> actual);
// 
// }


import org.meridor.stecker.VersionRelation;
import org.meridor.stecker.interfaces.VersionComparator;
import java.util.Optional;
import static org.meridor.stecker.VersionRelation.EQUAL;
import static org.meridor.stecker.VersionRelation.GREATER_THAN;
import static org.meridor.stecker.VersionRelation.IN_RANGE;
import static org.meridor.stecker.VersionRelation.LESS_THAN;
import static org.meridor.stecker.VersionRelation.NOT_EQUAL;
import static org.meridor.stecker.VersionRelation.NOT_IN_RANGE;
package org.meridor.stecker.impl;




public class DefaultVersionComparator implements VersionComparator {

    @Override
// Path: stecker-plugin-loader/src/main/java/org/meridor/stecker/VersionRelation.java
// public enum VersionRelation {
// 
//     GREATER_THAN,
//     LESS_THAN,
//     EQUAL,
//     NOT_EQUAL,
//     IN_RANGE,
//     NOT_IN_RANGE
// 
// }
// 
// Path: stecker-plugin-loader/src/main/java/org/meridor/stecker/interfaces/VersionComparator.java
// public interface VersionComparator {
// 
//     /**
//      * Returns how actual version is related to required, e.g. whether it's less or greater than required or in required
//      * version range. See {@link org.meridor.stecker.VersionRelation} values for details.
//      *
//      * @param required required version or version range or nothing
//      * @param actual   actual version or nothing
//      * @return how actual version relates to required
//      */
//     VersionRelation compare(Optional<String> required, Optional<String> actual);
// 
// }


// Path: stecker-plugin-loader/src/main/java/org/meridor/stecker/impl/DefaultVersionComparator.java
import org.meridor.stecker.VersionRelation;
import org.meridor.stecker.interfaces.VersionComparator;
import java.util.Optional;
import static org.meridor.stecker.VersionRelation.EQUAL;
import static org.meridor.stecker.VersionRelation.GREATER_THAN;
import static org.meridor.stecker.VersionRelation.IN_RANGE;
import static org.meridor.stecker.VersionRelation.LESS_THAN;
import static org.meridor.stecker.VersionRelation.NOT_EQUAL;
import static org.meridor.stecker.VersionRelation.NOT_IN_RANGE;

package org.meridor.stecker.impl;




public class DefaultVersionComparator implements VersionComparator {

    @Override
    public VersionRelation compare(Optional<String> required, Optional<String> actual) {