Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (C) 2009 eXo Platform SAS.
   *
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
   * the License, or (at your option) any later version.
   *
   * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 package org.exoplatform.services.jcr.ext.resource;
 
 
 
 import javax.jcr.Node;

Author(s):
Andrey Parfonov
Version:
$Id: $
 
 public class JcrURLConnection extends URLConnection
 {
 
    private static final Log LOG = ExoLogger.getLogger("exo.jcr.component.ext.JcrURLConnection");
 
 
 
 
 
    private Session session;
 
    private boolean closeSessionProvider;
 
    public JcrURLConnection(UnifiedNodeReference nodeReferenceSessionProvider sessionProvider,
       NodeRepresentationService nodeRepresentationServiceboolean closeSessionProviderthrows MalformedURLException
    {
 
       super(nodeReference.getURL());
       this. = sessionProvider;
       this. = nodeReference;
       this. = nodeRepresentationService;
       this. = closeSessionProvider;
 
        = false;
        = false;
        = false;
        = 0;
    }
 
    public JcrURLConnection(UnifiedNodeReference nodeReferenceSessionProvider sessionProvider,
       NodeRepresentationService nodeRepresentationServicethrows MalformedURLException
    {
 
       super(nodeReference.getURL());
       this. = sessionProvider;
       this. = nodeReference;
       this. = nodeRepresentationService;
 
        = false;
        = false;
        = false;
        = 0;
    }
 
    /*
     * (non-Javadoc)
     * @see java.net.URLConnection#connect()
     */
    @Override
    public void connect() throws IOException
    {
       if ()
          return;
 
       try
       {
           =
         Node node = null;
         if (.isPath())
         {
            node = (Node).getItem(.getPath());
         }
         else if (.isIdentitifier())
         {
            node = .getNodeByUUID(.getIdentitifier().getString());
         }
         else
         {
            throw new IllegalArgumentException("Absolute path or Identifier was not found!");
         }
          = true;
      }
      catch (Exception e)
      {
         //e.printStackTrace();
         throw new IOException("Connection refused!");
      }
   }

   
Close connection to JCR.
   public void disconnect()
   {
      if (!)
         return;
      .logout();
       = false;
   }
   /*
    * (non-Javadoc)
    * @see java.net.URLConnection#getInputStream()
    */
   public InputStream getInputStream() throws IOException
   {
      if (!)
         connect();
      try
      {
         return .getInputStream();
      }
      catch (IOException e)
      {
         //e.printStackTrace();
         throw new IOException("can't get input stream");
      }
      catch (RepositoryException e)
      {
         //e.printStackTrace();
         throw new IOException("can't get input stream");
      }
   }
   /*
    * (non-Javadoc)
    * @see java.net.URLConnection#getContent()
    */
   public Object getContent() throws IOException
   {
      if (!)
         connect();
      return .getNode();
   }
   /*
    * (non-Javadoc)
    * @see java.net.URLConnection#getContent(java.lang.Class[])
    */
   public Object getContent(Class[] classesthrows IOException
   {
      throw new UnsupportedOperationException("protocol support only "
         + "javax.jcr.Node as content, use method getContent() instead this.");
   }
   /*
    * (non-Javadoc)
    * @see java.net.URLConnection#getContentType()
    */
   public String getContentType()
   {
      try
      {
         if (!)
         {
            connect();
         }
         return .getMediaType();
      }
      catch (IOException e)
      {
         if (.isTraceEnabled())
         {
            .trace("An exception occurred: " + e.getMessage());
         }
      }
      catch (RepositoryException e)
      {
         if (.isTraceEnabled())
         {
            .trace("An exception occurred: " + e.getMessage());
         }
      }
      return null;
   }
   /*
    * (non-Javadoc)
    * @see java.net.URLConnection#getContentLength()
    */
   public int getContentLength()
   {
      try
      {
         if (!)
         {
            connect();
         }
         return (int).getContentLenght();
      }
      catch (IOException e)
      {
         if (.isTraceEnabled())
         {
            .trace("An exception occurred: " + e.getMessage());
         }
      }
      catch (RepositoryException e)
      {
         if (.isTraceEnabled())
         {
            .trace("An exception occurred: " + e.getMessage());
         }
      }
      return -1;
   }
   /*
    * (non-Javadoc)
    * @see java.net.URLConnection#setDoOutput(boolean)
    */
   public void setDoOutput(boolean dooutput)
   {
      if (dooutput)
         throw new UnsupportedOperationException("protocol doesn't support output!");
      super.setDoOutput(dooutput);
   }
   /*
    * (non-Javadoc)
    * @see java.net.URLConnection#getContentEncoding()
    */
   public String getContentEncoding()
   {
      try
      {
         if (!)
         {
            connect();
         }
         return .getContentEncoding();
      }
      catch (Exception e)
      {
         if (.isTraceEnabled())
         {
            .trace("An exception occurred: " + e.getMessage());
         }
      }
      return null;
   }
   /*
    * (non-Javadoc)
    * @see java.net.URLConnection#getLastModified()
    */
   public long getLastModified()
   {
      try
      {
         if (!)
         {
            connect();
         }
         return .getLastModified();
      }
      catch (IOException e)
      {
         if (.isTraceEnabled())
         {
            .trace("An exception occurred: " + e.getMessage());
         }
      }
      catch (RepositoryException e)
      {
         if (.isTraceEnabled())
         {
            .trace("An exception occurred: " + e.getMessage());
         }
      }
      return 0;
   }
   /*
    * (non-Javadoc)
    * @see java.net.URLConnection#setAllowUserInteraction(boolean)
    */
   public void setAllowUserInteraction(boolean allowuserinteraction)
   {
      if (allowuserinteraction)
         throw new UnsupportedOperationException("protocol doesn't support user interaction!");
      super.setAllowUserInteraction(allowuserinteraction);
   }
   /*
    * (non-Javadoc)
    * @see java.net.URLConnection#setUseCaches(boolean)
    */
   public void setUseCaches(boolean usecaches)
   {
      if (usecaches)
         throw new UnsupportedOperationException("protocol doesn't support caches!");
      super.setUseCaches(usecaches);
   }
   /*
    * (non-Javadoc)
    * @see java.net.URLConnection#setIfModifiedSince(long)
    */
   public void setIfModifiedSince(long ifmodifiedsince)
   {
      if (ifmodifiedsince > 0)
         throw new UnsupportedOperationException("protocol doesn't support this feature!");
      super.setIfModifiedSince(ifmodifiedsince);
   }
   /*
    * (non-Javadoc)
    * @see java.net.URLConnection#setRequestProperty(java.lang.String, java.lang.String)
    */
   public void addRequestProperty(String keyString value)
   {
      throw new UnsupportedOperationException("protocol doesn't support request properties!");
   }
   /*
    * (non-Javadoc)
    * @see java.net.URLConnection#setRequestProperty(java.lang.String, java.lang.String)
    */
   public void setRequestProperty(String keyString value)
   {
      throw new UnsupportedOperationException("protocol doesn't support request properties!");
   }
   protected void finalize() throws Throwable
   {
      try
      {
         if ()
         {
            .close();
         }
      }
      catch (Exception t)
      {
         if (.isTraceEnabled())
         {
            .trace("An exception occurred: " + t.getMessage());
         }
      }
      finally
      {
         super.finalize();
      }
   }
New to GrepCode? Check out our FAQ X