#ifdef __PRIVATE__
//#
//#	File:		FacetItr.idl
//#
//#	Contains:	Class definition for ODFacetIterator
//#
//#	Written by:	Joshua Susser
//#
//#	Copyright:	c 1994 by Apple Computer, Inc., all rights reserved.
//#
//#	Change History (most recent first):
//#
//#		 <1>	 6/22/94	JBS		first checked in
//#		 <0>	  6/21/94	JBS		copy and change from FrFaItr.idl
//#
//#	To Do:
//#
#else
//#	Copyright:	c 1993-1994 by Apple Computer, Inc., all rights reserved.
#endif

#ifndef _FACETITR_
#define _FACETITR_

#ifndef _ODOBJECT_
#include "ODObject.idl"
#endif

//==============================================================================
// Classes used by this interface
//==============================================================================

interface ODFacet;

//==============================================================================
// Implementation Types
//==============================================================================

#ifdef __PRIVATE__
typedef somToken NodeTraverser;
#endif

//==============================================================================
// ODFacetIterator
//==============================================================================

interface ODFacetIterator : ODObject
{
	void InitFacetIterator(in ODFacet facet,
   						   in ODTraversalType traversalType,
						   in ODSiblingOrder siblingOrder);

	ODFacet First();

	ODFacet Next();

	void SkipChildren();

	ODBoolean IsNotComplete();

#ifdef __SOMIDL__
	implementation
	{
		functionprefix = ODFacetIterator;
		
		override:
			somInit,
			somUninit;
			
		releaseorder:
			InitFacetIterator,
			First,
			Next,
			SkipChildren,
			IsNotComplete;
			
		#ifdef __PRIVATE__
			passthru C_xih = "
			""
			"class NodeTraverser;"
			"";
			ODFacet fFacet;
			ODTraversalType fTraversalType;
			ODSiblingOrder fSiblingOrder;
			NodeTraverser* fNodeTraverser;
		#endif
	};
#endif
};

#endif //# _FACETITR_
