package com.door43.translationstudio.spannables;
import java.util.regex.Pattern;
/**
* Represents a char element according to the usfm specification
* See http://ubs-icap.org/chm/usfm/2.4/index.html
*/
public class USFMChar {
// passage styles (custom tag not defined in USFM)
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 USFMChar(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("\\\\f"+style+"+\\s([^\\\\]+)", Pattern.DOTALL); // \\f(\S)+\s([^\\]+)
}
}