@Override public DataHolder toImmutable() { return new DataSet(this); }
@Override public Map<DataKey, Object> getAll() { if (parent != null) { HashMap<DataKey, Object> all = new HashMap<DataKey, Object>(); all.putAll(super.getAll()); for (DataKey key : parent.keySet()) { if (!contains(key)) { all.put(key, parent.get(key)); } } return all; } else { return super.getAll(); } }
@Override public boolean contains(DataKey key) { return super.contains(key) || (parent != null && parent.contains(key)); }
@Override public boolean contains(DataKey key) { return super.contains(key) || (parent != null && parent.contains(key)); }
@Override public DataHolder getOptions() { return new DataSet(builder); }
@Override public Map<DataKey, Object> getAll() { if (parent != null) { HashMap<DataKey, Object> all = new HashMap<DataKey, Object>(); all.putAll(super.getAll()); for (DataKey key : parent.keySet()) { if (!contains(key)) { all.put(key, parent.get(key)); } } return all; } else { return super.getAll(); } }
@Override public DataHolder getOptions() { return new DataSet(builder); }
@Override public DataHolder getOptions() { return new DataSet(builder); }
@Override public DataHolder getOptions() { return new DataSet(builder); }
public static DataSet merge(DataHolder...dataHolders) { DataSet dataSet = new DataSet(); for (DataHolder dataHolder : dataHolders) { if (dataHolder != null) dataSet.dataSet.putAll(dataHolder.getAll()); } return dataSet; }
private Formatter(Builder builder) { this.builder = new Builder(builder); // take a copy to avoid after creation side effects this.options = new DataSet(builder); this.formatterOptions = new FormatterOptions(this.options); this.nodeFormatterFactories = new ArrayList<NodeFormatterFactory>(builder.nodeFormatterFactories.size() + 1); this.nodeFormatterFactories.addAll(builder.nodeFormatterFactories); // Add as last. This means clients can override the rendering of core nodes if they want. this.nodeFormatterFactories.add(new NodeFormatterFactory() { @Override public NodeFormatter create(DataHolder options) { return new CoreNodeFormatter(options); } }); }
private DocxRenderer(Builder builder) { this.builder = new Builder(builder); // take a copy to avoid after creation side effects this.options = new DataSet(builder); this.htmlIdGeneratorFactory = builder.htmlIdGeneratorFactory; //this.rendererOptions = new DocxRendererOptions(this.options); this.nodeFormatterFactories = new ArrayList<NodeDocxRendererFactory>(builder.nodeDocxRendererFactories.size() + 1); this.nodeFormatterFactories.addAll(builder.nodeDocxRendererFactories); // Add as last. This means clients can override the rendering of core nodes if they want. this.nodeFormatterFactories.add(new NodeDocxRendererFactory() { @Override public NodeDocxRenderer create(DataHolder options) { return new CoreNodeDocxRenderer(options); } }); this.attributeProviderFactories = FlatDependencyHandler.computeDependencies(builder.attributeProviderFactories); this.linkResolverFactories = FlatDependencyHandler.computeDependencies(builder.linkResolverFactories); }
HtmlRenderer(Builder builder) { this.builder = new Builder(builder); // take a copy to avoid after creation side effects this.options = new DataSet(builder); this.htmlOptions = new HtmlRendererOptions(this.options); this.htmlIdGeneratorFactory = builder.htmlIdGeneratorFactory; // resolve renderer dependencies final List<DelegatingNodeRendererFactoryWrapper> nodeRenderers = new ArrayList<DelegatingNodeRendererFactoryWrapper>(builder.nodeRendererFactories.size()); for (int i = builder.nodeRendererFactories.size() - 1; i >= 0; i--) { final NodeRendererFactory nodeRendererFactory = builder.nodeRendererFactories.get(i); final Set<Class<? extends DelegatingNodeRendererFactoryWrapper>>[] myDelegates = new Set[] { null }; nodeRenderers.add(new DelegatingNodeRendererFactoryWrapper(nodeRenderers, nodeRendererFactory)); } // Add as last. This means clients can override the rendering of core nodes if they want by default final CoreNodeRenderer.Factory nodeRendererFactory = new CoreNodeRenderer.Factory(); nodeRenderers.add(new DelegatingNodeRendererFactoryWrapper(nodeRenderers, nodeRendererFactory)); RendererDependencyHandler resolver = new RendererDependencyHandler(); nodeRendererFactories = resolver.resolveDependencies(nodeRenderers).getNodeRendererFactories(); // KLUDGE: but for now works List<AttributeProviderFactory> values = new ArrayList<>(builder.attributeProviderFactories.values()); this.attributeProviderFactories = FlatDependencyHandler.computeDependencies(values); this.linkResolverFactories = FlatDependencyHandler.computeDependencies(builder.linkResolverFactories); }
private Parser(Builder builder) { this.builder = new Builder(builder); // make a copy to avoid after creation side effects this.options = new DataSet(builder); this.blockParserFactories = DocumentParser.calculateBlockParserFactories(this.options, builder.blockParserFactories); this.inlineParserFactory = builder.inlineParserFactory == null ? DocumentParser.INLINE_PARSER_FACTORY : builder.inlineParserFactory; this.paragraphPreProcessorFactories = DocumentParser.calculateParagraphPreProcessors(this.options, builder.paragraphPreProcessorFactories, this.inlineParserFactory); this.blockPreProcessorDependencies = DocumentParser.calculateBlockPreProcessors(this.options, builder.blockPreProcessorFactories, this.inlineParserFactory); this.delimiterProcessors = InlineParserImpl.calculateDelimiterProcessors(this.options, builder.delimiterProcessors); this.delimiterCharacters = InlineParserImpl.calculateDelimiterCharacters(this.options, delimiterProcessors.keySet()); this.linkRefProcessors = InlineParserImpl.calculateLinkRefProcessors(this.options, builder.linkRefProcessors); this.specialCharacters = InlineParserImpl.calculateSpecialCharacters(this.options, delimiterCharacters); this.postProcessorDependencies = PostProcessorManager.calculatePostProcessors(this.options, builder.postProcessorFactories); this.inlineParserExtensionFactories = builder.inlineParserExtensionFactories; }
@Override public DataHolder toImmutable() { return new DataSet(this); }
@Override public DataHolder getOptions() { return new DataSet(builder); }