Comments:
This interface is very similar to the other service interfaces, such as CatchService, and FishService. Each interface focuses on a specific business object, and exposes basic CRUD operations to the application. The only other item of note is the setDelegate() method: This provides a callback object that will be notified when the various operations complete.

Lines 23 - 40: The web-based implementation for creating a new FishingSpot. This is very similar to the LocationBroker code that was previously used.

Lines 42 - 59: Update a FishingSpot on the server.

Lines 61 - 84: The implementation for deleting and retrieving FishingSpot objects. The key point is to set the proper action and URL, and then invoke submitJob() This code then invokes the run() method that exists in the parent class - AbstractServiceWeb.

Lines 91 - 145: Once the response from the server has been retrieved, this method is responsible for decoding the response, and then notifying the delegate. The method retrieves basic return code information, and then parses any FishingSpot objects that are available.

Now that the two classes and the interface have been described, it's time to create the ServiceFactory class, and then update the app to use this service instead of the LocationBroker class.