Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * Copyright (C) 2012 Clarion Media, LLC
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  *     http://www.apache.org/licenses/LICENSE-2.0
  *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.clarionmedia.infinitum.orm.rest.impl;

Concrete implementation of RestfulSession for web services which send responses back as JSON.

Author(s):
Tyler Treat
Version:
1.0 03/21/12
Since:
1.0
public class RestfulJsonSession extends RestfulSession {
Creates a new RestfulJsonSession.
	public RestfulJsonSession() {
	}
	@SuppressWarnings("unchecked")
		OrmPreconditions.checkForOpenSession();
		.debug("Sending GET request to retrieve entity");
		String uri =  + .getRestEndpoint(type) + "/" + id;
		Map<StringStringheaders = new HashMap<StringString>();
		headers.put("Accept""application/json");
		try {
			RestResponse response = .executeGet(uriheaders);
			if (response.getStatusCode() == .) {
				String jsonResponse = response.getResponseDataAsString();
ret;
				// Attempt to use a registered deserializer
					ret = (T) .get(type).deserializeObject(jsonResponse);
				// Otherwise fallback to Gson
				else
					ret = new Gson().fromJson(jsonResponsetype);
				int objHash = .computeModelHash(ret);
				cache(objHashret);
				return ret;
			}
catch (JsonSyntaxException e) {
			.error("Unable to deserialize web service response"e);
			return null;
		}
		return null;
	}
	public <T> Session registerDeserializer(Class<T> typeDeserializer<T> deserializer) {
		if (JsonDeserializer.class.isAssignableFrom(deserializer.getClass()))
			.put(type, (JsonDeserializer<T>) deserializer);
		return this;
	}
New to GrepCode? Check out our FAQ X