Package com.proyecto.miniplan.server.gdata

Source Code of com.proyecto.miniplan.server.gdata.GdataManager

package com.proyecto.miniplan.server.gdata;

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;

import com.google.gdata.client.docs.DocsService;
import com.google.gdata.data.MediaContent;
import com.google.gdata.data.PlainTextConstruct;
import com.google.gdata.data.docs.DocumentEntry;
import com.google.gdata.data.docs.DocumentListEntry;
import com.google.gdata.data.media.MediaByteArraySource;
import com.google.gdata.data.media.MediaSource;
import com.google.gdata.util.AuthenticationException;
import com.google.gdata.util.ServiceException;

public class GdataManager {

  private static final String USERNAME = "nanceproducciones@gmail.com";
  private static final String PASSWORD = "nancepro";

  private static GdataManager manager;
 
  private DocsService client = null;

  private GdataManager() {
  }
 
  public static GdataManager manager() {
    if(manager == null)
      manager = new GdataManager();
    return manager;
  }
 
  public DocsService client() throws AuthenticationException {
    if(client == null) {
      DocsService newClient = new DocsService("Document List Demo");
      newClient.setUserCredentials(USERNAME, PASSWORD);
      client = newClient;
    }
    return client;
  }
 
  public DocumentListEntry getDocument(String resourceId) throws Exception {
    try {
      URL feedUri = new URL("https://docs.google.com/feeds/default/private/full/" + resourceId);
      return client().getEntry(feedUri, DocumentListEntry.class);
    } catch (MalformedURLException e) {
      throw new Exception("Incorrect resource ID: " + resourceId);
    } catch (IOException e) {
      throw new RuntimeException("Error communicating with Google Docs servers");
    }
  }
 
  public InputStream getPdfInputStream(DocumentListEntry document) throws ServiceException {
    String exportUrl = ((MediaContent)document.getContent()).getUri() + "&exportFormat=pdf";
    MediaContent mc = new MediaContent();
    mc.setUri(exportUrl);
    try {
      MediaSource ms = client().getMedia(mc);
      return ms.getInputStream();
    } catch (IOException e) {
      throw new RuntimeException(e);
    }
  }
 
  public InputStream getPdfInputStream(String resourceId) throws Exception {
    return getPdfInputStream(getDocument(resourceId));
  }
 
  public DocumentListEntry createNewDocument(String title, String content) throws ServiceException {
    try {
      URL feedUrl = new URL("https://docs.google.com/feeds/default/private/full/");
      DocumentListEntry newEntry = new DocumentEntry();
      newEntry.setTitle(new PlainTextConstruct(title));
      newEntry = client().insert(feedUrl, newEntry);
     
      newEntry.setMediaSource(new MediaByteArraySource(content.getBytes(), "text/html"));
      newEntry = newEntry.updateMedia(true);
      return newEntry;
    } catch (MalformedURLException e) {
      throw new RuntimeException(e);
    } catch (IOException e) {
      throw new RuntimeException(e);
    }
  }

}
TOP

Related Classes of com.proyecto.miniplan.server.gdata.GdataManager

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.