/** Loads the buffer via SourceMapper, and maps it in SourceMapper */ private IBuffer mapSource(SourceMapper mapper, IBinaryType info, IClassFile bufferOwner) { char[] contents = mapper.findSource(getType(), info); if (contents != null) { // create buffer IBuffer buffer = BufferManager.createBuffer(bufferOwner); if (buffer == null) return null; BufferManager bufManager = getBufferManager(); bufManager.addBuffer(buffer); // set the buffer source if (buffer.getCharacters() == null) { buffer.setContents(contents); } // listen to buffer changes buffer.addBufferChangedListener(this); // do the source mapping mapper.mapSource(getOuterMostEnclosingType(), contents, info); return buffer; } else { // create buffer IBuffer buffer = BufferManager.createNullBuffer(bufferOwner); if (buffer == null) return null; BufferManager bufManager = getBufferManager(); bufManager.addBuffer(buffer); // listen to buffer changes buffer.addBufferChangedListener(this); return buffer; } }
/** Loads the buffer via SourceMapper, and maps it in SourceMapper */ private IBuffer mapSource( SourceMapper mapper, ClassFileElementInfo info, IClassFile bufferOwner) { char[] contents = mapper.findSource(getPart(), info.getEglFileName(), info.getCaseSensitivePackageName()); // create buffer BufferManager bufManager = getBufferManager(); IBuffer buffer = bufManager.createBuffer(bufferOwner); if (buffer == null) return null; bufManager.addBuffer(buffer); if (contents != null) { // set the buffer source if (buffer.getCharacters() == null) { buffer.setContents(contents); } } else { if (buffer.getCharacters() == null) { String result = EGLModelResources.eglarNoSourceAttachmentContent; buffer.setContents(result.toCharArray()); } } buffer.addBufferChangedListener(this); return buffer; }
/** @see Openable#openBuffer(IProgressMonitor, Object) */ protected IBuffer openBuffer(IProgressMonitor pm, Object info) throws JavaModelException { // create buffer IBuffer buffer = this.owner.createBuffer(this); if (buffer == null) return null; // set the buffer source if (buffer.getCharacters() == null) { IBuffer classFileBuffer = this.classFile.getBuffer(); if (classFileBuffer != null) { buffer.setContents(classFileBuffer.getCharacters()); } else { // Disassemble IClassFileReader reader = ToolFactory.createDefaultClassFileReader(this.classFile, IClassFileReader.ALL); Disassembler disassembler = new Disassembler(); String contents = disassembler.disassemble( reader, Util.getLineSeparator("", getJavaProject()), ClassFileBytesDisassembler.WORKING_COPY); // $NON-NLS-1$ buffer.setContents(contents); } } // add buffer to buffer cache BufferManager bufManager = getBufferManager(); bufManager.addBuffer(buffer); // listen to buffer changes buffer.addBufferChangedListener(this); return buffer; }