/**
 * <copyright>
 * </copyright>
 *
 * $Id: ChildObject3.java,v 1.1 2006/09/21 00:56:52 mtaal Exp $
 */
package main;

/**
 * <!-- begin-user-doc --> A representation of the model object '<em><b>Child Object3</b></em>'.
 * <!-- end-user-doc -->
 * 
 * <p>
 * The following features are supported:
 * <ul>
 * <li>{@link main.ChildObject3#getWidth <em>Width</em>}</li>
 * </ul>
 * </p>
 * 
 * @see main.MainPackage#getChildObject3()
 * @model
 * @generated
 */
public interface ChildObject3 extends BaseObject {
	/**
	 * Returns the value of the '<em><b>Width</b></em>' attribute. <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Width</em>' attribute isn't clear, there really should be more of a
	 * description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * 
	 * @return the value of the '<em>Width</em>' attribute.
	 * @see #setWidth(Integer)
	 * @see main.MainPackage#getChildObject3_Width()
	 * @model
	 * @generated
	 */
	Integer getWidth();

	/**
	 * Sets the value of the '{@link main.ChildObject3#getWidth <em>Width</em>}' attribute. <!--
	 * begin-user-doc --> <!-- end-user-doc -->
	 * 
	 * @param value
	 *          the new value of the '<em>Width</em>' attribute.
	 * @see #getWidth()
	 * @generated
	 */
	void setWidth(Integer value);

} // ChildObject3