package com.flexmls.flexmls_api; import java.util.HashMap; import java.util.Map; import com.flexmls.flexmls_api.services.ContactService; import com.flexmls.flexmls_api.services.ListingService; import com.flexmls.flexmls_api.services.MarketStatisticsService; import com.flexmls.flexmls_api.services.PropertyTypeService; import com.flexmls.flexmls_api.services.StandardFieldService; import com.flexmls.flexmls_api.services.SystemInfoService; /** * Main API client interface. This client is strictly set to use only parameters and feature set * specified in the documentation. An instance of this class is provided to all service * implementations. * * @see BaseClient */ public class Client extends BaseClient<ApiParameter> { public Client(Configuration config, Connection<Response> defaultConnection, Connection<Response> secureConnection) { super(config, defaultConnection, secureConnection); } public Client(Configuration config) { super(config); } @Override Map<String, String> stringifyParameterKeys(Map<ApiParameter, String> parms) { Map<String, String> strings = new HashMap<String, String>(); for (ApiParameter parm : parms.keySet()) { strings.put(parm.toString(), parms.get(parm)); } return strings; } /////////////////////////////////////////////////////////////////////////////////////////////// // Service registry /////////////////////////////////////////////////////////////////////////////////////////////// private ContactService contactService; private ListingService listingService; private PropertyTypeService propertyTypeService; private MarketStatisticsService marketStatisticsService; private SystemInfoService systemInfoService; private StandardFieldService standardFieldService; public ContactService getContactService() { if(contactService == null){ contactService = new ContactService(this); } return contactService; } public void setContactService(ContactService contactService) { this.contactService = contactService; } public ListingService getListingService() { if(listingService == null){ listingService = new ListingService(this); } return listingService; } public void setListingService(ListingService listingService) { this.listingService = listingService; } public PropertyTypeService getPropertyTypeService() { if(propertyTypeService == null){ propertyTypeService = new PropertyTypeService(this); } return propertyTypeService; } public void setPropertyTypeService(PropertyTypeService propertyTypeService) { this.propertyTypeService = propertyTypeService; } public MarketStatisticsService getMarketStatisticsService() { if(marketStatisticsService == null){ marketStatisticsService = new MarketStatisticsService(this); } return marketStatisticsService; } public void setMarketStatisticsService( MarketStatisticsService marketStatisticsService) { this.marketStatisticsService = marketStatisticsService; } public SystemInfoService getSystemInfoService() { if(systemInfoService == null){ systemInfoService = new SystemInfoService(this); } return systemInfoService; } public void setSystemInfoService(SystemInfoService systemInfoService) { this.systemInfoService = systemInfoService; } public StandardFieldService getStandardFieldService() { if(standardFieldService == null){ standardFieldService = new StandardFieldService(this); } return standardFieldService; } public void setStandardFieldService(StandardFieldService standardFieldService) { this.standardFieldService = standardFieldService; } }