All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.adobe.xmp.schema.model.SchemaVisitor Maven / Gradle / Ivy

// =================================================================================================
// ADOBE SYSTEMS INCORPORATED
// Copyright 2011 Adobe Systems Incorporated
// All Rights Reserved
//
// NOTICE:  Adobe permits you to use, modify, and distribute this file in accordance with the terms
// of the Adobe license agreement accompanying it.
// =================================================================================================

package com.adobe.xmp.schema.model;

import com.adobe.xmp.schema.model.rules.BooleanRule;
import com.adobe.xmp.schema.model.rules.ClosedChoice;
import com.adobe.xmp.schema.model.rules.DateRule;
import com.adobe.xmp.schema.model.rules.IntegerRule;
import com.adobe.xmp.schema.model.rules.LengthRule;
import com.adobe.xmp.schema.model.rules.LogicalRule;
import com.adobe.xmp.schema.model.rules.OpenChoice;
import com.adobe.xmp.schema.model.rules.PatternRule;
import com.adobe.xmp.schema.model.rules.RealRule;


/**
 * @author Stefan Makswit
 */
public interface SchemaVisitor
{
	/**
	 * Visit an {@link SchemaDescription}.
	 * 
	 * @param schema an SchemaDescription
	 * @throws XMPSchemaException Handles visitor exceptions
	 */
	void visit(SchemaDescription schema) throws XMPSchemaException;
	
	
	/**
	 * Visit an {@link PropertyDescription}.
	 * 
	 * @param property an {@link PropertyDescription}
	 * @throws XMPSchemaException Handles visitor exceptions
	 */
	void visit(PropertyDescription property) throws XMPSchemaException;

	
	/**
	 * Visit an {@link SimpleType}
	 * 
	 * @param simpleType an SimpleType
	 * @throws XMPSchemaException Handles visitor exceptions
	 */
	void visit(SimpleType simpleType) throws XMPSchemaException;

	
	/**
	 * Visit an {@link ArrayType}.
	 * 
	 * @param arrayType an ArrayType
	 * @throws XMPSchemaException Handles visitor exceptions
	 */
	void visit(ArrayType arrayType) throws XMPSchemaException;


	/**
	 * Visit an {@link StructType}
	 * 
	 * @param structType an StructType
	 * @throws XMPSchemaException Handles visitor exceptions
	 */
	void visit(StructType structType) throws XMPSchemaException;

	
	/**
	 * Visit a rule
	 * 
	 * @param rule an {@link BooleanRule}
	 * @throws XMPSchemaException Handles visitor exceptions
	 */
	void visit(BooleanRule rule) throws XMPSchemaException;

	
	/**
	 * Visit a rule
	 * 
	 * @param rule a {@link ClosedChoice} or an {@link OpenChoice}
	 * @throws XMPSchemaException Handles visitor exceptions
	 */
	void visit(ClosedChoice rule) throws XMPSchemaException;

	
	/**
	 * Visit a rule
	 * 
	 * @param rule a {@link ClosedChoice} or an {@link OpenChoice}
	 * @throws XMPSchemaException Handles visitor exceptions
	 */
	void visit(OpenChoice rule) throws XMPSchemaException;

	
	/**
	 * Visit a rule
	 * 
	 * @param rule an {@link DateRule}
	 * @throws XMPSchemaException Handles visitor exceptions
	 */
	void visit(DateRule rule) throws XMPSchemaException;
	
	
	/**
	 * Visit a rule
	 * 
	 * @param rule an {@link IntegerRule}
	 * @throws XMPSchemaException Handles visitor exceptions
	 */
	void visit(IntegerRule rule) throws XMPSchemaException;

	
	/**
	 * Visit a rule
	 * 
	 * @param rule an {@link LengthRule}
	 * @throws XMPSchemaException Handles visitor exceptions
	 */
	void visit(LengthRule rule) throws XMPSchemaException;

	
	/**
	 * Visit a rule
	 * 
	 * @param rule an {@link LogicalRule}
	 * @throws XMPSchemaException Handles visitor exceptions
	 */
	void visit(LogicalRule rule) throws XMPSchemaException;

	
	/**
	 * Visit a rule
	 * 
	 * @param rule an {@link PatternRule}
	 * @throws XMPSchemaException Handles visitor exceptions
	 */
	void visit(PatternRule rule) throws XMPSchemaException;
	

	/**
	 * Visit a rule
	 * 
	 * @param rule an {@link RealRule}
	 * @throws XMPSchemaException Handles visitor exceptions
	 */
	void visit(RealRule rule) throws XMPSchemaException;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy