001    package org.expasy.jpl.commons.collection;
002    
003    
004    import org.expasy.jpl.commons.base.Registrable;
005    
006    
007    /**
008     * A recording of T-objects.
009     * 
010     * @author nikitin
011     * 
012     * @param <T> registrable object.
013     * 
014     * @version 1.0
015     * 
016     */
017    public interface Register<T extends Registrable> {
018            
019            void register(T entry);
020            
021            T unregister(String name);
022            
023            T lookup(String name);
024            
025            boolean isRegistered(String name);
026            
027            /** @return the number of registered objects. */
028            int size();
029            
030            /** Clear the register. */
031            void clear();
032    }