Package org.pdfsam.console.business.parser.validators

Source Code of org.pdfsam.console.business.parser.validators.SetViewerCmdValidator

/*
* Created on 06-Mar-2008
* Copyright (C) 2008 by Andrea Vacondio.
*
*
* This library is provided under dual licenses.
* You may choose the terms of the Lesser General Public License version 2.1 or the General Public License version 2
* License at your discretion.
*
*
* This library 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;
* version 2.1 of the License.
*
* This library 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 library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
*
*
*
* This program is free software; you can redistribute it and/or modify it under the terms of the
* GNU General Public License as published by the Free Software Foundation;
* either version 2 of the License.
*
* This program 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 General Public License for more details.
* You should have received a copy of the GNU General Public License along with this program;
* if not, write to the Free Software Foundation, Inc.,
*  59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.pdfsam.console.business.parser.validators;

import java.io.File;
import java.util.Iterator;

import jcmdline.BooleanParam;
import jcmdline.CmdLineHandler;
import jcmdline.FileParam;
import jcmdline.PdfFileParam;
import jcmdline.StringParam;
import jcmdline.dto.PdfFile;

import org.pdfsam.console.business.dto.commands.AbstractParsedCommand;
import org.pdfsam.console.business.dto.commands.SetViewerParsedCommand;
import org.pdfsam.console.business.parser.validators.interfaces.AbstractCmdValidator;
import org.pdfsam.console.exceptions.console.ConsoleException;
import org.pdfsam.console.exceptions.console.ParseException;
import org.pdfsam.console.utils.FileUtility;
import org.pdfsam.console.utils.ValidationUtility;

import com.lowagie.text.pdf.PdfWriter;
/**
* CmdValidator for the setviewer command
* @author Andrea Vacondio
*/
public class SetViewerCmdValidator extends AbstractCmdValidator {

  public AbstractParsedCommand validateArguments(CmdLineHandler cmdLineHandler) throws ConsoleException {
     
      SetViewerParsedCommand parsedCommandDTO = new SetViewerParsedCommand();
     
      if(cmdLineHandler != null){
        //-o
        FileParam oOption = (FileParam) cmdLineHandler.getOption(SetViewerParsedCommand.O_ARG);
        if ((oOption.isSet())){
                File outFile = oOption.getFile();
                ValidationUtility.assertValidDirectory(outFile);
                parsedCommandDTO.setOutputFile(outFile);             
            }else{
              throw new ParseException(ParseException.ERR_NO_O);
            }
       
        //-p
            StringParam pOption = (StringParam) cmdLineHandler.getOption(SetViewerParsedCommand.P_ARG);
            if(pOption.isSet()){
              parsedCommandDTO.setOutputFilesPrefix(pOption.getValue());
            }
           
        //-mode
            StringParam mOption = (StringParam) cmdLineHandler.getOption(SetViewerParsedCommand.M_ARG);
            if(mOption.isSet()){
              parsedCommandDTO.setMode(getMode(mOption.getValue()));        
            }
        //-layout
            StringParam lOption = (StringParam) cmdLineHandler.getOption(SetViewerParsedCommand.L_ARG);
            if(lOption.isSet()){
              parsedCommandDTO.setLayout(getLayout(lOption.getValue()));        
            }
           
        //-nfsmode
            StringParam nfsmOption = (StringParam) cmdLineHandler.getOption(SetViewerParsedCommand.NFSM_ARG);         
            if(nfsmOption.isSet()){
              parsedCommandDTO.setNfsmode(getNFSMode(nfsmOption.getValue()));
            }
           
        //-direction
            StringParam directionOption = (StringParam) cmdLineHandler.getOption(SetViewerParsedCommand.DIRECTION_ARG);
            if(directionOption.isSet()){
              parsedCommandDTO.setDirection(getDirection(directionOption.getValue()));
            }
           
         //-f -d
        PdfFileParam fOption = (PdfFileParam) cmdLineHandler.getOption(SetViewerParsedCommand.F_ARG);
        FileParam dOption = (FileParam) cmdLineHandler.getOption(SetViewerParsedCommand.D_ARG);
        if(fOption.isSet() || dOption.isSet()){
          //-f
              if(fOption.isSet()){
            //validate file extensions
                for(Iterator fIterator = fOption.getPdfFiles().iterator(); fIterator.hasNext();){
                  PdfFile currentFile = (PdfFile) fIterator.next();
                  ValidationUtility.assertValidPdfExtension(currentFile.getFile().getName());                 
                }
                parsedCommandDTO.setInputFileList(FileUtility.getPdfFiles(fOption.getPdfFiles()));
              }
              //-d
          if ((dOption.isSet())){
                  File inputDir = dOption.getFile();
                  ValidationUtility.assertValidDirectory(inputDir);
                  parsedCommandDTO.setInputDirectory(inputDir);               
              }           
        }else{
          throw new ParseException(ParseException.ERR_NO_F_OR_D);
        }
           
            //-hidemenu
            parsedCommandDTO.setHideMenu(((BooleanParam) cmdLineHandler.getOption(SetViewerParsedCommand.HIDEMENU_ARG)).isTrue());
            //-hidetoolbar
            parsedCommandDTO.setHideToolBar(((BooleanParam) cmdLineHandler.getOption(SetViewerParsedCommand.HIDETOOLBAR_ARG)).isTrue());
            //-hide window ui
            parsedCommandDTO.setHideWindowUI(((BooleanParam) cmdLineHandler.getOption(SetViewerParsedCommand.HIDEWINDOWUI_ARG)).isTrue());
            //-fit window
            parsedCommandDTO.setFitWindow(((BooleanParam) cmdLineHandler.getOption(SetViewerParsedCommand.FITWINDOW_ARG)).isTrue());
            //-center window
            parsedCommandDTO.setCenterWindow(((BooleanParam) cmdLineHandler.getOption(SetViewerParsedCommand.CENTERWINDOW_ARG)).isTrue());
            //-display doc title
            parsedCommandDTO.setDisplayDocTitle(((BooleanParam) cmdLineHandler.getOption(SetViewerParsedCommand.DOCTITLE_ARG)).isTrue());
            //-noprintscaling
            parsedCommandDTO.setNoPrintScaling(((BooleanParam) cmdLineHandler.getOption(SetViewerParsedCommand.NOPRINTSCALING_ARG)).isTrue());
          
      }else{
        throw new ConsoleException(ConsoleException.CMD_LINE_HANDLER_NULL);
      }       
      return parsedCommandDTO;
  }

 
  /**
   * @param direction
   * @return The direction to iText
   */
  private int getDirection(String direction){
    int retVal = 0;
    if(SetViewerParsedCommand.D_R2L.equals(direction)){
      retVal = PdfWriter.DirectionR2L;
    }else if (SetViewerParsedCommand.D_L2R.equals(direction)){
      retVal = PdfWriter.DirectionL2R;
    }
    return retVal;
  }
 
