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.dynamic;
016
017 import org.apache.tapestry5.Block;
018 import org.apache.tapestry5.ComponentResources;
019 import org.apache.tapestry5.corelib.components.Dynamic;
020
021 /**
022 * Used by implementations of {@link DynamicTemplate} to obtain {@link Block}s as replacements
023 * for elements within the template. The Blocks are passed to the {@link Dynamic} component as informal parameters.
024 *
025 * @since 5.3
026 */
027 public interface DynamicDelegate
028 {
029 /**
030 * Returns the component resources (i.e., the {@link Dynamic} component), used when creating bindings for expansions
031 * located inside the dynamic template.
032 */
033 ComponentResources getComponentResources();
034
035 /**
036 * Returns the Block with the given unique name.
037 *
038 * @throws RuntimeException
039 * if no such block exists
040 */
041 Block getBlock(String name);
042 }