class AbstractSwitchableCompatibilityVerifier implements CompatibilityVerifier {

    private static final String ENABLE_KEY_FORMAT = "sofa.boot.compatibility-verifier.%s.enabled";

    protected final Environment environment;

    protected String            enableKey;

    public AbstractSwitchableCompatibilityVerifier(Environment environment) {
        this.environment = environment;
    }

    @Override
    public VerificationResult verify() {<FILL_FUNCTION_BODY>}

    public abstract CompatibilityPredicate compatibilityPredicate();

    public abstract String errorDescription();

    public abstract String action();

    public abstract String enableKey();
}

        this.enableKey = String.format(ENABLE_KEY_FORMAT, enableKey());
        if (!Boolean.parseBoolean(environment.getProperty(enableKey, "true"))) {
            return VerificationResult.compatible();
        }

        CompatibilityPredicate compatibilityPredicate = compatibilityPredicate();
        boolean matches = compatibilityPredicate.isCompatible();
        if (matches) {
            return VerificationResult.compatible();
        }
        return VerificationResult.notCompatible(errorDescription(), action());
    
<no_super_class>