@Override
public ONDEXConcept map ( S src, ConceptClass conceptClass, ONDEXGraph graph )
{
CachedGraphWrapper graphw = CachedGraphWrapper.getInstance ( graph );
String id = this.getIdMapper ().map ( src, graph );
String descr = Optional.ofNullable ( this.getDescriptionMapper () ).map ( m -> m.map ( src, graph ) ).orElse ( "" );
String ann = Optional.ofNullable ( this.getAnnotationMapper () ).map ( m -> m.map ( src, graph ) ).orElse ( "" );
EvidenceType evidence = this.getEvidenceMapper ().map ( src, graph );
DataSource dataSrc = this.getDataSourceMapper ().map ( src, graph );
ONDEXConcept result = graphw.getConcept ( id, ann, descr, dataSrc, conceptClass, evidence );
if ( this.isVisited ( src ) ) return result;
Optional
.ofNullable ( this.getPreferredNameMapper () )
.map ( mapper -> mapper.map ( src, graph ) )
.ifPresent ( prefName -> result.createConceptName ( prefName, true ) );
Optional.ofNullable ( this.getAltNamesMapper () )
.map ( mapper -> mapper.map ( src, graph ) )
.ifPresent ( names ->
names.filter ( name -> name != null )
.forEach ( name -> result.createConceptName ( name, false ) )
);
Optional.ofNullable ( this.getAccessionsMapper () )
.ifPresent ( mapper -> mapper.map ( src, result, graph ).count () );
return result;
}