de.upb.hni.vmagic.expression
Class VhdlObject<T extends VhdlObject>

java.lang.Object
  extended by de.upb.hni.vmagic.VhdlElement
      extended by de.upb.hni.vmagic.expression.Expression
          extended by de.upb.hni.vmagic.expression.Primary
              extended by de.upb.hni.vmagic.expression.VhdlObject<T>
Type Parameters:
T - the object type
All Implemented Interfaces:
Choice, NamedEntity
Direct Known Subclasses:
Constant, FileObject, ForwardingVhdlObject, Signal, Variable

public abstract class VhdlObject<T extends VhdlObject>
extends Primary
implements NamedEntity

Vhdl object.


Nested Class Summary
static class VhdlObject.Mode
          Vhdl object mode.
static class VhdlObject.ObjectClass
          Object class describes the type of VhdlObject.
 
Constructor Summary
VhdlObject()
           
 
Method Summary
abstract  ArrayElement<T> getArrayElement(Expression... indices)
          Returns an array element of this object.
abstract  ArrayElement<T> getArrayElement(Expression index)
          Returns an array element of this object.
abstract  ArrayElement<T> getArrayElement(int index)
          Returns an array element of this object.
abstract  ArrayElement<T> getArrayElement(java.util.List<Expression> indices)
          Returns an array element of this object.
abstract  AttributeExpression<T> getAttributeExpression(Attribute attribute)
          Returns a attribute expression of this object.
abstract  AttributeExpression<T> getAttributeExpression(Attribute attribute, Expression parameter)
          Returns a attribute expression of this object.
abstract  java.lang.String getIdentifier()
          Returns the identifier of this object.
abstract  VhdlObject.Mode getMode()
          Returns the mode of this vhdl object.
abstract  VhdlObject.ObjectClass getObjectClass()
          Returns the type of this VhdlObject.
abstract  RecordElement<T> getRecordElement(java.lang.String element)
          Returns a record element of this object.
abstract  Slice<T> getSlice(DiscreteRange range)
          Returns a slice of this vhdl object.
abstract  SubtypeIndication getType()
          Returns the type of this object.
abstract  void setIdentifier(java.lang.String identifier)
          Sets the identifier of this object.
abstract  void setMode(VhdlObject.Mode mode)
          Sets the mode of this vhdl object.
abstract  void setType(SubtypeIndication type)
          Sets the type of this object.
 
Methods inherited from class de.upb.hni.vmagic.expression.Primary
getPrecedence
 
Methods inherited from class de.upb.hni.vmagic.VhdlElement
getParent, setParent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

VhdlObject

public VhdlObject()
Method Detail

getIdentifier

public abstract java.lang.String getIdentifier()
Returns the identifier of this object.

Specified by:
getIdentifier in interface NamedEntity
Returns:
the identifier

setIdentifier

public abstract void setIdentifier(java.lang.String identifier)
Sets the identifier of this object.

Parameters:
identifier - the identifier

getType

public abstract SubtypeIndication getType()
Returns the type of this object.

Specified by:
getType in class Expression
Returns:
the type

setType

public abstract void setType(SubtypeIndication type)
Sets the type of this object.

Parameters:
type - the type

getMode

public abstract VhdlObject.Mode getMode()
Returns the mode of this vhdl object.

Returns:
the mode

setMode

public abstract void setMode(VhdlObject.Mode mode)
Sets the mode of this vhdl object.

Parameters:
mode - the mode

getSlice

public abstract Slice<T> getSlice(DiscreteRange range)
Returns a slice of this vhdl object.

Parameters:
range - the slice range.
Returns:
the slice

getArrayElement

public abstract ArrayElement<T> getArrayElement(Expression index)
Returns an array element of this object.

Parameters:
index - the index of the array element
Returns:
the array element

getArrayElement

public abstract ArrayElement<T> getArrayElement(int index)
Returns an array element of this object.

Parameters:
index - the index of the array element
Returns:
the array element

getArrayElement

public abstract ArrayElement<T> getArrayElement(java.util.List<Expression> indices)
Returns an array element of this object.

Parameters:
indices - the indices of the array element
Returns:
the array element

getArrayElement

public abstract ArrayElement<T> getArrayElement(Expression... indices)
Returns an array element of this object.

Parameters:
indices - the indices of the array element
Returns:
the array element

getRecordElement

public abstract RecordElement<T> getRecordElement(java.lang.String element)
Returns a record element of this object.

Parameters:
element - the identifier of the record element
Returns:
the record element

getAttributeExpression

public abstract AttributeExpression<T> getAttributeExpression(Attribute attribute)
Returns a attribute expression of this object.

Parameters:
attribute - the attribute
Returns:
the record element

getAttributeExpression

public abstract AttributeExpression<T> getAttributeExpression(Attribute attribute,
                                                              Expression parameter)
Returns a attribute expression of this object.

Parameters:
attribute - the attribute
parameter - the parameter
Returns:
the record element

getObjectClass

public abstract VhdlObject.ObjectClass getObjectClass()
Returns the type of this VhdlObject.

Returns:
the object class