axsl-commit Mailing List for aXSL (Page 3)
An API for XSL-FO.
Status: Alpha
Brought to you by:
victormote
You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
(36) |
Apr
(36) |
May
(127) |
Jun
(193) |
Jul
(12) |
Aug
(46) |
Sep
(66) |
Oct
(28) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(39) |
Feb
(68) |
Mar
(58) |
Apr
(88) |
May
(40) |
Jun
(82) |
Jul
(213) |
Aug
(19) |
Sep
(2) |
Oct
(26) |
Nov
(2) |
Dec
|
2008 |
Jan
(5) |
Feb
(30) |
Mar
(26) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
(4) |
Apr
(44) |
May
(1) |
Jun
(9) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
(4) |
Feb
(4) |
Mar
|
Apr
(7) |
May
(35) |
Jun
|
Jul
|
Aug
(48) |
Sep
(10) |
Oct
(1) |
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(3) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(40) |
2017 |
Jan
(82) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
(1) |
Apr
(4) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(15) |
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
(37) |
Mar
(28) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(7) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(27) |
2021 |
Jan
(52) |
Feb
(4) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(8) |
Nov
(72) |
Dec
(100) |
2022 |
Jan
(119) |
Feb
(94) |
Mar
(4) |
Apr
|
May
|
Jun
(5) |
Jul
(3) |
Aug
(2) |
Sep
|
Oct
|
Nov
(10) |
Dec
(97) |
2023 |
Jan
(52) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(17) |
Sep
(21) |
Oct
(8) |
Nov
|
Dec
|
2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(4) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
(11) |
Feb
(1) |
Mar
|
Apr
(27) |
May
(62) |
Jun
(27) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <vic...@us...> - 2025-05-22 15:19:26
|
Revision: 2833 http://sourceforge.net/p/axsl/code/2833 Author: victormote Date: 2025-05-22 15:19:23 +0000 (Thu, 22 May 2025) Log Message: ----------- Add constant useful for some conversions. Modified Paths: -------------- trunk/axsl/axsl-constants/src/main/java/org/axsl/constants/PrimitiveConstants.java Modified: trunk/axsl/axsl-constants/src/main/java/org/axsl/constants/PrimitiveConstants.java =================================================================== --- trunk/axsl/axsl-constants/src/main/java/org/axsl/constants/PrimitiveConstants.java 2025-05-20 14:39:53 UTC (rev 2832) +++ trunk/axsl/axsl-constants/src/main/java/org/axsl/constants/PrimitiveConstants.java 2025-05-22 15:19:23 UTC (rev 2833) @@ -70,6 +70,9 @@ /** The number of bits in a nibble, that is, 4. */ public static final byte BITS_PER_NIBBLE = 4; + /** The number of nibbles per byte, which is {@value}. */ + public static final byte NIBBLES_PER_BYTE = 2; + /** The number of bits to shift for a one-byte shift. */ public static final byte SHIFT_1_BYTE = PrimitiveConstants.BITS_PER_BYTE * 1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-20 14:39:57
|
Revision: 2832 http://sourceforge.net/p/axsl/code/2832 Author: victormote Date: 2025-05-20 14:39:53 +0000 (Tue, 20 May 2025) Log Message: ----------- Move responsibility for reporting intrinsic width and height from the FO Tree to the Area Tree. Modified Paths: -------------- trunk/axsl/axsl-fotree/src/main/java/org/axsl/fotree/FoContext.java trunk/axsl/axsl-fotree/src/main/java/org/axsl/fotree/FoScalable.java Modified: trunk/axsl/axsl-fotree/src/main/java/org/axsl/fotree/FoContext.java =================================================================== --- trunk/axsl/axsl-fotree/src/main/java/org/axsl/fotree/FoContext.java 2025-05-20 13:34:09 UTC (rev 2831) +++ trunk/axsl/axsl-fotree/src/main/java/org/axsl/fotree/FoContext.java 2025-05-20 14:39:53 UTC (rev 2832) @@ -168,6 +168,7 @@ /** * Returns some information about the selected font, to be used in font-related calculations, such as x-height, * subscript-shift, superscript-shift, text-depth, etc. + * See the class javadoc for explanation of why this method exists. * @return The font data. */ FontData getFontData(); @@ -174,6 +175,7 @@ /** * Returns the intrinsic width, in millipoints, of a scalable object. + * See the class javadoc for explanation of why this method exists. * @param scalable The scalable object for which intrinsic width is needed. * @return The intrinsic width, in millipoints, of {@code scalable}, or -1 if not known. */ @@ -181,6 +183,7 @@ /** * Returns the intrinsic height, in millipoints, of a scalable object. + * See the class javadoc for explanation of why this method exists. * @param scalable The scalable object for which intrinsic height is needed. * @return The intrinsic height, in millipoints, of {@code scalable}, or -1 if not known. */ Modified: trunk/axsl/axsl-fotree/src/main/java/org/axsl/fotree/FoScalable.java =================================================================== --- trunk/axsl/axsl-fotree/src/main/java/org/axsl/fotree/FoScalable.java 2025-05-20 13:34:09 UTC (rev 2831) +++ trunk/axsl/axsl-fotree/src/main/java/org/axsl/fotree/FoScalable.java 2025-05-20 14:39:53 UTC (rev 2832) @@ -56,16 +56,4 @@ */ int referenceBpd(FoContext context); - /** - * Returns the intrinsic width, in millipoints, of this object. - * @return The intrinsic width, in millipoints, of this object, or -1 if not known. - */ - int getIntrinsicWidth(); - - /** - * Returns the intrinsic height, in millipoints, of this object. - * @return The intrinsic height, in millipoints, of this object, or -1 if not known. - */ - int getIntrinsicHeight(); - } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-20 13:34:12
|
Revision: 2831 http://sourceforge.net/p/axsl/code/2831 Author: victormote Date: 2025-05-20 13:34:09 +0000 (Tue, 20 May 2025) Log Message: ----------- Add methods to FoContext for retrieving the resolved intrinsic-width and intrinsic-height of scalable items. Modified Paths: -------------- trunk/axsl/axsl-context/src/main/java/org/axsl/context/FontData.java trunk/axsl/axsl-fotree/src/main/java/org/axsl/fotree/FoContext.java trunk/axsl/axsl-fotree/src/main/java/org/axsl/fotree/FoScalable.java Modified: trunk/axsl/axsl-context/src/main/java/org/axsl/context/FontData.java =================================================================== --- trunk/axsl/axsl-context/src/main/java/org/axsl/context/FontData.java 2025-05-19 15:45:02 UTC (rev 2830) +++ trunk/axsl/axsl-context/src/main/java/org/axsl/context/FontData.java 2025-05-20 13:34:09 UTC (rev 2831) @@ -28,8 +28,8 @@ /** * Implementations provide a read-only subset of information about an instance of org.axsl.font.Font. - * Specifically, this interface exists allow axsl-fotree access to certain resolved font metrics without giving it - * access to the axsl-font module. + * Specifically, this interface gives axsl-fotree access to certain resolved font metrics without giving it access to + * the axsl-font module. */ public interface FontData { Modified: trunk/axsl/axsl-fotree/src/main/java/org/axsl/fotree/FoContext.java =================================================================== --- trunk/axsl/axsl-fotree/src/main/java/org/axsl/fotree/FoContext.java 2025-05-19 15:45:02 UTC (rev 2830) +++ trunk/axsl/axsl-fotree/src/main/java/org/axsl/fotree/FoContext.java 2025-05-20 13:34:09 UTC (rev 2831) @@ -46,10 +46,23 @@ * For example, the fo:initial-property-set affects certain properties of items that are laid out on the first line * of a block. * Borders and padding can also be conditional on their location at layout time.</li> + * <li>Property values that are dependent on resolution outside of the FO Tree. + * Although the FO Tree provides information necessary to select a font, it is not involved in font selection or even + * storing the selected font. + * In cases where the resolved font must be consulted by the FO Tree for metric information, FoContext provides that + * information.</li> + * <li>Property values where late binding might be beneficial. + * fo:external-graphic and fo:instream-foreign-object both rely on external systems to provide the intrinsic size of + * their content. + * Some implementations may wish to defer the parsing of those documents until actually needed, instead of trying to + * resolve them as the FO Tree is being parsed.</li> * </ul> * - * <p>FoContext allows client applications to look up and provide the context information only if it is actually needed - * by the FoTree.</p> + * <p>Especially because of the resolution and late-binding issues mentioned above, aXSL has made a deliberate design + * decision to not allow axsl-fotree to have access to axsl-font and axsl-graphic. + * Where the resolved or late-bound data is needed by the FO Tree, FoContext provides it. + * FoContext allows client applications to look up and provide the context information only if and when it is actually + * needed.</p> */ public interface FoContext extends TextModifiers { /* TODO: Look for duplicates among these methods. Some of them seem to be @@ -159,4 +172,18 @@ */ FontData getFontData(); + /** + * Returns the intrinsic width, in millipoints, of a scalable object. + * @param scalable The scalable object for which intrinsic width is needed. + * @return The intrinsic width, in millipoints, of {@code scalable}, or -1 if not known. + */ + int getIntrinsicWidth(FoScalable scalable); + + /** + * Returns the intrinsic height, in millipoints, of a scalable object. + * @param scalable The scalable object for which intrinsic height is needed. + * @return The intrinsic height, in millipoints, of {@code scalable}, or -1 if not known. + */ + int getIntrinsicHeight(FoScalable scalable); + } Modified: trunk/axsl/axsl-fotree/src/main/java/org/axsl/fotree/FoScalable.java =================================================================== --- trunk/axsl/axsl-fotree/src/main/java/org/axsl/fotree/FoScalable.java 2025-05-19 15:45:02 UTC (rev 2830) +++ trunk/axsl/axsl-fotree/src/main/java/org/axsl/fotree/FoScalable.java 2025-05-20 13:34:09 UTC (rev 2831) @@ -24,46 +24,35 @@ package org.axsl.fotree; /** - * Subinterface for formatting objects that can be scaled and viewed inside a - * viewport. + * Subinterface for formatting objects that can be scaled and viewed inside a viewport. */ public interface FoScalable extends Fo { /** * Returns the IPD of the viewport for this item. - * @param context An object that knows how to resolve FO Tree context - * issues. - * @return The IPD, in millipoints, of the viewport area from which this - * content should be viewed. + * @param context An object that knows how to resolve FO Tree context issues. + * @return The IPD, in millipoints, of the viewport area from which this content should be viewed. */ int viewportIpd(FoContext context); /** * Returns the BPD of the viewport for this item. - * @param context An object that knows how to resolve FO Tree context - * issues. - * @return The BPD, in millipoints, of the viewport area from which this - * content should be viewed. + * @param context An object that knows how to resolve FO Tree context issues. + * @return The BPD, in millipoints, of the viewport area from which this content should be viewed. */ int viewportBpd(FoContext context); /** - * Returns the inline-progression-dimension of the reference area for this - * item. - * @param context An object that knows how to resolve FO Tree context - * issues. - * @return The IPD, in millipoints, of the reference area in which this - * content should be drawn. + * Returns the inline-progression-dimension of the reference area for this item. + * @param context An object that knows how to resolve FO Tree context issues. + * @return The IPD, in millipoints, of the reference area in which this content should be drawn. */ int referenceIpd(FoContext context); /** - * Returns the block-progression-dimension of the reference area for this - * item. - * @param context An object that knows how to resolve FO Tree context - * issues. - * @return The BPD, in millipoints, of the reference area in which this - * content should be drawn. + * Returns the block-progression-dimension of the reference area for this item. + * @param context An object that knows how to resolve FO Tree context issues. + * @return The BPD, in millipoints, of the reference area in which this content should be drawn. */ int referenceBpd(FoContext context); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-19 15:45:08
|
Revision: 2830 http://sourceforge.net/p/axsl/code/2830 Author: victormote Date: 2025-05-19 15:45:02 +0000 (Mon, 19 May 2025) Log Message: ----------- Remove no-longer-needed "throws" clause. Modified Paths: -------------- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java Modified: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java =================================================================== --- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java 2025-05-19 14:52:06 UTC (rev 2829) +++ trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java 2025-05-19 15:45:02 UTC (rev 2830) @@ -146,9 +146,8 @@ * The number of components or channels can be obtained by 1) getting the color space {@link #getColorSpace()}, then * from it getting the number of components {@link ColorSpace#getNumComponents()}. * @return The number of bits per component. - * @throws GraphicException For errors during parsing of the graphic content. */ - int getBitsPerComponent() throws GraphicException; + int getBitsPerComponent(); /** * Indicates whether this image is transparent. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-19 14:52:09
|
Revision: 2829 http://sourceforge.net/p/axsl/code/2829 Author: victormote Date: 2025-05-19 14:52:06 +0000 (Mon, 19 May 2025) Log Message: ----------- Remove no-longer-needed "throws" clause. Modified Paths: -------------- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java Modified: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java =================================================================== --- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java 2025-05-19 14:35:31 UTC (rev 2828) +++ trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java 2025-05-19 14:52:06 UTC (rev 2829) @@ -207,9 +207,8 @@ /** * Indicates the type of compression used in this graphic. * @return The type of compression used in this graphic, or null if it is not known. - * @throws GraphicException If an error occurs attempting to find the compression scheme. */ - Graphic.Compression getCompressionType() throws GraphicException; + Graphic.Compression getCompressionType(); /** * Return corresponding mime type. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-19 14:35:34
|
Revision: 2828 http://sourceforge.net/p/axsl/code/2828 Author: victormote Date: 2025-05-19 14:35:31 +0000 (Mon, 19 May 2025) Log Message: ----------- Remove some no-longer-needed "throws" clauses. Modified Paths: -------------- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java Modified: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java =================================================================== --- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java 2025-05-19 13:57:35 UTC (rev 2827) +++ trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java 2025-05-19 14:35:31 UTC (rev 2828) @@ -136,9 +136,8 @@ /** * Return the image color space. * @return The image color space. - * @throws GraphicException For errors during parsing of the graphic content. */ - ColorSpace getColorSpace() throws GraphicException; + ColorSpace getColorSpace(); /** * Return the number of uncompressed bits per component or channel for this graphic. @@ -154,16 +153,14 @@ /** * Indicates whether this image is transparent. * @return True if and only if the image is transparent. - * @throws GraphicException For errors during parsing of the graphic content. */ - boolean isTransparent() throws GraphicException; + boolean isTransparent(); /** * Return the transparent color, if any. * @return The transparent color, or null if the image is not transparent. - * @throws GraphicException For errors during parsing of the graphic content. */ - Color getTransparentColor() throws GraphicException; + Color getTransparentColor(); /** * Return the raw content of the sample portion of the graphic. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-19 13:57:43
|
Revision: 2827 http://sourceforge.net/p/axsl/code/2827 Author: victormote Date: 2025-05-19 13:57:35 +0000 (Mon, 19 May 2025) Log Message: ----------- Convert @exception javadoc to @throws, and add checkstyle check to enforce. Modified Paths: -------------- trunk/axsl/axsl-00-dev/config/checkstyle/checkstyle-config.xml trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/GraphicServer.java Modified: trunk/axsl/axsl-00-dev/config/checkstyle/checkstyle-config.xml =================================================================== --- trunk/axsl/axsl-00-dev/config/checkstyle/checkstyle-config.xml 2025-05-17 22:43:05 UTC (rev 2826) +++ trunk/axsl/axsl-00-dev/config/checkstyle/checkstyle-config.xml 2025-05-19 13:57:35 UTC (rev 2827) @@ -250,6 +250,7 @@ <property name="format" value="\s+$"/> <property name="message" value="Line has trailing spaces."/> </module> + <module name="RegexpSinglelineJava"> <property name="ignoreComments" value="true"/> <!-- . matches any character, so we need to escape it and use \. to match dots. --> @@ -256,11 +257,13 @@ <property name="format" value="System\.exit"/> <property name="message" value="Never exit the jvm, except in void main(String[])."/> </module> + <module name="RegexpSinglelineJava"> <property name="ignoreComments" value="true"/> <property name="format" value="printStackTrace"/> <property name="message" value="Do not dump a stacktrace, except in void main(String[])."/> </module> + <module name="RegexpSinglelineJava"> <property name="ignoreComments" value="true"/> <property name="format" value=" System.out.print"/> @@ -267,6 +270,7 @@ <property name="message" value="Use logging instead of System.out, except in void main(String[])."/> </module> + <module name="RegexpSinglelineJava"> <property name="ignoreComments" value="true"/> <property name="format" value=" System.err.print"/> @@ -273,26 +277,31 @@ <property name="message" value="Use logging instead of System.err, except in void main(String[])."/> </module> + <module name="RegexpSinglelineJava"> <property name="ignoreComments" value="true"/> <property name="format" value="(FOP|fop|Fop)"/> <property name="message" value="Avoid legacy references to FOP."/> </module> + <module name="RegexpSinglelineJava"> <property name="ignoreComments" value="false"/> <property name="format" value="<\/?code>"/> <property name="message" value="Use the javadoc @code tag instead."/> </module> + <module name="RegexpSinglelineJava"> <property name="ignoreComments" value="false"/> <property name="format" value="\siff\s"/> <property name="message" value="Use "if and only if" instead of "iff"."/> </module> + <module name="RegexpSinglelineJava"> <property name="ignoreComments" value="false"/> <property name="format" value="[Cc]odepoint"/> <property name="message" value="For consistency, use 'codePoint' or 'code point' instead of 'codepoint'."/> </module> + <module name="RegexpSinglelineJava"> <property name="ignoreComments" value="false"/> <property name="format" value="@author"/> @@ -299,8 +308,14 @@ <property name="message" value="Move @author entries to 'Known Contributors' comment after file header."/> </module> + <module name="RegexpSinglelineJava"> + <property name="ignoreComments" value="false"/> + <property name="format" value="@exception"/> + <property name="message" value="Use @throws instead of @exception in Javadoc comments."/> + </module> + <module name="MissingOverride"/> </module> Modified: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java =================================================================== --- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java 2025-05-17 22:43:05 UTC (rev 2826) +++ trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java 2025-05-19 13:57:35 UTC (rev 2827) @@ -102,7 +102,6 @@ /** * Return the image width, in pixels, if available. * @return The image width, in pixels, or -1 if that value is not known. - * @exception GraphicException For errors during parsing of the graphic content. */ int getPixelWidth(); @@ -109,7 +108,6 @@ /** * Return the image height, in pixels, if available. * @return The image height, in pixels, or -1 if that value is not known. - * @exception GraphicException For errors during parsing of the graphic content. */ int getPixelHeight(); @@ -121,7 +119,6 @@ * Set this value to less than one to ensure that the fallback computation based on density will return -1 if the * absolute width is not known. * @return The image width, in millipoints, or -1 if that value is not known. - * @exception GraphicException For errors during parsing of the graphic content. */ int getAbsoluteWidth(int pixelsPerInch); @@ -133,7 +130,6 @@ * Set this value to less than one to ensure that the fallback computation based on density will return -1 if the * absolute width is not known. * @return The image height, in millipoints, or -1 if that value is not known. - * @exception GraphicException For errors during parsing of the graphic content. */ int getAbsoluteHeight(int pixelsPerInch); @@ -140,7 +136,7 @@ /** * Return the image color space. * @return The image color space. - * @exception GraphicException For errors during parsing of the graphic content. + * @throws GraphicException For errors during parsing of the graphic content. */ ColorSpace getColorSpace() throws GraphicException; @@ -151,7 +147,7 @@ * The number of components or channels can be obtained by 1) getting the color space {@link #getColorSpace()}, then * from it getting the number of components {@link ColorSpace#getNumComponents()}. * @return The number of bits per component. - * @exception GraphicException For errors during parsing of the graphic content. + * @throws GraphicException For errors during parsing of the graphic content. */ int getBitsPerComponent() throws GraphicException; @@ -158,7 +154,7 @@ /** * Indicates whether this image is transparent. * @return True if and only if the image is transparent. - * @exception GraphicException For errors during parsing of the graphic content. + * @throws GraphicException For errors during parsing of the graphic content. */ boolean isTransparent() throws GraphicException; @@ -165,7 +161,7 @@ /** * Return the transparent color, if any. * @return The transparent color, or null if the image is not transparent. - * @exception GraphicException For errors during parsing of the graphic content. + * @throws GraphicException For errors during parsing of the graphic content. */ Color getTransparentColor() throws GraphicException; @@ -178,7 +174,7 @@ * {@link #getContent()}, and then needing to recompress it after getting the uncompressed image. * @return The raw content of the sample portion of the graphic content. * Graphics that contain only vector data (no image samples) return null. - * @exception GraphicException For errors during parsing of the graphic content. + * @throws GraphicException For errors during parsing of the graphic content. */ ByteSequence getRawSamples() throws GraphicException; @@ -193,7 +189,7 @@ * channels, and number of bits that are used to describe each image sample. * @return The graphic content. * Graphics that contain only vector data (no image samples) return null. - * @exception GraphicException For errors during parsing of the graphic content. + * @throws GraphicException For errors during parsing of the graphic content. */ ByteSequence getContent() throws GraphicException; Modified: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/GraphicServer.java =================================================================== --- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/GraphicServer.java 2025-05-17 22:43:05 UTC (rev 2826) +++ trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/GraphicServer.java 2025-05-19 13:57:35 UTC (rev 2827) @@ -42,7 +42,7 @@ * {@code graphicLocation} for later retrieval. * Set to false to avoid spending the memory for this. * @return The Graphic instance. - * @exception GraphicException For errors during construction. + * @throws GraphicException For errors during construction. */ Graphic procureGraphic(URL graphicLocation, boolean cacheThisGraphic) throws GraphicException; @@ -50,7 +50,7 @@ * Factory method to find or create an {@link SvgGraphic} instance from an already-parsed {@link SVGDocument}. * @param svgDocument The (DOM) SVG Document from which an SVGGraphic should be constructed. * @return The newly-created {@link SvgGraphic} instance. - * @exception GraphicException For errors during construction. + * @throws GraphicException For errors during construction. */ SvgGraphic procureSvgGraphic(SVGDocument svgDocument) throws GraphicException; @@ -66,7 +66,7 @@ * Factory method to find or create a {@link MathGraphic} instance from an already-parsed {@link MathMLDocument}. * @param mathDocument The (DOM) MathML Document from which a MathGraphic should be constructed. * @return The newly-created {@link MathGraphic} instance. - * @exception GraphicException For errors during construction. + * @throws GraphicException For errors during construction. */ MathGraphic procureMathGraphic(MathMLDocument mathDocument) throws GraphicException; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-17 22:43:08
|
Revision: 2826 http://sourceforge.net/p/axsl/code/2826 Author: victormote Date: 2025-05-17 22:43:05 +0000 (Sat, 17 May 2025) Log Message: ----------- Remove unused method. Modified Paths: -------------- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java Modified: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java =================================================================== --- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java 2025-05-17 19:37:52 UTC (rev 2825) +++ trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java 2025-05-17 22:43:05 UTC (rev 2826) @@ -198,13 +198,6 @@ ByteSequence getContent() throws GraphicException; /** - * Return the graphic content size, in bytes (uncompressed). - * @return The graphic content size, in bytes. - * @exception GraphicException For errors during parsing of the graphic content. - */ - int getContentSize() throws GraphicException; - - /** * Tells the server that the client application is done with this graphic, which gives the server an opportunity to * release any resources devoted to this graphic. * Implementations are expected to release such resources unless they have been instructed to cache the graphic for This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-17 19:37:59
|
Revision: 2825 http://sourceforge.net/p/axsl/code/2825 Author: victormote Date: 2025-05-17 19:37:52 +0000 (Sat, 17 May 2025) Log Message: ----------- Remove "throws" clauses from some Graphic methods. Modified Paths: -------------- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java Modified: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java =================================================================== --- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java 2025-05-17 17:13:01 UTC (rev 2824) +++ trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java 2025-05-17 19:37:52 UTC (rev 2825) @@ -104,7 +104,7 @@ * @return The image width, in pixels, or -1 if that value is not known. * @exception GraphicException For errors during parsing of the graphic content. */ - int getPixelWidth() throws GraphicException; + int getPixelWidth(); /** * Return the image height, in pixels, if available. @@ -111,7 +111,7 @@ * @return The image height, in pixels, or -1 if that value is not known. * @exception GraphicException For errors during parsing of the graphic content. */ - int getPixelHeight() throws GraphicException; + int getPixelHeight(); /** * For image formats that store such information, return the image width, in millipoints. @@ -123,7 +123,7 @@ * @return The image width, in millipoints, or -1 if that value is not known. * @exception GraphicException For errors during parsing of the graphic content. */ - int getAbsoluteWidth(int pixelsPerInch) throws GraphicException; + int getAbsoluteWidth(int pixelsPerInch); /** * For image formats that store such information, return the image height, in millipoints. @@ -135,7 +135,7 @@ * @return The image height, in millipoints, or -1 if that value is not known. * @exception GraphicException For errors during parsing of the graphic content. */ - int getAbsoluteHeight(int pixelsPerInch) throws GraphicException; + int getAbsoluteHeight(int pixelsPerInch); /** * Return the image color space. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-17 17:13:04
|
Revision: 2824 http://sourceforge.net/p/axsl/code/2824 Author: victormote Date: 2025-05-17 17:13:01 +0000 (Sat, 17 May 2025) Log Message: ----------- Move a method used only for bitmaps from Graphic to BitmapGraphic. Modified Paths: -------------- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/BitmapGraphic.java trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java Modified: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/BitmapGraphic.java =================================================================== --- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/BitmapGraphic.java 2025-05-17 16:49:00 UTC (rev 2823) +++ trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/BitmapGraphic.java 2025-05-17 17:13:01 UTC (rev 2824) @@ -32,4 +32,13 @@ * this subinterface after the infrastructure is in place to better handle EPS, which is part vector and part * bitmap. */ + /** + * Indicates whether a graphic has its colors inverted. + * Some applications, most notably Adobe Photoshop, invert the image colors, and client applications need to know + * this in order to be able to render the graphic properly. + * @return True if and only if the data for this graphic have the colors inverted. + */ + boolean isInverted(); + + } Modified: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java =================================================================== --- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java 2025-05-17 16:49:00 UTC (rev 2823) +++ trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java 2025-05-17 17:13:01 UTC (rev 2824) @@ -93,14 +93,6 @@ } /** - * Indicates whether a graphic has its colors inverted. - * Some applications, most notably Adobe Photoshop, invert the image colors, and client applications need to know - * this in order to be able to render the graphic properly. - * @return True if and only if the data for this graphic have the colors inverted. - */ - boolean isInverted(); - - /** * Return the image URL. * This is needed as an identifier for the graphic, especially for logging or exception reporting in other projects. * @return The graphic URL. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-17 16:49:07
|
Revision: 2823 http://sourceforge.net/p/axsl/code/2823 Author: victormote Date: 2025-05-17 16:49:00 +0000 (Sat, 17 May 2025) Log Message: ----------- Remove currently unneeded specialized interface for the bitmap portion of an EPS. Modified Paths: -------------- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsGraphic.java Removed Paths: ------------- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsBitmapGraphic.java Deleted: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsBitmapGraphic.java =================================================================== --- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsBitmapGraphic.java 2025-05-17 15:22:00 UTC (rev 2822) +++ trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsBitmapGraphic.java 2025-05-17 16:49:00 UTC (rev 2823) @@ -1,31 +0,0 @@ -/* - * Copyright 2025 The aXSL Project. - * http://www.axsl.org - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * $LastChangedRevision$ - * $LastChangedDate$ - * $LastChangedBy$ - */ - -package org.axsl.graphic; - -/** - * The bitmap portion of an EPS (encapsulated Postscript) graphic. - */ -public interface EpsBitmapGraphic extends BitmapGraphic { - -} Modified: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsGraphic.java =================================================================== --- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsGraphic.java 2025-05-17 15:22:00 UTC (rev 2822) +++ trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsGraphic.java 2025-05-17 16:49:00 UTC (rev 2823) @@ -31,7 +31,4 @@ @Override EpsVectorGraphic getVectorGraphic(); - @Override - EpsBitmapGraphic getBitmapGraphic(); - } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-17 15:22:03
|
Revision: 2822 http://sourceforge.net/p/axsl/code/2822 Author: victormote Date: 2025-05-17 15:22:00 +0000 (Sat, 17 May 2025) Log Message: ----------- Rough-in naive supposition of Metafile support. Modified Paths: -------------- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsGraphic.java trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java Added Paths: ----------- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsBitmapGraphic.java trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsVectorGraphic.java trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/MetafileGraphic.java Added: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsBitmapGraphic.java =================================================================== --- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsBitmapGraphic.java (rev 0) +++ trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsBitmapGraphic.java 2025-05-17 15:22:00 UTC (rev 2822) @@ -0,0 +1,31 @@ +/* + * Copyright 2025 The aXSL Project. + * http://www.axsl.org + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * $LastChangedRevision$ + * $LastChangedDate$ + * $LastChangedBy$ + */ + +package org.axsl.graphic; + +/** + * The bitmap portion of an EPS (encapsulated Postscript) graphic. + */ +public interface EpsBitmapGraphic extends BitmapGraphic { + +} Property changes on: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsBitmapGraphic.java ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Author Date Id Rev \ No newline at end of property Modified: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsGraphic.java =================================================================== --- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsGraphic.java 2025-05-17 13:19:09 UTC (rev 2821) +++ trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsGraphic.java 2025-05-17 15:22:00 UTC (rev 2822) @@ -23,20 +23,15 @@ package org.axsl.graphic; -import org.axsl.ps.BoundingBox; - /** * Interface for EPS Graphic objects. */ -public interface EpsGraphic extends VectorGraphic { +public interface EpsGraphic extends MetafileGraphic { - /** - * Returns the EPS Bounding Box. This array of four numerics contains a - * description of the rectangle that bounds the graphic. The four elements - * are, in order: the lower left X coordinate, the lower left Y coordinate, - * the upper right X coordinate, and the upper right Y coordinate. - * @return The EPS Bounding Box, expressed as a float array. - */ - BoundingBox getBoundingBox(); + @Override + EpsVectorGraphic getVectorGraphic(); + @Override + EpsBitmapGraphic getBitmapGraphic(); + } Added: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsVectorGraphic.java =================================================================== --- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsVectorGraphic.java (rev 0) +++ trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsVectorGraphic.java 2025-05-17 15:22:00 UTC (rev 2822) @@ -0,0 +1,41 @@ +/* + * Copyright 2025 The aXSL Project. + * http://www.axsl.org + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * $LastChangedRevision$ + * $LastChangedDate$ + * $LastChangedBy$ + */ +package org.axsl.graphic; + +import org.axsl.ps.BoundingBox; + +/** + * The vector portion of an EPS (encapsulated Postscript) graphic. + */ +public interface EpsVectorGraphic extends VectorGraphic { + + /** + * Returns the EPS Bounding Box. + * This array of four numerics contains a description of the rectangle that bounds the graphic. + * The four elements are, in order: the lower left X coordinate, the lower left Y coordinate, the upper right X + * coordinate, and the upper right Y coordinate. + * @return The EPS Bounding Box. + */ + BoundingBox getBoundingBox(); + +} Property changes on: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/EpsVectorGraphic.java ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Author Date Id Rev \ No newline at end of property Modified: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java =================================================================== --- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java 2025-05-17 13:19:09 UTC (rev 2821) +++ trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/Graphic.java 2025-05-17 15:22:00 UTC (rev 2822) @@ -102,7 +102,8 @@ /** * Return the image URL. - * @return The image URL. + * This is needed as an identifier for the graphic, especially for logging or exception reporting in other projects. + * @return The graphic URL. */ URL getUrl(); Added: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/MetafileGraphic.java =================================================================== --- trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/MetafileGraphic.java (rev 0) +++ trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/MetafileGraphic.java 2025-05-17 15:22:00 UTC (rev 2822) @@ -0,0 +1,43 @@ +/* + * Copyright 2025 The aXSL Project. + * http://www.axsl.org + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * $LastChangedRevision$ + * $LastChangedDate$ + * $LastChangedBy$ + */ + +package org.axsl.graphic; + +/** + * A graphic that can contain both a vector graphic and a bitmap representation of that graphic in the same file. + */ +public interface MetafileGraphic { + + /** + * Returns the vector portion of this graphic. + * @return The vector portion of this graphic. + */ + VectorGraphic getVectorGraphic(); + + /** + * Returns the bitmap portion of this graphic. + * @return The bitmap portion of this graphic. + */ + BitmapGraphic getBitmapGraphic(); + +} Property changes on: trunk/axsl/axsl-graphic/src/main/java/org/axsl/graphic/MetafileGraphic.java ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Author Date Id Rev \ No newline at end of property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-17 13:19:14
|
Revision: 2821 http://sourceforge.net/p/axsl/code/2821 Author: victormote Date: 2025-05-17 13:19:09 +0000 (Sat, 17 May 2025) Log Message: ----------- Add checkstyle check probiting @author entries. Modified Paths: -------------- trunk/axsl/axsl-00-dev/config/checkstyle/checkstyle-config.xml Modified: trunk/axsl/axsl-00-dev/config/checkstyle/checkstyle-config.xml =================================================================== --- trunk/axsl/axsl-00-dev/config/checkstyle/checkstyle-config.xml 2025-05-14 20:34:30 UTC (rev 2820) +++ trunk/axsl/axsl-00-dev/config/checkstyle/checkstyle-config.xml 2025-05-17 13:19:09 UTC (rev 2821) @@ -293,8 +293,14 @@ <property name="format" value="[Cc]odepoint"/> <property name="message" value="For consistency, use 'codePoint' or 'code point' instead of 'codepoint'."/> </module> + <module name="RegexpSinglelineJava"> + <property name="ignoreComments" value="false"/> + <property name="format" value="@author"/> + <property name="message" value="Move @author entries to 'Known Contributors' comment after file header."/> + </module> + <module name="MissingOverride"/> </module> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-14 20:34:33
|
Revision: 2820 http://sourceforge.net/p/axsl/code/2820 Author: victormote Date: 2025-05-14 20:34:30 +0000 (Wed, 14 May 2025) Log Message: ----------- Reorder parameters to reflect order of importance in the selection algorithm. Modified Paths: -------------- trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java Modified: trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java =================================================================== --- trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java 2025-05-14 16:11:35 UTC (rev 2819) +++ trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java 2025-05-14 20:34:30 UTC (rev 2820) @@ -83,10 +83,10 @@ * expected here. * @param style The style of the font desired. * Use {@link FontStyle#parseFo(String)} to convert String input. + * @param variant The variant (normal or small-caps) of the font desired. + * Use {@link FontVariant#parseFo(String)} to convert String input. * @param weight The weight of the font desired. * Use {@link FontWeight#parseFo(String)} to convert String input. - * @param variant The variant (normal or small-caps) of the font desired. - * Use {@link FontVariant#parseFo(String)} to convert String input. * @param stretch The stretch of the font desired. * Use {@link FontStretch#parseFo(String)} to convert String input. * @param fontSize The size (in millipoints) of the font. @@ -104,7 +104,7 @@ * @see #selectFontFallback() * @see <a href="https://www.w3.org/TR/CSS2/fonts.html#algorithm">The CSS2 Font Matching Algorithm</a> */ - FontUse selectFont(List<String> familyList, FontStyle style, FontWeight weight, FontVariant variant, + FontUse selectFont(List<String> familyList, FontStyle style, FontVariant variant, FontWeight weight, FontStretch stretch, int fontSize, WritingSystem writingSystem); /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-14 16:11:42
|
Revision: 2819 http://sourceforge.net/p/axsl/code/2819 Author: victormote Date: 2025-05-14 16:11:35 +0000 (Wed, 14 May 2025) Log Message: ----------- Replace font-selection-strategy with writing-system for font selection. Add documentation about using font-selection strategy. Modified Paths: -------------- trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java Modified: trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java =================================================================== --- trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java 2025-05-14 15:04:47 UTC (rev 2818) +++ trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java 2025-05-14 16:11:35 UTC (rev 2819) @@ -24,6 +24,7 @@ package org.axsl.font; import org.axsl.i18n.Script; +import org.axsl.i18n.WritingSystem; import org.axsl.value.FontSelectionStrategy; import org.axsl.value.FontStretch; import org.axsl.value.FontStyle; @@ -56,9 +57,25 @@ * The first piece is handled by this method. * The second is handled by {@link FontUse#getNextBest(int)}.</p> * - * Note that CSS has no concept of specifying a font-selection-strategy as XSL-FO does. - * CSS 2.1 has an implied font-selection-strategy of {@link FontSelectionStrategy#CHARACTER_BY_CHARACTER}. - * @param selectionStrategy The font-selection strategy to be used. + * <p>XSL-FO has a concept of {@link FontSelectionStrategy}, which specifies the scope of "contextual characters" + * that should be considered when selecting a font. + * CSS 2.1 does not have this concept explicitly, but has an implied value of + * {@link FontSelectionStrategy#CHARACTER_BY_CHARACTER}. + * To use {@link FontSelectionStrategy#CHARACTER_BY_CHARACTER}, select a font using this method, then use the + * returned {@link FontUse} instance to test each code point as it is encountered, using + * {@link FontUse#getNextBest(int)} as needed.</p> + * + * <p>{@link FontSelectionStrategy#AUTO}, the default value in XSL-FO, leaves the decision about the set of + * "contextual characters" to the implementation. + * In the simplest case, where the contextual character set is a single character, this is functionally equivalent + * to {@link FontSelectionStrategy#CHARACTER_BY_CHARACTER}, and should be implemented the same way. + * For all other cases, the concept of glyph coverage and glyph quality drive the decision. + * Each of these should be factors in the creation of {@code familyList}. + * The font system is totally unable to determine or even assist with glyph quality, but can provide information + * about glyph coverage. + * To that end, the {@code writingSystem} parameter is used to tell the font system the general set of glyphs that + * will be needed.</p> + * * @param familyList The list of possible font family names from which to choose the font. * The most desirable font-family name is listed first, then the next most desirable, etc. * Elements should not contain leading or trailing quotation marks or spaces. @@ -77,8 +94,10 @@ * fonts as well, especially at small sizes. * It is clearly part of the CSS 2.1 font matching algorithm. * Set this to zero to signal that font size should not be considered during font selection. - * This allows the selection process to avoid selecting a {@link FontUse} that cannot even paint the first - * character. + * @param writingSystem The writing system, if any, which the selected font should support. + * This parameter is mostly in support of {@link FontSelectionStrategy#AUTO}. + * This parameter is optional, because this factor was presumably addressed when creating the {@code familyList}. + * Set this to null to signal that the writing system needs no further consideration during font selection. * @return The best-fitting {@link FontUse} instance associated with the descriptive input, or null if none is * found using the given criteria. * @see #selectFontFallback(int) @@ -85,8 +104,8 @@ * @see #selectFontFallback() * @see <a href="https://www.w3.org/TR/CSS2/fonts.html#algorithm">The CSS2 Font Matching Algorithm</a> */ - FontUse selectFont(FontSelectionStrategy selectionStrategy, List<String> familyList, FontStyle style, - FontWeight weight, FontVariant variant, FontStretch stretch, int fontSize); + FontUse selectFont(List<String> familyList, FontStyle style, FontWeight weight, FontVariant variant, + FontStretch stretch, int fontSize, WritingSystem writingSystem); /** * Returns an instance of a fallback font that supports a given {@link Script}, without regard to the normal This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-14 15:04:54
|
Revision: 2818 http://sourceforge.net/p/axsl/code/2818 Author: victormote Date: 2025-05-14 15:04:47 +0000 (Wed, 14 May 2025) Log Message: ----------- Remove code point from initial font selection method. Modified Paths: -------------- trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java Modified: trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java =================================================================== --- trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java 2025-05-14 14:38:08 UTC (rev 2817) +++ trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java 2025-05-14 15:04:47 UTC (rev 2818) @@ -77,7 +77,6 @@ * fonts as well, especially at small sizes. * It is clearly part of the CSS 2.1 font matching algorithm. * Set this to zero to signal that font size should not be considered during font selection. - * @param codePoint The first character to be painted using the selected {@link FontUse}. * This allows the selection process to avoid selecting a {@link FontUse} that cannot even paint the first * character. * @return The best-fitting {@link FontUse} instance associated with the descriptive input, or null if none is @@ -87,7 +86,7 @@ * @see <a href="https://www.w3.org/TR/CSS2/fonts.html#algorithm">The CSS2 Font Matching Algorithm</a> */ FontUse selectFont(FontSelectionStrategy selectionStrategy, List<String> familyList, FontStyle style, - FontWeight weight, FontVariant variant, FontStretch stretch, int fontSize, int codePoint); + FontWeight weight, FontVariant variant, FontStretch stretch, int fontSize); /** * Returns an instance of a fallback font that supports a given {@link Script}, without regard to the normal This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-14 14:38:12
|
Revision: 2817 http://sourceforge.net/p/axsl/code/2817 Author: victormote Date: 2025-05-14 14:38:08 +0000 (Wed, 14 May 2025) Log Message: ----------- Add method to handle case where a glyph is not found in the selected font. Modified Paths: -------------- trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontUse.java Modified: trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java =================================================================== --- trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java 2025-05-14 12:27:19 UTC (rev 2816) +++ trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java 2025-05-14 14:38:08 UTC (rev 2817) @@ -48,8 +48,14 @@ public interface FontConsumer { /** - * Accepts the client's description of the desired font, and returns the best-fitting Font found. + * <p>Accepts the client's description of the desired font, and returns the best-fitting Font found. * XSL-FO does not define its own font selection algorithm, but generally relies on the CSS 2.1 algorithm. + * That algorithm can be broken into two pieces: 1) Select a <em>general</em> font (steps 1, 2, 3, and 5 in the + * algorithm), and 2) Use the next-best font to handle characters having no glyphs in the general font (steps 4 and + * 5 in the algorithm). + * The first piece is handled by this method. + * The second is handled by {@link FontUse#getNextBest(int)}.</p> + * * Note that CSS has no concept of specifying a font-selection-strategy as XSL-FO does. * CSS 2.1 has an implied font-selection-strategy of {@link FontSelectionStrategy#CHARACTER_BY_CHARACTER}. * @param selectionStrategy The font-selection strategy to be used. Modified: trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontUse.java =================================================================== --- trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontUse.java 2025-05-14 12:27:19 UTC (rev 2816) +++ trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontUse.java 2025-05-14 14:38:08 UTC (rev 2817) @@ -34,17 +34,16 @@ /** * The FontUse interface exposes a font resource to the client application. - * It encapsulates a {@link Font} as it is used by a specific - * {@link FontConsumer}, for a specific {@link Encoding} and for a specific - * font family. It is possible for a {@link FontConsumer} to use the same - * {@link Font} instance in more than one way, due to more than one encoding or - * the font being configured in more than one font family. + * It encapsulates a {@link Font} as it is used by a specific {@link FontConsumer}, for a specific {@link Encoding} and + * for a specific font family. + * It is possible for a {@link FontConsumer} to use the same {@link Font} instance in more than one way, due to more + * than one encoding or the font being configured in more than one font family. */ public interface FontUse { /** - * Return the parent Font. - * @return The parent Font. + * Return the actual Font. + * @return The actual Font. */ Font getFont(); @@ -55,6 +54,27 @@ FontConsumer getFontConsumer(); /** + * <p>Returns a {@link FontUse} for the next best font for a specific code point, presumably because this instance + * either has no glyph for the code point, or cannot encode the code point using the encoding for this instance. + * This method is intended to handle step 4 in the CSS2 Font Matching Algorithm, and the part of step 5 that + * discusses the inability of even a default font to find a glyph for a character.</p> + * + * <p>CAVEAT: Because a {@link FontUse} instance could be obtained from more than one set of criteria (font-family, + * font-style, font-weight, etc.), implementations will need to track which of these was used in order to consult + * those criteria. + * That may be too cumbersome. + * This method may need to be changed to provide all of that information again.</p> + * + * @param codePoint The code point for which a different font is needed. + * @return The next best {@link FontUse} that has a glyph for {@code codePoint}. + * This should be (in order of preference) 1) from the original list of font families used to select this font, 2) + * from a default font selected by the implementation, 3) from any font at all that the implementation knows has a + * glyph, and 4) in the last resort, return null. + * @see <a href="https://www.w3.org/TR/CSS2/fonts.html#algorithm">The CSS2 Font Matching Algorithm.</a> + */ + FontUse getNextBest(int codePoint); + + /** * Get the Encoding scheme that is used to encode characters in this Font. * Note that this may be different from the font's internal encoding. * @return The Encoding scheme that is used to encode characters in this This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-14 12:27:25
|
Revision: 2816 http://sourceforge.net/p/axsl/code/2816 Author: victormote Date: 2025-05-14 12:27:19 +0000 (Wed, 14 May 2025) Log Message: ----------- Add font-size back to the selectFont method. It is clearly part of the CSS2 font matching algorithm. Modified Paths: -------------- trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java Modified: trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java =================================================================== --- trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java 2025-05-13 23:59:35 UTC (rev 2815) +++ trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java 2025-05-14 12:27:19 UTC (rev 2816) @@ -48,11 +48,10 @@ public interface FontConsumer { /** - * Accepts the client's description of the desired font, and returns the best-fitting Font found, using the - * algorithm specified by the XSL-FO 1.1 Recommendation. + * Accepts the client's description of the desired font, and returns the best-fitting Font found. + * XSL-FO does not define its own font selection algorithm, but generally relies on the CSS 2.1 algorithm. * Note that CSS has no concept of specifying a font-selection-strategy as XSL-FO does. * CSS 2.1 has an implied font-selection-strategy of {@link FontSelectionStrategy#CHARACTER_BY_CHARACTER}. - * This method supports only scalable fonts (not bitmapped fonts). * @param selectionStrategy The font-selection strategy to be used. * @param familyList The list of possible font family names from which to choose the font. * The most desirable font-family name is listed first, then the next most desirable, etc. @@ -67,6 +66,11 @@ * Use {@link FontVariant#parseFo(String)} to convert String input. * @param stretch The stretch of the font desired. * Use {@link FontStretch#parseFo(String)} to convert String input. + * @param fontSize The size (in millipoints) of the font. + * This is mostly applicable for bitmapped (non-scalable) fonts, but may be relevant to font selection for scalable + * fonts as well, especially at small sizes. + * It is clearly part of the CSS 2.1 font matching algorithm. + * Set this to zero to signal that font size should not be considered during font selection. * @param codePoint The first character to be painted using the selected {@link FontUse}. * This allows the selection process to avoid selecting a {@link FontUse} that cannot even paint the first * character. @@ -74,9 +78,10 @@ * found using the given criteria. * @see #selectFontFallback(int) * @see #selectFontFallback() + * @see <a href="https://www.w3.org/TR/CSS2/fonts.html#algorithm">The CSS2 Font Matching Algorithm</a> */ FontUse selectFont(FontSelectionStrategy selectionStrategy, List<String> familyList, FontStyle style, - FontWeight weight, FontVariant variant, FontStretch stretch, int codePoint); + FontWeight weight, FontVariant variant, FontStretch stretch, int fontSize, int codePoint); /** * Returns an instance of a fallback font that supports a given {@link Script}, without regard to the normal This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-13 23:59:38
|
Revision: 2815 http://sourceforge.net/p/axsl/code/2815 Author: victormote Date: 2025-05-13 23:59:35 +0000 (Tue, 13 May 2025) Log Message: ----------- Add test class. Fix bug found using the test code. Modified Paths: -------------- trunk/axsl/axsl-constants/build.gradle trunk/axsl/axsl-constants/src/main/java/org/axsl/unicode/UnicodeScriptExtended.java trunk/axsl/buildSrc/src/main/groovy/axsl.common-conventions.gradle Added Paths: ----------- trunk/axsl/axsl-constants/src/main/java/org/axsl/unicode/package-info.java trunk/axsl/axsl-constants/src/test/ trunk/axsl/axsl-constants/src/test/java/ trunk/axsl/axsl-constants/src/test/java/org/ trunk/axsl/axsl-constants/src/test/java/org/axsl/ trunk/axsl/axsl-constants/src/test/java/org/axsl/unicode/ trunk/axsl/axsl-constants/src/test/java/org/axsl/unicode/UnicodeScriptExtendedTests.java Modified: trunk/axsl/axsl-constants/build.gradle =================================================================== --- trunk/axsl/axsl-constants/build.gradle 2025-05-13 22:56:36 UTC (rev 2814) +++ trunk/axsl/axsl-constants/build.gradle 2025-05-13 23:59:35 UTC (rev 2815) @@ -1,5 +1,6 @@ plugins { id 'axsl.library-conventions' + id 'axsl.test-conventions' } description = "axsl-constants" Modified: trunk/axsl/axsl-constants/src/main/java/org/axsl/unicode/UnicodeScriptExtended.java =================================================================== --- trunk/axsl/axsl-constants/src/main/java/org/axsl/unicode/UnicodeScriptExtended.java 2025-05-13 22:56:36 UTC (rev 2814) +++ trunk/axsl/axsl-constants/src/main/java/org/axsl/unicode/UnicodeScriptExtended.java 2025-05-13 23:59:35 UTC (rev 2815) @@ -893,7 +893,7 @@ * @param script The script whose count of ranges should be returned. * @return The count of ranges for {@code script}. */ - public int getQtyRanges(final UnicodeScript script) { + public static int getQtyRanges(final UnicodeScript script) { return SCRIPT_INDEXES.get(script).length; } @@ -910,7 +910,7 @@ * This tells nothing about the values in the range, but is used as the key to {@link #getRangeStart(int)} and * {@link #getRangeEnd(int)} obtain the range boundaries. */ - public int getRangeIndex(final UnicodeScript script, final int scriptOrdinal) { + public static int getRangeIndex(final UnicodeScript script, final int scriptOrdinal) { return SCRIPT_INDEXES.get(script)[scriptOrdinal]; } @@ -919,7 +919,7 @@ * @param rangeIndex The index to the range. * @return The first code point in the range at {@code rangeIndex}. */ - public int getRangeStart(final int rangeIndex) { + public static int getRangeStart(final int rangeIndex) { return SCRIPT_STARTS[rangeIndex]; } @@ -928,11 +928,11 @@ * @param rangeIndex The index to the range. * @return The last code point in the range at {@code rangeIndex}. */ - public int getRangeEnd(final int rangeIndex) { + public static int getRangeEnd(final int rangeIndex) { if (rangeIndex >= SCRIPT_STARTS.length - 1) { return Character.MAX_CODE_POINT; } else { - return SCRIPT_STARTS[rangeIndex + 1]; + return SCRIPT_STARTS[rangeIndex + 1] - 1; } } Added: trunk/axsl/axsl-constants/src/main/java/org/axsl/unicode/package-info.java =================================================================== --- trunk/axsl/axsl-constants/src/main/java/org/axsl/unicode/package-info.java (rev 0) +++ trunk/axsl/axsl-constants/src/main/java/org/axsl/unicode/package-info.java 2025-05-13 23:59:35 UTC (rev 2815) @@ -0,0 +1,39 @@ +/* + * Copyright 2025 The aXSL Project. + * http://www.axsl.org + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * $LastChangedRevision$ + * $LastChangedDate$ + * $LastChangedBy$ + */ + +/** + * <p>Classes generated from the UnicodeData.txt file that are distributed as part of Unicode 13. + * The files in this package were generated using FOray's (www.foray.org) foray-unicode project, and were generated + * from data files downloaded from the Unicode web site on January 22, 2021, specifically the following:</p> + * + * <p>https://www.unicode.org/Public/UCD/latest/ucd/UCD.zip</p> + * + * <p>The following related pages provide information on licensing and terms of use:</p> + * <ol> + * <li>https://www.unicode.org/license.html</li> + * <li>https://www.unicode.org/copyright.html</li> + * <li></li> + * </ol> + */ + +package org.axsl.unicode; Property changes on: trunk/axsl/axsl-constants/src/main/java/org/axsl/unicode/package-info.java ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Author Date Id Rev \ No newline at end of property Added: trunk/axsl/axsl-constants/src/test/java/org/axsl/unicode/UnicodeScriptExtendedTests.java =================================================================== --- trunk/axsl/axsl-constants/src/test/java/org/axsl/unicode/UnicodeScriptExtendedTests.java (rev 0) +++ trunk/axsl/axsl-constants/src/test/java/org/axsl/unicode/UnicodeScriptExtendedTests.java 2025-05-13 23:59:35 UTC (rev 2815) @@ -0,0 +1,52 @@ +/* + * Copyright 2025 The aXSL Project. + * http://www.axsl.org + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * $LastChangedRevision$ + * $LastChangedDate$ + * $LastChangedBy$ + */ +package org.axsl.unicode; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + +import java.lang.Character.UnicodeScript; + +/** + * Tests of {@link UnicodeScriptExtended}. + */ +public class UnicodeScriptExtendedTests { + + /** + * Tests for the successful retrieval of data. + */ + @Test + public void retrievalTest() { + assertEquals(2, UnicodeScriptExtended.getQtyRanges(UnicodeScript.JAVANESE)); + + assertEquals(236, UnicodeScriptExtended.getRangeIndex(UnicodeScript.JAVANESE, 0)); + assertEquals(238, UnicodeScriptExtended.getRangeIndex(UnicodeScript.JAVANESE, 1)); + + assertEquals(0xA980, UnicodeScriptExtended.getRangeStart(236)); + assertEquals(0xA9CF - 1, UnicodeScriptExtended.getRangeEnd(236)); + + assertEquals(0xA9D0, UnicodeScriptExtended.getRangeStart(238)); + assertEquals(0xA9E0 - 1, UnicodeScriptExtended.getRangeEnd(238)); + } + +} Property changes on: trunk/axsl/axsl-constants/src/test/java/org/axsl/unicode/UnicodeScriptExtendedTests.java ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Author Date Id Rev \ No newline at end of property Modified: trunk/axsl/buildSrc/src/main/groovy/axsl.common-conventions.gradle =================================================================== --- trunk/axsl/buildSrc/src/main/groovy/axsl.common-conventions.gradle 2025-05-13 22:56:36 UTC (rev 2814) +++ trunk/axsl/buildSrc/src/main/groovy/axsl.common-conventions.gradle 2025-05-13 23:59:35 UTC (rev 2815) @@ -28,7 +28,7 @@ mathMlDom: '2.0', checkerFramework: '3.49.2', // Latest is 3.49.2 as of 2025-04-20. - junit: '5.9.1', // Latest is 5.9.1 as of 2022-11-26. + junit: '5.10.2', // Latest is 5.10.2 as of 2024-05-08. mockito: '4.9.0', // Latest is 4.9.0 as of 2022-11-26. /* Build-time-only dependencies that should never be permanently used in build.gradle files. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-13 22:56:40
|
Revision: 2814 http://sourceforge.net/p/axsl/code/2814 Author: victormote Date: 2025-05-13 22:56:36 +0000 (Tue, 13 May 2025) Log Message: ----------- Generated code exposing Unicode script ranges so that they can be iterated. Modified Paths: -------------- trunk/axsl/axsl-00-dev/config/checkstyle/checkstyle-config.xml Added Paths: ----------- trunk/axsl/axsl-constants/src/main/java/org/axsl/unicode/UnicodeScriptExtended.java Modified: trunk/axsl/axsl-00-dev/config/checkstyle/checkstyle-config.xml =================================================================== --- trunk/axsl/axsl-00-dev/config/checkstyle/checkstyle-config.xml 2025-05-13 13:21:38 UTC (rev 2813) +++ trunk/axsl/axsl-00-dev/config/checkstyle/checkstyle-config.xml 2025-05-13 22:56:36 UTC (rev 2814) @@ -37,6 +37,14 @@ <module name="TreeWalker"> + <!-- Allow magic numbers where they represent hard-coded arbitrary data, for example numeric codes assigned by + a standard-setting body. --> + <module name="SuppressionCommentFilter"> + <property name="offCommentFormat" value="Checkstyle: Allow Magic Numbers that are hard-coded data."/> + <property name="onCommentFormat" value="Checkstyle: Restart Magic Number checking."/> + <property name="checkFormat" value="MagicNumber"/> + </module> + <!--<module name="AbstractClassName"/>--> <module name="ConstantName"/> <module name="LocalFinalVariableName"/> Added: trunk/axsl/axsl-constants/src/main/java/org/axsl/unicode/UnicodeScriptExtended.java =================================================================== --- trunk/axsl/axsl-constants/src/main/java/org/axsl/unicode/UnicodeScriptExtended.java (rev 0) +++ trunk/axsl/axsl-constants/src/main/java/org/axsl/unicode/UnicodeScriptExtended.java 2025-05-13 22:56:36 UTC (rev 2814) @@ -0,0 +1,939 @@ +/* + * Copyright 2025 The aXSL Project. + * http://www.axsl.org + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * $LastChangedRevision$ + * $LastChangedDate$ + * $LastChangedBy$ + */ + +package org.axsl.unicode; + +import java.lang.Character.UnicodeScript; +import java.util.HashMap; +import java.util.Map; + +/** + * Mapping of Unicode scripts to the Unicode(r) code points assigned to them. + * See package documentation for links to the Unicode(r) license and terms of use. + * Extends the functionality of {@link Character.UnicodeScript}. + * We would prefer to use the standard Java classes, but the data structures are private. + * Instead, we have copied the data structures to this class. + * The standard Java classes do a fine job of mapping a Unicode code point to its Unicode Script. + * The functionality added here is to go the other way, to list all code points that belong to a given Unicode Script. + */ +public final class UnicodeScriptExtended { + + /* + * This class was generated by {@link org.foray.unicode.ScriptParser}. + * If changes are needed, it will likely be better to regenerate than to change manually. + */ + + + /** + * Array of the starting codePoints for each contiguous range of Unicode codePoints that share the same Unicode + * Script. + * The Unicode Script for each of these ranges is found in {@link #scripts}. + * Imitated from {@link Character.UnicodeScript}. + */ + private static final int[] SCRIPT_STARTS = { + 0x0000, // 0x0000..0x0040; COMMON 0 + 0x0041, // 0x0041..0x005A; LATIN 1 + 0x005B, // 0x005B..0x0060; COMMON 2 + 0x0061, // 0x0061..0x007A; LATIN 3 + 0x007B, // 0x007B..0x00A9; COMMON 4 + 0x00AA, // 0x00AA..0x00AA; LATIN 5 + 0x00AB, // 0x00AB..0x00B9; COMMON 6 + 0x00BA, // 0x00BA..0x00BA; LATIN 7 + 0x00BB, // 0x00BB..0x00BF; COMMON 8 + 0x00C0, // 0x00C0..0x00D6; LATIN 9 + 0x00D7, // 0x00D7..0x00D7; COMMON 10 + 0x00D8, // 0x00D8..0x00F6; LATIN 11 + 0x00F7, // 0x00F7..0x00F7; COMMON 12 + 0x00F8, // 0x00F8..0x02B8; LATIN 13 + 0x02B9, // 0x02B9..0x02DF; COMMON 14 + 0x02E0, // 0x02E0..0x02E4; LATIN 15 + 0x02E5, // 0x02E5..0x02E9; COMMON 16 + 0x02EA, // 0x02EA..0x02EB; BOPOMOFO 17 + 0x02EC, // 0x02EC..0x02FF; COMMON 18 + 0x0300, // 0x0300..0x036F; INHERITED 19 + 0x0370, // 0x0370..0x0373; GREEK 20 + 0x0374, // 0x0374..0x0374; COMMON 21 + 0x0375, // 0x0375..0x037D; GREEK 22 + 0x037E, // 0x037E..0x037E; COMMON 23 + 0x037F, // 0x037F..0x0384; GREEK 24 + 0x0385, // 0x0385..0x0385; COMMON 25 + 0x0386, // 0x0386..0x0386; GREEK 26 + 0x0387, // 0x0387..0x0387; COMMON 27 + 0x0388, // 0x0388..0x03E1; GREEK 28 + 0x03E2, // 0x03E2..0x03EF; COPTIC 29 + 0x03F0, // 0x03F0..0x03FF; GREEK 30 + 0x0400, // 0x0400..0x0484; CYRILLIC 31 + 0x0485, // 0x0485..0x0486; INHERITED 32 + 0x0487, // 0x0487..0x052F; CYRILLIC 33 + 0x0531, // 0x0531..0x058F; ARMENIAN 34 + 0x0591, // 0x0591..0x05F4; HEBREW 35 + 0x0600, // 0x0600..0x0604; ARABIC 36 + 0x0605, // 0x0605..0x0605; COMMON 37 + 0x0606, // 0x0606..0x060B; ARABIC 38 + 0x060C, // 0x060C..0x060C; COMMON 39 + 0x060D, // 0x060D..0x061A; ARABIC 40 + 0x061B, // 0x061B..0x061B; COMMON 41 + 0x061C, // 0x061C..0x061E; ARABIC 42 + 0x061F, // 0x061F..0x061F; COMMON 43 + 0x0620, // 0x0620..0x063F; ARABIC 44 + 0x0640, // 0x0640..0x0640; COMMON 45 + 0x0641, // 0x0641..0x064A; ARABIC 46 + 0x064B, // 0x064B..0x0655; INHERITED 47 + 0x0656, // 0x0656..0x066F; ARABIC 48 + 0x0670, // 0x0670..0x0670; INHERITED 49 + 0x0671, // 0x0671..0x06DC; ARABIC 50 + 0x06DD, // 0x06DD..0x06DD; COMMON 51 + 0x06DE, // 0x06DE..0x06FF; ARABIC 52 + 0x0700, // 0x0700..0x074F; SYRIAC 53 + 0x0750, // 0x0750..0x077F; ARABIC 54 + 0x0780, // 0x0780..0x07B1; THAANA 55 + 0x07C0, // 0x07C0..0x07FF; NKO 56 + 0x0800, // 0x0800..0x083E; SAMARITAN 57 + 0x0840, // 0x0840..0x085E; MANDAIC 58 + 0x0860, // 0x0860..0x086A; SYRIAC 59 + 0x08A0, // 0x08A0..0x08E1; ARABIC 60 + 0x08E2, // 0x08E2..0x08E2; COMMON 61 + 0x08E3, // 0x08E3..0x08FF; ARABIC 62 + 0x0900, // 0x0900..0x0950; DEVANAGARI 63 + 0x0951, // 0x0951..0x0954; INHERITED 64 + 0x0955, // 0x0955..0x0963; DEVANAGARI 65 + 0x0964, // 0x0964..0x0965; COMMON 66 + 0x0966, // 0x0966..0x097F; DEVANAGARI 67 + 0x0980, // 0x0980..0x09FE; BENGALI 68 + 0x0A01, // 0x0A01..0x0A76; GURMUKHI 69 + 0x0A81, // 0x0A81..0x0AFF; GUJARATI 70 + 0x0B01, // 0x0B01..0x0B77; ORIYA 71 + 0x0B82, // 0x0B82..0x0BFA; TAMIL 72 + 0x0C00, // 0x0C00..0x0C7F; TELUGU 73 + 0x0C80, // 0x0C80..0x0CF2; KANNADA 74 + 0x0D00, // 0x0D00..0x0D7F; MALAYALAM 75 + 0x0D81, // 0x0D81..0x0DF4; SINHALA 76 + 0x0E01, // 0x0E01..0x0E3A; THAI 77 + 0x0E3F, // 0x0E3F..0x0E3F; COMMON 78 + 0x0E40, // 0x0E40..0x0E5B; THAI 79 + 0x0E81, // 0x0E81..0x0EDF; LAO 80 + 0x0F00, // 0x0F00..0x0FD4; TIBETAN 81 + 0x0FD5, // 0x0FD5..0x0FD8; COMMON 82 + 0x0FD9, // 0x0FD9..0x0FDA; TIBETAN 83 + 0x1000, // 0x1000..0x109F; MYANMAR 84 + 0x10A0, // 0x10A0..0x10FA; GEORGIAN 85 + 0x10FB, // 0x10FB..0x10FB; COMMON 86 + 0x10FC, // 0x10FC..0x10FF; GEORGIAN 87 + 0x1100, // 0x1100..0x11FF; HANGUL 88 + 0x1200, // 0x1200..0x1399; ETHIOPIC 89 + 0x13A0, // 0x13A0..0x13FD; CHEROKEE 90 + 0x1400, // 0x1400..0x167F; CANADIAN_ABORIGINAL 91 + 0x1680, // 0x1680..0x169C; OGHAM 92 + 0x16A0, // 0x16A0..0x16EA; RUNIC 93 + 0x16EB, // 0x16EB..0x16ED; COMMON 94 + 0x16EE, // 0x16EE..0x16F8; RUNIC 95 + 0x1700, // 0x1700..0x1714; TAGALOG 96 + 0x1720, // 0x1720..0x1734; HANUNOO 97 + 0x1735, // 0x1735..0x1736; COMMON 98 + 0x1740, // 0x1740..0x1753; BUHID 99 + 0x1760, // 0x1760..0x1773; TAGBANWA 100 + 0x1780, // 0x1780..0x17F9; KHMER 101 + 0x1800, // 0x1800..0x1801; MONGOLIAN 102 + 0x1802, // 0x1802..0x1803; COMMON 103 + 0x1804, // 0x1804..0x1804; MONGOLIAN 104 + 0x1805, // 0x1805..0x1805; COMMON 105 + 0x1806, // 0x1806..0x18AA; MONGOLIAN 106 + 0x18B0, // 0x18B0..0x18F5; CANADIAN_ABORIGINAL 107 + 0x1900, // 0x1900..0x194F; LIMBU 108 + 0x1950, // 0x1950..0x1974; TAI_LE 109 + 0x1980, // 0x1980..0x19DF; NEW_TAI_LUE 110 + 0x19E0, // 0x19E0..0x19FF; KHMER 111 + 0x1A00, // 0x1A00..0x1A1F; BUGINESE 112 + 0x1A20, // 0x1A20..0x1AAD; TAI_THAM 113 + 0x1AB0, // 0x1AB0..0x1AC0; INHERITED 114 + 0x1B00, // 0x1B00..0x1B7C; BALINESE 115 + 0x1B80, // 0x1B80..0x1BBF; SUNDANESE 116 + 0x1BC0, // 0x1BC0..0x1BFF; BATAK 117 + 0x1C00, // 0x1C00..0x1C4F; LEPCHA 118 + 0x1C50, // 0x1C50..0x1C7F; OL_CHIKI 119 + 0x1C80, // 0x1C80..0x1C88; CYRILLIC 120 + 0x1C90, // 0x1C90..0x1CBF; GEORGIAN 121 + 0x1CC0, // 0x1CC0..0x1CC7; SUNDANESE 122 + 0x1CD0, // 0x1CD0..0x1CD2; INHERITED 123 + 0x1CD3, // 0x1CD3..0x1CD3; COMMON 124 + 0x1CD4, // 0x1CD4..0x1CE0; INHERITED 125 + 0x1CE1, // 0x1CE1..0x1CE1; COMMON 126 + 0x1CE2, // 0x1CE2..0x1CE8; INHERITED 127 + 0x1CE9, // 0x1CE9..0x1CEC; COMMON 128 + 0x1CED, // 0x1CED..0x1CED; INHERITED 129 + 0x1CEE, // 0x1CEE..0x1CF3; COMMON 130 + 0x1CF4, // 0x1CF4..0x1CF4; INHERITED 131 + 0x1CF5, // 0x1CF5..0x1CF7; COMMON 132 + 0x1CF8, // 0x1CF8..0x1CF9; INHERITED 133 + 0x1CFA, // 0x1CFA..0x1CFA; COMMON 134 + 0x1D00, // 0x1D00..0x1D25; LATIN 135 + 0x1D26, // 0x1D26..0x1D2A; GREEK 136 + 0x1D2B, // 0x1D2B..0x1D2B; CYRILLIC 137 + 0x1D2C, // 0x1D2C..0x1D5C; LATIN 138 + 0x1D5D, // 0x1D5D..0x1D61; GREEK 139 + 0x1D62, // 0x1D62..0x1D65; LATIN 140 + 0x1D66, // 0x1D66..0x1D6A; GREEK 141 + 0x1D6B, // 0x1D6B..0x1D77; LATIN 142 + 0x1D78, // 0x1D78..0x1D78; CYRILLIC 143 + 0x1D79, // 0x1D79..0x1DBE; LATIN 144 + 0x1DBF, // 0x1DBF..0x1DBF; GREEK 145 + 0x1DC0, // 0x1DC0..0x1DFF; INHERITED 146 + 0x1E00, // 0x1E00..0x1EFF; LATIN 147 + 0x1F00, // 0x1F00..0x1FFE; GREEK 148 + 0x2000, // 0x2000..0x200B; COMMON 149 + 0x200C, // 0x200C..0x200D; INHERITED 150 + 0x200E, // 0x200E..0x2070; COMMON 151 + 0x2071, // 0x2071..0x2071; LATIN 152 + 0x2074, // 0x2074..0x207E; COMMON 153 + 0x207F, // 0x207F..0x207F; LATIN 154 + 0x2080, // 0x2080..0x208E; COMMON 155 + 0x2090, // 0x2090..0x209C; LATIN 156 + 0x20A0, // 0x20A0..0x20BF; COMMON 157 + 0x20D0, // 0x20D0..0x20F0; INHERITED 158 + 0x2100, // 0x2100..0x2125; COMMON 159 + 0x2126, // 0x2126..0x2126; GREEK 160 + 0x2127, // 0x2127..0x2129; COMMON 161 + 0x212A, // 0x212A..0x212B; LATIN 162 + 0x212C, // 0x212C..0x2131; COMMON 163 + 0x2132, // 0x2132..0x2132; LATIN 164 + 0x2133, // 0x2133..0x214D; COMMON 165 + 0x214E, // 0x214E..0x214E; LATIN 166 + 0x214F, // 0x214F..0x215F; COMMON 167 + 0x2160, // 0x2160..0x2188; LATIN 168 + 0x2189, // 0x2189..0x27FF; COMMON 169 + 0x2800, // 0x2800..0x28FF; BRAILLE 170 + 0x2900, // 0x2900..0x2BFF; COMMON 171 + 0x2C00, // 0x2C00..0x2C5E; GLAGOLITIC 172 + 0x2C60, // 0x2C60..0x2C7F; LATIN 173 + 0x2C80, // 0x2C80..0x2CFF; COPTIC 174 + 0x2D00, // 0x2D00..0x2D2D; GEORGIAN 175 + 0x2D30, // 0x2D30..0x2D7F; TIFINAGH 176 + 0x2D80, // 0x2D80..0x2DDE; ETHIOPIC 177 + 0x2DE0, // 0x2DE0..0x2DFF; CYRILLIC 178 + 0x2E00, // 0x2E00..0x2E52; COMMON 179 + 0x2E80, // 0x2E80..0x2FD5; HAN 180 + 0x2FF0, // 0x2FF0..0x3004; COMMON 181 + 0x3005, // 0x3005..0x3005; HAN 182 + 0x3006, // 0x3006..0x3006; COMMON 183 + 0x3007, // 0x3007..0x3007; HAN 184 + 0x3008, // 0x3008..0x3020; COMMON 185 + 0x3021, // 0x3021..0x3029; HAN 186 + 0x302A, // 0x302A..0x302D; INHERITED 187 + 0x302E, // 0x302E..0x302F; HANGUL 188 + 0x3030, // 0x3030..0x3037; COMMON 189 + 0x3038, // 0x3038..0x303B; HAN 190 + 0x303C, // 0x303C..0x303F; COMMON 191 + 0x3041, // 0x3041..0x3096; HIRAGANA 192 + 0x3099, // 0x3099..0x309A; INHERITED 193 + 0x309B, // 0x309B..0x309C; COMMON 194 + 0x309D, // 0x309D..0x309F; HIRAGANA 195 + 0x30A0, // 0x30A0..0x30A0; COMMON 196 + 0x30A1, // 0x30A1..0x30FA; KATAKANA 197 + 0x30FB, // 0x30FB..0x30FC; COMMON 198 + 0x30FD, // 0x30FD..0x30FF; KATAKANA 199 + 0x3105, // 0x3105..0x312F; BOPOMOFO 200 + 0x3131, // 0x3131..0x318E; HANGUL 201 + 0x3190, // 0x3190..0x319F; COMMON 202 + 0x31A0, // 0x31A0..0x31BF; BOPOMOFO 203 + 0x31C0, // 0x31C0..0x31E3; COMMON 204 + 0x31F0, // 0x31F0..0x31FF; KATAKANA 205 + 0x3200, // 0x3200..0x321E; HANGUL 206 + 0x3220, // 0x3220..0x325F; COMMON 207 + 0x3260, // 0x3260..0x327E; HANGUL 208 + 0x327F, // 0x327F..0x32CF; COMMON 209 + 0x32D0, // 0x32D0..0x32FE; KATAKANA 210 + 0x32FF, // 0x32FF..0x32FF; COMMON 211 + 0x3300, // 0x3300..0x3357; KATAKANA 212 + 0x3358, // 0x3358..0x33FF; COMMON 213 + 0x3400, // 0x3400..0x4DBF; HAN 214 + 0x4DC0, // 0x4DC0..0x4DFF; COMMON 215 + 0x4E00, // 0x4E00..0x9FFC; HAN 216 + 0xA000, // 0xA000..0xA4C6; YI 217 + 0xA4D0, // 0xA4D0..0xA4FF; LISU 218 + 0xA500, // 0xA500..0xA62B; VAI 219 + 0xA640, // 0xA640..0xA69F; CYRILLIC 220 + 0xA6A0, // 0xA6A0..0xA6F7; BAMUM 221 + 0xA700, // 0xA700..0xA721; COMMON 222 + 0xA722, // 0xA722..0xA787; LATIN 223 + 0xA788, // 0xA788..0xA78A; COMMON 224 + 0xA78B, // 0xA78B..0xA7FF; LATIN 225 + 0xA800, // 0xA800..0xA82C; SYLOTI_NAGRI 226 + 0xA830, // 0xA830..0xA839; COMMON 227 + 0xA840, // 0xA840..0xA877; PHAGS_PA 228 + 0xA880, // 0xA880..0xA8D9; SAURASHTRA 229 + 0xA8E0, // 0xA8E0..0xA8FF; DEVANAGARI 230 + 0xA900, // 0xA900..0xA92D; KAYAH_LI 231 + 0xA92E, // 0xA92E..0xA92E; COMMON 232 + 0xA92F, // 0xA92F..0xA92F; KAYAH_LI 233 + 0xA930, // 0xA930..0xA95F; REJANG 234 + 0xA960, // 0xA960..0xA97C; HANGUL 235 + 0xA980, // 0xA980..0xA9CD; JAVANESE 236 + 0xA9CF, // 0xA9CF..0xA9CF; COMMON 237 + 0xA9D0, // 0xA9D0..0xA9DF; JAVANESE 238 + 0xA9E0, // 0xA9E0..0xA9FE; MYANMAR 239 + 0xAA00, // 0xAA00..0xAA5F; CHAM 240 + 0xAA60, // 0xAA60..0xAA7F; MYANMAR 241 + 0xAA80, // 0xAA80..0xAADF; TAI_VIET 242 + 0xAAE0, // 0xAAE0..0xAAF6; MEETEI_MAYEK 243 + 0xAB01, // 0xAB01..0xAB2E; ETHIOPIC 244 + 0xAB30, // 0xAB30..0xAB5A; LATIN 245 + 0xAB5B, // 0xAB5B..0xAB5B; COMMON 246 + 0xAB5C, // 0xAB5C..0xAB64; LATIN 247 + 0xAB65, // 0xAB65..0xAB65; GREEK 248 + 0xAB66, // 0xAB66..0xAB69; LATIN 249 + 0xAB6A, // 0xAB6A..0xAB6B; COMMON 250 + 0xAB70, // 0xAB70..0xABBF; CHEROKEE 251 + 0xABC0, // 0xABC0..0xABF9; MEETEI_MAYEK 252 + 0xAC00, // 0xAC00..0xD7FB; HANGUL 253 + 0xF900, // 0xF900..0xFAD9; HAN 254 + 0xFB00, // 0xFB00..0xFB06; LATIN 255 + 0xFB13, // 0xFB13..0xFB17; ARMENIAN 256 + 0xFB1D, // 0xFB1D..0xFB4F; HEBREW 257 + 0xFB50, // 0xFB50..0xFD3D; ARABIC 258 + 0xFD3E, // 0xFD3E..0xFD3F; COMMON 259 + 0xFD50, // 0xFD50..0xFDFD; ARABIC 260 + 0xFE00, // 0xFE00..0xFE0F; INHERITED 261 + 0xFE10, // 0xFE10..0xFE19; COMMON 262 + 0xFE20, // 0xFE20..0xFE2D; INHERITED 263 + 0xFE2E, // 0xFE2E..0xFE2F; CYRILLIC 264 + 0xFE30, // 0xFE30..0xFE6B; COMMON 265 + 0xFE70, // 0xFE70..0xFEFC; ARABIC 266 + 0xFEFF, // 0xFEFF..0xFF20; COMMON 267 + 0xFF21, // 0xFF21..0xFF3A; LATIN 268 + 0xFF3B, // 0xFF3B..0xFF40; COMMON 269 + 0xFF41, // 0xFF41..0xFF5A; LATIN 270 + 0xFF5B, // 0xFF5B..0xFF65; COMMON 271 + 0xFF66, // 0xFF66..0xFF6F; KATAKANA 272 + 0xFF70, // 0xFF70..0xFF70; COMMON 273 + 0xFF71, // 0xFF71..0xFF9D; KATAKANA 274 + 0xFF9E, // 0xFF9E..0xFF9F; COMMON 275 + 0xFFA0, // 0xFFA0..0xFFDC; HANGUL 276 + 0xFFE0, // 0xFFE0..0xFFFD; COMMON 277 + 0x10000, // 0x10000..0x100FA; LINEAR_B 278 + 0x10100, // 0x10100..0x1013F; COMMON 279 + 0x10140, // 0x10140..0x1018E; GREEK 280 + 0x10190, // 0x10190..0x1019C; COMMON 281 + 0x101A0, // 0x101A0..0x101A0; GREEK 282 + 0x101D0, // 0x101D0..0x101FC; COMMON 283 + 0x101FD, // 0x101FD..0x101FD; INHERITED 284 + 0x10280, // 0x10280..0x1029C; LYCIAN 285 + 0x102A0, // 0x102A0..0x102D0; CARIAN 286 + 0x102E0, // 0x102E0..0x102E0; INHERITED 287 + 0x102E1, // 0x102E1..0x102FB; COMMON 288 + 0x10300, // 0x10300..0x1032F; OLD_ITALIC 289 + 0x10330, // 0x10330..0x1034A; GOTHIC 290 + 0x10380, // 0x10380..0x1039F; UGARITIC 291 + 0x103A0, // 0x103A0..0x103D5; OLD_PERSIAN 292 + 0x10400, // 0x10400..0x1044F; DESERET 293 + 0x10450, // 0x10450..0x1047F; SHAVIAN 294 + 0x10480, // 0x10480..0x104A9; OSMANYA 295 + 0x10800, // 0x10800..0x1083F; CYPRIOT 296 + 0x10840, // 0x10840..0x1085F; IMPERIAL_ARAMAIC 297 + 0x10900, // 0x10900..0x1091F; PHOENICIAN 298 + 0x10920, // 0x10920..0x1093F; LYDIAN 299 + 0x10980, // 0x10980..0x1099F; MEROITIC_HIEROGLYPHS 300 + 0x109A0, // 0x109A0..0x109FF; MEROITIC_CURSIVE 301 + 0x10A00, // 0x10A00..0x10A58; KHAROSHTHI 302 + 0x10A60, // 0x10A60..0x10A7F; OLD_SOUTH_ARABIAN 303 + 0x10B00, // 0x10B00..0x10B3F; AVESTAN 304 + 0x10B40, // 0x10B40..0x10B5F; INSCRIPTIONAL_PARTHIAN 305 + 0x10B60, // 0x10B60..0x10B7F; INSCRIPTIONAL_PAHLAVI 306 + 0x10C00, // 0x10C00..0x10C48; OLD_TURKIC 307 + 0x10E60, // 0x10E60..0x10E7E; ARABIC 308 + 0x11000, // 0x11000..0x1107F; BRAHMI 309 + 0x11080, // 0x11080..0x110CD; KAITHI 310 + 0x110D0, // 0x110D0..0x110F9; SORA_SOMPENG 311 + 0x11100, // 0x11100..0x11147; CHAKMA 312 + 0x11180, // 0x11180..0x111DF; SHARADA 313 + 0x111E1, // 0x111E1..0x111F4; SINHALA 314 + 0x1133B, // 0x1133B..0x1133B; INHERITED 315 + 0x11660, // 0x11660..0x1166C; MONGOLIAN 316 + 0x11680, // 0x11680..0x116C9; TAKRI 317 + 0x11FB0, // 0x11FB0..0x11FB0; LISU 318 + 0x11FC0, // 0x11FC0..0x11FFF; TAMIL 319 + 0x12000, // 0x12000..0x12543; CUNEIFORM 320 + 0x13000, // 0x13000..0x13438; EGYPTIAN_HIEROGLYPHS 321 + 0x16800, // 0x16800..0x16A38; BAMUM 322 + 0x16F00, // 0x16F00..0x16F9F; MIAO 323 + 0x16FE2, // 0x16FE2..0x16FE3; COMMON 324 + 0x16FF0, // 0x16FF0..0x16FF1; HAN 325 + 0x1B000, // 0x1B000..0x1B000; KATAKANA 326 + 0x1B001, // 0x1B001..0x1B152; HIRAGANA 327 + 0x1B164, // 0x1B164..0x1B167; KATAKANA 328 + 0x1BCA0, // 0x1BCA0..0x1D166; COMMON 329 + 0x1D167, // 0x1D167..0x1D169; INHERITED 330 + 0x1D16A, // 0x1D16A..0x1D17A; COMMON 331 + 0x1D17B, // 0x1D17B..0x1D182; INHERITED 332 + 0x1D183, // 0x1D183..0x1D184; COMMON 333 + 0x1D185, // 0x1D185..0x1D18B; INHERITED 334 + 0x1D18C, // 0x1D18C..0x1D1A9; COMMON 335 + 0x1D1AA, // 0x1D1AA..0x1D1AD; INHERITED 336 + 0x1D1AE, // 0x1D1AE..0x1D1E8; COMMON 337 + 0x1D200, // 0x1D200..0x1D245; GREEK 338 + 0x1D2E0, // 0x1D2E0..0x1D7FF; COMMON 339 + 0x1E000, // 0x1E000..0x1E02A; GLAGOLITIC 340 + 0x1EC71, // 0x1EC71..0x1ED3D; COMMON 341 + 0x1EE00, // 0x1EE00..0x1EEF1; ARABIC 342 + 0x1F000, // 0x1F000..0x1F1FF; COMMON 343 + 0x1F200, // 0x1F200..0x1F200; HIRAGANA 344 + 0x1F201, // 0x1F201..0x1FBF9; COMMON 345 + 0x20000, // 0x20000..0x3134A; HAN 346 + 0xE0001, // 0xE0001..0xE007F; COMMON 347 + 0xE0100, // 0xE0100..0xE01EF; INHERITED 348 + 0xE01F0, // 0xE01F0..0x10FFFF; UNKNOWN 349 + }; + +// /** +// * Array of the Unicode scripts for each item in the {@link #SCRIPT_STARTS} array. +// * Imitated from {@link Character.UnicodeScript}. +// */ +// private static final UnicodeScript[] SCRIPTS = { +// UnicodeScript.COMMON, // 0 +// UnicodeScript.LATIN, // 1 +// UnicodeScript.COMMON, // 2 +// UnicodeScript.LATIN, // 3 +// UnicodeScript.COMMON, // 4 +// UnicodeScript.LATIN, // 5 +// UnicodeScript.COMMON, // 6 +// UnicodeScript.LATIN, // 7 +// UnicodeScript.COMMON, // 8 +// UnicodeScript.LATIN, // 9 +// UnicodeScript.COMMON, // 10 +// UnicodeScript.LATIN, // 11 +// UnicodeScript.COMMON, // 12 +// UnicodeScript.LATIN, // 13 +// UnicodeScript.COMMON, // 14 +// UnicodeScript.LATIN, // 15 +// UnicodeScript.COMMON, // 16 +// UnicodeScript.BOPOMOFO, // 17 +// UnicodeScript.COMMON, // 18 +// UnicodeScript.INHERITED, // 19 +// UnicodeScript.GREEK, // 20 +// UnicodeScript.COMMON, // 21 +// UnicodeScript.GREEK, // 22 +// UnicodeScript.COMMON, // 23 +// UnicodeScript.GREEK, // 24 +// UnicodeScript.COMMON, // 25 +// UnicodeScript.GREEK, // 26 +// UnicodeScript.COMMON, // 27 +// UnicodeScript.GREEK, // 28 +// UnicodeScript.COPTIC, // 29 +// UnicodeScript.GREEK, // 30 +// UnicodeScript.CYRILLIC, // 31 +// UnicodeScript.INHERITED, // 32 +// UnicodeScript.CYRILLIC, // 33 +// UnicodeScript.ARMENIAN, // 34 +// UnicodeScript.HEBREW, // 35 +// UnicodeScript.ARABIC, // 36 +// UnicodeScript.COMMON, // 37 +// UnicodeScript.ARABIC, // 38 +// UnicodeScript.COMMON, // 39 +// UnicodeScript.ARABIC, // 40 +// UnicodeScript.COMMON, // 41 +// UnicodeScript.ARABIC, // 42 +// UnicodeScript.COMMON, // 43 +// UnicodeScript.ARABIC, // 44 +// UnicodeScript.COMMON, // 45 +// UnicodeScript.ARABIC, // 46 +// UnicodeScript.INHERITED, // 47 +// UnicodeScript.ARABIC, // 48 +// UnicodeScript.INHERITED, // 49 +// UnicodeScript.ARABIC, // 50 +// UnicodeScript.COMMON, // 51 +// UnicodeScript.ARABIC, // 52 +// UnicodeScript.SYRIAC, // 53 +// UnicodeScript.ARABIC, // 54 +// UnicodeScript.THAANA, // 55 +// UnicodeScript.NKO, // 56 +// UnicodeScript.SAMARITAN, // 57 +// UnicodeScript.MANDAIC, // 58 +// UnicodeScript.SYRIAC, // 59 +// UnicodeScript.ARABIC, // 60 +// UnicodeScript.COMMON, // 61 +// UnicodeScript.ARABIC, // 62 +// UnicodeScript.DEVANAGARI, // 63 +// UnicodeScript.INHERITED, // 64 +// UnicodeScript.DEVANAGARI, // 65 +// UnicodeScript.COMMON, // 66 +// UnicodeScript.DEVANAGARI, // 67 +// UnicodeScript.BENGALI, // 68 +// UnicodeScript.GURMUKHI, // 69 +// UnicodeScript.GUJARATI, // 70 +// UnicodeScript.ORIYA, // 71 +// UnicodeScript.TAMIL, // 72 +// UnicodeScript.TELUGU, // 73 +// UnicodeScript.KANNADA, // 74 +// UnicodeScript.MALAYALAM, // 75 +// UnicodeScript.SINHALA, // 76 +// UnicodeScript.THAI, // 77 +// UnicodeScript.COMMON, // 78 +// UnicodeScript.THAI, // 79 +// UnicodeScript.LAO, // 80 +// UnicodeScript.TIBETAN, // 81 +// UnicodeScript.COMMON, // 82 +// UnicodeScript.TIBETAN, // 83 +// UnicodeScript.MYANMAR, // 84 +// UnicodeScript.GEORGIAN, // 85 +// UnicodeScript.COMMON, // 86 +// UnicodeScript.GEORGIAN, // 87 +// UnicodeScript.HANGUL, // 88 +// UnicodeScript.ETHIOPIC, // 89 +// UnicodeScript.CHEROKEE, // 90 +// UnicodeScript.CANADIAN_ABORIGINAL, // 91 +// UnicodeScript.OGHAM, // 92 +// UnicodeScript.RUNIC, // 93 +// UnicodeScript.COMMON, // 94 +// UnicodeScript.RUNIC, // 95 +// UnicodeScript.TAGALOG, // 96 +// UnicodeScript.HANUNOO, // 97 +// UnicodeScript.COMMON, // 98 +// UnicodeScript.BUHID, // 99 +// UnicodeScript.TAGBANWA, // 100 +// UnicodeScript.KHMER, // 101 +// UnicodeScript.MONGOLIAN, // 102 +// UnicodeScript.COMMON, // 103 +// UnicodeScript.MONGOLIAN, // 104 +// UnicodeScript.COMMON, // 105 +// UnicodeScript.MONGOLIAN, // 106 +// UnicodeScript.CANADIAN_ABORIGINAL, // 107 +// UnicodeScript.LIMBU, // 108 +// UnicodeScript.TAI_LE, // 109 +// UnicodeScript.NEW_TAI_LUE, // 110 +// UnicodeScript.KHMER, // 111 +// UnicodeScript.BUGINESE, // 112 +// UnicodeScript.TAI_THAM, // 113 +// UnicodeScript.INHERITED, // 114 +// UnicodeScript.BALINESE, // 115 +// UnicodeScript.SUNDANESE, // 116 +// UnicodeScript.BATAK, // 117 +// UnicodeScript.LEPCHA, // 118 +// UnicodeScript.OL_CHIKI, // 119 +// UnicodeScript.CYRILLIC, // 120 +// UnicodeScript.GEORGIAN, // 121 +// UnicodeScript.SUNDANESE, // 122 +// UnicodeScript.INHERITED, // 123 +// UnicodeScript.COMMON, // 124 +// UnicodeScript.INHERITED, // 125 +// UnicodeScript.COMMON, // 126 +// UnicodeScript.INHERITED, // 127 +// UnicodeScript.COMMON, // 128 +// UnicodeScript.INHERITED, // 129 +// UnicodeScript.COMMON, // 130 +// UnicodeScript.INHERITED, // 131 +// UnicodeScript.COMMON, // 132 +// UnicodeScript.INHERITED, // 133 +// UnicodeScript.COMMON, // 134 +// UnicodeScript.LATIN, // 135 +// UnicodeScript.GREEK, // 136 +// UnicodeScript.CYRILLIC, // 137 +// UnicodeScript.LATIN, // 138 +// UnicodeScript.GREEK, // 139 +// UnicodeScript.LATIN, // 140 +// UnicodeScript.GREEK, // 141 +// UnicodeScript.LATIN, // 142 +// UnicodeScript.CYRILLIC, // 143 +// UnicodeScript.LATIN, // 144 +// UnicodeScript.GREEK, // 145 +// UnicodeScript.INHERITED, // 146 +// UnicodeScript.LATIN, // 147 +// UnicodeScript.GREEK, // 148 +// UnicodeScript.COMMON, // 149 +// UnicodeScript.INHERITED, // 150 +// UnicodeScript.COMMON, // 151 +// UnicodeScript.LATIN, // 152 +// UnicodeScript.COMMON, // 153 +// UnicodeScript.LATIN, // 154 +// UnicodeScript.COMMON, // 155 +// UnicodeScript.LATIN, // 156 +// UnicodeScript.COMMON, // 157 +// UnicodeScript.INHERITED, // 158 +// UnicodeScript.COMMON, // 159 +// UnicodeScript.GREEK, // 160 +// UnicodeScript.COMMON, // 161 +// UnicodeScript.LATIN, // 162 +// UnicodeScript.COMMON, // 163 +// UnicodeScript.LATIN, // 164 +// UnicodeScript.COMMON, // 165 +// UnicodeScript.LATIN, // 166 +// UnicodeScript.COMMON, // 167 +// UnicodeScript.LATIN, // 168 +// UnicodeScript.COMMON, // 169 +// UnicodeScript.BRAILLE, // 170 +// UnicodeScript.COMMON, // 171 +// UnicodeScript.GLAGOLITIC, // 172 +// UnicodeScript.LATIN, // 173 +// UnicodeScript.COPTIC, // 174 +// UnicodeScript.GEORGIAN, // 175 +// UnicodeScript.TIFINAGH, // 176 +// UnicodeScript.ETHIOPIC, // 177 +// UnicodeScript.CYRILLIC, // 178 +// UnicodeScript.COMMON, // 179 +// UnicodeScript.HAN, // 180 +// UnicodeScript.COMMON, // 181 +// UnicodeScript.HAN, // 182 +// UnicodeScript.COMMON, // 183 +// UnicodeScript.HAN, // 184 +// UnicodeScript.COMMON, // 185 +// UnicodeScript.HAN, // 186 +// UnicodeScript.INHERITED, // 187 +// UnicodeScript.HANGUL, // 188 +// UnicodeScript.COMMON, // 189 +// UnicodeScript.HAN, // 190 +// UnicodeScript.COMMON, // 191 +// UnicodeScript.HIRAGANA, // 192 +// UnicodeScript.INHERITED, // 193 +// UnicodeScript.COMMON, // 194 +// UnicodeScript.HIRAGANA, // 195 +// UnicodeScript.COMMON, // 196 +// UnicodeScript.KATAKANA, // 197 +// UnicodeScript.COMMON, // 198 +// UnicodeScript.KATAKANA, // 199 +// UnicodeScript.BOPOMOFO, // 200 +// UnicodeScript.HANGUL, // 201 +// UnicodeScript.COMMON, // 202 +// UnicodeScript.BOPOMOFO, // 203 +// UnicodeScript.COMMON, // 204 +// UnicodeScript.KATAKANA, // 205 +// UnicodeScript.HANGUL, // 206 +// UnicodeScript.COMMON, // 207 +// UnicodeScript.HANGUL, // 208 +// UnicodeScript.COMMON, // 209 +// UnicodeScript.KATAKANA, // 210 +// UnicodeScript.COMMON, // 211 +// UnicodeScript.KATAKANA, // 212 +// UnicodeScript.COMMON, // 213 +// UnicodeScript.HAN, // 214 +// UnicodeScript.COMMON, // 215 +// UnicodeScript.HAN, // 216 +// UnicodeScript.YI, // 217 +// UnicodeScript.LISU, // 218 +// UnicodeScript.VAI, // 219 +// UnicodeScript.CYRILLIC, // 220 +// UnicodeScript.BAMUM, // 221 +// UnicodeScript.COMMON, // 222 +// UnicodeScript.LATIN, // 223 +// UnicodeScript.COMMON, // 224 +// UnicodeScript.LATIN, // 225 +// UnicodeScript.SYLOTI_NAGRI, // 226 +// UnicodeScript.COMMON, // 227 +// UnicodeScript.PHAGS_PA, // 228 +// UnicodeScript.SAURASHTRA, // 229 +// UnicodeScript.DEVANAGARI, // 230 +// UnicodeScript.KAYAH_LI, // 231 +// UnicodeScript.COMMON, // 232 +// UnicodeScript.KAYAH_LI, // 233 +// UnicodeScript.REJANG, // 234 +// UnicodeScript.HANGUL, // 235 +// UnicodeScript.JAVANESE, // 236 +// UnicodeScript.COMMON, // 237 +// UnicodeScript.JAVANESE, // 238 +// UnicodeScript.MYANMAR, // 239 +// UnicodeScript.CHAM, // 240 +// UnicodeScript.MYANMAR, // 241 +// UnicodeScript.TAI_VIET, // 242 +// UnicodeScript.MEETEI_MAYEK, // 243 +// UnicodeScript.ETHIOPIC, // 244 +// UnicodeScript.LATIN, // 245 +// UnicodeScript.COMMON, // 246 +// UnicodeScript.LATIN, // 247 +// UnicodeScript.GREEK, // 248 +// UnicodeScript.LATIN, // 249 +// UnicodeScript.COMMON, // 250 +// UnicodeScript.CHEROKEE, // 251 +// UnicodeScript.MEETEI_MAYEK, // 252 +// UnicodeScript.HANGUL, // 253 +// UnicodeScript.HAN, // 254 +// UnicodeScript.LATIN, // 255 +// UnicodeScript.ARMENIAN, // 256 +// UnicodeScript.HEBREW, // 257 +// UnicodeScript.ARABIC, // 258 +// UnicodeScript.COMMON, // 259 +// UnicodeScript.ARABIC, // 260 +// UnicodeScript.INHERITED, // 261 +// UnicodeScript.COMMON, // 262 +// UnicodeScript.INHERITED, // 263 +// UnicodeScript.CYRILLIC, // 264 +// UnicodeScript.COMMON, // 265 +// UnicodeScript.ARABIC, // 266 +// UnicodeScript.COMMON, // 267 +// UnicodeScript.LATIN, // 268 +// UnicodeScript.COMMON, // 269 +// UnicodeScript.LATIN, // 270 +// UnicodeScript.COMMON, // 271 +// UnicodeScript.KATAKANA, // 272 +// UnicodeScript.COMMON, // 273 +// UnicodeScript.KATAKANA, // 274 +// UnicodeScript.COMMON, // 275 +// UnicodeScript.HANGUL, // 276 +// UnicodeScript.COMMON, // 277 +// UnicodeScript.LINEAR_B, // 278 +// UnicodeScript.COMMON, // 279 +// UnicodeScript.GREEK, // 280 +// UnicodeScript.COMMON, // 281 +// UnicodeScript.GREEK, // 282 +// UnicodeScript.COMMON, // 283 +// UnicodeScript.INHERITED, // 284 +// UnicodeScript.LYCIAN, // 285 +// UnicodeScript.CARIAN, // 286 +// UnicodeScript.INHERITED, // 287 +// UnicodeScript.COMMON, // 288 +// UnicodeScript.OLD_ITALIC, // 289 +// UnicodeScript.GOTHIC, // 290 +// UnicodeScript.UGARITIC, // 291 +// UnicodeScript.OLD_PERSIAN, // 292 +// UnicodeScript.DESERET, // 293 +// UnicodeScript.SHAVIAN, // 294 +// UnicodeScript.OSMANYA, // 295 +// UnicodeScript.CYPRIOT, // 296 +// UnicodeScript.IMPERIAL_ARAMAIC, // 297 +// UnicodeScript.PHOENICIAN, // 298 +// UnicodeScript.LYDIAN, // 299 +// UnicodeScript.MEROITIC_HIEROGLYPHS, // 300 +// UnicodeScript.MEROITIC_CURSIVE, // 301 +// UnicodeScript.KHAROSHTHI, // 302 +// UnicodeScript.OLD_SOUTH_ARABIAN, // 303 +// UnicodeScript.AVESTAN, // 304 +// UnicodeScript.INSCRIPTIONAL_PARTHIAN, // 305 +// UnicodeScript.INSCRIPTIONAL_PAHLAVI, // 306 +// UnicodeScript.OLD_TURKIC, // 307 +// UnicodeScript.ARABIC, // 308 +// UnicodeScript.BRAHMI, // 309 +// UnicodeScript.KAITHI, // 310 +// UnicodeScript.SORA_SOMPENG, // 311 +// UnicodeScript.CHAKMA, // 312 +// UnicodeScript.SHARADA, // 313 +// UnicodeScript.SINHALA, // 314 +// UnicodeScript.INHERITED, // 315 +// UnicodeScript.MONGOLIAN, // 316 +// UnicodeScript.TAKRI, // 317 +// UnicodeScript.LISU, // 318 +// UnicodeScript.TAMIL, // 319 +// UnicodeScript.CUNEIFORM, // 320 +// UnicodeScript.EGYPTIAN_HIEROGLYPHS, // 321 +// UnicodeScript.BAMUM, // 322 +// UnicodeScript.MIAO, // 323 +// UnicodeScript.COMMON, // 324 +// UnicodeScript.HAN, // 325 +// UnicodeScript.KATAKANA, // 326 +// UnicodeScript.HIRAGANA, // 327 +// UnicodeScript.KATAKANA, // 328 +// UnicodeScript.COMMON, // 329 +// UnicodeScript.INHERITED, // 330 +// UnicodeScript.COMMON, // 331 +// UnicodeScript.INHERITED, // 332 +// UnicodeScript.COMMON, // 333 +// UnicodeScript.INHERITED, // 334 +// UnicodeScript.COMMON, // 335 +// UnicodeScript.INHERITED, // 336 +// UnicodeScript.COMMON, // 337 +// UnicodeScript.GREEK, // 338 +// UnicodeScript.COMMON, // 339 +// UnicodeScript.GLAGOLITIC, // 340 +// UnicodeScript.COMMON, // 341 +// UnicodeScript.ARABIC, // 342 +// UnicodeScript.COMMON, // 343 +// UnicodeScript.HIRAGANA, // 344 +// UnicodeScript.COMMON, // 345 +// UnicodeScript.HAN, // 346 +// UnicodeScript.COMMON, // 347 +// UnicodeScript.INHERITED, // 348 +// UnicodeScript.UNKNOWN, // 349 +// }; + + /** + * Map whose key is a {@link UnicodeScript} and whose value is an array of indexes into the {@link #SCRIPT_INDEXES} + * array that describe ranges for that script. + */ + private static final Map<UnicodeScript, int[]> SCRIPT_INDEXES = + new HashMap<UnicodeScript, int[]>(UnicodeScript.values().length); + /* Checkstyle: Allow Magic Numbers that are hard-coded data. */ + static { + SCRIPT_INDEXES.put(UnicodeScript.COMMON, new int[] {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 21, 23, 25, 27, 37, 39, + 41, 43, 45, 51, 61, 66, 78, 82, 86, 94, 98, 103, 105, 124, 126, 128, 130, 132, 134, 149, 151, 153, 155, + 157, 159, 161, 163, 165, 167, 169, 171, 179, 181, 183, 185, 189, 191, 194, 196, 198, 202, 204, 207, 209, + 211, 213, 215, 222, 224, 227, 232, 237, 246, 250, 259, 262, 265, 267, 269, 271, 273, 275, 277, 279, 281, + 283, 288, 324, 329, 331, 333, 335, 337, 339, 341, 343, 345, 347}); + SCRIPT_INDEXES.put(UnicodeScript.LATIN, new int[] {1, 3, 5, 7, 9, 11, 13, 15, 135, 138, 140, 142, 144, 147, 152, + 154, 156, 162, 164, 166, 168, 173, 223, 225, 245, 247, 249, 255, 268, 270}); + SCRIPT_INDEXES.put(UnicodeScript.GREEK, new int[] {20, 22, 24, 26, 28, 30, 136, 139, 141, 145, 148, 160, 248, + 280, 282, 338}); + SCRIPT_INDEXES.put(UnicodeScript.CYRILLIC, new int[] {31, 33, 120, 137, 143, 178, 220, 264}); + SCRIPT_INDEXES.put(UnicodeScript.ARMENIAN, new int[] {34, 256}); + SCRIPT_INDEXES.put(UnicodeScript.HEBREW, new int[] {35, 257}); + SCRIPT_INDEXES.put(UnicodeScript.ARABIC, new int[] {36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 60, 62, 258, 260, + 266, 308, 342}); + SCRIPT_INDEXES.put(UnicodeScript.SYRIAC, new int[] {53, 59}); + SCRIPT_INDEXES.put(UnicodeScript.THAANA, new int[] {55}); + SCRIPT_INDEXES.put(UnicodeScript.DEVANAGARI, new int[] {63, 65, 67, 230}); + SCRIPT_INDEXES.put(UnicodeScript.BENGALI, new int[] {68}); + SCRIPT_INDEXES.put(UnicodeScript.GURMUKHI, new int[] {69}); + SCRIPT_INDEXES.put(UnicodeScript.GUJARATI, new int[] {70}); + SCRIPT_INDEXES.put(UnicodeScript.ORIYA, new int[] {71}); + SCRIPT_INDEXES.put(UnicodeScript.TAMIL, new int[] {72, 319}); + SCRIPT_INDEXES.put(UnicodeScript.TELUGU, new int[] {73}); + SCRIPT_INDEXES.put(UnicodeScript.KANNADA, new int[] {74}); + SCRIPT_INDEXES.put(UnicodeScript.MALAYALAM, new int[] {75}); + SCRIPT_INDEXES.put(UnicodeScript.SINHALA, new int[] {76, 314}); + SCRIPT_INDEXES.put(UnicodeScript.THAI, new int[] {77, 79}); + SCRIPT_INDEXES.put(UnicodeScript.LAO, new int[] {80}); + SCRIPT_INDEXES.put(UnicodeScript.TIBETAN, new int[] {81, 83}); + SCRIPT_INDEXES.put(UnicodeScript.MYANMAR, new int[] {84, 239, 241}); + SCRIPT_INDEXES.put(UnicodeScript.GEORGIAN, new int[] {85, 87, 121, 175}); + SCRIPT_INDEXES.put(UnicodeScript.HANGUL, new int[] {88, 188, 201, 206, 208, 235, 253, 276}); + SCRIPT_INDEXES.put(UnicodeScript.ETHIOPIC, new int[] {89, 177, 244}); + SCRIPT_INDEXES.put(UnicodeScript.CHEROKEE, new int[] {90, 251}); + SCRIPT_INDEXES.put(UnicodeScript.CANADIAN_ABORIGINAL, new int[] {91, 107}); + SCRIPT_INDEXES.put(UnicodeScript.OGHAM, new int[] {92}); + SCRIPT_INDEXES.put(UnicodeScript.RUNIC, new int[] {93, 95}); + SCRIPT_INDEXES.put(UnicodeScript.KHMER, new int[] {101, 111}); + SCRIPT_INDEXES.put(UnicodeScript.MONGOLIAN, new int[] {102, 104, 106, 316}); + SCRIPT_INDEXES.put(UnicodeScript.HIRAGANA, new int[] {192, 195, 327, 344}); + SCRIPT_INDEXES.put(UnicodeScript.KATAKANA, new int[] {197, 199, 205, 210, 212, 272, 274, 326, 328}); + SCRIPT_INDEXES.put(UnicodeScript.BOPOMOFO, new int[] {17, 200, 203}); + SCRIPT_INDEXES.put(UnicodeScript.HAN, new int[] {180, 182, 184, 186, 190, 214, 216, 254, 325, 346}); + SCRIPT_INDEXES.put(UnicodeScript.YI, new int[] {217}); + SCRIPT_INDEXES.put(UnicodeScript.OLD_ITALIC, new int[] {289}); + SCRIPT_INDEXES.put(UnicodeScript.GOTHIC, new int[] {290}); + SCRIPT_INDEXES.put(UnicodeScript.DESERET, new int[] {293}); + SCRIPT_INDEXES.put(UnicodeScript.INHERITED, new int[] {19, 32, 47, 49, 64, 114, 123, 125, 127, 129, 131, 133, + 146, 150, 158, 187, 193, 261, 263, 284, 287, 315, 330, 332, 334, 336, 348}); + SCRIPT_INDEXES.put(UnicodeScript.TAGALOG, new int[] {96}); + SCRIPT_INDEXES.put(UnicodeScript.HANUNOO, new int[] {97}); + SCRIPT_INDEXES.put(UnicodeScript.BUHID, new int[] {99}); + SCRIPT_INDEXES.put(UnicodeScript.TAGBANWA, new int[] {100}); + SCRIPT_INDEXES.put(UnicodeScript.LIMBU, new int[] {108}); + SCRIPT_INDEXES.put(UnicodeScript.TAI_LE, new int[] {109}); + SCRIPT_INDEXES.put(UnicodeScript.LINEAR_B, new int[] {278}); + SCRIPT_INDEXES.put(UnicodeScript.UGARITIC, new int[] {291}); + SCRIPT_INDEXES.put(UnicodeScript.SHAVIAN, new int[] {294}); + SCRIPT_INDEXES.put(UnicodeScript.OSMANYA, new int[] {295}); + SCRIPT_INDEXES.put(UnicodeScript.CYPRIOT, new int[] {296}); + SCRIPT_INDEXES.put(UnicodeScript.BRAILLE, new int[] {170}); + SCRIPT_INDEXES.put(UnicodeScript.BUGINESE, new int[] {112}); + SCRIPT_INDEXES.put(UnicodeScript.COPTIC, new int[] {29, 174}); + SCRIPT_INDEXES.put(UnicodeScript.NEW_TAI_LUE, new int[] {110}); + SCRIPT_INDEXES.put(UnicodeScript.GLAGOLITIC, new int[] {172, 340}); + SCRIPT_INDEXES.put(UnicodeScript.TIFINAGH, new int[] {176}); + SCRIPT_INDEXES.put(UnicodeScript.SYLOTI_NAGRI, new int[] {226}); + SCRIPT_INDEXES.put(UnicodeScript.OLD_PERSIAN, new int[] {292}); + SCRIPT_INDEXES.put(UnicodeScript.KHAROSHTHI, new int[] {302}); + SCRIPT_INDEXES.put(UnicodeScript.BALINESE, new int[] {115}); + SCRIPT_INDEXES.put(UnicodeScript.CUNEIFORM, new int[] {320}); + SCRIPT_INDEXES.put(UnicodeScript.PHOENICIAN, new int[] {298}); + SCRIPT_INDEXES.put(UnicodeScript.PHAGS_PA, new int[] {228}); + SCRIPT_INDEXES.put(UnicodeScript.NKO, new int[] {56}); + SCRIPT_INDEXES.put(UnicodeScript.SUNDANESE, new int[] {116, 122}); + SCRIPT_INDEXES.put(UnicodeScript.BATAK, new int[] {117}); + SCRIPT_INDEXES.put(UnicodeScript.LEPCHA, new int[] {118}); + SCRIPT_INDEXES.put(UnicodeScript.OL_CHIKI, new int[] {119}); + SCRIPT_INDEXES.put(UnicodeScript.VAI, new int[] {219}); + SCRIPT_INDEXES.put(UnicodeScript.SAURASHTRA, new int[] {229}); + SCRIPT_INDEXES.put(UnicodeScript.KAYAH_LI, new int[] {231, 233}); + SCRIPT_INDEXES.put(UnicodeScript.REJANG, new int[] {234}); + SCRIPT_INDEXES.put(UnicodeScript.LYCIAN, new int[] {285}); + SCRIPT_INDEXES.put(UnicodeScript.CARIAN, new int[] {286}); + SCRIPT_INDEXES.put(UnicodeScript.LYDIAN, new int[] {299}); + SCRIPT_INDEXES.put(UnicodeScript.CHAM, new int[] {240}); + SCRIPT_INDEXES.put(UnicodeScript.TAI_THAM, new int[] {113}); + SCRIPT_INDEXES.put(UnicodeScript.TAI_VIET, new int[] {242}); + SCRIPT_INDEXES.put(UnicodeScript.AVESTAN, new int[] {304}); + SCRIPT_INDEXES.put(UnicodeScript.EGYPTIAN_HIEROGLYPHS, new int[] {321}); + SCRIPT_INDEXES.put(UnicodeScript.SAMARITAN, new int[] {57}); + SCRIPT_INDEXES.put(UnicodeScript.MANDAIC, new int[] {58}); + SCRIPT_INDEXES.put(UnicodeScript.LISU, new int[] {218, 318}); + SCRIPT_INDEXES.put(UnicodeScript.BAMUM, new int[] {221, 322}); + SCRIPT_INDEXES.put(UnicodeScript.JAVANESE, new int[] {236, 238}); + SCRIPT_INDEXES.put(UnicodeScript.MEETEI_MAYEK, new int[] {243, 252}); + SCRIPT_INDEXES.put(UnicodeScript.IMPERIAL_ARAMAIC, new int[] {297}); + SCRIPT_INDEXES.put(UnicodeScript.OLD_SOUTH_ARABIAN, new int[] {303}); + SCRIPT_INDEXES.put(UnicodeScript.INSCRIPTIONAL_PARTHIAN, new int[] {305}); + SCRIPT_INDEXES.put(UnicodeScript.INSCRIPTIONAL_PAHLAVI, new int[] {306}); + SCRIPT_INDEXES.put(UnicodeScript.OLD_TURKIC, new int[] {307}); + SCRIPT_INDEXES.put(UnicodeScript.BRAHMI, new int[] {309}); + SCRIPT_INDEXES.put(UnicodeScript.KAITHI, new int[] {310}); + SCRIPT_INDEXES.put(UnicodeScript.MEROITIC_HIEROGLYPHS, new int[] {300}); + SCRIPT_INDEXES.put(UnicodeScript.MEROITIC_CURSIVE, new int[] {301}); + SCRIPT_INDEXES.put(UnicodeScript.SORA_SOMPENG, new int[] {311}); + SCRIPT_INDEXES.put(UnicodeScript.CHAKMA, new int[] {312}); + SCRIPT_INDEXES.put(UnicodeScript.SHARADA, new int[] {313}); + SCRIPT_INDEXES.put(UnicodeScript.TAKRI, new int[] {317}); + SCRIPT_INDEXES.put(UnicodeScript.MIAO, new int[] {323}); + SCRIPT_INDEXES.put(UnicodeScript.UNKNOWN, new int[] {349}); + } + /* Checkstyle: Restart Magic Number checking. */ + + /** + ... [truncated message content] |
From: <vic...@us...> - 2025-05-13 13:21:40
|
Revision: 2813 http://sourceforge.net/p/axsl/code/2813 Author: victormote Date: 2025-05-13 13:21:38 +0000 (Tue, 13 May 2025) Log Message: ----------- Add hex radix constant. Modified Paths: -------------- trunk/axsl/axsl-constants/src/main/java/org/axsl/constants/PrimitiveConstants.java Modified: trunk/axsl/axsl-constants/src/main/java/org/axsl/constants/PrimitiveConstants.java =================================================================== --- trunk/axsl/axsl-constants/src/main/java/org/axsl/constants/PrimitiveConstants.java 2025-05-12 13:35:52 UTC (rev 2812) +++ trunk/axsl/axsl-constants/src/main/java/org/axsl/constants/PrimitiveConstants.java 2025-05-13 13:21:38 UTC (rev 2813) @@ -82,6 +82,9 @@ /** The number of bits to shift for a four-byte shift. */ public static final byte SHIFT_4_BYTES = PrimitiveConstants.BITS_PER_BYTE * 4; + /** The radix for hexadecimal notations. */ + public static final byte HEXADECIMAL_RADIX = 16; + /** * Private constructor. This is a utility class and should never be instantiated. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-12 13:35:54
|
Revision: 2812 http://sourceforge.net/p/axsl/code/2812 Author: victormote Date: 2025-05-12 13:35:52 +0000 (Mon, 12 May 2025) Log Message: ----------- Tie Font.Baseline and BaselineIdentifier to BaselineType. Modified Paths: -------------- trunk/axsl/axsl-font/src/main/java/org/axsl/font/Font.java trunk/axsl/axsl-value/src/main/java/org/axsl/value/BaselineIdentifier.java Modified: trunk/axsl/axsl-font/src/main/java/org/axsl/font/Font.java =================================================================== --- trunk/axsl/axsl-font/src/main/java/org/axsl/font/Font.java 2025-05-12 12:28:50 UTC (rev 2811) +++ trunk/axsl/axsl-font/src/main/java/org/axsl/font/Font.java 2025-05-12 13:35:52 UTC (rev 2812) @@ -25,6 +25,7 @@ import org.axsl.constants.TypographicConstants; import org.axsl.context.FontData; +import org.axsl.i18n.BaselineType; import org.axsl.orthography.Orthography; import org.axsl.ps.BoundingBox; import org.axsl.ps.Encoding; @@ -101,39 +102,44 @@ enum Baseline { /** The baseline used by alphabetic scripts such as Latin, Cyrillic, and Greek. */ - ALPHABETIC("romn"), + ALPHABETIC("romn", BaselineType.ALPHABETIC), /** The baseline about which mathematical characters are centered. */ - MATH("math"), + MATH("math", BaselineType.IDEOGRAPHIC), /** The hanging baseline used in scripts like Tibetan. */ - HANGING("hang"), + HANGING("hang", BaselineType.HANGING), /** The ideographic em-box bottom edge baseline when writing horizontally, and the left edge baseline when * writing vertically. */ - IDEO_BOTTOM_LEFT("ideo"), + IDEO_BOTTOM_LEFT("ideo", BaselineType.IDEOGRAPHIC), /** The ideographic em-box top edge baseline when writing horizontally, and the right edge baseline when writing * vertically. */ - IDEO_TOP_RIGHT("idtp"), + IDEO_TOP_RIGHT("idtp", BaselineType.IDEOGRAPHIC), /** The ideographic character face (ICF) bottom edge baseline when writing horizontally, and the left edge * baseline when writing vertically. */ - ICF_BOTTOM_LEFT("icfb"), + ICF_BOTTOM_LEFT("icfb", BaselineType.IDEOGRAPHIC), /** The ideographic character face (ICF) top edge baseline when writing horizontally, and the right edge * baseline when writing vertically. */ - ICF_TOP_RIGHT("icft"); + ICF_TOP_RIGHT("icft", BaselineType.IDEOGRAPHIC); /** The OpenType Baseline Tag used to describe this Baseline. */ private String openTypeTag; + /** The general type of this baseline. */ + private BaselineType type; + /** * Constructor. * @param openTypeTag The OpenType Baseline Tag used to describe this Baseline. + * @param type The general type of this baseline. */ - Baseline(final String openTypeTag) { + Baseline(final String openTypeTag, final BaselineType type) { this.openTypeTag = openTypeTag; + this.type = type; } /** @@ -144,6 +150,13 @@ return this.openTypeTag; } + /** + * Returns the general type of this baseline. + * @return The general type of this baseline. + */ + BaselineType getType() { + return this.type; + } } Modified: trunk/axsl/axsl-value/src/main/java/org/axsl/value/BaselineIdentifier.java =================================================================== --- trunk/axsl/axsl-value/src/main/java/org/axsl/value/BaselineIdentifier.java 2025-05-12 12:28:50 UTC (rev 2811) +++ trunk/axsl/axsl-value/src/main/java/org/axsl/value/BaselineIdentifier.java 2025-05-12 13:35:52 UTC (rev 2812) @@ -23,6 +23,8 @@ package org.axsl.value; +import org.axsl.i18n.BaselineType; + /** * <p>An enumeration of the possible baseline identifier values.</p> * @@ -33,33 +35,57 @@ public enum BaselineIdentifier { /** The alphabetic baseline. */ - ALPHABETIC, + ALPHABETIC(BaselineType.ALPHABETIC), /** The ideographic baseline. */ - IDEOGRAPHIC, + IDEOGRAPHIC(BaselineType.IDEOGRAPHIC), /** The hanging baseline. */ - HANGING, + HANGING(BaselineType.HANGING), /** The mathematical baseline. */ - MATHEMATICAL, + MATHEMATICAL(BaselineType.IDEOGRAPHIC), /** The central baseline. */ - CENTRAL, + CENTRAL(BaselineType.IDEOGRAPHIC), /** The middle baseline. */ - MIDDLE, + MIDDLE(BaselineType.IDEOGRAPHIC), + + /* TODO: The BaselineType values for the enumerated items below are based on incomplete understanding of how these + * baseline identifiers are used in practice, and may need to be revised. */ + + /** The text-before-edge baseline. */ - TEXT_BEFORE_EDGE, + TEXT_BEFORE_EDGE(BaselineType.HANGING), /** The text-after-edge baseline. */ - TEXT_AFTER_EDGE, + TEXT_AFTER_EDGE(BaselineType.ALPHABETIC), /** The before-edge baseline. */ - BEFORE_EDGE, + BEFORE_EDGE(BaselineType.HANGING), /** The after-edge baseline. */ - AFTER_EDGE; + AFTER_EDGE(BaselineType.ALPHABETIC); + /** The general type of this baseline. */ + private BaselineType type; + + /** + * Constructor. + * @param type The general type of this baseline. + */ + BaselineIdentifier(final BaselineType type) { + this.type = type; + } + + /** + * Returns the general type of this baseline. + * @return The general type of this baseline. + */ + public BaselineType getType() { + return this.type; + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-12 12:28:53
|
Revision: 2811 http://sourceforge.net/p/axsl/code/2811 Author: victormote Date: 2025-05-12 12:28:50 +0000 (Mon, 12 May 2025) Log Message: ----------- Move NaturalBaseline to first-class enum BaselineType. Modified Paths: -------------- trunk/axsl/axsl-i18n/src/main/java/org/axsl/i18n/Script.java Added Paths: ----------- trunk/axsl/axsl-i18n/src/main/java/org/axsl/i18n/BaselineType.java Added: trunk/axsl/axsl-i18n/src/main/java/org/axsl/i18n/BaselineType.java =================================================================== --- trunk/axsl/axsl-i18n/src/main/java/org/axsl/i18n/BaselineType.java (rev 0) +++ trunk/axsl/axsl-i18n/src/main/java/org/axsl/i18n/BaselineType.java 2025-05-12 12:28:50 UTC (rev 2811) @@ -0,0 +1,59 @@ +/* + * Copyright 2025 The aXSL Project. + * http://www.axsl.org + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * $LastChangedRevision$ + * $LastChangedDate$ + * $LastChangedBy$ + */ + +package org.axsl.i18n; + +/** + * Enumeration of the <em>general</em> types of baselines used in writing systems, used to help categorize more specific + * baseline descriptors found in fonts and area constraints. + * @see "XSL-FO Recommendation 1.1, Section 7.9.1." + * @see "XSL-FO Recommendation 1.1, Section 7.14." + */ +public enum BaselineType { + + /** + * <p>The baseline is at or near the bottom of the capital letters, usually used for Western glyphs. + * In horizontal text, glyphs "push down" on the alphabetic baseline.</p> + */ + ALPHABETIC, + + /** + * <p>The baseline is visually centered within the writing area, usually used for Far Eastern glyphs. + * In horizontal text, glyphs visually "center around" some vertical mid-point. + * In vertical text, glyphs visually "center around" some horizontal mid-point.</p> + * + * <p>This is a bit confusing because, for horizontal text, the ideographic baseline is usually at the bottom of the + * writing area, although in a different location than the alphabetic baseline. + * The visual centering is done indirectly, first by visually centering the glyph itself within the em-box, then by + * "pushing down" the em-box on the ideographic baseline. + * A similar effect is achieved in a similar way for vertical text.</p> + */ + IDEOGRAPHIC, + + /** + * <p>The baseline is at or near the top of the writing area, usually used for certain Indic glyphs. + * In horizontal text, glyphs "push up" on the hanging baseline.</p> + */ + HANGING; + +} Property changes on: trunk/axsl/axsl-i18n/src/main/java/org/axsl/i18n/BaselineType.java ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Author Date Id Rev \ No newline at end of property Modified: trunk/axsl/axsl-i18n/src/main/java/org/axsl/i18n/Script.java =================================================================== --- trunk/axsl/axsl-i18n/src/main/java/org/axsl/i18n/Script.java 2025-05-12 11:19:19 UTC (rev 2810) +++ trunk/axsl/axsl-i18n/src/main/java/org/axsl/i18n/Script.java 2025-05-12 12:28:50 UTC (rev 2811) @@ -40,34 +40,6 @@ public interface Script { /** - * Enumeration of valid natural baseline descriptors for scripts. - * There are other baseline descriptors used in other contexts (such as "middle", and "text-before-edge") that are - * computed values that would not be used as a natural baseline descriptor for a script. - * @see "XSL-FO Recommendation 1.1, Section 7.9.1." - * @see "XSL-FO Recommendation 1.1, Section 7.14." - * @see org.axsl.font.Font.Baseline - * @see org.axsl.value.BaselineIdentifier - */ - enum NaturalBaseline { - - /** The natural baseline is unknown. */ - UNKNOWN, - - /** The natural baseline is alphabetic, a line at or near the bottom of the capital letters, used for Western - * glyphs. */ - ALPHABETIC, - - /** The natural baseline is ideographic, a line either at the center or bottom of the em box of glyphs, used for - * Far Eastern glyphs. */ - IDEOGRAPHIC, - - /** The natural baseline is hanging, a line at the top of a horizontal stroke near the top of the glyphs, used - * for certain Indic glyphs. */ - HANGING; - - } - - /** * Returns the ISO-15924 four-letter alpha code for this script. * This alpha code must match exactly the value published by the Unicode Consortium (see class documentation for * references). @@ -116,7 +88,7 @@ * Returns the natural baseline for this script. * @return The natural baseline for this script. */ - NaturalBaseline getNaturalBaseline(); + BaselineType getNaturalBaseline(); /** * Returns the hyphenation character(s) for this script. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-12 11:19:22
|
Revision: 2810 http://sourceforge.net/p/axsl/code/2810 Author: victormote Date: 2025-05-12 11:19:19 +0000 (Mon, 12 May 2025) Log Message: ----------- Minor improvements to Baseline-related enums. Modified Paths: -------------- trunk/axsl/axsl-font/src/main/java/org/axsl/font/Font.java trunk/axsl/axsl-i18n/src/main/java/org/axsl/i18n/Script.java Modified: trunk/axsl/axsl-font/src/main/java/org/axsl/font/Font.java =================================================================== --- trunk/axsl/axsl-font/src/main/java/org/axsl/font/Font.java 2025-05-10 12:02:34 UTC (rev 2809) +++ trunk/axsl/axsl-font/src/main/java/org/axsl/font/Font.java 2025-05-12 11:19:19 UTC (rev 2810) @@ -100,37 +100,50 @@ */ enum Baseline { - /** The baseline used by alphabetic scripts such as Latin, Cyrillic, and Greek. - * Corresponds to the OpenType baseline tag "romn". */ - ALPHABETIC, + /** The baseline used by alphabetic scripts such as Latin, Cyrillic, and Greek. */ + ALPHABETIC("romn"), - /** The baseline about which mathematical characters are centered. - * Corresponds to the OpenType baseline tag "math". */ - MATH, + /** The baseline about which mathematical characters are centered. */ + MATH("math"), - /** The hanging baseline used in scripts like Tibetan. - * Corresponds to the OpenType baseline tag "hang". */ - HANGING, + /** The hanging baseline used in scripts like Tibetan. */ + HANGING("hang"), /** The ideographic em-box bottom edge baseline when writing horizontally, and the left edge baseline when - * writing vertically. - * Corresponds to the OpenType baseline tag "ideo". */ - IDEO_BOTTOM_LEFT, + * writing vertically. */ + IDEO_BOTTOM_LEFT("ideo"), /** The ideographic em-box top edge baseline when writing horizontally, and the right edge baseline when writing - * vertically. - * Corresponds to the OpenType baseline tag "idtp". */ - IDEO_TOP_RIGHT, + * vertically. */ + IDEO_TOP_RIGHT("idtp"), /** The ideographic character face (ICF) bottom edge baseline when writing horizontally, and the left edge - * baseline when writing vertically. - * Corresponds to the OpenType baseline tag "icfb". */ - ICF_BOTTOM_LEFT, + * baseline when writing vertically. */ + ICF_BOTTOM_LEFT("icfb"), /** The ideographic character face (ICF) top edge baseline when writing horizontally, and the right edge - * baseline when writing vertically. - * Corresponds to the OpenType baseline tag "icft". */ - ICF_TOP_RIGHT; + * baseline when writing vertically. */ + ICF_TOP_RIGHT("icft"); + + /** The OpenType Baseline Tag used to describe this Baseline. */ + private String openTypeTag; + + /** + * Constructor. + * @param openTypeTag The OpenType Baseline Tag used to describe this Baseline. + */ + Baseline(final String openTypeTag) { + this.openTypeTag = openTypeTag; + } + + /** + * Returns the OpenType Baseline Tag used to describe this Baseline. + * @return The OpenType Baseline Tag used to describe this Baseline. + */ + String getOpenTypeTag() { + return this.openTypeTag; + } + } Modified: trunk/axsl/axsl-i18n/src/main/java/org/axsl/i18n/Script.java =================================================================== --- trunk/axsl/axsl-i18n/src/main/java/org/axsl/i18n/Script.java 2025-05-10 12:02:34 UTC (rev 2809) +++ trunk/axsl/axsl-i18n/src/main/java/org/axsl/i18n/Script.java 2025-05-12 11:19:19 UTC (rev 2810) @@ -45,6 +45,8 @@ * computed values that would not be used as a natural baseline descriptor for a script. * @see "XSL-FO Recommendation 1.1, Section 7.9.1." * @see "XSL-FO Recommendation 1.1, Section 7.14." + * @see org.axsl.font.Font.Baseline + * @see org.axsl.value.BaselineIdentifier */ enum NaturalBaseline { @@ -79,8 +81,7 @@ /** * Returns the ISO-15924 numeric code for this script. - * @return The ISO-15924 numeric code for this script, - * lowercase. + * @return The ISO-15924 numeric code for this script. */ short getNumericCode(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vic...@us...> - 2025-05-10 12:02:42
|
Revision: 2809 http://sourceforge.net/p/axsl/code/2809 Author: victormote Date: 2025-05-10 12:02:34 +0000 (Sat, 10 May 2025) Log Message: ----------- Remove duplicate CSS method, replacing it with use of font-selection-strategy that matches that behavior. Modified Paths: -------------- trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java Modified: trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java =================================================================== --- trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java 2025-05-10 11:29:34 UTC (rev 2808) +++ trunk/axsl/axsl-font/src/main/java/org/axsl/font/FontConsumer.java 2025-05-10 12:02:34 UTC (rev 2809) @@ -50,6 +50,8 @@ /** * Accepts the client's description of the desired font, and returns the best-fitting Font found, using the * algorithm specified by the XSL-FO 1.1 Recommendation. + * Note that CSS has no concept of specifying a font-selection-strategy as XSL-FO does. + * CSS 2.1 has an implied font-selection-strategy of {@link FontSelectionStrategy#CHARACTER_BY_CHARACTER}. * This method supports only scalable fonts (not bitmapped fonts). * @param selectionStrategy The font-selection strategy to be used. * @param familyList The list of possible font family names from which to choose the font. @@ -70,41 +72,13 @@ * character. * @return The best-fitting {@link FontUse} instance associated with the descriptive input, or null if none is * found using the given criteria. - * @see #selectFontCss(List, Font.Style, Font.Weight, Font.Variant, Font.Stretch, int, int) * @see #selectFontFallback(int) * @see #selectFontFallback() */ - FontUse selectFontXsl(FontSelectionStrategy selectionStrategy, List<String> familyList, FontStyle style, + FontUse selectFont(FontSelectionStrategy selectionStrategy, List<String> familyList, FontStyle style, FontWeight weight, FontVariant variant, FontStretch stretch, int codePoint); /** - * The same as {@link #selectFontXsl}, except that the algorithm specified by CSS 2.1 is used instead. - * Note that CSS has no concept of specifying a font-selection-strategy as XSL-FO does. - * The implied font-selection-strategy for CSS is {@link FontSelectionStrategy#CHARACTER_BY_CHARACTER}. - * This method supports only scalable fonts (not bitmapped fonts). - * @param familyList See {@link #selectFontXsl}. - * Client applications may use {@link FontUtility#cssFontFamily(CharSequence)} to convert String input into the - * value expected here. - * @param style See {@link #selectFontXsl}. - * Use {@link FontStyle#parseFo(String)} to convert String input. - * @param weight See {@link #selectFontXsl}. - * Use {@link FontWeight#parseFo(String)} to convert String input. - * @param variant See {@link #selectFontXsl}. - * Use {@link FontVariant#parseFo(String)} to convert String input. - * @param stretch See {@link #selectFontXsl}. - * Use {@link FontStretch#parseFo(String)} to convert String input. - * @param codePoint The first character to be painted using the selected {@link FontUse}. - * This allows the selection process to avoid selecting a {@link FontUse} that cannot even paint the first - * character. - * @return The best-fitting {@link FontUse} instance associated with the descriptive input. - * @see #selectFontXsl(Font.SelectionStrategy, List, Font.Style, Font.Weight, Font.Variant, Font.Stretch, int, int) - * @see #selectFontFallback(int) - * @see #selectFontFallback() - */ - FontUse selectFontCss(List<String> familyList, FontStyle style, FontWeight weight, FontVariant variant, - FontStretch stretch, int codePoint); - - /** * Returns an instance of a fallback font that supports a given {@link Script}, without regard to the normal * selection criteria, such as style and weight. * This gives applications, which have tried other font-selection methods without success, the option to obtain such @@ -111,8 +85,7 @@ * a font, and continue processing. * @param script The script for which a font is needed. * @return A {@link FontUse} instance that generally supports {@code script}, or null if none is found. - * @see #selectFontXsl(Font.SelectionStrategy, List, Font.Style, Font.Weight, Font.Variant, Font.Stretch, int, int) - * @see #selectFontCss(List, Font.Style, Font.Weight, Font.Variant, Font.Stretch, int, int) + * @see #selectFont(FontSelectionStrategy, List, FontStyle, FontWeight, FontVariant, FontStretch, int) * @see #selectFontFallback() */ FontUse selectFontFallback(Script script); @@ -127,8 +100,7 @@ * Implementations may allow the user to configure the fallback font, but are required to return a font from this * method regardless. * @return A {@link FontUse} instance, any instance. - * @see #selectFontXsl(Font.SelectionStrategy, List, Font.Style, Font.Weight, Font.Variant, Font.Stretch, int, int) - * @see #selectFontCss(List, Font.Style, Font.Weight, Font.Variant, Font.Stretch, int, int) + * @see #selectFont(FontSelectionStrategy, List, FontStyle, FontWeight, FontVariant, FontStretch, int) * @see #selectFontFallback(int) */ FontUse selectFontFallback(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |