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

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

Introduction

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

Prototype

public static String trimToNull(final String str) 

Source Link

Document

Removes control characters (char <= 32) from both ends of this String returning null if the String is empty ("") after the trim or if it is null .

Usage

From source file:com.widowcrawler.exo.parse.Parser.java

public Sitemap parse(InputStream inputStream) throws XMLStreamException, SitemapParseException {

    final XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(inputStream, "utf-8");

    final Sitemap retval = new Sitemap(new HashSet<>());

    final Set<SitemapURL> sitemapURLs = new HashSet<>();
    SitemapURL.Builder urlBuilder = null;
    String urlContent;//from   w  w w  . java2s.c o  m

    reader.getEventType();

    while (reader.hasNext()) {
        switch (state) {
        case START:
            reader.nextTag();

            if (StringUtils.equalsIgnoreCase(reader.getLocalName(), URLSET_TAG_NAME)) {
                state = State.URLSET;
            } else if (StringUtils.equalsIgnoreCase(reader.getLocalName(), SITEMAPINDEX_TAG_NAME)) {
                state = State.SITEMAPINDEX;
            } else {
                String message = "Invalid root element. Must be either urlset or sitemapindex";
                logger.error(message);
                throw new SitemapParseException(message);
            }

            break;

        case END:
            // consume all end tags
            if (reader.getEventType() != XMLStreamConstants.END_ELEMENT) {
                String message = decorate("There should be only one root element in each sitemap.xml",
                        reader.getLocation());
                logger.error(message);
                throw new SitemapParseException(message);
            }

            reader.next();
            break;

        /////////////////////
        // URLSET Hierarchy
        /////////////////////
        case URLSET:
            // If we're done with the URLs, we're done overall
            if (reader.nextTag() == XMLStreamConstants.END_ELEMENT) {
                state = State.END;
                break;
            }

            // Check that we're entering into a <url> element
            if (!StringUtils.equalsIgnoreCase(reader.getLocalName(), URL_TAG_NAME)) {
                String message = "A <urlset> element can only contain <url> elements. Found: "
                        + reader.getLocalName();
                logger.error(message);
                throw new SitemapParseException(message);
            }

            urlBuilder = new SitemapURL.Builder();
            state = State.URL;
            break;

        case URL:
            reader.nextTag();

            if (reader.getEventType() == XMLStreamConstants.START_ELEMENT) {
                //logger.info("reader.getLocalName(): " + reader.getLocalName());
                switch (StringUtils.lowerCase(reader.getLocalName())) {
                case LOC_TAG_NAME:
                    state = State.URL_PROP_LOC;
                    break;
                case LASTMOD_TAG_NAME:
                    state = State.URL_PROP_LASTMOD;
                    break;
                case CHANGEFREQ_TAG_NAME:
                    state = State.URL_PROP_CHANGEFREQ;
                    break;
                case PRIORITY_TAG_NAME:
                    state = State.URL_PROP_PRIORITY;
                    break;
                case MOBILE_TAG_NAME:
                    state = State.URL_PROP_MOBILE;
                    break;
                default:
                    String message = "Unexpected tag in url: " + reader.getLocalName();
                    logger.error(message);
                    throw new SitemapParseException(message);
                }
            } else if (reader.getEventType() == XMLStreamConstants.END_ELEMENT) {
                // we're done collecting the data for this URL
                assert urlBuilder != null;
                sitemapURLs.add(urlBuilder.build());
                urlBuilder = new SitemapURL.Builder();
                state = State.URLSET;
            }
            break;

        case URL_PROP_LOC:
            urlContent = reader.getElementText();

            try {
                assert urlBuilder != null;
                urlBuilder.withLocation(new URL(StringUtils.trimToNull(urlContent)));

            } catch (MalformedURLException ex) {
                String message = String.format("Malformed URL found: %s", urlContent);
                logger.error(message);
                throw new SitemapParseException(message);
            }
            state = State.URL;
            break;

        case URL_PROP_LASTMOD:
            assert urlBuilder != null;
            urlBuilder.withLastModified(DateTime.parse(reader.getElementText()));
            state = State.URL;
            break;

        case URL_PROP_CHANGEFREQ:
            assert urlBuilder != null;
            urlBuilder.withChangeFrequency(ChangeFreq.valueOf(StringUtils.upperCase(reader.getElementText())));
            state = State.URL;
            break;

        case URL_PROP_PRIORITY:
            assert urlBuilder != null;
            urlBuilder.withPriority(Double.valueOf(reader.getElementText()));
            state = State.URL;
            break;

        case URL_PROP_MOBILE:
            assert urlBuilder != null;
            urlBuilder.withIsMobileContent(true);
            // consume until "end tag" of self-closing tag
            // Also works if someone puts content in
            reader.getElementText();
            state = State.URL;
            break;

        ///////////////////////////
        // SITEMAPINDEX Hierarchy
        ///////////////////////////
        case SITEMAPINDEX:
            // If we're done with all the Sitemaps, we're done overall
            if (reader.nextTag() == XMLStreamConstants.END_ELEMENT) {
                state = State.END;
                break;
            }

            state = State.SITEMAP;
            break;

        case SITEMAP:
            if (!StringUtils.equalsIgnoreCase(reader.getLocalName(), SITEMAP_TAG_NAME)) {
                throw new SitemapParseException("A <sitemapindex> element can only contain <sitemap> elements");
            }

            reader.nextTag();

            if (reader.getEventType() == XMLStreamConstants.START_ELEMENT) {
                switch (StringUtils.lowerCase(reader.getLocalName())) {
                case LOC_TAG_NAME:
                    state = State.URL_PROP_LOC;
                    break;
                case LASTMOD_TAG_NAME:
                    state = State.URL_PROP_LASTMOD;
                    break;
                default:
                    throw new SitemapParseException("Unexpected tag in sitemap: " + reader.getLocalName());
                }
            } else if (reader.getEventType() == XMLStreamConstants.END_ELEMENT) {
                // we're done collecting the data for this URL
                assert urlBuilder != null;
                sitemapURLs.add(urlBuilder.build());
                urlBuilder = new SitemapURL.Builder();
                state = State.URLSET;
            }

        case SITEMAP_PROP_LOC:
            urlContent = reader.getElementText();

            try {
                URL sitemapURL = new URL(StringUtils.trimToNull(urlContent));

                Sitemap temp = Retry.retry(() -> {
                    try {
                        return Exo.parse(sitemapURL.toString());
                    } catch (Exception ex) {
                        throw new RuntimeException(ex);
                    }
                });

                retval.merge(temp);

            } catch (MalformedURLException ex) {
                String message = String.format("Malformed URL found: %s", urlContent);
                logger.error(message);
                throw new SitemapParseException(message);

            } catch (InterruptedException e) {
                logger.warn("Thread interrupted while (re)trying");
                Thread.currentThread().interrupt();

            } catch (RetryFailedException e) {
                String message = String.format("Failed to retrieve sitemap of sitemap index at %s", urlContent);
                logger.error(message);
                throw new SitemapParseException(message);
            }

            state = State.URL;
            break;

        case SITEMAP_PROP_LASTMOD:
            // Do nothing with this data for now
            reader.getElementText();
            break;
        }

        //System.out.println(state);
    }

    return retval.merge(new Sitemap(sitemapURLs));
}

