OriyaFormatter.java
3.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/*
* Decompiled with CFR 0_118.
*/
package com.adobe.fontengine.inlineformatting.infontformatting;
import com.adobe.fontengine.inlineformatting.AttributedRun;
import com.adobe.fontengine.inlineformatting.infontformatting.IndicFormatter;
final class OriyaFormatter
extends IndicFormatter {
OriyaFormatter() {
}
protected int splitVowelsAndNormalize(AttributedRun run, int start, int limit) {
block5 : while (start < limit) {
int usv = run.elementAt(start);
switch (usv) {
case 2888: {
run.replace(start, new int[]{2887, 2902});
++limit;
start += 2;
continue block5;
}
case 2891: {
run.replace(start, new int[]{2887, 2878});
++limit;
start += 2;
continue block5;
}
case 2892: {
run.replace(start, new int[]{2887, 2903});
++limit;
start += 2;
continue block5;
}
}
++start;
}
return limit;
}
protected int nukta() {
return 2876;
}
protected int virama() {
return 2893;
}
protected boolean isConsonant(int usv) {
return 2837 <= usv && usv <= 2873 || 2908 <= usv && usv <= 2913 || 2929 == usv || 9676 == usv;
}
protected boolean hasNukta(int usv) {
return 2908 == usv || 2909 == usv;
}
protected int removeNukta(int usv) {
switch (usv) {
case 2908: {
return 2849;
}
case 2909: {
return 2850;
}
}
return usv;
}
protected boolean isMark(int usv) {
return 2878 <= usv && usv <= 2892 || 2902 <= usv && usv <= 2903 || 2817 <= usv && usv <= 2819;
}
protected boolean isIndependentVowel(int usv) {
return 2821 <= usv && usv <= 2836 || 2912 <= usv && usv <= 2913 || 9676 == usv;
}
protected IndicFormatter.Position getPosition(int usv) {
switch (usv) {
case 2887: {
return IndicFormatter.Position.left;
}
case 2817: {
return IndicFormatter.Position.topOther;
}
case 2881:
case 2882:
case 2883: {
return IndicFormatter.Position.bottom;
}
case 2878:
case 2880:
case 2903: {
return IndicFormatter.Position.rightMatra;
}
case 2879:
case 2902: {
return IndicFormatter.Position.topMatra;
}
case 2818:
case 2819: {
return IndicFormatter.Position.rightOther;
}
}
return IndicFormatter.Position.any;
}
protected IndicFormatter.Shape rephLike(int usv) {
if (usv == 2864) {
return IndicFormatter.Shape.rephCons;
}
return IndicFormatter.Shape.any;
}
protected boolean subjoins(int usv) {
return usv == 2851 || usv == 2852 || usv == 2856 || usv == 2860 || usv == 2861 || usv == 2862 || usv == 2864 || usv == 2866 || usv == 2867 || usv == 2869;
}
protected boolean postjoins(int usv) {
return usv == 2863 || usv == 2911;
}
protected boolean postjoinsIndependentVowels(int usv) {
return false;
}
}