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.DURATIONpublic 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()