1 /*
2 * Copyright 2006 Sony Computer Entertainment Inc.
3 *
4 * Licensed under the MIT Open Source License, for details please see license.txt or the website
5 * http://www.opensource.org/licenses/mit-license.php
6 *
7 */
8 
9 #ifndef __DAE_META_SEQUENCE_H__
10 #define __DAE_META_SEQUENCE_H__
11 
12 #include <dae/daeMetaCMPolicy.h>
13 
14 /**
15  * The daeMetaSequence class defines the behavior of an xs:sequence content model in the COLLADA Schema.
16  */
17 class daeMetaSequence : public daeMetaCMPolicy
18 {
19 public:
20 	/**
21 	 * Constructor.
22 	 * @param container The daeMetaElement that this policy object belongs to.
23 	 * @param parent The daeMetaCMPolicy parent of this policy object.
24 	 * @param odinal The ordinal value offset of this specific policy object. Used for maintaining the
25 	 * correct order of child elements.
26 	 * @param minO The minimum number of times this CMPolicy object must appear. This value comes from the COLLADA schema.
27 	 * @param maxO The maximum number of times this CMPolicy object may appear. This value comes from the COLLADA schema.
28 	 */
29 	daeMetaSequence( daeMetaElement *container, daeMetaCMPolicy *parent = NULL, daeUInt ordinal = 0, daeInt minO = 1, daeInt maxO = 1 );
30 
31 	/**
32 	 * Destructor.
33 	 */
34 	~daeMetaSequence();
35 
36 	daeElement *placeElement( daeElement *parent, daeElement *child, daeUInt &ordinal, daeInt offset = 0, daeElement* before = NULL, daeElement *after = NULL );
37 	daeBool removeElement(daeElement* parent, daeElement* child);
38 	daeMetaElement *findChild( daeString elementName );
39 	void getChildren( daeElement* parent, daeElementRefArray &array );
40 
41 };
42 
43 
44 #endif
45 
46 
47