com.googlecode.objectify.impl.conv
Class NumberConverter

java.lang.Object
  extended by com.googlecode.objectify.impl.conv.NumberConverter
All Implemented Interfaces:
Converter

public class NumberConverter
extends java.lang.Object
implements Converter

Numbers are funky in the datastore. They have a couple pieces of odd behavior:

  1. You can save numbers of any size. However, when they are retreived, they will mysteriously all be Long.
  2. Numbers suffer from the same primitive type impedance mismatch as Booleans. The type for a primitive int field is Integer.TYPE, which is not assignable with Integer.class. We need to detect this explicitly.


Constructor Summary
NumberConverter()
           
 
Method Summary
 java.lang.Object forDatastore(java.lang.Object value, ConverterSaveContext ctx)
          Convert the value into an object suitable for storage in the datastore.
 java.lang.Object forPojo(java.lang.Object value, java.lang.Class<?> fieldType, ConverterLoadContext ctx, java.lang.Object onPojo)
          Convert the value into an object suitable for setting on a field with the specified type.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NumberConverter

public NumberConverter()
Method Detail

forDatastore

public java.lang.Object forDatastore(java.lang.Object value,
                                     ConverterSaveContext ctx)
Description copied from interface: Converter
Convert the value into an object suitable for storage in the datastore. The first thing converters should do is test whether they are appropriate for the input data; if not, return null.

Specified by:
forDatastore in interface Converter
Parameters:
value - will never be null
Returns:
null to indicate that this converter does nothing with the value

forPojo

public java.lang.Object forPojo(java.lang.Object value,
                                java.lang.Class<?> fieldType,
                                ConverterLoadContext ctx,
                                java.lang.Object onPojo)
Description copied from interface: Converter
Convert the value into an object suitable for setting on a field with the specified type. The first thing converters should do is test whether they are appropriate for the input data; if not, return null.

Specified by:
forPojo in interface Converter
Parameters:
value - will never be null
fieldType - is the type that the value should be converted to
onPojo - is the actual pojo object that this value will eventually be set upon
Returns:
null to indicate that this converter does nothing with the value


Copyright © 2011 Jeff Schnitzer and a gang of pirates. All Rights Reserved. Build version: 3.1