Class TreeAppendable
- java.lang.Object
-
- org.eclipse.xtext.xbase.compiler.output.TreeAppendable
-
- All Implemented Interfaces:
java.lang.CharSequence,org.eclipse.xtext.generator.trace.ITraceRegionProvider,org.eclipse.xtext.util.IAcceptor<java.lang.String>,IAppendable,ISourceAppender,ITreeAppendable
- Direct Known Subclasses:
ErrorTreeAppendable
public class TreeAppendable extends java.lang.Object implements ITreeAppendable, org.eclipse.xtext.util.IAcceptor<java.lang.String>, java.lang.CharSequence
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classTreeAppendable.VisitorAvisitorcan be used to manipulate an existingTreeAppendableor to create a completely new one recursively.
-
Constructor Summary
Constructors Modifier Constructor Description TreeAppendable(ImportManager importManager, org.eclipse.xtext.generator.trace.ITraceURIConverter converter, org.eclipse.xtext.resource.ILocationInFileProvider locationProvider, IJvmModelAssociations jvmModelAssociations, org.eclipse.emf.ecore.EObject source, java.lang.String indentation, java.lang.String lineSeparator)protectedTreeAppendable(SharedAppendableState state, org.eclipse.xtext.generator.trace.ITraceURIConverter converter, org.eclipse.xtext.resource.ILocationInFileProvider locationProvider, IJvmModelAssociations jvmModelAssociations, java.util.Set<org.eclipse.xtext.generator.trace.ILocationData> sourceLocations, boolean useForDebugging)protectedTreeAppendable(SharedAppendableState state, org.eclipse.xtext.generator.trace.ITraceURIConverter converter, org.eclipse.xtext.resource.ILocationInFileProvider locationProvider, IJvmModelAssociations jvmModelAssociations, org.eclipse.emf.ecore.EObject source)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaccept(java.lang.String text)TreeAppendableacceptVisitor(TreeAppendable.Visitor visitor)ITreeAppendableappend(java.lang.CharSequence content)Appends the specified character sequence to this ITreeAppendable.ITreeAppendableappend(java.lang.Class<?> type)TreeAppendableappend(org.eclipse.xtext.common.types.JvmType type)ITreeAppendableappend(LightweightTypeReference typeRef)protected voidappendIndented(java.lang.String text)protected ITreeAppendableappendTreeAppendable(ITreeAppendable other)TreeAppendableappendUnsafe(java.lang.String string)ITreeAppendableblankLine()Inserts a blank line, without indentationcharcharAt(int index)protected voidcloseLastChild()voidcloseScope()protected static java.util.Set<org.eclipse.xtext.generator.trace.ILocationData>createAllLocationData(org.eclipse.xtext.generator.trace.ITraceURIConverter converter, org.eclipse.xtext.resource.ILocationInFileProvider locationProvider, IJvmModelAssociations jvmModelAssociations, org.eclipse.emf.ecore.EObject object, org.eclipse.xtext.resource.ILocationInFileProviderExtension.RegionDescription query, boolean skipEmpty)protected TreeAppendablecreateChild(SharedAppendableState state, org.eclipse.xtext.resource.ILocationInFileProvider locationProvider, IJvmModelAssociations jvmModelAssociations, java.util.Set<org.eclipse.xtext.generator.trace.ILocationData> newData, boolean useForDebugging)protected LightweightTypeReferenceSerializercreateLightweightTypeReferenceSerializer()protected static org.eclipse.xtext.generator.trace.ILocationDatacreateLocationData(org.eclipse.xtext.generator.trace.ITraceURIConverter converter, org.eclipse.emf.ecore.EObject object, org.eclipse.xtext.util.ITextRegionWithLineInformation textRegion)protected static org.eclipse.xtext.generator.trace.ILocationDatacreateLocationData(org.eclipse.xtext.generator.trace.ITraceURIConverter converter, org.eclipse.xtext.resource.ILocationInFileProvider locationProvider, org.eclipse.emf.ecore.EObject object, org.eclipse.xtext.resource.ILocationInFileProviderExtension.RegionDescription query)java.lang.StringdeclareSyntheticVariable(java.lang.Object key, java.lang.String proposedName)Declares a synthetic variable, where the name is not used in the current or any parent scope except by other synthetic variables.java.lang.StringdeclareUniqueNameVariable(java.lang.Object key, java.lang.String proposedName)Declares a variable with unique name, which is not used in the current or any parent scope.java.lang.StringdeclareVariable(java.lang.Object key, java.lang.String proposedName)TreeAppendabledecreaseIndentation()protected voiddoGetContent(java.lang.StringBuilder result)voiddump()protected voiddump(java.lang.String indent)ErrorTreeAppendableerrorChild()java.util.List<? extends java.lang.Object>getChildren()Access the children of theTreeAppendable.java.lang.StringgetContent()GeneratorConfiggetGeneratorConfig()java.util.List<java.lang.String>getImports()Deprecated.java.util.Set<org.eclipse.xtext.generator.trace.ILocationData>getLocationData()java.lang.StringgetName(java.lang.Object key)java.lang.ObjectgetObject(java.lang.String name)SharedAppendableStategetState()org.eclipse.xtext.generator.trace.AbstractTraceRegiongetTraceRegion()org.eclipse.xtext.generator.trace.ITraceURIConvertergetTraceURIConverter()booleanhasName(java.lang.Object key)booleanhasObject(java.lang.String name)TreeAppendableincreaseIndentation()protected booleanisClosed()booleanisJava()booleanisUseForDebugging()intlength()protected voidmarkClosed()TreeAppendablenewLine()voidopenPseudoScope()opens a new variable scope, without having a new Java scope.voidopenScope()opens a new scope, backed up by a real Java Scopejava.lang.StringremoveName(java.lang.Object key)java.lang.CharSequencesubSequence(int start, int end)java.lang.StringtoString()ITreeAppendabletrace(java.lang.Iterable<? extends org.eclipse.emf.ecore.EObject> objects)protected TreeAppendabletrace(java.util.Set<org.eclipse.xtext.generator.trace.ILocationData> newData, boolean useForDebugging)TreeAppendabletrace(org.eclipse.emf.ecore.EObject object)same as trace(object, false)TreeAppendabletrace(org.eclipse.emf.ecore.EObject object, boolean useForDebugging)ITreeAppendabletrace(org.eclipse.emf.ecore.EObject object, org.eclipse.emf.ecore.EStructuralFeature feature, int indexInList)TreeAppendabletrace(org.eclipse.emf.ecore.EObject object, org.eclipse.xtext.resource.ILocationInFileProviderExtension.RegionDescription region, boolean useForDebugging)ITreeAppendabletrace(org.eclipse.xtext.generator.trace.ILocationData location)ITreeAppendabletrace(org.eclipse.xtext.generator.trace.ILocationData location, boolean useForDebugging)
-
-
-
Constructor Detail
-
TreeAppendable
public TreeAppendable(ImportManager importManager, org.eclipse.xtext.generator.trace.ITraceURIConverter converter, org.eclipse.xtext.resource.ILocationInFileProvider locationProvider, IJvmModelAssociations jvmModelAssociations, org.eclipse.emf.ecore.EObject source, java.lang.String indentation, java.lang.String lineSeparator)
-
TreeAppendable
protected TreeAppendable(SharedAppendableState state, org.eclipse.xtext.generator.trace.ITraceURIConverter converter, org.eclipse.xtext.resource.ILocationInFileProvider locationProvider, IJvmModelAssociations jvmModelAssociations, org.eclipse.emf.ecore.EObject source)
-
TreeAppendable
protected TreeAppendable(SharedAppendableState state, org.eclipse.xtext.generator.trace.ITraceURIConverter converter, org.eclipse.xtext.resource.ILocationInFileProvider locationProvider, IJvmModelAssociations jvmModelAssociations, java.util.Set<org.eclipse.xtext.generator.trace.ILocationData> sourceLocations, boolean useForDebugging)
-
-
Method Detail
-
createLightweightTypeReferenceSerializer
protected LightweightTypeReferenceSerializer createLightweightTypeReferenceSerializer()
-
isJava
public boolean isJava()
- Specified by:
isJavain interfaceISourceAppender
-
getTraceURIConverter
public org.eclipse.xtext.generator.trace.ITraceURIConverter getTraceURIConverter()
-
errorChild
public ErrorTreeAppendable errorChild()
- Specified by:
errorChildin interfaceITreeAppendable- Since:
- 2.4
-
trace
public TreeAppendable trace(org.eclipse.emf.ecore.EObject object)
Description copied from interface:ITreeAppendablesame as trace(object, false)- Specified by:
tracein interfaceITreeAppendable
-
trace
public TreeAppendable trace(org.eclipse.emf.ecore.EObject object, boolean useForDebugging)
- Specified by:
tracein interfaceITreeAppendable- Parameters:
object- the object this part should be associated withuseForDebugging- whether the part is relevant for debugging
-
trace
public TreeAppendable trace(org.eclipse.emf.ecore.EObject object, org.eclipse.xtext.resource.ILocationInFileProviderExtension.RegionDescription region, boolean useForDebugging)
-
trace
protected TreeAppendable trace(java.util.Set<org.eclipse.xtext.generator.trace.ILocationData> newData, boolean useForDebugging)
-
createChild
protected TreeAppendable createChild(SharedAppendableState state, org.eclipse.xtext.resource.ILocationInFileProvider locationProvider, IJvmModelAssociations jvmModelAssociations, java.util.Set<org.eclipse.xtext.generator.trace.ILocationData> newData, boolean useForDebugging)
- Since:
- 2.4
-
trace
public ITreeAppendable trace(org.eclipse.xtext.generator.trace.ILocationData location)
- Specified by:
tracein interfaceITreeAppendable
-
trace
public ITreeAppendable trace(org.eclipse.xtext.generator.trace.ILocationData location, boolean useForDebugging)
- Specified by:
tracein interfaceITreeAppendable- Parameters:
location- the location that should be traceduseForDebugging- whether the part is relevant for debugging
-
createLocationData
protected static org.eclipse.xtext.generator.trace.ILocationData createLocationData(org.eclipse.xtext.generator.trace.ITraceURIConverter converter, org.eclipse.xtext.resource.ILocationInFileProvider locationProvider, org.eclipse.emf.ecore.EObject object, org.eclipse.xtext.resource.ILocationInFileProviderExtension.RegionDescription query)
-
createAllLocationData
protected static java.util.Set<org.eclipse.xtext.generator.trace.ILocationData> createAllLocationData(org.eclipse.xtext.generator.trace.ITraceURIConverter converter, org.eclipse.xtext.resource.ILocationInFileProvider locationProvider, IJvmModelAssociations jvmModelAssociations, org.eclipse.emf.ecore.EObject object, org.eclipse.xtext.resource.ILocationInFileProviderExtension.RegionDescription query, boolean skipEmpty)
-
trace
public ITreeAppendable trace(java.lang.Iterable<? extends org.eclipse.emf.ecore.EObject> objects)
- Specified by:
tracein interfaceITreeAppendable- Parameters:
objects- the iterable ofEObjects that contribute output. May not be empty.
-
trace
public ITreeAppendable trace(org.eclipse.emf.ecore.EObject object, org.eclipse.emf.ecore.EStructuralFeature feature, int indexInList)
- Specified by:
tracein interfaceITreeAppendable
-
createLocationData
protected static org.eclipse.xtext.generator.trace.ILocationData createLocationData(org.eclipse.xtext.generator.trace.ITraceURIConverter converter, org.eclipse.emf.ecore.EObject object, org.eclipse.xtext.util.ITextRegionWithLineInformation textRegion)
-
acceptVisitor
public TreeAppendable acceptVisitor(TreeAppendable.Visitor visitor)
-
getLocationData
public java.util.Set<org.eclipse.xtext.generator.trace.ILocationData> getLocationData()
-
getChildren
public java.util.List<? extends java.lang.Object> getChildren()
Access the children of theTreeAppendable. The list contains eitherstringsor otherTreeAppendables. The list may be empty.- Returns:
- the children of this appendable.
-
accept
public void accept(java.lang.String text)
- Specified by:
acceptin interfaceorg.eclipse.xtext.util.IAcceptor<java.lang.String>- Noreference:
- This method is not intended to be referenced by clients.
-
markClosed
protected void markClosed()
-
closeLastChild
protected void closeLastChild()
-
isClosed
protected boolean isClosed()
-
append
public TreeAppendable append(org.eclipse.xtext.common.types.JvmType type)
- Specified by:
appendin interfaceIAppendable- Specified by:
appendin interfaceISourceAppender- Specified by:
appendin interfaceITreeAppendable
-
append
public ITreeAppendable append(java.lang.Class<?> type)
- Specified by:
appendin interfaceITreeAppendable
-
append
public ITreeAppendable append(LightweightTypeReference typeRef)
- Specified by:
appendin interfaceIAppendable- Specified by:
appendin interfaceISourceAppender- Specified by:
appendin interfaceITreeAppendable
-
appendTreeAppendable
protected ITreeAppendable appendTreeAppendable(ITreeAppendable other)
-
append
public ITreeAppendable append(java.lang.CharSequence content)
Description copied from interface:ITreeAppendableAppends the specified character sequence to this ITreeAppendable.- Specified by:
appendin interfaceIAppendable- Specified by:
appendin interfaceISourceAppender- Specified by:
appendin interfaceITreeAppendable- Parameters:
content- - notnull- Returns:
- reference to an ITreeAppendable where the given content got appended
-
appendUnsafe
public TreeAppendable appendUnsafe(java.lang.String string)
-
newLine
public TreeAppendable newLine()
- Specified by:
newLinein interfaceIAppendable- Specified by:
newLinein interfaceISourceAppender- Specified by:
newLinein interfaceITreeAppendable
-
blankLine
public ITreeAppendable blankLine()
Inserts a blank line, without indentation- Specified by:
blankLinein interfaceITreeAppendable- Since:
- 2.27
-
increaseIndentation
public TreeAppendable increaseIndentation()
- Specified by:
increaseIndentationin interfaceIAppendable- Specified by:
increaseIndentationin interfaceISourceAppender- Specified by:
increaseIndentationin interfaceITreeAppendable
-
decreaseIndentation
public TreeAppendable decreaseIndentation()
- Specified by:
decreaseIndentationin interfaceIAppendable- Specified by:
decreaseIndentationin interfaceISourceAppender- Specified by:
decreaseIndentationin interfaceITreeAppendable
-
getImports
@Deprecated public java.util.List<java.lang.String> getImports()
Deprecated.- Specified by:
getImportsin interfaceIAppendable
-
openScope
public void openScope()
Description copied from interface:IAppendableopens a new scope, backed up by a real Java Scope- Specified by:
openScopein interfaceIAppendable
-
openPseudoScope
public void openPseudoScope()
Description copied from interface:IAppendableopens a new variable scope, without having a new Java scope.- Specified by:
openPseudoScopein interfaceIAppendable
-
declareVariable
public java.lang.String declareVariable(java.lang.Object key, java.lang.String proposedName)- Specified by:
declareVariablein interfaceIAppendable
-
declareSyntheticVariable
public java.lang.String declareSyntheticVariable(java.lang.Object key, java.lang.String proposedName)Description copied from interface:IAppendableDeclares a synthetic variable, where the name is not used in the current or any parent scope except by other synthetic variables.- Specified by:
declareSyntheticVariablein interfaceIAppendable
-
declareUniqueNameVariable
public java.lang.String declareUniqueNameVariable(java.lang.Object key, java.lang.String proposedName)Description copied from interface:IAppendableDeclares a variable with unique name, which is not used in the current or any parent scope. This is a workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=445949- Specified by:
declareUniqueNameVariablein interfaceIAppendable
-
removeName
public java.lang.String removeName(java.lang.Object key)
- Specified by:
removeNamein interfaceIAppendable
-
getName
public java.lang.String getName(java.lang.Object key)
- Specified by:
getNamein interfaceIAppendable
-
hasName
public boolean hasName(java.lang.Object key)
- Specified by:
hasNamein interfaceIAppendable
-
getObject
public java.lang.Object getObject(java.lang.String name)
- Specified by:
getObjectin interfaceIAppendable
-
hasObject
public boolean hasObject(java.lang.String name)
- Specified by:
hasObjectin interfaceIAppendable
-
closeScope
public void closeScope()
- Specified by:
closeScopein interfaceIAppendable
-
getContent
public java.lang.String getContent()
- Specified by:
getContentin interfaceIAppendable
-
charAt
public char charAt(int index)
- Specified by:
charAtin interfacejava.lang.CharSequence
-
subSequence
public java.lang.CharSequence subSequence(int start, int end)- Specified by:
subSequencein interfacejava.lang.CharSequence
-
toString
public java.lang.String toString()
- Specified by:
toStringin interfacejava.lang.CharSequence- Specified by:
toStringin interfaceIAppendable- Overrides:
toStringin classjava.lang.Object
-
doGetContent
protected void doGetContent(java.lang.StringBuilder result)
-
length
public int length()
- Specified by:
lengthin interfacejava.lang.CharSequence- Specified by:
lengthin interfaceIAppendable
-
getTraceRegion
public org.eclipse.xtext.generator.trace.AbstractTraceRegion getTraceRegion()
- Specified by:
getTraceRegionin interfaceorg.eclipse.xtext.generator.trace.ITraceRegionProvider
-
appendIndented
protected void appendIndented(java.lang.String text)
-
isUseForDebugging
public boolean isUseForDebugging()
-
getState
public SharedAppendableState getState()
- Since:
- 2.4
-
dump
public void dump()
- Since:
- 2.4
- Noreference:
- This method is not intended to be referenced by clients.
- Nooverride:
- This method is not intended to be re-implemented or extended by clients.
-
dump
protected void dump(java.lang.String indent)
- Since:
- 2.4
- Noreference:
- This method is not intended to be referenced by clients.
- Nooverride:
- This method is not intended to be re-implemented or extended by clients.
-
getGeneratorConfig
public GeneratorConfig getGeneratorConfig()
- Specified by:
getGeneratorConfigin interfaceIAppendable
-
-