| /* |
| * Copyright 2008 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| package com.google.gwt.dev.jjs; |
| |
| import com.google.gwt.dev.jjs.Correlation.Axis; |
| |
| import java.io.Serializable; |
| |
| /** |
| * Tracks file and line information for AST nodes. |
| */ |
| public interface SourceInfo extends Serializable { |
| |
| /** |
| * Add a Correlation to the SourceInfo. |
| */ |
| void addCorrelation(Correlation c); |
| |
| /** |
| * Return the Correlation that has been set for a given Axis, or |
| * <code>null</code> if no Correlation has been set on the given axis. |
| */ |
| Correlation getCorrelation(Axis axis); |
| |
| /** |
| * Returns the Correlations added along each Axis on which a Correlation has |
| * been set. Some entries may be null and should be ignored. |
| */ |
| Correlation[] getCorrelations(); |
| |
| /** |
| * Returns the correlation factory that created this node. |
| */ |
| CorrelationFactory getCorrelator(); |
| |
| int getEndPos(); |
| |
| String getFileName(); |
| |
| SourceOrigin getOrigin(); |
| |
| int getStartLine(); |
| |
| int getStartPos(); |
| |
| /** |
| * Create a child node of the same type and Origin as this node. If data |
| * accumulation is enabled, the derived node will inherit its Correlations |
| * from this node. |
| */ |
| SourceInfo makeChild(); |
| |
| /** |
| * Create a child node of the same type as this node, but with a new Origin. |
| * If data accumulation is enabled, the derived node will inherit its |
| * Correlations from this node. |
| */ |
| SourceInfo makeChild(SourceOrigin origin); |
| } |