Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.skiwi.tessutils4j.data;
- import com.skiwi.tessutils4j.Objects;
- import java.io.InvalidObjectException;
- import java.io.ObjectInputStream;
- import java.io.Serializable;
- import java.util.ArrayList;
- import java.util.List;
- /**
- *
- * @author Frank van Heeswijk
- */
- public class Symbol implements Serializable {
- private static final long serialVersionUID = 23829245030202L;
- private final String symbol;
- private final float confidence;
- private final boolean isDropcap;
- private final boolean isSubscript;
- private final boolean isSuperscript;
- private final List<SymbolChoice> symbolChoices;
- private Symbol(final String symbol, final float confidence, final boolean isDropcap, final boolean isSubscript, final boolean isSuperscript, final List<SymbolChoice> symbolChoices) {
- this.symbol = Objects.requireNonNull(symbol, "symbol");
- this.confidence = confidence;
- this.isDropcap = isDropcap;
- this.isSubscript = isSubscript;
- this.isSuperscript = isSuperscript;
- this.symbolChoices = Objects.requireNonNull(symbolChoices, "symbolChoices");
- }
- public String getSymbol() {
- return symbol;
- }
- public float getConfidence() {
- return confidence;
- }
- public boolean isDropcap() {
- return isDropcap;
- }
- public boolean isSubscript() {
- return isSubscript;
- }
- public boolean isSuperscript() {
- return isSuperscript;
- }
- public List<SymbolChoice> getSymbolChoices() {
- return symbolChoices;
- }
- public static class SymbolBuilder {
- private final String symbol;
- private final float confidence;
- private final boolean isDropcap;
- private final boolean isSubscript;
- private final boolean isSuperscript;
- private final List<SymbolChoice> symbolChoices = new ArrayList<SymbolChoice>();
- private SymbolBuilder(final String symbol, final float confidence, final boolean isDropcap, final boolean isSubscript, final boolean isSuperscript) {
- this.symbol = Objects.requireNonNull(symbol, "symbol");
- this.confidence = confidence;
- this.isDropcap = isDropcap;
- this.isSubscript = isSubscript;
- this.isSuperscript = isSuperscript;
- }
- public SymbolBuilder addSymbolChoice(final SymbolChoice symbolChoice) {
- symbolChoices.add(Objects.requireNonNull(symbolChoice, "symbolChoice"));
- return this;
- }
- public Symbol build() {
- return new Symbol(symbol, confidence, isDropcap, isSubscript, isSuperscript, symbolChoices);
- }
- }
- private Object writeReplace() {
- return new SerializationProxy(this);
- }
- private void readObject(final ObjectInputStream stream) throws InvalidObjectException {
- throw new InvalidObjectException("Proxy required");
- }
- private static class SerializationProxy implements Serializable {
- private static final long serialVersionUID = 49545459839839843L;
- private final String symbol;
- private final float confidence;
- private final boolean isDropcap;
- private final boolean isSubscript;
- private final boolean isSuperscript;
- private final List<SymbolChoice> symbolChoices;
- private SerializationProxy(final Symbol symbol) {
- this.symbol = symbol.symbol;
- this.confidence = symbol.confidence;
- this.isDropcap = symbol.isDropcap;
- this.isSubscript = symbol.isSubscript;
- this.isSuperscript = symbol.isSuperscript;
- this.symbolChoices = symbol.symbolChoices;
- }
- private Object readResolve() {
- return new Symbol(symbol, confidence, isDropcap, isSubscript, isSuperscript, symbolChoices);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement