App Engine Python SDK version 1.8.4
[gae.git] / java / src / main / com / google / appengine / api / conversion / ConversionResultProtoConverter.java
blob0300c946140c6d4c55cab818024f160e75ebe65c
1 // Copyright 2011 Google Inc. All Rights Reserved.
3 package com.google.appengine.api.conversion;
5 import com.google.appengine.api.conversion.ConversionServicePb.ConversionOutput;
6 import com.google.appengine.api.conversion.ConversionServicePb.ConversionServiceError.ErrorCode;
7 import com.google.common.base.Converter;
9 /**
10 * A reversible converter between {@link ConversionResult} and its
11 * corresponding protocol buffer.
14 class ConversionResultProtoConverter extends Converter<ConversionResult, ConversionOutput> {
16 private final DocumentProtoConverter documentProtoConverter = new DocumentProtoConverter();
18 @Override
19 public ConversionOutput doForward(ConversionResult result) {
20 if (result.success()) {
21 return ConversionOutput.newBuilder()
22 .setErrorCode(ErrorCode.OK)
23 .setOutput(documentProtoConverter.convert(result.getOutputDoc()))
24 .build();
25 } else {
26 return ConversionOutput.newBuilder()
27 .setErrorCode(ConversionErrorCode.enumToProto(result.getErrorCode()))
28 .build();
32 @Override
33 public ConversionResult doBackward(ConversionOutput resultPb) {
34 if (resultPb.getErrorCode() == ErrorCode.OK) {
35 return new ConversionResult(documentProtoConverter.reverse().convert(resultPb.getOutput()));
36 } else {
37 return new ConversionResult(
38 ConversionErrorCode.intToEnum(resultPb.getErrorCode().getNumber()));