List of usage examples for org.apache.commons.lang3 StringUtils trimToNull
public static String trimToNull(final String str)
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 .
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 }