Class IndicScriptProcessor

    • Field Detail

      • log

        private static final org.apache.commons.logging.Log log
        logging instance
      • GSUB_REQ_FEATURES

        private static final java.lang.String[] GSUB_REQ_FEATURES
        required features to use for substitutions
      • GSUB_OPT_FEATURES

        private static final java.lang.String[] GSUB_OPT_FEATURES
        optional features to use for substitutions
      • GPOS_REQ_FEATURES

        private static final java.lang.String[] GPOS_REQ_FEATURES
        required features to use for positioning
      • GPOS_OPT_FEATURES

        private static final java.lang.String[] GPOS_OPT_FEATURES
        required features to use for positioning
      • basicShapingFeatures

        private static java.util.Set<java.lang.String> basicShapingFeatures
      • BASIC_SHAPING_FEATURE_STRINGS

        private static final java.lang.String[] BASIC_SHAPING_FEATURE_STRINGS
      • presentationFeatures

        private static java.util.Set<java.lang.String> presentationFeatures
      • PRESENTATION_FEATURE_STRINGS

        private static final java.lang.String[] PRESENTATION_FEATURE_STRINGS
    • Constructor Detail

      • IndicScriptProcessor

        IndicScriptProcessor​(java.lang.String script)
    • Method Detail

      • makeProcessor

        public static ScriptProcessor makeProcessor​(java.lang.String script)
        Make script specific flavor of Indic script processor.
        Parameters:
        script - tag
        Returns:
        script processor instance
      • getSubstitutionFeatures

        public java.lang.String[] getSubstitutionFeatures()
        Obtain script specific required substitution features.
        Overrides:
        getSubstitutionFeatures in class DefaultScriptProcessor
        Returns:
        array of suppported substitution features or null
      • getOptionalSubstitutionFeatures

        public java.lang.String[] getOptionalSubstitutionFeatures()
        Obtain script specific optional substitution features.
        Overrides:
        getOptionalSubstitutionFeatures in class ScriptProcessor
        Returns:
        array of suppported substitution features or null
      • getPositioningFeatures

        public java.lang.String[] getPositioningFeatures()
        Obtain script specific required positioning features.
        Overrides:
        getPositioningFeatures in class DefaultScriptProcessor
        Returns:
        array of suppported positioning features or null
      • getOptionalPositioningFeatures

        public java.lang.String[] getOptionalPositioningFeatures()
        Obtain script specific optional positioning features.
        Overrides:
        getOptionalPositioningFeatures in class ScriptProcessor
        Returns:
        array of suppported positioning features or null
      • substitute

        public GlyphSequence substitute​(GlyphSequence gs,
                                        java.lang.String script,
                                        java.lang.String language,
                                        GlyphTable.UseSpec[] usa,
                                        ScriptContextTester sct)
        Perform substitution processing using a specific set of ordered glyph table use specifications.
        Overrides:
        substitute in class ScriptProcessor
        Parameters:
        gs - an input glyph sequence
        script - a script identifier
        language - a language identifier
        usa - an ordered array of glyph table use specs
        sct - a script specific context tester (or null)
        Returns:
        the substituted (output) glyph sequence
      • getSyllabizerClass

        protected java.lang.Class<? extends IndicScriptProcessor.Syllabizer> getSyllabizerClass()
        Get script specific syllabizer class.
        Returns:
        a syllabizer class object or null
      • findPreBaseMatra

        protected int findPreBaseMatra​(GlyphSequence gs)
        Find pre-base matra in sequence.
        Parameters:
        gs - input sequence
        Returns:
        index of pre-base matra or -1 if not found
      • findPreBaseMatraTarget

        protected int findPreBaseMatraTarget​(GlyphSequence gs,
                                             int source)
        Find pre-base matra target in sequence.
        Parameters:
        gs - input sequence
        source - index of pre-base matra
        Returns:
        index of pre-base matra target or -1
      • findReph

        protected int findReph​(GlyphSequence gs)
        Find reph in sequence.
        Parameters:
        gs - input sequence
        Returns:
        index of reph or -1 if not found
      • findRephTarget

        protected int findRephTarget​(GlyphSequence gs,
                                     int source)
        Find reph target in sequence.
        Parameters:
        gs - input sequence
        source - index of reph
        Returns:
        index of reph target or -1
      • position

        public boolean position​(GlyphSequence gs,
                                java.lang.String script,
                                java.lang.String language,
                                int fontSize,
                                GlyphTable.UseSpec[] usa,
                                int[] widths,
                                int[][] adjustments,
                                ScriptContextTester sct)
        Perform positioning processing using a specific set of ordered glyph table use specifications.
        Overrides:
        position in class ScriptProcessor
        Parameters:
        gs - an input glyph sequence
        script - a script identifier
        language - a language identifier
        fontSize - size in device units
        usa - an ordered array of glyph table use specs
        widths - array of default advancements for each glyph in font
        adjustments - accumulated adjustments array (sequence) of 4-tuples of placement [PX,PY] and advance [AX,AY] adjustments, in that order, with one 4-tuple for each element of glyph sequence
        sct - a script specific context tester (or null)
        Returns:
        true if some adjustment is not zero; otherwise, false