001// Generated by delombok at Fri Apr 04 00:51:49 BST 2025
002/*
003 *  Licensed to the Apache Software Foundation (ASF) under one
004 *  or more contributor license agreements.  See the NOTICE file
005 *  distributed with this work for additional information
006 *  regarding copyright ownership.  The ASF licenses this file
007 *  to you under the Apache License, Version 2.0 (the
008 *  "License"); you may not use this file except in compliance
009 *  with the License.  You may obtain a copy of the License at
010 *
011 *        http://www.apache.org/licenses/LICENSE-2.0
012 *
013 *  Unless required by applicable law or agreed to in writing,
014 *  software distributed under the License is distributed on an
015 *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
016 *  KIND, either express or implied.  See the License for the
017 *  specific language governing permissions and limitations
018 *  under the License.
019 */
020package org.apache.causeway.extensions.pdfjs.wkt.integration.res;
021
022import org.apache.wicket.markup.head.HeaderItem;
023import org.apache.wicket.markup.head.JavaScriptHeaderItem;
024import org.apache.wicket.markup.head.JavaScriptReferenceType;
025import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
026import org.apache.wicket.request.resource.JavaScriptResourceReference;
027import org.apache.causeway.extensions.pdfjs.applib.config.PdfJsConfig;
028import org.apache.causeway.extensions.pdfjs.wkt.integration.CausewayModuleExtPdfjsWicketIntegration;
029
030public class PdfJsIntegrationReference extends JavaScriptResourceReference {
031    private static final long serialVersionUID = 1L;
032    private static final java.util.concurrent.atomic.AtomicReference<java.lang.Object> instance = new java.util.concurrent.atomic.AtomicReference<java.lang.Object>();
033
034    private PdfJsIntegrationReference() {
035        super(PdfJsIntegrationReference.class, String.format("pdfjs-integration-%s.%s", CausewayModuleExtPdfjsWicketIntegration.getPdfJsVersion().getIntegrationScriptSuffix(), CausewayModuleExtPdfjsWicketIntegration.getPdfJsVersion().getJavascriptRefType() == JavaScriptReferenceType.MODULE ? "mjs" : "js"));
036    }
037
038    /**
039     * @return this resource reference singleton instance as header item
040     */
041    public static HeaderItem asHeaderItem() {
042        return JavaScriptHeaderItem.forReference(instance()).setType(CausewayModuleExtPdfjsWicketIntegration.getPdfJsVersion().getJavascriptRefType());
043    }
044
045    public static OnDomReadyHeaderItem domReadyScript(final PdfJsConfig config) {
046        return OnDomReadyHeaderItem.forScript(String.format("WicketStuff.PDFJS.init(%s)", config.toJsonString()));
047    }
048
049    @java.lang.SuppressWarnings({"all", "unchecked"})
050    @lombok.Generated
051    public static PdfJsIntegrationReference instance() {
052        java.lang.Object $value = PdfJsIntegrationReference.instance.get();
053        if ($value == null) {
054            synchronized (PdfJsIntegrationReference.instance) {
055                $value = PdfJsIntegrationReference.instance.get();
056                if ($value == null) {
057                    final PdfJsIntegrationReference actualValue = new PdfJsIntegrationReference();
058                    $value = actualValue == null ? PdfJsIntegrationReference.instance : actualValue;
059                    PdfJsIntegrationReference.instance.set($value);
060                }
061            }
062        }
063        return (PdfJsIntegrationReference) ($value == PdfJsIntegrationReference.instance ? null : $value);
064    }
065}