List of usage examples for org.apache.commons.lang3.math NumberUtils toFloat
public static float toFloat(final String str, final float defaultValue)
Convert a String
to a float
, returning a default value if the conversion fails.
If the string str
is null
, the default value is returned.
NumberUtils.toFloat(null, 1.1f) = 1.0f NumberUtils.toFloat("", 1.1f) = 1.1f NumberUtils.toFloat("1.5", 0.0f) = 1.5f
From source file:com.netsteadfast.greenstep.bsc.util.AggregationMethod.java
public void maxDateRange(KpiVO kpi, String frequency) throws Exception { BscReportSupportUtils.loadExpression(); for (DateRangeScoreVO dateScore : kpi.getDateRangeScores()) { float score = 0.0f; float nowScore = 0.0f; int size = 0; for (BbMeasureData measureData : kpi.getMeasureDatas()) { String date = dateScore.getDate().replaceAll("/", ""); if (!this.isDateRange(date, frequency, measureData)) { continue; }/*from ww w. j a va 2s .c om*/ BscMeasureData data = new BscMeasureData(); data.setActual(measureData.getActual()); data.setTarget(measureData.getTarget()); try { Object value = BscFormulaUtils.parse(kpi.getFormula(), data); if (value == null) { continue; } if (!NumberUtils.isNumber(String.valueOf(value))) { continue; } nowScore = NumberUtils.toFloat(String.valueOf(value), 0.0f); if (size < 1) { score = nowScore; } else { // Max if (score < nowScore) { score = nowScore; } } size++; } catch (Exception e) { e.printStackTrace(); } } dateScore.setScore(score); dateScore.setFontColor(BscScoreColorUtils.getFontColor(score)); dateScore.setBgColor(BscScoreColorUtils.getBackgroundColor(score)); dateScore.setImgIcon(BscReportSupportUtils.getHtmlIcon(kpi, score)); } }
From source file:com.netsteadfast.greenstep.bsc.util.AggregationMethod.java
public float min(KpiVO kpi) throws Exception { List<BbMeasureData> measureDatas = kpi.getMeasureDatas(); float score = 0.0f; // init int size = 0; float nowScore = 0.0f; for (BbMeasureData measureData : measureDatas) { BscMeasureData data = new BscMeasureData(); data.setActual(measureData.getActual()); data.setTarget(measureData.getTarget()); try {/*w w w . j a v a 2 s . c o m*/ Object value = BscFormulaUtils.parse(kpi.getFormula(), data); if (value == null) { continue; } if (!NumberUtils.isNumber(String.valueOf(value))) { continue; } nowScore = NumberUtils.toFloat(String.valueOf(value), 0.0f); if (size < 1) { score = nowScore; } else { // Min if (score > nowScore) { score = nowScore; } } size++; } catch (Exception e) { e.printStackTrace(); } } return score; }
From source file:com.moviejukebox.plugin.ComingSoonPlugin.java
protected boolean updateComingSoonMediaInfo(Movie movie) { if (movie.getId(COMINGSOON_PLUGIN_ID).equalsIgnoreCase(COMINGSOON_NOT_PRESENT)) { return false; }/*from ww w . ja v a 2s.c o m*/ String xml; try { String movieURL = COMINGSOON_BASE_URL + COMINGSOON_FILM_URL + COMINGSOON_KEY_PARAM + movie.getId(COMINGSOON_PLUGIN_ID); LOG.debug("Querying ComingSoon for {}", movieURL); xml = httpClient.request(movieURL); } catch (IOException ex) { LOG.error("Failed retreiving ComingSoon data for movie : {}", movie.getId(COMINGSOON_PLUGIN_ID)); LOG.error(SystemTools.getStackTrace(ex)); return false; } // TITLE if (OverrideTools.checkOverwriteTitle(movie, COMINGSOON_PLUGIN_ID)) { int beginIndex = xml.indexOf("<h1 itemprop=\"name\""); if (beginIndex < 0) { LOG.error("No title found at ComingSoon page. HTML layout has changed?"); return false; } String tag = xml.substring(beginIndex, xml.indexOf(">", beginIndex) + 1); String title = HTMLTools.extractTag(xml, tag, "</h1>").trim(); if (StringTools.isNotValidString(title)) { return false; } movie.setTitle(WordUtils.capitalizeFully(title), COMINGSOON_PLUGIN_ID); } // ORIGINAL TITLE if (OverrideTools.checkOverwriteOriginalTitle(movie, COMINGSOON_PLUGIN_ID)) { String originalTitle = HTMLTools.extractTag(xml, "Titolo originale:", "</p>").trim(); if (originalTitle.startsWith("(")) { originalTitle = originalTitle.substring(1, originalTitle.length() - 1).trim(); } movie.setOriginalTitle(originalTitle, COMINGSOON_PLUGIN_ID); } // RATING if (movie.getRating(COMINGSOON_PLUGIN_ID) == -1) { String rating = HTMLTools.extractTag(xml, "<span itemprop=\"ratingValue\">", "</span>"); if (StringTools.isValidString(rating)) { int ratingInt = (int) (NumberUtils.toFloat(rating.replace(',', '.'), 0) * 20); // Rating is 0 to 5, we normalize to 100 if (ratingInt > 0) { movie.addRating(COMINGSOON_PLUGIN_ID, ratingInt); } } } // RELEASE DATE if (OverrideTools.checkOverwriteReleaseDate(movie, COMINGSOON_PLUGIN_ID)) { String releaseDate = HTMLTools .stripTags(HTMLTools.extractTag(xml, "<time itemprop=\"datePublished\">", "</time>")); movie.setReleaseDate(releaseDate, COMINGSOON_PLUGIN_ID); } // RUNTIME if (OverrideTools.checkOverwriteRuntime(movie, COMINGSOON_PLUGIN_ID)) { String runTime = HTMLTools.stripTags(HTMLTools.extractTag(xml, ">DURATA</span>:", HTML_LI)); if (StringTools.isValidString(runTime)) { StringTokenizer st = new StringTokenizer(runTime); movie.setRuntime(st.nextToken(), COMINGSOON_PLUGIN_ID); } } // COUNTRY if (OverrideTools.checkOverwriteCountry(movie, COMINGSOON_PLUGIN_ID)) { String country = HTMLTools.stripTags(HTMLTools.extractTag(xml, ">PAESE</span>:", HTML_LI)).trim(); movie.setCountries(country, COMINGSOON_PLUGIN_ID); } // YEAR if (OverrideTools.checkOverwriteYear(movie, COMINGSOON_PLUGIN_ID)) { String year = HTMLTools.stripTags(HTMLTools.extractTag(xml, ">ANNO</span>:", HTML_LI)).trim(); if (NumberUtils.toInt(year, 0) > 1900) { movie.setYear(year, COMINGSOON_PLUGIN_ID); } } // COMPANY if (OverrideTools.checkOverwriteCompany(movie, COMINGSOON_PLUGIN_ID)) { // TODO: Add more than one company when available in Movie model String companies = HTMLTools.stripTags(HTMLTools.extractTag(xml, ">PRODUZIONE</span>: ", HTML_LI)); StringTokenizer st = new StringTokenizer(companies, ","); if (st.hasMoreTokens()) { movie.setCompany(st.nextToken().trim(), COMINGSOON_PLUGIN_ID); } else { movie.setCompany(companies.trim(), COMINGSOON_PLUGIN_ID); } } // GENRES if (OverrideTools.checkOverwriteGenres(movie, COMINGSOON_PLUGIN_ID)) { String genreList = HTMLTools.stripTags(HTMLTools.extractTag(xml, ">GENERE</span>: ", HTML_LI)); if (StringTools.isValidString(genreList)) { Collection<String> genres = new ArrayList<>(); StringTokenizer st = new StringTokenizer(genreList, ","); while (st.hasMoreTokens()) { genres.add(st.nextToken().trim()); } movie.setGenres(genres, COMINGSOON_PLUGIN_ID); } } // PLOT AND OUTLINE if (OverrideTools.checkOneOverwrite(movie, COMINGSOON_PLUGIN_ID, OverrideFlag.PLOT, OverrideFlag.OUTLINE)) { int beginIndex = xml.indexOf("<div class=\"contenuto-scheda-destra"); if (beginIndex < 0) { LOG.error("No plot found at ComingSoon page. HTML layout has changed?"); return false; } int endIndex = xml.indexOf("<div class=\"box-descrizione\"", beginIndex); if (endIndex < 0) { LOG.error("No plot found at ComingSoon page. HTML layout has changed?"); return false; } final String xmlPlot = HTMLTools .stripTags(HTMLTools.extractTag(xml.substring(beginIndex, endIndex), "<p>", "</p>")); if (OverrideTools.checkOverwritePlot(movie, COMINGSOON_PLUGIN_ID)) { movie.setPlot(xmlPlot, COMINGSOON_PLUGIN_ID); } if (OverrideTools.checkOverwriteOutline(movie, COMINGSOON_PLUGIN_ID)) { movie.setOutline(xmlPlot, COMINGSOON_PLUGIN_ID); } } // DIRECTOR(S) boolean overrideDirectors = OverrideTools.checkOverwriteDirectors(movie, COMINGSOON_PLUGIN_ID); boolean overridePeopleDirectors = OverrideTools.checkOverwritePeopleDirectors(movie, COMINGSOON_PLUGIN_ID); if (overrideDirectors || overridePeopleDirectors) { String directorList = HTMLTools.stripTags(HTMLTools.extractTag(xml, ">REGIA</span>:", HTML_LI)); List<String> newDirectors = new ArrayList<>(); if (directorList.contains(",")) { StringTokenizer st = new StringTokenizer(directorList, ","); while (st.hasMoreTokens()) { newDirectors.add(st.nextToken()); } } else { newDirectors.add(directorList); } if (overrideDirectors) { movie.setDirectors(newDirectors, COMINGSOON_PLUGIN_ID); } if (overridePeopleDirectors) { movie.setPeopleDirectors(newDirectors, COMINGSOON_PLUGIN_ID); } } // WRITER(S) boolean overrideWriters = OverrideTools.checkOverwriteWriters(movie, COMINGSOON_PLUGIN_ID); boolean overridePeopleWriters = OverrideTools.checkOverwritePeopleWriters(movie, COMINGSOON_PLUGIN_ID); if (overrideWriters || overridePeopleWriters) { String writerList = HTMLTools.stripTags(HTMLTools.extractTag(xml, ">SCENEGGIATURA</span>:", HTML_LI)); List<String> newWriters = new ArrayList<>(); if (writerList.contains(",")) { StringTokenizer st = new StringTokenizer(writerList, ","); while (st.hasMoreTokens()) { newWriters.add(st.nextToken()); } } else { newWriters.add(writerList); } if (overrideWriters) { movie.setWriters(newWriters, COMINGSOON_PLUGIN_ID); } if (overridePeopleWriters) { movie.setPeopleWriters(newWriters, COMINGSOON_PLUGIN_ID); } } // CAST boolean overrideActors = OverrideTools.checkOverwriteActors(movie, COMINGSOON_PLUGIN_ID); boolean overridePeopleActors = OverrideTools.checkOverwritePeopleActors(movie, COMINGSOON_PLUGIN_ID); if (overrideActors || overridePeopleActors) { String castList = HTMLTools.stripTags(HTMLTools.extractTag(xml, ">ATTORI</span>: ", HTML_LI)); List<String> newActors = new ArrayList<>(); if (castList.contains(",")) { StringTokenizer st = new StringTokenizer(castList, ","); while (st.hasMoreTokens()) { newActors.add(HTMLTools.stripTags(st.nextToken())); } } else { newActors.add(HTMLTools.stripTags(castList)); } if (overrideActors) { movie.setCast(newActors, COMINGSOON_PLUGIN_ID); } if (overridePeopleActors) { movie.setPeopleCast(newActors, COMINGSOON_PLUGIN_ID); } } return true; }
From source file:com.moviejukebox.plugin.TheTvDBPlugin.java
/** * Locate the specific DVD episode from the list of episodes * * @param episodeList// ww w .j av a2 s . c o m * @param seasonNumber * @param episodeNumber * @return */ private static Episode findDvdEpisode(List<Episode> episodeList, int seasonNumber, int episodeNumber) { if (episodeList == null || episodeList.isEmpty()) { return null; } for (Episode episode : episodeList) { int dvdSeason = NumberUtils.toInt(episode.getDvdSeason(), -1); int dvdEpisode = (int) NumberUtils.toFloat(episode.getDvdEpisodeNumber(), -1.0f); if ((dvdSeason == seasonNumber) && (dvdEpisode == episodeNumber)) { return episode; } } return null; }
From source file:com.netsteadfast.greenstep.bsc.util.AggregationMethod.java
public void minDateRange(KpiVO kpi, String frequency) throws Exception { BscReportSupportUtils.loadExpression(); for (DateRangeScoreVO dateScore : kpi.getDateRangeScores()) { float score = 0.0f; float nowScore = 0.0f; int size = 0; for (BbMeasureData measureData : kpi.getMeasureDatas()) { String date = dateScore.getDate().replaceAll("/", ""); if (!this.isDateRange(date, frequency, measureData)) { continue; }// ww w . ja va 2s . com BscMeasureData data = new BscMeasureData(); data.setActual(measureData.getActual()); data.setTarget(measureData.getTarget()); try { Object value = BscFormulaUtils.parse(kpi.getFormula(), data); if (value == null) { continue; } if (!NumberUtils.isNumber(String.valueOf(value))) { continue; } nowScore = NumberUtils.toFloat(String.valueOf(value), 0.0f); if (size < 1) { score = nowScore; } else { // Min if (score > nowScore) { score = nowScore; } } size++; } catch (Exception e) { e.printStackTrace(); } } dateScore.setScore(score); dateScore.setFontColor(BscScoreColorUtils.getFontColor(score)); dateScore.setBgColor(BscScoreColorUtils.getBackgroundColor(score)); dateScore.setImgIcon(BscReportSupportUtils.getHtmlIcon(kpi, score)); } }
From source file:com.netsteadfast.greenstep.bsc.util.AggregationMethod.java
public float sum(KpiVO kpi) throws Exception { List<BbMeasureData> measureDatas = kpi.getMeasureDatas(); float score = 0.0f; // init //int size = 0; for (BbMeasureData measureData : measureDatas) { BscMeasureData data = new BscMeasureData(); data.setActual(measureData.getActual()); data.setTarget(measureData.getTarget()); try {/*from ww w.jav a 2 s.c o m*/ Object value = BscFormulaUtils.parse(kpi.getFormula(), data); if (value == null) { continue; } if (!NumberUtils.isNumber(String.valueOf(value))) { continue; } score += NumberUtils.toFloat(String.valueOf(value), 0.0f); //size++; } catch (Exception e) { e.printStackTrace(); } } return score; }
From source file:com.moviejukebox.reader.MovieNFOReader.java
/** * Parse the XML document for NFO information * * @param xmlDoc// w ww . jav a 2s .c o m * @param movie * @param nfoFilename * @return */ private static boolean parseXmlNfo(Document xmlDoc, Movie movie, String nfoFilename) { NodeList nlMovies; // Determine if the NFO file is for a TV Show or Movie so the default ID can be set boolean isTv = xmlDoc.getElementsByTagName(TYPE_TVSHOW).getLength() > 0; // Issue 2559, check in NFO if the movie is a TV show, even if no Season/Episode are in filename if (movie.isTVShow() || isTv) { nlMovies = xmlDoc.getElementsByTagName(TYPE_TVSHOW); isTv = Boolean.TRUE; movie.setMovieType(Movie.TYPE_TVSHOW); // Issue 2559, check in NFO if the movie is a TV show, and override the type } else { nlMovies = xmlDoc.getElementsByTagName(TYPE_MOVIE); isTv = Boolean.FALSE; } // Issue 2542: There should only be 1 movie/tvshow node in the NFO if (nlMovies.getLength() > 0) { Node nMovie = nlMovies.item(0); if (nMovie.getNodeType() == Node.ELEMENT_NODE) { Element eCommon = (Element) nMovie; // Get all of the title elements from the NFO file parseTitle(eCommon, movie); if (OverrideTools.checkOverwriteYear(movie, NFO_PLUGIN_ID)) { String tempYear = DOMHelper.getValueFromElement(eCommon, "year"); if (!parseYear(tempYear, movie)) { LOG.warn("Invalid year: '{}' in {}", tempYear, nfoFilename); } } // ID specific to TV Shows if (movie.isTVShow()) { String tvdbid = DOMHelper.getValueFromElement(eCommon, "tvdbid"); if (isValidString(tvdbid)) { movie.setId(TheTvDBPlugin.THETVDB_PLUGIN_ID, tvdbid); } } // Get all of the other IDs parseIds(eCommon.getElementsByTagName("id"), movie, isTv); // Get the watched status try { movie.setWatchedNFO(Boolean.parseBoolean(DOMHelper.getValueFromElement(eCommon, "watched"))); } catch (Exception ignore) { // Don't change the watched status } // Get the show status if (movie.isTVShow()) { String status = DOMHelper.getValueFromElement(eCommon, "status"); if (isValidString(status)) { movie.setShowStatus(XML_START); } } // Get the sets parseSets(eCommon.getElementsByTagName("set"), movie); // Rating int rating = parseRating(DOMHelper.getValueFromElement(eCommon, "rating")); if (rating > -1) { movie.addRating(NFO_PLUGIN_ID, rating); } // Runtime if (OverrideTools.checkOverwriteRuntime(movie, NFO_PLUGIN_ID)) { parseRuntime(eCommon, movie); } // Certification if (OverrideTools.checkOverwriteCertification(movie, NFO_PLUGIN_ID)) { parseCertification(eCommon, movie); } // Plot if (OverrideTools.checkOverwritePlot(movie, NFO_PLUGIN_ID)) { movie.setPlot(DOMHelper.getValueFromElement(eCommon, "plot"), NFO_PLUGIN_ID); } // Outline if (OverrideTools.checkOverwriteOutline(movie, NFO_PLUGIN_ID)) { movie.setOutline(DOMHelper.getValueFromElement(eCommon, "outline"), NFO_PLUGIN_ID); } if (OverrideTools.checkOverwriteGenres(movie, NFO_PLUGIN_ID)) { List<String> newGenres = new ArrayList<>(); parseGenres(eCommon.getElementsByTagName("genre"), newGenres); movie.setGenres(newGenres, NFO_PLUGIN_ID); } // Premiered & Release Date movieDate(movie, DOMHelper.getValueFromElement(eCommon, "premiered")); movieDate(movie, DOMHelper.getValueFromElement(eCommon, "releasedate")); if (OverrideTools.checkOverwriteQuote(movie, NFO_PLUGIN_ID)) { movie.setQuote(DOMHelper.getValueFromElement(eCommon, "quote"), NFO_PLUGIN_ID); } if (OverrideTools.checkOverwriteTagline(movie, NFO_PLUGIN_ID)) { movie.setTagline(DOMHelper.getValueFromElement(eCommon, "tagline"), NFO_PLUGIN_ID); } if (OverrideTools.checkOverwriteCompany(movie, NFO_PLUGIN_ID)) { movie.setCompany(DOMHelper.getValueFromElement(eCommon, "studio"), NFO_PLUGIN_ID); movie.setCompany(DOMHelper.getValueFromElement(eCommon, "company"), NFO_PLUGIN_ID); } if (OverrideTools.checkOverwriteCountry(movie, NFO_PLUGIN_ID)) { movie.setCountries(DOMHelper.getValueFromElement(eCommon, "country"), NFO_PLUGIN_ID); } if (OverrideTools.checkOverwriteTop250(movie, NFO_PLUGIN_ID)) { movie.setTop250(DOMHelper.getValueFromElement(eCommon, "top250"), NFO_PLUGIN_ID); } // Poster and Fanart if (!SKIP_NFO_URL) { movie.setPosterURL(DOMHelper.getValueFromElement(eCommon, "thumb")); movie.setFanartURL(DOMHelper.getValueFromElement(eCommon, "fanart")); if (StringTools.isValidString(movie.getFanartURL())) { movie.setFanartFilename(movie.getBaseName() + FANART_TOKEN + "." + FANART_EXT); } } // Trailers if (!SKIP_NFO_TRAILER) { parseTrailers(eCommon.getElementsByTagName("trailer"), movie); } // Director and Writers if (!SKIP_NFO_CREW) { parseDirectors(eCommon.getElementsByTagName("director"), movie); List<Node> writerNodes = new ArrayList<>(); // get writers list NodeList nlWriters = eCommon.getElementsByTagName("writer"); if (nlWriters != null && nlWriters.getLength() > 0) { for (int looper = 0; looper < nlWriters.getLength(); looper++) { Node node = nlWriters.item(looper); if (node.getNodeType() == Node.ELEMENT_NODE) { writerNodes.add(node); } } } // get credits list (old style) nlWriters = eCommon.getElementsByTagName("credits"); if (nlWriters != null && nlWriters.getLength() > 0) { for (int looper = 0; looper < nlWriters.getLength(); looper++) { Node node = nlWriters.item(looper); if (node.getNodeType() == Node.ELEMENT_NODE) { writerNodes.add(node); } } } // parse writers parseWriters(writerNodes, movie); } // Actors if (!SKIP_NFO_CAST) { parseActors(eCommon.getElementsByTagName("actor"), movie); } // FPS if (OverrideTools.checkOverwriteFPS(movie, NFO_PLUGIN_ID)) { float tmpFps = NumberUtils.toFloat(DOMHelper.getValueFromElement(eCommon, "fps"), -1F); if (tmpFps > -1F) { movie.setFps(tmpFps, NFO_PLUGIN_ID); } } // VideoSource: Issue 506 - Even though it's not strictly XBMC standard if (OverrideTools.checkOverwriteVideoSource(movie, NFO_PLUGIN_ID)) { // Issue 2531: Try the alternative "videoSource" movie.setVideoSource(DOMHelper.getValueFromElement(eCommon, "videosource", "videoSource"), NFO_PLUGIN_ID); } // Video Output if (OverrideTools.checkOverwriteVideoOutput(movie, NFO_PLUGIN_ID)) { String tempString = DOMHelper.getValueFromElement(eCommon, "videooutput"); movie.setVideoOutput(tempString, NFO_PLUGIN_ID); } // Parse the video info parseFileInfo(movie, DOMHelper.getElementByName(eCommon, "fileinfo")); } } // Parse the episode details if (movie.isTVShow()) { parseAllEpisodeDetails(movie, xmlDoc.getElementsByTagName(TYPE_EPISODE)); } return Boolean.TRUE; }
From source file:com.netsteadfast.greenstep.bsc.util.AggregationMethod.java
public void sumDateRange(KpiVO kpi, String frequency) throws Exception { BscReportSupportUtils.loadExpression(); for (DateRangeScoreVO dateScore : kpi.getDateRangeScores()) { float score = 0.0f; //int size = 0; for (BbMeasureData measureData : kpi.getMeasureDatas()) { String date = dateScore.getDate().replaceAll("/", ""); if (!this.isDateRange(date, frequency, measureData)) { continue; }/*from ww w. ja va 2 s . c o m*/ BscMeasureData data = new BscMeasureData(); data.setActual(measureData.getActual()); data.setTarget(measureData.getTarget()); try { Object value = BscFormulaUtils.parse(kpi.getFormula(), data); if (value == null) { continue; } if (!NumberUtils.isNumber(String.valueOf(value))) { continue; } score += NumberUtils.toFloat(String.valueOf(value), 0.0f); //size++; } catch (Exception e) { e.printStackTrace(); } } dateScore.setScore(score); dateScore.setFontColor(BscScoreColorUtils.getFontColor(score)); dateScore.setBgColor(BscScoreColorUtils.getBackgroundColor(score)); dateScore.setImgIcon(BscReportSupportUtils.getHtmlIcon(kpi, score)); } }
From source file:com.netsteadfast.greenstep.bsc.util.AggregationMethod.java
public float sumDistinct(KpiVO kpi) throws Exception { List<BbMeasureData> measureDatas = kpi.getMeasureDatas(); List<Float> scores = new ArrayList<Float>(); float score = 0.0f; // init //int size = 0; for (BbMeasureData measureData : measureDatas) { BscMeasureData data = new BscMeasureData(); data.setActual(measureData.getActual()); data.setTarget(measureData.getTarget()); try {//from w w w. j a v a 2s .c om Object value = BscFormulaUtils.parse(kpi.getFormula(), data); if (value == null) { continue; } if (!NumberUtils.isNumber(String.valueOf(value))) { continue; } float nowScore = NumberUtils.toFloat(String.valueOf(value), 0.0f); if (!scores.contains(nowScore)) { scores.add(nowScore); //size++; score += nowScore; } } catch (Exception e) { e.printStackTrace(); } } return score; }
From source file:com.netsteadfast.greenstep.bsc.util.AggregationMethod.java
public void sumDistinctDateRange(KpiVO kpi, String frequency) throws Exception { BscReportSupportUtils.loadExpression(); for (DateRangeScoreVO dateScore : kpi.getDateRangeScores()) { List<Float> scores = new ArrayList<Float>(); float score = 0.0f; //int size = 0; for (BbMeasureData measureData : kpi.getMeasureDatas()) { String date = dateScore.getDate().replaceAll("/", ""); if (!this.isDateRange(date, frequency, measureData)) { continue; }/* www .j a v a 2 s.com*/ BscMeasureData data = new BscMeasureData(); data.setActual(measureData.getActual()); data.setTarget(measureData.getTarget()); try { Object value = BscFormulaUtils.parse(kpi.getFormula(), data); if (value == null) { continue; } if (!NumberUtils.isNumber(String.valueOf(value))) { continue; } float nowScore = NumberUtils.toFloat(String.valueOf(value), 0.0f); if (!scores.contains(nowScore)) { scores.add(nowScore); //size++; score += nowScore; } } catch (Exception e) { e.printStackTrace(); } } dateScore.setScore(score); dateScore.setFontColor(BscScoreColorUtils.getFontColor(score)); dateScore.setBgColor(BscScoreColorUtils.getBackgroundColor(score)); dateScore.setImgIcon(BscReportSupportUtils.getHtmlIcon(kpi, score)); } }