net.percederberg.mibble.type
Class TypeReference

java.lang.Object
  extended bynet.percederberg.mibble.MibType
      extended bynet.percederberg.mibble.type.TypeReference
All Implemented Interfaces:
MibContext

public class TypeReference
extends MibType
implements MibContext

A reference to a type symbol.

NOTE: This class is used internally during the MIB parsing only. After loading a MIB file successfully, all type references will have been resolved to other MIB types. Do NOT use or reference this class.

Since:
2.0

Constructor Summary
TypeReference(FileLocation location, MibContext context, java.lang.String name)
          Creates a new type reference.
TypeReference(FileLocation location, MibContext context, java.lang.String name, java.util.ArrayList values)
          Creates a new type reference.
TypeReference(FileLocation location, MibContext context, java.lang.String name, Constraint constraint)
          Creates a new type reference.
 
Method Summary
 FileLocation getLocation()
          Returns the file containing the reference.
 MibSymbol getSymbol(java.lang.String name)
          Returns a named MIB symbol.
 MibType initialize(MibSymbol symbol, MibLoaderLog log)
          Initializes the MIB type.
 boolean isCompatible(MibValue value)
          Checks if the specified value is compatible with this type.
 void setTag(boolean implicit, MibTypeTag tag)
          Sets the type tag.
 
Methods inherited from class net.percederberg.mibble.MibType
createReference, createReference, createReference, getName, getReferenceSymbol, getTag, hasReferenceTo, hasReferenceTo, hasTag, hasTag, isPrimitive, setReferenceSymbol, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TypeReference

public TypeReference(FileLocation location,
                     MibContext context,
                     java.lang.String name)
Creates a new type reference.

Parameters:
location - the reference location
context - the reference context
name - the reference name

TypeReference

public TypeReference(FileLocation location,
                     MibContext context,
                     java.lang.String name,
                     Constraint constraint)
Creates a new type reference.

Parameters:
location - the reference location
context - the reference context
name - the reference name
constraint - the additional type constraint

TypeReference

public TypeReference(FileLocation location,
                     MibContext context,
                     java.lang.String name,
                     java.util.ArrayList values)
Creates a new type reference.

Parameters:
location - the reference location
context - the reference context
name - the reference name
values - the additional defined symbols
Method Detail

initialize

public MibType initialize(MibSymbol symbol,
                          MibLoaderLog log)
                   throws MibException
Initializes the MIB type. This will remove all levels of indirection present, such as references to types or values. No information is lost by this operation. This method may modify this object as a side-effect, and will return the basic type.

NOTE: This is an internal method that should only be called by the MIB loader.

Specified by:
initialize in class MibType
Parameters:
symbol - the MIB symbol containing this type
log - the MIB loader log
Returns:
the basic MIB type
Throws:
MibException - if an error was encountered during the initialization
Since:
2.2

getLocation

public FileLocation getLocation()
Returns the file containing the reference.

Returns:
the file containing the reference

isCompatible

public boolean isCompatible(MibValue value)
Checks if the specified value is compatible with this type. This metod will always return false for referenced types.

Specified by:
isCompatible in class MibType
Parameters:
value - the value to check
Returns:
true if the value is compatible, or false otherwise

getSymbol

public MibSymbol getSymbol(java.lang.String name)
Returns a named MIB symbol. This method checks the referenced type for a MibContext implementation.

Specified by:
getSymbol in interface MibContext
Parameters:
name - the symbol name
Returns:
the MIB symbol, or null if not found

setTag

public void setTag(boolean implicit,
                   MibTypeTag tag)
Sets the type tag. This method will keep the type tag stored until the type reference is resolved.

Overrides:
setTag in class MibType
Parameters:
implicit - the implicit inheritance flag
tag - the new type tag
Since:
2.2