Thema dieser Dokumentation / Das FirstSpirit 5 Modul- / Komponenten-Modell / Modul-Implementierung mit den Komponenten-Typen - PUBLIC, SERVICE, LIBRARY / Die PUBLIC-Komponente des Moduls
Die PUBLIC-Komponente des Moduls
Class: de.espirit.firstspirit.opt.vscan.VScanFilterProxy
Klasse: VScanFilterProxy
Package: de.espirit.firstspirit.opt.vscan
Erweitert die Klasse FileBasedUploadFilter, welche wiederum UploadFilter implementiert. Daraus ergibt sich der schon zuvor angesprochene Komponenten-Typ Public(siehe auch Public). Alle Aufrufe der Klasse werden an VscanServiceImpl delegiert.
Listing: de.espirit.firstspirit.opt.vscan.VScanFilterProxy
package de.espirit.firstspirit.opt.vscan;
import de.espirit.common.base.Logging;
import de.espirit.firstspirit.server.mediamanagement.FileBasedUploadFilter;
import java.io.File;
import java.io.IOException;
public class VScanFilterProxy extends FileBasedUploadFilter {
public static final String ENGINE_NAME = "VScanFilterProxy"; // NON-NLS
public static final Class<?> LOGGER = VScanFilterProxy.class;
public VScanFilterProxy() {
// no arg constructor needed, called from super class
}
@Override
public void init() {
if (Logging.isDebugEnabled(LOGGER)) {
Logging.logDebug("VScanFilterProxy.init() - ", LOGGER); // NON-NLS
}
}
// -- get VScanService, get VScanServiceConfiguration -- //
/**
* Get the VScanService by the serviceLocator
*
* @return the VScanService
*/
private VScanService getVScanService() {
return (VScanService) getServiceLocator()
.getService(VScanService.MODULE_SERVICE_NAME);
}
// -- Filter, Execute, Grant or Reject -- //
/** {@inheritDoc} */
@Override
public void doFilter(final File tempFile) throws IOException {
try {
getVScanService().scanFile(tempFile);
} catch (ClassNotFoundException e) {
Logging.logInfo("Loading of virus scanning engine failed!",
e, LOGGER); // NON-NLS
throw new IOException("Loading of virus scanning engine failed!");
}
}
}