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

org.parboiled.transform.CacheArguments Maven / Gradle / Ivy

package org.parboiled.transform;

import org.parboiled.annotations.Cached;

import java.util.Arrays;
import java.util.Map;

/**
 * Runtime cache arguments for generated parsers
 *
 * 

This class is used by generated parsers for rules taking arguments and * annotated with {@link Cached}. In this case, a {@link Map} is generated whose * keys are instances of this class, and values are already generated rules.

* *

What this class basically does is generate a "digest" of rule * arguments (as an {@code Object[]}).

*/ public final class CacheArguments { private final Object[] params; public CacheArguments(final Object... params) { this.params = Arrays.copyOf(params, params.length); } @Override public boolean equals(final Object obj) { if (obj == null) return false; if (this == obj) return true; if (getClass() != obj.getClass()) return false; final CacheArguments other = (CacheArguments) obj; return Arrays.deepEquals(params, other.params); } @Override public int hashCode() { return Arrays.deepHashCode(params); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy