package water.api; /** Request type. * * Requests can have multiple types. Basic types include the plain json type * in which the result is returned as a JSON object, a html type that acts as * the webpage, or the help type that displays the extended help for the * request. */ enum RequestType { json { @Override String requestName(String url) { String s = "." + toString(); int i = url.indexOf(s); if( i== -1 ) return url; // No, or default, type return url.substring(0,i)+url.substring(i+s.length()); } }, // json type request, a result is a JSON structure html , // webpage request help , // should display the help on the given request query, // Displays the query for the argument in html mode png , // image, e.g. plot txt , // text, e.g. a script java , // java program xml , // xml request ; private static final RequestType[] _values = values(); /** * Returns the request type of a given URL. Missing / unknown type defaults to JSON. */ static RequestType requestType(String url) { int i = url.indexOf('.'); if (i == -1) return json; // Default for no extension String s = url.substring(i+1); int idx = s.indexOf('/'); if (idx >= 0) { s = s.substring(0, idx); } for( RequestType t : _values ) if( s.equals(t.name()) ) return t; return json; // None of the above; use json } /** Returns the name of the request, that is the request url without the * request suffix. E.g. converts "/GBM.html/crunk" into "/GBM/crunk" */ String requestName(String url) { return url; } }