001    package org.trails.finder;
002    
003    import org.apache.tapestry.IRequestCycle;
004    import org.apache.tapestry.components.Block;
005    import org.apache.tapestry.util.ComponentAddress;
006    import org.trails.descriptor.IPropertyDescriptor;
007    
008    public interface BlockFinder
009    {
010    
011            /**
012             * @return the component address for a block for the specified property
013             */
014            public abstract ComponentAddress findBlockAddress(IPropertyDescriptor descriptor);
015    
016            /**
017             * Return the block for the specified property
018             *
019             * @param cycle
020             * @param descriptor
021             * @return
022             */
023            public Block findBlock(IRequestCycle cycle, IPropertyDescriptor descriptor);
024    
025            public ComponentAddress getDefaultBlockAddress();
026    }