/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.portal.datasource.context;
import java.util.List;
import org.jdom.Element;
import com.enonic.cms.core.structure.menuitem.MenuItemEntity;
/**
* Jul 28, 2009
*/
final class PathContextXmlCreator
{
public Element createPathElement( final MenuItemEntity child )
{
final Element pathEl = new Element( "path" );
final List<MenuItemEntity> menItemPath = child.getMenuItemPath();
for ( final MenuItemEntity mi : menItemPath )
{
pathEl.addContent( createResourceElement( mi ) );
}
return pathEl;
}
public Element createResourceElement( final MenuItemEntity menuItem )
{
final Element objectEl = new Element( "resource" );
objectEl.setAttribute( "key", menuItem.getKey().toString() );
objectEl.setAttribute( "type", "menuitem" );
objectEl.addContent( createElement( "name", menuItem.getName() ) );
objectEl.addContent( createElement( "menu-name", asEmptyIfNull( menuItem.getMenuName() ) ) );
Element altElem = createElement( "display-name", asEmptyIfNull( menuItem.getDisplayName() ) );
objectEl.addContent( altElem );
objectEl.addContent( createElement( "show-in-menu", menuItem.getHidden() ? "false" : "true" ) );
objectEl.addContent( createElement( "keywords", asEmptyIfNull( menuItem.getKeywords() ) ) );
objectEl.addContent( createElement( "description", asEmptyIfNull( menuItem.getDescription() ) ) );
objectEl.addContent( createElement( "type", menuItem.getType().getName() ) );
return objectEl;
}
private Element createElement( final String name, final String text )
{
final Element el = new Element( name );
el.setText( asEmptyIfNull( text ) );
return el;
}
private String asEmptyIfNull( final String value )
{
return value != null ? value : "";
}
}