org.sintef.mofscript.editor
Class MofScriptContentAssistProcessor

java.lang.Object
  extended by org.sintef.mofscript.editor.MofScriptContentAssistProcessor
All Implemented Interfaces:
org.eclipse.jface.text.contentassist.IContentAssistProcessor
Direct Known Subclasses:
MofScriptUML2ContentAssistProcessor

public class MofScriptContentAssistProcessor
extends java.lang.Object
implements org.eclipse.jface.text.contentassist.IContentAssistProcessor

Provides content assist for the MOFScript editor

Author:
jol

Nested Class Summary
protected static class MofScriptContentAssistProcessor.Validator
          Simple content assist tip closer.
 
Field Summary
protected  MofScriptModelChecker _checker
           
protected  org.eclipse.emf.ecore.EStructuralFeature _currentFeature
           
protected  ParserUtil _parserutil
           
protected  org.eclipse.jface.text.contentassist.IContextInformationValidator _validator
           
protected  org.eclipse.emf.ecore.EClass currentContextClass
           
protected  java.lang.String currentResultType
           
protected static java.lang.String[] fgProposals
           
protected static java.lang.String[] hashTableProposals
           
protected static java.lang.String[] listProposals
           
protected  java.util.Hashtable metamodelSource
           
protected  java.lang.String metamodelTarget
           
protected static java.lang.String[] oclModelFunctions
           
protected  org.eclipse.jface.text.contentassist.ICompletionProposal[] previousCompletion
           
protected static java.lang.String[] standardOclFunctions
           
protected static java.lang.String[] stdCollectionProposals
           
protected static java.lang.String[] stdIntegerProposals
           
protected static java.lang.String[] stdStringFunctionProposals
           
 
Constructor Summary
MofScriptContentAssistProcessor()
           
 
Method Summary
protected  org.eclipse.jface.text.contentassist.ICompletionProposal[] arrayToProposals(java.lang.String[] list, int documentOffset, int replacementLength, int cursorOffset)
          Creates a list of proposals based on an array input
 void clean()
          Cleans the previous competion, current result type and current context class
 org.eclipse.jface.text.contentassist.ICompletionProposal[] computeCompletionProposals(org.eclipse.jface.text.ITextViewer viewer, int documentOffset)
          Computes completion for MOFScript
 org.eclipse.jface.text.contentassist.IContextInformation[] computeContextInformation(org.eclipse.jface.text.ITextViewer viewer, int documentOffset)
           
protected  org.eclipse.jface.text.contentassist.ICompletionProposal[] createCollectionProposals(int documentOffset, java.lang.String[] proposals)
          Retrieves standard Collection Proposals
protected  org.eclipse.jface.text.contentassist.ICompletionProposal[] createIntegerProposals(int documentOffset)
          Retrieves Integer proposals
protected  org.eclipse.jface.text.contentassist.ICompletionProposal[] createOclProposals(int documentOffset)
          Retrieves OCL proposals
protected  org.eclipse.jface.text.contentassist.ICompletionProposal[] createSingleProposal(java.lang.String cname, int documentOffset, int replacementLength)
          Creates a single proposal based on String input
protected  org.eclipse.jface.text.contentassist.ICompletionProposal[] createStringFunctionProposals(int documentOffset)
          Retrieves String proposals
 char[] getCompletionProposalAutoActivationCharacters()
           
protected  org.eclipse.jface.text.contentassist.ICompletionProposal[] getCompletionsForFeature(java.util.List rulesForConcept, org.eclipse.emf.ecore.EClass contextClass, java.lang.String[] featureSplit, int featureIndex, int documentOffset)
           
 char[] getContextInformationAutoActivationCharacters()
           
 org.eclipse.jface.text.contentassist.IContextInformationValidator getContextInformationValidator()
           
 java.lang.String getErrorMessage()
           
protected  java.lang.String[] getFilesOnPath()
           
protected  java.util.List getModelOperations(int documentOffset)
          Creates proposals for the model parameters
protected  java.util.List getTypeProposalExtensions(int documentOffset)
           
