001package org.biopax.paxtools.io.sif.level3; 002 003import org.apache.commons.logging.Log; 004import org.apache.commons.logging.LogFactory; 005import org.biopax.paxtools.model.BioPAXElement; 006import org.biopax.paxtools.model.level3.EntityReference; 007import org.biopax.paxtools.model.level3.SimplePhysicalEntity; 008 009import java.util.Map; 010 011/** 012 * @author Emek Demir // todo annotate 013 */ 014public class GroupMap 015{ 016 private Log log= LogFactory.getLog(GroupMap.class); 017 private Map<BioPAXElement, Group> map; 018 019 public GroupMap(Map<BioPAXElement, Group> element2GroupMap) 020 { 021 this.map = element2GroupMap; 022 } 023 024 protected BioPAXElement getEntityReferenceOrGroup(BioPAXElement bpe) 025 { 026 027 BioPAXElement entity = map.get(bpe); 028 if (entity == null) 029 { 030 if (bpe instanceof EntityReference) 031 { 032 entity = bpe; 033 } else if (bpe instanceof SimplePhysicalEntity) 034 { 035 EntityReference er = ((SimplePhysicalEntity) bpe).getEntityReference(); 036 if (er != null) 037 { 038 entity = map.get(er); 039 if (entity == null) entity = er; 040 } else 041 { 042 if (log.isWarnEnabled()) 043 log.warn("SimplePhysicalEntity with ID " + bpe.getRDFId() + " has NULL EntityReference"); 044 } 045 } 046 } 047 return entity; 048 } 049 050 051 public Map<BioPAXElement, Group> getMap() 052 { 053 return map; 054 } 055}