org.mesopotamia
Class LanguageElement

java.lang.Object
  extended by VisitableBase
      extended by org.mesopotamia.LanguageElement
All Implemented Interfaces:
java.lang.Comparable<LanguageElement>
Direct Known Subclasses:
SimpleLanguageElement

public class LanguageElement
extends VisitableBase
implements java.lang.Comparable<LanguageElement>

Generic wrapper for AST. More sophisticated classes (e.g. try block representation) shall extend this class.

Author:
Pavel Vlasov

Field Summary
protected  ConverterClosure data2leConverter
           
protected static UnmodifiableConvertingList emptyList
           
protected  java.lang.Object environment
           
protected  ConverterClosure le2idConverter
           
 
Constructor Summary
protected LanguageElement(NodeData xData, java.lang.Class<?> context, Scan scan, RepositoryLanguage language, java.lang.Object environment)
          Instances of LanguageElement shall be created only by repository
 
Method Summary
 int compareTo(LanguageElement otherElement)
          For sorting.
protected  java.util.List<LanguageElement> createLanguageElementsList(java.util.List<java.lang.Object> nodeDataList, java.lang.Class targetType)
          Creates a converting list of language elements.
<T> T
findParent(java.lang.Class<T> clazz)
          Navigates up the tree looking for parent of particular type.
 LanguageElement getChild(int idx)
          Convenience method
 int getChildId(int idx)
          Convenience method
 java.util.List<java.lang.Object> getChildren()
          Language element should not keep references to children, but a collection of children's primary keys (java.lang.Integer) and use converting collection (biz.hammurapi.util.ConvertingCollection), which would use Repository's languageElementCache to look up child instance.
 int getCol()
           
 LanguageElementHandle getHandle()
           
 int getId()
           
 RepositoryLanguage getLanguage()
           
 int getLine()
           
 java.lang.String getLocation()
           
 LanguageElement getNextSibling()
           
 MesopotamiaNode getNode()
           
 LanguageElement getParent()
           
 LanguageElement getPrevSibling()
           
protected  Scan getScan()
           
 LanguageElement getSibling(int offset)
           
 java.lang.String getSignature()
          Change to lazy calculation once in the future.
 AstSourceUnit getSourceUnit()
           
 java.lang.String getText()
           
 java.lang.String getTokenName()
          Token name, e.g.
 int getType()
           
<T> UnmodifiableConvertingList<T>
select(java.lang.Class<T> targetClass, java.lang.String path)
          Selects collection of language elements based on path expression.
<T> T
selectSingleElement(java.lang.Class<T> targetClass, java.lang.String path)
          Selects single language element based on path expression
 LanguageElementHandle selectSingleElementHandle(java.lang.Class targetClass, java.lang.String path)
          Selects single language element handle based on path expression
<T> java.lang.String
selectSingleElementText(java.lang.Class<T> targetClass, java.lang.String path)
           
 java.util.List<java.lang.String> selectText(java.lang.Class targetClass, java.lang.String path)
           
protected  void setAttribute(org.w3c.dom.Element holder, java.lang.String name, java.lang.String value)
          Sets attribute if value is not null.
protected  void setElement(org.w3c.dom.Element holder, java.lang.String name, java.lang.Object value)
          Adds nested element if value is not null
 void setParentHandle(LanguageElementHandle parentHandle)
           
 void show()
          Shows element in browser.
 boolean showInTree(java.lang.reflect.Method method)
          Override it to return false for methods which shall not be mounted to visualizer tree, i.e.
 void toDom(org.w3c.dom.Element holder)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Field Detail

environment

protected java.lang.Object environment

data2leConverter

protected ConverterClosure data2leConverter

le2idConverter

protected ConverterClosure le2idConverter

emptyList

protected static final UnmodifiableConvertingList emptyList
Constructor Detail

LanguageElement

protected LanguageElement(NodeData xData,
                          java.lang.Class<?> context,
                          Scan scan,
                          RepositoryLanguage language,
                          java.lang.Object environment)
Instances of LanguageElement shall be created only by repository

Method Detail

setParentHandle

public void setParentHandle(LanguageElementHandle parentHandle)

getParent

public LanguageElement getParent()

getLanguage

public RepositoryLanguage getLanguage()