protected  org.eclipse.jface.text.contentassist.ICompletionProposal[] handleBaseTypeProposals(java.lang.String typeName, int documentOffset)
          Proposals for base types
protected  boolean isBaseType(java.lang.String typeName)
          Checks if the input is a MOFScript base type
protected  boolean isCollectionOperation(java.lang.String operationName)
           
protected  boolean isSingularCollectionOperation(java.lang.String opName)
           
protected  org.eclipse.jface.text.contentassist.ICompletionProposal[] listToProposals(java.util.List list, int documentOffset)
          Creates an array of proposals based on a list of NamedElements
protected  java.util.Set namedElementsToNameList(java.util.List list)
          Creates a set of names based on the named from a list of NamedElements
 void setEditor(MofScriptTextEditor editor)
           
protected  org.eclipse.jface.text.contentassist.ICompletionProposal[] stringListToProposals(java.util.Collection list, int documentOffset)
          Creates proposals from a list of Strings
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

metamodelTarget

protected java.lang.String metamodelTarget

metamodelSource

protected java.util.Hashtable metamodelSource

currentResultType

protected java.lang.String currentResultType

currentContextClass

protected org.eclipse.emf.ecore.EClass currentContextClass

previousCompletion

protected org.eclipse.jface.text.contentassist.ICompletionProposal[] previousCompletion

fgProposals

protected static final java.lang.String[] fgProposals

stdStringFunctionProposals

protected static final java.lang.String[] stdStringFunctionProposals

stdCollectionProposals

protected static final java.lang.String[] stdCollectionProposals

hashTableProposals

protected static final java.lang.String[] hashTableProposals

listProposals

protected static final java.lang.String[] listProposals

stdIntegerProposals

protected static final java.lang.String[] stdIntegerProposals

standardOclFunctions

protected static final java.lang.String[] standardOclFunctions

oclModelFunctions

protected static final java.lang.String[] oclModelFunctions

_validator

protected org.eclipse.jface.text.contentassist.IContextInformationValidator _validator

_parserutil

protected ParserUtil _parserutil

_checker

protected MofScriptModelChecker _checker

_currentFeature

protected org.eclipse.emf.ecore.EStructuralFeature _currentFeature
Constructor Detail

MofScriptContentAssistProcessor

public MofScriptContentAssistProcessor()
Method Detail

clean

public void clean()
Cleans the previous competion, current result type and current context class


setEditor

public void setEditor(MofScriptTextEditor editor)

computeCompletionProposals

public org.eclipse.jface.text.contentassist.ICompletionProposal[] computeCompletionProposals(org.eclipse.jface.text.ITextViewer viewer,
                                                                                             int documentOffset)
Computes completion for MOFScript

Specified by:
computeCompletionProposals in interface org.eclipse.jface.text.contentassist.IContentAssistProcessor
Parameters:
viewer -
documentOffset -
Returns:
information used to present the proposed completion to the user

getCompletionsForFeature

protected org.eclipse.jface.text.contentassist.ICompletionProposal[] getCompletionsForFeature(java.util.List rulesForConcept,
                                                                                              org.eclipse.emf.ecore.EClass contextClass,
                                                                                              java.lang.String[] featureSplit,
                                                                                              int featureIndex,
                                                                                              int documentOffset)
Parameters:
rulesForConcept -
contextClass -
featureSplit -
featureIndex -
documentOffset -
Returns:

isBaseType

protected boolean isBaseType(java.lang.String typeName)
Checks if the input is a MOFScript base type

Parameters:
typeName -
Returns:

isCollectionOperation

protected boolean isCollectionOperation(java.lang.String operationName)
Parameters:
operationName -
Returns:

isSingularCollectionOperation

protected boolean isSingularCollectionOperation(java.lang.String opName)

handleBaseTypeProposals

protected org.eclipse.jface.text.contentassist.ICompletionProposal[] handleBaseTypeProposals(java.lang.String typeName,
                                                                                             int documentOffset)
Proposals for base types

