opendap/src/main/java/opendap/dap/DDS.java
private void resolveAliases(AttributeTable at) throws MalformedAliasException, UnresolvedAliasException, NoSuchAttributeException
    {

        // Cache the current (parent) Attribute table. This value is
        // null if this method is call from resolveAliases(BasetType bt)
        AttributeTable cacheAT = currentAT;
        try {
        // Set the current AttributeTable to the one that we are searching.
        currentAT = at;

        //getall of the Attributes from the table.
        Enumeration aNames = currentAT.getNames();
        while (aNames.hasMoreElements()) {

            String aName = (String) aNames.nextElement();
            opendap.dap.Attribute thisA = currentAT.getAttribute(aName);

            if (thisA.isAlias()) {
                //Is Alias? Resolve it!
                resolveAlias((Alias) thisA);
                if (Debug.isSet("DDS.resolveAliases")) {
		DAPNode.log.debug("Resolved Alias: '" + thisA.getEncodedName() + "'\n");
	    }
            } else if (thisA.isContainer()) {
                //Is AttributeTable (container)? Search it!
                resolveAliases(thisA.getContainer());
            }
        }
        } finally {
        // Restore the previous currentAT state.
        currentAT = cacheAT;
        }

    }
private void resolveAliases(AttributeTable at) throws MalformedAliasException, UnresolvedAliasException, NoSuchAttributeException
    {

        // Cache the current (parent) Attribute table. This value is
        // null if this method is call from resolveAliases(BasetType bt)
        AttributeTable cacheAT = currentAT;
        try {
        // Set the current AttributeTable to the one that we are searching.
        currentAT = at;

        //getall of the Attributes from the table.
        Enumeration aNames = currentAT.getNames();
        while (aNames.hasMoreElements()) {

            String aName = (String) aNames.nextElement();
            opendap.dap.Attribute thisA = currentAT.getAttribute(aName);

            if (thisA.isAlias()) {
                //Is Alias? Resolve it!
                resolveAlias((Alias) thisA);
                if (Debug.isSet("DDS.resolveAliases")) {
		DAPNode.log.debug("Resolved Alias: '" + thisA.getEncodedName() + "'\n");
	    }
            } else if (thisA.isContainer()) {
                //Is AttributeTable (container)? Search it!
                resolveAliases(thisA.getContainer());
            }
        }
        } finally {
        // Restore the previous currentAT state.
        currentAT = cacheAT;
        }

    }
private void resolveAliases ( AttributeTable at ) throws MalformedAliasException , UnresolvedAliasException , NoSuchAttributeException { // Cache the current (parent) Attribute table. This value is // null if this method is call from resolveAliases(BasetType bt) AttributeTable cacheAT = currentAT ; try { // Set the current AttributeTable to the one that we are searching. currentAT = at ; //getall of the Attributes from the table. Enumeration aNames = currentAT . getNames ( ) ; while ( aNames . hasMoreElements ( ) ) { String aName = ( String ) aNames . nextElement ( ) ; opendap . dap . Attribute thisA = currentAT . getAttribute ( aName ) ; if ( thisA . isAlias ( ) ) { //Is Alias? Resolve it! resolveAlias ( ( Alias ) thisA ) ; if ( Debug . isSet ( "DDS.resolveAliases" ) ) { DAPNode . log . debug ( "Resolved Alias: '" + thisA . getEncodedName ( ) + "'\n" ) ; } } else if ( thisA . isContainer ( ) ) { //Is AttributeTable (container)? Search it! resolveAliases ( thisA . getContainer ( ) ) ; } } } finally { // Restore the previous currentAT state. currentAT = cacheAT ; } }
This method recursively searchs through the passed <code>AttributeTable</code> parameter
at for Alias members. When an Alias is found the method attempts to
resolve it to a specific Attribute.
<p/>
This method is invoked by <code>resolveAliases(BaseType bt)</code>, and is
used to search for Aliases in AttributeTables found in a BaseTypes Attributes.
<p/>
This method manipulates the global variable <code>currentBT</code>.

@param at The <code>AttributeTable</code> in which to search for and resolve Alias members
This method recursively searchs through the passed <code > AttributeTable< / code > parameter at for Alias members . When an Alias is found the method attempts to resolve it to a specific Attribute . <p / > This method is invoked by <code > resolveAliases ( BaseType bt ) < / code > and is used to search for Aliases in AttributeTables found in a BaseTypes Attributes . <p / > This method manipulates the global variable <code > currentBT< / code > .