blob: 5bc2f395104e1dd6ca2a5161b7333524f62c17b1 [file] [log] [blame]
package org.apache.tapestry.internal;
import org.apache.tapestry.IRender;
/**
* Represents the <em>internal</em> component api exposed for use by core framework code only.
*
* <p>
* Use at your own risk as everything in this API is subject to change without notice from release to
* release.
* </p>
*/
public interface Component {
/**
* Returns the list of of {@link IRender} elements contained by this component. Ie whatever
* has been added via {@link org.apache.tapestry.IComponent#addBody(IRender)}.
*
* @return The values, if any. Null otherwise.
*/
IRender[] getContainedRenderers();
/**
* In some rare cases a component has both outer and inner renderers - such as with {@link org.apache.tapestry.BaseComponent}. This
* value should return the normal inner renderers most components do in those instances while the other
* {@link #getContainedRenderers()} should return the outer renderers.
*
* @return The inner renderers if this component supports more than one type, null otherwise.
*/
IRender[] getInnerRenderers();
/**
* Checks if this component has been targeted / connected to for client side
* event listening via @EventListener.
*
* @return True if anything has targeted this component, false otherwise.
*/
boolean hasEvents();
/**
* Sets whether or not this component has events.
*
* @param hasEvents Whether or not this component has connected events.
*/
void setHasEvents(boolean hasEvents);
}