  /**
   *
   * @param mode
   * @return The mode to iText
   */
  private int getMode(String mode){
    int retVal = PdfWriter.PageModeUseNone;
    if(SetViewerParsedCommand.M_ATTACHMENTS.equals(mode)){
      retVal = PdfWriter.PageModeUseAttachments;
    }else if(SetViewerParsedCommand.M_FULLSCREEN.equals(mode)){
      retVal = PdfWriter.PageModeFullScreen;
    }else if(SetViewerParsedCommand.M_OCONTENT.equals(mode)){
      retVal = PdfWriter.PageModeUseOC;
    }else if(SetViewerParsedCommand.M_OUTLINES.equals(mode)){
      retVal = PdfWriter.PageModeUseOutlines;
    }else if(SetViewerParsedCommand.M_THUMBS.equals(mode)){
      retVal = PdfWriter.PageModeUseThumbs;
    }
    return retVal;
  }
 
  /**
   *
   * @param nfsmode
   * @return the non full screen mode to iText
   */
  private int getNFSMode(String nfsmode){
    int retVal = PdfWriter.NonFullScreenPageModeUseNone;
    if(SetViewerParsedCommand.NFSM_OCONTENT.equals(nfsmode)){
      retVal = PdfWriter.NonFullScreenPageModeUseOC;
    }else if(SetViewerParsedCommand.NFSM_OUTLINES.equals(nfsmode)){
      retVal = PdfWriter.NonFullScreenPageModeUseOutlines;
    }else if(SetViewerParsedCommand.NFSM_THUMBS.equals(nfsmode)){
      retVal = PdfWriter.NonFullScreenPageModeUseThumbs;
    }
    return retVal;
  }
 
  /**
   *
   * @param layout
   * @return the layout to iText
   */
  private int getLayout(String layout){
    int retVal = PdfWriter.PageLayoutOneColumn;
    if(SetViewerParsedCommand.L_SINGLEPAGE.equals(layout)){
      retVal = PdfWriter.PageLayoutSinglePage;
    }else if(SetViewerParsedCommand.L_TWOCOLUMNLEFT.equals(layout)){
      retVal = PdfWriter.PageLayoutTwoColumnLeft;
    }else if(SetViewerParsedCommand.L_TWOCOLUMNRIGHT.equals(layout)){
      retVal = PdfWriter.PageLayoutTwoColumnRight;
    }else if(SetViewerParsedCommand.L_TWOPAGELEFT.equals(layout)){
      retVal = PdfWriter.PageLayoutTwoPageLeft;
    }else if(SetViewerParsedCommand.L_TWOPAGERIGHT.equals(layout)){
      retVal = PdfWriter.PageLayoutTwoPageRight;
    }
    return retVal;
  }
}
TOP

Related Classes of org.pdfsam.console.business.parser.validators.SetViewerCmdValidator

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.