Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.openl.rules.repository.jcr;
  
  import java.util.Calendar;
  
  import javax.jcr.Node;
  
Implementation of JCR File.

Author(s):
Aleh Bykhavets
 
 public class JcrFile extends JcrEntity implements RFile {

    
Creates a new instance of file.

Parameters:
parentNode parent node (files or folder)
nodeName name of new node
Returns:
newly created instance
Throws:
javax.jcr.RepositoryException if fails
 
     protected static JcrFile createFile(Node parentNodeString nodeNamethrows RepositoryException {
         Node n = NodeUtil.createFileNode(parentNodenodeName);
 
         parentNode.save();
         n.save();
 
         return new JcrFile(n);
     }
 
     public JcrFile(Node nodethrows RepositoryException {
         super(node);
 
         NodeUtil.checkNodeType(node.);
     }

    
 
     public InputStream getContent() throws RRepositoryException {
         return NodeUtil.getFileNodeContent(node());
     }

    
 
     public InputStream getContent4Version(CommonVersion versionthrows RRepositoryException {
         try {
             Node frozen = NodeUtil.getNode4Version(node(), version);
 
             Node resNode = frozen.getNode("jcr:content");
             InputStream result = resNode.getProperty("jcr:data").getStream();
 
             return result;
         } catch (RepositoryException e) {
             throw new RRepositoryException("Failed to get Content for specified version."e);
         }
     }

    
 
     public String getMimeType() {
         // TODO Auto-generated method stub
         return null;
     }

    
 
     public long getSize() {
         return NodeUtil.getFileNodeSize(node());
     }

    
 
     public void revertToVersion(String versionNamethrows RRepositoryException {
         try {
             Node n = node();
             // TODO check whether we need here 'false' or 'true'
             n.restore(versionNametrue);
         } catch (RepositoryException e) {
             throw new RRepositoryException("Failed to revert to specified version."e);
         }
     }

    
 
     public void setContent(InputStream inputStreamthrows RRepositoryException {
         try {
             Node n = node();
             NodeUtil.smartCheckout(nfalse);
 
             Node resNode = n.getNode("jcr:content");
 
             long lastModifiedTime = System.currentTimeMillis();
             Calendar lastModified = Calendar.getInstance();
             lastModified.setTimeInMillis(lastModifiedTime);
 
             resNode.setProperty("jcr:data"inputStream);
             resNode.setProperty("jcr:lastModified"lastModified);
 
            n.save();
        } catch (RepositoryException e) {
            throw new RRepositoryException("Failed to set Content."e);
        }
    }
New to GrepCode? Check out our FAQ X