Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2014-2015 Amazon Technologies, Inc.
   *
   * 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://aws.amazon.com/apache2.0
   *
  * This file 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.amazonaws.services.dynamodbv2.datamodeling.unmarshallers;
 
 import java.util.List;
 import java.util.Set;
 
A special unmarshaller for Set<Boolean>, which the V1 schema stores as an NS using 0/1 for true/false. In the V2 schema these fall through to the ObjectSetToListMarshaller which stores them as an L or BOOLs.
 
 public class BooleanSetUnmarshaller implements ArgumentUnmarshaller {
 
     private static final BooleanSetUnmarshaller INSTANCE =
             new BooleanSetUnmarshaller();
 
     public static BooleanSetUnmarshaller instance() {
         return ;
     }
 
     private BooleanSetUnmarshaller() {
     }
 
     @Override
     public void typeCheck(AttributeValue valueMethod setter) {
         if (value.getNS() == null && value.getL() == null) {
             throw new DynamoDBMappingException(
                     "Expected either L or NS in value " + value
                     + " when invoking " + setter);
         }
     }
 
     @Override
     public Object unmarshall(AttributeValue value) {
         if (value.getL() != null) {
             return unmarshallList(value.getL());
         } else {
             return unmarshallNS(value.getNS());
         }
     }
 
     private Set<BooleanunmarshallList(List<AttributeValuevalues) {
         Set<Booleanresult = new HashSet<Boolean>();
 
         for (AttributeValue value : values) {
             Boolean bool;
             if (..equals(value.isNULL())) {
                 bool = null;
             } else {
                 bool = value.getBOOL();
                 if (bool == null) {
                     throw new DynamoDBMappingException(
                             value + " is not a boolean");
                 }
             }
 
             if (!result.add(bool)) {
                 throw new DynamoDBMappingException(
                         "Duplicate value (" + bool + ") found in "
                         + values);
             }
         }
 
         return result;
     }
 
     private Set<BooleanunmarshallNS(List<Stringvalues) {
         Set<Booleanresult = new HashSet<Boolean>();
 
         for (String s : values) {
             if ("1".equals(s)) {
                 result.add(.);
             } else if ("0".equals(s)) {
                 result.add(.);
             } else {
                 throw new IllegalArgumentException(
                         "Expected '1' or '0' for boolean value, was " + s);
             }
         }
 
        return result;
    }
New to GrepCode? Check out our FAQ X