public V get(SerializationService serializationService) {
        if (!valueExists) {
            // it's ok to deserialize twice in case of race
            assert serializationService != null;
            value = serializationService.toObject(serializedValue);
            valueExists = true;
        }
        return value;
    }
public V get ( SerializationService serializationService ) { if ( ! valueExists ) { assert serializationService != null ; value = serializationService . toObject ( serializedValue ) ; valueExists = true ; } return value ; }
get-or-deserialize-and-get