
com.google.re2j.MatcherInput Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com.liferay.search.experiences.service
Show all versions of com.liferay.search.experiences.service
Liferay Search Experiences Service
The newest version!
/*
* Copyright (c) 2021 The Go Authors. All rights reserved.
*
* Use of this source code is governed by a BSD-style
* license that can be found in the LICENSE file.
*/
package com.google.re2j;
import java.nio.charset.Charset;
/**
* Abstract the representations of input text supplied to Matcher.
*/
abstract class MatcherInput {
enum Encoding {
UTF_16,
UTF_8,
}
/**
* Return the MatcherInput for UTF_16 encoding.
*/
static MatcherInput utf16(CharSequence charSequence) {
return new Utf16MatcherInput(charSequence);
}
/**
* Return the MatcherInput for UTF_8 encoding.
*/
static MatcherInput utf8(byte[] bytes) {
return new Utf8MatcherInput(bytes);
}
/**
* Return the MatcherInput for UTF_8 encoding.
*/
static MatcherInput utf8(String input) {
return new Utf8MatcherInput(input.getBytes(Charset.forName("UTF-8")));
}
abstract Encoding getEncoding();
abstract CharSequence asCharSequence();
abstract byte[] asBytes();
abstract int length();
static class Utf8MatcherInput extends MatcherInput {
byte[] bytes;
public Utf8MatcherInput(byte[] bytes) {
this.bytes = bytes;
}
@Override
public Encoding getEncoding() {
return Encoding.UTF_8;
}
@Override
public CharSequence asCharSequence() {
return new String(bytes, Charset.forName("UTF-8"));
}
@Override
public byte[] asBytes() {
return bytes;
}
@Override
public int length() {
return bytes.length;
}
}
static class Utf16MatcherInput extends MatcherInput {
CharSequence charSequence;
public Utf16MatcherInput(CharSequence charSequence) {
this.charSequence = charSequence;
}
@Override
public Encoding getEncoding() {
return Encoding.UTF_16;
}
@Override
public CharSequence asCharSequence() {
return charSequence;
}
@Override
public byte[] asBytes() {
return charSequence.toString().getBytes(Charset.forName("UTF-16"));
}
@Override
public int length() {
return charSequence.length();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy