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

com.yscope.clp.compressorfrontend.EightByteClpWildcardQueryEncoder Maven / Gradle / Ivy

package com.yscope.clp.compressorfrontend;

import java.nio.charset.StandardCharsets;
import java.util.Objects;

import org.jetbrains.annotations.NotNull;

/**
 * Derived version of {@link AbstractClpWildcardQueryEncoder} specifically using
 * the eight-byte encoding for variables.
 */
public class EightByteClpWildcardQueryEncoder extends AbstractClpWildcardQueryEncoder {
  /**
   * @see AbstractClpWildcardQueryEncoder#AbstractClpWildcardQueryEncoder
   */
  public EightByteClpWildcardQueryEncoder (
      @NotNull String variablesSchemaVersion,
      @NotNull String variableEncodingMethodsVersion
  ) throws UnsupportedOperationException {
    super(variablesSchemaVersion, variableEncodingMethodsVersion);
  }

  /**
   * Encodes the given wildcard query into an array of subqueries that can be
   * run on encoded messages. The array of subqueries is a logical disjunction
   * (i.e., all subqueries OR-ed together).
   * @param wildcardQuery The wildcard query using two wildcards:
   * 
    *
  • '?' matching any single character
  • *
  • '*' matching 0 or more characters
  • *
* @return The subqueries */ public EightByteClpEncodedSubquery[] encode ( @NotNull String wildcardQuery ) throws IllegalArgumentException { Objects.requireNonNull(wildcardQuery); byte[] wildcardQueryBytes = wildcardQuery.getBytes(StandardCharsets.ISO_8859_1); return encodeNative(wildcardQueryBytes, wildcardQueryBytes.length); } /** * Same as {@link EightByteClpWildcardQueryEncoder#encode} except * {@code wildcardQuery} is a byte array. * @param wildcardQuery * @param wildcardQueryLength * @return The subqueries */ private native EightByteClpEncodedSubquery[] encodeNative ( byte[] wildcardQuery, int wildcardQueryLength ) throws IllegalArgumentException; }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy