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

panda.lang.escape.NumericEntityEscaper Maven / Gradle / Ivy

Go to download

Panda Core is the core module of Panda Framework, it contains commonly used utility classes similar to apache-commons.

There is a newer version: 1.8.0
Show newest version
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