1 // Copyright 2011 Google Inc. All Rights Reserved.
3 package com
.google
.appengine
.api
.conversion
;
5 import com
.google
.appengine
.api
.conversion
.ConversionServicePb
.AssetInfo
;
6 import com
.google
.common
.base
.Converter
;
7 import com
.google
.common
.base
.Preconditions
;
8 import com
.google
.common
.base
.StringUtil
;
9 import com
.google
.protobuf
.ByteString
;
12 * A reversible converter between {@link Asset} and its corresponding protocol
16 class AssetProtoConverter
extends Converter
<Asset
, AssetInfo
> {
19 * Converts an {@link Asset} to its corresponding protocol buffer.
21 * @throws IllegalArgumentException if the asset mime type is null, empty or
22 * comprises only whitespace characters
25 public AssetInfo
doForward(Asset asset
) {
26 Preconditions
.checkArgument(!StringUtil
.isEmptyOrWhitespace(asset
.getMimeType()),
27 "Asset mime type should not be null, empty or comprises only whitespaces");
29 return AssetInfo
.newBuilder()
30 .setMimeType(asset
.getMimeType())
31 .setData(ByteString
.copyFrom(asset
.getData()))
32 .setName(asset
.getName())
37 public Asset
doBackward(AssetInfo assetPb
) {
38 return new Asset(assetPb
.getMimeType(), assetPb
.getData().toByteArray(), assetPb
.getName());