Package st.gravel.support.jvm

Source Code of st.gravel.support.jvm.MethodMirror

package st.gravel.support.jvm;

import st.gravel.core.Symbol;
import st.gravel.support.compiler.ast.MethodNode;
import st.gravel.support.compiler.ast.SourcePosition;

public class MethodMirror {

  private final MethodNode method;
  private final ClassDescriptionMirror mclass;

  public MethodMirror(MethodNode method, ClassDescriptionMirror mclass) {
    this.method = method;
    this.mclass = mclass;
  }

  public String source() {
    SourcePosition sourcePosition = method.sourcePosition();
    if(sourcePosition == null)
      return method.prettySourceString();
    String contentsOfEntireFile = FilenameExtensions.contentsOfEntireFile(sourcePosition.sourceFile().asFile());
    return contentsOfEntireFile.substring(sourcePosition.start(), sourcePosition.stop());
  }
  public Symbol selector() {
    return Symbol.value(method.selector());
  }
 
  public String protocol() {
    return method.protocol();
  }

  public Symbol packageName() {
    return method.packageName();
  }

  public ClassDescriptionMirror mclass() {
    return mclass;
  }
 
 
}
TOP

Related Classes of st.gravel.support.jvm.MethodMirror

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.