
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