code: public ScanResult scan(ScanRequest scanRequest)
              throws AmazonServiceException, AmazonClientException {
          ExecutionContext executionContext = createExecutionContext(scanRequest);
          AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
          Request<ScanRequest> request = marshall(scanRequest,
                  new ScanRequestMarshaller(),
                  executionContext.getAwsRequestMetrics());
          // Binds the request metrics to the current request.
          request.setAWSRequestMetrics(awsRequestMetrics);
          Unmarshaller<ScanResult, JsonUnmarshallerContext> unmarshaller = new ScanResultJsonUnmarshaller();
          JsonResponseHandler<ScanResult> responseHandler = new JsonResponseHandler<ScanResult>(unmarshaller);
          return invoke(request, responseHandler, executionContext);
      }
docs: <p>
  Retrieves one or more items and its attributes by performing a full
  scan of a table.
  </p>
  <p>
  Provide a <code>ScanFilter</code> to get more specific results.
  </p>
  
  @param scanRequest Container for the necessary parameters to execute
  the Scan service method on AmazonDynamoDB.
  
  @return The response from the Scan service method, as returned by
  AmazonDynamoDB.
  
  @throws ProvisionedThroughputExceededException
  @throws InternalServerErrorException
  @throws ResourceNotFoundException
  
  @throws AmazonClientException
  If any internal errors are encountered inside the client while
  attempting to make the request or handle the response.  For example
  if a network connection is not available.
  @throws AmazonServiceException
  If an error response is returned by AmazonDynamoDB indicating
  either a problem with the data in the request, or a server side issue.