@Override public void clear(boolean all) { if (all) { if (fontCache != null) fontCache.clear(); if (lineBreaker != null) lineBreaker.clear(); if (charBreaker != null) charBreaker.clear(); } }
protected LineBreakIterator getCharacterBreakIterator() { LineBreaker cb = charBreaker; return (cb != null) ? cb.getIterator(context.getReporter()) : null; }
protected LineBreakIterator getLineBreakIterator() { LineBreaker lb = lineBreaker; return (lb != null) ? lb.getIterator(context.getReporter()) : null; }
@Override public void processDerivedOptions() { File fontSpecificationDirectory = null; if (fontSpecificationDirectoryPath != null) { fontSpecificationDirectory = new File(fontSpecificationDirectoryPath); if (!fontSpecificationDirectory.exists()) throw new InvalidOptionUsageException( "font-directory", "directory does not exist: " + fontSpecificationDirectoryPath); else if (!fontSpecificationDirectory.isDirectory()) throw new InvalidOptionUsageException( "font-directory", "not a directory: " + fontSpecificationDirectoryPath); } List<File> fontSpecificationFiles = null; if ((fontSpecificationFileNames != null) && !fontSpecificationFileNames.isEmpty()) { for (String name : fontSpecificationFileNames) { File fontSpecificationFile = new File(name); if (!fontSpecificationFile.exists()) throw new InvalidOptionUsageException("font", "file does not exist: " + name); else if (!fontSpecificationFile.isFile()) throw new InvalidOptionUsageException("font", "not a file: " + name); else { if (fontSpecificationFiles == null) fontSpecificationFiles = new java.util.ArrayList<File>(); fontSpecificationFiles.add(fontSpecificationFile); } } } Reporter reporter = context.getReporter(); this.fontCache = new FontCache(fontSpecificationDirectory, fontSpecificationFiles, reporter); if (lineBreakerName == null) lineBreakerName = defaultLineBreakerName; LineBreaker lb = LineBreaker.getInstance(lineBreakerName); this.lineBreaker = lb; if (charBreakerName == null) charBreakerName = defaultCharacterBreakerName; LineBreaker cb = LineBreaker.getInstance(charBreakerName); this.charBreaker = cb; this.defaults = new Defaults(); if (defaultBackgroundColor != null) { com.skynav.ttv.model.value.Color[] retColor = new com.skynav.ttv.model.value.Color[1]; if (com.skynav.ttv.verifier.util.Colors.isColor( defaultBackgroundColor, new Location(), context, retColor)) defaults.setBackgroundColor( new Color( retColor[0].getRed(), retColor[0].getGreen(), retColor[0].getBlue(), retColor[0].getAlpha())); else throw new InvalidOptionUsageException( "default-background-color", "invalid color syntax: " + defaultBackgroundColor); } if (defaultColor != null) { com.skynav.ttv.model.value.Color[] retColor = new com.skynav.ttv.model.value.Color[1]; if (com.skynav.ttv.verifier.util.Colors.isColor( defaultColor, new Location(), context, retColor)) defaults.setColor( new Color( retColor[0].getRed(), retColor[0].getGreen(), retColor[0].getBlue(), retColor[0].getAlpha())); else throw new InvalidOptionUsageException( "default-color", "invalid color syntax: " + defaultColor); } if (defaultFontFamilies != null) { List<com.skynav.ttv.model.value.FontFamily> families = new java.util.ArrayList<com.skynav.ttv.model.value.FontFamily>(); Object[] treatments = new Object[] {com.skynav.ttv.verifier.util.QuotedGenericFontFamilyTreatment.Allow}; if (com.skynav.ttv.verifier.util.Fonts.isFontFamilies( defaultFontFamilies, null, context, treatments, families)) { List<String> fontFamilies = new java.util.ArrayList<String>(families.size()); for (com.skynav.ttv.model.value.FontFamily f : families) fontFamilies.add(f.toString()); defaults.setFontFamilies(fontFamilies); } else throw new InvalidOptionUsageException( "default-font-families", "invalid font families syntax: " + defaultFontFamilies); } if (defaultWhitespace != null) { try { defaults.setWhitespace(Whitespace.valueOf(defaultWhitespace.toUpperCase())); } catch (IllegalArgumentException e) { throw new InvalidOptionUsageException( "default-whitespace", "invalid whitespace syntax: " + defaultWhitespace); } } }