code: @Override
  	public ChemComp getChemComp(String recordName) {
  		if (null == recordName) return null;
  
  		// handle non-existent ChemComp codes and do not repeatedly attempt to add these.
  		for (String str : unavailable) {
  			if (recordName.equals(str)) return getEmptyChemComp(recordName);
  		}
  
  		// Try to pull from zip, if fail then download.
  		ChemComp cc = getFromZip(recordName);
  		if (cc == null) {
  			s_logger.info("File "+recordName+" not found in archive. Attempting download from PDB.");
  			cc = downloadAndAdd(recordName);
  		}
  
  		// If a null record or an empty chemcomp, return a default ChemComp and blacklist.
  		if (cc == null || (null == cc.getName() && cc.getAtoms().size() == 0)) {
  			s_logger.info("Unable to find or download " + recordName + " - excluding from future searches.");
  			unavailable.add(recordName);
  			return getEmptyChemComp(recordName);
  		}
  		return cc;
  	}
docs: /* (non-Javadoc)
  @see org.biojava.nbio.structure.io.mmcif.ChemCompProvider#getChemComp(java.lang.String)
  
  @param recordName : three letter PDB name for a residue
  @return ChemComp from .zip or ChemComp from repository.  Will return empty ChemComp when unable to find a residue and will return null if not provided a valid recordName.