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.ftp.command;
 
 
 
 import javax.jcr.Node;
Created by The eXo Platform SAS Author : Vitaly Guly <gavrik-vetal@ukr.net/mail.ru>

Version:
$Id: $
 
 
 public class CmdMkd extends FtpCommandImpl
 {
 
    private static final Log LOG = ExoLogger.getLogger(. + "CmdMkd");
 
    public CmdMkd()
    {
    }
 
    public void run(String[] paramsthrows IOException
    {
       if (params.length < 2)
       {
          return;
       }
 
       String srcPath = params[1];
 
       ArrayList<StringnewPath = clientSession().getFullPath(srcPath);
 
       if (newPath.size() == 0)
       {
          reply(String.format(..srcPath));
          return;
       }
       
       FtpConfig ftpConfig = clientSession().getFtpServer().getConfiguration();
       boolean replaceForbiddenChars =ftpConfig.isReplaceForbiddenChars();
 
       try
       {
          Session curSession = clientSession().getSession(newPath.get(0));
 
          Node parentNode = curSession.getRootNode();
 
          for (int i = 1; i < newPath.size(); i++)
          {
             String curPathName = newPath.get(i);
 
             if (replaceForbiddenChars)
             {
                curPathName =
                         FtpTextUtils.replaceForbiddenChars(curPathNameftpConfig.getForbiddenChars(), ftpConfig
                                  .getReplaceChar());
             }
 
             if (parentNode.hasNode(curPathName))
             {
                parentNode = parentNode.getNode(curPathName);
             }
             else
             {
                parentNode = parentNode.addNode(curPathName..);
             }
 
          }
 
          curSession.save();
         reply(String.format(..srcPath));
         return;
      }
      catch (RepositoryException rexc)
      {
         if (.isTraceEnabled())
         {
            .trace("An exception occurred: " + rexc.getMessage());
         }
      }
      catch (Exception exc)
      {
         .info("Unhandled exception. " + exc.getMessage(), exc);
      }
      reply(String.format(..srcPath));
   }
New to GrepCode? Check out our FAQ X