content: //
  //  Copyright (c) 2014 VK.com
  //
  //  Permission is hereby granted, free of charge, to any person obtaining a copy of
  //  this software and associated documentation files (the "Software"), to deal in
  //  the Software without restriction, including without limitation the rights to
  //  use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
  //  the Software, and to permit persons to whom the Software is furnished to do so,
  //  subject to the following conditions:
  //
  //  The above copyright notice and this permission notice shall be included in all
  //  copies or substantial portions of the Software.
  //
  //  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  //  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
  //  FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
  //  COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
  //  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  //  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  //
  
  package com.vk.sdk.api.httpClient;
  
  import com.vk.sdk.VKSdk;
  import com.vk.sdk.api.VKDefaultParser;
  import com.vk.sdk.api.VKParser;
  import com.vk.sdk.api.model.VKApiModel;
  
  import org.apache.http.client.methods.HttpUriRequest;
  import org.json.JSONObject;
  
  /**
   * Operation based on json operation with object-model parsing possibility
   */
  public class VKModelOperation extends VKJsonOperation {
  	protected final VKParser mParser;
      public Object parsedModel;
  
      /**
       * Create new model operation
       * @param uriRequest Prepared request
       * @param modelClass Model for parsing response
       */
      public VKModelOperation(HttpUriRequest uriRequest, Class<? extends VKApiModel> modelClass) {
          super(uriRequest);
          mParser = new VKDefaultParser(modelClass);
      }
      /**
       * Create new model operation
       * @param uriRequest Prepared request
       * @param parser Parser for create response
       */
      public VKModelOperation(HttpUriRequest uriRequest, VKParser parser) {
          super(uriRequest);
          mParser = parser;
      }
  
      @Override
      protected boolean postExecution() {
          if (!super.postExecution())
              return false;
  
          if (mParser != null) {
              try {
                  JSONObject response = getResponseJson();
                  parsedModel = mParser.createModel(response);
                  return true;
              } catch (Exception e) {
                  if (VKSdk.DEBUG)
                      e.printStackTrace();
              }
          }
          return false;
      }
  }
  