List of usage examples for org.apache.commons.lang3 Range contains
public boolean contains(final T element)
Checks whether the specified element occurs within this range.
From source file:libepg.epg.util.datetime.DateTimeFieldConverter.java
private static Map<HMS_KEY, Integer> BcdTimeToMap(byte[] hms) throws ParseException { Map<HMS_KEY, Integer> ret = new HashMap<>(); if (hms.length != 3) { throw new IndexOutOfBoundsException( "?????3????????" + " ?=" + Hex.encodeHexString(hms)); }//from w w w. j a v a 2 s . co m //ARIB???????????????? if (Arrays.equals(hms, UNDEFINED_BCD_TIME_BLOCK.getData())) { throw new ParseException("???????????" + " ?=" + Hex.encodeHexString(hms), 0); } Object[] parameters = null; final int hour = new BCD(hms[0]).getDecimal(); final int minute = new BCD(hms[1]).getDecimal(); final int second = new BCD(hms[2]).getDecimal(); CHECK: { final Range<Integer> HOUR_RANGE = Range.between(0, 23); if (!HOUR_RANGE.contains(hour)) { parameters = new Object[] { Hex.encodeHexString(hms), "", hour }; break CHECK; } final Range<Integer> MINUTE_AND_SECOND_RANGE = Range.between(0, 59); if (!MINUTE_AND_SECOND_RANGE.contains(minute)) { parameters = new Object[] { Hex.encodeHexString(hms), "", minute }; break CHECK; } if (!MINUTE_AND_SECOND_RANGE.contains(second)) { parameters = new Object[] { Hex.encodeHexString(hms), "", second }; break CHECK; } } if (parameters != null) { MessageFormat msg = new MessageFormat( "????????????={0} ={1} ={2}"); throw new ParseException(msg.format(parameters), 0); } if (LOG.isTraceEnabled()) { LOG.trace("hour=" + hour + " minute=" + minute + " second=" + second); } ret.put(HMS_KEY.HOUR, hour); ret.put(HMS_KEY.MINUTE, minute); ret.put(HMS_KEY.SECOND, second); return ret; }
From source file:de.jfachwert.rechnung.Rechnungsmonat.java
private static int verify(String context, String value, Range<Integer> range) { int number = Integer.parseInt(value); if (!range.contains(number)) { throw new LocalizedIllegalArgumentException(value, context, range); }//from w ww .ja v a2s. c om return number; }
From source file:com.riversoforion.yukon.bankcard.Issuer.java
public void validateIin(String bankCardNumber) { String prefix = bankCardNumber.substring(0, IIN_LENGTH); int iin = Integer.parseInt(prefix); for (Range<Integer> range : this.validIinRanges) { if (range.contains(iin)) { return; }/*from ww w.j a va2 s.c om*/ } throw new BankCardException(String.format("Invalid prefix for issuer %s: %s", this.name(), prefix)); }
From source file:libepg.ts.packet.PROGRAM_ID.java
private PROGRAM_ID(String pidName, Integer pid, Integer... pids) { this.pidName = pidName; if ((this.pidName == null) || ("".equals(this.pidName))) { throw new IllegalArgumentException("???????????"); }/*from w w w. j a v a 2 s. com*/ List<Integer> t = new ArrayList<>(); if (pid != null) { t.add(pid); } else { throw new NullPointerException("PID??????"); } if (pids != null) { t.addAll(Arrays.asList(pids)); } Range<Integer> r = Range.between(0x0000, 0x1FFF); for (Integer i : t) { if (!r.contains(i)) { MessageFormat msg = new MessageFormat("PID????PID={0}"); Object[] parameters = { Integer.toHexString(i) }; throw new IllegalArgumentException(msg.format(parameters)); } } Set<Integer> temp = Collections.synchronizedSet(new HashSet<Integer>()); temp.addAll(t); this.pids = Collections.unmodifiableSet(temp); }
From source file:libepg.epg.section.descriptor.DESCRIPTOR_TAG.java
private DESCRIPTOR_TAG(String tagName, Class<? extends Descriptor> dataType, Integer tag, Integer... tags) { this.tagName = tagName; if ((this.tagName == null) || ("".equals(this.tagName))) { throw new IllegalArgumentException("???????????"); }/*from w ww.j a va 2s . co m*/ List<Integer> t = new ArrayList<>(); if (tag != null) { t.add(tag); } else { throw new NullPointerException("??????"); } if (tags != null) { t.addAll(Arrays.asList(tags)); } Range<Integer> r = Range.between(0x0, 0xFF); for (Integer i : t) { if (!r.contains(i)) { MessageFormat msg = new MessageFormat("????={0}"); Object[] parameters = { Integer.toHexString(i) }; throw new IllegalArgumentException(msg.format(parameters)); } } Set<Integer> temp = Collections.synchronizedSet(new HashSet<Integer>()); temp.addAll(t); this.tags = Collections.unmodifiableSet(temp); this.dataType = dataType; }
From source file:libepg.epg.section.descriptor.servicedescriptor.SERVICE_ID.java
private SERVICE_ID(String serviceType, Integer serviceId, Integer... serviceIds) { this.serviceType = serviceType; if ((this.serviceType == null) || (this.serviceType.equals(""))) { throw new IllegalArgumentException("??????"); }//from w ww. ja v a 2 s.co m List<Integer> t = new ArrayList<>(); if (serviceId != null) { t.add(serviceId); } else { throw new NullPointerException("ID??????"); } if (serviceIds != null) { t.addAll(Arrays.asList(serviceIds)); } Range<Integer> r = Range.between(0x0, 0xFF); for (Integer i : t) { if (!r.contains(i)) { MessageFormat msg = new MessageFormat( "ID????ID={0}"); Object[] parameters = { Integer.toHexString(i) }; throw new IllegalArgumentException(msg.format(parameters)); } } Set<Integer> temp = Collections.synchronizedSet(new HashSet<Integer>()); temp.addAll(t); this.serviceIds = Collections.unmodifiableSet(temp); }
From source file:libepg.epg.section.TABLE_ID.java
private TABLE_ID(String tableName, MAX_SECTION_LENGTH maxSectionLength, Class<? extends SectionBody> dataType, Integer tableID, Integer... tableIDs) { this.tableName = tableName; if ((this.tableName == null) || ("".equals(this.tableName))) { throw new IllegalArgumentException("???????????"); }//from w w w. j a va 2 s . com List<Integer> t = new ArrayList<>(); if (tableID != null) { t.add(tableID); } else { throw new NullPointerException("ID??????"); } if (tableIDs != null) { t.addAll(Arrays.asList(tableIDs)); } Range<Integer> r = Range.between(0x0, 0xFF); for (Integer i : t) { if (!r.contains(i)) { MessageFormat msg = new MessageFormat( "ID????ID={0}"); Object[] parameters = { Integer.toHexString(i) }; throw new IllegalArgumentException(msg.format(parameters)); } } Set<Integer> temp = Collections.synchronizedSet(new HashSet<Integer>()); temp.addAll(t); this.tableIDs = Collections.unmodifiableSet(temp); this.dataType = dataType; this.maxSectionLength = maxSectionLength; }
From source file:enumsupport.reverselookupmapfactory.DeduplicatdeNumberSetFactory.java
/** * * @param numberRange ???//from ww w . java 2 s . c o m * @param number null?? * @param numbers ??????null?????? * @return ????(??) * @throws NullPointerException ?????null????? * @throws IllegalArgumentException ??numberrange??????? */ public Set<T> makeSet(Range<T> numberRange, T number, T... numbers) throws NullPointerException, IllegalArgumentException { List<T> t = new ArrayList<>(); t.add(number); if (numbers != null) { t.addAll(Arrays.asList(numbers)); } for (T num : t) { if (num == null) { throw new IllegalArgumentException("?null???????"); } if (!numberRange.contains(num)) { MessageFormat msg = new MessageFormat( "????????????={0}"); Object[] parameters = { num }; throw new IllegalArgumentException(msg.format(parameters)); } } Set<T> numberSet_t = Collections.synchronizedSet(new HashSet<>()); numberSet_t.addAll(t); return Collections.unmodifiableSet(numberSet_t); }
From source file:forge.deck.DeckFormat.java
public String getDeckConformanceProblem(Deck deck) { if (deck == null) { return "is not selected"; }//w ww . j a v a 2 s. co m int deckSize = deck.getMain().countAll(); int min = getMainRange().getMinimum(); int max = getMainRange().getMaximum(); // TODO "Your minimum deck size is reduced by five." // Adjust minimum base on number of Advantageous Proclamation or similar cards if (deckSize < min) { return String.format("should have at least %d cards", min); } if (deckSize > max) { return String.format("should have no more than %d cards", max); } if (hasCommander()) { //Must contain exactly 1 legendary Commander and a sideboard of 10 or zero cards. final CardPool cmd = deck.get(DeckSection.Commander); if (cmd == null || cmd.isEmpty()) { return "is missing a commander"; } if (!isLegalCommander(cmd.get(0).getRules())) { return "has an illegal commander"; } final ColorSet cmdCI = cmd.get(0).getRules().getColorIdentity(); final List<PaperCard> erroneousCI = new ArrayList<PaperCard>(); for (final Entry<PaperCard, Integer> cp : deck.get(DeckSection.Main)) { if (!cp.getKey().getRules().getColorIdentity().hasNoColorsExcept(cmdCI.getColor())) { erroneousCI.add(cp.getKey()); } } if (deck.has(DeckSection.Sideboard)) { for (final Entry<PaperCard, Integer> cp : deck.get(DeckSection.Sideboard)) { if (!cp.getKey().getRules().getColorIdentity().hasNoColorsExcept(cmdCI.getColor())) { erroneousCI.add(cp.getKey()); } } } if (erroneousCI.size() > 0) { StringBuilder sb = new StringBuilder( "contains one or more cards that do not match the commanders color identity:"); for (PaperCard cp : erroneousCI) { sb.append("\n").append(cp.getName()); } return sb.toString(); } } if (cardPoolFilter != null) { final List<PaperCard> erroneousCI = new ArrayList<PaperCard>(); for (final Entry<PaperCard, Integer> cp : deck.getAllCardsInASinglePool()) { if (!cardPoolFilter.apply(cp.getKey().getRules())) { erroneousCI.add(cp.getKey()); } } if (erroneousCI.size() > 0) { final StringBuilder sb = new StringBuilder("contains the following illegal cards:\n"); for (final PaperCard cp : erroneousCI) { sb.append("\n").append(cp.getName()); } return sb.toString(); } } final int maxCopies = getMaxCardCopies(); if (maxCopies < Integer.MAX_VALUE) { //Must contain no more than 4 of the same card //shared among the main deck and sideboard, except //basic lands, Shadowborn Apostle and Relentless Rats final CardPool allCards = deck.getAllCardsInASinglePool(hasCommander()); final ImmutableSet<String> limitExceptions = ImmutableSet.of("Relentless Rats", "Shadowborn Apostle"); // should group all cards by name, so that different editions of same card are really counted as the same card for (final Entry<String, Integer> cp : Aggregates.groupSumBy(allCards, PaperCard.FN_GET_NAME)) { final IPaperCard simpleCard = StaticData.instance().getCommonCards().getCard(cp.getKey()); if (simpleCard == null) { return String.format("contains the nonexisting card %s", cp.getKey()); } final boolean canHaveMultiple = simpleCard.getRules().getType().isBasicLand() || limitExceptions.contains(cp.getKey()); if (!canHaveMultiple && cp.getValue() > maxCopies) { return String.format("must not contain more than %d copies of the card %s", maxCopies, cp.getKey()); } } } // The sideboard must contain either 0 or 15 cards int sideboardSize = deck.has(DeckSection.Sideboard) ? deck.get(DeckSection.Sideboard).countAll() : 0; Range<Integer> sbRange = getSideRange(); if (sbRange != null && sideboardSize > 0 && !sbRange.contains(sideboardSize)) { return sbRange.getMinimum() == sbRange.getMaximum() ? String.format("must have a sideboard of %d cards or no sideboard at all", sbRange.getMaximum()) : String.format("must have a sideboard of %d to %d cards or no sideboard at all", sbRange.getMinimum(), sbRange.getMaximum()); } return null; }
From source file:com.rockhoppertech.music.chord.ChordProgression.java
/** * Return the Chord that matches if the beat is between the Chord's start * and end.//www . j ava2 s . c o m * * @param beat * a beat * @return a Chord or null if not chords at beat */ public Chord getChordAtBeat(final double beat) { logger.debug("looking for sb {}", beat); for (final Chord n : this) { final double s = n.getStartBeat(); final double e = n.getEndBeat(); logger.debug("checking sb {} of chord {}", s, n); Range<Double> range = Range.between(s, e - .0001); logger.debug("range {}", range); if (range.contains(beat)) { logger.debug("returning chord {}", n); return n; } } return null; }