Package sample.gbase.cmdline

Source Code of sample.gbase.cmdline.InsertMediaCommand

/* Copyright (c) 2007 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package sample.gbase.cmdline;

import com.google.gdata.client.Service;
import com.google.gdata.client.Service.GDataRequest;
import com.google.gdata.data.media.MediaFileSource;
import com.google.gdata.data.media.MediaSource;
import com.google.gdata.util.ContentType;

import java.io.File;
import java.net.URL;

/**
* Inserts a new media attachment to a Google Base item, by using
* a media binary POST. See
* {@link com.google.api.gbase.client.GoogleBaseService#insert(URL, Class, MediaSource)}
* for an easier way to do a media binary POST, or look at
* {@link com.google.api.gbase.client.GoogleBaseService#insert(URL, com.google.gdata.data.BaseEntry)}
* for an easier way to insert an attachment together with the media entry (meta-data) describing it.
* This command is called from {@link CustomerTool}.
*/
class InsertMediaCommand extends Command {

  private String itemMediaUrl;
  private String attachmentFile;
  private String attachmentMimeType;
  private String caption;
 
  @Override
  public void execute() throws Exception {
    MediaFileSource media = new MediaFileSource(new File(attachmentFile), attachmentMimeType);
   
    Service service = createService();
    Service.GDataRequest request = service.createRequest(GDataRequest.RequestType.INSERT,
        new URL(itemMediaUrl), new ContentType(attachmentMimeType));

    if (caption != null) {
      request.setHeader("Slug", caption);
    }
   
    MediaSource.Output.writeTo(media, request.getRequestStream());

    // Send the request (HTTP POST)
    request.execute();

    // Save the response
    outputRawResponse(request);
  }

  /** Set the url of the media feed for the item to insert the attachment into. */
  public void setItemMediaUrl(String itemMediaUrl) {
    this.itemMediaUrl = itemMediaUrl;
  }
 
  /** Sets the path to the file on the disk containing the attachment to upload. */
  public void setAttachmentFile(String attachmentFile) {
    this.attachmentFile = attachmentFile;
  }
 
  /** Sets the mime-type of the attachment. */
  public void setAttachmentMimeType(String attachmentMimeType) {
    this.attachmentMimeType = attachmentMimeType;
  }
 
  /** Sets the caption (title) of the attachment. */
  public void setCaption(String caption) {
    this.caption = caption;
  }
}
TOP

Related Classes of sample.gbase.cmdline.InsertMediaCommand

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.