class CommandLineArgumentValueProvider extends AbstractMapConfigurationValueProvider {

    private final SortedMap<String, Object> argumentValues = new TreeMap<>();

    public CommandLineArgumentValueProvider(CommandLine.ParseResult parseResult) {
        while (parseResult != null) {
            for (CommandLine.Model.OptionSpec option : parseResult.matchedOptions()) {
                this.argumentValues.put(option.names()[0], option.getValue());
            }

            parseResult = parseResult.subcommand();
        }
    }

    @Override
    public int getPrecedence() {
        return 250;
    }

    @Override
    protected Map<?, ?> getMap() {
        return argumentValues;
    }

    @Override
    protected boolean keyMatches(String wantedKey, String storedKey) {<FILL_FUNCTION_BODY>}

    @Override
    protected String getSourceDescription() {
        return "Command argument";
    }
}

        storedKey = String.valueOf(storedKey).replaceFirst("^--", "");

        if (super.keyMatches(wantedKey, storedKey)) {
            return true;
        }
        if (wantedKey.startsWith("liquibase.command.")) {
            return super.keyMatches(wantedKey.replaceFirst("^liquibase\\.command\\.", ""), storedKey);
        }

        return super.keyMatches(wantedKey.replaceFirst("^liquibase\\.", ""), storedKey);
    
<methods>public non-sealed void <init>() ,public transient liquibase.configuration.ProvidedValue getProvidedValue(java.lang.String[]) <variables>private final Map<java.lang.String,liquibase.configuration.ProvidedValue> knownValues,private int knownValuesForHash,private final java.util.concurrent.locks.Lock knownValuesLock