private IBuffer mapSource(SourceMapper mapper,IBinaryType info,IClassFile bufferOwner){
  char[] contents=mapper.findSource(getType(),info);
  if (contents != null) {
    IBuffer buffer=BufferManager.createBuffer(bufferOwner);
    if (buffer == null)     return null;
    BufferManager bufManager=getBufferManager();
    bufManager.addBuffer(buffer);
    if (buffer.getCharacters() == null) {
      buffer.setContents(contents);
    }
    buffer.addBufferChangedListener(this);
    mapper.mapSource(getOuterMostEnclosingType(),contents,info);
    return buffer;
  }
 else {
    IBuffer buffer=BufferManager.createNullBuffer(bufferOwner);
    if (buffer == null)     return null;
    BufferManager bufManager=getBufferManager();
    bufManager.addBuffer(buffer);
    buffer.addBufferChangedListener(this);
    return buffer;
  }
}

private IBuffer mapSource ( SourceMapper mapper , IBinaryType info , IClassFile bufferOwner ) { char [ ] contents = mapper . findSource ( getType ( ) , info ) ; if ( contents != null ) { IBuffer buffer = BufferManager . createBuffer ( bufferOwner ) ; if ( buffer == null ) return null ; BufferManager bufManager = getBufferManager ( ) ; bufManager . addBuffer ( buffer ) ; if ( buffer . getCharacters ( ) == null ) { buffer . setContents ( contents ) ; } buffer . addBufferChangedListener ( this ) ; mapper . mapSource ( getOuterMostEnclosingType ( ) , contents , info ) ; return buffer ; } else { IBuffer buffer = BufferManager . createNullBuffer ( bufferOwner ) ; if ( buffer == null ) return null ; BufferManager bufManager = getBufferManager ( ) ; bufManager . addBuffer ( buffer ) ; buffer . addBufferChangedListener ( this ) ; return buffer ; } }
loads the buffer via sourcemapper , and maps it in sourcemapper
