All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.event.ruler.SingleStateNameMatcher Maven / Gradle / Ivy

package software.amazon.event.ruler;

import javax.annotation.Nonnull;

/**
 * Implements the { [ "exists" : false] } pattern by performing a binary search
 * of the key in the event keys.
 */
public class SingleStateNameMatcher implements NameMatcher {

    /**
     * We only have one pattern for name matcher today. Hence, we can just keep
     * a single state here for simplicity. In the future, when multiple patterns
     * come here, we need a byte match.
     */
    private NameState nameState;

    @Override
    public boolean isEmpty() {
        return nameState == null;
    }

    @Override
    public NameState addPattern(@Nonnull final Patterns pattern, final NameState nameState) {
        if (this.nameState == null) {
            this.nameState = nameState;
        }

        return this.nameState;
    }

    @Override
    public void deletePattern(@Nonnull final Patterns pattern) {
        nameState = null;
    }

    @Override
    public NameState findPattern(@Nonnull final Patterns pattern) {
        return nameState;
    }

    @Override
    public NameState getNextState() {
        return nameState;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy