public class SymbolTable
extends java.lang.Object
ProtocolParser
während des Parsens aufgebaut.Modifier and Type | Field and Description |
---|---|
(package private) java.util.Map<java.lang.String,java.lang.Class<? extends Aggregation>> |
_aggregationFcts
Definierte Aggregationsfunktionen
|
(package private) java.util.HashMap<java.lang.String,java.lang.String> |
_aliases
Alias Definitionen ( = Spaltennamen)
|
(package private) java.util.Map<java.lang.String,java.lang.String> |
_aspectBindings
Bindungen der freien Aspekte
[String, String] = [Platzhalter, Aspektname] |
private MemberCheck |
_check
Objekt zur Überprüfung der PIDs etc
|
private SystemObject |
_defaultObject |
private java.lang.Boolean |
_deltaProtocol
Enthält den gewünschten Protokolltyp, der von der Anfrage kommt.
|
(package private) DurationAttributeDescription |
_durationAttribute
Zeitdauer Attribut
null falls das Zeitdauer Attribut nicht im Skript verwendet wird. |
(package private) SystemObject |
_mainObject
Hauptobjekt
|
private DataModel |
_model
Datenmodel
|
(package private) java.util.List<Tuple<java.lang.Long,java.lang.Long>> |
_periodList
Zeitbereiche, die berücksichtigt werden sollen
|
private java.util.Collection<java.lang.String> |
_possibleAspectBindings |
(package private) ProcessingParameter |
_pp
Eingabeparameter des Auftraggebers
|
protected boolean |
_pseudoObjectDefinitionInitialized
Prüft, ob es schon eine Pseudoobjekt-Definition gibt.
|
(package private) java.util.Map<java.lang.String,java.lang.String[]> |
_pseudoObjects
Pseudoobjekt Definitionen (optional).
|
(package private) boolean |
_saveProtocol
True falls das Protokoll gespeichert werden soll
|
(package private) short |
_simVar
Simulationsvariante
|
private java.util.List<TempAttributeDescription> |
_tempAttributes
Enthält die temporären Attribute.
|
Constructor and Description |
---|
SymbolTable(DataModel model,
ProcessingParameter pp)
Erzeugen der Symboltabelle
|
Modifier and Type | Method and Description |
---|---|
void |
addAggregationDefinition(antlr.Token t,
java.lang.String aggregationName,
java.lang.String className)
Fügt die Definition einer Aggregationsfunktion in die Symboltabelle ein
|
void |
addAliasDefinition(antlr.Token token,
java.lang.String name,
java.lang.String obj)
Fügt eine Alias-Definition in die Symboltabelle ein
|
void |
addDurationAttribute(java.lang.String columnName)
Zeitdauer Attribut hinzufügen.
|
void |
addPseudoObjectDefinition(antlr.Token token,
java.util.List<java.lang.String> aliasList,
java.util.List<java.lang.String> objectList)
Fügt eine Pseudoobjekt-Definition zur Symboltabelle hinzu.
|
void |
addStandardBinding(java.lang.String placeholder,
java.lang.String aspectName)
Fügt eine Bindung eines Aspekts in die Symboltabelle ein, falls es für den angegebenen Platzhalter noch keine Bindung gibt.
|
void |
addStandardObject(SystemObject so)
Fügt ein Objekt hinzu, für das das Protokoll erstellt werden soll.
|
void |
addStandardPeriod(java.lang.String startDate,
java.lang.String startTime,
java.lang.String endDate,
java.lang.String endTime)
Stellt den Standard Anfragebereich ein, sofern der Benutzer keinen angegeben hat.
|
void |
addTempAttribute(java.lang.String name,
java.lang.String columnName)
Fügt ein temporäres Attribut in die Symboltabelle ein (Aus Bereich 'Spalte').
|
java.lang.String |
getAlias(java.lang.String name)
Gibt den Alias mit diesem Namen zurück
|
java.lang.String[] |
getAliasObjects(java.lang.String alias)
Liefert die dem Alias zugeordneten Objekt-PIDs zurück
|
java.lang.String |
getBinding(java.lang.String placeholder)
Liefert gebundenen Aspekt zurück
|
java.lang.Boolean |
getDeltaProtocol()
Gibt gewünschten Protokolltyp zurück, der von der Protokollerstellungs-Anfrage kommt.
|
SystemObject |
getMainObject() |
SystemObject |
getObject(SystemObjectType sot)
Gibt das Objekt zurück, durch das der übergebene Typ ersetzt werden soll.
|
TempAttributeDescription |
getOrCreateTempAttributeDefinition(java.lang.String name) |
java.util.List<java.lang.String> |
getPossibleAspectBindings()
Gibt alle im Skript definierten ungebundenen oder gebundenen Aspekte zurück.
|
TempAttributeDescription |
getTempAttributeDefinition(java.lang.String name) |
java.util.List<TempAttributeDescription> |
getTempAttributes() |
private long |
getTimeInMillis(java.lang.String date,
java.lang.String time)
Liefert die Zeit in Millisekunden zurück und überprüft Datum- & Zeitangabe auf Korrektheit
|
boolean |
isAlias(java.lang.String name)
Überprüft, ob es einen Alias diesen Namens gibt.
|
boolean |
isTempAttributeDefined(java.lang.String name) |
void |
setCheck(MemberCheck check)
Festlegen welches Objekt die Typüberprüfungen durchführt.
|
final java.util.HashMap<java.lang.String,java.lang.String> _aliases
private final java.util.List<TempAttributeDescription> _tempAttributes
DurationAttributeDescription _durationAttribute
null
falls das Zeitdauer Attribut nicht im Skript verwendet wird.final java.util.Map<java.lang.String,java.lang.Class<? extends Aggregation>> _aggregationFcts
final java.util.Map<java.lang.String,java.lang.String[]> _pseudoObjects
final java.util.Map<java.lang.String,java.lang.String> _aspectBindings
final java.util.List<Tuple<java.lang.Long,java.lang.Long>> _periodList
private SystemObject _defaultObject
short _simVar
boolean _saveProtocol
final SystemObject _mainObject
private final java.lang.Boolean _deltaProtocol
private MemberCheck _check
private final DataModel _model
final ProcessingParameter _pp
protected boolean _pseudoObjectDefinitionInitialized
private final java.util.Collection<java.lang.String> _possibleAspectBindings
public SymbolTable(DataModel model, ProcessingParameter pp) throws CriticalParserException
model
- Datenmodellpp
- Eingabeparameter vom Auftraggeber, null
wenn das Skript nur Interpretiert (auf güligkeit geprüft) aber nicht ausgeführt werden sollCriticalParserException
- Falls es zu einem Kommunikationsfehler kommtpublic void setCheck(MemberCheck check)
check
- Objekt das die Typüberprüfungen durchführen soll.public void addStandardObject(SystemObject so) throws CriticalParserException
so
- Objekt das Hinzugefügt werden sollCriticalParserException
- Falls es zu einem Kommuniktaionsfehler kommtpublic SystemObject getObject(SystemObjectType sot)
sot
- Objekttyp, für den ein Objekt zurückgeliefert werden soll.public SystemObject getMainObject()
public void addAliasDefinition(antlr.Token token, java.lang.String name, java.lang.String obj) throws CriticalParserException
token
- Token. Wird für die Fehlerausgabe verwendet.name
- Name des Aliasobj
- Referenzierter ObjekttypCriticalParserException
- Falls der Alias bereits definiert wurde oder die Definition fehlerhaft ist.public java.lang.String[] getAliasObjects(java.lang.String alias) throws SemanticErrorException
alias
- Name des AliasSemanticErrorException
- Falls dem Alias keine Objekte zugeordnet wurden oder es kein Alias ist.public void addTempAttribute(java.lang.String name, java.lang.String columnName) throws SemanticErrorException
name
- Name des temporären AttributscolumnName
- SpaltennameSemanticErrorException
- Der Name des temporären Attributs entspricht DurationAttributeDescription.DURATION
public boolean isTempAttributeDefined(java.lang.String name)
public TempAttributeDescription getTempAttributeDefinition(java.lang.String name)
public TempAttributeDescription getOrCreateTempAttributeDefinition(java.lang.String name)
public java.util.List<TempAttributeDescription> getTempAttributes()
public void addPseudoObjectDefinition(antlr.Token token, java.util.List<java.lang.String> aliasList, java.util.List<java.lang.String> objectList) throws CriticalParserException
token
- Token (nur für die Angabe von Zeilennummern in den Fehlermeldungen)aliasList
- Liste mit AliasenobjectList
- Liste der Objekte, die einem Alias zugeordnet sind. (enthält ""-Werte für Platzhalter)CriticalParserException
- Bei Kommunikationsfehler oder falls in der Pseudoobjektdefinition ungültige Pids verwendet werdenpublic void addStandardBinding(java.lang.String placeholder, java.lang.String aspectName)
placeholder
- Platzhalter des Aspekts (z.B. '?1')aspectName
- Name des Aspektspublic java.lang.String getBinding(java.lang.String placeholder)
placeholder
- Platzhalter des Aspektspublic void addAggregationDefinition(antlr.Token t, java.lang.String aggregationName, java.lang.String className) throws SemanticErrorException
t
- Token: Für Zeilenangabe im Fehler.aggregationName
- Name der AggregationclassName
- Klassenname der AggregationSemanticErrorException
- Falls ein ungültiger Klassenname angegeben wurdepublic void addStandardPeriod(java.lang.String startDate, java.lang.String startTime, java.lang.String endDate, java.lang.String endTime) throws SemanticErrorException
startDate
- StartdatumstartTime
- StartzeitendDate
- EnddatumendTime
- Ende des ZeitraumsSemanticErrorException
- Falls es sich um einen fehlerhaften Zeitbereich handeltprivate long getTimeInMillis(java.lang.String date, java.lang.String time) throws SemanticErrorException
date
- Datumtime
- ZeitSemanticErrorException
- Falls Zeit oder Datum nicht korrekt angegeben wurden.public boolean isAlias(java.lang.String name)
name
- Name des Aliaspublic java.lang.String getAlias(java.lang.String name)
name
- Name des Aliaspublic void addDurationAttribute(java.lang.String columnName)
columnName
- Spaltenname des Zeitdauer Attributs.public java.lang.Boolean getDeltaProtocol()
public java.util.List<java.lang.String> getPossibleAspectBindings()