package com.door43.translationstudio.spannables;
import java.util.regex.Pattern;
/**
* Represents a char element according to the usx specification
* See http://dbl.ubs-icap.org:8090/display/DBLDOCS/USX#USX-char
*/
public class USXChar {
// passage styles (custom tag not defined in USX)
public static final String STYLE_PASSAGE_TEXT = "pt";
// footnote styles
public static final String STYLE_FOOTNOTE_REFERENCE = "fr";
public static final String STYLE_FOOTNOTE_TEXT = "ft";
public static final String STYLE_FOOTNOTE_KEYWORD = "fk";
public static final String STYLE_FOOTNOTE_QUOTATION = "fq";
public static final String STYLE_FOOTNOTE_ALT_QUOTATION = "fqa";
public static final String STYLE_FOOTNOTE_LABEL = "fl";
public static final String STYLE_FOOTNOTE_PARAGRAPH = "fp";
public static final String STYLE_FOOTNOTE_VERSE = "fv";
public static final String STYLE_FOOTNOTE_DEUTEROCANONICAL_APOCRYPHA = "fdc";
// selah styles
public static final String STYLE_SELAH = "qs";
public final String style;
public final CharSequence value;
public USXChar(String style, CharSequence value) {
this.style = style.trim().toLowerCase();
this.value = value;
}
/**
* Returns the compiled pattern to match this char
* @return
*/
public static Pattern getPattern(String style) {
return Pattern.compile("<char\\s+style=\"" + style + "\"\\s*>\\s*(((?!</char>).)*)</char>", Pattern.DOTALL);
}
}