org.jasig.portal.layout.dlm
Class ILFBuilder

java.lang.Object
  extended by org.jasig.portal.layout.dlm.ILFBuilder

public class ILFBuilder
extends java.lang.Object

Performs merging of layout fragments into a single document containing all incorporated layout fragment elements from the set of fragments passed in. This merge is trivial, appending all children of each fragment into the composite document and recording their identifiers in the document identifier cache. No changes are made to the source fragments passed in.

Since:
uPortal 2.5
Version:
$Revision: 1.6.2.3 $ $Date: 2006/04/28 19:17:49 $

Field Summary
private static org.apache.commons.logging.Log LOG
           
static java.lang.String RCS_ID
           
 
Constructor Summary
ILFBuilder()
           
 
Method Summary
static org.w3c.dom.Document constructILF(org.w3c.dom.Document PLF, java.util.Vector sequence, IPerson person)
           
private static boolean mergeAllowed(org.w3c.dom.Element child, IAuthorizationPrincipal ap)
          Tests to see if channels to be merged from ILF can be rendered by the end user.
private static void mergeChildren(org.w3c.dom.Element source, org.w3c.dom.Element dest, IAuthorizationPrincipal ap, java.util.Set visitedNodes)
           
static void mergeFragment(org.w3c.dom.Document fragment, org.w3c.dom.Document composite, IAuthorizationPrincipal ap)
          Passes the layout root of each of these documents to mergeChildren causing all children of newLayout to be merged into compositeLayout following merging protocal for distributed layout management.
private static void printNodeToDebug(org.w3c.dom.Node n, java.lang.String name)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

RCS_ID

public static final java.lang.String RCS_ID
See Also:
Constant Field Values

LOG

private static final org.apache.commons.logging.Log LOG
Constructor Detail

ILFBuilder

public ILFBuilder()
Method Detail

constructILF

public static org.w3c.dom.Document constructILF(org.w3c.dom.Document PLF,
                                                java.util.Vector sequence,
                                                IPerson person)
                                         throws javax.xml.parsers.ParserConfigurationException,
                                                AuthorizationException
Throws:
javax.xml.parsers.ParserConfigurationException
AuthorizationException

mergeFragment

public static void mergeFragment(org.w3c.dom.Document fragment,
                                 org.w3c.dom.Document composite,
                                 IAuthorizationPrincipal ap)
                          throws AuthorizationException
Passes the layout root of each of these documents to mergeChildren causing all children of newLayout to be merged into compositeLayout following merging protocal for distributed layout management.

Throws:
AuthorizationException

mergeChildren

private static void mergeChildren(org.w3c.dom.Element source,
                                  org.w3c.dom.Element dest,
                                  IAuthorizationPrincipal ap,
                                  java.util.Set visitedNodes)
                           throws AuthorizationException
Parameters:
source - parent of children
dest - receiver of children
ap - User's authorization principal for determining if they can view a channel
visitedNodes - A Set of nodes from the source tree that have been visited to get to this node, used to ensure a loop doesn't exist in the source tree.
Throws:
AuthorizationException

mergeAllowed

private static boolean mergeAllowed(org.w3c.dom.Element child,
                                    IAuthorizationPrincipal ap)
                             throws AuthorizationException
Tests to see if channels to be merged from ILF can be rendered by the end user. If not then they are discarded from the merge.

Parameters:
child -
person -
Returns:
Throws:
AuthorizationException
java.lang.NumberFormatException

printNodeToDebug

private static void printNodeToDebug(org.w3c.dom.Node n,
                                     java.lang.String name)
                              throws javax.xml.transform.TransformerFactoryConfigurationError
Throws:
javax.xml.transform.TransformerFactoryConfigurationError