code: @SuppressWarnings("unchecked")
  	public synchronized <E> E getComponent(int code) {
  		switch (code) {
  		case REMOTE_PROFILE:
  			if (spfRemoteProfile == null) {
  				spfRemoteProfile = new SPFRemoteProfile(getContext(), this);
  			}
  			return (E) spfRemoteProfile;
  
  		case SEARCH:
  			if (spfSearch == null) {
  				spfSearch = new SPFSearch(getContext(), this);
  			}
  			return (E) spfSearch;
  		case SERVICE_EXECUTION:
  			if (spfServiceExecutor == null) {
  				spfServiceExecutor = new SPFServiceExecutor(getContext(), this);
  			}
  			return (E) spfServiceExecutor;
  		default:
  			throw new IllegalArgumentException("Component code " + code + " not found.");
  		}
  	}
docs: Provides access to the different components of SPF. The components are
  identified by static constants available in this class, and all share a
  common superclass, {@link SPFComponent}; the instances returned vy this
  method should be casted to the right class. Available services are:
  <ul>
  <li>{@link #SEARCH}: Searching of people in proximity. Returned
  instance should be casted to {@link SPFSearch}</li>
  <li>{@link #SERVICE_EXECUTION}: Execution of remote methods.
  Returned instance should be casted to {@link SPFServiceExecutor}</li>
  <li>{@link #REMOTE_PROFILE}: Retrieval of information from
  remote profiles. Returned instances should be casted to
  {@link SPFRemoteProfile}</li>
  </ul>
  
  @param code
  @return