writer.startElement( tag );
writer.conditionalStartElement( tag );
	private void writeArrangedContents( DesignElement obj, int slot, String tag )	{		List list = obj.getSlot( slot ).getContents( );		if ( list.isEmpty( ) )			return;		LinkedList newList = new LinkedList( );		Iterator iter = list.iterator( );		while ( iter.hasNext( ) )		{			DesignElement element = (DesignElement) iter.next( );			DesignElement parent = element.getExtendsElement( );			if ( !newList.contains( element ) )			{				newList.add( element );			}			if ( parent != null && list.contains( parent ) )			{				if ( !newList.contains( parent ) )				{					int index = newList.indexOf( element );					newList.add( index, parent );				}				else if ( newList.indexOf( element ) < newList.indexOf( parent ) )				{					newList.remove( parent );					int index = newList.indexOf( element );					newList.add( index, parent );				}			}		}		if ( tag != null )			writer.startElement( tag );		// Iterate over the contents using this visitor to write each one.		// Note that this may result in a recursive call back into this		// method as we do a depth-first traversal of the design tree.		iter = newList.iterator( );		while ( iter.hasNext( ) )		{			( (DesignElement) iter.next( ) ).apply( this );		}		if ( tag != null )			writer.endElement( );	}