App Engine Python SDK version 1.8.4
[gae.git] / java / src / main / com / google / appengine / api / conversion / AssetProtoConverter.java
blob7fe47c6a80f90b313d70434ace40ca215a7e8ee9
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;
11 /**
12 * A reversible converter between {@link Asset} and its corresponding protocol
13 * buffer.
16 class AssetProtoConverter extends Converter<Asset, AssetInfo> {
18 /**
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
24 @Override
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())
33 .build();
36 @Override
37 public Asset doBackward(AssetInfo assetPb) {
38 return new Asset(assetPb.getMimeType(), assetPb.getData().toByteArray(), assetPb.getName());