From source file:com.hubrick.vertx.s3.client.S3Client.java

public void getObject(String bucket, String key, GetObjectRequest getObjectRequest,
        Handler<Response<GetObjectResponseHeaders, ReadStream<Buffer>>> handler,
        Handler<Throwable> exceptionHandler) {
    checkNotNull(StringUtils.trimToNull(bucket), "bucket must not be null");
    checkNotNull(StringUtils.trimToNull(key), "key must not be null");
    checkNotNull(getObjectRequest, "getObjectRequest must not be null");
    checkNotNull(handler, "handler must not be null");
    checkNotNull(exceptionHandler, "exceptionHandler must not be null");

    final S3ClientRequest request = createGetRequest(bucket, key, getObjectRequest, new StreamResponseHandler(
            "getObject", jaxbUnmarshaller, new GetResponseHeadersMapper(), handler, exceptionHandler));
    request.exceptionHandler(exceptionHandler);
    request.end();/*w w w . ja v  a2 s  .c o m*/
}

From source file:com.moviejukebox.scanner.WatchedScanner.java

private static boolean isMatchingMovie(TrackedMovie tracked, Movie movie) {
    final Ids ids = tracked.getMovie().getIds();
    final String traktId = StringUtils.trimToNull(movie.getId(TraktTV.SCANNER_ID));
    final String tmdbId = StringUtils.trimToNull(movie.getId(TheMovieDbPlugin.TMDB_PLUGIN_ID));
    final String imdbId = StringUtils.trimToNull(movie.getId(ImdbPlugin.IMDB_PLUGIN_ID));

    if (ids.trakt() != null && StringUtils.equals(traktId, ids.trakt().toString())) {
        return true;
    }//  ww w  .  j  a va2s . c om
    if (ids.slug() != null && StringUtils.equalsIgnoreCase(traktId, ids.slug())) {
        setTraktId(ids, traktId, movie);
        return true;
    }
    if (ids.tmdb() != null && StringUtils.equals(tmdbId, ids.tmdb().toString())) {
        setTraktId(ids, traktId, movie);
        return true;
    }
    if (ids.imdb() != null && StringUtils.equalsIgnoreCase(imdbId, ids.imdb())) {
        setTraktId(ids, traktId, movie);
        return true;
    }
    return false;
}

