1 /* 2 * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package sun.font; 27 28 /** 29 * Encapsulates the information that 2D needs to create a composite font, 30 * the runtime representation of a logical font. 31 */ 32 public class CompositeFontDescriptor { 33 34 private String faceName; 35 private int coreComponentCount; 36 private String[] componentFaceNames; 37 private String[] componentFileNames; 38 private int[] exclusionRanges; 39 private int[] exclusionRangeLimits; 40 41 /** 42 * Constructs a composite font descriptor. 43 * @param faceName the font face name, i.e., the family name suffixed 44 * with ".plain", ".bold", ".italic", ".bolditalic". 45 * @param coreComponentCount the number of core fonts, i.e., the ones 46 * derived from a non-fallback sequence. 47 * @param componentFaceNames the face names for the component fonts 48 * @param componentFileNames the file names for the component fonts 49 * @param exclusionRanges an array holding lower and upper boundaries 50 * for all exclusion ranges for all component fonts 51 * @param exclusionRangeLimits an array holding the limits of the 52 * sections for each component font within the previous 53 * array 54 */ CompositeFontDescriptor(String faceName, int coreComponentCount, String[] componentFaceNames, String[] componentFileNames, int[] exclusionRanges, int[] exclusionRangeLimits)55 public CompositeFontDescriptor(String faceName, 56 int coreComponentCount, 57 String[] componentFaceNames, 58 String[] componentFileNames, 59 int[] exclusionRanges, 60 int[] exclusionRangeLimits) { 61 this.faceName = faceName; 62 this.coreComponentCount = coreComponentCount; 63 this.componentFaceNames = componentFaceNames; 64 this.componentFileNames = componentFileNames; 65 this.exclusionRanges = exclusionRanges; 66 this.exclusionRangeLimits = exclusionRangeLimits; 67 } 68 getFaceName()69 public String getFaceName() { 70 return faceName; 71 } 72 getCoreComponentCount()73 public int getCoreComponentCount() { 74 return coreComponentCount; 75 } 76 getComponentFaceNames()77 public String[] getComponentFaceNames() { 78 return componentFaceNames; 79 } 80 getComponentFileNames()81 public String[] getComponentFileNames() { 82 return componentFileNames; 83 } 84 getExclusionRanges()85 public int[] getExclusionRanges() { 86 return exclusionRanges; 87 } 88 getExclusionRangeLimits()89 public int[] getExclusionRangeLimits() { 90 return exclusionRangeLimits; 91 } 92 } 93