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}