From source file:com.hubrick.vertx.s3.client.S3Client.java

public void getObjectAcl(String bucket, String key,
        Handler<Response<CommonResponseHeaders, AccessControlPolicy>> handler,
        Handler<Throwable> exceptionHandler) {
    checkNotNull(StringUtils.trimToNull(bucket), "bucket must not be null");
    checkNotNull(StringUtils.trimToNull(key), "key must not be null");
    checkNotNull(handler, "handler must not be null");
    checkNotNull(exceptionHandler, "exceptionHandler must not be null");

    final S3ClientRequest request = createGetAclRequest(bucket, key, new XmlBodyResponseHandler<>(
            "getObjectAcl", jaxbUnmarshaller, new CommonResponseHeadersMapper(), handler, exceptionHandler));
    request.exceptionHandler(exceptionHandler);
    request.end();/*  w  w w .  j a  va2  s  . c o  m*/
}

From source file:de.micromata.genome.tpsb.htmlunit.HtmlPageBase.java

public <X extends HtmlPageBase<?>> X doLinkByHref(String href, Class<X> targetClazz) {
    try {//from  w ww .  j  a v a 2  s.  com
        String pureLink = href;
        String command = null;
        int idx = href.indexOf('?');
        if (idx != -1) {
            pureLink = href.substring(0, idx);
            command = StringUtils.trimToNull(href.substring(idx + 1));
        }

        List<HtmlAnchor> anchors = getHtmlPage().getAnchors();
        for (HtmlAnchor a : anchors) {
            String hrf = a.getHrefAttribute();
            if (hrf.startsWith(pureLink) == true && (command == null || href.contains(command) == true)) {
                HtmlPage target = (HtmlPage) getHtmlPage().getAnchorByHref(a.getHrefAttribute()).click();
                return createPage(webApp, target, targetClazz);
            }
        }
        throw new HtmlPageException("HREF not found: " + href, this);
    } catch (RuntimeException ex) {
        throw ex;
    } catch (Exception ex) {
        throw new TpsbException(ex, this);
    }
}

From source file:hoot.services.writers.review.ReviewPrepareDbWriter2.java

