SharedMethodInfo.java
- /*
- * Copyright (c) 2013, 2014 Oracle and/or its affiliates. All rights reserved. This
- * code is released under a tri EPL/GPL/LGPL license. You can use it,
- * redistribute it and/or modify it under the terms of the:
- *
- * Eclipse Public License version 1.0
- * GNU General Public License version 2
- * GNU Lesser General Public License version 2.1
- */
- package org.jruby.truffle.runtime.methods;
- import com.oracle.truffle.api.source.SourceSection;
- import org.jruby.truffle.runtime.LexicalScope;
- /**
- * {@link RubyMethod} objects are copied as properties such as visibility are changed. {@link SharedMethodInfo} stores
- * the state that does not change, such as where the method was defined.
- */
- public class SharedMethodInfo {
- private final SourceSection sourceSection;
- private final LexicalScope lexicalScope;
- private final String name;
- private final boolean isBlock;
- private final org.jruby.ast.Node parseTree;
- private final boolean alwaysSplit;
- public SharedMethodInfo(SourceSection sourceSection, LexicalScope lexicalScope, String name, boolean isBlock, org.jruby.ast.Node parseTree, boolean alwaysSplit) {
- assert sourceSection != null;
- assert name != null;
- this.sourceSection = sourceSection;
- this.lexicalScope = lexicalScope;
- this.name = name;
- this.isBlock = isBlock;
- this.parseTree = parseTree;
- this.alwaysSplit = alwaysSplit;
- }
- public SourceSection getSourceSection() {
- return sourceSection;
- }
- public LexicalScope getLexicalScope() {
- return lexicalScope;
- }
- public String getName() {
- return name;
- }
- public boolean isBlock() {
- return isBlock;
- }
- public org.jruby.ast.Node getParseTree() {
- return parseTree;
- }
- public boolean shouldAlwaysSplit() {
- return alwaysSplit;
- }
- @Override
- public String toString() {
- final StringBuilder builder = new StringBuilder();
- if (isBlock) {
- builder.append("block in ");
- }
- builder.append(name);
- builder.append(":");
- builder.append(sourceSection.getShortDescription());
- return builder.toString();
- }
- }