001// Generated by delombok at Sun Jul 30 17:21:56 UTC 2023 002package de.cuioss.test.jsf.mocks; 003 004import java.net.MalformedURLException; 005import java.net.URL; 006import java.util.HashMap; 007import java.util.Map; 008import javax.faces.application.Resource; 009import javax.faces.application.ResourceHandler; 010import javax.faces.application.ViewResource; 011import javax.faces.context.FacesContext; 012import de.cuioss.tools.string.MoreStrings; 013 014/** 015 * Mock Implementation ResourceHandler 016 * 017 * @author Oliver Wolff 018 */ 019public class CuiMockResourceHandler extends ResourceHandler { 020 /** 021 */ 022 public static final String DUMMY_URL = "http://dummy"; 023 /** 024 * "libNotThere" 025 */ 026 public static final String LIBRARY_NOT_THERE = "libNotThere"; 027 /** 028 * "resNotThere" 029 */ 030 public static final String RESOURCE_NOT_THERE = "resNotThere"; 031 /** 032 * "rendererererer" 033 */ 034 public static final String RENDERER_SUFFIX = "-rendererererer"; 035 /** 036 * the availableResouces use the form libraryName + LIBRARY_RESOURCE_DELIMITER + 037 * resourceName as key 038 */ 039 public static final String LIBRARY_RESOURCE_DELIMITER = "-"; 040 /** 041 * "image/png" 042 */ 043 public static final String DEFAULT_CONTENT_TYPE = "image/png"; 044 private boolean resourceRequest; 045 /** 046 * A map of resources to be provided by this resourceHandler. 047 */ 048 private Map<String, CuiMockResource> availableResouces = new HashMap<>(); 049 050 @Override 051 public Resource createResource(final String resourceName) { 052 return createResource(resourceName, null); 053 } 054 055 @Override 056 public Resource createResource(final String resourceName, final String libraryName) { 057 return createResource(resourceName, libraryName, DEFAULT_CONTENT_TYPE); 058 } 059 060 @Override 061 public Resource createResource(final String resourceName, final String libraryName, final String contentType) { 062 return availableResouces.get(createResourceMapKey(resourceName, libraryName)); 063 } 064 065 @Override 066 public ViewResource createViewResource(final FacesContext context, final String resourceName) { 067 return new ViewResource() { 068 @Override 069 public URL getURL() { 070 try { 071 return new URL(DUMMY_URL + resourceName); 072 } catch (MalformedURLException e) { 073 throw new IllegalStateException(e); 074 } 075 } 076 }; 077 } 078 079 /** 080 * Creates an resourceIdetnifier utilized by availableResouces 081 * 082 * @param resourceName may be null 083 * @param libraryName may be null 084 * @return the concatenated String, see {@link #LIBRARY_RESOURCE_DELIMITER} 085 */ 086 public static final String createResourceMapKey(final String resourceName, final String libraryName) { 087 var resource = resourceName; 088 var library = libraryName; 089 if (MoreStrings.isEmpty(library)) { 090 library = "notThere"; 091 } 092 if (MoreStrings.isEmpty(resource)) { 093 resource = "notThere"; 094 } 095 return library + LIBRARY_RESOURCE_DELIMITER + resource; 096 } 097 098 @Override 099 public boolean libraryExists(final String libraryName) { 100 return LIBRARY_NOT_THERE.equals(libraryName); 101 } 102 103 @Override 104 public void handleResourceRequest(final FacesContext context) { 105 // NOOP 106 } 107 108 @Override 109 public boolean isResourceRequest(final FacesContext context) { 110 return resourceRequest; 111 } 112 113 @Override 114 public String getRendererTypeForResourceName(final String resourceName) { 115 return resourceName + RENDERER_SUFFIX; 116 } 117 118 @java.lang.SuppressWarnings("all") 119 @lombok.Generated 120 public void setResourceRequest(final boolean resourceRequest) { 121 this.resourceRequest = resourceRequest; 122 } 123 124 /** 125 * A map of resources to be provided by this resourceHandler. 126 */ 127 @java.lang.SuppressWarnings("all") 128 @lombok.Generated 129 public Map<String, CuiMockResource> getAvailableResouces() { 130 return this.availableResouces; 131 } 132 133 /** 134 * A map of resources to be provided by this resourceHandler. 135 */ 136 @java.lang.SuppressWarnings("all") 137 @lombok.Generated 138 public void setAvailableResouces(final Map<String, CuiMockResource> availableResouces) { 139 this.availableResouces = availableResouces; 140 } 141}