@Override
protected boolean parseElementReviewTags(final long mapId) throws Exception {
    final String logMsgStart = "Parsing element review tags for map with ID: " + mapId + ".  Step 3 of 4.";
    log.info(logMsgStart);/*from   www.j a  v a2s  . com*/
    //SQLQuery query = new SQLQuery(conn, DbUtils.getConfiguration());
    //parse review tags for all nodes, ways, and relations from the OSM element tables for the given
    //map
    reviewRecordsParsed = 0;
    reviewRecordWritten = false;
    List<ReviewItems> reviewRecordsToInsert = new ArrayList<ReviewItems>();
    //create this outside of the batch read loop, since we need to maintain a list of unique
    //ID's parsed over the entire map's set of reviewable records
    reviewableItemIdToReviewAgainstItemIds = ArrayListMultimap.create();
    reviewableItemIdToReviewAgainstItemIds.putAll(previouslyReviewedItemIdToReviewAgainstItemIds);

    int numReviewItemsAdded = 0;
    for (ElementType elementType : ElementType.values()) {
        if (!elementType.equals(ElementType.Changeset)) {
            //final Element prototype = ElementFactory.getInstance().create(elementType, conn);

            int numElementsReturned = Integer.MAX_VALUE;
            int elementIndex = 0;
            while (numElementsReturned > 0) {
                //get a batch of reviewable elements
                final Map<Long, Object> reviewableElementRecords = getReviewableElementRecords(mapId,
                        elementType, maxRecordSelectSize, elementIndex);
                numElementsReturned = reviewableElementRecords.size();
                elementIndex += numElementsReturned;
                for (Map.Entry<Long, Object> reviewableElementRecordEntry : reviewableElementRecords
                        .entrySet()) {
                    final Object reviewableElementRecord = reviewableElementRecordEntry.getValue();
                    final Map<String, String> tags = PostgresUtils.postgresObjToHStore((PGobject) MethodUtils
                            .invokeMethod(reviewableElementRecord, "getTags", new Object[] {}));
                    final String reviewableItemIdStr = StringUtils.trimToNull(tags.get("uuid"));
                    if (StringUtils.isEmpty(reviewableItemIdStr)) {
                        log.warn("Invalid UUID: " + reviewableItemIdStr + " for map with ID: " + mapId
                                + " Skipping adding review record...");
                    } else {
                        //In the case of the fuzzy match conflict example, this ID may be made up of multiple
                        //parts.  Treat each ID part separately.  TODO: add test for this case
                        String[] reviewableItemIds = null;
                        if (reviewableItemIdStr.contains(";")) {
                            log.debug("Multiple part reviewable item ID...");
                            reviewableItemIds = reviewableItemIdStr.split(";");
                        } else {
                            reviewableItemIds = new String[1];
                            reviewableItemIds[0] = reviewableItemIdStr;
                        }

                        for (String reviewableItemId : reviewableItemIds) {
                            //some items won't have a review score tag; For now, the way this is being handled
                            //is that items missing a tag get a review score = 1.0; items with an empty string
                            //or invalid string for a review tag get a review score of -1.0, which invalidates
                            //the review pair.  The case could be argued that invalid/empty score strings should
                            //also result in a review score = 1.0.
                            double reviewScore = -1.0;
                            if (tags.containsKey("hoot:review:score")) {
                                try {
                                    reviewScore = Double.parseDouble(tags.get("hoot:review:score"));
                                } catch (NumberFormatException e) {
                                }
                            } else {
                                reviewScore = 1.0;
                            }

                            if (reviewScore != -1.0 && tags.containsKey("hoot:review:uuid")
                                    && StringUtils.trimToNull(tags.get("hoot:review:uuid")) != null) {
                                String[] reviewAgainstItemIds = null;
                                final String itemsToReviewAgainstStr = StringUtils
                                        .trimToNull(tags.get("hoot:review:uuid"));
                                //We are parsing pairwise comparisons and don't want duplicates, so ignore one
                                //to many reviewable item to review against item relationships.  They are always
                                //represented with a duplicated one to one relationship in the data.
                                if (!itemsToReviewAgainstStr.contains(";")) {
                                    reviewAgainstItemIds = new String[] { itemsToReviewAgainstStr };
                                } else {
                                    reviewAgainstItemIds = itemsToReviewAgainstStr.split(";");
                                }

                                for (int i = 0; i < reviewAgainstItemIds.length; i++) {
                                    final String reviewAgainstItemId = reviewAgainstItemIds[i];
                                    //TODO: I believe this check is not correct, but I know of no other way to handle
                                    //this for now...
                                    //TODO: make this a batch query somehow
                                    if (new SQLQuery(conn, DbUtils.getConfiguration(mapId))
                                            .from(elementIdMappings)
                                            .where(elementIdMappings.mapId.eq(mapId)
                                                    .and(elementIdMappings.elementId.eq(reviewAgainstItemId)))
                                            .count() == 0) {
                                        log.warn(
                                                "No element ID mapping exists for review against item with ID: "
                                                        + reviewAgainstItemId + " for map with ID: " + mapId
                                                        + ".  Skipping adding " + "review record...");
                                    } else {
                                        if (!reviewPairAlreadyParsed(reviewableItemId, reviewAgainstItemId)) {
                                            log.debug("Adding review item with reviewable item ID: "
                                                    + reviewableItemId + " and " + "review against item ID: "
                                                    + reviewAgainstItemId);
                                            reviewRecordsToInsert.add(createReviewItemRecord(reviewableItemId,
                                                    reviewScore, reviewAgainstItemId, mapId));
                                            reviewableItemIdToReviewAgainstItemIds.put(reviewableItemId,
                                                    reviewAgainstItemId);
                                            flushReviewRecords(reviewRecordsToInsert, maxRecordBatchSize,
                                                    logMsgStart);
                                            numReviewItemsAdded++;
                                        }
                                    }
                                }
                            } else if (!tags.containsKey("hoot:review:uuid")
                                    || StringUtils.trimToNull(tags.get("hoot:review:uuid")) == null) {
                                if (!reviewPairAlreadyParsed(reviewableItemId, reviewableItemId)) {
                                    log.debug("Adding review item with reviewable item ID: " + reviewableItemId
                                            + " and " + "review against item ID: " + reviewableItemId);
                                    reviewRecordsToInsert.add(createReviewItemRecord(reviewableItemId,
                                            reviewScore, reviewableItemId, mapId));
                                    reviewableItemIdToReviewAgainstItemIds.put(reviewableItemId,
                                            reviewableItemId);
                                    flushReviewRecords(reviewRecordsToInsert, maxRecordBatchSize, logMsgStart);
                                    numReviewItemsAdded++;
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    //final flush
    flushReviewRecords(reviewRecordsToInsert, 0, logMsgStart);

    log.debug("Wrote " + numReviewItemsAdded + " review items.");

    if (simulateFailure) {
        throw new Exception("Simulated test review data parse failure.");
    }

    return reviewRecordWritten;
}

From source file:com.thruzero.common.core.infonode.builder.TokenStreamInfoNodeBuilder.java

/** Remove single quotes from start and end of the given string. */
private String trimQuotes(String value) {
    // TODO-p1(george) Rewrite this using RegEx
    value = StringUtils.trimToNull(value);
    value = StringUtils.removeStart(value, "'");
    value = StringUtils.removeStart(value, "\"");
    value = StringUtils.removeEnd(value, "'");
    value = StringUtils.removeEnd(value, "\"");

    return value;
}

From source file:com.moviejukebox.scanner.WatchedScanner.java

private static boolean isMatchingShow(TrackedShow tracked, Movie movie) {
    final Ids ids = tracked.getShow().getIds();
    final String traktId = StringUtils.trimToNull(movie.getId(TraktTV.SCANNER_ID));
    final String tvdbId = StringUtils.trimToNull(movie.getId(TheTvDBPlugin.THETVDB_PLUGIN_ID));
    final String tvRageId = StringUtils.trimToNull(movie.getId(TVRagePlugin.TVRAGE_PLUGIN_ID));
    final String tmdbId = StringUtils.trimToNull(movie.getId(TheMovieDbPlugin.TMDB_PLUGIN_ID));
    final String imdbId = StringUtils.trimToNull(movie.getId(ImdbPlugin.IMDB_PLUGIN_ID));

    if (ids.trakt() != null && StringUtils.equals(traktId, ids.trakt().toString())) {
        return true;
    }// www  . j a va  2  s.  co m
    if (ids.slug() != null && StringUtils.equalsIgnoreCase(traktId, ids.slug())) {
        setTraktId(ids, traktId, movie);
        return true;
    }
    if (ids.tvdb() != null && StringUtils.equals(tvdbId, ids.tvdb().toString())) {
        setTraktId(ids, traktId, movie);
        return true;
    }
    if (ids.tvRage() != null && StringUtils.equalsIgnoreCase(tvRageId, ids.tvRage())) {
        setTraktId(ids, traktId, movie);
        return true;
    }
    if (ids.tmdb() != null && StringUtils.equals(tmdbId, ids.tmdb().toString())) {
        setTraktId(ids, traktId, movie);
        return true;
    }
    if (ids.imdb() != null && StringUtils.equalsIgnoreCase(imdbId, ids.imdb())) {
        setTraktId(ids, traktId, movie);
        return true;
    }
    return false;
}

From source file:com.epam.catgenome.manager.wig.WigManager.java

protected String parseName(final String fileName, final String alternativeName) {
    boolean supported = false;
    for (final String ext : WIG_EXTENSIONS) {
        if (fileName.endsWith(ext)) {
            supported = true;//  w w w  .  j  ava2  s.  c  o  m
            break;
        }
    }
    if (!supported) {
        throw new IllegalArgumentException(
                getMessage("error.illegal.file.type", StringUtils.join(WIG_EXTENSIONS, ", ")));
    }
    return StringUtils.defaultString(StringUtils.trimToNull(alternativeName), fileName);
}

From source file:com.hubrick.vertx.s3.client.S3Client.java

public void headObject(String bucket, String key, HeadObjectRequest headObjectRequest,
        Handler<Response<HeadObjectResponseHeaders, Void>> handler, Handler<Throwable> exceptionHandler) {
    checkNotNull(StringUtils.trimToNull(bucket), "bucket must not be null");
    checkNotNull(StringUtils.trimToNull(key), "key must not be null");
    checkNotNull(headObjectRequest, "headObjectRequest must not be null");
    checkNotNull(handler, "handler must not be null");
    checkNotNull(exceptionHandler, "exceptionHandler must not be null");

    final S3ClientRequest request = createHeadRequest(bucket, key, headObjectRequest,
            new HeadersResponseHandler("headObject", jaxbUnmarshaller, new HeadResponseHeadersMapper(), handler,
                    exceptionHandler, true));
    request.exceptionHandler(exceptionHandler);
    request.end();//from  w ww  . ja  v  a2  s  .  c om
}