GurmukhiFormatter.java 2.82 KB
/*
 * Decompiled with CFR 0_118.
 */
package com.adobe.fontengine.inlineformatting.infontformatting;

import com.adobe.fontengine.inlineformatting.AttributedRun;
import com.adobe.fontengine.inlineformatting.infontformatting.IndicFormatter;

public class GurmukhiFormatter
extends IndicFormatter {
    protected int splitVowelsAndNormalize(AttributedRun run, int start, int limit) {
        return limit;
    }

    protected int nukta() {
        return 2620;
    }

    protected int virama() {
        return 2637;
    }

    protected boolean isSatelliteWhenInitial(int usv) {
        return false;
    }

    protected boolean isConsonant(int usv) {
        return 2581 <= usv && usv <= 2617 || 2649 <= usv && usv <= 2654 || 9676 == usv;
    }

    protected boolean hasNukta(int usv) {
        return 2614 == usv || 2649 == usv || 2650 == usv || 2651 == usv || 2654 == usv;
    }

    protected int removeNukta(int usv) {
        switch (usv) {
            case 2614: {
                return 2616;
            }
            case 2649: {
                return 2582;
            }
            case 2650: {
                return 2583;
            }
            case 2651: {
                return 2588;
            }
            case 2654: {
                return 2603;
            }
        }
        return usv;
    }

    protected boolean isMark(int usv) {
        return 2561 <= usv && usv <= 2563 || 2622 <= usv && usv <= 2636 || 2672 <= usv && usv <= 2673;
    }

    protected boolean isIndependentVowel(int usv) {
        return 2565 <= usv && usv <= 2580 || 9676 == usv;
    }

    protected IndicFormatter.Position getPosition(int usv) {
        switch (usv) {
            case 2623: {
                return IndicFormatter.Position.left;
            }
            case 2631: 
            case 2632: 
            case 2635: 
            case 2636: {
                return IndicFormatter.Position.topMatra;
            }
            case 2561: 
            case 2562: 
            case 2672: 
            case 2673: {
                return IndicFormatter.Position.topOther;
            }
            case 2625: 
            case 2626: {
                return IndicFormatter.Position.bottom;
            }
            case 2622: 
            case 2624: {
                return IndicFormatter.Position.rightMatra;
            }
            case 2563: {
                return IndicFormatter.Position.rightOther;
            }
        }
        return IndicFormatter.Position.any;
    }

    protected IndicFormatter.Shape rephLike(int usv) {
        return IndicFormatter.Shape.any;
    }

    protected boolean subjoins(int usv) {
        return usv == 2608 || usv == 2617 || usv == 2613;
    }

    protected boolean postjoins(int usv) {
        return usv == 2607;
    }

    protected boolean postjoinsIndependentVowels(int usv) {
        return false;
    }
}