// $HeadURL$ // $Id$ // // Copyright © 2006, 2010, 2011, 2012 by the President and Fellows of Harvard College. // // Screensaver is an open-source project developed by the ICCB-L and NSRB labs // at Harvard Medical School. This software is distributed under the terms of // the GNU General Public License. package edu.harvard.med.lincs.screensaver.io.libraries.smallmolecule; import java.net.URL; import org.apache.log4j.Logger; import edu.harvard.med.lincs.screensaver.LincsScreensaverConstants; import edu.harvard.med.screensaver.io.libraries.smallmolecule.StructureImageLocator; import edu.harvard.med.screensaver.model.libraries.SmallMoleculeReagent; import edu.harvard.med.screensaver.util.UrlEncrypter; public abstract class SmallMoleculeReagentFacilitySaltIdGenericImageLocator implements StructureImageLocator { private static final String IMAGE_FILE_EXTENSION = ".png"; private static Logger log = Logger.getLogger(SmallMoleculeReagentFacilitySaltIdGenericImageLocator.class); private String _baseUrl; private UrlEncrypter _urlEncrypter; public SmallMoleculeReagentFacilitySaltIdGenericImageLocator(String baseUrl) { _baseUrl = baseUrl; } public SmallMoleculeReagentFacilitySaltIdGenericImageLocator(String baseUrl, UrlEncrypter urlEncrypter) { _baseUrl = baseUrl; _urlEncrypter = urlEncrypter; } @Override public URL getImageUrl(SmallMoleculeReagent reagent) { try { if (reagent == null) { return null; } String name = reagent.getWell().getFacilityId() + LincsScreensaverConstants.FACILITY_ID_SEPARATOR + reagent.getSaltFormId(); if (name.equals(LincsScreensaverConstants.FACILITY_ID_SEPARATOR)) { return null; } if(_urlEncrypter != null) { // NOTE: do not encrypt the baseUrl, as this is required by the web.xml to identify the image locator servlet name = _urlEncrypter.encryptUrl(name); } name = name + IMAGE_FILE_EXTENSION; URL url = new URL(_baseUrl + name); if (log.isDebugEnabled()) { log.debug("image URL for reagent " + reagent + ": " + url); } return url; } catch (Exception e) { log.error(e); return null; } } }