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.request.Url;
026import org.apache.wicket.request.cycle.RequestCycle;
027import org.apache.causeway.extensions.pdfjs.wkt.integration.CausewayModuleExtPdfjsWicketIntegration;
028import de.agilecoders.wicket.webjars.request.resource.WebjarsJavaScriptResourceReference;
029
030public class PdfJsWorkerReference extends WebjarsJavaScriptResourceReference {
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 PdfJsWorkerReference() {
035        super(String.format("%s/build/pdf.worker.min.%s", CausewayModuleExtPdfjsWicketIntegration.getPdfJsVersion().getWebjarPath(), 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 String workerUrl() {
046        return asUrl().toString();
047    }
048
049    // -- HELPER
050    private static Url asUrl() {
051        var pdfJsUrl = RequestCycle.get().urlFor(instance(), null);
052        return Url.parse(pdfJsUrl);
053    }
054
055    @java.lang.SuppressWarnings({"all", "unchecked"})
056    @lombok.Generated
057    public static PdfJsWorkerReference instance() {
058        java.lang.Object $value = PdfJsWorkerReference.instance.get();
059        if ($value == null) {
060            synchronized (PdfJsWorkerReference.instance) {
061                $value = PdfJsWorkerReference.instance.get();
062                if ($value == null) {
063                    final PdfJsWorkerReference actualValue = new PdfJsWorkerReference();
064                    $value = actualValue == null ? PdfJsWorkerReference.instance : actualValue;
065                    PdfJsWorkerReference.instance.set($value);
066                }
067            }
068        }
069        return (PdfJsWorkerReference) ($value == PdfJsWorkerReference.instance ? null : $value);
070    }
071}