001: /*
002:
003: Licensed to the Apache Software Foundation (ASF) under one or more
004: contributor license agreements. See the NOTICE file distributed with
005: this work for additional information regarding copyright ownership.
006: The ASF licenses this file to You under the Apache License, Version 2.0
007: (the "License"); you may not use this file except in compliance with
008: the License. You may obtain a copy of the License at
009:
010: http://www.apache.org/licenses/LICENSE-2.0
011:
012: Unless required by applicable law or agreed to in writing, software
013: distributed under the License is distributed on an "AS IS" BASIS,
014: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015: See the License for the specific language governing permissions and
016: limitations under the License.
017:
018: */
019:
020: package org.apache.batik.svggen.font.table;
021:
022: import java.io.IOException;
023: import java.io.RandomAccessFile;
024:
025: /**
026: *
027: * @version $Id: TableFactory.java 475477 2006-11-15 22:44:28Z cam $
028: * @author <a href="mailto:david@steadystate.co.uk">David Schweinsberg</a>
029: */
030: public class TableFactory {
031:
032: public static Table create(DirectoryEntry de, RandomAccessFile raf)
033: throws IOException {
034: Table t = null;
035: switch (de.getTag()) {
036: case Table.BASE:
037: break;
038: case Table.CFF:
039: break;
040: case Table.DSIG:
041: break;
042: case Table.EBDT:
043: break;
044: case Table.EBLC:
045: break;
046: case Table.EBSC:
047: break;
048: case Table.GDEF:
049: break;
050: case Table.GPOS:
051: t = new GposTable(de, raf);
052: break;
053: case Table.GSUB:
054: t = new GsubTable(de, raf);
055: break;
056: case Table.JSTF:
057: break;
058: case Table.LTSH:
059: break;
060: case Table.MMFX:
061: break;
062: case Table.MMSD:
063: break;
064: case Table.OS_2:
065: t = new Os2Table(de, raf);
066: break;
067: case Table.PCLT:
068: break;
069: case Table.VDMX:
070: break;
071: case Table.cmap:
072: t = new CmapTable(de, raf);
073: break;
074: case Table.cvt:
075: t = new CvtTable(de, raf);
076: break;
077: case Table.fpgm:
078: t = new FpgmTable(de, raf);
079: break;
080: case Table.fvar:
081: break;
082: case Table.gasp:
083: break;
084: case Table.glyf:
085: t = new GlyfTable(de, raf);
086: break;
087: case Table.hdmx:
088: break;
089: case Table.head:
090: t = new HeadTable(de, raf);
091: break;
092: case Table.hhea:
093: t = new HheaTable(de, raf);
094: break;
095: case Table.hmtx:
096: t = new HmtxTable(de, raf);
097: break;
098: case Table.kern:
099: t = new KernTable(de, raf);
100: break;
101: case Table.loca:
102: t = new LocaTable(de, raf);
103: break;
104: case Table.maxp:
105: t = new MaxpTable(de, raf);
106: break;
107: case Table.name:
108: t = new NameTable(de, raf);
109: break;
110: case Table.prep:
111: t = new PrepTable(de, raf);
112: break;
113: case Table.post:
114: t = new PostTable(de, raf);
115: break;
116: case Table.vhea:
117: break;
118: case Table.vmtx:
119: break;
120: }
121: return t;
122: }
123: }
|