![JAR search and dependency download from the Maven repository](/logo.png)
panda.lang.escape.NumericEntityEscaper Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of panda-core Show documentation
Show all versions of panda-core Show documentation
Panda Core is the core module of Panda Framework, it contains commonly used utility classes similar to apache-commons.
package panda.lang.escape;
import java.io.IOException;
/**
* Translates codepoints to their XML numeric entity escaped value.
*
*/
public class NumericEntityEscaper extends CodePointTranslator {
private final int below;
private final int above;
private final boolean between;
/**
*
* Constructs a NumericEntityEscaper
for the specified range. This is the
* underlying method for the other constructors/builders. The below
and
* above
boundaries are inclusive when between
is true
* and exclusive when it is false
.
*
*
* @param below int value representing the lowest codepoint boundary
* @param above int value representing the highest codepoint boundary
* @param between whether to escape between the boundaries or outside them
*/
private NumericEntityEscaper(final int below, final int above, final boolean between) {
this.below = below;
this.above = above;
this.between = between;
}
/**
*
* Constructs a NumericEntityEscaper
for all characters.
*
*/
public NumericEntityEscaper() {
this(0, Integer.MAX_VALUE, true);
}
/**
*
* Constructs a NumericEntityEscaper
below the specified value (exclusive).
*
*
* @param codepoint below which to escape
* @return the newly created {@code NumericEntityEscaper} instance
*/
public static NumericEntityEscaper below(final int codepoint) {
return outsideOf(codepoint, Integer.MAX_VALUE);
}
/**
*
* Constructs a NumericEntityEscaper
above the specified value (exclusive).
*
*
* @param codepoint above which to escape
* @return the newly created {@code NumericEntityEscaper} instance
*/
public static NumericEntityEscaper above(final int codepoint) {
return outsideOf(0, codepoint);
}
/**
*
* Constructs a NumericEntityEscaper
between the specified values (inclusive).
*
*
* @param codepointLow above which to escape
* @param codepointHigh below which to escape
* @return the newly created {@code NumericEntityEscaper} instance
*/
public static NumericEntityEscaper between(final int codepointLow, final int codepointHigh) {
return new NumericEntityEscaper(codepointLow, codepointHigh, true);
}
/**
*
* Constructs a NumericEntityEscaper
outside of the specified values (exclusive).
*
*
* @param codepointLow below which to escape
* @param codepointHigh above which to escape
* @return the newly created {@code NumericEntityEscaper} instance
*/
public static NumericEntityEscaper outsideOf(final int codepointLow, final int codepointHigh) {
return new NumericEntityEscaper(codepointLow, codepointHigh, false);
}
/**
* {@inheritDoc}
*/
@Override
public boolean translate(final int codepoint, final Appendable out) throws IOException {
if (between) {
if (codepoint < below || codepoint > above) {
return false;
}
}
else {
if (codepoint >= below && codepoint <= above) {
return false;
}
}
out.append("");
out.append(Integer.toString(codepoint, 10));
out.append(';');
return true;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy