001// Licensed under the Apache License, Version 2.0 (the "License"); 002// you may not use this file except in compliance with the License. 003// You may obtain a copy of the License at 004// 005// http://www.apache.org/licenses/LICENSE-2.0 006// 007// Unless required by applicable law or agreed to in writing, software 008// distributed under the License is distributed on an "AS IS" BASIS, 009// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 010// See the License for the specific language governing permissions and 011// limitations under the License. 012 013package org.apache.tapestry5.services; 014 015import org.apache.tapestry5.Block; 016import org.apache.tapestry5.ioc.annotations.UsesConfiguration; 017 018/** 019 * Used to override the default {@link org.apache.tapestry5.services.BeanBlockSource} for a particular data type. The 020 * service accepts the same configuration of {@link org.apache.tapestry5.services.BeanBlockContribution}s as the main 021 * service. 022 */ 023@UsesConfiguration(BeanBlockContribution.class) 024public interface BeanBlockOverrideSource 025{ 026 /** 027 * Returns a block which can be used to render an editor for the given data type, in the form of a field label and 028 * input field. 029 * 030 * @param datatype logical name for the type of data to be displayed 031 * @return the Block 032 * @throws NullPointerException if no override is available 033 */ 034 Block getEditBlock(String datatype); 035 036 /** 037 * Returns a block which can be used to render output for the given data type. 038 * 039 * @param datatype logical name for the type of data to be displayed 040 * @return the Block 041 * @throws NullPointerException if no override is available 042 */ 043 Block getDisplayBlock(String datatype); 044 045 /** 046 * Checks to see if there is a display block for the indicated data type. 047 * 048 * @param datatype to check for 049 * @return true if an override display block is available 050 */ 051 boolean hasDisplayBlock(String datatype); 052}