public long getFileOffset(long rva) {
        // standard value if rva doesn't point into a section
        long fileOffset = rva;
        Optional<Long> maybeOffset = maybeGetFileOffset(rva);
        // file offset is not within file --> warning
        if (!maybeOffset.isPresent()) {
            logger.warn("invalid file offset: 0x"
                    + Long.toHexString(fileOffset) + " for file: "
                    + file.getName() + " with length 0x"
                    + Long.toHexString(file.length()));
        } else {
        	fileOffset = maybeOffset.get();
        }
        return fileOffset;
    }
public long getFileOffset ( long rva ) { long fileOffset = rva ; Optional < Long > maybeOffset = maybeGetFileOffset ( rva ) ; if ( ! maybeOffset . isPresent ( ) ) { logger . warn ( "invalid file offset: 0x" + Long . toHexString ( fileOffset ) + " for file: " + file . getName ( ) + " with length 0x" + Long . toHexString ( file . length ( ) ) ) ; } else { fileOffset = maybeOffset . get ( ) ; } return fileOffset ; }
Returns the file offset for the given RVA.
<p>
A warning is issued if the file offset is outside the file, but the file
offset will be returned nevertheless.

@param rva
the relative virtual address that shall be converted to a
plain file offset
@return file offset