// Copyright 2012 Google Inc. All Rights Reserved.
//
// 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.collide.client.code.autocomplete.codegraph;
import com.google.collide.client.documentparser.ParseResult;
import com.google.collide.codemirror2.State;
/**
* Data bean that represents textual context around cursor position.
*
* @param <T> language-specific {@link State} type.
*
*/
public class CompletionContext<T extends State> {
/**
* Type of autocomplete.
*/
private final CompletionType completionType;
/**
* Flag that indicates that we are addressing object own items.
*/
private final boolean isThisContext;
/**
* Prefix (preceding expression) used for trie truncating.
*/
private final String previousContext;
/**
* Autocompleter triggering string.
*
* <p>String that looks like uncompleted identifier.
*/
private final String triggeringString;
/**
* Result of parsing of line to the cursor position.
*
* @see ParseUtils#getExtendedParseResult
*/
private final ParseResult<T> parseResult;
/**
* Proposed indention for the next line.
*/
private final int indent;
public CompletionContext(String previousContext, String triggeringString, boolean thisContext,
CompletionType completionType, ParseResult<T> parseResult, int indent) {
this.previousContext = previousContext;
this.triggeringString = triggeringString;
this.isThisContext = thisContext;
this.completionType = completionType;
this.parseResult = parseResult;
this.indent = indent;
}
public CompletionType getCompletionType() {
return completionType;
}
public boolean isThisContext() {
return isThisContext;
}
public String getPreviousContext() {
return previousContext;
}
public String getTriggeringString() {
return triggeringString;
}
public ParseResult<T> getParseResult() {
return parseResult;
}
public int getIndent() {
return indent;
}
}