001 // Copyright 2011 The Apache Software Foundation
002 //
003 // Licensed under the Apache License, Version 2.0 (the "License");
004 // you may not use this file except in compliance with the License.
005 // You may obtain a copy of the License at
006 //
007 // http://www.apache.org/licenses/LICENSE-2.0
008 //
009 // Unless required by applicable law or agreed to in writing, software
010 // distributed under the License is distributed on an "AS IS" BASIS,
011 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
012 // See the License for the specific language governing permissions and
013 // limitations under the License.
014
015 package org.apache.tapestry5.services.transform;
016
017 import org.apache.tapestry5.plastic.PlasticClass;
018 import org.apache.tapestry5.services.ComponentEventHandler;
019
020 /**
021 * Additional utilities, beyond {@link PlasticClass}, needed when transforming.
022 *
023 * @since 5.3
024 */
025 public interface TransformationSupport
026 {
027 /**
028 * @param typeName Java type name (which may be a primitive type or array, or fully qualified class name)
029 * @return corresponding Java Class
030 */
031 Class toClass(String typeName);
032
033 /**
034 * Returns true if the class being transformed is a root class: it does not inherit
035 * from another transformed class, but instead inherits from Object.
036 *
037 * @return true if root
038 */
039 boolean isRootTransformation();
040
041 /**
042 * Adds an event handler. Added event handlers execute <em>before</em> calls to super-class event handlers,
043 * or calls to event handler methods.
044 *
045 * @param eventType type of event
046 * @param minContextValues number of context values required to activate the handler
047 * @param operationDescription Used with {@link org.apache.tapestry5.ioc.OperationTracker} when invoking the handler
048 * @param handler code to execute when the event matches
049 */
050 void addEventHandler(String eventType, int minContextValues, String operationDescription, ComponentEventHandler handler);
051
052 }