##################################################################
## 
## Licensed to the Apache Software Foundation (ASF) under one
## or more contributor license agreements.  See the NOTICE file
## distributed with this work for additional information
## regarding copyright ownership.  The ASF licenses this file
## to you under the Apache License, Version 2.0 (the
## "License"); you may not use this file except in compliance
## with the License.  You may obtain a copy of the License at
## 
##  http://www.apache.org/licenses/LICENSE-2.0
## 
## Unless required by applicable law or agreed to in writing,
## software distributed under the License is distributed on an
## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
## KIND, either express or implied.  See the License for the
## specific language governing permissions and limitations
## under the License.
##
##################################################################
##
## Begin Code
#include('copyright.txt')
/*
 * This file is automatically generated.
 * Don't edit manually.
 */
package org.odftoolkit.odfdom.dom;
##
## ---------------------------------------------------
##  Imports
## ---------------------------------------------------
##
import org.odftoolkit.odfdom.pkg.OdfElement;
import org.odftoolkit.odfdom.pkg.ElementVisitor;
##
#foreach ($element in ${model.getElements().withoutMultiples()})
#if ($element != "*")
#set ($NS = ${element.getNamespace()})
#set ($classname = "${model.camelCase($element)}Element")
import org.odftoolkit.odfdom.dom.element.${NS}.${classname};
#end
#end
##

/**
 * The default visitor for ODF XML sSchema elements.
 * The default behavior of all specific elements is to dispatch to the visit call
 * to their super class <code>OdfElement<code>.
 * This default method is abstract and have to be overridden.
 * The method is the only method of <code>ElementVisitor<code> interface from the package layer.
 */
public abstract class DefaultElementVisitor implements ElementVisitor {

	abstract public void visit(OdfElement element);
#foreach ($element in ${model.getElements().withoutMultiples()})
#if ($element != "*")
#set ($NS = ${element.getNamespace()})
#set ($classname = "${model.camelCase($element)}Element")

	/**
	 * A method to visit "${element.getQName()}" elements
	 * @param ele - an instance of $classname
	 */
	public void visit($classname ele) {
		visit((OdfElement) ele);
	}
#end
#end
}
