foray-commit Mailing List for FOray (Page 16)
Modular XSL-FO Implementation for Java.
Status: Alpha
Brought to you by:
victormote
You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
(139) |
Apr
(98) |
May
(250) |
Jun
(394) |
Jul
(84) |
Aug
(13) |
Sep
(420) |
Oct
(186) |
Nov
(1) |
Dec
(3) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(108) |
Feb
(202) |
Mar
(291) |
Apr
(247) |
May
(374) |
Jun
(227) |
Jul
(231) |
Aug
(60) |
Sep
(31) |
Oct
(45) |
Nov
(18) |
Dec
|
| 2008 |
Jan
(38) |
Feb
(71) |
Mar
(142) |
Apr
|
May
(59) |
Jun
(6) |
Jul
(10) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2009 |
Jan
(12) |
Feb
(4) |
Mar
(88) |
Apr
(121) |
May
(17) |
Jun
(30) |
Jul
|
Aug
(5) |
Sep
|
Oct
(1) |
Nov
|
Dec
|
| 2010 |
Jan
(11) |
Feb
(76) |
Mar
(11) |
Apr
|
May
(11) |
Jun
|
Jul
|
Aug
(44) |
Sep
(14) |
Oct
(7) |
Nov
|
Dec
|
| 2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(9) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(10) |
Nov
|
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
(4) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(168) |
| 2017 |
Jan
(77) |
Feb
(11) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2018 |
Jan
|
Feb
|
Mar
(1) |
Apr
(6) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2019 |
Jan
|
Feb
(88) |
Mar
(118) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(6) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(141) |
| 2021 |
Jan
(170) |
Feb
(20) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(62) |
Nov
(189) |
Dec
(162) |
| 2022 |
Jan
(201) |
Feb
(118) |
Mar
(8) |
Apr
|
May
(2) |
Jun
(47) |
Jul
(19) |
Aug
(14) |
Sep
(3) |
Oct
|
Nov
(28) |
Dec
(235) |
| 2023 |
Jan
(112) |
Feb
(23) |
Mar
(2) |
Apr
(2) |
May
|
Jun
(1) |
Jul
|
Aug
(70) |
Sep
(92) |
Oct
(20) |
Nov
(1) |
Dec
(1) |
| 2024 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
(14) |
Jun
(11) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2025 |
Jan
(10) |
Feb
(29) |
Mar
|
Apr
(162) |
May
(245) |
Jun
(83) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <vic...@us...> - 2025-04-25 02:39:17
|
Revision: 13503
http://sourceforge.net/p/foray/code/13503
Author: victormote
Date: 2025-04-25 02:38:56 +0000 (Fri, 25 Apr 2025)
Log Message:
-----------
Rename class to avoid confusion with the parser content handlers.
Modified Paths:
--------------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/DeviceTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/VariationIndexTable.java
Added Paths:
-----------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/ParserKit.java
Removed Paths:
-------------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TtfContentHandler.java
Copied: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/ParserKit.java (from rev 13499, trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TtfContentHandler.java)
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/ParserKit.java (rev 0)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/ParserKit.java 2025-04-25 02:38:56 UTC (rev 13503)
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.font.ttf;
+
+import org.foray.fontParse.FontContentHandler;
+
+/**
+ * Wrapper for a table being created and the related handler that is being used to create it.
+ * Keeping them together allows the table and handler to be created and used more flexibly.
+ * @param <T> The class of the table instance being created.
+ * @param <H> The class of the parser handler that is being used to create the table.
+ */
+public class ParserKit<T extends RoTable, H extends FontContentHandler> {
+
+ /** The client table being built from the parser results. */
+ private T table;
+
+ /** The handler. */
+ private H handler;
+
+ /**
+ * Constructor.
+ * @param table The client being built from the parser results.
+ * @param handler The handler.
+ */
+ public ParserKit(final T table, final H handler) {
+ this.table = table;
+ this.handler = handler;
+ }
+
+ /**
+ * Returns the table being parsed.
+ * @return The table being parsed.
+ */
+ public T getTable() {
+ return table;
+ }
+
+ /**
+ * Returns the handler.
+ * @return The handler.
+ */
+ public H getHandler() {
+ return this.handler;
+ }
+
+}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-25 02:13:19 UTC (rev 13502)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-25 02:38:56 UTC (rev 13503)
@@ -201,7 +201,7 @@
/* Read the Font Header first. */
TtfOffsetTableRecord dirEntry = ttfTableDir.getTableDirectoryEntry("head");
{
- final TtfContentHandler<HeadTable, HeadTableHandler> contentHandler = HeadTable.createContentHandler();
+ final ParserKit<HeadTable, HeadTableHandler> contentHandler = HeadTable.createContentHandler();
final TableParser<HeadTableHandler> parser = new HeadTableParser();
parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
font.headTable = contentHandler.getTable();
@@ -235,7 +235,7 @@
dirEntry = ttfTableDir.getTableDirectoryEntry("post");
{
- final TtfContentHandler<PostTable, PostTableHandler> contentHandler = PostTable.createContentHandler();
+ final ParserKit<PostTable, PostTableHandler> contentHandler = PostTable.createContentHandler();
final PostTableParser parser = new PostTableParser();
parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
font.postTable = contentHandler.getTable();
@@ -244,7 +244,7 @@
dirEntry = ttfTableDir.getTableDirectoryEntry("OS/2");
{
- final TtfContentHandler<Os2Table, Os2TableHandler> contentHandler = Os2Table.createContentHandler();
+ final ParserKit<Os2Table, Os2TableHandler> contentHandler = Os2Table.createContentHandler();
final Os2TableParser parser = new Os2TableParser();
parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
font.os2Table = contentHandler.getTable();
@@ -307,7 +307,7 @@
dirEntry = ttfTableDir.getTableDirectoryEntry("BASE");
if (dirEntry != null) {
- final TtfContentHandler<BaseTable, BaseTableHandler> contentHandler = BaseTable.createContentHandler();
+ final ParserKit<BaseTable, BaseTableHandler> contentHandler = BaseTable.createContentHandler();
final BaseTableParser parser = new BaseTableParser();
parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
font.baseTable = contentHandler.getTable();
@@ -342,7 +342,7 @@
dirEntry = ttfTableDir.getTableDirectoryEntry("PCLT");
if (dirEntry != null) {
- final TtfContentHandler<PcltTable, PcltTableHandler> contentHandler = PcltTable.createContentHandler();
+ final ParserKit<PcltTable, PcltTableHandler> contentHandler = PcltTable.createContentHandler();
final PcltTableParser parser = new PcltTableParser();
parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
font.pcltTable = contentHandler.getTable();
Deleted: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TtfContentHandler.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TtfContentHandler.java 2025-04-25 02:13:19 UTC (rev 13502)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TtfContentHandler.java 2025-04-25 02:38:56 UTC (rev 13503)
@@ -1,72 +0,0 @@
-/*
- * Copyright 2025 The FOray Project.
- * http://www.foray.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.
- *
- * This work is in part derived from the following work(s), used with the
- * permission of the licensor:
- * Apache FOP, licensed by the Apache Software Foundation
- *
- */
-
-/*
- * $LastChangedRevision$
- * $LastChangedDate$
- * $LastChangedBy$
- */
-
-package org.foray.font.ttf;
-
-import org.foray.fontParse.FontContentHandler;
-
-/**
- * Wrapper for a table and a related handler.
- * @param <T> The Table class which this content handler class serves.
- * @param <H> The content handler class.
- */
-public class TtfContentHandler<T extends RoTable, H extends FontContentHandler> {
-
- /** The client table being built from the parser results. */
- private T table;
-
- /** The handler. */
- private H handler;
-
- /**
- * Constructor.
- * @param table The client being built from the parser results.
- * @param handler The handler.
- */
- public TtfContentHandler(final T table, final H handler) {
- this.table = table;
- this.handler = handler;
- }
-
- /**
- * Returns the table being parsed.
- * @return The table being parsed.
- */
- public T getTable() {
- return table;
- }
-
- /**
- * Returns the handler.
- * @return The handler.
- */
- public H getHandler() {
- return this.handler;
- }
-
-}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java 2025-04-25 02:13:19 UTC (rev 13502)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java 2025-04-25 02:38:56 UTC (rev 13503)
@@ -28,8 +28,8 @@
package org.foray.font.ttf.table;
+import org.foray.font.ttf.ParserKit;
import org.foray.font.ttf.RoTable;
-import org.foray.font.ttf.TtfContentHandler;
import org.foray.fontParse.ttfHandler.BaseAxisTableHandler;
import org.foray.fontParse.ttfHandler.BaseScriptTableHandler;
@@ -58,7 +58,7 @@
@Override
public BaseScriptTableHandler startScriptTable() {
- final TtfContentHandler<BaseScriptTable, BaseScriptTableHandler> handler =
+ final ParserKit<BaseScriptTable, BaseScriptTableHandler> handler =
BaseScriptTable.createContentHandler();
this.table.scriptTables.add(handler.getTable());
return handler.getHandler();
@@ -100,10 +100,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<BaseAxisTable, BaseAxisTableHandler> createContentHandler() {
+ public static ParserKit<BaseAxisTable, BaseAxisTableHandler> createContentHandler() {
final BaseAxisTable table = new BaseAxisTable();
final BaseAxisTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<BaseAxisTable, BaseAxisTableHandler>(table, handler);
+ return new ParserKit<BaseAxisTable, BaseAxisTableHandler>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java 2025-04-25 02:13:19 UTC (rev 13502)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java 2025-04-25 02:38:56 UTC (rev 13503)
@@ -28,8 +28,8 @@
package org.foray.font.ttf.table;
+import org.foray.font.ttf.ParserKit;
import org.foray.font.ttf.RoTable;
-import org.foray.font.ttf.TtfContentHandler;
import org.foray.fontParse.ttfHandler.BaseCoordTableHandler;
/**
@@ -96,10 +96,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<BaseCoordTable, BaseCoordTableHandler> createContentHandler() {
+ public static ParserKit<BaseCoordTable, BaseCoordTableHandler> createContentHandler() {
final BaseCoordTable table = new BaseCoordTable();
final BaseCoordTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<BaseCoordTable, BaseCoordTableHandler>(table, handler);
+ return new ParserKit<BaseCoordTable, BaseCoordTableHandler>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java 2025-04-25 02:13:19 UTC (rev 13502)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java 2025-04-25 02:38:56 UTC (rev 13503)
@@ -28,8 +28,8 @@
package org.foray.font.ttf.table;
+import org.foray.font.ttf.ParserKit;
import org.foray.font.ttf.RoTable;
-import org.foray.font.ttf.TtfContentHandler;
import org.foray.fontParse.ttfHandler.BaseMinMaxTableHandler;
/**
@@ -64,10 +64,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<BaseMinMaxTable, BaseMinMaxTableHandler> createContentHandler() {
+ public static ParserKit<BaseMinMaxTable, BaseMinMaxTableHandler> createContentHandler() {
final BaseMinMaxTable table = new BaseMinMaxTable();
final BaseMinMaxTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<BaseMinMaxTable, BaseMinMaxTableHandler>(table, handler);
+ return new ParserKit<BaseMinMaxTable, BaseMinMaxTableHandler>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java 2025-04-25 02:13:19 UTC (rev 13502)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java 2025-04-25 02:38:56 UTC (rev 13503)
@@ -28,8 +28,8 @@
package org.foray.font.ttf.table;
+import org.foray.font.ttf.ParserKit;
import org.foray.font.ttf.RoTable;
-import org.foray.font.ttf.TtfContentHandler;
import org.foray.fontParse.ttfHandler.BaseMinMaxTableHandler;
import org.foray.fontParse.ttfHandler.BaseScriptTableHandler;
import org.foray.fontParse.ttfHandler.BaseValuesTableHandler;
@@ -58,7 +58,7 @@
@Override
public BaseMinMaxTableHandler startMinMaxTable() {
- final TtfContentHandler<BaseMinMaxTable, BaseMinMaxTableHandler> handler =
+ final ParserKit<BaseMinMaxTable, BaseMinMaxTableHandler> handler =
BaseMinMaxTable.createContentHandler();
this.table.minMaxTables.add(handler.getTable());
return handler.getHandler();
@@ -66,7 +66,7 @@
@Override
public BaseValuesTableHandler startValuesTable() {
- final TtfContentHandler<BaseValuesTable, BaseValuesTableHandler> handler =
+ final ParserKit<BaseValuesTable, BaseValuesTableHandler> handler =
BaseValuesTable.createContentHandler();
this.table.values = handler.getTable();
return handler.getHandler();
@@ -101,10 +101,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<BaseScriptTable, BaseScriptTableHandler> createContentHandler() {
+ public static ParserKit<BaseScriptTable, BaseScriptTableHandler> createContentHandler() {
final BaseScriptTable table = new BaseScriptTable();
final BaseScriptTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<BaseScriptTable, BaseScriptTableHandler>(table, handler);
+ return new ParserKit<BaseScriptTable, BaseScriptTableHandler>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java 2025-04-25 02:13:19 UTC (rev 13502)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java 2025-04-25 02:38:56 UTC (rev 13503)
@@ -28,8 +28,8 @@
package org.foray.font.ttf.table;
+import org.foray.font.ttf.ParserKit;
import org.foray.font.ttf.RoTable;
-import org.foray.font.ttf.TtfContentHandler;
import org.foray.fontParse.ttfHandler.BaseAxisTableHandler;
import org.foray.fontParse.ttfHandler.BaseTableHandler;
@@ -55,7 +55,7 @@
@Override
public BaseAxisTableHandler startTableHorizAxis() {
- final TtfContentHandler<BaseAxisTable, BaseAxisTableHandler> handler = BaseAxisTable.createContentHandler();
+ final ParserKit<BaseAxisTable, BaseAxisTableHandler> handler = BaseAxisTable.createContentHandler();
this.table.horizontal = handler.getTable();
return handler.getHandler();
}
@@ -62,7 +62,7 @@
@Override
public BaseAxisTableHandler startTableVertAxis() {
- final TtfContentHandler<BaseAxisTable, BaseAxisTableHandler> handler = BaseAxisTable.createContentHandler();
+ final ParserKit<BaseAxisTable, BaseAxisTableHandler> handler = BaseAxisTable.createContentHandler();
this.table.vertical = handler.getTable();
return handler.getHandler();
}
@@ -87,10 +87,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<BaseTable, BaseTableHandler> createContentHandler() {
+ public static ParserKit<BaseTable, BaseTableHandler> createContentHandler() {
final BaseTable table = new BaseTable();
final BaseTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<BaseTable, BaseTableHandler>(table, handler);
+ return new ParserKit<BaseTable, BaseTableHandler>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java 2025-04-25 02:13:19 UTC (rev 13502)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java 2025-04-25 02:38:56 UTC (rev 13503)
@@ -28,8 +28,8 @@
package org.foray.font.ttf.table;
+import org.foray.font.ttf.ParserKit;
import org.foray.font.ttf.RoTable;
-import org.foray.font.ttf.TtfContentHandler;
import org.foray.fontParse.ttfHandler.BaseCoordTableHandler;
import org.foray.fontParse.ttfHandler.BaseValuesTableHandler;
@@ -57,7 +57,7 @@
@Override
public BaseCoordTableHandler startCoordTable() {
- final TtfContentHandler<BaseCoordTable, BaseCoordTableHandler> handler =
+ final ParserKit<BaseCoordTable, BaseCoordTableHandler> handler =
BaseCoordTable.createContentHandler();
this.table.coordTables.add(handler.getTable());
return handler.getHandler();
@@ -84,10 +84,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<BaseValuesTable, BaseValuesTableHandler> createContentHandler() {
+ public static ParserKit<BaseValuesTable, BaseValuesTableHandler> createContentHandler() {
final BaseValuesTable table = new BaseValuesTable();
final BaseValuesTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<BaseValuesTable, BaseValuesTableHandler>(table, handler);
+ return new ParserKit<BaseValuesTable, BaseValuesTableHandler>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/DeviceTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/DeviceTable.java 2025-04-25 02:13:19 UTC (rev 13502)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/DeviceTable.java 2025-04-25 02:38:56 UTC (rev 13503)
@@ -28,8 +28,8 @@
package org.foray.font.ttf.table;
+import org.foray.font.ttf.ParserKit;
import org.foray.font.ttf.RoTable;
-import org.foray.font.ttf.TtfContentHandler;
import org.foray.fontParse.ttfHandler.DeviceTableHandler;
/**
@@ -60,10 +60,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<DeviceTable, DeviceTableHandler> createContentHandler() {
+ public static ParserKit<DeviceTable, DeviceTableHandler> createContentHandler() {
final DeviceTable table = new DeviceTable();
final DeviceTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<DeviceTable, DeviceTableHandler>(table, handler);
+ return new ParserKit<DeviceTable, DeviceTableHandler>(table, handler);
}
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java 2025-04-25 02:13:19 UTC (rev 13502)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java 2025-04-25 02:38:56 UTC (rev 13503)
@@ -30,8 +30,8 @@
import org.foray.common.data.BoundingBoxShort;
import org.foray.common.data.BoundingBoxUtils;
+import org.foray.font.ttf.ParserKit;
import org.foray.font.ttf.RoTable;
-import org.foray.font.ttf.TtfContentHandler;
import org.foray.fontParse.ttfHandler.HeadTableHandler;
import org.axsl.ps.BoundingBox;
@@ -117,10 +117,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<HeadTable, HeadTableHandler> createContentHandler() {
+ public static ParserKit<HeadTable, HeadTableHandler> createContentHandler() {
final HeadTable table = new HeadTable();
final HeadTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<HeadTable, HeadTableHandler>(table, handler);
+ return new ParserKit<HeadTable, HeadTableHandler>(table, handler);
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java 2025-04-25 02:13:19 UTC (rev 13502)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java 2025-04-25 02:38:56 UTC (rev 13503)
@@ -29,8 +29,8 @@
package org.foray.font.ttf.table;
import org.foray.font.format.Panose4a;
+import org.foray.font.ttf.ParserKit;
import org.foray.font.ttf.RoTable;
-import org.foray.font.ttf.TtfContentHandler;
import org.foray.fontParse.ttfHandler.Os2TableHandler;
import org.checkerframework.checker.signedness.qual.Unsigned;
@@ -136,10 +136,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<Os2Table, Os2TableHandler> createContentHandler() {
+ public static ParserKit<Os2Table, Os2TableHandler> createContentHandler() {
final Os2Table table = new Os2Table();
final Os2TableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<Os2Table, Os2TableHandler>(table, handler);
+ return new ParserKit<Os2Table, Os2TableHandler>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java 2025-04-25 02:13:19 UTC (rev 13502)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java 2025-04-25 02:38:56 UTC (rev 13503)
@@ -28,8 +28,8 @@
package org.foray.font.ttf.table;
+import org.foray.font.ttf.ParserKit;
import org.foray.font.ttf.RoTable;
-import org.foray.font.ttf.TtfContentHandler;
import org.foray.fontParse.ttfHandler.PcltTableHandler;
/**
@@ -90,10 +90,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<PcltTable, PcltTableHandler> createContentHandler() {
+ public static ParserKit<PcltTable, PcltTableHandler> createContentHandler() {
final PcltTable table = new PcltTable();
final PcltTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<PcltTable, PcltTableHandler>(table, handler);
+ return new ParserKit<PcltTable, PcltTableHandler>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java 2025-04-25 02:13:19 UTC (rev 13502)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java 2025-04-25 02:38:56 UTC (rev 13503)
@@ -28,8 +28,8 @@
package org.foray.font.ttf.table;
+import org.foray.font.ttf.ParserKit;
import org.foray.font.ttf.RoTable;
-import org.foray.font.ttf.TtfContentHandler;
import org.foray.fontParse.ttf.PostTableParser;
import org.foray.fontParse.ttfHandler.PostTableHandler;
@@ -114,10 +114,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<PostTable, PostTableHandler> createContentHandler() {
+ public static ParserKit<PostTable, PostTableHandler> createContentHandler() {
final PostTable table = new PostTable();
final PostTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<PostTable, PostTableHandler>(table, handler);
+ return new ParserKit<PostTable, PostTableHandler>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/VariationIndexTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/VariationIndexTable.java 2025-04-25 02:13:19 UTC (rev 13502)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/VariationIndexTable.java 2025-04-25 02:38:56 UTC (rev 13503)
@@ -28,8 +28,8 @@
package org.foray.font.ttf.table;
+import org.foray.font.ttf.ParserKit;
import org.foray.font.ttf.RoTable;
-import org.foray.font.ttf.TtfContentHandler;
import org.foray.fontParse.ttfHandler.VariationIndexTableHandler;
/**
@@ -60,10 +60,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<VariationIndexTable, VariationIndexTableHandler> createContentHandler() {
+ public static ParserKit<VariationIndexTable, VariationIndexTableHandler> createContentHandler() {
final VariationIndexTable table = new VariationIndexTable();
final VariationIndexTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<VariationIndexTable, VariationIndexTableHandler>(table, handler);
+ return new ParserKit<VariationIndexTable, VariationIndexTableHandler>(table, handler);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-04-25 02:13:39
|
Revision: 13502
http://sourceforge.net/p/foray/code/13502
Author: victormote
Date: 2025-04-25 02:13:19 +0000 (Fri, 25 Apr 2025)
Log Message:
-----------
Rename FontParser to TableParser, partly to avoid confusion with the big-picture FontParser in foray-font.
Modified Paths:
--------------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontContentHandler.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseAxisTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseCoordTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseMinMaxTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseScriptTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseValuesTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/DeviceTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/HeadTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PcltTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/VariationIndexTableParser.java
Added Paths:
-----------
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/TableParser.java
Removed Paths:
-------------
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontParser.java
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-25 02:09:24 UTC (rev 13501)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-25 02:13:19 UTC (rev 13502)
@@ -59,7 +59,7 @@
import org.foray.font.ttf.table.PrepTable;
import org.foray.font.ttf.table.VorgTable;
import org.foray.fontParse.FontFormat;
-import org.foray.fontParse.FontParser;
+import org.foray.fontParse.TableParser;
import org.foray.fontParse.ttf.BaseTableParser;
import org.foray.fontParse.ttf.HeadTableParser;
import org.foray.fontParse.ttf.Os2TableParser;
@@ -202,7 +202,7 @@
TtfOffsetTableRecord dirEntry = ttfTableDir.getTableDirectoryEntry("head");
{
final TtfContentHandler<HeadTable, HeadTableHandler> contentHandler = HeadTable.createContentHandler();
- final FontParser<HeadTableHandler> parser = new HeadTableParser();
+ final TableParser<HeadTableHandler> parser = new HeadTableParser();
parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
font.headTable = contentHandler.getTable();
}
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontContentHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontContentHandler.java 2025-04-25 02:09:24 UTC (rev 13501)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontContentHandler.java 2025-04-25 02:13:19 UTC (rev 13502)
@@ -29,7 +29,7 @@
package org.foray.fontParse;
/**
- * Implementations receive events from a {@link FontParser}.
+ * Implementations receive events from a {@link TableParser}.
* Analogous to the {@link org.xml.sax.ContentHandler SAX ContentHandler}.
*/
public interface FontContentHandler {
Deleted: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontParser.java 2025-04-25 02:09:24 UTC (rev 13501)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontParser.java 2025-04-25 02:13:19 UTC (rev 13502)
@@ -1,54 +0,0 @@
-/*
- * Copyright 2025 The FOray Project.
- * http://www.foray.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.
- *
- * This work is in part derived from the following work(s), used with the
- * permission of the licensor:
- * Apache FOP, licensed by the Apache Software Foundation
- *
- */
-
-/*
- * $LastChangedRevision$
- * $LastChangedDate$
- * $LastChangedBy$
- */
-
-package org.foray.fontParse;
-
-import org.foray.fontParse.ttf.TtfRandomAccessInput;
-
-import java.io.IOException;
-
-/**
- * Parses font files and produces events to be consumed by a {@link FontContentHandler}.
- * Making font parsing an event-driven process separates the concerns of parsing and using the font data.
- * The parser parses everything consistently, regardless of the consumer.
- * The consumer does what it wishes with the results.
- * @param <H> The handler class for this parser.
- */
-public abstract class FontParser<H extends FontContentHandler> {
-
- /**
- * Parses the input.
- * @param input The input to be parsed.
- * @param offset The offset, in bytes, into {@code input} at which parsing should begin.
- * @param consumer The consumer of the parsing.
- * @throws IOException For errors reading the input.
- */
- public abstract void parse(TtfRandomAccessInput input, int offset, H consumer)
- throws IOException;
-
-}
Copied: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/TableParser.java (from rev 13500, trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontParser.java)
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/TableParser.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/TableParser.java 2025-04-25 02:13:19 UTC (rev 13502)
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.fontParse;
+
+import org.foray.fontParse.ttf.TtfRandomAccessInput;
+
+import java.io.IOException;
+
+/**
+ * Parses font files and produces events to be consumed by a {@link FontContentHandler}.
+ * Making font parsing an event-driven process separates the concerns of parsing and using the font data.
+ * The parser parses everything consistently, regardless of the consumer.
+ * The consumer does what it wishes with the results.
+ * @param <H> The handler class for this parser.
+ */
+public abstract class TableParser<H extends FontContentHandler> {
+
+ /**
+ * Parses the input.
+ * @param input The input to be parsed.
+ * @param offset The offset, in bytes, into {@code input} at which parsing should begin.
+ * @param consumer The consumer of the parsing.
+ * @throws IOException For errors reading the input.
+ */
+ public abstract void parse(TtfRandomAccessInput input, int offset, H consumer)
+ throws IOException;
+
+}
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseAxisTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseAxisTableParser.java 2025-04-25 02:09:24 UTC (rev 13501)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseAxisTableParser.java 2025-04-25 02:13:19 UTC (rev 13502)
@@ -28,7 +28,7 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontParser;
+import org.foray.fontParse.TableParser;
import org.foray.fontParse.ttfHandler.BaseAxisTableHandler;
import org.foray.fontParse.ttfHandler.BaseScriptTableHandler;
@@ -38,7 +38,7 @@
* Parses a TTF BASE table.
* @see org.foray.font.ttf.table.BaseTable
*/
-public class BaseAxisTableParser extends FontParser<BaseAxisTableHandler> {
+public class BaseAxisTableParser extends TableParser<BaseAxisTableHandler> {
@Override
public void parse(final TtfRandomAccessInput input, final int offset, final BaseAxisTableHandler handler)
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseCoordTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseCoordTableParser.java 2025-04-25 02:09:24 UTC (rev 13501)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseCoordTableParser.java 2025-04-25 02:13:19 UTC (rev 13502)
@@ -28,7 +28,7 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontParser;
+import org.foray.fontParse.TableParser;
import org.foray.fontParse.ttfHandler.BaseCoordTableHandler;
import java.io.IOException;
@@ -37,7 +37,7 @@
* Parses a TTF BASE table, Coord Subtable.
* @see org.foray.font.ttf.table.BaseCoordTable
*/
-public class BaseCoordTableParser extends FontParser<BaseCoordTableHandler> {
+public class BaseCoordTableParser extends TableParser<BaseCoordTableHandler> {
/** Identifier for Format 1. */
public static final byte FORMAT_1_IDENTIFIER = 1;
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseMinMaxTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseMinMaxTableParser.java 2025-04-25 02:09:24 UTC (rev 13501)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseMinMaxTableParser.java 2025-04-25 02:13:19 UTC (rev 13502)
@@ -28,7 +28,7 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontParser;
+import org.foray.fontParse.TableParser;
import org.foray.fontParse.ttfHandler.BaseCoordTableHandler;
import org.foray.fontParse.ttfHandler.BaseMinMaxTableHandler;
@@ -38,7 +38,7 @@
* Parses a TTF BASE table, MinMax subtable.
* @see org.foray.font.ttf.table.BaseMinMaxTable
*/
-public class BaseMinMaxTableParser extends FontParser<BaseMinMaxTableHandler> {
+public class BaseMinMaxTableParser extends TableParser<BaseMinMaxTableHandler> {
@Override
public void parse(final TtfRandomAccessInput input, final int offset, final BaseMinMaxTableHandler handler)
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseScriptTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseScriptTableParser.java 2025-04-25 02:09:24 UTC (rev 13501)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseScriptTableParser.java 2025-04-25 02:13:19 UTC (rev 13502)
@@ -28,7 +28,7 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontParser;
+import org.foray.fontParse.TableParser;
import org.foray.fontParse.ttfHandler.BaseMinMaxTableHandler;
import org.foray.fontParse.ttfHandler.BaseScriptTableHandler;
import org.foray.fontParse.ttfHandler.BaseValuesTableHandler;
@@ -39,7 +39,7 @@
* Parses a TTF BASE table, Script Subtable.
* @see org.foray.font.ttf.table.BaseScriptTable
*/
-public class BaseScriptTableParser extends FontParser<BaseScriptTableHandler> {
+public class BaseScriptTableParser extends TableParser<BaseScriptTableHandler> {
@Override
public void parse(final TtfRandomAccessInput input, final int offset, final BaseScriptTableHandler handler)
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseTableParser.java 2025-04-25 02:09:24 UTC (rev 13501)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseTableParser.java 2025-04-25 02:13:19 UTC (rev 13502)
@@ -28,7 +28,7 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontParser;
+import org.foray.fontParse.TableParser;
import org.foray.fontParse.ttfHandler.BaseAxisTableHandler;
import org.foray.fontParse.ttfHandler.BaseTableHandler;
@@ -38,7 +38,7 @@
* Parses a TTF BASE table.
* @see org.foray.font.ttf.table.BaseTable
*/
-public class BaseTableParser extends FontParser<BaseTableHandler> {
+public class BaseTableParser extends TableParser<BaseTableHandler> {
@Override
public void parse(final TtfRandomAccessInput input, final int offset, final BaseTableHandler handler)
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseValuesTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseValuesTableParser.java 2025-04-25 02:09:24 UTC (rev 13501)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseValuesTableParser.java 2025-04-25 02:13:19 UTC (rev 13502)
@@ -28,7 +28,7 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontParser;
+import org.foray.fontParse.TableParser;
import org.foray.fontParse.ttfHandler.BaseCoordTableHandler;
import org.foray.fontParse.ttfHandler.BaseValuesTableHandler;
@@ -37,7 +37,7 @@
/**
* Parses a TTF BASE table, Values Subtable.
*/
-public class BaseValuesTableParser extends FontParser<BaseValuesTableHandler> {
+public class BaseValuesTableParser extends TableParser<BaseValuesTableHandler> {
@Override
public void parse(final TtfRandomAccessInput input, final int offset, final BaseValuesTableHandler handler)
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/DeviceTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/DeviceTableParser.java 2025-04-25 02:09:24 UTC (rev 13501)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/DeviceTableParser.java 2025-04-25 02:13:19 UTC (rev 13502)
@@ -28,7 +28,7 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontParser;
+import org.foray.fontParse.TableParser;
import org.foray.fontParse.ttfHandler.DeviceTableHandler;
import java.io.IOException;
@@ -36,7 +36,7 @@
/**
* Parses a TTF Device table.
*/
-public class DeviceTableParser extends FontParser<DeviceTableHandler> {
+public class DeviceTableParser extends TableParser<DeviceTableHandler> {
@Override
public void parse(final TtfRandomAccessInput input, final int offset, final DeviceTableHandler handler)
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/HeadTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/HeadTableParser.java 2025-04-25 02:09:24 UTC (rev 13501)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/HeadTableParser.java 2025-04-25 02:13:19 UTC (rev 13502)
@@ -28,7 +28,7 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontParser;
+import org.foray.fontParse.TableParser;
import org.foray.fontParse.ttfHandler.HeadTableHandler;
import java.io.IOException;
@@ -37,7 +37,7 @@
* Parses a TTF HEAD table.
* @see org.foray.font.ttf.table.HeadTable
*/
-public class HeadTableParser extends FontParser<HeadTableHandler> {
+public class HeadTableParser extends TableParser<HeadTableHandler> {
@Override
public void parse(final TtfRandomAccessInput input, final int offset, final HeadTableHandler handler)
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java 2025-04-25 02:09:24 UTC (rev 13501)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java 2025-04-25 02:13:19 UTC (rev 13502)
@@ -29,7 +29,7 @@
package org.foray.fontParse.ttf;
import org.foray.fontParse.FontFormat;
-import org.foray.fontParse.FontParser;
+import org.foray.fontParse.TableParser;
import org.foray.fontParse.ttfHandler.Os2TableHandler;
import org.checkerframework.checker.signedness.qual.Unsigned;
@@ -40,7 +40,7 @@
* Parses a TTF OS/2 table.
* @see org.foray.font.ttf.table.Os2Table
*/
-public class Os2TableParser extends FontParser<Os2TableHandler> {
+public class Os2TableParser extends TableParser<Os2TableHandler> {
/** The number of Panose fields. */
public static final byte QTY_PANOSE_FIELDS = 10;
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PcltTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PcltTableParser.java 2025-04-25 02:09:24 UTC (rev 13501)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PcltTableParser.java 2025-04-25 02:13:19 UTC (rev 13502)
@@ -28,7 +28,7 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontParser;
+import org.foray.fontParse.TableParser;
import org.foray.fontParse.ttfHandler.PcltTableHandler;
import java.io.IOException;
@@ -37,7 +37,7 @@
* Parses a TTF PCLT table.
* @see org.foray.font.ttf.table.PcltTable
*/
-public class PcltTableParser extends FontParser<PcltTableHandler> {
+public class PcltTableParser extends TableParser<PcltTableHandler> {
/** The size, in bytes, of the "typeface" field. */
public static final byte TYPEFACE_CHARS = 16;
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java 2025-04-25 02:09:24 UTC (rev 13501)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java 2025-04-25 02:13:19 UTC (rev 13502)
@@ -29,7 +29,7 @@
package org.foray.fontParse.ttf;
import org.foray.fontParse.FontFormat;
-import org.foray.fontParse.FontParser;
+import org.foray.fontParse.TableParser;
import org.foray.fontParse.ttfHandler.PostTableHandler;
import java.io.IOException;
@@ -38,7 +38,7 @@
/**
* Parses a TTF post table.
*/
-public class PostTableParser extends FontParser<PostTableHandler> {
+public class PostTableParser extends TableParser<PostTableHandler> {
/** Constant indicating the beginning of the range of glyph indexes that are reserved for future use. */
public static final int FIRST_RESERVED_INDEX = 32768;
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/VariationIndexTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/VariationIndexTableParser.java 2025-04-25 02:09:24 UTC (rev 13501)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/VariationIndexTableParser.java 2025-04-25 02:13:19 UTC (rev 13502)
@@ -28,7 +28,7 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontParser;
+import org.foray.fontParse.TableParser;
import org.foray.fontParse.ttfHandler.VariationIndexTableHandler;
import java.io.IOException;
@@ -36,7 +36,7 @@
/**
* Parses a TTF VariationIndex table.
*/
-public class VariationIndexTableParser extends FontParser<VariationIndexTableHandler> {
+public class VariationIndexTableParser extends TableParser<VariationIndexTableHandler> {
@Override
public void parse(final TtfRandomAccessInput input, final int offset, final VariationIndexTableHandler handler)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-04-25 02:09:44
|
Revision: 13501
http://sourceforge.net/p/foray/code/13501
Author: victormote
Date: 2025-04-25 02:09:24 +0000 (Fri, 25 Apr 2025)
Log Message:
-----------
Make return types specific.
Modified Paths:
--------------
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseCoordTableHandler.java
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseCoordTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseCoordTableHandler.java 2025-04-25 02:00:57 UTC (rev 13500)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseCoordTableHandler.java 2025-04-25 02:09:24 UTC (rev 13501)
@@ -42,6 +42,6 @@
default void referenceGlyph(short value) { return; }
default void baseCoordPoint(short value) { return; }
- default FontContentHandler startDeviceTable() { return this; }
- default FontContentHandler startVariationIndexTable() { return this; }
+ default DeviceTableHandler startDeviceTable() { return null; }
+ default VariationIndexTableHandler startVariationIndexTable() { return null; }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-04-25 02:01:17
|
Revision: 13500
http://sourceforge.net/p/foray/code/13500
Author: victormote
Date: 2025-04-25 02:00:57 +0000 (Fri, 25 Apr 2025)
Log Message:
-----------
Clean up parser generics and initialization.
Modified Paths:
--------------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseAxisTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseCoordTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseMinMaxTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseScriptTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseValuesTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/DeviceTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/HeadTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PcltTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/VariationIndexTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseAxisTableHandler.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseMinMaxTableHandler.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseScriptTableHandler.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseTableHandler.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseValuesTableHandler.java
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -66,7 +66,11 @@
import org.foray.fontParse.ttf.PcltTableParser;
import org.foray.fontParse.ttf.PostTableParser;
import org.foray.fontParse.ttf.TtfRandomAccessInput;
+import org.foray.fontParse.ttfHandler.BaseTableHandler;
+import org.foray.fontParse.ttfHandler.HeadTableHandler;
import org.foray.fontParse.ttfHandler.Os2TableHandler;
+import org.foray.fontParse.ttfHandler.PcltTableHandler;
+import org.foray.fontParse.ttfHandler.PostTableHandler;
import org.foray.primitive.BitUtils;
import org.foray.primitive.sequence.ShortArrayBuilder;
@@ -197,10 +201,10 @@
/* Read the Font Header first. */
TtfOffsetTableRecord dirEntry = ttfTableDir.getTableDirectoryEntry("head");
{
- final TtfContentHandler<?, ?> contentHandler = HeadTable.createContentHandler();
- final FontParser parser = new HeadTableParser();
+ final TtfContentHandler<HeadTable, HeadTableHandler> contentHandler = HeadTable.createContentHandler();
+ final FontParser<HeadTableHandler> parser = new HeadTableParser();
parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
- font.headTable = (HeadTable) contentHandler.getTable();
+ font.headTable = contentHandler.getTable();
}
@@ -231,10 +235,10 @@
dirEntry = ttfTableDir.getTableDirectoryEntry("post");
{
- final TtfContentHandler<?, ?> contentHandler = PostTable.createContentHandler();
+ final TtfContentHandler<PostTable, PostTableHandler> contentHandler = PostTable.createContentHandler();
final PostTableParser parser = new PostTableParser();
parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
- font.postTable = (PostTable) contentHandler.getTable();
+ font.postTable = contentHandler.getTable();
}
@@ -243,7 +247,7 @@
final TtfContentHandler<Os2Table, Os2TableHandler> contentHandler = Os2Table.createContentHandler();
final Os2TableParser parser = new Os2TableParser();
parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
- font.os2Table = (Os2Table) contentHandler.getTable();
+ font.os2Table = contentHandler.getTable();
}
@@ -303,10 +307,10 @@
dirEntry = ttfTableDir.getTableDirectoryEntry("BASE");
if (dirEntry != null) {
- final TtfContentHandler<?, ?> contentHandler = BaseTable.createContentHandler();
+ final TtfContentHandler<BaseTable, BaseTableHandler> contentHandler = BaseTable.createContentHandler();
final BaseTableParser parser = new BaseTableParser();
parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
- font.baseTable = (BaseTable) contentHandler.getTable();
+ font.baseTable = contentHandler.getTable();
}
dirEntry = ttfTableDir.getTableDirectoryEntry("GDEF");
@@ -338,10 +342,10 @@
dirEntry = ttfTableDir.getTableDirectoryEntry("PCLT");
if (dirEntry != null) {
- final TtfContentHandler<?, ?> contentHandler = PcltTable.createContentHandler();
+ final TtfContentHandler<PcltTable, PcltTableHandler> contentHandler = PcltTable.createContentHandler();
final PcltTableParser parser = new PcltTableParser();
parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
- font.pcltTable = (PcltTable) contentHandler.getTable();
+ font.pcltTable = contentHandler.getTable();
}
dirEntry = ttfTableDir.getTableDirectoryEntry("kern");
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -30,7 +30,6 @@
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
-import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.ttfHandler.BaseAxisTableHandler;
import org.foray.fontParse.ttfHandler.BaseScriptTableHandler;
@@ -58,7 +57,7 @@
}
@Override
- public FontContentHandler startScriptTable() {
+ public BaseScriptTableHandler startScriptTable() {
final TtfContentHandler<BaseScriptTable, BaseScriptTableHandler> handler =
BaseScriptTable.createContentHandler();
this.table.scriptTables.add(handler.getTable());
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -30,7 +30,6 @@
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
-import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.ttfHandler.BaseMinMaxTableHandler;
import org.foray.fontParse.ttfHandler.BaseScriptTableHandler;
import org.foray.fontParse.ttfHandler.BaseValuesTableHandler;
@@ -58,7 +57,7 @@
}
@Override
- public FontContentHandler startMinMaxTable() {
+ public BaseMinMaxTableHandler startMinMaxTable() {
final TtfContentHandler<BaseMinMaxTable, BaseMinMaxTableHandler> handler =
BaseMinMaxTable.createContentHandler();
this.table.minMaxTables.add(handler.getTable());
@@ -66,7 +65,7 @@
}
@Override
- public FontContentHandler startValuesTable() {
+ public BaseValuesTableHandler startValuesTable() {
final TtfContentHandler<BaseValuesTable, BaseValuesTableHandler> handler =
BaseValuesTable.createContentHandler();
this.table.values = handler.getTable();
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -30,7 +30,6 @@
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
-import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.ttfHandler.BaseAxisTableHandler;
import org.foray.fontParse.ttfHandler.BaseTableHandler;
@@ -55,7 +54,7 @@
}
@Override
- public FontContentHandler startTableHorizAxis() {
+ public BaseAxisTableHandler startTableHorizAxis() {
final TtfContentHandler<BaseAxisTable, BaseAxisTableHandler> handler = BaseAxisTable.createContentHandler();
this.table.horizontal = handler.getTable();
return handler.getHandler();
@@ -62,7 +61,7 @@
}
@Override
- public FontContentHandler startTableVertAxis() {
+ public BaseAxisTableHandler startTableVertAxis() {
final TtfContentHandler<BaseAxisTable, BaseAxisTableHandler> handler = BaseAxisTable.createContentHandler();
this.table.vertical = handler.getTable();
return handler.getHandler();
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -30,7 +30,6 @@
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
-import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.ttfHandler.BaseCoordTableHandler;
import org.foray.fontParse.ttfHandler.BaseValuesTableHandler;
@@ -57,7 +56,7 @@
}
@Override
- public FontContentHandler startCoordTable() {
+ public BaseCoordTableHandler startCoordTable() {
final TtfContentHandler<BaseCoordTable, BaseCoordTableHandler> handler =
BaseCoordTable.createContentHandler();
this.table.coordTables.add(handler.getTable());
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontParser.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontParser.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -37,8 +37,9 @@
* Making font parsing an event-driven process separates the concerns of parsing and using the font data.
* The parser parses everything consistently, regardless of the consumer.
* The consumer does what it wishes with the results.
+ * @param <H> The handler class for this parser.
*/
-public abstract class FontParser {
+public abstract class FontParser<H extends FontContentHandler> {
/**
* Parses the input.
@@ -47,7 +48,7 @@
* @param consumer The consumer of the parsing.
* @throws IOException For errors reading the input.
*/
- public abstract void parse(TtfRandomAccessInput input, int offset, FontContentHandler consumer)
+ public abstract void parse(TtfRandomAccessInput input, int offset, H consumer)
throws IOException;
}
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseAxisTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseAxisTableParser.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseAxisTableParser.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -28,9 +28,9 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontParser;
import org.foray.fontParse.ttfHandler.BaseAxisTableHandler;
+import org.foray.fontParse.ttfHandler.BaseScriptTableHandler;
import java.io.IOException;
@@ -38,12 +38,11 @@
* Parses a TTF BASE table.
* @see org.foray.font.ttf.table.BaseTable
*/
-public class BaseAxisTableParser extends FontParser {
+public class BaseAxisTableParser extends FontParser<BaseAxisTableHandler> {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final BaseAxisTableHandler handler)
throws IOException {
- final BaseAxisTableHandler handler = (BaseAxisTableHandler) genericHandler;
input.seek(offset);
final short baseTagListOffset = input.read_Offset16(); // 2 bytes, total 2
@@ -77,7 +76,7 @@
}
for (int index = 0; index < baseScriptCount; index ++) {
- final FontContentHandler newHandler = handler.startScriptTable();
+ final BaseScriptTableHandler newHandler = handler.startScriptTable();
final BaseScriptTableParser parser = new BaseScriptTableParser();
final int scriptTableOffset = offset + baseScriptListOffset + baseScriptOffsets[index];
parser.parse(input, scriptTableOffset, newHandler);
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseCoordTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseCoordTableParser.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseCoordTableParser.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -28,7 +28,6 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontParser;
import org.foray.fontParse.ttfHandler.BaseCoordTableHandler;
@@ -38,7 +37,7 @@
* Parses a TTF BASE table, Coord Subtable.
* @see org.foray.font.ttf.table.BaseCoordTable
*/
-public class BaseCoordTableParser extends FontParser {
+public class BaseCoordTableParser extends FontParser<BaseCoordTableHandler> {
/** Identifier for Format 1. */
public static final byte FORMAT_1_IDENTIFIER = 1;
@@ -50,9 +49,8 @@
public static final byte FORMAT_3_IDENTIFIER = 3;
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final BaseCoordTableHandler handler)
throws IOException {
- final BaseCoordTableHandler handler = (BaseCoordTableHandler) genericHandler;
input.seek(offset);
/* Fields common to all formats. */
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseMinMaxTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseMinMaxTableParser.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseMinMaxTableParser.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -28,8 +28,8 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontParser;
+import org.foray.fontParse.ttfHandler.BaseCoordTableHandler;
import org.foray.fontParse.ttfHandler.BaseMinMaxTableHandler;
import java.io.IOException;
@@ -38,18 +38,17 @@
* Parses a TTF BASE table, MinMax subtable.
* @see org.foray.font.ttf.table.BaseMinMaxTable
*/
-public class BaseMinMaxTableParser extends FontParser {
+public class BaseMinMaxTableParser extends FontParser<BaseMinMaxTableHandler> {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final BaseMinMaxTableHandler handler)
throws IOException {
- final BaseMinMaxTableHandler handler = (BaseMinMaxTableHandler) genericHandler;
input.seek(offset);
final short minCoordOffset = input.read_Offset16(); // 2 bytes, total 2
handler.minCoordOffset(minCoordOffset);
if (minCoordOffset > 0) {
- final FontContentHandler newHandler = handler.startMinCoordTable();
+ final BaseCoordTableHandler newHandler = handler.startMinCoordTable();
final BaseCoordTableParser parser = new BaseCoordTableParser();
parser.parse(input, minCoordOffset, newHandler);
}
@@ -57,7 +56,7 @@
final short maxCoordOffset = input.read_Offset16(); // 2 bytes, total 4
handler.maxCoordOffset(maxCoordOffset);
if (maxCoordOffset > 0) {
- final FontContentHandler newHandler = handler.startMaxCoordTable();
+ final BaseCoordTableHandler newHandler = handler.startMaxCoordTable();
final BaseCoordTableParser parser = new BaseCoordTableParser();
parser.parse(input, maxCoordOffset, newHandler);
}
@@ -76,7 +75,7 @@
final short featureMinCoordOffset = input.read_Offset16(); // 2 bytes, total 6
handler.featureMinCoordOffset(featureMinCoordOffset);
if (featureMinCoordOffset > 0) {
- final FontContentHandler newHandler = handler.startFeatureMinCoordTable();
+ final BaseCoordTableHandler newHandler = handler.startFeatureMinCoordTable();
final BaseCoordTableParser parser = new BaseCoordTableParser();
final int newOffset = offset + featureMinCoordOffset;
parser.parse(input, newOffset, newHandler);
@@ -85,7 +84,7 @@
final short featureMaxCoordOffset = input.read_Offset16(); // 2 bytes, total 8
handler.featureMaxCoordOffset(featureMaxCoordOffset);
if (featureMaxCoordOffset > 0) {
- final FontContentHandler newHandler = handler.startFeatureMaxCoordTable();
+ final BaseCoordTableHandler newHandler = handler.startFeatureMaxCoordTable();
final BaseCoordTableParser parser = new BaseCoordTableParser();
final int newOffset = offset + featureMaxCoordOffset;
parser.parse(input, newOffset, newHandler);
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseScriptTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseScriptTableParser.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseScriptTableParser.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -28,9 +28,10 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontParser;
+import org.foray.fontParse.ttfHandler.BaseMinMaxTableHandler;
import org.foray.fontParse.ttfHandler.BaseScriptTableHandler;
+import org.foray.fontParse.ttfHandler.BaseValuesTableHandler;
import java.io.IOException;
@@ -38,12 +39,11 @@
* Parses a TTF BASE table, Script Subtable.
* @see org.foray.font.ttf.table.BaseScriptTable
*/
-public class BaseScriptTableParser extends FontParser {
+public class BaseScriptTableParser extends FontParser<BaseScriptTableHandler> {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final BaseScriptTableHandler handler)
throws IOException {
- final BaseScriptTableHandler handler = (BaseScriptTableHandler) genericHandler;
input.seek(offset);
final short baseValuesOffset = input.read_Offset16(); // 2 bytes, total 2
@@ -58,7 +58,7 @@
final short minMaxOffset = input.read_Offset16();
handler.minMaxOffset(minMaxOffset);
- final FontContentHandler newHandler = handler.startMinMaxTable();
+ final BaseMinMaxTableHandler newHandler = handler.startMinMaxTable();
final BaseMinMaxTableParser parser = new BaseMinMaxTableParser();
final int newParserOffset = offset + minMaxOffset;
parser.parse(input, newParserOffset, newHandler);
@@ -65,7 +65,7 @@
}
if (baseValuesOffset != 0) {
- final FontContentHandler newHandler = handler.startValuesTable();
+ final BaseValuesTableHandler newHandler = handler.startValuesTable();
final BaseValuesTableParser parser = new BaseValuesTableParser();
final int valuesOffset = offset + baseValuesOffset;
parser.parse(input, valuesOffset, newHandler);
@@ -72,7 +72,7 @@
}
if (defaultMinMaxOffset != 0) {
- final FontContentHandler newHandler = handler.startMinMaxTable();
+ final BaseMinMaxTableHandler newHandler = handler.startMinMaxTable();
final BaseMinMaxTableParser parser = new BaseMinMaxTableParser();
final int minMaxOffset = offset + defaultMinMaxOffset;
parser.parse(input, minMaxOffset, newHandler);
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseTableParser.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseTableParser.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -28,8 +28,8 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontParser;
+import org.foray.fontParse.ttfHandler.BaseAxisTableHandler;
import org.foray.fontParse.ttfHandler.BaseTableHandler;
import java.io.IOException;
@@ -38,12 +38,11 @@
* Parses a TTF BASE table.
* @see org.foray.font.ttf.table.BaseTable
*/
-public class BaseTableParser extends FontParser {
+public class BaseTableParser extends FontParser<BaseTableHandler> {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final BaseTableHandler handler)
throws IOException {
- final BaseTableHandler handler = (BaseTableHandler) genericHandler;
input.seek(offset);
final int majorVersion = input.read_uint16(); // 2 bytes, total 2
@@ -69,7 +68,7 @@
// ********** Subtables **********
if (horizAxisOffset > 0) {
- final FontContentHandler newHandler = handler.startTableHorizAxis();
+ final BaseAxisTableHandler newHandler = handler.startTableHorizAxis();
final BaseAxisTableParser parser = new BaseAxisTableParser();
final int axisOffset = offset + horizAxisOffset;
parser.parse(input, axisOffset, newHandler);
@@ -76,7 +75,7 @@
}
if (vertAxisOffset > 0) {
- final FontContentHandler newHandler = handler.startTableVertAxis();
+ final BaseAxisTableHandler newHandler = handler.startTableVertAxis();
final BaseAxisTableParser parser = new BaseAxisTableParser();
final int axisOffset = offset + vertAxisOffset;
parser.parse(input, axisOffset, newHandler);
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseValuesTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseValuesTableParser.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseValuesTableParser.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -28,8 +28,8 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontParser;
+import org.foray.fontParse.ttfHandler.BaseCoordTableHandler;
import org.foray.fontParse.ttfHandler.BaseValuesTableHandler;
import java.io.IOException;
@@ -37,12 +37,11 @@
/**
* Parses a TTF BASE table, Values Subtable.
*/
-public class BaseValuesTableParser extends FontParser {
+public class BaseValuesTableParser extends FontParser<BaseValuesTableHandler> {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final BaseValuesTableHandler handler)
throws IOException {
- final BaseValuesTableHandler handler = (BaseValuesTableHandler) genericHandler;
input.seek(offset);
handler.defaultBaselineIndex(input.read_uint16()); // 2 bytes, total 2
@@ -53,7 +52,7 @@
final short baseCoordOffset = input.read_Offset16();
handler.baseCoordOffset(baseCoordOffset);
- final FontContentHandler newHandler = handler.startCoordTable();
+ final BaseCoordTableHandler newHandler = handler.startCoordTable();
final BaseCoordTableParser parser = new BaseCoordTableParser();
final int coordOffset = offset + baseCoordOffset;
parser.parse(input, coordOffset, newHandler);
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/DeviceTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/DeviceTableParser.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/DeviceTableParser.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -28,8 +28,8 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontParser;
+import org.foray.fontParse.ttfHandler.DeviceTableHandler;
import java.io.IOException;
@@ -36,10 +36,10 @@
/**
* Parses a TTF Device table.
*/
-public class DeviceTableParser extends FontParser {
+public class DeviceTableParser extends FontParser<DeviceTableHandler> {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler consumer)
+ public void parse(final TtfRandomAccessInput input, final int offset, final DeviceTableHandler handler)
throws IOException {
// TODO Auto-generated method stub
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/HeadTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/HeadTableParser.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/HeadTableParser.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -28,7 +28,6 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontParser;
import org.foray.fontParse.ttfHandler.HeadTableHandler;
@@ -38,12 +37,11 @@
* Parses a TTF HEAD table.
* @see org.foray.font.ttf.table.HeadTable
*/
-public class HeadTableParser extends FontParser {
+public class HeadTableParser extends FontParser<HeadTableHandler> {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final HeadTableHandler handler)
throws IOException {
- final HeadTableHandler handler = (HeadTableHandler) genericHandler;
input.seek(offset);
final short majorVersion = input.read_uint16(); // 2 bytes, total 2
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -28,7 +28,6 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontFormat;
import org.foray.fontParse.FontParser;
import org.foray.fontParse.ttfHandler.Os2TableHandler;
@@ -41,15 +40,14 @@
* Parses a TTF OS/2 table.
* @see org.foray.font.ttf.table.Os2Table
*/
-public class Os2TableParser extends FontParser {
+public class Os2TableParser extends FontParser<Os2TableHandler> {
/** The number of Panose fields. */
public static final byte QTY_PANOSE_FIELDS = 10;
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final Os2TableHandler handler)
throws IOException {
- final Os2TableHandler handler = (Os2TableHandler) genericHandler;
input.seek(offset);
/* OS/2 Table, Version 0. */
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PcltTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PcltTableParser.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PcltTableParser.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -28,7 +28,6 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontParser;
import org.foray.fontParse.ttfHandler.PcltTableHandler;
@@ -38,7 +37,7 @@
* Parses a TTF PCLT table.
* @see org.foray.font.ttf.table.PcltTable
*/
-public class PcltTableParser extends FontParser {
+public class PcltTableParser extends FontParser<PcltTableHandler> {
/** The size, in bytes, of the "typeface" field. */
public static final byte TYPEFACE_CHARS = 16;
@@ -50,9 +49,8 @@
public static final byte FILE_NAME_CHARS = 6;
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final PcltTableHandler handler)
throws IOException {
- final PcltTableHandler handler = (PcltTableHandler) genericHandler;
input.seek(offset);
final int majorVersion = input.read_uint16();
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -28,7 +28,6 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontFormat;
import org.foray.fontParse.FontParser;
import org.foray.fontParse.ttfHandler.PostTableHandler;
@@ -39,7 +38,7 @@
/**
* Parses a TTF post table.
*/
-public class PostTableParser extends FontParser {
+public class PostTableParser extends FontParser<PostTableHandler> {
/** Constant indicating the beginning of the range of glyph indexes that are reserved for future use. */
public static final int FIRST_RESERVED_INDEX = 32768;
@@ -49,9 +48,8 @@
private static final int MAX_GLYPH_INDEX = 257;
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final PostTableHandler handler)
throws IOException {
- final PostTableHandler handler = (PostTableHandler) genericHandler;
input.seek(offset);
final short majorVersion = input.read_uint16(); // 2 bytes, 2 total
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/VariationIndexTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/VariationIndexTableParser.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/VariationIndexTableParser.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -28,8 +28,8 @@
package org.foray.fontParse.ttf;
-import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontParser;
+import org.foray.fontParse.ttfHandler.VariationIndexTableHandler;
import java.io.IOException;
@@ -36,10 +36,10 @@
/**
* Parses a TTF VariationIndex table.
*/
-public class VariationIndexTableParser extends FontParser {
+public class VariationIndexTableParser extends FontParser<VariationIndexTableHandler> {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler consumer)
+ public void parse(final TtfRandomAccessInput input, final int offset, final VariationIndexTableHandler handler)
throws IOException {
// TODO Auto-generated method stub
}
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseAxisTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseAxisTableHandler.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseAxisTableHandler.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -51,5 +51,5 @@
default void baseScriptTag(String value) { return; }
default void baseScriptOffset(short value) { return; }
- default FontContentHandler startScriptTable() { return this; }
+ default BaseScriptTableHandler startScriptTable() { return null; }
}
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseMinMaxTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseMinMaxTableHandler.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseMinMaxTableHandler.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -37,10 +37,10 @@
public interface BaseMinMaxTableHandler extends FontContentHandler {
default void minCoordOffset(short value) { return; }
- default FontContentHandler startMinCoordTable() { return this; }
+ default BaseCoordTableHandler startMinCoordTable() { return null; }
default void maxCoordOffset(short value) { return; }
- default FontContentHandler startMaxCoordTable() { return this; }
+ default BaseCoordTableHandler startMaxCoordTable() { return null; }
default void featMinMaxCount(short value) { return; }
@@ -47,8 +47,8 @@
default void featureTag(String value) { return; }
default void featureMinCoordOffset(short value) { return; }
- default FontContentHandler startFeatureMinCoordTable() { return this; }
+ default BaseCoordTableHandler startFeatureMinCoordTable() { return null; }
default void featureMaxCoordOffset(short value) { return; }
- default FontContentHandler startFeatureMaxCoordTable() { return this; }
+ default BaseCoordTableHandler startFeatureMaxCoordTable() { return null; }
}
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseScriptTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseScriptTableHandler.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseScriptTableHandler.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -42,7 +42,7 @@
default void baseLangSysTag(String value) { return; }
default void minMaxOffset(short value) { return; }
- default FontContentHandler startMinMaxTable() { return this; }
+ default BaseMinMaxTableHandler startMinMaxTable() { return null; }
- default FontContentHandler startValuesTable() { return null; }
+ default BaseValuesTableHandler startValuesTable() { return null; }
}
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseTableHandler.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseTableHandler.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -51,6 +51,6 @@
// ********** Subtables **********
- default FontContentHandler startTableHorizAxis() { return this; }
- default FontContentHandler startTableVertAxis() { return this; }
+ default BaseAxisTableHandler startTableHorizAxis() { return null; }
+ default BaseAxisTableHandler startTableVertAxis() { return null; }
}
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseValuesTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseValuesTableHandler.java 2025-04-25 01:26:38 UTC (rev 13499)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseValuesTableHandler.java 2025-04-25 02:00:57 UTC (rev 13500)
@@ -39,5 +39,5 @@
default void defaultBaselineIndex(short value) { return; }
default void baseCoordCount(short value) { return; }
default void baseCoordOffset(short value) { return; }
- default FontContentHandler startCoordTable() { return null; }
+ default BaseCoordTableHandler startCoordTable() { return null; }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-04-25 01:26:57
|
Revision: 13499
http://sourceforge.net/p/foray/code/13499
Author: victormote
Date: 2025-04-25 01:26:38 +0000 (Fri, 25 Apr 2025)
Log Message:
-----------
Include the handler class in the generic type.
Modified Paths:
--------------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TtfContentHandler.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/DeviceTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/VariationIndexTable.java
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-24 22:28:57 UTC (rev 13498)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-25 01:26:38 UTC (rev 13499)
@@ -66,6 +66,7 @@
import org.foray.fontParse.ttf.PcltTableParser;
import org.foray.fontParse.ttf.PostTableParser;
import org.foray.fontParse.ttf.TtfRandomAccessInput;
+import org.foray.fontParse.ttfHandler.Os2TableHandler;
import org.foray.primitive.BitUtils;
import org.foray.primitive.sequence.ShortArrayBuilder;
@@ -196,7 +197,7 @@
/* Read the Font Header first. */
TtfOffsetTableRecord dirEntry = ttfTableDir.getTableDirectoryEntry("head");
{
- final TtfContentHandler<?> contentHandler = HeadTable.createContentHandler();
+ final TtfContentHandler<?, ?> contentHandler = HeadTable.createContentHandler();
final FontParser parser = new HeadTableParser();
parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
font.headTable = (HeadTable) contentHandler.getTable();
@@ -230,7 +231,7 @@
dirEntry = ttfTableDir.getTableDirectoryEntry("post");
{
- final TtfContentHandler<?> contentHandler = PostTable.createContentHandler();
+ final TtfContentHandler<?, ?> contentHandler = PostTable.createContentHandler();
final PostTableParser parser = new PostTableParser();
parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
font.postTable = (PostTable) contentHandler.getTable();
@@ -239,7 +240,7 @@
dirEntry = ttfTableDir.getTableDirectoryEntry("OS/2");
{
- final TtfContentHandler<Os2Table> contentHandler = Os2Table.createContentHandler();
+ final TtfContentHandler<Os2Table, Os2TableHandler> contentHandler = Os2Table.createContentHandler();
final Os2TableParser parser = new Os2TableParser();
parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
font.os2Table = (Os2Table) contentHandler.getTable();
@@ -302,7 +303,7 @@
dirEntry = ttfTableDir.getTableDirectoryEntry("BASE");
if (dirEntry != null) {
- final TtfContentHandler<?> contentHandler = BaseTable.createContentHandler();
+ final TtfContentHandler<?, ?> contentHandler = BaseTable.createContentHandler();
final BaseTableParser parser = new BaseTableParser();
parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
font.baseTable = (BaseTable) contentHandler.getTable();
@@ -337,7 +338,7 @@
dirEntry = ttfTableDir.getTableDirectoryEntry("PCLT");
if (dirEntry != null) {
- final TtfContentHandler<?> contentHandler = PcltTable.createContentHandler();
+ final TtfContentHandler<?, ?> contentHandler = PcltTable.createContentHandler();
final PcltTableParser parser = new PcltTableParser();
parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
font.pcltTable = (PcltTable) contentHandler.getTable();
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TtfContentHandler.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TtfContentHandler.java 2025-04-24 22:28:57 UTC (rev 13498)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TtfContentHandler.java 2025-04-25 01:26:38 UTC (rev 13499)
@@ -33,14 +33,15 @@
/**
* Wrapper for a table and a related handler.
* @param <T> The Table class which this content handler class serves.
+ * @param <H> The content handler class.
*/
-public class TtfContentHandler<T extends RoTable> {
+public class TtfContentHandler<T extends RoTable, H extends FontContentHandler> {
/** The client table being built from the parser results. */
private T table;
/** The handler. */
- private FontContentHandler handler;
+ private H handler;
/**
* Constructor.
@@ -47,7 +48,7 @@
* @param table The client being built from the parser results.
* @param handler The handler.
*/
- public TtfContentHandler(final T table, final FontContentHandler handler) {
+ public TtfContentHandler(final T table, final H handler) {
this.table = table;
this.handler = handler;
}
@@ -64,7 +65,7 @@
* Returns the handler.
* @return The handler.
*/
- public FontContentHandler getHandler() {
+ public H getHandler() {
return this.handler;
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java 2025-04-24 22:28:57 UTC (rev 13498)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java 2025-04-25 01:26:38 UTC (rev 13499)
@@ -32,6 +32,7 @@
import org.foray.font.ttf.TtfContentHandler;
import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.ttfHandler.BaseAxisTableHandler;
+import org.foray.fontParse.ttfHandler.BaseScriptTableHandler;
import java.util.ArrayList;
import java.util.List;
@@ -58,7 +59,8 @@
@Override
public FontContentHandler startScriptTable() {
- final TtfContentHandler<BaseScriptTable> handler = BaseScriptTable.createContentHandler();
+ final TtfContentHandler<BaseScriptTable, BaseScriptTableHandler> handler =
+ BaseScriptTable.createContentHandler();
this.table.scriptTables.add(handler.getTable());
return handler.getHandler();
}
@@ -99,10 +101,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<BaseAxisTable> createContentHandler() {
+ public static TtfContentHandler<BaseAxisTable, BaseAxisTableHandler> createContentHandler() {
final BaseAxisTable table = new BaseAxisTable();
final BaseAxisTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<BaseAxisTable>(table, handler);
+ return new TtfContentHandler<BaseAxisTable, BaseAxisTableHandler>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java 2025-04-24 22:28:57 UTC (rev 13498)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java 2025-04-25 01:26:38 UTC (rev 13499)
@@ -96,10 +96,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<BaseCoordTable> createContentHandler() {
+ public static TtfContentHandler<BaseCoordTable, BaseCoordTableHandler> createContentHandler() {
final BaseCoordTable table = new BaseCoordTable();
final BaseCoordTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<BaseCoordTable>(table, handler);
+ return new TtfContentHandler<BaseCoordTable, BaseCoordTableHandler>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java 2025-04-24 22:28:57 UTC (rev 13498)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java 2025-04-25 01:26:38 UTC (rev 13499)
@@ -64,10 +64,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<BaseMinMaxTable> createContentHandler() {
+ public static TtfContentHandler<BaseMinMaxTable, BaseMinMaxTableHandler> createContentHandler() {
final BaseMinMaxTable table = new BaseMinMaxTable();
final BaseMinMaxTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<BaseMinMaxTable>(table, handler);
+ return new TtfContentHandler<BaseMinMaxTable, BaseMinMaxTableHandler>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java 2025-04-24 22:28:57 UTC (rev 13498)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java 2025-04-25 01:26:38 UTC (rev 13499)
@@ -31,7 +31,9 @@
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttfHandler.BaseMinMaxTableHandler;
import org.foray.fontParse.ttfHandler.BaseScriptTableHandler;
+import org.foray.fontParse.ttfHandler.BaseValuesTableHandler;
import java.util.ArrayList;
import java.util.List;
@@ -57,7 +59,8 @@
@Override
public FontContentHandler startMinMaxTable() {
- final TtfContentHandler<BaseMinMaxTable> handler = BaseMinMaxTable.createContentHandler();
+ final TtfContentHandler<BaseMinMaxTable, BaseMinMaxTableHandler> handler =
+ BaseMinMaxTable.createContentHandler();
this.table.minMaxTables.add(handler.getTable());
return handler.getHandler();
}
@@ -64,7 +67,8 @@
@Override
public FontContentHandler startValuesTable() {
- final TtfContentHandler<BaseValuesTable> handler = BaseValuesTable.createContentHandler();
+ final TtfContentHandler<BaseValuesTable, BaseValuesTableHandler> handler =
+ BaseValuesTable.createContentHandler();
this.table.values = handler.getTable();
return handler.getHandler();
}
@@ -98,10 +102,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<BaseScriptTable> createContentHandler() {
+ public static TtfContentHandler<BaseScriptTable, BaseScriptTableHandler> createContentHandler() {
final BaseScriptTable table = new BaseScriptTable();
final BaseScriptTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<BaseScriptTable>(table, handler);
+ return new TtfContentHandler<BaseScriptTable, BaseScriptTableHandler>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java 2025-04-24 22:28:57 UTC (rev 13498)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java 2025-04-25 01:26:38 UTC (rev 13499)
@@ -31,6 +31,7 @@
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttfHandler.BaseAxisTableHandler;
import org.foray.fontParse.ttfHandler.BaseTableHandler;
/**
@@ -55,7 +56,7 @@
@Override
public FontContentHandler startTableHorizAxis() {
- final TtfContentHandler<BaseAxisTable> handler = BaseAxisTable.createContentHandler();
+ final TtfContentHandler<BaseAxisTable, BaseAxisTableHandler> handler = BaseAxisTable.createContentHandler();
this.table.horizontal = handler.getTable();
return handler.getHandler();
}
@@ -62,7 +63,7 @@
@Override
public FontContentHandler startTableVertAxis() {
- final TtfContentHandler<BaseAxisTable> handler = BaseAxisTable.createContentHandler();
+ final TtfContentHandler<BaseAxisTable, BaseAxisTableHandler> handler = BaseAxisTable.createContentHandler();
this.table.vertical = handler.getTable();
return handler.getHandler();
}
@@ -87,10 +88,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<BaseTable> createContentHandler() {
+ public static TtfContentHandler<BaseTable, BaseTableHandler> createContentHandler() {
final BaseTable table = new BaseTable();
final BaseTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<BaseTable>(table, handler);
+ return new TtfContentHandler<BaseTable, BaseTableHandler>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java 2025-04-24 22:28:57 UTC (rev 13498)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java 2025-04-25 01:26:38 UTC (rev 13499)
@@ -31,6 +31,7 @@
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttfHandler.BaseCoordTableHandler;
import org.foray.fontParse.ttfHandler.BaseValuesTableHandler;
import java.util.ArrayList;
@@ -57,7 +58,8 @@
@Override
public FontContentHandler startCoordTable() {
- final TtfContentHandler<BaseCoordTable> handler = BaseCoordTable.createContentHandler();
+ final TtfContentHandler<BaseCoordTable, BaseCoordTableHandler> handler =
+ BaseCoordTable.createContentHandler();
this.table.coordTables.add(handler.getTable());
return handler.getHandler();
}
@@ -83,10 +85,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<BaseValuesTable> createContentHandler() {
+ public static TtfContentHandler<BaseValuesTable, BaseValuesTableHandler> createContentHandler() {
final BaseValuesTable table = new BaseValuesTable();
final BaseValuesTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<BaseValuesTable>(table, handler);
+ return new TtfContentHandler<BaseValuesTable, BaseValuesTableHandler>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/DeviceTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/DeviceTable.java 2025-04-24 22:28:57 UTC (rev 13498)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/DeviceTable.java 2025-04-25 01:26:38 UTC (rev 13499)
@@ -60,10 +60,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<DeviceTable> createContentHandler() {
+ public static TtfContentHandler<DeviceTable, DeviceTableHandler> createContentHandler() {
final DeviceTable table = new DeviceTable();
final DeviceTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<DeviceTable>(table, handler);
+ return new TtfContentHandler<DeviceTable, DeviceTableHandler>(table, handler);
}
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java 2025-04-24 22:28:57 UTC (rev 13498)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java 2025-04-25 01:26:38 UTC (rev 13499)
@@ -117,10 +117,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<HeadTable> createContentHandler() {
+ public static TtfContentHandler<HeadTable, HeadTableHandler> createContentHandler() {
final HeadTable table = new HeadTable();
final HeadTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<HeadTable>(table, handler);
+ return new TtfContentHandler<HeadTable, HeadTableHandler>(table, handler);
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java 2025-04-24 22:28:57 UTC (rev 13498)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java 2025-04-25 01:26:38 UTC (rev 13499)
@@ -136,10 +136,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<Os2Table> createContentHandler() {
+ public static TtfContentHandler<Os2Table, Os2TableHandler> createContentHandler() {
final Os2Table table = new Os2Table();
final Os2TableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<Os2Table>(table, handler);
+ return new TtfContentHandler<Os2Table, Os2TableHandler>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java 2025-04-24 22:28:57 UTC (rev 13498)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java 2025-04-25 01:26:38 UTC (rev 13499)
@@ -90,10 +90,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<PcltTable> createContentHandler() {
+ public static TtfContentHandler<PcltTable, PcltTableHandler> createContentHandler() {
final PcltTable table = new PcltTable();
final PcltTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<PcltTable>(table, handler);
+ return new TtfContentHandler<PcltTable, PcltTableHandler>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java 2025-04-24 22:28:57 UTC (rev 13498)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java 2025-04-25 01:26:38 UTC (rev 13499)
@@ -114,10 +114,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<PostTable> createContentHandler() {
+ public static TtfContentHandler<PostTable, PostTableHandler> createContentHandler() {
final PostTable table = new PostTable();
final PostTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<PostTable>(table, handler);
+ return new TtfContentHandler<PostTable, PostTableHandler>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/VariationIndexTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/VariationIndexTable.java 2025-04-24 22:28:57 UTC (rev 13498)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/VariationIndexTable.java 2025-04-25 01:26:38 UTC (rev 13499)
@@ -60,10 +60,10 @@
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
*/
- public static TtfContentHandler<VariationIndexTable> createContentHandler() {
+ public static TtfContentHandler<VariationIndexTable, VariationIndexTableHandler> createContentHandler() {
final VariationIndexTable table = new VariationIndexTable();
final VariationIndexTableHandler handler = table.new ContentHandler(table);
- return new TtfContentHandler<VariationIndexTable>(table, handler);
+ return new TtfContentHandler<VariationIndexTable, VariationIndexTableHandler>(table, handler);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-04-24 22:29:15
|
Revision: 13498
http://sourceforge.net/p/foray/code/13498
Author: victormote
Date: 2025-04-24 22:28:57 +0000 (Thu, 24 Apr 2025)
Log Message:
-----------
Make TtfContentHandler a free-standing class and have it wrap instead of implement FontContentHandler.
Modified Paths:
--------------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TtfContentHandler.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/DeviceTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/VariationIndexTable.java
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-24 15:25:28 UTC (rev 13497)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-24 22:28:57 UTC (rev 13498)
@@ -66,7 +66,6 @@
import org.foray.fontParse.ttf.PcltTableParser;
import org.foray.fontParse.ttf.PostTableParser;
import org.foray.fontParse.ttf.TtfRandomAccessInput;
-import org.foray.fontParse.ttfHandler.Os2TableHandler;
import org.foray.primitive.BitUtils;
import org.foray.primitive.sequence.ShortArrayBuilder;
@@ -199,7 +198,7 @@
{
final TtfContentHandler<?> contentHandler = HeadTable.createContentHandler();
final FontParser parser = new HeadTableParser();
- parser.parse(raInput, dirEntry.getOffset(), contentHandler);
+ parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
font.headTable = (HeadTable) contentHandler.getTable();
}
@@ -233,7 +232,7 @@
{
final TtfContentHandler<?> contentHandler = PostTable.createContentHandler();
final PostTableParser parser = new PostTableParser();
- parser.parse(raInput, dirEntry.getOffset(), contentHandler);
+ parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
font.postTable = (PostTable) contentHandler.getTable();
}
@@ -242,7 +241,7 @@
{
final TtfContentHandler<Os2Table> contentHandler = Os2Table.createContentHandler();
final Os2TableParser parser = new Os2TableParser();
- parser.parse(raInput, dirEntry.getOffset(), (Os2TableHandler) contentHandler);
+ parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
font.os2Table = (Os2Table) contentHandler.getTable();
}
@@ -305,7 +304,7 @@
if (dirEntry != null) {
final TtfContentHandler<?> contentHandler = BaseTable.createContentHandler();
final BaseTableParser parser = new BaseTableParser();
- parser.parse(raInput, dirEntry.getOffset(), contentHandler);
+ parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
font.baseTable = (BaseTable) contentHandler.getTable();
}
@@ -340,7 +339,7 @@
if (dirEntry != null) {
final TtfContentHandler<?> contentHandler = PcltTable.createContentHandler();
final PcltTableParser parser = new PcltTableParser();
- parser.parse(raInput, dirEntry.getOffset(), contentHandler);
+ parser.parse(raInput, dirEntry.getOffset(), contentHandler.getHandler());
font.pcltTable = (PcltTable) contentHandler.getTable();
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TtfContentHandler.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TtfContentHandler.java 2025-04-24 15:25:28 UTC (rev 13497)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TtfContentHandler.java 2025-04-24 22:28:57 UTC (rev 13498)
@@ -31,20 +31,25 @@
import org.foray.fontParse.FontContentHandler;
/**
- * Abstract superclass for TTF content handlers of parsing output.
+ * Wrapper for a table and a related handler.
* @param <T> The Table class which this content handler class serves.
*/
-public abstract class TtfContentHandler<T extends RoTable> implements FontContentHandler {
+public class TtfContentHandler<T extends RoTable> {
/** The client table being built from the parser results. */
private T table;
+ /** The handler. */
+ private FontContentHandler handler;
+
/**
* Constructor.
* @param table The client being built from the parser results.
+ * @param handler The handler.
*/
- public TtfContentHandler(final T table) {
+ public TtfContentHandler(final T table, final FontContentHandler handler) {
this.table = table;
+ this.handler = handler;
}
/**
@@ -55,7 +60,12 @@
return table;
}
-// @Override
-// public abstract TtfContentHandler<?> startTable(String tableName);
+ /**
+ * Returns the handler.
+ * @return The handler.
+ */
+ public FontContentHandler getHandler() {
+ return this.handler;
+ }
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java 2025-04-24 15:25:28 UTC (rev 13497)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java 2025-04-24 22:28:57 UTC (rev 13498)
@@ -43,42 +43,45 @@
public class BaseAxisTable extends RoTable {
/** The handler of events from the parser. */
- private final class ContentHandler extends TtfContentHandler<BaseAxisTable> implements BaseAxisTableHandler {
+ private final class ContentHandler implements BaseAxisTableHandler {
+ /** The table instance being created. */
+ private BaseAxisTable table;
+
/**
* Constructor.
- * @param table The table instance being parsed.
+ * @param table The table instance being created.
*/
private ContentHandler(final BaseAxisTable table) {
- super(table);
+ this.table = table;
}
@Override
public FontContentHandler startScriptTable() {
final TtfContentHandler<BaseScriptTable> handler = BaseScriptTable.createContentHandler();
- getTable().scriptTables.add(handler.getTable());
- return handler;
+ this.table.scriptTables.add(handler.getTable());
+ return handler.getHandler();
}
@Override
public void baselineTag(final String value) {
- getTable().tags.add(value);
+ this.table.tags.add(value);
}
@Override
public void baseScriptTag(final String value) {
- getTable().scriptTags.add(value);
+ this.table.scriptTags.add(value);
}
@Override
public void baseTagCount(final short value) {
- getTable().tags = new ArrayList<String>(value);
+ this.table.tags = new ArrayList<String>(value);
}
@Override
public void baseScriptCount(final short value) {
- getTable().scriptTags = new ArrayList<String>(value);
- getTable().scriptTables = new ArrayList<BaseScriptTable>(value);
+ this.table.scriptTags = new ArrayList<String>(value);
+ this.table.scriptTables = new ArrayList<BaseScriptTable>(value);
}
}
@@ -98,7 +101,8 @@
*/
public static TtfContentHandler<BaseAxisTable> createContentHandler() {
final BaseAxisTable table = new BaseAxisTable();
- return table.new ContentHandler(table);
+ final BaseAxisTableHandler handler = table.new ContentHandler(table);
+ return new TtfContentHandler<BaseAxisTable>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java 2025-04-24 15:25:28 UTC (rev 13497)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java 2025-04-24 22:28:57 UTC (rev 13498)
@@ -41,34 +41,37 @@
/* TODO: Consider splitting this class into 3 or 4 classes, to save memory. */
/** The handler of events from the parser. */
- private final class ContentHandler extends TtfContentHandler<BaseCoordTable> implements BaseCoordTableHandler {
+ private final class ContentHandler implements BaseCoordTableHandler {
+ /** The table instance being created. */
+ private BaseCoordTable table;
+
/**
* Constructor.
- * @param table The client being built from the parser results.
+ * @param table The table instance being created.
*/
private ContentHandler(final BaseCoordTable table) {
- super(table);
+ this.table = table;
}
@Override
public void format(final short value) {
- getTable().format = (byte) value;
+ this.table.format = (byte) value;
}
@Override
public void coordinate(final short value) {
- getTable().coordinate = value;
+ this.table.coordinate = value;
}
@Override
public void referenceGlyph(final short value) {
- getTable().referenceGlyph = value;
+ this.table.referenceGlyph = value;
}
@Override
public void baseCoordPoint(final short value) {
- getTable().baseCoordPoint = value;
+ this.table.baseCoordPoint = value;
}
}
@@ -95,7 +98,8 @@
*/
public static TtfContentHandler<BaseCoordTable> createContentHandler() {
final BaseCoordTable table = new BaseCoordTable();
- return table.new ContentHandler(table);
+ final BaseCoordTableHandler handler = table.new ContentHandler(table);
+ return new TtfContentHandler<BaseCoordTable>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java 2025-04-24 15:25:28 UTC (rev 13497)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java 2025-04-24 22:28:57 UTC (rev 13498)
@@ -38,14 +38,18 @@
public class BaseMinMaxTable extends RoTable {
/** The handler of events from the parser. */
- private final class ContentHandler extends TtfContentHandler<BaseMinMaxTable> implements BaseMinMaxTableHandler {
+ private final class ContentHandler implements BaseMinMaxTableHandler {
+ /** The table instance being created. */
+ @SuppressWarnings("unused")
+ private BaseMinMaxTable table;
+
/**
* Constructor.
- * @param table The client being built from the parser results.
+ * @param table The table instance being created.
*/
private ContentHandler(final BaseMinMaxTable table) {
- super(table);
+ this.table = table;
}
}
@@ -62,7 +66,8 @@
*/
public static TtfContentHandler<BaseMinMaxTable> createContentHandler() {
final BaseMinMaxTable table = new BaseMinMaxTable();
- return table.new ContentHandler(table);
+ final BaseMinMaxTableHandler handler = table.new ContentHandler(table);
+ return new TtfContentHandler<BaseMinMaxTable>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java 2025-04-24 15:25:28 UTC (rev 13497)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java 2025-04-24 22:28:57 UTC (rev 13498)
@@ -42,39 +42,42 @@
public class BaseScriptTable extends RoTable {
/** The handler of events from the parser. */
- private final class ContentHandler extends TtfContentHandler<BaseScriptTable> implements BaseScriptTableHandler {
+ private final class ContentHandler implements BaseScriptTableHandler {
+ /** The table instance being created. */
+ private BaseScriptTable table;
+
/**
* Constructor.
- * @param table The client being built from the parser results.
+ * @param table The table instance being created.
*/
private ContentHandler(final BaseScriptTable table) {
- super(table);
+ this.table = table;
}
@Override
public FontContentHandler startMinMaxTable() {
final TtfContentHandler<BaseMinMaxTable> handler = BaseMinMaxTable.createContentHandler();
- getTable().minMaxTables.add(handler.getTable());
- return handler;
+ this.table.minMaxTables.add(handler.getTable());
+ return handler.getHandler();
}
@Override
public FontContentHandler startValuesTable() {
final TtfContentHandler<BaseValuesTable> handler = BaseValuesTable.createContentHandler();
- getTable().values = handler.getTable();
- return handler;
+ this.table.values = handler.getTable();
+ return handler.getHandler();
}
@Override
public void baseLangSysTag(final String value) {
- getTable().baseLangSysTags.add((String) value);
+ this.table.baseLangSysTags.add((String) value);
}
@Override
public void baseLangSysCount(final short value) {
- getTable().baseLangSysTags = new ArrayList<String>(value);
- getTable().minMaxTables = new ArrayList<BaseMinMaxTable>(value);
+ this.table.baseLangSysTags = new ArrayList<String>(value);
+ this.table.minMaxTables = new ArrayList<BaseMinMaxTable>(value);
}
}
@@ -97,7 +100,8 @@
*/
public static TtfContentHandler<BaseScriptTable> createContentHandler() {
final BaseScriptTable table = new BaseScriptTable();
- return table.new ContentHandler(table);
+ final BaseScriptTableHandler handler = table.new ContentHandler(table);
+ return new TtfContentHandler<BaseScriptTable>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java 2025-04-24 15:25:28 UTC (rev 13497)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java 2025-04-24 22:28:57 UTC (rev 13498)
@@ -40,33 +40,36 @@
public class BaseTable extends RoTable {
/** The handler of events from the parser. */
- private final class ContentHandler extends TtfContentHandler<BaseTable> implements BaseTableHandler {
+ private final class ContentHandler implements BaseTableHandler {
+ /** The table instance being created. */
+ private BaseTable table;
+
/**
* Constructor.
- * @param table The client being built from the parser results.
+ * @param table The table instance being created.
*/
private ContentHandler(final BaseTable table) {
- super(table);
+ this.table = table;
}
@Override
public FontContentHandler startTableHorizAxis() {
final TtfContentHandler<BaseAxisTable> handler = BaseAxisTable.createContentHandler();
- getTable().horizontal = handler.getTable();
- return handler;
+ this.table.horizontal = handler.getTable();
+ return handler.getHandler();
}
@Override
public FontContentHandler startTableVertAxis() {
final TtfContentHandler<BaseAxisTable> handler = BaseAxisTable.createContentHandler();
- getTable().vertical = handler.getTable();
- return handler;
+ this.table.vertical = handler.getTable();
+ return handler.getHandler();
}
@Override
public void majorVersion(final int value) {
- getTable().majorVersion = (byte) value;
+ this.table.majorVersion = (byte) value;
}
}
@@ -86,7 +89,8 @@
*/
public static TtfContentHandler<BaseTable> createContentHandler() {
final BaseTable table = new BaseTable();
- return table.new ContentHandler(table);
+ final BaseTableHandler handler = table.new ContentHandler(table);
+ return new TtfContentHandler<BaseTable>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java 2025-04-24 15:25:28 UTC (rev 13497)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java 2025-04-24 22:28:57 UTC (rev 13498)
@@ -42,31 +42,34 @@
public class BaseValuesTable extends RoTable {
/** The handler of events from the parser. */
- private final class ContentHandler extends TtfContentHandler<BaseValuesTable> implements BaseValuesTableHandler {
+ private final class ContentHandler implements BaseValuesTableHandler {
+ /** The table. */
+ private BaseValuesTable table;
+
/**
* Constructor.
* @param table The client being built from the parser results.
*/
private ContentHandler(final BaseValuesTable table) {
- super(table);
+ this.table = table;
}
@Override
public FontContentHandler startCoordTable() {
final TtfContentHandler<BaseCoordTable> handler = BaseCoordTable.createContentHandler();
- getTable().coordTables.add(handler.getTable());
- return handler;
+ this.table.coordTables.add(handler.getTable());
+ return handler.getHandler();
}
@Override
public void defaultBaselineIndex(final short value) {
- getTable().defaultBaselineIndex = value;
+ this.table.defaultBaselineIndex = value;
}
@Override
public void baseCoordCount(final short value) {
- getTable().coordTables = new ArrayList<BaseCoordTable>(value);
+ this.table.coordTables = new ArrayList<BaseCoordTable>(value);
}
}
@@ -82,7 +85,8 @@
*/
public static TtfContentHandler<BaseValuesTable> createContentHandler() {
final BaseValuesTable table = new BaseValuesTable();
- return table.new ContentHandler(table);
+ final BaseValuesTableHandler handler = table.new ContentHandler(table);
+ return new TtfContentHandler<BaseValuesTable>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/DeviceTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/DeviceTable.java 2025-04-24 15:25:28 UTC (rev 13497)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/DeviceTable.java 2025-04-24 22:28:57 UTC (rev 13498)
@@ -30,6 +30,7 @@
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
+import org.foray.fontParse.ttfHandler.DeviceTableHandler;
/**
* An OpenType Device table, listed as an "OpenType(tm) Layout Common Table Format".
@@ -39,14 +40,18 @@
public class DeviceTable extends RoTable implements AdjustmentTable {
/** The handler of events from the parser. */
- private final class ContentHandler extends TtfContentHandler<DeviceTable> {
+ private final class ContentHandler implements DeviceTableHandler {
+ /** The table instance being created. */
+ @SuppressWarnings("unused")
+ private DeviceTable table;
+
/**
* Constructor.
- * @param table The client being built from the parser results.
+ * @param table The table instance being created.
*/
private ContentHandler(final DeviceTable table) {
- super(table);
+ this.table = table;
}
}
@@ -57,7 +62,8 @@
*/
public static TtfContentHandler<DeviceTable> createContentHandler() {
final DeviceTable table = new DeviceTable();
- return table.new ContentHandler(table);
+ final DeviceTableHandler handler = table.new ContentHandler(table);
+ return new TtfContentHandler<DeviceTable>(table, handler);
}
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java 2025-04-24 15:25:28 UTC (rev 13497)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java 2025-04-24 22:28:57 UTC (rev 13498)
@@ -44,17 +44,20 @@
/**
* The handler of events from the parser.
*/
- private final class ContentHandler extends TtfContentHandler<HeadTable> implements HeadTableHandler {
+ private final class ContentHandler implements HeadTableHandler {
+ /** The table instance being created. */
+ private HeadTable table;
+
/** Components of the bounding box being built. */
private short[] boundingBoxArray = null;
/**
* Constructor.
- * @param table The client being built from the parser results.
+ * @param table The table instance being created.
*/
private ContentHandler(final HeadTable table) {
- super(table);
+ this.table = table;
}
@Override
@@ -76,17 +79,17 @@
@Override
public void yMax(final short value) {
boundingBoxArray[BoundingBox.UPPER_RIGHT_Y_INDEX] = value;
- getTable().boundingBox = new BoundingBoxShort(boundingBoxArray);
+ this.table.boundingBox = new BoundingBoxShort(boundingBoxArray);
}
@Override
public void unitsPerEm(final int value) {
- getTable().unitsPerEm = value;
+ this.table.unitsPerEm = value;
}
@Override
public void indexToLocFormat(final short value) {
- getTable().indexToLocFormat = value;
+ this.table.indexToLocFormat = value;
}
}
@@ -116,7 +119,8 @@
*/
public static TtfContentHandler<HeadTable> createContentHandler() {
final HeadTable table = new HeadTable();
- return table.new ContentHandler(table);
+ final HeadTableHandler handler = table.new ContentHandler(table);
+ return new TtfContentHandler<HeadTable>(table, handler);
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java 2025-04-24 15:25:28 UTC (rev 13497)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java 2025-04-24 22:28:57 UTC (rev 13498)
@@ -43,59 +43,62 @@
/**
* The handler of events from the parser.
*/
- private final class ContentHandler extends TtfContentHandler<Os2Table> implements Os2TableHandler {
+ private final class ContentHandler implements Os2TableHandler {
+ /** The table instance being created. */
+ private Os2Table table;
+
/**
* Constructor.
- * @param table The client being built from the parser results.
+ * @param table The table instance being created.
*/
private ContentHandler(final Os2Table table) {
- super(table);
+ this.table = table;
}
@Override
public void panose(final byte[] value) {
- getTable().panose = Panose4a.forceInstance((@Unsigned byte[]) value);
+ this.table.panose = Panose4a.forceInstance((@Unsigned byte[]) value);
}
@Override
public void version(final short value) {
- getTable().version = (byte) value;
+ this.table.version = (byte) value;
}
@Override
public void fsType(final int value) {
- getTable().fsType = value;
+ this.table.fsType = value;
}
@Override
public void yStrikeoutSize(final short value) {
- getTable().yStrikeoutSize = value;
+ this.table.yStrikeoutSize = value;
}
@Override
public void yStrikeoutPosition(final short value) {
- getTable().yStrikeoutPosition = value;
+ this.table.yStrikeoutPosition = value;
}
@Override
public void sTypoAscender(final short value) {
- getTable().sTypoAscender = value;
+ this.table.sTypoAscender = value;
}
@Override
public void sTypoDescender(final short value) {
- getTable().sTypoDescender = value;
+ this.table.sTypoDescender = value;
}
@Override
public void sxHeight(final short value) {
- getTable().sxHeight = value;
+ this.table.sxHeight = value;
}
@Override
public void sCapHeight(final short value) {
- getTable().sCapHeight = value;
+ this.table.sCapHeight = value;
}
}
@@ -135,7 +138,8 @@
*/
public static TtfContentHandler<Os2Table> createContentHandler() {
final Os2Table table = new Os2Table();
- return table.new ContentHandler(table);
+ final Os2TableHandler handler = table.new ContentHandler(table);
+ return new TtfContentHandler<Os2Table>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java 2025-04-24 15:25:28 UTC (rev 13497)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java 2025-04-24 22:28:57 UTC (rev 13498)
@@ -40,29 +40,32 @@
/**
* The handler of events from the parser.
*/
- private final class ContentHandler extends TtfContentHandler<PcltTable> implements PcltTableHandler {
+ private final class ContentHandler implements PcltTableHandler {
+ /** The table instance being created. */
+ private PcltTable table;
+
/**
* Constructor.
- * @param table The client being built from the parser results.
+ * @param table The table instance being created.
*/
private ContentHandler(final PcltTable table) {
- super(table);
+ this.table = table;
}
@Override
public void xHeight(final int value) {
- getTable().xHeight = value;
+ this.table.xHeight = value;
}
@Override
public void capHeight(final int value) {
- getTable().capHeight = value;
+ this.table.capHeight = value;
}
@Override
public void serifStyle(final short value) {
- getTable().serifStyle = value;
+ this.table.serifStyle = value;
}
}
@@ -89,7 +92,8 @@
*/
public static TtfContentHandler<PcltTable> createContentHandler() {
final PcltTable table = new PcltTable();
- return table.new ContentHandler(table);
+ final PcltTableHandler handler = table.new ContentHandler(table);
+ return new TtfContentHandler<PcltTable>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java 2025-04-24 15:25:28 UTC (rev 13497)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java 2025-04-24 22:28:57 UTC (rev 13498)
@@ -46,39 +46,42 @@
/**
* The handler of events from the parser.
*/
- private final class ContentHandler extends TtfContentHandler<PostTable> implements PostTableHandler {
+ private final class ContentHandler implements PostTableHandler {
+ /** The table instance being created. */
+ private PostTable table;
+
/**
* Constructor.
- * @param table The client being built from the parser results.
+ * @param table The table instance being created.
*/
private ContentHandler(final PostTable table) {
- super(table);
+ this.table = table;
}
@Override
public void italicAngle(final BigDecimal value) {
- getTable().italicAngle = value;
+ this.table.italicAngle = value;
}
@Override
public void majorVersion(final short value) {
- getTable().majorVersion = value;
+ this.table.majorVersion = value;
}
@Override
public void underlinePosition(final short value) {
- getTable().underlinePosition = value;
+ this.table.underlinePosition = value;
}
@Override
public void underlineThickness(final short value) {
- getTable().underlineThickness = value;
+ this.table.underlineThickness = value;
}
@Override
public void isFixedPitch(final int value) {
- getTable().isFixedPitch = value;
+ this.table.isFixedPitch = value;
}
}
@@ -113,7 +116,8 @@
*/
public static TtfContentHandler<PostTable> createContentHandler() {
final PostTable table = new PostTable();
- return table.new ContentHandler(table);
+ final PostTableHandler handler = table.new ContentHandler(table);
+ return new TtfContentHandler<PostTable>(table, handler);
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/VariationIndexTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/VariationIndexTable.java 2025-04-24 15:25:28 UTC (rev 13497)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/VariationIndexTable.java 2025-04-24 22:28:57 UTC (rev 13498)
@@ -30,6 +30,7 @@
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
+import org.foray.fontParse.ttfHandler.VariationIndexTableHandler;
/**
* An OpenType Device table, listed as an "OpenType(tm) Layout Common Table Format".
@@ -39,14 +40,18 @@
public class VariationIndexTable extends RoTable implements AdjustmentTable {
/** The handler of events from the parser. */
- private final class ContentHandler extends TtfContentHandler<VariationIndexTable> {
+ private final class ContentHandler implements VariationIndexTableHandler {
+ /** The table instance being created. */
+ @SuppressWarnings("unused")
+ private VariationIndexTable table;
+
/**
* Constructor.
- * @param table The client being built from the parser results.
+ * @param table The table instance being created.
*/
private ContentHandler(final VariationIndexTable table) {
- super(table);
+ this.table = table;
}
}
@@ -57,7 +62,8 @@
*/
public static TtfContentHandler<VariationIndexTable> createContentHandler() {
final VariationIndexTable table = new VariationIndexTable();
- return table.new ContentHandler(table);
+ final VariationIndexTableHandler handler = table.new ContentHandler(table);
+ return new TtfContentHandler<VariationIndexTable>(table, handler);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-04-24 15:25:46
|
Revision: 13497
http://sourceforge.net/p/foray/code/13497
Author: victormote
Date: 2025-04-24 15:25:28 +0000 (Thu, 24 Apr 2025)
Log Message:
-----------
Rough-in some Parser and Handler classes.
Added Paths:
-----------
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/DeviceTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/VariationIndexTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/DeviceTableHandler.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/VariationIndexTableHandler.java
Added: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/DeviceTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/DeviceTableParser.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/DeviceTableParser.java 2025-04-24 15:25:28 UTC (rev 13497)
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.fontParse.ttf;
+
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.FontParser;
+
+import java.io.IOException;
+
+/**
+ * Parses a TTF Device table.
+ */
+public class DeviceTableParser extends FontParser {
+
+ @Override
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler consumer)
+ throws IOException {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Property changes on: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/DeviceTableParser.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Added: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/VariationIndexTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/VariationIndexTableParser.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/VariationIndexTableParser.java 2025-04-24 15:25:28 UTC (rev 13497)
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.fontParse.ttf;
+
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.FontParser;
+
+import java.io.IOException;
+
+/**
+ * Parses a TTF VariationIndex table.
+ */
+public class VariationIndexTableParser extends FontParser {
+
+ @Override
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler consumer)
+ throws IOException {
+ // TODO Auto-generated method stub
+ }
+
+}
Property changes on: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/VariationIndexTableParser.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Added: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/DeviceTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/DeviceTableHandler.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/DeviceTableHandler.java 2025-04-24 15:25:28 UTC (rev 13497)
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.fontParse.ttfHandler;
+
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttf.DeviceTableParser;
+
+/**
+ * Implementations catch and handle the output from {@link DeviceTableParser}.
+ */
+public interface DeviceTableHandler extends FontContentHandler {
+
+}
Property changes on: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/DeviceTableHandler.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Added: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/VariationIndexTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/VariationIndexTableHandler.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/VariationIndexTableHandler.java 2025-04-24 15:25:28 UTC (rev 13497)
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.fontParse.ttfHandler;
+
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttf.VariationIndexTableParser;
+
+/**
+ * Implementations catch and handle the output from {@link VariationIndexTableParser}.
+ */
+public interface VariationIndexTableHandler extends FontContentHandler {
+
+}
Property changes on: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/VariationIndexTableHandler.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-04-24 12:44:30
|
Revision: 13496
http://sourceforge.net/p/foray/code/13496
Author: victormote
Date: 2025-04-24 12:44:09 +0000 (Thu, 24 Apr 2025)
Log Message:
-----------
Remove all methods from FontContentHandler, making it a marker interface.
Modified Paths:
--------------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/DeviceTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/VariationIndexTable.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontContentHandler.java
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/DeviceTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/DeviceTable.java 2025-04-24 12:40:32 UTC (rev 13495)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/DeviceTable.java 2025-04-24 12:44:09 UTC (rev 13496)
@@ -28,7 +28,6 @@
package org.foray.font.ttf.table;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
@@ -50,19 +49,6 @@
super(table);
}
- @Override
- public TtfContentHandler<?> startTable(final String tableName) {
- return null;
- }
-
- @Override
- public void objectField(final String fieldName, final Object value) {
- }
-
- @Override
- public void primitiveField(final String fieldName, final PrimitiveFerry value) {
- }
-
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/VariationIndexTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/VariationIndexTable.java 2025-04-24 12:40:32 UTC (rev 13495)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/VariationIndexTable.java 2025-04-24 12:44:09 UTC (rev 13496)
@@ -28,7 +28,6 @@
package org.foray.font.ttf.table;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
@@ -50,19 +49,6 @@
super(table);
}
- @Override
- public TtfContentHandler<?> startTable(final String tableName) {
- return null;
- }
-
- @Override
- public void objectField(final String fieldName, final Object value) {
- }
-
- @Override
- public void primitiveField(final String fieldName, final PrimitiveFerry value) {
- }
-
}
/**
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontContentHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontContentHandler.java 2025-04-24 12:40:32 UTC (rev 13495)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontContentHandler.java 2025-04-24 12:44:09 UTC (rev 13496)
@@ -28,8 +28,6 @@
package org.foray.fontParse;
-import org.foray.common.primitive.PrimitiveFerry;
-
/**
* Implementations receive events from a {@link FontParser}.
* Analogous to the {@link org.xml.sax.ContentHandler SAX ContentHandler}.
@@ -36,31 +34,4 @@
*/
public interface FontContentHandler {
- /**
- * Parsing of table is beginning.
- * @param tableName The context-sensitive name of the table about to be parsed.
- * @return The content handler to be used for parsing the table being started.
- */
- default FontContentHandler startTable(String tableName) {
- return this;
- }
-
- /**
- * An Object field has been parsed.
- * @param fieldName The name of the field parsed.
- * @param value The parsed value.
- */
- default void objectField(String fieldName, Object value) {
- return;
- }
-
- /**
- * An primitive field has been parsed.
- * @param fieldName The name of the field parsed.
- * @param value The parsed value.
- */
- default void primitiveField(String fieldName, PrimitiveFerry value) {
- return;
- }
-
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-04-24 12:40:54
|
Revision: 13495
http://sourceforge.net/p/foray/code/13495
Author: victormote
Date: 2025-04-24 12:40:32 +0000 (Thu, 24 Apr 2025)
Log Message:
-----------
Move more parsing output to type-specific handlers.
Modified Paths:
--------------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseAxisTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseCoordTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseMinMaxTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseScriptTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseValuesTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseAxisTableHandler.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseScriptTableHandler.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseValuesTableHandler.java
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java 2025-04-24 11:17:33 UTC (rev 13494)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseAxisTable.java 2025-04-24 12:40:32 UTC (rev 13495)
@@ -28,10 +28,10 @@
package org.foray.font.ttf.table;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttfHandler.BaseAxisTableHandler;
import java.util.ArrayList;
import java.util.List;
@@ -43,7 +43,7 @@
public class BaseAxisTable extends RoTable {
/** The handler of events from the parser. */
- private final class ContentHandler extends TtfContentHandler<BaseAxisTable> {
+ private final class ContentHandler extends TtfContentHandler<BaseAxisTable> implements BaseAxisTableHandler {
/**
* Constructor.
@@ -54,37 +54,33 @@
}
@Override
- public FontContentHandler startTable(final String tableName) {
- switch (tableName) {
- case "script": {
- final TtfContentHandler<BaseScriptTable> handler = BaseScriptTable.createContentHandler();
- getTable().scriptTables.add(handler.getTable());
- return handler;
- }
- default: return null;
- }
+ public FontContentHandler startScriptTable() {
+ final TtfContentHandler<BaseScriptTable> handler = BaseScriptTable.createContentHandler();
+ getTable().scriptTables.add(handler.getTable());
+ return handler;
}
@Override
- public void objectField(final String fieldName, final Object value) {
- switch (fieldName) {
- case "baselineTag": getTable().tags.add((String) value); break;
- case "baseScriptTag": getTable().scriptTags.add((String) value); break;
- }
+ public void baselineTag(final String value) {
+ getTable().tags.add(value);
}
@Override
- public void primitiveField(final String fieldName, final PrimitiveFerry value) {
- switch (fieldName) {
- case "baseTagCount": getTable().tags = new ArrayList<String>(value.getShort()); break;
- case "baseScriptCount": {
- getTable().scriptTags = new ArrayList<String>(value.getShort());
- getTable().scriptTables = new ArrayList<BaseScriptTable>(value.getShort());
- break;
- }
- }
+ public void baseScriptTag(final String value) {
+ getTable().scriptTags.add(value);
}
+ @Override
+ public void baseTagCount(final short value) {
+ getTable().tags = new ArrayList<String>(value);
+ }
+
+ @Override
+ public void baseScriptCount(final short value) {
+ getTable().scriptTags = new ArrayList<String>(value);
+ getTable().scriptTables = new ArrayList<BaseScriptTable>(value);
+ }
+
}
/** The list of tags for this Axis. */
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java 2025-04-24 11:17:33 UTC (rev 13494)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java 2025-04-24 12:40:32 UTC (rev 13495)
@@ -28,9 +28,9 @@
package org.foray.font.ttf.table;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
+import org.foray.fontParse.ttfHandler.BaseCoordTableHandler;
/**
* A BASE table, BaseCoord subtable.
@@ -41,7 +41,7 @@
/* TODO: Consider splitting this class into 3 or 4 classes, to save memory. */
/** The handler of events from the parser. */
- private final class ContentHandler extends TtfContentHandler<BaseCoordTable> {
+ private final class ContentHandler extends TtfContentHandler<BaseCoordTable> implements BaseCoordTableHandler {
/**
* Constructor.
@@ -52,24 +52,25 @@
}
@Override
- public TtfContentHandler<?> startTable(final String tableName) {
- return null;
+ public void format(final short value) {
+ getTable().format = (byte) value;
}
@Override
- public void objectField(final String fieldName, final Object value) {
+ public void coordinate(final short value) {
+ getTable().coordinate = value;
}
@Override
- public void primitiveField(final String fieldName, final PrimitiveFerry value) {
- switch (fieldName) {
- case "format": getTable().format = (byte) value.getShort(); break;
- case "coordinate": getTable().coordinate = value.getShort(); break;
- case "referenceGlyph": getTable().referenceGlyph = value.getShort(); break;
- case "baseCoordPoint": getTable().baseCoordPoint = value.getShort(); break;
- }
+ public void referenceGlyph(final short value) {
+ getTable().referenceGlyph = value;
}
+ @Override
+ public void baseCoordPoint(final short value) {
+ getTable().baseCoordPoint = value;
+ }
+
}
/** (All formats) The format identifier. Should be 1, 2, or 3. */
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java 2025-04-24 11:17:33 UTC (rev 13494)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java 2025-04-24 12:40:32 UTC (rev 13495)
@@ -28,9 +28,9 @@
package org.foray.font.ttf.table;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
+import org.foray.fontParse.ttfHandler.BaseMinMaxTableHandler;
/**
* A BASE table, MinMax subtable.
@@ -38,7 +38,7 @@
public class BaseMinMaxTable extends RoTable {
/** The handler of events from the parser. */
- private final class ContentHandler extends TtfContentHandler<BaseMinMaxTable> {
+ private final class ContentHandler extends TtfContentHandler<BaseMinMaxTable> implements BaseMinMaxTableHandler {
/**
* Constructor.
@@ -48,19 +48,6 @@
super(table);
}
- @Override
- public TtfContentHandler<?> startTable(final String tableName) {
- return null;
- }
-
- @Override
- public void objectField(final String fieldName, final Object value) {
- }
-
- @Override
- public void primitiveField(final String fieldName, final PrimitiveFerry value) {
- }
-
}
/** The minimum Coord. */
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java 2025-04-24 11:17:33 UTC (rev 13494)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java 2025-04-24 12:40:32 UTC (rev 13495)
@@ -28,9 +28,10 @@
package org.foray.font.ttf.table;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttfHandler.BaseScriptTableHandler;
import java.util.ArrayList;
import java.util.List;
@@ -41,7 +42,7 @@
public class BaseScriptTable extends RoTable {
/** The handler of events from the parser. */
- private final class ContentHandler extends TtfContentHandler<BaseScriptTable> {
+ private final class ContentHandler extends TtfContentHandler<BaseScriptTable> implements BaseScriptTableHandler {
/**
* Constructor.
@@ -52,39 +53,30 @@
}
@Override
- public TtfContentHandler<?> startTable(final String tableName) {
- switch (tableName) {
- case "minMax": {
- final TtfContentHandler<BaseMinMaxTable> handler = BaseMinMaxTable.createContentHandler();
- getTable().minMaxTables.add(handler.getTable());
- return handler;
- }
- case "values": {
- final TtfContentHandler<BaseValuesTable> handler = BaseValuesTable.createContentHandler();
- getTable().values = handler.getTable();
- return handler;
- }
- }
- return null;
+ public FontContentHandler startMinMaxTable() {
+ final TtfContentHandler<BaseMinMaxTable> handler = BaseMinMaxTable.createContentHandler();
+ getTable().minMaxTables.add(handler.getTable());
+ return handler;
}
@Override
- public void objectField(final String fieldName, final Object value) {
- switch (fieldName) {
- case "baseLangSysTag": getTable().baseLangSysTags.add((String) value);
- }
+ public FontContentHandler startValuesTable() {
+ final TtfContentHandler<BaseValuesTable> handler = BaseValuesTable.createContentHandler();
+ getTable().values = handler.getTable();
+ return handler;
}
@Override
- public void primitiveField(final String fieldName, final PrimitiveFerry value) {
- switch (fieldName) {
- case "baseLangSysCount": {
- getTable().baseLangSysTags = new ArrayList<String>(value.getShort());
- getTable().minMaxTables = new ArrayList<BaseMinMaxTable>(value.getShort());
- }
- }
+ public void baseLangSysTag(final String value) {
+ getTable().baseLangSysTags.add((String) value);
}
+ @Override
+ public void baseLangSysCount(final short value) {
+ getTable().baseLangSysTags = new ArrayList<String>(value);
+ getTable().minMaxTables = new ArrayList<BaseMinMaxTable>(value);
+ }
+
}
/** The values for this script. */
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java 2025-04-24 11:17:33 UTC (rev 13494)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseTable.java 2025-04-24 12:40:32 UTC (rev 13495)
@@ -28,9 +28,10 @@
package org.foray.font.ttf.table;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttfHandler.BaseTableHandler;
/**
* An OpenType "BASE" (Baseline Data) table.
@@ -39,7 +40,7 @@
public class BaseTable extends RoTable {
/** The handler of events from the parser. */
- private final class ContentHandler extends TtfContentHandler<BaseTable> {
+ private final class ContentHandler extends TtfContentHandler<BaseTable> implements BaseTableHandler {
/**
* Constructor.
@@ -50,31 +51,22 @@
}
@Override
- public TtfContentHandler<?> startTable(final String tableName) {
- switch (tableName) {
- case "horizAxis": {
- final TtfContentHandler<BaseAxisTable> handler = BaseAxisTable.createContentHandler();
- getTable().horizontal = handler.getTable();
- return handler;
- }
- case "vertAxis": {
- final TtfContentHandler<BaseAxisTable> handler = BaseAxisTable.createContentHandler();
- getTable().vertical = handler.getTable();
- return handler;
- }
- default: return null;
- }
+ public FontContentHandler startTableHorizAxis() {
+ final TtfContentHandler<BaseAxisTable> handler = BaseAxisTable.createContentHandler();
+ getTable().horizontal = handler.getTable();
+ return handler;
}
@Override
- public void objectField(final String fieldName, final Object value) {
+ public FontContentHandler startTableVertAxis() {
+ final TtfContentHandler<BaseAxisTable> handler = BaseAxisTable.createContentHandler();
+ getTable().vertical = handler.getTable();
+ return handler;
}
@Override
- public void primitiveField(final String fieldName, final PrimitiveFerry value) {
- switch (fieldName) {
- case "majorVersion": getTable().majorVersion = (byte) value.getInt(); break;
- }
+ public void majorVersion(final int value) {
+ getTable().majorVersion = (byte) value;
}
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java 2025-04-24 11:17:33 UTC (rev 13494)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java 2025-04-24 12:40:32 UTC (rev 13495)
@@ -28,9 +28,10 @@
package org.foray.font.ttf.table;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttfHandler.BaseValuesTableHandler;
import java.util.ArrayList;
import java.util.List;
@@ -41,7 +42,7 @@
public class BaseValuesTable extends RoTable {
/** The handler of events from the parser. */
- private final class ContentHandler extends TtfContentHandler<BaseValuesTable> {
+ private final class ContentHandler extends TtfContentHandler<BaseValuesTable> implements BaseValuesTableHandler {
/**
* Constructor.
@@ -52,29 +53,21 @@
}
@Override
- public TtfContentHandler<?> startTable(final String tableName) {
- switch (tableName) {
- case "coord": {
- final TtfContentHandler<BaseCoordTable> handler = BaseCoordTable.createContentHandler();
- getTable().coordTables.add(handler.getTable());
- return handler;
- }
- default: return null;
- }
+ public FontContentHandler startCoordTable() {
+ final TtfContentHandler<BaseCoordTable> handler = BaseCoordTable.createContentHandler();
+ getTable().coordTables.add(handler.getTable());
+ return handler;
}
@Override
- public void objectField(final String fieldName, final Object value) {
+ public void defaultBaselineIndex(final short value) {
+ getTable().defaultBaselineIndex = value;
}
@Override
- public void primitiveField(final String fieldName, final PrimitiveFerry value) {
- switch (fieldName) {
- case "defaultBaselineIndex": getTable().defaultBaselineIndex = value.getShort(); break;
- case "baseCoordCount": getTable().coordTables = new ArrayList<BaseCoordTable>(value.getShort()); break;
- }
+ public void baseCoordCount(final short value) {
+ getTable().coordTables = new ArrayList<BaseCoordTable>(value);
}
-
}
/** Index into the tags array for the default baseline for this script. */
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseAxisTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseAxisTableParser.java 2025-04-24 11:17:33 UTC (rev 13494)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseAxisTableParser.java 2025-04-24 12:40:32 UTC (rev 13495)
@@ -28,9 +28,9 @@
package org.foray.fontParse.ttf;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontParser;
+import org.foray.fontParse.ttfHandler.BaseAxisTableHandler;
import java.io.IOException;
@@ -41,15 +41,15 @@
public class BaseAxisTableParser extends FontParser {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler handler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
throws IOException {
- final PrimitiveFerry ferry = new PrimitiveFerry();
+ final BaseAxisTableHandler handler = (BaseAxisTableHandler) genericHandler;
input.seek(offset);
final short baseTagListOffset = input.read_Offset16(); // 2 bytes, total 2
- handler.primitiveField("baseTagListOffset", ferry.setShort(baseTagListOffset));
+ handler.baseTagListOffset(baseTagListOffset);
final short baseScriptListOffset = input.read_Offset16(); // 2 bytes, total 4
- handler.primitiveField("baseScriptListOffset", ferry.setShort(baseScriptListOffset));
+ handler.baseScriptListOffset(baseScriptListOffset);
// ********** Base Tag List Subtable **********
@@ -56,9 +56,9 @@
if (baseTagListOffset > 0) {
input.seek(offset + baseTagListOffset);
final short baseTagCount = input.read_uint16();
- handler.primitiveField("baseTagCount", ferry.setShort(baseTagCount));
+ handler.baseTagCount(baseTagCount);
for (int index = 0; index < baseTagCount; index ++) {
- handler.objectField("baselineTag", input.read_Tag());
+ handler.baselineTag(input.read_Tag());
}
}
@@ -65,19 +65,19 @@
// ********** Base Script List Subtable **********
input.seek(offset + baseScriptListOffset);
final short baseScriptCount = input.read_uint16();
- handler.primitiveField("baseScriptCount", ferry.setShort(baseScriptCount));
+ handler.baseScriptCount(baseScriptCount);
final short[] baseScriptOffsets = new short[baseScriptCount];
for (int index = 0; index < baseScriptCount; index ++) {
- handler.objectField("baseScriptTag", input.read_Tag());
+ handler.baseScriptTag(input.read_Tag());
final short baseScriptOffset = input.read_Offset16();
- handler.primitiveField("baseScriptOffset", ferry.setShort(baseScriptOffset));
+ handler.baseScriptOffset(baseScriptOffset);
baseScriptOffsets[index] = baseScriptOffset;
}
for (int index = 0; index < baseScriptCount; index ++) {
- final FontContentHandler newHandler = handler.startTable("script");
+ final FontContentHandler newHandler = handler.startScriptTable();
final BaseScriptTableParser parser = new BaseScriptTableParser();
final int scriptTableOffset = offset + baseScriptListOffset + baseScriptOffsets[index];
parser.parse(input, scriptTableOffset, newHandler);
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseCoordTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseCoordTableParser.java 2025-04-24 11:17:33 UTC (rev 13494)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseCoordTableParser.java 2025-04-24 12:40:32 UTC (rev 13495)
@@ -28,9 +28,9 @@
package org.foray.fontParse.ttf;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontParser;
+import org.foray.fontParse.ttfHandler.BaseCoordTableHandler;
import java.io.IOException;
@@ -50,20 +50,20 @@
public static final byte FORMAT_3_IDENTIFIER = 3;
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler handler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
throws IOException {
- final PrimitiveFerry ferry = new PrimitiveFerry();
+ final BaseCoordTableHandler handler = (BaseCoordTableHandler) genericHandler;
input.seek(offset);
/* Fields common to all formats. */
- final short format = input.read_uint16(); // 2 bytes, total 2
- handler.primitiveField("format", ferry.setShort(format));
- handler.primitiveField("coordinate", ferry.setShort(input.read_int16())); // 2 bytes, total 4
+ final short format = input.read_uint16(); // 2 bytes, total 2
+ handler.format(format);
+ handler.coordinate(input.read_int16()); // 2 bytes, total 4
/* Fields for format 2 only. */
if (format == FORMAT_2_IDENTIFIER) {
- handler.primitiveField("referenceGlyph", ferry.setShort(input.read_uint16())); // 2 bytes, total 4
- handler.primitiveField("baseCoordPoint", ferry.setShort(input.read_uint16())); // 2 bytes, total 4
+ handler.referenceGlyph(input.read_uint16()); // 2 bytes, total 4
+ handler.baseCoordPoint(input.read_uint16()); // 2 bytes, total 4
}
/* Fields for format 3 only. */
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseMinMaxTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseMinMaxTableParser.java 2025-04-24 11:17:33 UTC (rev 13494)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseMinMaxTableParser.java 2025-04-24 12:40:32 UTC (rev 13495)
@@ -28,9 +28,9 @@
package org.foray.fontParse.ttf;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontParser;
+import org.foray.fontParse.ttfHandler.BaseMinMaxTableHandler;
import java.io.IOException;
@@ -41,29 +41,29 @@
public class BaseMinMaxTableParser extends FontParser {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler handler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
throws IOException {
- final PrimitiveFerry ferry = new PrimitiveFerry();
+ final BaseMinMaxTableHandler handler = (BaseMinMaxTableHandler) genericHandler;
input.seek(offset);
final short minCoordOffset = input.read_Offset16(); // 2 bytes, total 2
- handler.primitiveField("minCoordOffset", ferry.setShort(minCoordOffset));
+ handler.minCoordOffset(minCoordOffset);
if (minCoordOffset > 0) {
- final FontContentHandler newHandler = handler.startTable("min-coord");
+ final FontContentHandler newHandler = handler.startMinCoordTable();
final BaseCoordTableParser parser = new BaseCoordTableParser();
parser.parse(input, minCoordOffset, newHandler);
}
final short maxCoordOffset = input.read_Offset16(); // 2 bytes, total 4
- handler.primitiveField("maxCoordOffset", ferry.setShort(maxCoordOffset));
+ handler.maxCoordOffset(maxCoordOffset);
if (maxCoordOffset > 0) {
- final FontContentHandler newHandler = handler.startTable("max-coord");
+ final FontContentHandler newHandler = handler.startMaxCoordTable();
final BaseCoordTableParser parser = new BaseCoordTableParser();
parser.parse(input, maxCoordOffset, newHandler);
}
final short featMinMaxCount = input.read_uint16(); // 2 bytes, total 6
- handler.primitiveField("featMinMaxCount", ferry.setShort(featMinMaxCount));
+ handler.featMinMaxCount(featMinMaxCount);
@@ -71,12 +71,12 @@
for (int index = 0; index < featMinMaxCount; index ++) {
- handler.objectField("featureTag", input.read_Tag()); // 4 bytes, total 4
+ handler.featureTag(input.read_Tag()); // 4 bytes, total 4
final short featureMinCoordOffset = input.read_Offset16(); // 2 bytes, total 6
- handler.primitiveField("featureMinCoordOffset", ferry.setShort(featureMinCoordOffset));
+ handler.featureMinCoordOffset(featureMinCoordOffset);
if (featureMinCoordOffset > 0) {
- final FontContentHandler newHandler = handler.startTable("feature-min-coord");
+ final FontContentHandler newHandler = handler.startFeatureMinCoordTable();
final BaseCoordTableParser parser = new BaseCoordTableParser();
final int newOffset = offset + featureMinCoordOffset;
parser.parse(input, newOffset, newHandler);
@@ -83,9 +83,9 @@
}
final short featureMaxCoordOffset = input.read_Offset16(); // 2 bytes, total 8
- handler.primitiveField("featureMaxCoordOffset", ferry.setShort(featureMaxCoordOffset));
+ handler.featureMaxCoordOffset(featureMaxCoordOffset);
if (featureMaxCoordOffset > 0) {
- final FontContentHandler newHandler = handler.startTable("feature-max-coord");
+ final FontContentHandler newHandler = handler.startFeatureMaxCoordTable();
final BaseCoordTableParser parser = new BaseCoordTableParser();
final int newOffset = offset + featureMaxCoordOffset;
parser.parse(input, newOffset, newHandler);
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseScriptTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseScriptTableParser.java 2025-04-24 11:17:33 UTC (rev 13494)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseScriptTableParser.java 2025-04-24 12:40:32 UTC (rev 13495)
@@ -28,9 +28,9 @@
package org.foray.fontParse.ttf;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontParser;
+import org.foray.fontParse.ttfHandler.BaseScriptTableHandler;
import java.io.IOException;
@@ -41,24 +41,24 @@
public class BaseScriptTableParser extends FontParser {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler handler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
throws IOException {
- final PrimitiveFerry ferry = new PrimitiveFerry();
+ final BaseScriptTableHandler handler = (BaseScriptTableHandler) genericHandler;
input.seek(offset);
final short baseValuesOffset = input.read_Offset16(); // 2 bytes, total 2
- handler.primitiveField("baseValuesOffset", ferry.setShort(baseValuesOffset));
+ handler.baseValuesOffset(baseValuesOffset);
final short defaultMinMaxOffset = input.read_Offset16(); // 2 bytes, total 4
- handler.primitiveField("defaultMinMaxOffset", ferry.setShort(defaultMinMaxOffset));
+ handler.defaultMinMaxOffset(defaultMinMaxOffset);
final short baseLangSysCount = input.read_uint16(); // 2 bytes, total 6
- handler.primitiveField("baseLangSysCount", ferry.setShort(baseLangSysCount));
+ handler.baseLangSysCount(baseLangSysCount);
for (int index = 0; index < baseLangSysCount; index ++) {
- handler.objectField("baseLangSysTag", input.read_Tag());
+ handler.baseLangSysTag(input.read_Tag());
final short minMaxOffset = input.read_Offset16();
- handler.primitiveField("minMaxOffset", ferry.setShort(minMaxOffset));
+ handler.minMaxOffset(minMaxOffset);
- final FontContentHandler newHandler = handler.startTable("minMax");
+ final FontContentHandler newHandler = handler.startMinMaxTable();
final BaseMinMaxTableParser parser = new BaseMinMaxTableParser();
final int newParserOffset = offset + minMaxOffset;
parser.parse(input, newParserOffset, newHandler);
@@ -65,7 +65,7 @@
}
if (baseValuesOffset != 0) {
- final FontContentHandler newHandler = handler.startTable("values");
+ final FontContentHandler newHandler = handler.startValuesTable();
final BaseValuesTableParser parser = new BaseValuesTableParser();
final int valuesOffset = offset + baseValuesOffset;
parser.parse(input, valuesOffset, newHandler);
@@ -72,7 +72,7 @@
}
if (defaultMinMaxOffset != 0) {
- final FontContentHandler newHandler = handler.startTable("minmax");
+ final FontContentHandler newHandler = handler.startMinMaxTable();
final BaseMinMaxTableParser parser = new BaseMinMaxTableParser();
final int minMaxOffset = offset + defaultMinMaxOffset;
parser.parse(input, minMaxOffset, newHandler);
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseTableParser.java 2025-04-24 11:17:33 UTC (rev 13494)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseTableParser.java 2025-04-24 12:40:32 UTC (rev 13495)
@@ -28,9 +28,9 @@
package org.foray.fontParse.ttf;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontParser;
+import org.foray.fontParse.ttfHandler.BaseTableHandler;
import java.io.IOException;
@@ -41,27 +41,27 @@
public class BaseTableParser extends FontParser {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler handler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
throws IOException {
- final PrimitiveFerry ferry = new PrimitiveFerry();
+ final BaseTableHandler handler = (BaseTableHandler) genericHandler;
input.seek(offset);
final int majorVersion = input.read_uint16(); // 2 bytes, total 2
- handler.primitiveField("majorVersion", ferry.setInt(majorVersion));
+ handler.majorVersion(majorVersion);
final int minorVersion = input.read_uint16(); // 2 bytes, total 4
- handler.primitiveField("minorVersion", ferry.setInt(minorVersion));
+ handler.minorVersion(minorVersion);
/* BASE Table Header, Version 1.0. */
final short horizAxisOffset = input.read_Offset16(); // 2 bytes, total 6
- handler.primitiveField("horizAxisOffset", ferry.setShort(horizAxisOffset));
+ handler.horizAxisOffset(horizAxisOffset);
final short vertAxisOffset = input.read_Offset16(); // 2 bytes, total 8
- handler.primitiveField("vertAxisOffset", ferry.setShort(vertAxisOffset));
+ handler.vertAxisOffset(vertAxisOffset);
/* BASE Table Header, Version 1.1. */
if (minorVersion > 0) {
final long itemVarStoreOffset = input.read_Offset32(); // 4 bytes, total 12
- handler.primitiveField("itemVarStoreOffset", ferry.setLong(itemVarStoreOffset));
+ handler.itemVarStoreOffset(itemVarStoreOffset);
}
@@ -69,7 +69,7 @@
// ********** Subtables **********
if (horizAxisOffset > 0) {
- final FontContentHandler newHandler = handler.startTable("horizAxis");
+ final FontContentHandler newHandler = handler.startTableHorizAxis();
final BaseAxisTableParser parser = new BaseAxisTableParser();
final int axisOffset = offset + horizAxisOffset;
parser.parse(input, axisOffset, newHandler);
@@ -76,7 +76,7 @@
}
if (vertAxisOffset > 0) {
- final FontContentHandler newHandler = handler.startTable("vertAxis");
+ final FontContentHandler newHandler = handler.startTableVertAxis();
final BaseAxisTableParser parser = new BaseAxisTableParser();
final int axisOffset = offset + vertAxisOffset;
parser.parse(input, axisOffset, newHandler);
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseValuesTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseValuesTableParser.java 2025-04-24 11:17:33 UTC (rev 13494)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/BaseValuesTableParser.java 2025-04-24 12:40:32 UTC (rev 13495)
@@ -28,33 +28,32 @@
package org.foray.fontParse.ttf;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontParser;
+import org.foray.fontParse.ttfHandler.BaseValuesTableHandler;
import java.io.IOException;
/**
* Parses a TTF BASE table, Values Subtable.
- * @see org.foray.font.ttf.table.BaseValuesTable
*/
public class BaseValuesTableParser extends FontParser {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler handler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
throws IOException {
- final PrimitiveFerry ferry = new PrimitiveFerry();
+ final BaseValuesTableHandler handler = (BaseValuesTableHandler) genericHandler;
input.seek(offset);
- handler.primitiveField("defaultBaselineIndex", ferry.setShort(input.read_uint16())); // 2 bytes, total 2
- final short baseCoordCount = input.read_uint16(); // 2 bytes, total 4
- handler.primitiveField("baseCoordCount", ferry.setShort(baseCoordCount));
+ handler.defaultBaselineIndex(input.read_uint16()); // 2 bytes, total 2
+ final short baseCoordCount = input.read_uint16(); // 2 bytes, total 4
+ handler.baseCoordCount(baseCoordCount);
for (int index = 0; index < baseCoordCount; index ++) {
final short baseCoordOffset = input.read_Offset16();
- handler.primitiveField("baseCoordOffset", ferry.setShort(baseCoordOffset));
+ handler.baseCoordOffset(baseCoordOffset);
- final FontContentHandler newHandler = handler.startTable("coord");
+ final FontContentHandler newHandler = handler.startCoordTable();
final BaseCoordTableParser parser = new BaseCoordTableParser();
final int coordOffset = offset + baseCoordOffset;
parser.parse(input, coordOffset, newHandler);
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseAxisTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseAxisTableHandler.java 2025-04-24 11:17:33 UTC (rev 13494)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseAxisTableHandler.java 2025-04-24 12:40:32 UTC (rev 13495)
@@ -51,5 +51,5 @@
default void baseScriptTag(String value) { return; }
default void baseScriptOffset(short value) { return; }
- default FontContentHandler startTableScript() { return this; }
+ default FontContentHandler startScriptTable() { return this; }
}
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseScriptTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseScriptTableHandler.java 2025-04-24 11:17:33 UTC (rev 13494)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseScriptTableHandler.java 2025-04-24 12:40:32 UTC (rev 13495)
@@ -42,7 +42,7 @@
default void baseLangSysTag(String value) { return; }
default void minMaxOffset(short value) { return; }
- default FontContentHandler startTableMinMax() { return this; }
+ default FontContentHandler startMinMaxTable() { return this; }
- default FontContentHandler startTableValues() { return this; }
+ default FontContentHandler startValuesTable() { return null; }
}
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseValuesTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseValuesTableHandler.java 2025-04-24 11:17:33 UTC (rev 13494)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseValuesTableHandler.java 2025-04-24 12:40:32 UTC (rev 13495)
@@ -39,5 +39,5 @@
default void defaultBaselineIndex(short value) { return; }
default void baseCoordCount(short value) { return; }
default void baseCoordOffset(short value) { return; }
- default FontContentHandler startTableCoord() { return this; }
+ default FontContentHandler startCoordTable() { return null; }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-04-24 11:17:56
|
Revision: 13494
http://sourceforge.net/p/foray/code/13494
Author: victormote
Date: 2025-04-24 11:17:33 +0000 (Thu, 24 Apr 2025)
Log Message:
-----------
Move more parsing output to type-specific handlers.
Modified Paths:
--------------
trunk/foray/foray-00-dev/ide/eclipse/launch-configurations/app-fonts-basic.launch
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/HeadTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PcltTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java
Modified: trunk/foray/foray-00-dev/ide/eclipse/launch-configurations/app-fonts-basic.launch
===================================================================
--- trunk/foray/foray-00-dev/ide/eclipse/launch-configurations/app-fonts-basic.launch 2025-04-24 10:35:56 UTC (rev 13493)
+++ trunk/foray/foray-00-dev/ide/eclipse/launch-configurations/app-fonts-basic.launch 2025-04-24 11:17:33 UTC (rev 13494)
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+ <booleanAttribute key="org.eclipse.debug.core.ATTR_FORCE_SYSTEM_CONSOLE_ENCODING" value="false"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/foray-app/src/main/java/org/foray/app/FOray.java"/>
</listAttribute>
@@ -16,7 +17,7 @@
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.foray.app.FOray"/>
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="foray-app"/>
- <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-configuration-file ${foray-config} -fo ${fo-example-path}/basic/fonts.fo -pdf ${foray-test-output-file}/fonts-basic.pdf"/>
+ <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="${build_files}-configuration-file ${foray-config} -fo ${fo-example-path}/basic/fonts.fo -pdf ${foray-test-output-file}/fonts-basic.pdf"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="foray-app"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
</launchConfiguration>
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java 2025-04-24 10:35:56 UTC (rev 13493)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java 2025-04-24 11:17:33 UTC (rev 13494)
@@ -28,9 +28,9 @@
package org.foray.font.ttf.table;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
+import org.foray.fontParse.ttfHandler.PcltTableHandler;
/**
* Class representing a TTF "PCLT" (PCL 5) table.
@@ -40,7 +40,7 @@
/**
* The handler of events from the parser.
*/
- private final class ContentHandler extends TtfContentHandler<PcltTable> {
+ private final class ContentHandler extends TtfContentHandler<PcltTable> implements PcltTableHandler {
/**
* Constructor.
@@ -51,21 +51,18 @@
}
@Override
- public TtfContentHandler<?> startTable(final String tableName) {
- return null;
+ public void xHeight(final int value) {
+ getTable().xHeight = value;
}
@Override
- public void objectField(final String fieldName, final Object value) {
+ public void capHeight(final int value) {
+ getTable().capHeight = value;
}
@Override
- public void primitiveField(final String fieldName, final PrimitiveFerry value) {
- switch (fieldName) {
- case "xHeight": getTable().xHeight = value.getInt(); break;
- case "capHeight": getTable().capHeight = value.getInt(); break;
- case "serifStyle": getTable().serifStyle = value.getShort(); break;
- }
+ public void serifStyle(final short value) {
+ getTable().serifStyle = value;
}
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java 2025-04-24 10:35:56 UTC (rev 13493)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java 2025-04-24 11:17:33 UTC (rev 13494)
@@ -28,10 +28,10 @@
package org.foray.font.ttf.table;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
import org.foray.fontParse.ttf.PostTableParser;
+import org.foray.fontParse.ttfHandler.PostTableHandler;
import org.axsl.ps.PsEncoding;
import org.axsl.ps.PsServer;
@@ -46,7 +46,7 @@
/**
* The handler of events from the parser.
*/
- private final class ContentHandler extends TtfContentHandler<PostTable> {
+ private final class ContentHandler extends TtfContentHandler<PostTable> implements PostTableHandler {
/**
* Constructor.
@@ -57,27 +57,29 @@
}
@Override
- public TtfContentHandler<?> startTable(final String tableName) {
- return null;
+ public void italicAngle(final BigDecimal value) {
+ getTable().italicAngle = value;
}
@Override
- public void objectField(final String fieldName, final Object value) {
- switch (fieldName) {
- case "italicAngle": getTable().italicAngle = (BigDecimal) value; break;
- }
+ public void majorVersion(final short value) {
+ getTable().majorVersion = value;
}
@Override
- public void primitiveField(final String fieldName, final PrimitiveFerry value) {
- switch (fieldName) {
- case "majorVersion": getTable().majorVersion = value.getShort(); break;
- case "underlinePosition": getTable().underlinePosition = value.getShort(); break;
- case "underlineThickness": getTable().underlineThickness = value.getShort(); break;
- case "isFixedPtch": getTable().isFixedPitch = value.getInt(); break;
- }
+ public void underlinePosition(final short value) {
+ getTable().underlinePosition = value;
}
+ @Override
+ public void underlineThickness(final short value) {
+ getTable().underlineThickness = value;
+ }
+
+ @Override
+ public void isFixedPitch(final int value) {
+ getTable().isFixedPitch = value;
+ }
}
/** The major version of this table. */
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/HeadTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/HeadTableParser.java 2025-04-24 10:35:56 UTC (rev 13493)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/HeadTableParser.java 2025-04-24 11:17:33 UTC (rev 13494)
@@ -41,9 +41,9 @@
public class HeadTableParser extends FontParser {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler consumer)
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
throws IOException {
- final HeadTableHandler handler = (HeadTableHandler) consumer;
+ final HeadTableHandler handler = (HeadTableHandler) genericHandler;
input.seek(offset);
final short majorVersion = input.read_uint16(); // 2 bytes, total 2
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PcltTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PcltTableParser.java 2025-04-24 10:35:56 UTC (rev 13493)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PcltTableParser.java 2025-04-24 11:17:33 UTC (rev 13494)
@@ -28,9 +28,9 @@
package org.foray.fontParse.ttf;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontParser;
+import org.foray.fontParse.ttfHandler.PcltTableHandler;
import java.io.IOException;
@@ -50,34 +50,34 @@
public static final byte FILE_NAME_CHARS = 6;
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler consumer)
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
throws IOException {
- final PrimitiveFerry ferry = new PrimitiveFerry();
+ final PcltTableHandler handler = (PcltTableHandler) genericHandler;
input.seek(offset);
final int majorVersion = input.read_uint16();
- consumer.primitiveField("majorVersion", ferry.setInt(majorVersion)); // 2 bytes, total 2
+ handler.majorVersion(majorVersion); // 2 bytes, total 2
/* PCLT Table, Version 1.0. */
- consumer.primitiveField("minorVersion", ferry.setInt(input.read_uint16())); // 2 bytes, total 4
- consumer.primitiveField("fontNumber", ferry.setLong(input.read_uint32())); // 4 bytes, total 8
+ handler.minorVersion(input.read_uint16()); // 2 bytes, total 4
+ handler.fontNumber(input.read_uint32()); // 4 bytes, total 8
- consumer.primitiveField("pitch", ferry.setInt(input.read_uint16())); // 2 bytes, total 10
- consumer.primitiveField("xHeight", ferry.setInt(input.read_uint16())); // 2 bytes, total 12
- consumer.primitiveField("style", ferry.setInt(input.read_uint16())); // 2 bytes, total 14
- consumer.primitiveField("typeFamily", ferry.setInt(input.read_uint16())); // 2 bytes, total 16
- consumer.primitiveField("capHeight", ferry.setInt(input.read_uint16())); // 2 bytes, total 18
- consumer.primitiveField("symbolSet", ferry.setInt(input.read_uint16())); // 2 bytes, total 20
- consumer.objectField("typeface", input.readStringASCII(TYPEFACE_CHARS));
+ handler.pitch(input.read_uint16()); // 2 bytes, total 10
+ handler.xHeight(input.read_uint16()); // 2 bytes, total 12
+ handler.style(input.read_uint16()); // 2 bytes, total 14
+ handler.typeFamily(input.read_uint16()); // 2 bytes, total 16
+ handler.capHeight(input.read_uint16()); // 2 bytes, total 18
+ handler.symbolSet(input.read_uint16()); // 2 bytes, total 20
+ handler.typeface(input.readStringASCII(TYPEFACE_CHARS));
// 16 bytes, total 36
- consumer.objectField("characterComplement", input.readStringASCII(CHARACTER_COMPLEMENT_CHARS));
+ handler.characterComplement(input.readStringASCII(CHARACTER_COMPLEMENT_CHARS));
// 8 bytes, total 44
- consumer.objectField("fileName", input.readStringASCII(FILE_NAME_CHARS));
+ handler.fileName(input.readStringASCII(FILE_NAME_CHARS));
// 6 bytes, total 50
- consumer.primitiveField("strokeWeight", ferry.setByte(input.read_int8())); // 1 bytes, total 51
- consumer.primitiveField("widthType", ferry.setByte(input.read_int8())); // 1 bytes, total 52
- consumer.primitiveField("serifStyle", ferry.setShort(input.read_uint8())); // 1 bytes, total 53
+ handler.strokeWeight(input.read_int8()); // 1 bytes, total 51
+ handler.widthType(input.read_int8()); // 1 bytes, total 52
+ handler.serifStyle(input.read_uint8()); // 1 bytes, total 53
}
}
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java 2025-04-24 10:35:56 UTC (rev 13493)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java 2025-04-24 11:17:33 UTC (rev 13494)
@@ -28,10 +28,10 @@
package org.foray.fontParse.ttf;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontFormat;
import org.foray.fontParse.FontParser;
+import org.foray.fontParse.ttfHandler.PostTableHandler;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
@@ -49,24 +49,24 @@
private static final int MAX_GLYPH_INDEX = 257;
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler handler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
throws IOException {
- final PrimitiveFerry ferry = new PrimitiveFerry();
+ final PostTableHandler handler = (PostTableHandler) genericHandler;
input.seek(offset);
- final short majorVersion = input.read_uint16(); // 2 bytes, 2 total
- handler.primitiveField("majorVersion", ferry.setShort(majorVersion));
- final short minorVersion = input.read_uint16(); // 2 bytes, 4 total
- handler.primitiveField("minorVersion", ferry.setShort(minorVersion));
+ final short majorVersion = input.read_uint16(); // 2 bytes, 2 total
+ handler.majorVersion(majorVersion);
+ final short minorVersion = input.read_uint16(); // 2 bytes, 4 total
+ handler.minorVersion(minorVersion);
- handler.objectField("italicAngle", input.read_Fixed()); // 4 bytes, 8 total
- handler.primitiveField("underlinePosition", ferry.setShort(input.read_FWORD())); // 2 bytes, 10 total
- handler.primitiveField("underlineThickness", ferry.setShort(input.read_FWORD())); // 2 bytes, 12 total
- handler.primitiveField("isFixedPitch", ferry.setInt(input.read_uint32())); // 4 bytes, 16 total
- handler.primitiveField("minMemType42", ferry.setInt(input.read_uint32())); // 4 bytes, 20 total
- handler.primitiveField("maxMemType42", ferry.setInt(input.read_uint32())); // 4 bytes, 24 total
- handler.primitiveField("minMemType1", ferry.setInt(input.read_uint32())); // 4 bytes, 28 total
- handler.primitiveField("maxMemType1", ferry.setInt(input.read_uint32())); // 4 bytes, 32 total
+ handler.italicAngle(input.read_Fixed()); // 4 bytes, 8 total
+ handler.underlinePosition(input.read_FWORD()); // 2 bytes, 10 total
+ handler.underlineThickness(input.read_FWORD()); // 2 bytes, 12 total
+ handler.isFixedPitch(input.read_uint32()); // 4 bytes, 16 total
+ handler.minMemType42(input.read_uint32()); // 4 bytes, 20 total
+ handler.maxMemType42(input.read_uint32()); // 4 bytes, 24 total
+ handler.minMemType1(input.read_uint32()); // 4 bytes, 28 total
+ handler.maxMemType1(input.read_uint32()); // 4 bytes, 32 total
@@ -76,7 +76,7 @@
break;
case FontFormat.VERSION_2:
final short numGlyphs = input.read_uint16();
- handler.primitiveField("numGlyphs", ferry.setShort(numGlyphs));
+ handler.numGlyphs(numGlyphs);
switch (minorVersion) {
case 0: {
@@ -104,14 +104,13 @@
* @param handler The consumer of the parsing.
* @throws IOException For IO errors.
*/
- private void parse2v0Glyphs(final TtfRandomAccessInput input, final int numGlyphs, final FontContentHandler handler)
+ private void parse2v0Glyphs(final TtfRandomAccessInput input, final int numGlyphs, final PostTableHandler handler)
throws IOException {
/* Glyph name indexes. */
- final PrimitiveFerry ferry = new PrimitiveFerry();
int numGlyphStrings = 0;
for (int index = 0; index < numGlyphs; index ++) {
final short glyphIndex = input.read_uint16();
- handler.primitiveField("glyphNameIndex", ferry.setShort(glyphIndex));
+ handler.glyphNameIndex(glyphIndex);
if (glyphIndex > MAX_GLYPH_INDEX) {
numGlyphStrings++;
}
@@ -120,8 +119,7 @@
/* Glyph names. */
for (int index = 0; index < numGlyphStrings; index ++) {
final int length = input.read_uint8();
- final String glyphName = input.readString(length, StandardCharsets.US_ASCII);
- handler.objectField("glyphName", glyphName);
+ handler.glyphName(input.readString(length, StandardCharsets.US_ASCII));
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-04-24 10:36:14
|
Revision: 13493
http://sourceforge.net/p/foray/code/13493
Author: victormote
Date: 2025-04-24 10:35:56 +0000 (Thu, 24 Apr 2025)
Log Message:
-----------
Add more type-specific parser handler classes.
Added Paths:
-----------
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseAxisTableHandler.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseCoordTableHandler.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseMinMaxTableHandler.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseScriptTableHandler.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseTableHandler.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseValuesTableHandler.java
Added: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseAxisTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseAxisTableHandler.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseAxisTableHandler.java 2025-04-24 10:35:56 UTC (rev 13493)
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.fontParse.ttfHandler;
+
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttf.BaseAxisTableParser;
+
+/**
+ * Implementations catch and handle the output from {@link BaseAxisTableParser}.
+ */
+public interface BaseAxisTableHandler extends FontContentHandler {
+
+ default void baseTagListOffset(short value) { return; }
+ default void baseScriptListOffset(short value) { return; }
+
+
+ // ********** Base Tag List Subtable **********
+ default void baseTagCount(short value) { return; }
+ default void baselineTag(String value) { return; }
+
+ // ********** Base Script List Subtable **********
+ default void baseScriptCount(short value) { return; }
+
+
+ default void baseScriptTag(String value) { return; }
+ default void baseScriptOffset(short value) { return; }
+
+ default FontContentHandler startTableScript() { return this; }
+}
Property changes on: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseAxisTableHandler.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Added: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseCoordTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseCoordTableHandler.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseCoordTableHandler.java 2025-04-24 10:35:56 UTC (rev 13493)
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.fontParse.ttfHandler;
+
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttf.BaseCoordTableParser;
+
+/**
+ * Implementations catch and handle the output from {@link BaseCoordTableParser}.
+ */
+public interface BaseCoordTableHandler extends FontContentHandler {
+
+ default void format(short value) { return; }
+ default void coordinate(short value) { return; }
+
+ default void referenceGlyph(short value) { return; }
+ default void baseCoordPoint(short value) { return; }
+
+ default FontContentHandler startDeviceTable() { return this; }
+ default FontContentHandler startVariationIndexTable() { return this; }
+}
Property changes on: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseCoordTableHandler.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Added: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseMinMaxTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseMinMaxTableHandler.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseMinMaxTableHandler.java 2025-04-24 10:35:56 UTC (rev 13493)
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.fontParse.ttfHandler;
+
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttf.BaseMinMaxTableParser;
+
+/**
+ * Implementations catch and handle the output from {@link BaseMinMaxTableParser}.
+ */
+public interface BaseMinMaxTableHandler extends FontContentHandler {
+
+ default void minCoordOffset(short value) { return; }
+ default FontContentHandler startMinCoordTable() { return this; }
+
+ default void maxCoordOffset(short value) { return; }
+ default FontContentHandler startMaxCoordTable() { return this; }
+
+ default void featMinMaxCount(short value) { return; }
+
+ default void featureTag(String value) { return; }
+
+ default void featureMinCoordOffset(short value) { return; }
+ default FontContentHandler startFeatureMinCoordTable() { return this; }
+
+ default void featureMaxCoordOffset(short value) { return; }
+ default FontContentHandler startFeatureMaxCoordTable() { return this; }
+}
Property changes on: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseMinMaxTableHandler.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Added: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseScriptTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseScriptTableHandler.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseScriptTableHandler.java 2025-04-24 10:35:56 UTC (rev 13493)
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.fontParse.ttfHandler;
+
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttf.BaseScriptTableParser;
+
+/**
+ * Implementations catch and handle the output from {@link BaseScriptTableParser}.
+ */
+public interface BaseScriptTableHandler extends FontContentHandler {
+
+ default void baseValuesOffset(short value) { return; }
+ default void defaultMinMaxOffset(short value) { return; }
+ default void baseLangSysCount(short value) { return; }
+
+ default void baseLangSysTag(String value) { return; }
+ default void minMaxOffset(short value) { return; }
+ default FontContentHandler startTableMinMax() { return this; }
+
+ default FontContentHandler startTableValues() { return this; }
+}
Property changes on: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseScriptTableHandler.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Added: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseTableHandler.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseTableHandler.java 2025-04-24 10:35:56 UTC (rev 13493)
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.fontParse.ttfHandler;
+
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttf.BaseTableParser;
+
+/**
+ * Implementations catch and handle the output from {@link BaseTableParser}.
+ */
+public interface BaseTableHandler extends FontContentHandler {
+
+ default void majorVersion(int value) { return; }
+ default void minorVersion(int value) { return; }
+
+
+ /* BASE Table Header, Version 1.0. */
+ default void horizAxisOffset(short value) { return; }
+ default void vertAxisOffset(short value) { return; }
+
+ /* BASE Table Header, Version 1.1. */
+ default void itemVarStoreOffset(long value) { return; }
+
+
+
+ // ********** Subtables **********
+
+ default FontContentHandler startTableHorizAxis() { return this; }
+ default FontContentHandler startTableVertAxis() { return this; }
+}
Property changes on: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseTableHandler.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Added: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseValuesTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseValuesTableHandler.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseValuesTableHandler.java 2025-04-24 10:35:56 UTC (rev 13493)
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.fontParse.ttfHandler;
+
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttf.BaseValuesTableParser;
+
+/**
+ * Implementations catch and handle the output from {@link BaseValuesTableParser}.
+ */
+public interface BaseValuesTableHandler extends FontContentHandler {
+
+ default void defaultBaselineIndex(short value) { return; }
+ default void baseCoordCount(short value) { return; }
+ default void baseCoordOffset(short value) { return; }
+ default FontContentHandler startTableCoord() { return this; }
+}
Property changes on: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/BaseValuesTableHandler.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-04-24 00:53:01
|
Revision: 13492
http://sourceforge.net/p/foray/code/13492
Author: victormote
Date: 2025-04-24 00:52:41 +0000 (Thu, 24 Apr 2025)
Log Message:
-----------
Move more parsing output to type-specific handlers.
Modified Paths:
--------------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/HeadTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java 2025-04-24 00:00:41 UTC (rev 13491)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java 2025-04-24 00:52:41 UTC (rev 13492)
@@ -30,9 +30,9 @@
import org.foray.common.data.BoundingBoxShort;
import org.foray.common.data.BoundingBoxUtils;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
+import org.foray.fontParse.ttfHandler.HeadTableHandler;
import org.axsl.ps.BoundingBox;
@@ -44,8 +44,11 @@
/**
* The handler of events from the parser.
*/
- private final class ContentHandler extends TtfContentHandler<HeadTable> {
+ private final class ContentHandler extends TtfContentHandler<HeadTable> implements HeadTableHandler {
+ /** Components of the bounding box being built. */
+ private short[] boundingBoxArray = null;
+
/**
* Constructor.
* @param table The client being built from the parser results.
@@ -55,29 +58,36 @@
}
@Override
- public TtfContentHandler<?> startTable(final String tableName) {
- return null;
+ public void xMin(final short value) {
+ boundingBoxArray = new short[BoundingBox.QTY_ENTRIES];
+ boundingBoxArray[BoundingBox.LOWER_LEFT_X_INDEX] = value;
}
@Override
- public void objectField(final String fieldName, final Object value) {
- switch (fieldName) {
- case "boundingBox": {
- final short[] boundingBoxArray = (short[]) value;
- getTable().boundingBox = new BoundingBoxShort(boundingBoxArray);
- break;
- }
- }
+ public void yMin(final short value) {
+ boundingBoxArray[BoundingBox.LOWER_LEFT_Y_INDEX] = value;
}
@Override
- public void primitiveField(final String fieldName, final PrimitiveFerry value) {
- switch (fieldName) {
- case "unitsPerEm": getTable().unitsPerEm = value.getInt(); break;
- case "indexToLocFormat": getTable().indexToLocFormat = value.getShort(); break;
- }
+ public void xMax(final short value) {
+ boundingBoxArray[BoundingBox.UPPER_RIGHT_X_INDEX] = value;
}
+ @Override
+ public void yMax(final short value) {
+ boundingBoxArray[BoundingBox.UPPER_RIGHT_Y_INDEX] = value;
+ getTable().boundingBox = new BoundingBoxShort(boundingBoxArray);
+ }
+
+ @Override
+ public void unitsPerEm(final int value) {
+ getTable().unitsPerEm = value;
+ }
+
+ @Override
+ public void indexToLocFormat(final short value) {
+ getTable().indexToLocFormat = value;
+ }
}
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/HeadTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/HeadTableParser.java 2025-04-24 00:00:41 UTC (rev 13491)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/HeadTableParser.java 2025-04-24 00:52:41 UTC (rev 13492)
@@ -28,9 +28,9 @@
package org.foray.fontParse.ttf;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontParser;
+import org.foray.fontParse.ttfHandler.HeadTableHandler;
import java.io.IOException;
@@ -43,39 +43,36 @@
@Override
public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler consumer)
throws IOException {
- final PrimitiveFerry ferry = new PrimitiveFerry();
+ final HeadTableHandler handler = (HeadTableHandler) consumer;
input.seek(offset);
- final int majorVersion = input.read_uint16(); // 2 bytes, total 2
- consumer.primitiveField("majorVersion", ferry.setInt(majorVersion));
+ final short majorVersion = input.read_uint16(); // 2 bytes, total 2
+ handler.majorVersion(majorVersion);
/* Head Table, Version 1.0. */
- consumer.primitiveField("minorVersion", ferry.setInt(input.read_uint16())); // 2 bytes, total 4
- consumer.objectField("fontRevision", input.read_Fixed()); // 4 bytes, total 8
- consumer.primitiveField("checksumAdjustment", ferry.setLong(input.read_uint32())); // 4 bytes, total 12
- consumer.primitiveField("magicNumber", ferry.setLong(input.read_uint32())); // 4 bytes, total 16
- consumer.primitiveField("flags", ferry.setInt(input.read_uint16())); // 2 bytes, total 18
- consumer.primitiveField("unitsPerEm", ferry.setInt(input.read_uint16())); // 2 bytes, total 20
- consumer.objectField("created", input.read_LONGDATETIME()); // 8 bytes, total 28
- consumer.objectField("modifed", input.read_LONGDATETIME()); // 8 bytes, total 36
+ handler.minorVersion(input.read_uint16()); // 2 bytes, total 4
+ handler.fontRevision(input.read_Fixed()); // 4 bytes, total 8
+ handler.checksumAdjustment(input.read_uint32()); // 4 bytes, total 12
+ handler.magicNumber(input.read_uint32()); // 4 bytes, total 16
+ handler.flags(input.read_uint16()); // 2 bytes, total 18
+ handler.unitsPerEm(input.read_uint16()); // 2 bytes, total 20
+ handler.created(input.read_LONGDATETIME()); // 8 bytes, total 28
+ handler.modifed(input.read_LONGDATETIME()); // 8 bytes, total 36
- final short xMin = input.read_int16(); // 2 bytes, total 38
- final short yMin = input.read_int16(); // 2 bytes, total 40
- final short xMax = input.read_int16(); // 2 bytes, total 42
- final short yMax = input.read_int16(); // 2 bytes, total 44
- consumer.primitiveField("xMin", ferry.setShort(xMin));
- consumer.primitiveField("yMin", ferry.setShort(yMin));
- consumer.primitiveField("xMax", ferry.setShort(xMax));
- consumer.primitiveField("yMax", ferry.setShort(yMax));
- /* In case the consumer wants the four bounding box components already assembled. */
- final short[] boundingBox = {xMin, yMin, xMax, yMax};
- consumer.objectField("boundingBox", boundingBox);
+ final short xMin = input.read_int16(); // 2 bytes, total 38
+ final short yMin = input.read_int16(); // 2 bytes, total 40
+ final short xMax = input.read_int16(); // 2 bytes, total 42
+ final short yMax = input.read_int16(); // 2 bytes, total 44
+ handler.xMin(xMin);
+ handler.yMin(yMin);
+ handler.xMax(xMax);
+ handler.yMax(yMax);
- consumer.primitiveField("macStyle", ferry.setInt(input.read_uint16())); // 2 bytes, total 46
- consumer.primitiveField("lowestRecPPEM", ferry.setInt(input.read_uint16())); // 2 bytes, total 48
- consumer.primitiveField("fontDirectionHint", ferry.setShort(input.read_int16())); // 2 bytes, total 50
- consumer.primitiveField("indexToLocFormat", ferry.setShort(input.read_int16())); // 2 bytes, total 52
- consumer.primitiveField("glyphDataFormat", ferry.setShort(input.read_int16())); // 2 bytes, total 54
+ handler.macStyle(input.read_uint16()); // 2 bytes, total 46
+ handler.lowestRecPPEM(input.read_uint16()); // 2 bytes, total 48
+ handler.fontDirectionHint(input.read_int16()); // 2 bytes, total 50
+ handler.indexToLocFormat(input.read_int16()); // 2 bytes, total 52
+ handler.glyphDataFormat(input.read_int16()); // 2 bytes, total 54
}
}
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java 2025-04-24 00:00:41 UTC (rev 13491)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java 2025-04-24 00:52:41 UTC (rev 13492)
@@ -28,7 +28,9 @@
package org.foray.fontParse.ttf;
+import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontFormat;
+import org.foray.fontParse.FontParser;
import org.foray.fontParse.ttfHandler.Os2TableHandler;
import org.checkerframework.checker.signedness.qual.Unsigned;
@@ -39,20 +41,15 @@
* Parses a TTF OS/2 table.
* @see org.foray.font.ttf.table.Os2Table
*/
-public class Os2TableParser {
+public class Os2TableParser extends FontParser {
/** The number of Panose fields. */
public static final byte QTY_PANOSE_FIELDS = 10;
- /**
- * Parses this table.
- * @param input The input.
- * @param offset The offset.
- * @param handler The handler.
- * @throws IOException For IO errors.
- */
- public void parse(final TtfRandomAccessInput input, final int offset, final Os2TableHandler handler)
+ @Override
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler genericHandler)
throws IOException {
+ final Os2TableHandler handler = (Os2TableHandler) genericHandler;
input.seek(offset);
/* OS/2 Table, Version 0. */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-04-24 00:01:06
|
Revision: 13491
http://sourceforge.net/p/foray/code/13491
Author: victormote
Date: 2025-04-24 00:00:41 +0000 (Thu, 24 Apr 2025)
Log Message:
-----------
Add more type-specific parser handler classes.
Modified Paths:
--------------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java
Added Paths:
-----------
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/HeadTableHandler.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/Os2TableHandler.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/PcltTableHandler.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/PostTableHandler.java
Removed Paths:
-------------
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/Os2TableParserHandler.java
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-23 23:18:09 UTC (rev 13490)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-24 00:00:41 UTC (rev 13491)
@@ -66,7 +66,7 @@
import org.foray.fontParse.ttf.PcltTableParser;
import org.foray.fontParse.ttf.PostTableParser;
import org.foray.fontParse.ttf.TtfRandomAccessInput;
-import org.foray.fontParse.ttfHandler.Os2TableParserHandler;
+import org.foray.fontParse.ttfHandler.Os2TableHandler;
import org.foray.primitive.BitUtils;
import org.foray.primitive.sequence.ShortArrayBuilder;
@@ -242,7 +242,7 @@
{
final TtfContentHandler<Os2Table> contentHandler = Os2Table.createContentHandler();
final Os2TableParser parser = new Os2TableParser();
- parser.parse(raInput, dirEntry.getOffset(), (Os2TableParserHandler) contentHandler);
+ parser.parse(raInput, dirEntry.getOffset(), (Os2TableHandler) contentHandler);
font.os2Table = (Os2Table) contentHandler.getTable();
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java 2025-04-23 23:18:09 UTC (rev 13490)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java 2025-04-24 00:00:41 UTC (rev 13491)
@@ -31,7 +31,7 @@
import org.foray.font.format.Panose4a;
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
-import org.foray.fontParse.ttfHandler.Os2TableParserHandler;
+import org.foray.fontParse.ttfHandler.Os2TableHandler;
import org.checkerframework.checker.signedness.qual.Unsigned;
@@ -43,7 +43,7 @@
/**
* The handler of events from the parser.
*/
- private final class ContentHandler extends TtfContentHandler<Os2Table> implements Os2TableParserHandler {
+ private final class ContentHandler extends TtfContentHandler<Os2Table> implements Os2TableHandler {
/**
* Constructor.
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java 2025-04-23 23:18:09 UTC (rev 13490)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java 2025-04-24 00:00:41 UTC (rev 13491)
@@ -29,7 +29,7 @@
package org.foray.fontParse.ttf;
import org.foray.fontParse.FontFormat;
-import org.foray.fontParse.ttfHandler.Os2TableParserHandler;
+import org.foray.fontParse.ttfHandler.Os2TableHandler;
import org.checkerframework.checker.signedness.qual.Unsigned;
@@ -51,7 +51,7 @@
* @param handler The handler.
* @throws IOException For IO errors.
*/
- public void parse(final TtfRandomAccessInput input, final int offset, final Os2TableParserHandler handler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final Os2TableHandler handler)
throws IOException {
input.seek(offset);
Added: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/HeadTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/HeadTableHandler.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/HeadTableHandler.java 2025-04-24 00:00:41 UTC (rev 13491)
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.fontParse.ttfHandler;
+
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttf.HeadTableParser;
+
+import java.math.BigDecimal;
+
+/**
+ * Implementations catch and handle the output from {@link HeadTableParser}.
+ */
+public interface HeadTableHandler extends FontContentHandler {
+
+ default void majorVersion(short value) { return; }
+
+ /* Head Table, Version 1.0. */
+ default void minorVersion(int value) { return; }
+ default void fontRevision(BigDecimal value) { return; }
+ default void checksumAdjustment(long value) { return; }
+ default void magicNumber(long value) { return; }
+ default void flags(int value) { return; }
+ default void unitsPerEm(int value) { return; }
+ default void created(long value) { return; }
+ default void modifed(long value) { return; }
+
+ default void xMin(short value) { return; }
+ default void yMin(short value) { return; }
+ default void xMax(short value) { return; }
+ default void yMax(short value) { return; }
+
+ default void macStyle(int value) { return; }
+ default void lowestRecPPEM(int value) { return; }
+ default void fontDirectionHint(short value) { return; }
+ default void indexToLocFormat(short value) { return; }
+ default void glyphDataFormat(short value) { return; }
+}
Property changes on: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/HeadTableHandler.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Copied: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/Os2TableHandler.java (from rev 13490, trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/Os2TableParserHandler.java)
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/Os2TableHandler.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/Os2TableHandler.java 2025-04-24 00:00:41 UTC (rev 13491)
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.fontParse.ttfHandler;
+
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttf.Os2TableParser;
+
+/**
+ * Implementations catch and handle the output from {@link Os2TableParser}.
+ */
+public interface Os2TableHandler extends FontContentHandler {
+
+ default void version(short version) { return; }
+
+ /* OS/2 Table, Version 0. */
+ default void xAvgCharWidth(short value) { return; }
+ default void usWeightClass(int value) { return; }
+ default void usWidthClass(int version) { return; }
+ default void fsType(int value) { return; }
+ default void ySubscriptXSize(short value) { return; }
+ default void ySubscriptYSize(short value) { return; }
+ default void ySubscriptXOffset(short value) { return; }
+ default void ySubscriptYOffset(short value) { return; }
+ default void ySuperscriptXSize(short value) { return; }
+ default void ySuperscriptYSize(short value) { return; }
+ default void ySuperscriptXOffset(short value) { return; }
+ default void ySuperscriptYOffset(short value) { return; }
+ default void yStrikeoutSize(short value) { return; }
+ default void yStrikeoutPosition(short value) { return; }
+ default void sFamilyClass(short value) { return; }
+ default void panose(byte[] value) { return; }
+ default void ulUnicodeRange1(long value) { return; }
+ default void ulUnicodeRange2(long value) { return; }
+ default void ulUnicodeRange3(long value) { return; }
+ default void ulUnicodeRange4(long value) { return; }
+ default void achVendID(String value) { return; }
+ default void fsSelection(int value) { return; }
+ default void usFirstCharIndex(int value) { return; }
+ default void usLastCharIndex(int value) { return; }
+ default void sTypoAscender(short value) { return; }
+ default void sTypoDescender(short value) { return; }
+ default void sTypoLineGap(short value) { return; }
+ default void usWinAscent(int value) { return; }
+ default void usWinDescent(int value) { return; }
+
+
+ /* OS/2 Table, Version 1. */
+ default void ulCodePageRange1(long value) { return; }
+ default void ulCodePageRange2(long value) { return; }
+
+
+ /* OS/2 Table, Version 2. Versions 3 & 4 are the same as Version 2. */
+ default void sxHeight(short value) { return; }
+ default void sCapHeight(short value) { return; }
+ default void usDefaultChar(int value) { return; }
+ default void usBreakChar(int value) { return; }
+ default void usMaxContext(int value) { return; }
+
+
+ /* OS/2 Table, Version 5. */
+ default void usLowerOpticalPointSize(int value) { return; }
+ default void usUpperOpticalPointSize(int value) { return; }
+
+}
Deleted: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/Os2TableParserHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/Os2TableParserHandler.java 2025-04-23 23:18:09 UTC (rev 13490)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/Os2TableParserHandler.java 2025-04-24 00:00:41 UTC (rev 13491)
@@ -1,90 +0,0 @@
-/*
- * Copyright 2025 The FOray Project.
- * http://www.foray.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.
- *
- * This work is in part derived from the following work(s), used with the
- * permission of the licensor:
- * Apache FOP, licensed by the Apache Software Foundation
- *
- */
-
-/*
- * $LastChangedRevision$
- * $LastChangedDate$
- * $LastChangedBy$
- */
-
-package org.foray.fontParse.ttfHandler;
-
-import org.foray.fontParse.FontContentHandler;
-import org.foray.fontParse.ttf.Os2TableParser;
-
-/**
- * Implementations catch and handle the output from {@link Os2TableParser}.
- */
-public interface Os2TableParserHandler extends FontContentHandler {
-
- default void version(short version) { return; }
-
- /* OS/2 Table, Version 0. */
- default void xAvgCharWidth(short value) { return; }
- default void usWeightClass(int value) { return; }
- default void usWidthClass(int version) { return; }
- default void fsType(int value) { return; }
- default void ySubscriptXSize(short value) { return; }
- default void ySubscriptYSize(short value) { return; }
- default void ySubscriptXOffset(short value) { return; }
- default void ySubscriptYOffset(short value) { return; }
- default void ySuperscriptXSize(short value) { return; }
- default void ySuperscriptYSize(short value) { return; }
- default void ySuperscriptXOffset(short value) { return; }
- default void ySuperscriptYOffset(short value) { return; }
- default void yStrikeoutSize(short value) { return; }
- default void yStrikeoutPosition(short value) { return; }
- default void sFamilyClass(short value) { return; }
- default void panose(byte[] value) { return; }
- default void ulUnicodeRange1(long value) { return; }
- default void ulUnicodeRange2(long value) { return; }
- default void ulUnicodeRange3(long value) { return; }
- default void ulUnicodeRange4(long value) { return; }
- default void achVendID(String value) { return; }
- default void fsSelection(int value) { return; }
- default void usFirstCharIndex(int value) { return; }
- default void usLastCharIndex(int value) { return; }
- default void sTypoAscender(short value) { return; }
- default void sTypoDescender(short value) { return; }
- default void sTypoLineGap(short value) { return; }
- default void usWinAscent(int value) { return; }
- default void usWinDescent(int value) { return; }
-
-
- /* OS/2 Table, Version 1. */
- default void ulCodePageRange1(long value) { return; }
- default void ulCodePageRange2(long value) { return; }
-
-
- /* OS/2 Table, Version 2. Versions 3 & 4 are the same as Version 2. */
- default void sxHeight(short value) { return; }
- default void sCapHeight(short value) { return; }
- default void usDefaultChar(int value) { return; }
- default void usBreakChar(int value) { return; }
- default void usMaxContext(int value) { return; }
-
-
- /* OS/2 Table, Version 5. */
- default void usLowerOpticalPointSize(int value) { return; }
- default void usUpperOpticalPointSize(int value) { return; }
-
-}
Added: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/PcltTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/PcltTableHandler.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/PcltTableHandler.java 2025-04-24 00:00:41 UTC (rev 13491)
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.fontParse.ttfHandler;
+
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttf.PcltTableParser;
+
+/**
+ * Implementations catch and handle the output from {@link PcltTableParser}.
+ */
+public interface PcltTableHandler extends FontContentHandler {
+
+ default void majorVersion(int value) { return; }
+
+ /* PCLT Table, Version 1.0. */
+ default void minorVersion(int value) { return; }
+ default void fontNumber(long value) { return; }
+
+ default void pitch(int value) { return; }
+ default void xHeight(int value) { return; }
+ default void style(int value) { return; }
+ default void typeFamily(int value) { return; }
+ default void capHeight(int value) { return; }
+ default void symbolSet(int value) { return; }
+ default void typeface(String value) { return; }
+ default void characterComplement(String value) { return; }
+ default void fileName(String value) { return; }
+ default void strokeWeight(byte value) { return; }
+ default void widthType(byte value) { return; }
+ default void serifStyle(short value) { return; }
+}
Property changes on: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/PcltTableHandler.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Added: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/PostTableHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/PostTableHandler.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/PostTableHandler.java 2025-04-24 00:00:41 UTC (rev 13491)
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.fontParse.ttfHandler;
+
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttf.PostTableParser;
+
+import java.math.BigDecimal;
+
+/**
+ * Implementations catch and handle the output from {@link PostTableParser}.
+ */
+public interface PostTableHandler extends FontContentHandler {
+
+ default void majorVersion(short value) { return; }
+ default void minorVersion(short value) { return; }
+
+ default void italicAngle(BigDecimal value) { return; }
+ default void underlinePosition(short value) { return; }
+ default void underlineThickness(short value) { return; }
+ default void isFixedPitch(int value) { return; }
+ default void minMemType42(int value) { return; }
+ default void maxMemType42(int value) { return; }
+ default void minMemType1(int value) { return; }
+ default void maxMemType1(int value) { return; }
+
+ default void numGlyphs(short value) { return; }
+ default void glyphNameIndex(short value) { return; }
+ default void glyphName(String value) { return; }
+}
Property changes on: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/PostTableHandler.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-04-23 23:18:32
|
Revision: 13490
http://sourceforge.net/p/foray/code/13490
Author: victormote
Date: 2025-04-23 23:18:09 +0000 (Wed, 23 Apr 2025)
Log Message:
-----------
Fix checkstyle issues.
Modified Paths:
--------------
trunk/foray/foray-00-dev/config/checkstyle/checkstyle-suppressions.xml
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontContentHandler.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontFormat.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/Os2TableParserHandler.java
Added Paths:
-----------
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/package-info.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/package-info.java
Modified: trunk/foray/foray-00-dev/config/checkstyle/checkstyle-suppressions.xml
===================================================================
--- trunk/foray/foray-00-dev/config/checkstyle/checkstyle-suppressions.xml 2025-04-23 22:21:57 UTC (rev 13489)
+++ trunk/foray/foray-00-dev/config/checkstyle/checkstyle-suppressions.xml 2025-04-23 23:18:09 UTC (rev 13490)
@@ -39,4 +39,7 @@
<suppress checks=".*" files="src.main.data.*"/>
<suppress checks=".*" files="src.main.archive.*"/>
+ <!-- Permanently suppress some checks in data transfer interfaces. -->
+ <suppress checks="LeftCurly" files="src.main.java.org.foray.fontParse.ttfHandler.*"/>
+
</suppressions>
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontContentHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontContentHandler.java 2025-04-23 22:21:57 UTC (rev 13489)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontContentHandler.java 2025-04-23 23:18:09 UTC (rev 13490)
@@ -41,7 +41,9 @@
* @param tableName The context-sensitive name of the table about to be parsed.
* @return The content handler to be used for parsing the table being started.
*/
- default FontContentHandler startTable(String tableName) { return this; }
+ default FontContentHandler startTable(String tableName) {
+ return this;
+ }
/**
* An Object field has been parsed.
@@ -48,7 +50,9 @@
* @param fieldName The name of the field parsed.
* @param value The parsed value.
*/
- default void objectField(String fieldName, Object value) { return; }
+ default void objectField(String fieldName, Object value) {
+ return;
+ }
/**
* An primitive field has been parsed.
@@ -55,6 +59,8 @@
* @param fieldName The name of the field parsed.
* @param value The parsed value.
*/
- default void primitiveField(String fieldName, PrimitiveFerry value) { return; }
+ default void primitiveField(String fieldName, PrimitiveFerry value) {
+ return;
+ }
}
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontFormat.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontFormat.java 2025-04-23 22:21:57 UTC (rev 13489)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontFormat.java 2025-04-23 23:18:09 UTC (rev 13490)
@@ -28,8 +28,30 @@
package org.foray.fontParse;
-public class FontFormat {
+/**
+ * Constants related to font formats.
+ */
+public final class FontFormat {
+ /** Magic number indicating version 0. */
+ public static final byte VERSION_0 = 0;
+
+ /** Magic number indicating version 1. */
+ public static final byte VERSION_1 = 1;
+
+ /** Magic number indicating version 2. */
+ public static final byte VERSION_2 = 2;
+
+ /** Magic number indicating version 3. */
+ public static final byte VERSION_3 = 3;
+
+ /** Magic number indicating version 4. */
+ public static final byte VERSION_4 = 4;
+
+ /** Magic number indicating version 5. */
+ public static final byte VERSION_5 = 5;
+
+
/**
* Enumeration of valid <em>table</em> major versions, not to be confused with TrueType or OpenType version numbers.
*/
@@ -73,4 +95,9 @@
}
}
+ /**
+ * Private Constructor. Utility class should naver be instantiated.
+ */
+ private FontFormat() { }
+
}
Added: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/package-info.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/package-info.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/package-info.java 2025-04-23 23:18:09 UTC (rev 13490)
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+/**
+ * Classes that parse Font files.
+ * The FOray font parsing scheme uncouples the parsing task from the consumption of the data parsed, allowing reuse of
+ * the parser.
+ */
+package org.foray.fontParse;
Property changes on: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/package-info.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java 2025-04-23 22:21:57 UTC (rev 13489)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java 2025-04-23 23:18:09 UTC (rev 13490)
@@ -44,6 +44,13 @@
/** The number of Panose fields. */
public static final byte QTY_PANOSE_FIELDS = 10;
+ /**
+ * Parses this table.
+ * @param input The input.
+ * @param offset The offset.
+ * @param handler The handler.
+ * @throws IOException For IO errors.
+ */
public void parse(final TtfRandomAccessInput input, final int offset, final Os2TableParserHandler handler)
throws IOException {
input.seek(offset);
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java 2025-04-23 22:21:57 UTC (rev 13489)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java 2025-04-23 23:18:09 UTC (rev 13490)
@@ -30,6 +30,7 @@
import org.foray.common.primitive.PrimitiveFerry;
import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.FontFormat;
import org.foray.fontParse.FontParser;
import java.io.IOException;
@@ -40,13 +41,13 @@
*/
public class PostTableParser extends FontParser {
+ /** Constant indicating the beginning of the range of glyph indexes that are reserved for future use. */
+ public static final int FIRST_RESERVED_INDEX = 32768;
+
/** Constant indicating the maximum glyph index that can be referenced in the "Macintosh standard order" portion of
* the glyph names. */
private static final int MAX_GLYPH_INDEX = 257;
- /** Constant indicating the beginning of the range of glyph indexes that are reserved for future use. */
- public static final int FIRST_RESERVED_INDEX = 32768;
-
@Override
public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler handler)
throws IOException {
@@ -70,25 +71,25 @@
switch (majorVersion) {
- case 1:
+ case FontFormat.VERSION_1:
// Nothing needs to be read for this format.
break;
- case 2:
+ case FontFormat.VERSION_2:
final short numGlyphs = input.read_uint16();
handler.primitiveField("numGlyphs", ferry.setShort(numGlyphs));
switch (minorVersion) {
case 0: {
- parse2_0Glyphs(input, numGlyphs, handler);
+ parse2v0Glyphs(input, numGlyphs, handler);
break;
}
- case 5: {
+ case FontFormat.VERSION_5: {
/* TODO: Add this functionality if needed. Version 2.5 is deprecated and may not be used much. */
break;
}
}
break;
- case 3:
+ case FontFormat.VERSION_3:
// Postscript format 3 contains no glyph names
break;
default:
@@ -96,7 +97,14 @@
}
}
- private void parse2_0Glyphs(final TtfRandomAccessInput input, final int numGlyphs, final FontContentHandler handler)
+ /**
+ * Parse the version 2.0 glyphs.
+ * @param input The input to be parsed.
+ * @param numGlyphs The number of glyph name indexes to be parsed.
+ * @param handler The consumer of the parsing.
+ * @throws IOException For IO errors.
+ */
+ private void parse2v0Glyphs(final TtfRandomAccessInput input, final int numGlyphs, final FontContentHandler handler)
throws IOException {
/* Glyph name indexes. */
final PrimitiveFerry ferry = new PrimitiveFerry();
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/Os2TableParserHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/Os2TableParserHandler.java 2025-04-23 22:21:57 UTC (rev 13489)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/Os2TableParserHandler.java 2025-04-23 23:18:09 UTC (rev 13490)
@@ -36,55 +36,55 @@
*/
public interface Os2TableParserHandler extends FontContentHandler {
- default void version(short version) {return;}
+ default void version(short version) { return; }
/* OS/2 Table, Version 0. */
- default void xAvgCharWidth(short value) {return;}
- default void usWeightClass(int value) {return;}
- default void usWidthClass(int version) {return;}
- default void fsType(int value) {return;}
- default void ySubscriptXSize(short value) {return;}
- default void ySubscriptYSize(short value) {return;}
- default void ySubscriptXOffset(short value) {return;}
- default void ySubscriptYOffset(short value) {return;}
- default void ySuperscriptXSize(short value) {return;}
- default void ySuperscriptYSize(short value) {return;}
- default void ySuperscriptXOffset(short value) {return;}
- default void ySuperscriptYOffset(short value) {return;}
- default void yStrikeoutSize(short value) {return;}
- default void yStrikeoutPosition(short value) {return;}
- default void sFamilyClass(short value) {return;}
- default void panose(byte[] value) {return;}
- default void ulUnicodeRange1(long value) {return;}
- default void ulUnicodeRange2(long value) {return;}
- default void ulUnicodeRange3(long value) {return;}
- default void ulUnicodeRange4(long value) {return;}
- default void achVendID(String value) {return;}
- default void fsSelection(int value) {return;}
- default void usFirstCharIndex(int value) {return;}
- default void usLastCharIndex(int value) {return;}
- default void sTypoAscender(short value) {return;}
- default void sTypoDescender(short value) {return;}
- default void sTypoLineGap(short value) {return;}
- default void usWinAscent(int value) {return;}
- default void usWinDescent(int value) {return;}
+ default void xAvgCharWidth(short value) { return; }
+ default void usWeightClass(int value) { return; }
+ default void usWidthClass(int version) { return; }
+ default void fsType(int value) { return; }
+ default void ySubscriptXSize(short value) { return; }
+ default void ySubscriptYSize(short value) { return; }
+ default void ySubscriptXOffset(short value) { return; }
+ default void ySubscriptYOffset(short value) { return; }
+ default void ySuperscriptXSize(short value) { return; }
+ default void ySuperscriptYSize(short value) { return; }
+ default void ySuperscriptXOffset(short value) { return; }
+ default void ySuperscriptYOffset(short value) { return; }
+ default void yStrikeoutSize(short value) { return; }
+ default void yStrikeoutPosition(short value) { return; }
+ default void sFamilyClass(short value) { return; }
+ default void panose(byte[] value) { return; }
+ default void ulUnicodeRange1(long value) { return; }
+ default void ulUnicodeRange2(long value) { return; }
+ default void ulUnicodeRange3(long value) { return; }
+ default void ulUnicodeRange4(long value) { return; }
+ default void achVendID(String value) { return; }
+ default void fsSelection(int value) { return; }
+ default void usFirstCharIndex(int value) { return; }
+ default void usLastCharIndex(int value) { return; }
+ default void sTypoAscender(short value) { return; }
+ default void sTypoDescender(short value) { return; }
+ default void sTypoLineGap(short value) { return; }
+ default void usWinAscent(int value) { return; }
+ default void usWinDescent(int value) { return; }
/* OS/2 Table, Version 1. */
- default void ulCodePageRange1(long value) {return;}
- default void ulCodePageRange2(long value) {return;}
+ default void ulCodePageRange1(long value) { return; }
+ default void ulCodePageRange2(long value) { return; }
/* OS/2 Table, Version 2. Versions 3 & 4 are the same as Version 2. */
- default void sxHeight(short value) {return;}
- default void sCapHeight(short value) {return;}
- default void usDefaultChar(int value) {return;}
- default void usBreakChar(int value) {return;}
- default void usMaxContext(int value) {return;}
+ default void sxHeight(short value) { return; }
+ default void sCapHeight(short value) { return; }
+ default void usDefaultChar(int value) { return; }
+ default void usBreakChar(int value) { return; }
+ default void usMaxContext(int value) { return; }
/* OS/2 Table, Version 5. */
- default void usLowerOpticalPointSize(int value) {return;}
- default void usUpperOpticalPointSize(int value) {return;}
+ default void usLowerOpticalPointSize(int value) { return; }
+ default void usUpperOpticalPointSize(int value) { return; }
}
Added: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/package-info.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/package-info.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/package-info.java 2025-04-23 23:18:09 UTC (rev 13490)
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+/**
+ * TrueType type-specific handler interfaces.
+ */
+package org.foray.fontParse.ttfHandler;
Property changes on: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/package-info.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-04-23 22:22:18
|
Revision: 13489
http://sourceforge.net/p/foray/code/13489
Author: victormote
Date: 2025-04-23 22:21:57 +0000 (Wed, 23 Apr 2025)
Log Message:
-----------
Create and use type-specific font parser handler for Os2Table.
Modified Paths:
--------------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontContentHandler.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-23 21:27:02 UTC (rev 13488)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-23 22:21:57 UTC (rev 13489)
@@ -66,6 +66,7 @@
import org.foray.fontParse.ttf.PcltTableParser;
import org.foray.fontParse.ttf.PostTableParser;
import org.foray.fontParse.ttf.TtfRandomAccessInput;
+import org.foray.fontParse.ttfHandler.Os2TableParserHandler;
import org.foray.primitive.BitUtils;
import org.foray.primitive.sequence.ShortArrayBuilder;
@@ -189,9 +190,6 @@
}
final TrueTypeFont font = new TrueTypeFont(ttfTableDir);
- TtfContentHandler<?> contentHandler;
- FontParser parser;
-
/* The order is somewhat important here. */
/* BEGIN REQUIRED TABLES ************************************************************************************ */
@@ -198,11 +196,14 @@
/* Read the Font Header first. */
TtfOffsetTableRecord dirEntry = ttfTableDir.getTableDirectoryEntry("head");
- contentHandler = HeadTable.createContentHandler();
- parser = new HeadTableParser();
- parser.parse(raInput, dirEntry.getOffset(), contentHandler);
- font.headTable = (HeadTable) contentHandler.getTable();
+ {
+ final TtfContentHandler<?> contentHandler = HeadTable.createContentHandler();
+ final FontParser parser = new HeadTableParser();
+ parser.parse(raInput, dirEntry.getOffset(), contentHandler);
+ font.headTable = (HeadTable) contentHandler.getTable();
+ }
+
/* Then the Maximum Profile, so general sizes are known. */
dirEntry = ttfTableDir.getTableDirectoryEntry("maxp");
font.maxpTable = MaxpTable.parse(raInput, dirEntry.getOffset(), dirEntry.getLength());
@@ -229,16 +230,21 @@
numberOfHMetrics);
dirEntry = ttfTableDir.getTableDirectoryEntry("post");
- contentHandler = PostTable.createContentHandler();
- parser = new PostTableParser();
- parser.parse(raInput, dirEntry.getOffset(), contentHandler);
- font.postTable = (PostTable) contentHandler.getTable();
+ {
+ final TtfContentHandler<?> contentHandler = PostTable.createContentHandler();
+ final PostTableParser parser = new PostTableParser();
+ parser.parse(raInput, dirEntry.getOffset(), contentHandler);
+ font.postTable = (PostTable) contentHandler.getTable();
+ }
+
dirEntry = ttfTableDir.getTableDirectoryEntry("OS/2");
- contentHandler = Os2Table.createContentHandler();
- parser = new Os2TableParser();
- parser.parse(raInput, dirEntry.getOffset(), contentHandler);
- font.os2Table = (Os2Table) contentHandler.getTable();
+ {
+ final TtfContentHandler<Os2Table> contentHandler = Os2Table.createContentHandler();
+ final Os2TableParser parser = new Os2TableParser();
+ parser.parse(raInput, dirEntry.getOffset(), (Os2TableParserHandler) contentHandler);
+ font.os2Table = (Os2Table) contentHandler.getTable();
+ }
/* BEGIN TRUETYPE-OUTLINE TABLES **************************************************************************** */
@@ -297,8 +303,8 @@
dirEntry = ttfTableDir.getTableDirectoryEntry("BASE");
if (dirEntry != null) {
- contentHandler = BaseTable.createContentHandler();
- parser = new BaseTableParser();
+ final TtfContentHandler<?> contentHandler = BaseTable.createContentHandler();
+ final BaseTableParser parser = new BaseTableParser();
parser.parse(raInput, dirEntry.getOffset(), contentHandler);
font.baseTable = (BaseTable) contentHandler.getTable();
}
@@ -332,8 +338,8 @@
dirEntry = ttfTableDir.getTableDirectoryEntry("PCLT");
if (dirEntry != null) {
- contentHandler = PcltTable.createContentHandler();
- parser = new PcltTableParser();
+ final TtfContentHandler<?> contentHandler = PcltTable.createContentHandler();
+ final PcltTableParser parser = new PcltTableParser();
parser.parse(raInput, dirEntry.getOffset(), contentHandler);
font.pcltTable = (PcltTable) contentHandler.getTable();
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java 2025-04-23 21:27:02 UTC (rev 13488)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java 2025-04-23 22:21:57 UTC (rev 13489)
@@ -28,10 +28,10 @@
package org.foray.font.ttf.table;
-import org.foray.common.primitive.PrimitiveFerry;
import org.foray.font.format.Panose4a;
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
+import org.foray.fontParse.ttfHandler.Os2TableParserHandler;
import org.checkerframework.checker.signedness.qual.Unsigned;
@@ -43,7 +43,7 @@
/**
* The handler of events from the parser.
*/
- private final class ContentHandler extends TtfContentHandler<Os2Table> {
+ private final class ContentHandler extends TtfContentHandler<Os2Table> implements Os2TableParserHandler {
/**
* Constructor.
@@ -54,33 +54,54 @@
}
@Override
- public TtfContentHandler<?> startTable(final String tableName) {
- return null;
+ public void panose(final byte[] value) {
+ getTable().panose = Panose4a.forceInstance((@Unsigned byte[]) value);
}
@Override
- public void objectField(final String fieldName, final Object value) {
- switch (fieldName) {
- case "panose": getTable().panose = Panose4a.forceInstance((@Unsigned byte[]) value);
- }
+ public void version(final short value) {
+ getTable().version = (byte) value;
}
@Override
- public void primitiveField(final String fieldName, final PrimitiveFerry value) {
- switch (fieldName) {
- case "version": getTable().version = (byte) value.getShort(); break;
- case "fstype": getTable().fsType = value.getInt(); break;
- case "yStrikeoutSize": getTable().yStrikeoutSize = value.getShort(); break;
- case "yStrikeoutPosition": getTable().yStrikeoutPosition = value.getShort(); break;
- case "sTypoAscender": getTable().sTypoAscender = value.getShort(); break;
- case "sTypoDescender": getTable().sTypoDescender = value.getShort(); break;
- case "sxHeight": getTable().sxHeight = value.getShort(); break;
- case "sCapHeight": getTable().sCapHeight = value.getShort(); break;
- }
+ public void fsType(final int value) {
+ getTable().fsType = value;
}
+ @Override
+ public void yStrikeoutSize(final short value) {
+ getTable().yStrikeoutSize = value;
+ }
+
+ @Override
+ public void yStrikeoutPosition(final short value) {
+ getTable().yStrikeoutPosition = value;
+ }
+
+ @Override
+ public void sTypoAscender(final short value) {
+ getTable().sTypoAscender = value;
+ }
+
+ @Override
+ public void sTypoDescender(final short value) {
+ getTable().sTypoDescender = value;
+ }
+
+ @Override
+ public void sxHeight(final short value) {
+ getTable().sxHeight = value;
+ }
+
+ @Override
+ public void sCapHeight(final short value) {
+ getTable().sCapHeight = value;
+ }
}
+
+
+
/** The version number of this table. */
private byte version;
@@ -117,7 +138,6 @@
return table.new ContentHandler(table);
}
-
/**
* Indicates whether this font is embeddable.
* @return True if and only if this font is embeddable.
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontContentHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontContentHandler.java 2025-04-23 21:27:02 UTC (rev 13488)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontContentHandler.java 2025-04-23 22:21:57 UTC (rev 13489)
@@ -41,7 +41,7 @@
* @param tableName The context-sensitive name of the table about to be parsed.
* @return The content handler to be used for parsing the table being started.
*/
- FontContentHandler startTable(String tableName);
+ default FontContentHandler startTable(String tableName) { return this; }
/**
* An Object field has been parsed.
@@ -48,7 +48,7 @@
* @param fieldName The name of the field parsed.
* @param value The parsed value.
*/
- void objectField(String fieldName, Object value);
+ default void objectField(String fieldName, Object value) { return; }
/**
* An primitive field has been parsed.
@@ -55,6 +55,6 @@
* @param fieldName The name of the field parsed.
* @param value The parsed value.
*/
- void primitiveField(String fieldName, PrimitiveFerry value);
+ default void primitiveField(String fieldName, PrimitiveFerry value) { return; }
}
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java 2025-04-23 21:27:02 UTC (rev 13488)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/Os2TableParser.java 2025-04-23 22:21:57 UTC (rev 13489)
@@ -28,10 +28,8 @@
package org.foray.fontParse.ttf;
-import org.foray.common.primitive.PrimitiveFerry;
-import org.foray.fontParse.FontContentHandler;
import org.foray.fontParse.FontFormat;
-import org.foray.fontParse.FontParser;
+import org.foray.fontParse.ttfHandler.Os2TableParserHandler;
import org.checkerframework.checker.signedness.qual.Unsigned;
@@ -41,57 +39,54 @@
* Parses a TTF OS/2 table.
* @see org.foray.font.ttf.table.Os2Table
*/
-public class Os2TableParser extends FontParser {
+public class Os2TableParser {
/** The number of Panose fields. */
public static final byte QTY_PANOSE_FIELDS = 10;
- @Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler consumer)
+ public void parse(final TtfRandomAccessInput input, final int offset, final Os2TableParserHandler handler)
throws IOException {
- final PrimitiveFerry ferry = new PrimitiveFerry();
input.seek(offset);
- final short version = input.read_uint16();
- consumer.primitiveField("version", ferry.setShort(version)); // 2 bytes, total 2
-
/* OS/2 Table, Version 0. */
- consumer.primitiveField("xAvgCharWidth", ferry.setShort(input.read_FWORD())); // 2 bytes, total 4
- consumer.primitiveField("usWeightClass", ferry.setInt(input.read_uint16())); // 2 bytes, total 6
- consumer.primitiveField("usWidthClass", ferry.setInt(input.read_uint16())); // 2 bytes, total 8
- consumer.primitiveField("fsType", ferry.setInt(input.read_uint16())); // 2 bytes, total 10
- consumer.primitiveField("ySubscriptXSize", ferry.setShort(input.read_FWORD())); // 2 bytes, total 12
- consumer.primitiveField("ySubscriptYSize", ferry.setShort(input.read_FWORD())); // 2 bytes, total 14
- consumer.primitiveField("ySubscriptXOffset", ferry.setShort(input.read_FWORD())); // 2 bytes, total 16
- consumer.primitiveField("ySubscriptYOffset", ferry.setShort(input.read_FWORD())); // 2 bytes, total 18
- consumer.primitiveField("ySuperscriptXSize", ferry.setShort(input.read_FWORD())); // 2 bytes, total 20
- consumer.primitiveField("ySuperscriptYSize", ferry.setShort(input.read_FWORD())); // 2 bytes, total 22
- consumer.primitiveField("ySuperscriptXOffset", ferry.setShort(input.read_FWORD())); // 2 bytes, total 24
- consumer.primitiveField("ySuperscriptYOffset", ferry.setShort(input.read_FWORD())); // 2 bytes, total 26
- consumer.primitiveField("yStrikeoutSize", ferry.setShort(input.read_FWORD())); // 2 bytes, total 28
- consumer.primitiveField("yStrikeoutPosition", ferry.setShort(input.read_FWORD())); // 2 bytes, total 30
- consumer.primitiveField("sFamilyClass", ferry.setShort(input.read_int16())); // 2 bytes, total 32
+ final short version = input.read_uint16(); // 2 bytes, total 2
+ handler.version(version);
+ handler.xAvgCharWidth(input.read_FWORD()); // 2 bytes, total 4
+ handler.usWeightClass(input.read_uint16()); // 2 bytes, total 6
+ handler.usWidthClass(input.read_uint16()); // 2 bytes, total 8
+ handler.fsType(input.read_uint16()); // 2 bytes, total 10
+ handler.ySubscriptXSize(input.read_FWORD()); // 2 bytes, total 12
+ handler.ySubscriptYSize(input.read_FWORD()); // 2 bytes, total 14
+ handler.ySubscriptXOffset(input.read_FWORD()); // 2 bytes, total 16
+ handler.ySubscriptYOffset(input.read_FWORD()); // 2 bytes, total 18
+ handler.ySuperscriptXSize(input.read_FWORD()); // 2 bytes, total 20
+ handler.ySuperscriptYSize(input.read_FWORD()); // 2 bytes, total 22
+ handler.ySuperscriptXOffset(input.read_FWORD()); // 2 bytes, total 24
+ handler.ySuperscriptYOffset(input.read_FWORD()); // 2 bytes, total 26
+ handler.yStrikeoutSize(input.read_FWORD()); // 2 bytes, total 28
+ handler.yStrikeoutPosition(input.read_FWORD()); // 2 bytes, total 30
+ handler.sFamilyClass(input.read_int16()); // 2 bytes, total 32
/* Read the Panose array. */
- final @Unsigned byte[] panoseArray = new byte[QTY_PANOSE_FIELDS]; // 10 bytes, total 42
+ final @Unsigned byte[] panoseArray = new byte[QTY_PANOSE_FIELDS]; // 10 bytes, total 42
for (int i = 0; i < panoseArray.length; i++) {
panoseArray[i] = input.read_uint8();
}
- consumer.objectField("panose", panoseArray);
+ handler.panose(panoseArray);
- consumer.primitiveField("ulUnicodeRange1", ferry.setLong(input.read_uint32())); // 4 bytes, total 46
- consumer.primitiveField("ulUnicodeRange2", ferry.setLong(input.read_uint32())); // 4 bytes, total 50
- consumer.primitiveField("ulUnicodeRange3", ferry.setLong(input.read_uint32())); // 4 bytes, total 54
- consumer.primitiveField("ulUnicodeRange4", ferry.setLong(input.read_uint32())); // 4 bytes, total 58
- consumer.objectField("achVendID", input.read_Tag()); // 4 bytes, total 62
- consumer.primitiveField("fsSelection", ferry.setInt(input.read_uint16())); // 2 bytes, total 64
- consumer.primitiveField("usFirstCharIndex", ferry.setInt(input.read_uint16())); // 2 bytes, total 66
- consumer.primitiveField("usLastCharIndex", ferry.setInt(input.read_uint16())); // 2 bytes, total 68
- consumer.primitiveField("sTypoAscender", ferry.setShort(input.read_FWORD())); // 2 bytes, total 70
- consumer.primitiveField("sTypoDescender", ferry.setShort(input.read_FWORD())); // 2 bytes, total 72
- consumer.primitiveField("sTypoLineGap", ferry.setShort(input.read_FWORD())); // 2 bytes, total 74
- consumer.primitiveField("usWinAscent", ferry.setInt(input.read_UFWORD())); // 2 bytes, total 76
- consumer.primitiveField("usWinDescent", ferry.setInt(input.read_UFWORD())); // 2 bytes, total 78
+ handler.ulUnicodeRange1(input.read_uint32()); // 4 bytes, total 46
+ handler.ulUnicodeRange2(input.read_uint32()); // 4 bytes, total 50
+ handler.ulUnicodeRange3(input.read_uint32()); // 4 bytes, total 54
+ handler.ulUnicodeRange4(input.read_uint32()); // 4 bytes, total 58
+ handler.achVendID(input.read_Tag()); // 4 bytes, total 62
+ handler.fsSelection(input.read_uint16()); // 2 bytes, total 64
+ handler.usFirstCharIndex(input.read_uint16()); // 2 bytes, total 66
+ handler.usLastCharIndex(input.read_uint16()); // 2 bytes, total 68
+ handler.sTypoAscender(input.read_FWORD()); // 2 bytes, total 70
+ handler.sTypoDescender(input.read_FWORD()); // 2 bytes, total 72
+ handler.sTypoLineGap(input.read_FWORD()); // 2 bytes, total 74
+ handler.usWinAscent(input.read_UFWORD()); // 2 bytes, total 76
+ handler.usWinDescent(input.read_UFWORD()); // 2 bytes, total 78
if (version < FontFormat.MajorVersion.v1.getValue()) {
return;
@@ -98,8 +93,8 @@
}
/* OS/2 Table, Version 1. */
- consumer.primitiveField("ulCodePageRange1", ferry.setLong(input.read_uint32())); // 4 bytes, total 82
- consumer.primitiveField("ulCodePageRange2", ferry.setLong(input.read_uint32())); // 4 bytes, total 86
+ handler.ulCodePageRange1(input.read_uint32()); // 4 bytes, total 82
+ handler.ulCodePageRange2(input.read_uint32()); // 4 bytes, total 86
if (version < FontFormat.MajorVersion.v2.getValue()) {
return;
@@ -106,11 +101,11 @@
}
/* OS/2 Table, Version 2. Versions 3 & 4 are the same as Version 2. */
- consumer.primitiveField("sxHeight", ferry.setShort(input.read_FWORD())); // 2 bytes, total 88
- consumer.primitiveField("sCapHeight", ferry.setShort(input.read_FWORD())); // 2 bytes, total 90
- consumer.primitiveField("usDefaultChar", ferry.setInt(input.read_uint16())); // 2 bytes, total 92
- consumer.primitiveField("usBreakChar", ferry.setInt(input.read_uint16())); // 2 bytes, total 94
- consumer.primitiveField("usMaxContext", ferry.setInt(input.read_uint16())); // 2 bytes, total 96
+ handler.sxHeight(input.read_FWORD()); // 2 bytes, total 88
+ handler.sCapHeight(input.read_FWORD()); // 2 bytes, total 90
+ handler.usDefaultChar(input.read_uint16()); // 2 bytes, total 92
+ handler.usBreakChar(input.read_uint16()); // 2 bytes, total 94
+ handler.usMaxContext(input.read_uint16()); // 2 bytes, total 96
if (version < FontFormat.MajorVersion.v5.getValue()) {
return;
@@ -117,8 +112,8 @@
}
/* OS/2 Table, Version 5. */
- consumer.primitiveField("usLowerOpticalPointSize", ferry.setInt(input.read_uint16())); // 2 bytes, total 98
- consumer.primitiveField("usUpperOpticalPointSize", ferry.setInt(input.read_uint16())); // 2 bytes, total 100
+ handler.usLowerOpticalPointSize(input.read_uint16()); // 2 bytes, total 98
+ handler.usUpperOpticalPointSize(input.read_uint16()); // 2 bytes, total 100
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-04-23 21:27:22
|
Revision: 13488
http://sourceforge.net/p/foray/code/13488
Author: victormote
Date: 2025-04-23 21:27:02 +0000 (Wed, 23 Apr 2025)
Log Message:
-----------
Add interface for Os2 table handler.
Added Paths:
-----------
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/Os2TableParserHandler.java
Added: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/Os2TableParserHandler.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/Os2TableParserHandler.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/Os2TableParserHandler.java 2025-04-23 21:27:02 UTC (rev 13488)
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.fontParse.ttfHandler;
+
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.ttf.Os2TableParser;
+
+/**
+ * Implementations catch and handle the output from {@link Os2TableParser}.
+ */
+public interface Os2TableParserHandler extends FontContentHandler {
+
+ default void version(short version) {return;}
+
+ /* OS/2 Table, Version 0. */
+ default void xAvgCharWidth(short value) {return;}
+ default void usWeightClass(int value) {return;}
+ default void usWidthClass(int version) {return;}
+ default void fsType(int value) {return;}
+ default void ySubscriptXSize(short value) {return;}
+ default void ySubscriptYSize(short value) {return;}
+ default void ySubscriptXOffset(short value) {return;}
+ default void ySubscriptYOffset(short value) {return;}
+ default void ySuperscriptXSize(short value) {return;}
+ default void ySuperscriptYSize(short value) {return;}
+ default void ySuperscriptXOffset(short value) {return;}
+ default void ySuperscriptYOffset(short value) {return;}
+ default void yStrikeoutSize(short value) {return;}
+ default void yStrikeoutPosition(short value) {return;}
+ default void sFamilyClass(short value) {return;}
+ default void panose(byte[] value) {return;}
+ default void ulUnicodeRange1(long value) {return;}
+ default void ulUnicodeRange2(long value) {return;}
+ default void ulUnicodeRange3(long value) {return;}
+ default void ulUnicodeRange4(long value) {return;}
+ default void achVendID(String value) {return;}
+ default void fsSelection(int value) {return;}
+ default void usFirstCharIndex(int value) {return;}
+ default void usLastCharIndex(int value) {return;}
+ default void sTypoAscender(short value) {return;}
+ default void sTypoDescender(short value) {return;}
+ default void sTypoLineGap(short value) {return;}
+ default void usWinAscent(int value) {return;}
+ default void usWinDescent(int value) {return;}
+
+
+ /* OS/2 Table, Version 1. */
+ default void ulCodePageRange1(long value) {return;}
+ default void ulCodePageRange2(long value) {return;}
+
+
+ /* OS/2 Table, Version 2. Versions 3 & 4 are the same as Version 2. */
+ default void sxHeight(short value) {return;}
+ default void sCapHeight(short value) {return;}
+ default void usDefaultChar(int value) {return;}
+ default void usBreakChar(int value) {return;}
+ default void usMaxContext(int value) {return;}
+
+
+ /* OS/2 Table, Version 5. */
+ default void usLowerOpticalPointSize(int value) {return;}
+ default void usUpperOpticalPointSize(int value) {return;}
+
+}
Property changes on: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttfHandler/Os2TableParserHandler.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-04-23 16:38:44
|
Revision: 13487
http://sourceforge.net/p/foray/code/13487
Author: victormote
Date: 2025-04-23 16:38:23 +0000 (Wed, 23 Apr 2025)
Log Message:
-----------
Move parsing of "post" table to font-parsing.
Modified Paths:
--------------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PcltTableParser.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/TtfRandomAccessInput.java
Added Paths:
-----------
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java
Removed Paths:
-------------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-23 14:08:22 UTC (rev 13486)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-23 16:38:23 UTC (rev 13487)
@@ -64,6 +64,7 @@
import org.foray.fontParse.ttf.HeadTableParser;
import org.foray.fontParse.ttf.Os2TableParser;
import org.foray.fontParse.ttf.PcltTableParser;
+import org.foray.fontParse.ttf.PostTableParser;
import org.foray.fontParse.ttf.TtfRandomAccessInput;
import org.foray.primitive.BitUtils;
import org.foray.primitive.sequence.ShortArrayBuilder;
@@ -228,7 +229,10 @@
numberOfHMetrics);
dirEntry = ttfTableDir.getTableDirectoryEntry("post");
- font.postTable = PostTable.parse(raInput, dirEntry.getOffset(), dirEntry.getLength());
+ contentHandler = PostTable.createContentHandler();
+ parser = new PostTableParser();
+ parser.parse(raInput, dirEntry.getOffset(), contentHandler);
+ font.postTable = (PostTable) contentHandler.getTable();
dirEntry = ttfTableDir.getTableDirectoryEntry("OS/2");
contentHandler = Os2Table.createContentHandler();
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java 2025-04-23 14:08:22 UTC (rev 13486)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java 2025-04-23 16:38:23 UTC (rev 13487)
@@ -95,7 +95,6 @@
return table.new ContentHandler(table);
}
-
/**
* Returns the cap height for this font.
* @return The cap height for this font.
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java 2025-04-23 14:08:22 UTC (rev 13486)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PostTable.java 2025-04-23 16:38:23 UTC (rev 13487)
@@ -28,16 +28,15 @@
package org.foray.font.ttf.table;
-import org.foray.common.RandomAccessInput;
+import org.foray.common.primitive.PrimitiveFerry;
import org.foray.font.ttf.RoTable;
-import org.foray.fontParse.ttf.TtfRandomAccessInput;
+import org.foray.font.ttf.TtfContentHandler;
+import org.foray.fontParse.ttf.PostTableParser;
import org.axsl.ps.PsEncoding;
import org.axsl.ps.PsServer;
-import java.io.IOException;
import java.math.BigDecimal;
-import java.nio.charset.StandardCharsets;
/**
* Class representing a TTF "post" (PostScript) table.
@@ -44,28 +43,46 @@
*/
public class PostTable extends RoTable {
- /** Constant indicating that the post table uses format 1. */
- private static final int PS_FORMAT_1 = 0x00010000;
+ /**
+ * The handler of events from the parser.
+ */
+ private final class ContentHandler extends TtfContentHandler<PostTable> {
- /** Constant indicating that the post table uses format 2. */
- private static final int PS_FORMAT_2 = 0x00020000;
+ /**
+ * Constructor.
+ * @param table The client being built from the parser results.
+ */
+ private ContentHandler(final PostTable table) {
+ super(table);
+ }
- /** Constant indicating that the post table uses format 3. */
- private static final int PS_FORMAT_3 = 0x00030000;
+ @Override
+ public TtfContentHandler<?> startTable(final String tableName) {
+ return null;
+ }
- /** Constant indicating the maximum glyph index that can be referenced in
- * the "Macintosh standard order" portion of the glyph names. */
- private static final int MAX_GLYPH_INDEX = 257;
+ @Override
+ public void objectField(final String fieldName, final Object value) {
+ switch (fieldName) {
+ case "italicAngle": getTable().italicAngle = (BigDecimal) value; break;
+ }
+ }
- /** Constant indicating the beginning of the range of glyph indexes that
- * are reserved for future use. */
- private static final int FIRST_RESERVED_INDEX = 32768;
+ @Override
+ public void primitiveField(final String fieldName, final PrimitiveFerry value) {
+ switch (fieldName) {
+ case "majorVersion": getTable().majorVersion = value.getShort(); break;
+ case "underlinePosition": getTable().underlinePosition = value.getShort(); break;
+ case "underlineThickness": getTable().underlineThickness = value.getShort(); break;
+ case "isFixedPtch": getTable().isFixedPitch = value.getInt(); break;
+ }
+ }
- /** The format for this table.
- * The format type is not really an integer, it is a FIXED.
- * However, it is more convenient to work with it as an integer. */
- private int postFormat;
+ }
+ /** The major version of this table. */
+ private short majorVersion;
+
/** Italic angle for this font, expressed in degrees counterclockwise from
* vertical. */
private BigDecimal italicAngle = BigDecimal.ZERO;
@@ -88,82 +105,16 @@
/** The parsed PostScript glyph names. */
private String[] glyphNames;
- /** Set this to true if the PostScript names should be read. */
- private boolean readingPostScriptNames = false;
-
/**
- * Parse the "post" table.
- * @param input The input which is being parsed.
- * @param offset The offset into {@code input} at which to start parsing.
- * @param length The number of bytes to parse from {@code input}.
- * @return The parsed instance.
- * @throws IOException For I/O Error.
+ * Creates a table instance and a content handler for that instance.
+ * @return A new content handler.
*/
- public static PostTable parse(final TtfRandomAccessInput input, final int offset, final int length)
- throws IOException {
- input.seek(offset);
- final PostTable post = new PostTable();
- post.postFormat = input.readInt();
- post.italicAngle = input.read_Fixed();
- post.underlinePosition = input.readShort();
- post.underlineThickness = input.readShort();
- post.isFixedPitch = input.readUnsignedInt();
- input.skipBytes(RoTable.ULONG_BYTES); // minMemType42 (4)
- input.skipBytes(RoTable.ULONG_BYTES); // maxMemType42 (4)
- input.skipBytes(RoTable.ULONG_BYTES); // minMemType1 (4)
- input.skipBytes(RoTable.ULONG_BYTES); // maxMemType1 (4)
- /* Actual reading of the names is turned off for now since it is not
- * used. However, it can be turned back on just by setting
- * this.readingPostScriptNames to true. */
- if (post.readingPostScriptNames) {
- readPostScriptNames(post, input);
- }
- return post;
+ public static TtfContentHandler<PostTable> createContentHandler() {
+ final PostTable table = new PostTable();
+ return table.new ContentHandler(table);
}
/**
- * Reads the Postscript names found in this font.
- * @param post The table being parsed.
- * @param raInput The input which is being parsed.
- * @throws IOException For I/O error.
- */
- private static void readPostScriptNames(final PostTable post, final RandomAccessInput raInput)
- throws IOException {
- switch (post.postFormat) {
- case PostTable.PS_FORMAT_1:
- // Nothing needs to be read for this format.
- break;
- case PostTable.PS_FORMAT_2:
- /* Num Glyphs */
- final int numGlyphs = raInput.readUnsignedShort();
-
- // Read the Indexes.
- post.glyphNameIndex = new char[numGlyphs];
- int numGlyphStrings = 0;
- for (int i = 0; i < numGlyphs; i++) {
- final char glyphIndex = (char) raInput.readUnsignedShort();
- post.glyphNameIndex[i] = glyphIndex;
- if (glyphIndex > PostTable.MAX_GLYPH_INDEX) {
- numGlyphStrings++;
- }
- }
-
- // Read the glyph names.
- post.glyphNames = new String[numGlyphStrings];
- for (int i = 0; i < post.glyphNames.length; i++) {
- final int length = raInput.readUnsignedByte();
- post.glyphNames[i] = raInput.readString(length, StandardCharsets.ISO_8859_1);
- }
- break;
- case PostTable.PS_FORMAT_3:
- // Postscript format 3 contains no glyph names
- break;
- default:
- throw new IllegalStateException("Unknown Postscript format : " + post.postFormat);
- }
- }
-
- /**
* Returns the parsed italic angle value.
* @return The italic angle.
*/
@@ -208,10 +159,10 @@
final PsEncoding macOrdering = psServer.getPredefinedEncoding(
PsEncoding.Predefined.STANDARD_MACINTOSH_ORDERING);
final int codePoint = macOrdering.decode(glyphIndex);
- switch (this.postFormat) {
- case PostTable.PS_FORMAT_1:
+ switch (this.majorVersion) {
+ case 1:
return macOrdering.mapCodePointToGlyphName(codePoint);
- case PostTable.PS_FORMAT_2:
+ case 2:
if (codePoint > -1) {
return macOrdering.mapCodePointToGlyphName(codePoint);
}
@@ -236,7 +187,7 @@
* @return True if {@code index} is reserved.
*/
public static boolean isIndexReserved(final char index) {
- return (index >= PostTable.FIRST_RESERVED_INDEX)
+ return (index >= PostTableParser.FIRST_RESERVED_INDEX)
&& (index <= Character.MAX_VALUE);
}
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PcltTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PcltTableParser.java 2025-04-23 14:08:22 UTC (rev 13486)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PcltTableParser.java 2025-04-23 16:38:23 UTC (rev 13487)
@@ -54,6 +54,7 @@
throws IOException {
final PrimitiveFerry ferry = new PrimitiveFerry();
input.seek(offset);
+
final int majorVersion = input.read_uint16();
consumer.primitiveField("majorVersion", ferry.setInt(majorVersion)); // 2 bytes, total 2
Added: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java 2025-04-23 16:38:23 UTC (rev 13487)
@@ -0,0 +1,120 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.fontParse.ttf;
+
+import org.foray.common.primitive.PrimitiveFerry;
+import org.foray.fontParse.FontContentHandler;
+import org.foray.fontParse.FontParser;
+
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+
+/**
+ * Parses a TTF post table.
+ */
+public class PostTableParser extends FontParser {
+
+ /** Constant indicating the maximum glyph index that can be referenced in the "Macintosh standard order" portion of
+ * the glyph names. */
+ private static final int MAX_GLYPH_INDEX = 257;
+
+ /** Constant indicating the beginning of the range of glyph indexes that are reserved for future use. */
+ public static final int FIRST_RESERVED_INDEX = 32768;
+
+ @Override
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler handler)
+ throws IOException {
+ final PrimitiveFerry ferry = new PrimitiveFerry();
+ input.seek(offset);
+
+ final short majorVersion = input.read_uint16(); // 2 bytes, 2 total
+ handler.primitiveField("majorVersion", ferry.setShort(majorVersion));
+ final short minorVersion = input.read_uint16(); // 2 bytes, 4 total
+ handler.primitiveField("minorVersion", ferry.setShort(minorVersion));
+
+ handler.objectField("italicAngle", input.read_Fixed()); // 4 bytes, 8 total
+ handler.primitiveField("underlinePosition", ferry.setShort(input.read_FWORD())); // 2 bytes, 10 total
+ handler.primitiveField("underlineThickness", ferry.setShort(input.read_FWORD())); // 2 bytes, 12 total
+ handler.primitiveField("isFixedPitch", ferry.setInt(input.read_uint32())); // 4 bytes, 16 total
+ handler.primitiveField("minMemType42", ferry.setInt(input.read_uint32())); // 4 bytes, 20 total
+ handler.primitiveField("maxMemType42", ferry.setInt(input.read_uint32())); // 4 bytes, 24 total
+ handler.primitiveField("minMemType1", ferry.setInt(input.read_uint32())); // 4 bytes, 28 total
+ handler.primitiveField("maxMemType1", ferry.setInt(input.read_uint32())); // 4 bytes, 32 total
+
+
+
+ switch (majorVersion) {
+ case 1:
+ // Nothing needs to be read for this format.
+ break;
+ case 2:
+ final short numGlyphs = input.read_uint16();
+ handler.primitiveField("numGlyphs", ferry.setShort(numGlyphs));
+
+ switch (minorVersion) {
+ case 0: {
+ parse2_0Glyphs(input, numGlyphs, handler);
+ break;
+ }
+ case 5: {
+ /* TODO: Add this functionality if needed. Version 2.5 is deprecated and may not be used much. */
+ break;
+ }
+ }
+ break;
+ case 3:
+ // Postscript format 3 contains no glyph names
+ break;
+ default:
+ throw new IllegalStateException("Unknown Postscript format : " + majorVersion);
+ }
+ }
+
+ private void parse2_0Glyphs(final TtfRandomAccessInput input, final int numGlyphs, final FontContentHandler handler)
+ throws IOException {
+ /* Glyph name indexes. */
+ final PrimitiveFerry ferry = new PrimitiveFerry();
+ int numGlyphStrings = 0;
+ for (int index = 0; index < numGlyphs; index ++) {
+ final short glyphIndex = input.read_uint16();
+ handler.primitiveField("glyphNameIndex", ferry.setShort(glyphIndex));
+ if (glyphIndex > MAX_GLYPH_INDEX) {
+ numGlyphStrings++;
+ }
+ }
+
+ /* Glyph names. */
+ for (int index = 0; index < numGlyphStrings; index ++) {
+ final int length = input.read_uint8();
+ final String glyphName = input.readString(length, StandardCharsets.US_ASCII);
+ handler.objectField("glyphName", glyphName);
+ }
+ }
+
+}
Property changes on: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/PostTableParser.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Modified: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/TtfRandomAccessInput.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/TtfRandomAccessInput.java 2025-04-23 14:08:22 UTC (rev 13486)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/TtfRandomAccessInput.java 2025-04-23 16:38:23 UTC (rev 13487)
@@ -77,7 +77,7 @@
/**
- * Parses a TrueType "uint8" field.
+ * Parses a TrueType "uint8" field (1 byte).
* @return The parsed value.
* @throws IOException For I/O Error.
*/
@@ -86,7 +86,7 @@
}
/**
- * Parses a TrueType "int8" field.
+ * Parses a TrueType "int8" field (1 byte).
* @return The parsed value.
* @throws IOException For I/O Error.
*/
@@ -95,7 +95,7 @@
}
/**
- * Parses a TrueType "uint16" field.
+ * Parses a TrueType "uint16" field (2 bytes).
* @return The parsed value.
* @throws IOException For I/O Error.
*/
@@ -104,7 +104,7 @@
}
/**
- * Parses a TrueType "int16" field.
+ * Parses a TrueType "int16" field (2 bytes).
* @return The parsed value.
* @throws IOException For I/O Error.
*/
@@ -113,7 +113,7 @@
}
/**
- * Parses a TrueType "uint24" field.
+ * Parses a TrueType "uint24" field (3 bytes).
* @return The parsed value.
* @throws IOException For I/O Error.
*/
@@ -123,7 +123,7 @@
}
/**
- * Parses a TrueType "uint32" field.
+ * Parses a TrueType "uint32" field (4 bytes).
* @return The parsed value.
* @throws IOException For I/O Error.
*/
@@ -132,7 +132,7 @@
}
/**
- * Parses a TrueType "int32" field.
+ * Parses a TrueType "int32" field (4 bytes).
* @return The parsed value.
* @throws IOException For I/O Error.
*/
@@ -142,7 +142,7 @@
/**
* Reads a fixed-length decimal number with a 16-bit signed twos-complement mantissa, followed by a 16-bit unsigned
- * fraction.
+ * fraction (total of 4 bytes).
* Note that this format corresponds to a TrueType Font "FIXED" data type, as described in the TTF Spec, Chapter 2
* (Data Types).
* @return The parsed value, as a BigDecimal.
@@ -156,7 +156,7 @@
}
/**
- * Parses a TrueType "FWORD" field.
+ * Parses a TrueType "FWORD" field (2 bytes).
* @return The parsed value.
* @throws IOException For I/O Error.
*/
@@ -165,7 +165,7 @@
}
/**
- * Parses a TrueType "UFWORD" field.
+ * Parses a TrueType "UFWORD" field (2 bytes).
* @return The parsed value.
* @throws IOException For I/O Error.
*/
@@ -174,7 +174,7 @@
}
/**
- * Parses a TrueType "F2DOT14" field.
+ * Parses a TrueType "F2DOT14" field (2 bytes).
* @return The parsed value.
* @throws IOException For I/O Error.
*/
@@ -184,7 +184,7 @@
}
/**
- * Parses a TrueType "LONGDATETIME" field.
+ * Parses a TrueType "LONGDATETIME" field (4 bytes).
* @return The parsed value.
* @throws IOException For I/O Error.
*/
@@ -193,7 +193,7 @@
}
/**
- * Parses a TrueType "Tag" field.
+ * Parses a TrueType "Tag" field (4 bytes).
* @return The parsed value.
* @throws IOException For I/O Error.
*/
@@ -202,7 +202,7 @@
}
/**
- * Parses a TrueType "Offset8" field.
+ * Parses a TrueType "Offset8" field (1 byte).
* @return The parsed value.
* @throws IOException For I/O Error.
*/
@@ -211,7 +211,7 @@
}
/**
- * Parses a TrueType "Offset16" field.
+ * Parses a TrueType "Offset16" field (2 bytes).
* @return The parsed value.
* @throws IOException For I/O Error.
*/
@@ -220,7 +220,7 @@
}
/**
- * Parses a TrueType "Offset24" field.
+ * Parses a TrueType "Offset24" field (3 bytes).
* @return The parsed value.
* @throws IOException For I/O Error.
*/
@@ -229,7 +229,7 @@
}
/**
- * Parses a TrueType "Offset32" field.
+ * Parses a TrueType "Offset32" field (4 bytes).
* @return The parsed value.
* @throws IOException For I/O Error.
*/
@@ -238,7 +238,7 @@
}
/**
- * Parses a TrueType "Version16Dot16" field.
+ * Parses a TrueType "Version16Dot16" field (4 bytes).
* @return The parsed value.
* @throws IOException For I/O Error.
*/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-04-23 12:46:05
|
Revision: 13485
http://sourceforge.net/p/foray/code/13485
Author: victormote
Date: 2025-04-23 12:45:13 +0000 (Wed, 23 Apr 2025)
Log Message:
-----------
Clean up some dependencies in preparation for spinning font parsing into a separate project.
Modified Paths:
--------------
trunk/foray/foray-font/build.gradle
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/RoTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/Os2TableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/PcltTableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java
Added Paths:
-----------
trunk/foray/foray-font-parse/src/main/java/org/
trunk/foray/foray-font-parse/src/main/java/org/foray/
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontFormat.java
trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/ttf/
Modified: trunk/foray/foray-font/build.gradle
===================================================================
--- trunk/foray/foray-font/build.gradle 2025-04-23 11:45:24 UTC (rev 13484)
+++ trunk/foray/foray-font/build.gradle 2025-04-23 12:45:13 UTC (rev 13485)
@@ -23,6 +23,7 @@
implementation (project(':foray-primitive'))
api (project(':foray-xml'))
api (project(':foray-ps-data'))
+ api (project(':foray-font-parse'))
// TODO: FIX THIS!
// testRuntimeOnly (project(':foray-ps'))
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/RoTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/RoTable.java 2025-04-23 11:45:24 UTC (rev 13484)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/RoTable.java 2025-04-23 12:45:13 UTC (rev 13485)
@@ -33,49 +33,6 @@
*/
public abstract class RoTable {
- /**
- * Enumeration of valid <em>table</em> major versions, not to be confused with TrueType or OpenType version numbers.
- */
- public enum MajorVersion {
-
- /** Major version 0. */
- v0(0),
-
- /** Major version 0. */
- v1(1),
-
- /** Major version 0. */
- v2(2),
-
- /** Major version 0. */
- v3(3),
-
- /** Major version 0. */
- v4(4),
-
- /** Major version 0. */
- v5(5);
-
- /** The numeric value. */
- private byte value;
-
- /**
- * Constructor.
- * @param value The numeric value.
- */
- MajorVersion(final int value) {
- this.value = (byte) value;
- }
-
- /**
- * Returns the numeric value.
- * @return The numeric value.
- */
- public byte getValue() {
- return this.value;
- }
- }
-
/** The size, in bytes of the data type "BYTE", that is, 1. */
public static final byte BYTE_BYTES = 1;
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-23 11:45:24 UTC (rev 13484)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-23 12:45:13 UTC (rev 13485)
@@ -63,6 +63,7 @@
import org.foray.font.ttf.table.PostTable;
import org.foray.font.ttf.table.PrepTable;
import org.foray.font.ttf.table.VorgTable;
+import org.foray.fontParse.FontFormat;
import org.foray.primitive.BitUtils;
import org.foray.primitive.sequence.ShortArrayBuilder;
@@ -637,7 +638,7 @@
*/
public int getCapHeight() {
if ((this.os2Table != null)
- && (this.os2Table.getVersion() >= RoTable.MajorVersion.v2.getValue())) {
+ && (this.os2Table.getVersion() >= FontFormat.MajorVersion.v2.getValue())) {
return this.os2Table.getCapHeight();
}
if (this.pcltTable != null) {
@@ -660,7 +661,7 @@
*/
public int getXHeight() {
if ((this.os2Table != null)
- && (this.os2Table.getVersion() >= RoTable.MajorVersion.v2.getValue())) {
+ && (this.os2Table.getVersion() >= FontFormat.MajorVersion.v2.getValue())) {
return this.os2Table.getXHeight();
}
if (this.pcltTable != null) {
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/Os2TableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/Os2TableParser.java 2025-04-23 11:45:24 UTC (rev 13484)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/Os2TableParser.java 2025-04-23 12:45:13 UTC (rev 13485)
@@ -31,9 +31,8 @@
import org.foray.common.primitive.PrimitiveFerry;
import org.foray.font.FontContentHandler;
import org.foray.font.FontParser;
-import org.foray.font.format.Panose4a;
-import org.foray.font.ttf.RwTable;
import org.foray.font.ttf.TtfRandomAccessInput;
+import org.foray.fontParse.FontFormat;
import org.checkerframework.checker.signedness.qual.Unsigned;
@@ -45,6 +44,9 @@
*/
public class Os2TableParser extends FontParser {
+ /** The number of Panose fields. */
+ public static final byte QTY_PANOSE_FIELDS = 10;
+
@Override
public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler consumer)
throws IOException {
@@ -72,7 +74,7 @@
consumer.primitiveField("sFamilyClass", ferry.setShort(input.read_int16())); // 2 bytes, total 32
/* Read the Panose array. */
- final @Unsigned byte[] panoseArray = new byte[Panose4a.Field.values().length]; // 10 bytes, total 42
+ final @Unsigned byte[] panoseArray = new byte[QTY_PANOSE_FIELDS]; // 10 bytes, total 42
for (int i = 0; i < panoseArray.length; i++) {
panoseArray[i] = input.read_uint8();
}
@@ -92,7 +94,7 @@
consumer.primitiveField("usWinAscent", ferry.setInt(input.read_UFWORD())); // 2 bytes, total 76
consumer.primitiveField("usWinDescent", ferry.setInt(input.read_UFWORD())); // 2 bytes, total 78
- if (version < RwTable.MajorVersion.v1.getValue()) {
+ if (version < FontFormat.MajorVersion.v1.getValue()) {
return;
}
@@ -100,7 +102,7 @@
consumer.primitiveField("ulCodePageRange1", ferry.setLong(input.read_uint32())); // 4 bytes, total 82
consumer.primitiveField("ulCodePageRange2", ferry.setLong(input.read_uint32())); // 4 bytes, total 86
- if (version < RwTable.MajorVersion.v2.getValue()) {
+ if (version < FontFormat.MajorVersion.v2.getValue()) {
return;
}
@@ -111,7 +113,7 @@
consumer.primitiveField("usBreakChar", ferry.setInt(input.read_uint16())); // 2 bytes, total 94
consumer.primitiveField("usMaxContext", ferry.setInt(input.read_uint16())); // 2 bytes, total 96
- if (version < RwTable.MajorVersion.v5.getValue()) {
+ if (version < FontFormat.MajorVersion.v5.getValue()) {
return;
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/PcltTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/PcltTableParser.java 2025-04-23 11:45:24 UTC (rev 13484)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/PcltTableParser.java 2025-04-23 12:45:13 UTC (rev 13485)
@@ -32,7 +32,6 @@
import org.foray.font.FontContentHandler;
import org.foray.font.FontParser;
import org.foray.font.ttf.TtfRandomAccessInput;
-import org.foray.font.ttf.table.PcltTable;
import java.io.IOException;
@@ -42,6 +41,15 @@
*/
public class PcltTableParser extends FontParser {
+ /** The size, in bytes, of the "typeface" field. */
+ public static final byte TYPEFACE_CHARS = 16;
+
+ /** The size, in bytes, of the "characterComplement" field. */
+ public static final byte CHARACTER_COMPLEMENT_CHARS = 8;
+
+ /** The size, in TTF "char"s of the "FileName" field. */
+ public static final byte FILE_NAME_CHARS = 6;
+
@Override
public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler consumer)
throws IOException {
@@ -61,11 +69,11 @@
consumer.primitiveField("typeFamily", ferry.setInt(input.read_uint16())); // 2 bytes, total 16
consumer.primitiveField("capHeight", ferry.setInt(input.read_uint16())); // 2 bytes, total 18
consumer.primitiveField("symbolSet", ferry.setInt(input.read_uint16())); // 2 bytes, total 20
- consumer.objectField("typeface", input.readStringASCII(PcltTable.TYPEFACE_CHARS));
+ consumer.objectField("typeface", input.readStringASCII(TYPEFACE_CHARS));
// 16 bytes, total 36
- consumer.objectField("characterComplement", input.readStringASCII(PcltTable.CHARACTER_COMPLEMENT_CHARS));
+ consumer.objectField("characterComplement", input.readStringASCII(CHARACTER_COMPLEMENT_CHARS));
// 8 bytes, total 44
- consumer.objectField("fileName", input.readStringASCII(PcltTable.FILE_NAME_CHARS));
+ consumer.objectField("fileName", input.readStringASCII(FILE_NAME_CHARS));
// 6 bytes, total 50
consumer.primitiveField("strokeWeight", ferry.setByte(input.read_int8())); // 1 bytes, total 51
consumer.primitiveField("widthType", ferry.setByte(input.read_int8())); // 1 bytes, total 52
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java 2025-04-23 11:45:24 UTC (rev 13484)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java 2025-04-23 12:45:13 UTC (rev 13485)
@@ -70,15 +70,6 @@
}
- /** The size, in bytes, of the "typeface" field. */
- public static final byte TYPEFACE_CHARS = 16;
-
- /** The size, in bytes, of the "characterComplement" field. */
- public static final byte CHARACTER_COMPLEMENT_CHARS = 8;
-
- /** The size, in TTF "char"s of the "FileName" field. */
- public static final byte FILE_NAME_CHARS = 6;
-
/** Mask suitable for determining whether the font has serifs by applying
* it against the "SerifStyle" byte.
* According to the PCLT doc, the font has serifs if the top two bits
Added: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontFormat.java
===================================================================
--- trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontFormat.java (rev 0)
+++ trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontFormat.java 2025-04-23 12:45:13 UTC (rev 13485)
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.fontParse;
+
+public class FontFormat {
+
+ /**
+ * Enumeration of valid <em>table</em> major versions, not to be confused with TrueType or OpenType version numbers.
+ */
+ public enum MajorVersion {
+
+ /** Major version 0. */
+ v0(0),
+
+ /** Major version 0. */
+ v1(1),
+
+ /** Major version 0. */
+ v2(2),
+
+ /** Major version 0. */
+ v3(3),
+
+ /** Major version 0. */
+ v4(4),
+
+ /** Major version 0. */
+ v5(5);
+
+ /** The numeric value. */
+ private byte value;
+
+ /**
+ * Constructor.
+ * @param value The numeric value.
+ */
+ MajorVersion(final int value) {
+ this.value = (byte) value;
+ }
+
+ /**
+ * Returns the numeric value.
+ * @return The numeric value.
+ */
+ public byte getValue() {
+ return this.value;
+ }
+ }
+
+}
Property changes on: trunk/foray/foray-font-parse/src/main/java/org/foray/fontParse/FontFormat.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-04-23 11:45:44
|
Revision: 13484
http://sourceforge.net/p/foray/code/13484
Author: victormote
Date: 2025-04-23 11:45:24 +0000 (Wed, 23 Apr 2025)
Log Message:
-----------
Add new project foray-font-parse.
Modified Paths:
--------------
trunk/foray/settings.gradle
Added Paths:
-----------
trunk/foray/foray-font-parse/
trunk/foray/foray-font-parse/build.gradle
trunk/foray/foray-font-parse/src/
trunk/foray/foray-font-parse/src/main/
trunk/foray/foray-font-parse/src/main/java/
trunk/foray/foray-font-parse/src/test/
trunk/foray/foray-font-parse/src/test/java/
Added: trunk/foray/foray-font-parse/build.gradle
===================================================================
--- trunk/foray/foray-font-parse/build.gradle (rev 0)
+++ trunk/foray/foray-font-parse/build.gradle 2025-04-23 11:45:24 UTC (rev 13484)
@@ -0,0 +1,20 @@
+plugins {
+ id 'foray.library-conventions'
+ id 'foray.test-conventions'
+ id 'foray.logging-conventions'
+}
+
+description = 'foray-font-parse'
+
+dependencies {
+
+ api (project(':foray-common'))
+}
+
+javadoc {
+ options.windowTitle = "FOray Font Parse API"
+ options.docTitle = "FOray Font Parse API"
+ options.header = "FOray Font Parse API ${version}"
+}
+
+/* Last line of script. */
Property changes on: trunk/foray/foray-font-parse/build.gradle
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Modified: trunk/foray/settings.gradle
===================================================================
--- trunk/foray/settings.gradle 2025-04-23 11:20:15 UTC (rev 13483)
+++ trunk/foray/settings.gradle 2025-04-23 11:45:24 UTC (rev 13484)
@@ -7,6 +7,7 @@
include 'foray-content'
include 'foray-core'
include 'foray-font'
+include 'foray-font-parse'
include 'foray-fotree'
include 'foray-graphic'
include 'foray-layout'
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-04-23 11:20:39
|
Revision: 13483
http://sourceforge.net/p/foray/code/13483
Author: victormote
Date: 2025-04-23 11:20:15 +0000 (Wed, 23 Apr 2025)
Log Message:
-----------
Move constants to parser in preparation for separation of parser code.
Modified Paths:
--------------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseCoordTableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseCoordTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseCoordTableParser.java 2025-04-23 10:58:03 UTC (rev 13482)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseCoordTableParser.java 2025-04-23 11:20:15 UTC (rev 13483)
@@ -32,7 +32,6 @@
import org.foray.font.FontContentHandler;
import org.foray.font.FontParser;
import org.foray.font.ttf.TtfRandomAccessInput;
-import org.foray.font.ttf.table.BaseCoordTable;
import java.io.IOException;
@@ -42,6 +41,15 @@
*/
public class BaseCoordTableParser extends FontParser {
+ /** Identifier for Format 1. */
+ public static final byte FORMAT_1_IDENTIFIER = 1;
+
+ /** Identifier for Format 2. */
+ public static final byte FORMAT_2_IDENTIFIER = 2;
+
+ /** Identifier for Format 3. */
+ public static final byte FORMAT_3_IDENTIFIER = 3;
+
@Override
public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler handler)
throws IOException {
@@ -54,13 +62,13 @@
handler.primitiveField("coordinate", ferry.setShort(input.read_int16())); // 2 bytes, total 4
/* Fields for format 2 only. */
- if (format == BaseCoordTable.FORMAT_2_IDENTIFIER) {
+ if (format == FORMAT_2_IDENTIFIER) {
handler.primitiveField("referenceGlyph", ferry.setShort(input.read_uint16())); // 2 bytes, total 4
handler.primitiveField("baseCoordPoint", ferry.setShort(input.read_uint16())); // 2 bytes, total 4
}
/* Fields for format 3 only. */
- if (format == BaseCoordTable.FORMAT_3_IDENTIFIER) {
+ if (format == FORMAT_3_IDENTIFIER) {
/* TODO: Parse either a {@link DeviceTable} instance or a {@link VariationIndexTable} instance, depending
* on whether this font is non-variable or variable respectively. We don't know how to determine that
* yet nor the best way to get that information to this parser. */
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java 2025-04-23 10:58:03 UTC (rev 13482)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java 2025-04-23 11:20:15 UTC (rev 13483)
@@ -72,15 +72,6 @@
}
- /** Identifier for Format 1. */
- public static final byte FORMAT_1_IDENTIFIER = 1;
-
- /** Identifier for Format 2. */
- public static final byte FORMAT_2_IDENTIFIER = 2;
-
- /** Identifier for Format 3. */
- public static final byte FORMAT_3_IDENTIFIER = 3;
-
/** (All formats) The format identifier. Should be 1, 2, or 3. */
private byte format;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-04-23 10:58:31
|
Revision: 13482
http://sourceforge.net/p/foray/code/13482
Author: victormote
Date: 2025-04-23 10:58:03 +0000 (Wed, 23 Apr 2025)
Log Message:
-----------
Progress parsing the BASE table and related subtables.
Modified Paths:
--------------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseAxisTableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseMinMaxTableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseScriptTableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseAxisTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseAxisTableParser.java 2025-04-23 02:53:54 UTC (rev 13481)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseAxisTableParser.java 2025-04-23 10:58:03 UTC (rev 13482)
@@ -56,10 +56,10 @@
// ********** Base Tag List Subtable **********
if (baseTagListOffset > 0) {
input.seek(offset + baseTagListOffset);
- final short baseTagCount = input.read_uint16();
- handler.primitiveField("baseTagCount", ferry.setShort(baseTagCount));
+ final short baseTagCount = input.read_uint16();
+ handler.primitiveField("baseTagCount", ferry.setShort(baseTagCount));
for (int index = 0; index < baseTagCount; index ++) {
- handler.objectField("baselineTag", input.read_Tag());
+ handler.objectField("baselineTag", input.read_Tag());
}
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseMinMaxTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseMinMaxTableParser.java 2025-04-23 02:53:54 UTC (rev 13481)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseMinMaxTableParser.java 2025-04-23 10:58:03 UTC (rev 13482)
@@ -28,6 +28,7 @@
package org.foray.font.ttf.parse;
+import org.foray.common.primitive.PrimitiveFerry;
import org.foray.font.FontContentHandler;
import org.foray.font.FontParser;
import org.foray.font.ttf.TtfRandomAccessInput;
@@ -41,12 +42,56 @@
public class BaseMinMaxTableParser extends FontParser {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler startingHandler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler handler)
throws IOException {
-// final FontContentHandler handler = initialize(startingHandler);
-// final PrimitiveFerry ferry = new PrimitiveFerry();
-// input.seek(offset);
+ final PrimitiveFerry ferry = new PrimitiveFerry();
+ input.seek(offset);
+ final short minCoordOffset = input.read_Offset16(); // 2 bytes, total 2
+ handler.primitiveField("minCoordOffset", ferry.setShort(minCoordOffset));
+ if (minCoordOffset > 0) {
+ final FontContentHandler newHandler = handler.startTable("min-coord");
+ final BaseCoordTableParser parser = new BaseCoordTableParser();
+ parser.parse(input, minCoordOffset, newHandler);
+ }
+
+ final short maxCoordOffset = input.read_Offset16(); // 2 bytes, total 4
+ handler.primitiveField("maxCoordOffset", ferry.setShort(maxCoordOffset));
+ if (maxCoordOffset > 0) {
+ final FontContentHandler newHandler = handler.startTable("max-coord");
+ final BaseCoordTableParser parser = new BaseCoordTableParser();
+ parser.parse(input, maxCoordOffset, newHandler);
+ }
+
+ final short featMinMaxCount = input.read_uint16(); // 2 bytes, total 6
+ handler.primitiveField("featMinMaxCount", ferry.setShort(featMinMaxCount));
+
+
+
+
+
+
+ for (int index = 0; index < featMinMaxCount; index ++) {
+ handler.objectField("featureTag", input.read_Tag()); // 4 bytes, total 4
+
+ final short featureMinCoordOffset = input.read_Offset16(); // 2 bytes, total 6
+ handler.primitiveField("featureMinCoordOffset", ferry.setShort(featureMinCoordOffset));
+ if (featureMinCoordOffset > 0) {
+ final FontContentHandler newHandler = handler.startTable("feature-min-coord");
+ final BaseCoordTableParser parser = new BaseCoordTableParser();
+ final int newOffset = offset + featureMinCoordOffset;
+ parser.parse(input, newOffset, newHandler);
+ }
+
+ final short featureMaxCoordOffset = input.read_Offset16(); // 2 bytes, total 8
+ handler.primitiveField("featureMaxCoordOffset", ferry.setShort(featureMaxCoordOffset));
+ if (featureMaxCoordOffset > 0) {
+ final FontContentHandler newHandler = handler.startTable("feature-max-coord");
+ final BaseCoordTableParser parser = new BaseCoordTableParser();
+ final int newOffset = offset + featureMaxCoordOffset;
+ parser.parse(input, newOffset, newHandler);
+ }
+ }
}
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseScriptTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseScriptTableParser.java 2025-04-23 02:53:54 UTC (rev 13481)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseScriptTableParser.java 2025-04-23 10:58:03 UTC (rev 13482)
@@ -71,6 +71,14 @@
final int valuesOffset = offset + baseValuesOffset;
parser.parse(input, valuesOffset, newHandler);
}
+
+ if (defaultMinMaxOffset != 0) {
+ final FontContentHandler newHandler = handler.startTable("minmax");
+ final BaseMinMaxTableParser parser = new BaseMinMaxTableParser();
+ final int minMaxOffset = offset + defaultMinMaxOffset;
+ parser.parse(input, minMaxOffset, newHandler);
+ }
+
}
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java 2025-04-23 02:53:54 UTC (rev 13481)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java 2025-04-23 10:58:03 UTC (rev 13482)
@@ -33,7 +33,7 @@
import org.foray.font.ttf.TtfContentHandler;
/**
- * A BASE table, MinMaxValues subtable.
+ * A BASE table, MinMax subtable.
*/
public class BaseMinMaxTable extends RoTable {
@@ -63,6 +63,12 @@
}
+ /** The minimum Coord. */
+ private BaseCoordTable minCoord;
+
+ /** The maximum Coord. */
+ private BaseCoordTable maxCoord;
+
/**
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
@@ -72,4 +78,20 @@
return table.new ContentHandler(table);
}
+ /**
+ * Returns the minimum Coord.
+ * @return The minCoord.
+ */
+ public BaseCoordTable getMinCoord() {
+ return minCoord;
+ }
+
+ /**
+ * Returns the maximum Coord.
+ * @return The maxCoord.
+ */
+ public BaseCoordTable getMaxCoord() {
+ return maxCoord;
+ }
+
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java 2025-04-23 02:53:54 UTC (rev 13481)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java 2025-04-23 10:58:03 UTC (rev 13482)
@@ -87,6 +87,12 @@
}
+ /** The values for this script. */
+ private BaseValuesTable values;
+
+ /** The default MinMax for this script. */
+ private BaseMinMaxTable defaultMinMax;
+
/** The base language system tags for this script. */
private List<String> baseLangSysTags;
@@ -93,9 +99,6 @@
/** The min-max tables for this script. */
private List<BaseMinMaxTable> minMaxTables;
- /** The values for this script. */
- private BaseValuesTable values;
-
/**
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
@@ -113,4 +116,12 @@
return this.values;
}
+ /**
+ * Returns the default MinMax for this script.
+ * @return The default MinMax for this script.
+ */
+ public BaseMinMaxTable getDefaultMinMax() {
+ return this.defaultMinMax;
+ }
+
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-04-23 02:54:12
|
Revision: 13481
http://sourceforge.net/p/foray/code/13481
Author: victormote
Date: 2025-04-23 02:53:54 +0000 (Wed, 23 Apr 2025)
Log Message:
-----------
Simplify FontParser. Management of a handler stack is not needed.
Modified Paths:
--------------
trunk/foray/foray-font/src/main/java/org/foray/font/FontParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseAxisTableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseCoordTableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseScriptTableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseTableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseValuesTableParser.java
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/FontParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/FontParser.java 2025-04-23 02:47:49 UTC (rev 13480)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/FontParser.java 2025-04-23 02:53:54 UTC (rev 13481)
@@ -31,7 +31,6 @@
import org.foray.font.ttf.TtfRandomAccessInput;
import java.io.IOException;
-import java.util.Stack;
/**
* Parses font files and produces events to be consumed by a {@link FontContentHandler}.
@@ -41,9 +40,6 @@
*/
public abstract class FontParser {
- /** The stack of font handlers. */
- private Stack<FontContentHandler> contentHandlerStack = new Stack<FontContentHandler>();
-
/**
* Parses the input.
* @param input The input to be parsed.
@@ -54,44 +50,4 @@
public abstract void parse(TtfRandomAccessInput input, int offset, FontContentHandler consumer)
throws IOException;
- /**
- * Starts parsing a table by passing an initial content handler.
- * Used primarily by the outermost table to start the parsing.
- * @param initialHandler The initial content handler.
- * @return The handler passed in, for chaining.
- */
- public FontContentHandler initialize(final FontContentHandler initialHandler) {
- if (! contentHandlerStack.isEmpty()) {
- throw new IllegalStateException("Content handler stack should be empty at parser initialization.");
- }
- this.contentHandlerStack.push(initialHandler);
- return initialHandler;
- }
-
- /**
- * General tasks handled at the beginning of a new table.
- * @param tableName The name of the table that whose parsing is about to begin.
- * This will be used to fire a startTable event for the handler at the top of the stack.
- * That event returns the new handler to be used for the new table, which will be pushed onto the stack of handlers.
- * @return The new handler obtained from the old handler.
- */
- protected FontContentHandler startTable(final String tableName) {
- /* We deliberately don't do any state checking on the stack. The subclass must do that. */
- final FontContentHandler newHandler = this.contentHandlerStack.peek().startTable(tableName);
- if (newHandler == null) {
- this.contentHandlerStack.push(this.contentHandlerStack.peek());
- } else {
- this.contentHandlerStack.push(newHandler);
- }
- return newHandler;
- }
-
- /**
- * General tasks handled at the end a new table.
- * Pops the handler that was presented during {@link #startTable(FontContentHandler)}.
- */
- protected void endTable() {
- this.contentHandlerStack.pop();
- }
-
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseAxisTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseAxisTableParser.java 2025-04-23 02:47:49 UTC (rev 13480)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseAxisTableParser.java 2025-04-23 02:53:54 UTC (rev 13481)
@@ -42,9 +42,8 @@
public class BaseAxisTableParser extends FontParser {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler startingHandler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler handler)
throws IOException {
- final FontContentHandler handler = initialize(startingHandler);
final PrimitiveFerry ferry = new PrimitiveFerry();
input.seek(offset);
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseCoordTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseCoordTableParser.java 2025-04-23 02:47:49 UTC (rev 13480)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseCoordTableParser.java 2025-04-23 02:53:54 UTC (rev 13481)
@@ -43,9 +43,8 @@
public class BaseCoordTableParser extends FontParser {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler startingHandler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler handler)
throws IOException {
- final FontContentHandler handler = initialize(startingHandler);
final PrimitiveFerry ferry = new PrimitiveFerry();
input.seek(offset);
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseScriptTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseScriptTableParser.java 2025-04-23 02:47:49 UTC (rev 13480)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseScriptTableParser.java 2025-04-23 02:53:54 UTC (rev 13481)
@@ -42,9 +42,8 @@
public class BaseScriptTableParser extends FontParser {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler startingHandler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler handler)
throws IOException {
- final FontContentHandler handler = initialize(startingHandler);
final PrimitiveFerry ferry = new PrimitiveFerry();
input.seek(offset);
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseTableParser.java 2025-04-23 02:47:49 UTC (rev 13480)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseTableParser.java 2025-04-23 02:53:54 UTC (rev 13481)
@@ -42,9 +42,8 @@
public class BaseTableParser extends FontParser {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler startingHandler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler handler)
throws IOException {
- final FontContentHandler handler = initialize(startingHandler);
final PrimitiveFerry ferry = new PrimitiveFerry();
input.seek(offset);
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseValuesTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseValuesTableParser.java 2025-04-23 02:47:49 UTC (rev 13480)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseValuesTableParser.java 2025-04-23 02:53:54 UTC (rev 13481)
@@ -42,9 +42,8 @@
public class BaseValuesTableParser extends FontParser {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler startingHandler)
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler handler)
throws IOException {
- final FontContentHandler handler = initialize(startingHandler);
final PrimitiveFerry ferry = new PrimitiveFerry();
input.seek(offset);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-04-23 02:48:08
|
Revision: 13480
http://sourceforge.net/p/foray/code/13480
Author: victormote
Date: 2025-04-23 02:47:49 +0000 (Wed, 23 Apr 2025)
Log Message:
-----------
Progress parsing the BASE table and related subtables.
Modified Paths:
--------------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseAxisTableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseScriptTableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java
trunk/foray/foray-font/src/test/java/org/foray/font/ttf/TrueTypeFontParserTests.java
Added Paths:
-----------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseCoordTableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseMinMaxTableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseValuesTableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseAxisTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseAxisTableParser.java 2025-04-22 14:41:58 UTC (rev 13479)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseAxisTableParser.java 2025-04-23 02:47:49 UTC (rev 13480)
@@ -55,11 +55,13 @@
// ********** Base Tag List Subtable **********
- input.seek(offset + baseTagListOffset);
- final short baseTagCount = input.read_uint16();
- handler.primitiveField("baseTagCount", ferry.setShort(baseTagCount));
- for (int index = 0; index < baseTagCount; index ++) {
- handler.objectField("baselineTag", input.read_Tag());
+ if (baseTagListOffset > 0) {
+ input.seek(offset + baseTagListOffset);
+ final short baseTagCount = input.read_uint16();
+ handler.primitiveField("baseTagCount", ferry.setShort(baseTagCount));
+ for (int index = 0; index < baseTagCount; index ++) {
+ handler.objectField("baselineTag", input.read_Tag());
+ }
}
// ********** Base Script List Subtable **********
@@ -66,18 +68,20 @@
input.seek(offset + baseScriptListOffset);
final short baseScriptCount = input.read_uint16();
handler.primitiveField("baseScriptCount", ferry.setShort(baseScriptCount));
+
+
final short[] baseScriptOffsets = new short[baseScriptCount];
for (int index = 0; index < baseScriptCount; index ++) {
handler.objectField("baseScriptTag", input.read_Tag());
final short baseScriptOffset = input.read_Offset16();
handler.primitiveField("baseScriptOffset", ferry.setShort(baseScriptOffset));
+ baseScriptOffsets[index] = baseScriptOffset;
}
- // ********** Base Script Subtable **********
- for (int index = 0; index < baseScriptOffsets.length; index ++) {
+ for (int index = 0; index < baseScriptCount; index ++) {
final FontContentHandler newHandler = handler.startTable("script");
final BaseScriptTableParser parser = new BaseScriptTableParser();
- final int scriptTableOffset = baseScriptListOffset + baseScriptOffsets[index];
+ final int scriptTableOffset = offset + baseScriptListOffset + baseScriptOffsets[index];
parser.parse(input, scriptTableOffset, newHandler);
}
Added: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseCoordTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseCoordTableParser.java (rev 0)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseCoordTableParser.java 2025-04-23 02:47:49 UTC (rev 13480)
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.font.ttf.parse;
+
+import org.foray.common.primitive.PrimitiveFerry;
+import org.foray.font.FontContentHandler;
+import org.foray.font.FontParser;
+import org.foray.font.ttf.TtfRandomAccessInput;
+import org.foray.font.ttf.table.BaseCoordTable;
+
+import java.io.IOException;
+
+/**
+ * Parses a TTF BASE table, Coord Subtable.
+ * @see org.foray.font.ttf.table.BaseCoordTable
+ */
+public class BaseCoordTableParser extends FontParser {
+
+ @Override
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler startingHandler)
+ throws IOException {
+ final FontContentHandler handler = initialize(startingHandler);
+ final PrimitiveFerry ferry = new PrimitiveFerry();
+ input.seek(offset);
+
+ /* Fields common to all formats. */
+ final short format = input.read_uint16(); // 2 bytes, total 2
+ handler.primitiveField("format", ferry.setShort(format));
+ handler.primitiveField("coordinate", ferry.setShort(input.read_int16())); // 2 bytes, total 4
+
+ /* Fields for format 2 only. */
+ if (format == BaseCoordTable.FORMAT_2_IDENTIFIER) {
+ handler.primitiveField("referenceGlyph", ferry.setShort(input.read_uint16())); // 2 bytes, total 4
+ handler.primitiveField("baseCoordPoint", ferry.setShort(input.read_uint16())); // 2 bytes, total 4
+ }
+
+ /* Fields for format 3 only. */
+ if (format == BaseCoordTable.FORMAT_3_IDENTIFIER) {
+ /* TODO: Parse either a {@link DeviceTable} instance or a {@link VariationIndexTable} instance, depending
+ * on whether this font is non-variable or variable respectively. We don't know how to determine that
+ * yet nor the best way to get that information to this parser. */
+ }
+ }
+
+}
Property changes on: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseCoordTableParser.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Added: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseMinMaxTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseMinMaxTableParser.java (rev 0)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseMinMaxTableParser.java 2025-04-23 02:47:49 UTC (rev 13480)
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.font.ttf.parse;
+
+import org.foray.font.FontContentHandler;
+import org.foray.font.FontParser;
+import org.foray.font.ttf.TtfRandomAccessInput;
+
+import java.io.IOException;
+
+/**
+ * Parses a TTF BASE table, MinMax subtable.
+ * @see org.foray.font.ttf.table.BaseMinMaxTable
+ */
+public class BaseMinMaxTableParser extends FontParser {
+
+ @Override
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler startingHandler)
+ throws IOException {
+// final FontContentHandler handler = initialize(startingHandler);
+// final PrimitiveFerry ferry = new PrimitiveFerry();
+// input.seek(offset);
+
+ }
+
+}
Property changes on: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseMinMaxTableParser.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseScriptTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseScriptTableParser.java 2025-04-22 14:41:58 UTC (rev 13479)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseScriptTableParser.java 2025-04-23 02:47:49 UTC (rev 13480)
@@ -36,8 +36,8 @@
import java.io.IOException;
/**
- * Parses a TTF BASE table.
- * @see org.foray.font.ttf.table.BaseTable
+ * Parses a TTF BASE table, Script Subtable.
+ * @see org.foray.font.ttf.table.BaseScriptTable
*/
public class BaseScriptTableParser extends FontParser {
@@ -54,6 +54,24 @@
handler.primitiveField("defaultMinMaxOffset", ferry.setShort(defaultMinMaxOffset));
final short baseLangSysCount = input.read_uint16(); // 2 bytes, total 6
handler.primitiveField("baseLangSysCount", ferry.setShort(baseLangSysCount));
+
+ for (int index = 0; index < baseLangSysCount; index ++) {
+ handler.objectField("baseLangSysTag", input.read_Tag());
+ final short minMaxOffset = input.read_Offset16();
+ handler.primitiveField("minMaxOffset", ferry.setShort(minMaxOffset));
+
+ final FontContentHandler newHandler = handler.startTable("minMax");
+ final BaseMinMaxTableParser parser = new BaseMinMaxTableParser();
+ final int newParserOffset = offset + minMaxOffset;
+ parser.parse(input, newParserOffset, newHandler);
+ }
+
+ if (baseValuesOffset != 0) {
+ final FontContentHandler newHandler = handler.startTable("values");
+ final BaseValuesTableParser parser = new BaseValuesTableParser();
+ final int valuesOffset = offset + baseValuesOffset;
+ parser.parse(input, valuesOffset, newHandler);
+ }
}
}
Added: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseValuesTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseValuesTableParser.java (rev 0)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseValuesTableParser.java 2025-04-23 02:47:49 UTC (rev 13480)
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.font.ttf.parse;
+
+import org.foray.common.primitive.PrimitiveFerry;
+import org.foray.font.FontContentHandler;
+import org.foray.font.FontParser;
+import org.foray.font.ttf.TtfRandomAccessInput;
+
+import java.io.IOException;
+
+/**
+ * Parses a TTF BASE table, Values Subtable.
+ * @see org.foray.font.ttf.table.BaseValuesTable
+ */
+public class BaseValuesTableParser extends FontParser {
+
+ @Override
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler startingHandler)
+ throws IOException {
+ final FontContentHandler handler = initialize(startingHandler);
+ final PrimitiveFerry ferry = new PrimitiveFerry();
+ input.seek(offset);
+
+ handler.primitiveField("defaultBaselineIndex", ferry.setShort(input.read_uint16())); // 2 bytes, total 2
+ final short baseCoordCount = input.read_uint16(); // 2 bytes, total 4
+ handler.primitiveField("baseCoordCount", ferry.setShort(baseCoordCount));
+
+ for (int index = 0; index < baseCoordCount; index ++) {
+ final short baseCoordOffset = input.read_Offset16();
+ handler.primitiveField("baseCoordOffset", ferry.setShort(baseCoordOffset));
+
+ final FontContentHandler newHandler = handler.startTable("coord");
+ final BaseCoordTableParser parser = new BaseCoordTableParser();
+ final int coordOffset = offset + baseCoordOffset;
+ parser.parse(input, coordOffset, newHandler);
+ }
+ }
+
+}
Property changes on: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseValuesTableParser.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java 2025-04-22 14:41:58 UTC (rev 13479)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseCoordTable.java 2025-04-23 02:47:49 UTC (rev 13480)
@@ -62,10 +62,25 @@
@Override
public void primitiveField(final String fieldName, final PrimitiveFerry value) {
+ switch (fieldName) {
+ case "format": getTable().format = (byte) value.getShort(); break;
+ case "coordinate": getTable().coordinate = value.getShort(); break;
+ case "referenceGlyph": getTable().referenceGlyph = value.getShort(); break;
+ case "baseCoordPoint": getTable().baseCoordPoint = value.getShort(); break;
+ }
}
}
+ /** Identifier for Format 1. */
+ public static final byte FORMAT_1_IDENTIFIER = 1;
+
+ /** Identifier for Format 2. */
+ public static final byte FORMAT_2_IDENTIFIER = 2;
+
+ /** Identifier for Format 3. */
+ public static final byte FORMAT_3_IDENTIFIER = 3;
+
/** (All formats) The format identifier. Should be 1, 2, or 3. */
private byte format;
Added: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java (rev 0)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java 2025-04-23 02:47:49 UTC (rev 13480)
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2025 The FOray Project.
+ * http://www.foray.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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.font.ttf.table;
+
+import org.foray.common.primitive.PrimitiveFerry;
+import org.foray.font.ttf.RoTable;
+import org.foray.font.ttf.TtfContentHandler;
+
+/**
+ * A BASE table, MinMaxValues subtable.
+ */
+public class BaseMinMaxTable extends RoTable {
+
+ /** The handler of events from the parser. */
+ private final class ContentHandler extends TtfContentHandler<BaseMinMaxTable> {
+
+ /**
+ * Constructor.
+ * @param table The client being built from the parser results.
+ */
+ private ContentHandler(final BaseMinMaxTable table) {
+ super(table);
+ }
+
+ @Override
+ public TtfContentHandler<?> startTable(final String tableName) {
+ return null;
+ }
+
+ @Override
+ public void objectField(final String fieldName, final Object value) {
+ }
+
+ @Override
+ public void primitiveField(final String fieldName, final PrimitiveFerry value) {
+ }
+
+ }
+
+ /**
+ * Creates a table instance and a content handler for that instance.
+ * @return A new content handler.
+ */
+ public static TtfContentHandler<BaseMinMaxTable> createContentHandler() {
+ final BaseMinMaxTable table = new BaseMinMaxTable();
+ return table.new ContentHandler(table);
+ }
+
+}
Property changes on: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseMinMaxTable.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java 2025-04-22 14:41:58 UTC (rev 13479)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseScriptTable.java 2025-04-23 02:47:49 UTC (rev 13480)
@@ -32,6 +32,9 @@
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* A BASE table, ScriptList subtable.
*/
@@ -50,19 +53,46 @@
@Override
public TtfContentHandler<?> startTable(final String tableName) {
+ switch (tableName) {
+ case "minMax": {
+ final TtfContentHandler<BaseMinMaxTable> handler = BaseMinMaxTable.createContentHandler();
+ getTable().minMaxTables.add(handler.getTable());
+ return handler;
+ }
+ case "values": {
+ final TtfContentHandler<BaseValuesTable> handler = BaseValuesTable.createContentHandler();
+ getTable().values = handler.getTable();
+ return handler;
+ }
+ }
return null;
}
@Override
public void objectField(final String fieldName, final Object value) {
+ switch (fieldName) {
+ case "baseLangSysTag": getTable().baseLangSysTags.add((String) value);
+ }
}
@Override
public void primitiveField(final String fieldName, final PrimitiveFerry value) {
+ switch (fieldName) {
+ case "baseLangSysCount": {
+ getTable().baseLangSysTags = new ArrayList<String>(value.getShort());
+ getTable().minMaxTables = new ArrayList<BaseMinMaxTable>(value.getShort());
+ }
+ }
}
}
+ /** The base language system tags for this script. */
+ private List<String> baseLangSysTags;
+
+ /** The min-max tables for this script. */
+ private List<BaseMinMaxTable> minMaxTables;
+
/** The values for this script. */
private BaseValuesTable values;
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java 2025-04-22 14:41:58 UTC (rev 13479)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/BaseValuesTable.java 2025-04-23 02:47:49 UTC (rev 13480)
@@ -32,6 +32,9 @@
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* A BASE table, BaseValues subtable.
*/
@@ -50,7 +53,14 @@
@Override
public TtfContentHandler<?> startTable(final String tableName) {
- return null;
+ switch (tableName) {
+ case "coord": {
+ final TtfContentHandler<BaseCoordTable> handler = BaseCoordTable.createContentHandler();
+ getTable().coordTables.add(handler.getTable());
+ return handler;
+ }
+ default: return null;
+ }
}
@Override
@@ -59,6 +69,10 @@
@Override
public void primitiveField(final String fieldName, final PrimitiveFerry value) {
+ switch (fieldName) {
+ case "defaultBaselineIndex": getTable().defaultBaselineIndex = value.getShort(); break;
+ case "baseCoordCount": getTable().coordTables = new ArrayList<BaseCoordTable>(value.getShort()); break;
+ }
}
}
@@ -66,6 +80,9 @@
/** Index into the tags array for the default baseline for this script. */
private short defaultBaselineIndex;
+ /** The coord tables. */
+ private List<BaseCoordTable> coordTables;
+
/**
* Creates a table instance and a content handler for that instance.
* @return A new content handler.
@@ -83,4 +100,21 @@
return this.defaultBaselineIndex;
}
+ /**
+ * Returns the quantity of coord tables.
+ * @return the quantity of coord tables.
+ */
+ public int getQtyCoordTables() {
+ return this.coordTables.size();
+ }
+
+ /**
+ * Returns the coord table at a given index.
+ * @param index The index of the coord table to be returned.
+ * @return the coord table at {@code index}.
+ */
+ public BaseCoordTable getCoordTable(final int index) {
+ return this.coordTables.get(index);
+ }
+
}
Modified: trunk/foray/foray-font/src/test/java/org/foray/font/ttf/TrueTypeFontParserTests.java
===================================================================
--- trunk/foray/foray-font/src/test/java/org/foray/font/ttf/TrueTypeFontParserTests.java 2025-04-22 14:41:58 UTC (rev 13479)
+++ trunk/foray/foray-font/src/test/java/org/foray/font/ttf/TrueTypeFontParserTests.java 2025-04-23 02:47:49 UTC (rev 13480)
@@ -34,7 +34,9 @@
import org.foray.font.format.FontParser;
import org.foray.font.format.Panose4a;
import org.foray.font.ttf.table.BaseAxisTable;
+import org.foray.font.ttf.table.BaseScriptTable;
import org.foray.font.ttf.table.BaseTable;
+import org.foray.font.ttf.table.BaseValuesTable;
import org.axsl.font.FontException;
import org.axsl.font.Panose;
@@ -218,7 +220,8 @@
assertNotNull(baseTable);
final BaseAxisTable horizontal = baseTable.getHorizontal();
- /* Not sure how to verify any of the following assertions. */
+ /* Not sure how to verify any of the following assertions. For now, the assertions are simply reporting what is
+ * happening, not necessarily what should be happening. */
assertNotNull(horizontal);
assertNull(baseTable.getVertical());
@@ -229,6 +232,17 @@
assertEquals(2, horizontal.getQtyScripts());
assertEquals("hani", horizontal.getScriptTag(0));
assertEquals("latn", horizontal.getScriptTag(1));
+
+ final BaseScriptTable haniTable = horizontal.getScript(0);
+ assertNotNull(haniTable);
+ final BaseScriptTable latnTable = horizontal.getScript(1);
+ assertNotNull(latnTable);
+
+ final BaseValuesTable haniValuesTable = haniTable.getValues();
+ assertNotNull(haniValuesTable);
+
+ final BaseValuesTable latnValuesTable = latnTable.getValues();
+ assertNotNull(latnValuesTable);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-04-22 14:42:16
|
Revision: 13479
http://sourceforge.net/p/foray/code/13479
Author: victormote
Date: 2025-04-22 14:41:58 +0000 (Tue, 22 Apr 2025)
Log Message:
-----------
Remove size parameter from parse() method, as it is never used and for subtables is not usually known.
Modified Paths:
--------------
trunk/foray/foray-font/src/main/java/org/foray/font/FontParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseAxisTableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseScriptTableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseTableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/HeadTableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/Os2TableParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/PcltTableParser.java
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/FontParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/FontParser.java 2025-04-22 14:35:58 UTC (rev 13478)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/FontParser.java 2025-04-22 14:41:58 UTC (rev 13479)
@@ -48,12 +48,11 @@
* Parses the input.
* @param input The input to be parsed.
* @param offset The offset, in bytes, into {@code input} at which parsing should begin.
- * @param size The size, in bytes, of {@code input} that should be parsed.
* @param consumer The consumer of the parsing.
* @throws IOException For errors reading the input.
*/
- public abstract void parse(TtfRandomAccessInput input, int offset, int size,
- FontContentHandler consumer) throws IOException;
+ public abstract void parse(TtfRandomAccessInput input, int offset, FontContentHandler consumer)
+ throws IOException;
/**
* Starts parsing a table by passing an initial content handler.
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-22 14:35:58 UTC (rev 13478)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-22 14:41:58 UTC (rev 13479)
@@ -197,7 +197,7 @@
TtfOffsetTableRecord dirEntry = ttfTableDir.getTableDirectoryEntry("head");
contentHandler = HeadTable.createContentHandler();
parser = new HeadTableParser();
- parser.parse(raInput, dirEntry.getOffset(), dirEntry.getLength(), contentHandler);
+ parser.parse(raInput, dirEntry.getOffset(), contentHandler);
font.headTable = (HeadTable) contentHandler.getTable();
/* Then the Maximum Profile, so general sizes are known. */
@@ -231,7 +231,7 @@
dirEntry = ttfTableDir.getTableDirectoryEntry("OS/2");
contentHandler = Os2Table.createContentHandler();
parser = new Os2TableParser();
- parser.parse(raInput, dirEntry.getOffset(), dirEntry.getLength(), contentHandler);
+ parser.parse(raInput, dirEntry.getOffset(), contentHandler);
font.os2Table = (Os2Table) contentHandler.getTable();
@@ -293,7 +293,7 @@
if (dirEntry != null) {
contentHandler = BaseTable.createContentHandler();
parser = new BaseTableParser();
- parser.parse(raInput, dirEntry.getOffset(), dirEntry.getLength(), contentHandler);
+ parser.parse(raInput, dirEntry.getOffset(), contentHandler);
font.baseTable = (BaseTable) contentHandler.getTable();
}
@@ -328,7 +328,7 @@
if (dirEntry != null) {
contentHandler = PcltTable.createContentHandler();
parser = new PcltTableParser();
- parser.parse(raInput, dirEntry.getOffset(), dirEntry.getLength(), contentHandler);
+ parser.parse(raInput, dirEntry.getOffset(), contentHandler);
font.pcltTable = (PcltTable) contentHandler.getTable();
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseAxisTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseAxisTableParser.java 2025-04-22 14:35:58 UTC (rev 13478)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseAxisTableParser.java 2025-04-22 14:41:58 UTC (rev 13479)
@@ -42,8 +42,8 @@
public class BaseAxisTableParser extends FontParser {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final int size,
- final FontContentHandler startingHandler) throws IOException {
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler startingHandler)
+ throws IOException {
final FontContentHandler handler = initialize(startingHandler);
final PrimitiveFerry ferry = new PrimitiveFerry();
input.seek(offset);
@@ -78,7 +78,7 @@
final FontContentHandler newHandler = handler.startTable("script");
final BaseScriptTableParser parser = new BaseScriptTableParser();
final int scriptTableOffset = baseScriptListOffset + baseScriptOffsets[index];
- parser.parse(input, scriptTableOffset, size, newHandler);
+ parser.parse(input, scriptTableOffset, newHandler);
}
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseScriptTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseScriptTableParser.java 2025-04-22 14:35:58 UTC (rev 13478)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseScriptTableParser.java 2025-04-22 14:41:58 UTC (rev 13479)
@@ -42,8 +42,8 @@
public class BaseScriptTableParser extends FontParser {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final int size,
- final FontContentHandler startingHandler) throws IOException {
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler startingHandler)
+ throws IOException {
final FontContentHandler handler = initialize(startingHandler);
final PrimitiveFerry ferry = new PrimitiveFerry();
input.seek(offset);
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseTableParser.java 2025-04-22 14:35:58 UTC (rev 13478)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/BaseTableParser.java 2025-04-22 14:41:58 UTC (rev 13479)
@@ -42,8 +42,8 @@
public class BaseTableParser extends FontParser {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final int size,
- final FontContentHandler startingHandler) throws IOException {
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler startingHandler)
+ throws IOException {
final FontContentHandler handler = initialize(startingHandler);
final PrimitiveFerry ferry = new PrimitiveFerry();
input.seek(offset);
@@ -74,7 +74,7 @@
final FontContentHandler newHandler = handler.startTable("horizAxis");
final BaseAxisTableParser parser = new BaseAxisTableParser();
final int axisOffset = offset + horizAxisOffset;
- parser.parse(input, axisOffset, size, newHandler);
+ parser.parse(input, axisOffset, newHandler);
}
if (vertAxisOffset > 0) {
@@ -81,7 +81,7 @@
final FontContentHandler newHandler = handler.startTable("vertAxis");
final BaseAxisTableParser parser = new BaseAxisTableParser();
final int axisOffset = offset + vertAxisOffset;
- parser.parse(input, axisOffset, size, newHandler);
+ parser.parse(input, axisOffset, newHandler);
}
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/HeadTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/HeadTableParser.java 2025-04-22 14:35:58 UTC (rev 13478)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/HeadTableParser.java 2025-04-22 14:41:58 UTC (rev 13479)
@@ -42,8 +42,8 @@
public class HeadTableParser extends FontParser {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final int size,
- final FontContentHandler consumer) throws IOException {
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler consumer)
+ throws IOException {
final PrimitiveFerry ferry = new PrimitiveFerry();
input.seek(offset);
final int majorVersion = input.read_uint16(); // 2 bytes, total 2
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/Os2TableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/Os2TableParser.java 2025-04-22 14:35:58 UTC (rev 13478)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/Os2TableParser.java 2025-04-22 14:41:58 UTC (rev 13479)
@@ -46,8 +46,8 @@
public class Os2TableParser extends FontParser {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final int size,
- final FontContentHandler consumer) throws IOException {
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler consumer)
+ throws IOException {
final PrimitiveFerry ferry = new PrimitiveFerry();
input.seek(offset);
final short version = input.read_uint16();
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/PcltTableParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/PcltTableParser.java 2025-04-22 14:35:58 UTC (rev 13478)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/parse/PcltTableParser.java 2025-04-22 14:41:58 UTC (rev 13479)
@@ -43,8 +43,8 @@
public class PcltTableParser extends FontParser {
@Override
- public void parse(final TtfRandomAccessInput input, final int offset, final int size,
- final FontContentHandler consumer) throws IOException {
+ public void parse(final TtfRandomAccessInput input, final int offset, final FontContentHandler consumer)
+ throws IOException {
final PrimitiveFerry ferry = new PrimitiveFerry();
input.seek(offset);
final int majorVersion = input.read_uint16();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-04-22 14:36:16
|
Revision: 13478
http://sourceforge.net/p/foray/code/13478
Author: victormote
Date: 2025-04-22 14:35:58 +0000 (Tue, 22 Apr 2025)
Log Message:
-----------
Use standard pattern for parsing TTF tables.
Modified Paths:
--------------
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java
trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-22 12:58:59 UTC (rev 13477)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/TrueTypeFont.java 2025-04-22 14:35:58 UTC (rev 13478)
@@ -29,10 +29,14 @@
package org.foray.font.ttf;
import org.foray.common.RandomAccessInput;
+import org.foray.font.FontParser;
import org.foray.font.format.Kerning;
import org.foray.font.format.Panose4a;
import org.foray.font.output.FontPdfUtilities;
import org.foray.font.ttf.parse.BaseTableParser;
+import org.foray.font.ttf.parse.HeadTableParser;
+import org.foray.font.ttf.parse.Os2TableParser;
+import org.foray.font.ttf.parse.PcltTableParser;
import org.foray.font.ttf.table.BaseTable;
import org.foray.font.ttf.table.Cff2Table;
import org.foray.font.ttf.table.CffTable;
@@ -182,6 +186,9 @@
}
final TrueTypeFont font = new TrueTypeFont(ttfTableDir);
+ TtfContentHandler<?> contentHandler;
+ FontParser parser;
+
/* The order is somewhat important here. */
/* BEGIN REQUIRED TABLES ************************************************************************************ */
@@ -188,7 +195,10 @@
/* Read the Font Header first. */
TtfOffsetTableRecord dirEntry = ttfTableDir.getTableDirectoryEntry("head");
- font.headTable = HeadTable.parse(raInput, dirEntry.getOffset(), dirEntry.getLength());
+ contentHandler = HeadTable.createContentHandler();
+ parser = new HeadTableParser();
+ parser.parse(raInput, dirEntry.getOffset(), dirEntry.getLength(), contentHandler);
+ font.headTable = (HeadTable) contentHandler.getTable();
/* Then the Maximum Profile, so general sizes are known. */
dirEntry = ttfTableDir.getTableDirectoryEntry("maxp");
@@ -219,8 +229,12 @@
font.postTable = PostTable.parse(raInput, dirEntry.getOffset(), dirEntry.getLength());
dirEntry = ttfTableDir.getTableDirectoryEntry("OS/2");
- font.os2Table = Os2Table.parse(raInput, dirEntry.getOffset(), dirEntry.getLength());
+ contentHandler = Os2Table.createContentHandler();
+ parser = new Os2TableParser();
+ parser.parse(raInput, dirEntry.getOffset(), dirEntry.getLength(), contentHandler);
+ font.os2Table = (Os2Table) contentHandler.getTable();
+
/* BEGIN TRUETYPE-OUTLINE TABLES **************************************************************************** */
dirEntry = ttfTableDir.getTableDirectoryEntry("cvt");
@@ -277,10 +291,10 @@
dirEntry = ttfTableDir.getTableDirectoryEntry("BASE");
if (dirEntry != null) {
- final TtfContentHandler<BaseTable> contentHandler = BaseTable.createContentHandler();
- final BaseTableParser parser = new BaseTableParser();
+ contentHandler = BaseTable.createContentHandler();
+ parser = new BaseTableParser();
parser.parse(raInput, dirEntry.getOffset(), dirEntry.getLength(), contentHandler);
- font.baseTable = contentHandler.getTable();
+ font.baseTable = (BaseTable) contentHandler.getTable();
}
dirEntry = ttfTableDir.getTableDirectoryEntry("GDEF");
@@ -312,7 +326,10 @@
dirEntry = ttfTableDir.getTableDirectoryEntry("PCLT");
if (dirEntry != null) {
- font.pcltTable = PcltTable.parse(raInput, dirEntry.getOffset(), dirEntry.getLength());
+ contentHandler = PcltTable.createContentHandler();
+ parser = new PcltTableParser();
+ parser.parse(raInput, dirEntry.getOffset(), dirEntry.getLength(), contentHandler);
+ font.pcltTable = (PcltTable) contentHandler.getTable();
}
dirEntry = ttfTableDir.getTableDirectoryEntry("kern");
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java 2025-04-22 12:58:59 UTC (rev 13477)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/HeadTable.java 2025-04-22 14:35:58 UTC (rev 13478)
@@ -33,13 +33,9 @@
import org.foray.common.primitive.PrimitiveFerry;
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
-import org.foray.font.ttf.TtfRandomAccessInput;
-import org.foray.font.ttf.parse.HeadTableParser;
import org.axsl.ps.BoundingBox;
-import java.io.IOException;
-
/**
* Class representing a TTF "head" table.
*/
@@ -105,21 +101,15 @@
private short indexToLocFormat;
/**
- * Read the "head" table.
- * @param input The input which is being parsed.
- * @param offset The offset into {@code input} at which to start parsing.
- * @param length The number of bytes to parse from {@code input}.
- * @return The parsed instance.
- * @throws IOException For I/O Error.
+ * Creates a table instance and a content handler for that instance.
+ * @return A new content handler.
*/
- public static HeadTable parse(final TtfRandomAccessInput input, final int offset, final int length)
- throws IOException {
- final HeadTable head = new HeadTable();
- final HeadTableParser parser = new HeadTableParser();
- parser.parse(input, offset, length, head.new ContentHandler(head));
- return head;
+ public static TtfContentHandler<HeadTable> createContentHandler() {
+ final HeadTable table = new HeadTable();
+ return table.new ContentHandler(table);
}
+
/**
* Indicates whether the "long" or "short" version of the "loca" table is used.
* @return True if and only if the "long" version of the "loca" table is used.
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java 2025-04-22 12:58:59 UTC (rev 13477)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/Os2Table.java 2025-04-22 14:35:58 UTC (rev 13478)
@@ -32,13 +32,9 @@
import org.foray.font.format.Panose4a;
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
-import org.foray.font.ttf.TtfRandomAccessInput;
-import org.foray.font.ttf.parse.Os2TableParser;
import org.checkerframework.checker.signedness.qual.Unsigned;
-import java.io.IOException;
-
/**
* Class representing a TTF "OS/2" (OS/2 and Windows metrics) table.
*/
@@ -113,21 +109,15 @@
private short sCapHeight;
/**
- * Reads the "OS/2" table.
- * @param input The input which is being parsed.
- * @param offset The offset into {@code input} at which to start parsing.
- * @param length The number of bytes to parse from {@code input}.
- * @return The parsed instance.
- * @throws IOException For I/O Error.
+ * Creates a table instance and a content handler for that instance.
+ * @return A new content handler.
*/
- public static Os2Table parse(final TtfRandomAccessInput input, final int offset, final int length)
- throws IOException {
- final Os2Table os2 = new Os2Table();
- final Os2TableParser parser = new Os2TableParser();
- parser.parse(input, offset, length, os2.new ContentHandler(os2));
- return os2;
+ public static TtfContentHandler<Os2Table> createContentHandler() {
+ final Os2Table table = new Os2Table();
+ return table.new ContentHandler(table);
}
+
/**
* Indicates whether this font is embeddable.
* @return True if and only if this font is embeddable.
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java 2025-04-22 12:58:59 UTC (rev 13477)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/ttf/table/PcltTable.java 2025-04-22 14:35:58 UTC (rev 13478)
@@ -31,11 +31,7 @@
import org.foray.common.primitive.PrimitiveFerry;
import org.foray.font.ttf.RoTable;
import org.foray.font.ttf.TtfContentHandler;
-import org.foray.font.ttf.TtfRandomAccessInput;
-import org.foray.font.ttf.parse.PcltTableParser;
-import java.io.IOException;
-
/**
* Class representing a TTF "PCLT" (PCL 5) table.
*/
@@ -100,21 +96,15 @@
private short serifStyle;
/**
- * Reads the "PCLT" table to find xHeight and capHeight.
- * @param input The input which is being parsed.
- * @param offset The offset into {@code input} at which to start parsing.
- * @param length The number of bytes to parse from {@code input}.
- * @return The parsed instance.
- * @throws IOException For I/O Error.
+ * Creates a table instance and a content handler for that instance.
+ * @return A new content handler.
*/
- public static PcltTable parse(final TtfRandomAccessInput input, final int offset, final int length)
- throws IOException {
- final PcltTable pclt = new PcltTable();
- final PcltTableParser parser = new PcltTableParser();
- parser.parse(input, offset, length, pclt.new ContentHandler(pclt));
- return pclt;
+ public static TtfContentHandler<PcltTable> createContentHandler() {
+ final PcltTable table = new PcltTable();
+ return table.new ContentHandler(table);
}
+
/**
* Returns the cap height for this font.
* @return The cap height for this font.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|