IElementDefn defn )
DesignElement element )
	public final boolean canContain( Module module, int slotId,			IElementDefn defn )	{		assert defn != null;		boolean retValue = canContainInRom( slotId, defn );		if ( !retValue )			return false;		// if the root of element is included by report/library. Do not allow		// drop.		if ( isRootIncludedByModule( ) )			return false;		if ( !canContainTemplateElement( module, slotId, defn ) )			return false;		// Can not change structure of child element or a virtual element(		// inside the child ).		if ( isVirtualElement( ) || getExtendsElement( ) != null )			return false;		// special cases check table header containment.		DesignElement tmpContainer = this;		while ( tmpContainer != null )		{			if ( tmpContainer instanceof ListingElement )			{				List errors = tmpContainer.checkContent( module, this, slotId,						defn );				return errors.isEmpty( );			}			tmpContainer = tmpContainer.getContainer( );		}		return retValue;	}