Too much stuff in one commit. Rename blocks now follows language semantics. Removal of more ASTPath consumers
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
4 * Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
6 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
7 * Other names may be trademarks of their respective owners.
9 * The contents of this file are subject to the terms of either the GNU
10 * General Public License Version 2 only ("GPL") or the Common
11 * Development and Distribution License("CDDL") (collectively, the
12 * "License"). You may not use this file except in compliance with the
13 * License. You can obtain a copy of the License at
14 * http://www.netbeans.org/cddl-gplv2.html
15 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
16 * specific language governing permissions and limitations under the
17 * License. When distributing the software, include this License Header
18 * Notice in each file and include the License file at
19 * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
20 * particular file as subject to the "Classpath" exception as provided
21 * by Oracle in the GPL Version 2 section of the License file that
22 * accompanied this code. If applicable, add the following below the
23 * License Header, with the fields enclosed by brackets [] replaced by
24 * your own identifying information:
25 * "Portions Copyrighted [year] [name of copyright owner]"
29 * The Original Software is NetBeans. The Initial Developer of the Original
30 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2008 Sun
31 * Microsystems, Inc. All Rights Reserved.
33 * If you wish your version of this file to be governed by only the CDDL
34 * or only the GPL Version 2, indicate your decision by adding
35 * "[Contributor] elects to include this software in this distribution
36 * under the [CDDL or GPL Version 2] license." If you do not indicate a
37 * single choice of license, a recipient has the option to distribute
38 * your version of this file under either the CDDL, the GPL Version 2 or
39 * to extend the choice of license to its licensees as provided above.
40 * However, if you add GPL Version 2 code and therefore, elected the GPL
41 * Version 2 license, then the option applies only if the new code is
42 * made subject to such option by the copyright holder.
44 package org.netbeans.modules.ruby;
46 import java.util.ArrayList;
47 import java.util.List;
48 import org.jrubyparser.ast.Node;
49 import org.jrubyparser.parser.ParserResult;
50 import org.netbeans.api.annotations.common.NonNull;
51 import org.netbeans.modules.csl.api.Error;
52 import org.netbeans.modules.csl.api.OffsetRange;
53 import org.netbeans.modules.parsing.api.Snapshot;
58 public class RubyParseResult extends org.netbeans.modules.csl.spi.ParserResult {
60 private final Node rootNode;
62 private String source;
63 private OffsetRange sanitizedRange = OffsetRange.NONE;
64 private String sanitizedContents;
65 private RubyStructureAnalyzer.AnalysisResult analysisResult;
66 private RubyParser.Sanitize sanitized;
67 private ParserResult jrubyResult;
68 private boolean commentsAdded;
69 private List<Error> errors;
71 public RubyParseResult(Snapshot snapshot, Node rootNode) {
73 this.rootNode = rootNode;
74 this.errors = new ArrayList<Error>();
78 protected void invalidate() {
79 // XXX: what exactly should we do here?
83 public List<? extends Error> getDiagnostics() {
87 public void setErrors(List<? extends Error> errors) {
88 this.errors = new ArrayList<Error>(errors);
91 /** The root node of the AST produced by the parser.
92 * Later, rip out the getAst part etc.
94 public Node getRootNode() {
98 public String getSource() {
102 public void setSource(String source) {
103 this.source = source;
107 * Return whether the source code for the parse result was "cleaned"
108 * or "sanitized" (modified to reduce chance of parser errors) or not.
109 * This method returns OffsetRange.NONE if the source was not sanitized,
110 * otherwise returns the actual sanitized range.
112 public OffsetRange getSanitizedRange() {
113 return sanitizedRange;
116 public String getSanitizedContents() {
117 return sanitizedContents;
121 * Set the range of source that was sanitized, if any.
123 void setSanitized(RubyParser.Sanitize sanitized, OffsetRange sanitizedRange, String sanitizedContents) {
124 this.sanitized = sanitized;
125 this.sanitizedRange = sanitizedRange;
126 this.sanitizedContents = sanitizedContents;
129 public RubyParser.Sanitize getSanitized() {
133 public ParserResult getJRubyResult() {
137 public void setStructure(@NonNull RubyStructureAnalyzer.AnalysisResult result) {
138 this.analysisResult = result;
142 public RubyStructureAnalyzer.AnalysisResult getStructure() {
143 if (analysisResult == null) {
144 analysisResult = new RubyStructureAnalyzer().analyze(this);
146 return analysisResult;
149 public boolean isCommentsAdded() {
150 return commentsAdded;
153 public void setCommentsAdded(boolean commentsAdded) {
154 this.commentsAdded = commentsAdded;