Design a Java application that maintains the data for a simple social network. Each person in the network should have a profile that contains the persons name, current status, and a list of friends. Your application should allow the user to join the network, leave the network, create a profile, modify the profile, search for other profiles and add friends.
Although you will have some freedom in the design of the data types, please note that both the social network and the list of friends for each person are collection.