 	import org.openforis.collect.metamodel.proxy.EntityDefinitionProxy;
 	import org.openforis.collect.metamodel.proxy.NumberAttributeDefinitionProxy;
 	import org.openforis.collect.metamodel.proxy.NumberAttributeDefinitionProxy$Type;
+	import org.openforis.collect.util.ArrayUtil;
 	import org.openforis.collect.util.ObjectUtil;
 	import org.openforis.collect.util.StringUtil;
 	import org.openforis.collect.util.UIUtil;

			return required == true;
		}
		
		public function get childrenDefinitionNames():IList {
			//taken from showChildrenErrorsMap that is fully populated from the server
			//with an entry for each child definition
			var names:ArrayCollection = showChildrenErrorsMap.keySet;

		 * Traverse each child and pass it to the argument function
		 * */
		public function traverse(funct:Function):void {
			var stack:Array = new Array();
			stack.push(this);
			while ( stack.length > 0 ) {
				var node:NodeProxy = NodeProxy(stack.pop());
				funct(node);
				if ( node is EntityProxy ) {
					var children:IList = EntityProxy(node).getChildren();
					ArrayUtil.addAll(stack, children.toArray());
				}
			}
		}
