Hallo zusammen,
ich möchte per Regel Dateiendungen von Medien prüfen, um im Falle außergewöhnlicher Formate ein Fallback für alte Browser anzubieten. Dazu haben ich einen ValueService geschrieben, der zwei Parameter bekommt:
- ref: den Wert der FS_REFERENCE Komponenten (TargetReference)
- ext: der String der zu prüfenden Dateiendung
Die Regel dazu sieht so aus:
<RULE>
<SCHEDULE delay="0" id="avif" service="FileExtensionValueService">
<!-- the selected targetReference to the file -->
<PARAM name="ref">
<PROPERTY name="VALUE" source="st_image"/>
</PARAM>
<!-- the file extension to be detected -->
<PARAM name="ext">
<TEXT>avif</TEXT>
</PARAM>
</SCHEDULE>
<DO>
<PROPERTY name="VISIBLE" source="st_imageFallback"/>
</DO>
</RULE>
Im ValueService versuche ich das so auszulesen:
public class FileExtensionValueService implements ValueService {
public Object getValue(SpecialistsBroker broker, final Map<String, ?> params) {
TargetReference targetReference = (TargetReference) params.get("ref");
...
}
}
aber das ist immer null. Ich habe auch versucht, es ganz generisch als Object auszulesen, aber das haut alles nicht hin.
Kann es sein, dass die VALUE Property in der Regel so gar nicht übergeben wird? Oder wie kann ich es anders erreichen, auf die TargetReference des zu prüfenden Feldes zuzugreifen?
Viele Grüße
Matthias