protected AbstractParsedCommand validateArguments(CmdLineHandler cmdLineHandler) throws ConsoleException { UnpackParsedCommand parsedCommandDTO = new UnpackParsedCommand(); if (cmdLineHandler != null) { // -o FileParam oOption = (FileParam) cmdLineHandler.getOption(UnpackParsedCommand.O_ARG); if ((oOption.isSet())) { File outFile = oOption.getFile(); ValidationUtility.assertValidDirectory(outFile); parsedCommandDTO.setOutputFile(outFile); } else { throw new ParseException(ParseException.ERR_NO_O); } // -f and -d PdfFileParam fOption = (PdfFileParam) cmdLineHandler.getOption(UnpackParsedCommand.F_ARG); FileParam dOption = (FileParam) cmdLineHandler.getOption(UnpackParsedCommand.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); } } else { throw new ConsoleException(ConsoleException.CMD_LINE_HANDLER_NULL); } return parsedCommandDTO; }
public AbstractParsedCommand validateArguments(CmdLineHandler cmdLineHandler) throws ConsoleException { SplitParsedCommand parsedCommandDTO = new SplitParsedCommand(); if (cmdLineHandler != null) { // -o FileParam oOption = (FileParam) cmdLineHandler.getOption(SplitParsedCommand.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(SplitParsedCommand.P_ARG); if (pOption.isSet()) { parsedCommandDTO.setOutputFilesPrefix(pOption.getValue()); } // -f PdfFileParam fOption = (PdfFileParam) cmdLineHandler.getOption(SplitParsedCommand.F_ARG); if (fOption.isSet()) { PdfFile inputFile = fOption.getPdfFile(); ValidationUtility.assertValidPdfExtension(inputFile.getFile().getName()); parsedCommandDTO.setInputFile(FileUtility.getPdfFile(inputFile)); } else { throw new ParseException(ParseException.ERR_NO_F); } // -s StringParam sOption = (StringParam) cmdLineHandler.getOption(SplitParsedCommand.S_ARG); if (sOption.isSet()) { parsedCommandDTO.setSplitType(sOption.getValue()); } else { throw new ParseException(ParseException.ERR_NO_S); } // -b LongParam bOption = (LongParam) cmdLineHandler.getOption(SplitParsedCommand.B_ARG); if (SplitParsedCommand.S_SIZE.equals(parsedCommandDTO.getSplitType())) { if (bOption.isSet()) { parsedCommandDTO.setSplitSize(new Long(bOption.longValue())); } else { throw new ParseException(ParseException.ERR_NO_B); } } else { if (bOption.isSet()) { throw new ParseException(ParseException.ERR_B_NOT_NEEDED); } } // -bl IntParam blOption = (IntParam) cmdLineHandler.getOption(SplitParsedCommand.BL_ARG); if (SplitParsedCommand.S_BLEVEL.equals(parsedCommandDTO.getSplitType())) { if (blOption.isSet()) { parsedCommandDTO.setBookmarksLevel(new Integer(blOption.intValue())); } else { throw new ParseException(ParseException.ERR_NO_BL); } } else { if (blOption.isSet()) { throw new ParseException(ParseException.ERR_BL_NOT_NEEDED); } } // -n StringParam nOption = (StringParam) cmdLineHandler.getOption("n"); if (SplitParsedCommand.S_NSPLIT.equals(parsedCommandDTO.getSplitType()) || SplitParsedCommand.S_SPLIT.equals(parsedCommandDTO.getSplitType())) { if (nOption.isSet()) { String nValue = nOption.getValue().trim().replaceAll(",", "-").replaceAll(" ", "-"); if (SplitParsedCommand.S_NSPLIT.equals(parsedCommandDTO.getSplitType())) { Pattern p = Pattern.compile("([0-9]+)*"); if (!(p.matcher(nValue).matches())) { throw new ParseException(ParseException.ERR_N_NOT_NUM); } } if (SplitParsedCommand.S_SPLIT.equals(parsedCommandDTO.getSplitType())) { Pattern p = Pattern.compile("([0-9]+)([-][0-9]+)*"); if (!(p.matcher(nValue).matches())) { throw new ParseException(ParseException.ERR_N_NOT_NUM_OR_SEQ); } } parsedCommandDTO.setSplitPageNumbers(getSplitPageNumbers(nValue)); } else { throw new ParseException(ParseException.ERR_NO_N); } } else { if (nOption.isSet()) { throw new ParseException(ParseException.ERR_N_NOT_NEEDED); } } } else { throw new ConsoleException(ConsoleException.CMD_LINE_HANDLER_NULL); } return parsedCommandDTO; }
public AbstractParsedCommand validateArguments(CmdLineHandler cmdLineHandler) throws ConsoleException { EncryptParsedCommand parsedCommandDTO = new EncryptParsedCommand(); if (cmdLineHandler != null) { // -o FileParam oOption = (FileParam) cmdLineHandler.getOption(EncryptParsedCommand.O_ARG); if ((oOption.isSet())) { File outFile = oOption.getFile(); ValidationUtility.checkValidDirectory(outFile); parsedCommandDTO.setOutputFile(outFile); } else { throw new ParseException(ParseException.ERR_NO_O); } // -p StringParam pOption = (StringParam) cmdLineHandler.getOption(EncryptParsedCommand.P_ARG); if (pOption.isSet()) { parsedCommandDTO.setOutputFilesPrefix(pOption.getValue()); } // -apwd StringParam apwdOption = (StringParam) cmdLineHandler.getOption(EncryptParsedCommand.APWD_ARG); if (apwdOption.isSet()) { parsedCommandDTO.setOwnerPwd(apwdOption.getValue()); } // -upwd StringParam upwdOption = (StringParam) cmdLineHandler.getOption(EncryptParsedCommand.UPWD_ARG); if (upwdOption.isSet()) { parsedCommandDTO.setUserPwd(upwdOption.getValue()); } // -etype StringParam etypeOption = (StringParam) cmdLineHandler.getOption(EncryptParsedCommand.ETYPE_ARG); if (etypeOption.isSet()) { parsedCommandDTO.setEncryptionType(etypeOption.getValue()); } // -f - d PdfFileParam fOption = (PdfFileParam) cmdLineHandler.getOption(EncryptParsedCommand.F_ARG); FileParam dOption = (FileParam) cmdLineHandler.getOption(EncryptParsedCommand.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.checkValidPdfExtension(currentFile.getFile().getName()); } parsedCommandDTO.setInputFileList(FileUtility.getPdfFiles(fOption.getPdfFiles())); } // -d if ((dOption.isSet())) { File inputDir = dOption.getFile(); ValidationUtility.checkValidDirectory(inputDir); parsedCommandDTO.setInputDirectory(inputDir); } } else { throw new ParseException(ParseException.ERR_NO_F_OR_D); } // -allow StringParam allowOption = (StringParam) cmdLineHandler.getOption(EncryptParsedCommand.ALLOW_ARG); if (allowOption.isSet()) { Hashtable permissionsMap = getPermissionsMap(parsedCommandDTO.getEncryptionType()); int permissions = 0; if (!permissionsMap.isEmpty()) { for (Iterator permIterator = allowOption.getValues().iterator(); permIterator.hasNext(); ) { String currentPermission = (String) permIterator.next(); Object value = permissionsMap.get(currentPermission); if (value != null) { permissions |= ((Integer) value).intValue(); } } } permissionsMap = null; parsedCommandDTO.setPermissions(permissions); } } else { throw new ConsoleException(ConsoleException.CMD_LINE_HANDLER_NULL); } return parsedCommandDTO; }
public AbstractParsedCommand validateArguments(CmdLineHandler cmdLineHandler) throws ConsoleException { ConcatParsedCommand parsedCommandDTO = new ConcatParsedCommand(); if (cmdLineHandler != null) { // -o FileParam oOption = (FileParam) cmdLineHandler.getOption("o"); if ((oOption.isSet())) { File outFile = oOption.getFile(); // checking extension if ((outFile.getName().toLowerCase().endsWith(PDF_EXTENSION)) && (outFile.getName().length() > PDF_EXTENSION.length())) { parsedCommandDTO.setOutputFile(outFile); } else { throw new ParseException( ParseException.ERR_OUT_NOT_PDF, new String[] {outFile.getPath()}); } } else { throw new ParseException(ParseException.ERR_NO_O); } // -f -l FileParam lOption = (FileParam) cmdLineHandler.getOption("l"); PdfFileParam fOption = (PdfFileParam) cmdLineHandler.getOption("f"); if (lOption.isSet() || fOption.isSet()) { if (!(lOption.isSet() && fOption.isSet())) { if (fOption.isSet()) { // validate file extensions for (Iterator fIterator = fOption.getPdfFiles().iterator(); fIterator.hasNext(); ) { PdfFile currentFile = (PdfFile) fIterator.next(); if (!((currentFile.getFile().getName().toLowerCase().endsWith(PDF_EXTENSION)) && (currentFile.getFile().getName().length() > PDF_EXTENSION.length()))) { throw new ParseException( ParseException.ERR_IN_NOT_PDF, new String[] {currentFile.getFile().getPath()}); } } parsedCommandDTO.setInputFileList(FileUtility.getPdfFiles(fOption.getPdfFiles())); } else { if (lOption.getFile().getPath().toLowerCase().endsWith(CSV_EXTENSION) || lOption.getFile().getPath().toLowerCase().endsWith(XML_EXTENSION)) { parsedCommandDTO.setInputCvsOrXmlFile(lOption.getFile()); } else { throw new ParseException(ParseException.ERR_NOT_CSV_OR_XML); } } } else { throw new ParseException(ParseException.ERR_BOTH_F_OR_L); } } else { throw new ParseException(ParseException.ERR_NO_F_OR_L); } // -u StringParam uOption = (StringParam) cmdLineHandler.getOption("u"); // if it's set we proceed with validation if (uOption.isSet()) { Pattern p = Pattern.compile("(([0-9]*[-][0-9]*[:])|(all:))+", Pattern.CASE_INSENSITIVE); if ((p.matcher(uOption.getValue()).matches())) { parsedCommandDTO.setPageSelection(uOption.getValue()); } else { throw new ParseException(ParseException.ERR_ILLEGAL_U); } } // -copyfields parsedCommandDTO.setCopyFields( ((BooleanParam) cmdLineHandler.getOption("copyfields")).isTrue()); } else { throw new ParseException(ParseException.CMD_LINE_HANDLER_NULL); } return parsedCommandDTO; }