Parameters:
typeName -
documentOffset -
Returns:

getModelOperations

protected java.util.List getModelOperations(int documentOffset)
Creates proposals for the model parameters

Parameters:
documentOffset -
Returns:

namedElementsToNameList

protected java.util.Set namedElementsToNameList(java.util.List list)
Creates a set of names based on the named from a list of NamedElements

Parameters:
list - The list of NamedElements
Returns:
Set of names (strings)

stringListToProposals

protected org.eclipse.jface.text.contentassist.ICompletionProposal[] stringListToProposals(java.util.Collection list,
                                                                                           int documentOffset)
Creates proposals from a list of Strings

Parameters:
list -
documentOffset -
Returns:

listToProposals

protected org.eclipse.jface.text.contentassist.ICompletionProposal[] listToProposals(java.util.List list,
                                                                                     int documentOffset)
Creates an array of proposals based on a list of NamedElements

Parameters:
list - List of NamedElements
documentOffset - the offset used
Returns:

arrayToProposals

protected org.eclipse.jface.text.contentassist.ICompletionProposal[] arrayToProposals(java.lang.String[] list,
                                                                                      int documentOffset,
                                                                                      int replacementLength,
                                                                                      int cursorOffset)
Creates a list of proposals based on an array input

Parameters:
list -
documentOffset -
replacementLength -
cursorOffset -
Returns:

createSingleProposal

protected org.eclipse.jface.text.contentassist.ICompletionProposal[] createSingleProposal(java.lang.String cname,
                                                                                          int documentOffset,
                                                                                          int replacementLength)
Creates a single proposal based on String input

Parameters:
cname -
documentOffset -
replacementLength -
Returns:

computeContextInformation

public org.eclipse.jface.text.contentassist.IContextInformation[] computeContextInformation(org.eclipse.jface.text.ITextViewer viewer,
                                                                                            int documentOffset)
Specified by:
computeContextInformation in interface org.eclipse.jface.text.contentassist.IContentAssistProcessor
Parameters:
viewer -
documentOffset -

createStringFunctionProposals

protected org.eclipse.jface.text.contentassist.ICompletionProposal[] createStringFunctionProposals(int documentOffset)
Retrieves String proposals

Parameters:
documentOffset -
Returns:

createCollectionProposals

protected org.eclipse.jface.text.contentassist.ICompletionProposal[] createCollectionProposals(int documentOffset,
                                                                                               java.lang.String[] proposals)
Retrieves standard Collection Proposals

Parameters:
documentOffset -
Returns:

createIntegerProposals

protected org.eclipse.jface.text.contentassist.ICompletionProposal[] createIntegerProposals(int documentOffset)
Retrieves Integer proposals

Parameters:
documentOffset -
Returns:

createOclProposals

protected org.eclipse.jface.text.contentassist.ICompletionProposal[] createOclProposals(int documentOffset)
Retrieves OCL proposals

Parameters:
documentOffset -
Returns:

getCompletionProposalAutoActivationCharacters

public char[] getCompletionProposalAutoActivationCharacters()
Specified by:
getCompletionProposalAutoActivationCharacters in interface org.eclipse.jface.text.contentassist.IContentAssistProcessor

getContextInformationAutoActivationCharacters

public char[] getContextInformationAutoActivationCharacters()
Specified by:
getContextInformationAutoActivationCharacters in interface org.eclipse.jface.text.contentassist.IContentAssistProcessor

getContextInformationValidator

public org.eclipse.jface.text.contentassist.IContextInformationValidator getContextInformationValidator()
Specified by:
getContextInformationValidator in interface org.eclipse.jface.text.contentassist.IContentAssistProcessor

getErrorMessage

public java.lang.String getErrorMessage()
Specified by:
getErrorMessage in interface org.eclipse.jface.text.contentassist.IContentAssistProcessor

getTypeProposalExtensions

protected java.util.List getTypeProposalExtensions(int documentOffset)

getFilesOnPath

protected java.lang.String[] getFilesOnPath()
Returns:
an array of the available MOFScript files on the path