getType

public int getType()

getChildren

public java.util.List<java.lang.Object> getChildren()
                                             throws MesopotamiaException
Language element should not keep references to children, but a collection of children's primary keys (java.lang.Integer) and use converting collection (biz.hammurapi.util.ConvertingCollection), which would use Repository's languageElementCache to look up child instance.

Returns:
Throws:
MesopotamiaException

getNode

public MesopotamiaNode getNode()

getChild

public LanguageElement getChild(int idx)
                         throws MesopotamiaException
Convenience method

Parameters:
idx -
Returns:
Throws:
MesopotamiaException

getChildId

public int getChildId(int idx)
               throws MesopotamiaException
Convenience method

Parameters:
idx -
Returns:
Throws:
MesopotamiaException

getPrevSibling

public LanguageElement getPrevSibling()

getNextSibling

public LanguageElement getNextSibling()

getSibling

public LanguageElement getSibling(int offset)

getCol

public int getCol()

getId

public int getId()

getLine

public int getLine()

getSignature

public java.lang.String getSignature()
Change to lazy calculation once in the future.

Returns:

getSourceUnit

public AstSourceUnit getSourceUnit()

getText

public java.lang.String getText()
Returns:
Language element text

toDom

public void toDom(org.w3c.dom.Element holder)

getTokenName

public java.lang.String getTokenName()
Token name, e.g. METHOD_CALL

Returns:

getScan

protected Scan getScan()

select

public <T> UnmodifiableConvertingList<T> select(java.lang.Class<T> targetClass,
                                                java.lang.String path)
                                     throws MesopotamiaException
Selects collection of language elements based on path expression.

Parameters:
context -
path -
Returns:
List of language elements
Throws:
MesopotamiaException

selectSingleElementHandle

public LanguageElementHandle selectSingleElementHandle(java.lang.Class targetClass,
                                                       java.lang.String path)
                                                throws MesopotamiaException
Selects single language element handle based on path expression

Parameters:
context -
path -
Returns:
Throws:
MesopotamiaException

selectSingleElement

public <T> T selectSingleElement(java.lang.Class<T> targetClass,
                                 java.lang.String path)
                      throws MesopotamiaException
Selects single language element based on path expression

Parameters:
context -
path -
Returns:
Throws:
MesopotamiaException

selectSingleElementText

public <T> java.lang.String selectSingleElementText(java.lang.Class<T> targetClass,
                                                    java.lang.String path)
                                         throws MesopotamiaException
Throws:
MesopotamiaException

selectText

public java.util.List<java.lang.String> selectText(java.lang.Class targetClass,
                                                   java.lang.String path)
                                            throws MesopotamiaException
Throws:
MesopotamiaException

setAttribute

protected void setAttribute(org.w3c.dom.Element holder,
                            java.lang.String name,
                            java.lang.String value)
Sets attribute if value is not null.

Parameters:
holder -
name -
value -

setElement

protected void setElement(org.w3c.dom.Element holder,
                          java.lang.String name,
                          java.lang.Object value)
Adds nested element if value is not null

Parameters:
holder -
name -
value -

createLanguageElementsList

protected java.util.List<LanguageElement> createLanguageElementsList(java.util.List<java.lang.Object> nodeDataList,
                                                                     java.lang.Class targetType)
Creates a converting list of language elements. Use this method to construct custom lists of language element children.

Parameters:
idList -
targetType -
Returns:

getHandle

public LanguageElementHandle getHandle()
Returns:
Language element handle.

compareTo

public int compareTo(LanguageElement otherElement)
For sorting.


getLocation

public java.lang.String getLocation()

toString

public java.lang.String toString()

show

public void show()
Shows element in browser. Use it for debugging.


findParent

public <T> T findParent(java.lang.Class<T> clazz)
Navigates up the tree looking for parent of particular type.

Parameters:
clazz - Type of parent to be found.
Returns:
Parent of type specified in clazz parameter.

showInTree

public boolean showInTree(java.lang.reflect.Method method)
Override it to return false for methods which shall not be mounted to visualizer tree, i.e. methods which return references to other language elements.

Returns:
true if method return value shall be shown in the visualizer tree.


Copyright © 2005 Hammurapi Group. All Rights Reserved.