com.cosylab.vdct.graphics.objects
Class NamingContext

java.lang.Object
  extended by com.cosylab.vdct.graphics.objects.NamingContext

public class NamingContext
extends java.lang.Object

Author:
ilist

Field Summary
static java.lang.Object cycleFlag
           
 
Constructor Summary
NamingContext(NamingContext parent, VDBTemplate template, java.lang.String addedPrefix, java.lang.String removedPrefix, boolean export)
          This constructor should be used for the topmost template, which doesn't have template instance
 
Method Summary
 void addMacro(java.lang.String name, java.lang.String value)
          Adds a macro to this naming context
 void addPort(java.lang.String name, java.lang.String value)
          Adds a port to this naming context
 NamingContext createNamingContextFor(VDBTemplateInstance instance)
          Creates or returns NamingContext for specific template
 java.lang.String findAndResolveMacro(java.lang.String name)
          Searches for the macro in the specific template.
 java.lang.String findAndResolvePort(java.lang.String temp, java.lang.String name)
          Searches for port in the specific template.
 java.util.Map getMacroMap()
          Returns only mapping of macros
 java.util.Map getMap()
          Returns full map
 NamingContext getParent()
          Returns parent, which can be null.
 java.lang.String getResolvedName(java.lang.String name)
          Used in write VDCT data Should handle exporting single Group
 VDBTemplate getTemplate()
          Returns template
 VDBTemplateInstance getTemplateInstance()
          Returns template instance, which can be null
 java.lang.String matchAndReplace(java.lang.String value)
          Finds $() and $(.) in strings and replaces them.
 java.lang.String resolveLink(java.lang.String target)
          Subtracts record name from link, looks for apropriate record and renames the record in apropriate way.
 java.lang.String resolveMacro(java.lang.String name, java.lang.String value)
          Recursively resolves macros/ports
 java.lang.String resolvePort(VDBPort port)
          Recursively resolves macros/ports
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cycleFlag

public static final java.lang.Object cycleFlag
Constructor Detail

NamingContext

public NamingContext(NamingContext parent,
                     VDBTemplate template,
                     java.lang.String addedPrefix,
                     java.lang.String removedPrefix,
                     boolean export)
This constructor should be used for the topmost template, which doesn't have template instance

Parameters:
parent -
template -
Method Detail

getParent

public NamingContext getParent()
Returns parent, which can be null.

Returns:

getTemplateInstance

public VDBTemplateInstance getTemplateInstance()
Returns template instance, which can be null


getTemplate

public VDBTemplate getTemplate()
Returns template

Returns:

getMap

public java.util.Map getMap()
Returns full map

Returns:

getMacroMap

public java.util.Map getMacroMap()
Returns only mapping of macros

Returns:

resolveMacro

public java.lang.String resolveMacro(java.lang.String name,
                                     java.lang.String value)
Recursively resolves macros/ports

Parameters:
name -
value -
Returns:

createNamingContextFor

public NamingContext createNamingContextFor(VDBTemplateInstance instance)
Creates or returns NamingContext for specific template

Parameters:
instance -
Returns:

resolvePort

public java.lang.String resolvePort(VDBPort port)
Recursively resolves macros/ports

Parameters:
port -
Returns:

getResolvedName

public java.lang.String getResolvedName(java.lang.String name)
Used in write VDCT data Should handle exporting single Group

Parameters:
name -
Returns:

addPort

public void addPort(java.lang.String name,
                    java.lang.String value)
Adds a port to this naming context

Parameters:
string -
value -

addMacro

public void addMacro(java.lang.String name,
                     java.lang.String value)
Adds a macro to this naming context

Parameters:
name -
value -

resolveLink

public java.lang.String resolveLink(java.lang.String target)
Subtracts record name from link, looks for apropriate record and renames the record in apropriate way. It contructs back the link.

Parameters:
target -
Returns:

findAndResolveMacro

public java.lang.String findAndResolveMacro(java.lang.String name)
Searches for the macro in the specific template. Possibly also for global macro definitions.

Parameters:
name -
Returns:

findAndResolvePort

public java.lang.String findAndResolvePort(java.lang.String temp,
                                           java.lang.String name)
Searches for port in the specific template. Notice that port has to be resolved in inner template, but added in outer one.

Parameters:
temp -
name -
Returns:

matchAndReplace

public java.lang.String matchAndReplace(java.lang.String value)
Finds $() and $(.) in strings and replaces them. TASK:RECMACROS: currently it doesn't handle something like $($()) very well. I don't think this is a simple problem, which could be done with regex. Hierarchy prevents it.

Parameters:
value -
Returns: