001package jmri.server.json.util; 002 003import com.fasterxml.jackson.databind.ObjectMapper; 004import jmri.server.json.JSON; 005import jmri.server.json.JsonConnection; 006import jmri.server.json.JsonException; 007import jmri.spi.JsonServiceFactory; 008import org.openide.util.lookup.ServiceProvider; 009 010/** 011 * @author Randall Wood 012 */ 013@ServiceProvider(service = JsonServiceFactory.class) 014public class JsonUtilServiceFactory implements JsonServiceFactory<JsonUtilHttpService, JsonUtilSocketService> { 015 016 @Override 017 public String[] getTypes(String version) { 018 return new String[]{JSON.GOODBYE, 019 JSON.HELLO, 020 JSON.METADATA, 021 JSON.NETWORK_SERVICE, 022 JSON.NETWORK_SERVICES, 023 JSON.NODE, 024 JSON.PANEL, 025 JSON.PANELS, 026 JSON.RAILROAD, 027 JSON.SYSTEM_CONNECTION, 028 JSON.SYSTEM_CONNECTIONS, 029 JSON.CONFIG_PROFILE, 030 JSON.CONFIG_PROFILES, 031 JSON.SESSION_LOGIN, 032 JSON.SESSION_LOGOUT, 033 JSON.VERSION 034 }; 035 } 036 037 @Override 038 public String[] getSentTypes(String version) { 039 // retain ERROR on behalf of JsonException for schema handling 040 // retain LIST on behalf of JSON servers for schema handling 041 // retain PONG on behalf of JSON servers for schema handling 042 return new String[]{JsonException.ERROR, JSON.LIST, JSON.PONG}; 043 } 044 045 @Override 046 public String[] getReceivedTypes(String version) { 047 // retain LOCALE on behalf of JSON servers for schema handling 048 // retain PING on behalf of JSON servers for schema handling 049 return new String[]{JSON.LOCALE, JSON.PING}; 050 } 051 052 @Override 053 public JsonUtilSocketService getSocketService(JsonConnection connection, String version) { 054 return new JsonUtilSocketService(connection); 055 } 056 057 @Override 058 public JsonUtilHttpService getHttpService(ObjectMapper mapper, String version) { 059 return new JsonUtilHttpService(mapper); 060 } 061 062}