List of usage examples for org.apache.commons.lang3 StringUtils substring
public static String substring(final String str, int start, int end)
Gets a substring from the specified String avoiding exceptions.
A negative start position can be used to start/end n characters from the end of the String.
The returned substring starts with the character in the start position and ends before the end position.
From source file:org.structr.core.parser.function.AbbrFunction.java
@Override public Object apply(final ActionContext ctx, final GraphObject entity, final Object[] sources) throws FrameworkException { if (arrayHasMinLengthAndAllElementsNotNull(sources, 2)) { try {/*from w w w . j a v a 2s. c o m*/ int maxLength = Double.valueOf(sources[1].toString()).intValue(); if (sources[0].toString().length() > maxLength) { return StringUtils .substringBeforeLast(StringUtils.substring(sources[0].toString(), 0, maxLength), " ") .concat(""); } else { return sources[0]; } } catch (NumberFormatException nfe) { return nfe.getMessage(); } } return ""; }
From source file:org.xlrnet.tibaija.tools.fontgen.FontgenApplication.java
@NotNull private Font importFont(String source, String fontIdentifier) throws IOException { Path sourcePath = Paths.get(source); Pattern filePattern = Pattern.compile("[0-9A-F]{2}h_" + fontIdentifier + "[a-zA-Z0-9]*.gif"); List<Path> fileList = Files.list(sourcePath) .filter(p -> filePattern.matcher(p.getFileName().toString()).matches()) .collect(Collectors.toList()); Font font = new Font(); List<Symbol> symbols = new ArrayList<>(); for (Path path : fileList) { try {//from www . j a v a 2 s. c o m Symbol symbol = importFile(path, font, fontIdentifier); if (symbol == null) continue; String filename = path.getFileName().toString(); String hexValue = StringUtils.substring(filename, 0, 2); String internalIdentifier = StringUtils.substringBetween(filename, "_" + fontIdentifier, ".gif"); symbol.setHexValue(hexValue); symbol.setInternalIdentifier(internalIdentifier); symbols.add(symbol); } catch (ImageReadException e) { LOGGER.error("Reading image {} failed", path.toAbsolutePath(), e); } } Collections.sort(symbols); font.setSymbols(symbols); return font; }
From source file:org.xwiki.contrib.repository.bintray.internal.model.BintrayExtension.java
/** * @param bintrayPackageDTO -//from w ww . j a va 2 s . c o m * @param repository - * @param extensionRepository - * @param licenseManager - * @param extensionFactory - * @param logger - * @throws ResolveException - */ public BintrayExtension(BintrayPackageDTO bintrayPackageDTO, BintrayMavenExtensionRepository repository, ExtensionRepository extensionRepository, ExtensionLicenseManager licenseManager, ExtensionFactory extensionFactory, Logger logger) throws ResolveException { super(repository, new ExtensionId(bintrayPackageDTO.getSystem_ids().get(0), bintrayPackageDTO.getLatest_version()), "jar"); this.logger = logger; this.extensionRepository = extensionRepository; setName(bintrayPackageDTO.getName()); addLicenses(bintrayPackageDTO.getLicenses(), licenseManager); setDescription(bintrayPackageDTO.getDesc()); setSummary(StringUtils.substring(bintrayPackageDTO.getDesc(), 0, 200)); setWebsite(bintrayPackageDTO.getWebsite_url()); addRepository(repository.getDescriptor()); setIssueManagement( extensionFactory.getExtensionIssueManagement(null, bintrayPackageDTO.getIssue_tracker_url())); setRecommended(false); setProperties(getId()); }
From source file:org.xwiki.contrib.repository.npm.internal.NpmExtension.java
public static NpmExtension constructFrom(NpmPackageInfoJSONDto npmPackageInfo, NpmExtensionRepository npmExtensionRepository, ExtensionLicenseManager licenseManager, HttpClientFactory httpClientFactory, Environment environment) throws ResolveException { String packageName = npmPackageInfo.getName(); String version = npmPackageInfo.getVersion(); ExtensionId extensionId = new ExtensionId(NpmParameters.DEFAULT_GROUPID + ":" + packageName, version); NpmExtension npmExtension = new NpmExtension(npmExtensionRepository, extensionId, NpmParameters.PACKAGE_TYPE); //set metadata npmExtension.setName(npmPackageInfo.getName()); npmExtension.setDescription(npmPackageInfo.getDescription()); npmExtension.setSummary(StringUtils.substring(npmPackageInfo.getDescription(), 0, 200)); npmExtension.addLicences(npmPackageInfo.getLicense(), licenseManager); npmExtension.setWebsite(npmPackageInfo.getHomepage()); npmExtension.addRepository(npmExtensionRepository.getDescriptor()); npmExtension.setRecommended(false);//from w ww. j a v a2s .c om npmExtension.setFile(new NpmExtensionFile(packageName, version, npmPackageInfo.getDist().getURI(), httpClientFactory, environment)); npmExtension.addDependencies(npmPackageInfo); return npmExtension; }
From source file:org.xwiki.contrib.repository.npm.internal.NpmExtension.java
public static NpmExtension constructFrom(NpmSearchPackageDto npmSearchPackageDto, NpmExtensionRepository npmExtensionRepository) { String packageName = npmSearchPackageDto.getName(); String version = npmSearchPackageDto.getVersion(); ExtensionId extensionId = new ExtensionId(NpmParameters.DEFAULT_GROUPID + ":" + packageName, version); NpmExtension npmExtension = new NpmExtension(npmExtensionRepository, extensionId, NpmParameters.PACKAGE_TYPE); //set metadata npmExtension.setName(npmSearchPackageDto.getName()); npmExtension.setDescription(npmSearchPackageDto.getDescription()); npmExtension.setSummary(StringUtils.substring(npmSearchPackageDto.getDescription(), 0, 200)); npmExtension.setWebsite(npmSearchPackageDto.getLinks().getHomepage()); npmExtension.addRepository(npmExtensionRepository.getDescriptor()); npmExtension.setRecommended(false);/*from w ww . j a va 2s . co m*/ return npmExtension; }
From source file:org.xwiki.contrib.repository.pypi.internal.PypiExtension.java
/** * @param pypiPackageData -// w w w . j a va 2 s .com * @param pypiExtensionRepository - * @param licenseManager - * @param httpClientFactory - * @return - * @throws ResolveException - */ public static PypiExtension constructFrom(PypiPackageJSONDto pypiPackageData, PypiExtensionRepository pypiExtensionRepository, ExtensionLicenseManager licenseManager, HttpClientFactory httpClientFactory) throws ResolveException { String packageName = pypiPackageData.getInfo().getName(); String version = pypiPackageData.getInfo().getVersion(); ExtensionId extensionId = new ExtensionId(PypiParameters.DEFAULT_GROUPID + ":" + packageName, version); Optional<PypiPackageUrlDto> fileUrlDtoForVersionOptional = pypiPackageData .getWhlFileUrlDtoForVersion(version); if (!fileUrlDtoForVersionOptional.isPresent()) { throw new ResolveException("Compatible distribution of [" + packageName + "] not found in PyPi repository (required compatibility with Jython 2.7)"); } PypiPackageUrlDto fileUrlDtoForVersion = fileUrlDtoForVersionOptional.get(); PypiExtension pypiExtension = new PypiExtension(pypiExtensionRepository, extensionId, PypiParameters.PACKAGE_TYPE); //set metadata pypiExtension.setName(pypiPackageData.getInfo().getName()); pypiExtension.setDescription(pypiPackageData.getInfo().getDescription()); pypiExtension.setSummary(StringUtils.substring(pypiPackageData.getInfo().getDescription(), 0, 200)); pypiExtension.addLicences(pypiPackageData.getInfo().getLicense(), licenseManager); pypiExtension.setWebsite(pypiPackageData.getInfo().getHome_page()); pypiExtension.addRepository(pypiExtensionRepository.getDescriptor()); pypiExtension.setRecommended(false); pypiExtension.setPythonDistributionType(fileUrlDtoForVersion.getPackagetype()); //setFile try { URI uriToDownload = new URI(fileUrlDtoForVersion.getUrl()); long size = fileUrlDtoForVersion.getSize(); PypiExtensionFile pypiExtensionFile = new PypiExtensionFile(uriToDownload, size, httpClientFactory); pypiExtension.setFile(pypiExtensionFile); } catch (URISyntaxException e) { throw new ResolveException("Wrong download URL received from Rest call to repository", e); } pypiExtension.addDependencies(pypiExtensionRepository); return pypiExtension; }
From source file:org.yamj.core.service.metadata.nfo.InfoReader.java
/** * Try and read a NFO file for information * * @param nfoFile/*from ww w . ja v a 2s . c om*/ * @param nfoText * @param dto */ public void readNfoFile(StageFile stageFile, InfoDTO dto) { String nfoFilename = stageFile.getFileName(); File nfoFile = new File(stageFile.getFullPath()); String nfoContent = null; try { nfoContent = FileUtils.readFileToString(nfoFile, FileTools.DEFAULT_CHARSET); } catch (Exception e) { LOG.error("Unable to read NFO file: " + stageFile.getFullPath(), e); nfoFile = null; nfoContent = stageFile.getContent(); if (StringUtils.isBlank(nfoContent)) { LOG.warn("NFO file '{}' is not readable", nfoFilename); try { stageFile.setStatus(StatusType.INVALID); this.stagingService.updateStageFile(stageFile); } catch (Exception ignore) { // error can be ignored } // nothing to do for this stage file return; } LOG.warn("NFO file '{}' is not readable; try stage file content", nfoFilename); } boolean parsedNfo = Boolean.FALSE; // was the NFO XML parsed correctly or at all boolean hasXml = Boolean.FALSE; if (StringUtils.containsIgnoreCase(nfoContent, XML_START + DOMHelper.TYPE_MOVIE) || StringUtils.containsIgnoreCase(nfoContent, XML_START + DOMHelper.TYPE_TVSHOW) || StringUtils.containsIgnoreCase(nfoContent, XML_START + DOMHelper.TYPE_EPISODE)) { hasXml = Boolean.TRUE; } // If the file has XML tags in it, try reading it as a pure XML file if (hasXml) { parsedNfo = this.readXmlNfo(nfoFile, nfoContent, nfoFilename, dto); } // If it has XML in it, but didn't parse correctly, try splitting it out if (hasXml && !parsedNfo) { int posMovie = findPosition(nfoContent, DOMHelper.TYPE_MOVIE); int posTv = findPosition(nfoContent, DOMHelper.TYPE_TVSHOW); int posEp = findPosition(nfoContent, DOMHelper.TYPE_EPISODE); int start = Math.min(posMovie, Math.min(posTv, posEp)); posMovie = StringUtils.indexOf(nfoContent, XML_END + DOMHelper.TYPE_MOVIE); posTv = StringUtils.indexOf(nfoContent, XML_END + DOMHelper.TYPE_TVSHOW); posEp = StringUtils.indexOf(nfoContent, XML_END + DOMHelper.TYPE_EPISODE); int end = Math.max(posMovie, Math.max(posTv, posEp)); if ((end > -1) && (end > start)) { end = StringUtils.indexOf(nfoContent, '>', end) + 1; // Send text to be read String nfoTrimmed = StringUtils.substring(nfoContent, start, end); parsedNfo = readXmlNfo(null, nfoTrimmed, nfoFilename, dto); nfoTrimmed = StringUtils.remove(nfoContent, nfoTrimmed); if (parsedNfo && StringUtils.isNotBlank(nfoTrimmed)) { // we have some text left, so scan that with the text scanner readTextNfo(nfoTrimmed, dto); } } } // If the XML wasn't found or parsed correctly, then fall back to the old method if (parsedNfo) { LOG.debug("Successfully scanned {} as XML format", nfoFilename); } else { // If the XML wasn't found or parsed correctly, then fall back to the old method parsedNfo = readTextNfo(nfoContent, dto); if (parsedNfo) { LOG.debug("Successfully scanned {} as text format", nfoFilename); } else { LOG.warn("Failed to find any information in {}", nfoFilename); try { stageFile.setStatus(StatusType.INVALID); this.stagingService.updateStageFile(stageFile); } catch (Exception ignore) { // error can be ignored cause will be retried later } } } }
From source file:password.pwm.util.java.StringUtil.java
public static String[] createStringChunks(final String str, final int size) { if (size <= 0 || str == null || str.length() <= size) { return new String[] { str }; }//from w w w . j a va 2s . c o m final int numOfChunks = str.length() - size + 1; final Set<String> chunks = new HashSet<>(numOfChunks); for (int i = 0; i < numOfChunks; i++) { chunks.add(StringUtils.substring(str, i, i + size)); } return chunks.toArray(new String[numOfChunks]); }
From source file:password.pwm.util.StringUtil.java
public static String[] createStringChunks(String str, int size) { if (size <= 0 || str == null || str.length() <= size) { return new String[] { str }; }//from w w w. ja v a 2 s . c o m int numOfChunks = str.length() - size + 1; Set<String> chunks = new HashSet<>(numOfChunks); for (int i = 0; i < numOfChunks; i++) { chunks.add(StringUtils.substring(str, i, i + size)); } return chunks.toArray(new String[numOfChunks]); }
From source file:tw.edu.chit.struts.action.course.ReportPrintAction.java
/** * ?/*from w w w. j a v a 2s .c om*/ * * @param mapping org.apache.struts.action.ActionMapping object * @param form org.apache.struts.action.ActionForm object * @param request request javax.servlet.http.HttpServletRequest object * @param response response javax.servlet.http.HttpServletResponse object * @param sterm */ @SuppressWarnings("unchecked") private void printCalculate(ActionMapping mapping, DynaActionForm form, HttpServletRequest request, HttpServletResponse response, String sterm) throws Exception { HttpSession session = request.getSession(false); AdminManager am = (AdminManager) getBean(ADMIN_MANAGER_BEAN_NAME); MemberManager mm = (MemberManager) getBean(IConstants.MEMBER_MANAGER_BEAN_NAME); CourseManager cm = (CourseManager) getBean(IConstants.COURSE_MANAGER_BEAN_NAME); ScoreManager sm = (ScoreManager) getBean(IConstants.SCORE_MANAGER_BEAN_NAME); ServletContext context = request.getSession().getServletContext(); String thisYear = cm.getSchoolYear().toString(); String thisTerm = am.findTermBy(PARAMETER_SCHOOL_TERM); List<Clazz> clazzes = sm.findClassBy(new Clazz(processClassInfo(form)), getUserCredential(session).getClassInChargeAry(), false); int thisTermCounts = 0, lastTermCounts = 0; String departClass = null, deptCode = null, histDeptCode = null, currentDeptCode = null, chiName = null; ScoreHist scoreHist = null; List<Student> students = null; List<ScoreHist> scoreHistList = null; List<Map> seldInfo = null; List csnos = null; if (!clazzes.isEmpty()) { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("?"); sheet.setColumnWidth(0, 3000); sheet.setColumnWidth(1, 3000); sheet.setColumnWidth(2, 5000); sheet.setColumnWidth(3, 5000); sheet.setColumnWidth(4, 5000); sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 4)); HSSFFont fontSize16 = workbook.createFont(); fontSize16.setFontHeightInPoints((short) 16); fontSize16.setFontName("Arial Unicode MS"); HSSFFont fontSize10 = workbook.createFont(); fontSize10.setFontHeightInPoints((short) 10); fontSize10.setFontName("Arial Unicode MS"); // Header Toolket.setCellValue(workbook, sheet, 0, 0, "?", fontSize16, HSSFCellStyle.ALIGN_CENTER, false, 35.0F, null); // Column Header Toolket.setCellValue(workbook, sheet, 1, 0, "", fontSize10, HSSFCellStyle.ALIGN_CENTER, true, null); Toolket.setCellValue(workbook, sheet, 1, 1, "??", fontSize10, HSSFCellStyle.ALIGN_CENTER, true, null); Toolket.setCellValue(workbook, sheet, 1, 2, "?", fontSize10, HSSFCellStyle.ALIGN_CENTER, true, null); Toolket.setCellValue(workbook, sheet, 1, 3, "??", fontSize10, HSSFCellStyle.ALIGN_CENTER, true, null); Toolket.setCellValue(workbook, sheet, 1, 4, "?", fontSize10, HSSFCellStyle.ALIGN_CENTER, true, null); int index = 2; for (Clazz clazz : clazzes) { departClass = clazz.getClassNo(); deptCode = StringUtils.substring(departClass, 3, 4); if (Toolket.isDelayClass(departClass) || Toolket.isLiteracyClass(departClass)) continue; students = mm.findStudentsByClassNo(departClass); if (!students.isEmpty()) { if (thisYear.equals(request.getParameter("year")) && thisTerm.equals(sterm)) { // (Seld) for (Student student : students) { seldInfo = cm.findStudentSeldCourse(student.getStudentNo(), sterm); if (!seldInfo.isEmpty()) { for (Map m : seldInfo) { currentDeptCode = StringUtils.substring((String) m.get("depart_class"), 3, 4); if (!deptCode.equalsIgnoreCase(currentDeptCode) && !Toolket.isLiteracyClass((String) m.get("depart_class"))) { thisTermCounts++; Toolket.setCellValue(workbook, sheet, index, 0, student.getStudentNo(), fontSize10, HSSFCellStyle.ALIGN_CENTER, true, null); Toolket.setCellValue(workbook, sheet, index, 1, student.getStudentName(), fontSize10, HSSFCellStyle.ALIGN_CENTER, true, null); Toolket.setCellValue(workbook, sheet, index, 2, Toolket.getClassFullName(student.getDepartClass()), fontSize10, HSSFCellStyle.ALIGN_CENTER, true, null); Toolket.setCellValue(workbook, sheet, index, 3, Toolket.getClassFullName((String) m.get("depart_class")), fontSize10, HSSFCellStyle.ALIGN_CENTER, true, null); Toolket.setCellValue(workbook, sheet, index++, 4, (String) m.get("chi_name"), fontSize10, HSSFCellStyle.ALIGN_CENTER, true, null); break; } } } } } else { // ?(ScoreHist) for (Student student : students) { scoreHist = new ScoreHist(student.getStudentNo()); scoreHist.setSchoolYear((short) Integer.parseInt(request.getParameter("year"))); scoreHist.setSchoolTerm(sterm); scoreHistList = sm.findScoreHistBy(scoreHist); HIST: { if (!scoreHistList.isEmpty()) { for (ScoreHist hist : scoreHistList) { if (StringUtils.isNotBlank(hist.getStdepartClass()) && !Toolket.isLiteracyClass(hist.getStdepartClass())) { histDeptCode = StringUtils.substring(hist.getStdepartClass(), 3, 4); if (!deptCode.equalsIgnoreCase(histDeptCode)) { lastTermCounts++; Toolket.setCellValue(workbook, sheet, index, 0, student.getStudentNo(), fontSize10, HSSFCellStyle.ALIGN_CENTER, true, null); Toolket.setCellValue(workbook, sheet, index, 1, student.getStudentName(), fontSize10, HSSFCellStyle.ALIGN_CENTER, true, null); Toolket.setCellValue(workbook, sheet, index, 2, Toolket.getClassFullName(student.getDepartClass()), fontSize10, HSSFCellStyle.ALIGN_CENTER, true, null); Toolket.setCellValue(workbook, sheet, index, 3, Toolket.getClassFullName(hist.getStdepartClass()), fontSize10, HSSFCellStyle.ALIGN_CENTER, true, null); csnos = cm.getCsnameBy(hist.getCscode()); if (!csnos.isEmpty()) chiName = ((Csno) csnos.get(0)).getChiName(); else chiName = ""; Toolket.setCellValue(workbook, sheet, index++, 4, chiName, fontSize10, HSSFCellStyle.ALIGN_CENTER, true, null); break HIST; } } } } } } } } } File tempDir = new File( context.getRealPath("/WEB-INF/reports/temp/" + getUserCredential(session).getMember().getIdno() + (new SimpleDateFormat("yyyyMMdd").format(new Date())))); if (!tempDir.exists()) tempDir.mkdirs(); File output = new File(tempDir, "Calculate.xls"); FileOutputStream fos = new FileOutputStream(output); workbook.write(fos); fos.close(); JasperReportUtils.printXlsToFrontEnd(response, output); output.delete(); tempDir.delete(); System.out.println("This Term: " + thisTermCounts); System.out.println("Last Term: " + lastTermCounts); } }