Example usage for org.apache.commons.lang3 Range contains

List of usage examples for org.apache.commons.lang3 Range contains

Introduction

In this page you can find the example usage for org.apache.commons.lang3 Range contains.

Prototype

public boolean contains(final T element) 

Source Link

Document

Checks whether the specified element occurs within this range.

Usage

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