public final class io.wcm.handler.mediasource.dam.impl.dynamicmedia.DynamicMediaPath extends java.lang.Object
{
private static final java.lang.String IMAGE_SERVER_PATH;
private static final java.lang.String CONTENT_SERVER_PATH;
public static final java.lang.String DOWNLOAD_SUFFIX;
private static final org.slf4j.Logger log;
private void <init>()
{
io.wcm.handler.mediasource.dam.impl.dynamicmedia.DynamicMediaPath v;
v := @this: io.wcm.handler.mediasource.dam.impl.dynamicmedia.DynamicMediaPath;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static java.lang.String buildContent(io.wcm.handler.mediasource.dam.impl.DamContext, boolean)
{
io.wcm.handler.mediasource.dam.impl.DamContext v;
java.lang.StringBuilder v, v;
java.lang.String v, v;
boolean v;
v := @parameter: io.wcm.handler.mediasource.dam.impl.DamContext;
v := @parameter: boolean;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("/is/content/");
v = staticinvoke <io.wcm.handler.mediasource.dam.impl.dynamicmedia.DynamicMediaPath: java.lang.String encodeDynamicMediaObject(io.wcm.handler.mediasource.dam.impl.DamContext)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("?cdh=attachment");
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
public static java.lang.String buildImage(io.wcm.handler.mediasource.dam.impl.DamContext)
{
java.lang.String v, v;
io.wcm.handler.mediasource.dam.impl.DamContext v;
v := @parameter: io.wcm.handler.mediasource.dam.impl.DamContext;
v = staticinvoke <io.wcm.handler.mediasource.dam.impl.dynamicmedia.DynamicMediaPath: java.lang.String encodeDynamicMediaObject(io.wcm.handler.mediasource.dam.impl.DamContext)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("/is/image/\u0001");
return v;
}
public static java.lang.String buildImage(io.wcm.handler.mediasource.dam.impl.DamContext, long, long)
{
io.wcm.handler.mediasource.dam.impl.DamContext v;
long v, v;
java.lang.String v;
v := @parameter: io.wcm.handler.mediasource.dam.impl.DamContext;
v := @parameter: long;
v := @parameter: long;
v = staticinvoke <io.wcm.handler.mediasource.dam.impl.dynamicmedia.DynamicMediaPath: java.lang.String buildImage(io.wcm.handler.mediasource.dam.impl.DamContext,long,long,io.wcm.handler.media.CropDimension,java.lang.Integer)>(v, v, v, null, null);
return v;
}
public static java.lang.String buildImage(io.wcm.handler.mediasource.dam.impl.DamContext, long, long, io.wcm.handler.media.CropDimension, java.lang.Integer)
{
org.apache.sling.api.resource.ResourceResolver v;
io.wcm.handler.mediasource.dam.impl.DamContext v;
long v, v;
java.lang.Integer v;
io.wcm.handler.mediasource.dam.impl.dynamicmedia.ImageProfile v;
java.lang.String v, v, v, v, v, v;
boolean v, v, v;
com.day.cq.dam.api.Asset v;
io.wcm.handler.media.CropDimension v;
io.wcm.handler.media.Dimension v;
io.wcm.handler.mediasource.dam.impl.dynamicmedia.NamedDimension v;
java.lang.StringBuilder v, v, v, v, v, v, v, v;
v := @parameter: io.wcm.handler.mediasource.dam.impl.DamContext;
v := @parameter: long;
v := @parameter: long;
v := @parameter: io.wcm.handler.media.CropDimension;
v := @parameter: java.lang.Integer;
v = staticinvoke <io.wcm.handler.mediasource.dam.impl.dynamicmedia.DynamicMediaPath: io.wcm.handler.media.Dimension calcWidthHeight(io.wcm.handler.mediasource.dam.impl.DamContext,long,long)>(v, v, v);
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("/is/image/");
v = staticinvoke <io.wcm.handler.mediasource.dam.impl.dynamicmedia.DynamicMediaPath: java.lang.String encodeDynamicMediaObject(io.wcm.handler.mediasource.dam.impl.DamContext)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = staticinvoke <io.wcm.handler.mediasource.dam.impl.dynamicmedia.SmartCrop: boolean canApply(io.wcm.handler.media.CropDimension,java.lang.Integer)>(v, v);
if v == 0 goto label;
v = virtualinvoke v.<io.wcm.handler.mediasource.dam.impl.DamContext: io.wcm.handler.mediasource.dam.impl.dynamicmedia.ImageProfile getImageProfile()>();
v = staticinvoke <io.wcm.handler.mediasource.dam.impl.dynamicmedia.SmartCrop: io.wcm.handler.mediasource.dam.impl.dynamicmedia.NamedDimension getDimensionForWidthHeight(io.wcm.handler.mediasource.dam.impl.dynamicmedia.ImageProfile,long,long)>(v, v, v);
if v == null goto label;
v = virtualinvoke v.<io.wcm.handler.mediasource.dam.impl.DamContext: boolean isDynamicMediaValidateSmartCropRenditionSizes()>();
if v == 0 goto label;
v = virtualinvoke v.<io.wcm.handler.mediasource.dam.impl.DamContext: com.day.cq.dam.api.Asset getAsset()>();
v = virtualinvoke v.<io.wcm.handler.mediasource.dam.impl.DamContext: org.apache.sling.api.resource.ResourceResolver getResourceResolver()>();
v = staticinvoke <io.wcm.handler.mediasource.dam.impl.dynamicmedia.SmartCrop: boolean isMatchingSize(com.day.cq.dam.api.Asset,org.apache.sling.api.resource.ResourceResolver,io.wcm.handler.mediasource.dam.impl.dynamicmedia.NamedDimension,long,long)>(v, v, v, v, v);
if v != 0 goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,long)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("<too small for \u0001x\u0001>");
staticinvoke <io.wcm.handler.mediasource.dam.impl.dynamicmedia.DynamicMediaPath: void logResult(io.wcm.handler.mediasource.dam.impl.DamContext,java.lang.CharSequence)>(v, v);
return null;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("%3A");
v = virtualinvoke v.<io.wcm.handler.mediasource.dam.impl.dynamicmedia.NamedDimension: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("?");
staticinvoke <io.wcm.handler.mediasource.dam.impl.dynamicmedia.DynamicMediaPath: void appendWidthHeigtFormatQuality(java.lang.StringBuilder,io.wcm.handler.media.Dimension,io.wcm.handler.mediasource.dam.impl.DamContext)>(v, v, v);
staticinvoke <io.wcm.handler.mediasource.dam.impl.dynamicmedia.DynamicMediaPath: void logResult(io.wcm.handler.mediasource.dam.impl.DamContext,java.lang.CharSequence)>(v, v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("?");
if v == null goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("crop=");
v = virtualinvoke v.<io.wcm.handler.media.CropDimension: java.lang.String getCropStringWidthHeight()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("&");
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("rotate=");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("&");
label:
staticinvoke <io.wcm.handler.mediasource.dam.impl.dynamicmedia.DynamicMediaPath: void appendWidthHeigtFormatQuality(java.lang.StringBuilder,io.wcm.handler.media.Dimension,io.wcm.handler.mediasource.dam.impl.DamContext)>(v, v, v);
staticinvoke <io.wcm.handler.mediasource.dam.impl.dynamicmedia.DynamicMediaPath: void logResult(io.wcm.handler.mediasource.dam.impl.DamContext,java.lang.CharSequence)>(v, v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
private static void appendWidthHeigtFormatQuality(java.lang.StringBuilder, io.wcm.handler.media.Dimension, io.wcm.handler.mediasource.dam.impl.DamContext)
{
io.wcm.handler.mediasource.dam.impl.DamContext v;
io.wcm.handler.media.MediaArgs v;
long v, v;
io.wcm.handler.media.spi.MediaHandlerConfig v;
int v;
boolean v, v;
io.wcm.handler.media.Dimension v;
java.lang.StringBuilder v, v, v, v, v, v, v, v;
v := @parameter: java.lang.StringBuilder;
v := @parameter: io.wcm.handler.media.Dimension;
v := @parameter: io.wcm.handler.mediasource.dam.impl.DamContext;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("wid=");
v = virtualinvoke v.<io.wcm.handler.media.Dimension: long getWidth()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(long)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("&");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("hei=");
v = virtualinvoke v.<io.wcm.handler.media.Dimension: long getHeight()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(long)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("&");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("fit=stretch");
v = staticinvoke <io.wcm.handler.mediasource.dam.impl.dynamicmedia.DynamicMediaPath: boolean isPNG(io.wcm.handler.mediasource.dam.impl.DamContext)>(v);
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("&fmt=png-alpha");
goto label;
label:
v = virtualinvoke v.<io.wcm.handler.mediasource.dam.impl.DamContext: boolean isDynamicMediaSetImageQuality()>();
if v == 0 goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("&qlt=");
v = virtualinvoke v.<io.wcm.handler.mediasource.dam.impl.DamContext: io.wcm.handler.media.MediaArgs getMediaArgs()>();
v = virtualinvoke v.<io.wcm.handler.mediasource.dam.impl.DamContext: io.wcm.handler.media.spi.MediaHandlerConfig getMediaHandlerConfig()>();
v = staticinvoke <io.wcm.handler.media.impl.ImageQualityPercentage: int getAsInteger(io.wcm.handler.media.MediaArgs,io.wcm.handler.media.spi.MediaHandlerConfig)>(v, v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
label:
return;
}
private static void logResult(io.wcm.handler.mediasource.dam.impl.DamContext, java.lang.CharSequence)
{
com.day.cq.dam.api.Asset v;
org.slf4j.Logger v, v;
java.lang.CharSequence v;
io.wcm.handler.mediasource.dam.impl.DamContext v;
java.lang.String v;
boolean v;
v := @parameter: io.wcm.handler.mediasource.dam.impl.DamContext;
v := @parameter: java.lang.CharSequence;
v = <io.wcm.handler.mediasource.dam.impl.dynamicmedia.DynamicMediaPath: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <io.wcm.handler.mediasource.dam.impl.dynamicmedia.DynamicMediaPath: org.slf4j.Logger log>;
v = virtualinvoke v.<io.wcm.handler.mediasource.dam.impl.DamContext: com.day.cq.dam.api.Asset getAsset()>();
v = interfaceinvoke v.<com.day.cq.dam.api.Asset: java.lang.String getPath()>();
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object,java.lang.Object)>("Build dynamic media path for {}: {}", v, v);
label:
return;
}
private static io.wcm.handler.media.Dimension calcWidthHeight(io.wcm.handler.mediasource.dam.impl.DamContext, long, long)
{
io.wcm.handler.mediasource.dam.impl.DamContext v;
long v, v, v, v, v, v, v, v;
byte v, v;
double v, v, v, v;
io.wcm.handler.media.Dimension v, v, v, v;
v := @parameter: io.wcm.handler.mediasource.dam.impl.DamContext;
v := @parameter: long;
v := @parameter: long;
v = virtualinvoke v.<io.wcm.handler.mediasource.dam.impl.DamContext: io.wcm.handler.media.Dimension getDynamicMediaImageSizeLimit()>();
v = virtualinvoke v.<io.wcm.handler.media.Dimension: long getWidth()>();
v = v cmp v;
if v <= 0 goto label;
v = staticinvoke <io.wcm.handler.media.format.Ratio: double get(long,long)>(v, v);
v = virtualinvoke v.<io.wcm.handler.media.Dimension: long getWidth()>();
v = v / v;
v = staticinvoke <java.lang.Math: long round(double)>(v);
v = staticinvoke <io.wcm.handler.mediasource.dam.impl.dynamicmedia.DynamicMediaPath: io.wcm.handler.media.Dimension calcWidthHeight(io.wcm.handler.mediasource.dam.impl.DamContext,long,long)>(v, v, v);
return v;
label:
v = virtualinvoke v.<io.wcm.handler.media.Dimension: long getHeight()>();
v = v cmp v;
if v <= 0 goto label;
v = staticinvoke <io.wcm.handler.media.format.Ratio: double get(long,long)>(v, v);
v = virtualinvoke v.<io.wcm.handler.media.Dimension: long getHeight()>();
v = v * v;
v = staticinvoke <java.lang.Math: long round(double)>(v);
v = new io.wcm.handler.media.Dimension;
specialinvoke v.<io.wcm.handler.media.Dimension: void <init>(long,long)>(v, v);
return v;
label:
v = new io.wcm.handler.media.Dimension;
specialinvoke v.<io.wcm.handler.media.Dimension: void <init>(long,long)>(v, v);
return v;
}
private static java.lang.String encodeDynamicMediaObject(io.wcm.handler.mediasource.dam.impl.DamContext)
{
io.wcm.handler.mediasource.dam.impl.DamContext v;
java.lang.String[] v;
java.nio.charset.Charset v;
int v, v;
java.lang.String v, v, v, v, v, v;
v := @parameter: io.wcm.handler.mediasource.dam.impl.DamContext;
v = virtualinvoke v.<io.wcm.handler.mediasource.dam.impl.DamContext: java.lang.String getDynamicMediaObject()>();
v = staticinvoke <org.apache.commons.lang.StringUtils: java.lang.String[] split(java.lang.String,java.lang.String)>(v, "/");
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
v = staticinvoke <java.net.URLEncoder: java.lang.String encode(java.lang.String,java.nio.charset.Charset)>(v, v);
v[v] = v;
v = v[v];
v = staticinvoke <org.apache.commons.lang.StringUtils: java.lang.String replace(java.lang.String,java.lang.String,java.lang.String)>(v, "+", "%20");
v[v] = v;
v = v + 1;
goto label;
label:
v = staticinvoke <org.apache.commons.lang.StringUtils: java.lang.String join(java.lang.Object[],java.lang.String)>(v, "/");
return v;
}
private static boolean isPNG(io.wcm.handler.mediasource.dam.impl.DamContext)
{
com.day.cq.dam.api.Asset v;
io.wcm.handler.mediasource.dam.impl.DamContext v;
java.lang.String v;
boolean v;
v := @parameter: io.wcm.handler.mediasource.dam.impl.DamContext;
v = virtualinvoke v.<io.wcm.handler.mediasource.dam.impl.DamContext: com.day.cq.dam.api.Asset getAsset()>();
v = interfaceinvoke v.<com.day.cq.dam.api.Asset: java.lang.String getMimeType()>();
v = staticinvoke <org.apache.commons.lang.StringUtils: boolean equals(java.lang.CharSequence,java.lang.CharSequence)>(v, "image/png");
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lio/wcm/handler/mediasource/dam/impl/dynamicmedia/DynamicMediaPath;");
<io.wcm.handler.mediasource.dam.impl.dynamicmedia.DynamicMediaPath: org.slf4j.Logger log> = v;
return;
}
}