package org.limewire.friend.api.feature; import org.limewire.friend.api.FriendPresence; import com.google.inject.Inject; public interface FeatureInitializer { /** * Adds feature to the {@link FeatureRegistry}. The impl would * typically add the feature to the FeatureRegistry so the feature can * get looked up and initialized when the appropriate packets * are received over the network. * * @param registry FeatureRegistry to register with */ @Inject void register(FeatureRegistry registry); /** * Initialize the feature. This * usually includes creating and adding the feature to * the {@link FriendPresence}. * * @param friendPresence FriendPresence */ void initializeFeature(FriendPresence friendPresence); /** * Remove the feature. This usually means * removing the feature from the parameter FriendPresence * * @param friendPresence FriendPresence */ void removeFeature(FriendPresence friendPresence); }