Example usage for org.eclipse.jdt.internal.core SourceMapper findSource

List of usage examples for org.eclipse.jdt.internal.core SourceMapper findSource

Introduction

In this page you can find the example usage for org.eclipse.jdt.internal.core SourceMapper findSource.

Prototype

public char[] findSource(IType type, String simpleSourceFileName) 

Source Link

Document

Locates and returns source code for the given (binary) type, in this SourceMapper's ZIP file, or returns null if source code cannot be found.

Usage

From source file:com.codenvy.ide.ext.java.server.internal.core.ClassFile.java

License:Open Source License

/** 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);//  w ww .j  a  v  a 2s . com

        // 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;
    }
}

From source file:com.codenvy.ide.ext.java.server.internal.core.search.matching.MatchLocator.java

License:Open Source License

protected void reportBinaryMemberDeclaration(IResource resource, IMember binaryMember,
        Binding binaryMemberBinding, IBinaryType info, int accuracy) throws CoreException {
    ClassFile classFile = (ClassFile) binaryMember.getClassFile();
    ISourceRange range = classFile.isOpen() ? binaryMember.getNameRange() : SourceMapper.UNKNOWN_RANGE;
    if (range.getOffset() == -1) {
        BinaryType type = (BinaryType) classFile.getType();
        String sourceFileName = type.sourceFileName(info);
        if (sourceFileName != null) {
            SourceMapper mapper = classFile.getSourceMapper();
            if (mapper != null) {
                char[] contents = mapper.findSource(type, sourceFileName);
                if (contents != null)
                    range = mapper.mapSource(type, contents, info, binaryMember);
            }/* w  w  w .j  a v a 2s .c  o  m*/
        }
    }
    if (resource == null)
        resource = this.currentPossibleMatch.resource;
    SearchMatch match = newDeclarationMatch(binaryMember, binaryMemberBinding, accuracy, range.getOffset(),
            range.getLength(), getParticipant(), resource);
    report(match);
}

From source file:com.codenvy.ide.ext.java.server.internal.core.search.matching.PossibleMatch.java

License:Open Source License

public char[] getContents() {
    char[] contents = (this.source == NO_SOURCE_FILE) ? null : this.source;
    if (this.source == null) {
        if (this.openable instanceof ClassFile) {
            String fileName = getSourceFileName();
            if (fileName == NO_SOURCE_FILE_NAME)
                return CharOperation.NO_CHAR;

            SourceMapper sourceMapper = this.openable.getSourceMapper();
            if (sourceMapper != null) {
                IType type = ((ClassFile) this.openable).getType();
                contents = sourceMapper.findSource(type, fileName);
            }/*from  w  ww . j  a v  a2  s.co  m*/
        } else {
            contents = this.document.getCharContents();
        }
        this.source = (contents == null) ? NO_SOURCE_FILE : contents;
    }
    return contents;
}

From source file:org.sf.feeling.decompiler.editor.ClassFileSourceMap.java

License:Open Source License

private static void mapSource(JavaDecompilerBufferManager bufferManager, ClassFile cf, SourceMapper mapper,
        IBinaryType info, IClassFile bufferOwner, char[] markedSrc) {
    char[] contents = mapper.findSource(cf.getType(), info);
    if (Arrays.equals(markedSrc, contents))
        return;/*from www.j  a va2  s .com*/
    contents = markedSrc;
    if (contents != null) {
        // create buffer
        IBuffer buffer = BufferManager.createBuffer(bufferOwner);
        if (buffer == null)
            return;
        JavaDecompilerBufferManager bufManager = bufferManager;
        bufManager.addBuffer(buffer);

        // set the buffer source
        if (buffer.getCharacters() == null) {
            buffer.setContents(contents);
        }

        // listen to buffer changes
        // buffer.addBufferChangedListener( cf );

        // do the source mapping
        mapper.mapSource(getOuterMostEnclosingType(cf), contents, info);

        return;
    } else {
        // create buffer
        IBuffer buffer = BufferManager.createNullBuffer(bufferOwner);
        if (buffer == null)
            return;
        JavaDecompilerBufferManager bufManager = bufferManager;
        bufManager.addBuffer(buffer);

        // listen to buffer changes
        // buffer.addBufferChangedListener( cf );
        return;
    }
}