Example usage for org.apache.commons.lang3 StringUtils substring

List of usage examples for org.apache.commons.lang3 StringUtils substring

Introduction

In this page you can find the example usage for org.apache.commons.lang3 StringUtils substring.

Prototype

public static String substring(final String str, int start, int end) 

Source Link

Document

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.

Usage

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);
    }

}