微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

com.google.common.collect.BoundType的实例源码

项目:incubator-pulsar    文件PulsarWebResource.java   
protected NamespaceBundle validateNamespaceBundleRange(NamespaceName fqnn,BundlesData bundles,String bundleRange) {
    try {
        checkArgument(bundleRange.contains("_"),"Invalid bundle range");
        String[] boundaries = bundleRange.split("_");
        Long lowerEndpoint = Long.decode(boundaries[0]);
        Long upperEndpoint = Long.decode(boundaries[1]);
        Range<Long> hashRange = Range.range(lowerEndpoint,BoundType.CLOSED,upperEndpoint,(upperEndpoint.equals(NamespaceBundles.FULL_UPPER_BOUND)) ? BoundType.CLOSED : BoundType.OPEN);
        NamespaceBundle nsBundle = pulsar().getNamespaceService().getNamespaceBundleFactory().getBundle(fqnn,hashRange);
        NamespaceBundles nsBundles = pulsar().getNamespaceService().getNamespaceBundleFactory().getBundles(fqnn,bundles);
        nsBundles.validateBundle(nsBundle);
        return nsBundle;
    } catch (Exception e) {
        log.error("[{}] Failed to validate namespace bundle {}/{}",clientAppId(),fqnn.toString(),bundleRange,e);
        throw new RestException(e);
    }
}
项目:incubator-pulsar    文件NamespaceBundleTest.java   
@Test
public void testEquals() throws Exception {
    NamespaceBundle bundle = factory.getBundle(NamespaceName.get("pulsar/use/ns1"),Range.range(0l,0x40000000L,BoundType.OPEN));
    NamespaceBundle bundle2 = factory.getBundle(NamespaceName.get("pulsar/use/ns1"),Range.range(0x20000000l,BoundType.OPEN));
    assertTrue(!bundle.equals(bundle2));

    NamespaceBundle bundle0 = factory.getBundle(NamespaceName.get("pulsar/use/ns1"),BoundType.OPEN));
    assertTrue(bundle0.equals(bundle));

    NamespaceBundle otherBundle = factory.getBundle(NamespaceName.get("pulsar/use/ns2"),BoundType.OPEN));
    assertTrue(!otherBundle.equals(bundle));
}
项目:incubator-pulsar    文件NamespaceBundleTest.java   
@Test
public void testIncludes() throws Exception {
    DestinationName dn = DestinationName.get("persistent://pulsar/use/ns1/topic-1");
    Long hashKey = factory.getLongHashCode(dn.toString());
    Long upper = Math.max(hashKey + 1,NamespaceBundles.FULL_UPPER_BOUND);
    BoundType upperType = upper.equals(NamespaceBundles.FULL_UPPER_BOUND) ? BoundType.CLOSED : BoundType.OPEN;
    NamespaceBundle bundle = factory.getBundle(dn.getNamespaceObject(),Range.range(hashKey / 2,upper,upperType));
    assertTrue(bundle.includes(dn));
    bundle = factory.getBundle(NamespaceName.get("pulsar/use/ns1"),Range.range(upper,NamespaceBundles.FULL_UPPER_BOUND,BoundType.CLOSED));
    assertTrue(!bundle.includes(dn));

    NamespaceBundle otherBundle = factory.getBundle(NamespaceName.get("pulsar/use/ns2"),BoundType.OPEN));
    assertTrue(!otherBundle.includes(dn));
}
项目:r01fb    文件LucenesearchQuery.java   
private static <N extends Number> Query _numberEqualsQuery(final IndexDocumentFieldID fieldId,final N number,final Class<N> numberType) {
    Query outQry = null;
    if (numberType.equals(Integer.class)) {
        outQry = _numberInRangeQuery(fieldId,_createrange((Integer)number,(Integer)number,BoundType.CLOSED),Integer.class);
    } else if (numberType.equals(Long.class)) {
        outQry = _numberInRangeQuery(fieldId,_createrange((Long)number,(Long)number,Long.class);
    } else if (numberType.equals(Double.class)) {
        outQry = _numberInRangeQuery(fieldId,_createrange((Double)number,(Double)number,Double.class);
    } else if (numberType.equals(Long.class)) {
        outQry = _numberInRangeQuery(fieldId,_createrange((Float)number,(Float)number,Float.class);
    } else {
        throw new IllegalArgumentException();
    }
    return outQry;
}
项目:codemining-treelm    文件AbstractTSGSampler.java   
/**
 * Print statistics on stdout.
 */
protected void printStats() {
    final SortedMultiset<Integer> sizedistribution = sampleGrammar
            .computeGrammarTreeSizeStats();
    System.out.println("Size Stats: 1-5:"
            + sizedistribution.subMultiset(0,5,BoundType.CLOSED).size()
                    + " 6-15:"
                    + sizedistribution.subMultiset(6,15,BoundType.CLOSED).size()
                            + " 16-30:"
                            + sizedistribution.subMultiset(16,30,BoundType.CLOSED).size()
                                    + " >30:"
                                    + sizedistribution.subMultiset(31,Integer.MAX_VALUE,BoundType.CLOSED).size());

    int sumOfSizes = 0;
    for (final com.google.common.collect.Multiset.Entry<Integer> sizeEntry : sizedistribution
            .entrySet()) {
        sumOfSizes += sizeEntry.getCount() * sizeEntry.getElement();
    }

    final double avgSize = (((double) sumOfSizes) / sizedistribution.size());
    System.out.println("Avg Tree Size: " + String.format("%.2f",avgSize));
}
项目:codemining-treelm    文件SuggestIdiomsgivenImports.java   
/**
 * Prune the list to the given threshold.
 */
private List<Pair<SortedMultiset<Double>,SortedMultiset<Double>>> prunetoThreshold(
        final double threshold) {
    final List<Pair<SortedMultiset<Double>,SortedMultiset<Double>>> filtered = Lists
            .newArrayList();

    for (final Pair<SortedMultiset<Double>,SortedMultiset<Double>> suggestion : suggestionPrecision) {
        final SortedMultiset<Double> allFilteredSuggestions = suggestion.first
                .tailMultiset(threshold,BoundType.CLOSED);
        final SortedMultiset<Double> correctFilteredSuggestions = suggestion.second
                .tailMultiset(threshold,BoundType.CLOSED);
        final Pair<SortedMultiset<Double>,SortedMultiset<Double>> filteredPair = Pair
                .create(allFilteredSuggestions,correctFilteredSuggestions);
        filtered.add(filteredPair);
    }

    return filtered;
}
项目:activitystreams    文件Adapters.java   
@SuppressWarnings("rawtypes")
public Range<?> deserialize(
  JsonElement json,Type typeOfT,JsonDeserializationContext context) 
    throws JsonParseException {
  checkArgument(json.isJsonObject());
  try {
    JsonObject obj = json.getAsJsonObject();
    JsonObject upper = obj.getAsJsonObject("upper");
    JsonObject lower = obj.getAsJsonObject("lower");
    BoundType ubt = bt(upper.getAsJsonPrimitive("type"));
    BoundType lbt = bt(lower.getAsJsonPrimitive("type"));
    Object ub = des(upper.get("endpoint"),context);
    Object lb = des(lower.get("endpoint"),context);
    return Range.range((Comparable)lb,lbt,(Comparable)ub,ubt);
  } catch (Throwable t) {
    throw Throwables.propagate(t);
  }
}
项目:jiplib    文件IPAddresses.java   
static Range<IPAddress> canonical(final Range<IPAddress> range,final LongdiscreteDomain<IPAddress> domain) {
  if (range.isEmpty()) {
    return null;
  }
  final boolean l = range.lowerBoundType() == BoundType.OPEN;
  final boolean u = range.upperBoundType() == BoundType.OPEN;
  final IPAddress s = range.lowerEndpoint();
  final IPAddress e = range.upperEndpoint();
  if (l && u) {
    Range.closed(domain.next(s),domain.prevIoUs(e));
  } else if (l) {
    return Range.closed(domain.next(s),e);
  } else if (u) {
    return Range.closed(s,domain.prevIoUs(e));
  }
  return range;
}
项目:tcl-regex-java    文件RuntimeColorMap.java   
private void computeBmp(RangeMap<Integer,Short> fullMap) {
    for (Map.Entry<Range<Integer>,Short> me : fullMap.asMapOfRanges().entrySet()) {
        Range<Integer> range = me.getKey();
        int min = range.lowerEndpoint();
        if (range.lowerBoundType() == BoundType.OPEN) {
            min++;
        }
        if (min < Character.MAX_VALUE) {
            int rmax = range.upperEndpoint();
            if (range.upperBoundType() == BoundType.OPEN) {
                rmax--;
            }
            int max = Math.min(Character.MAX_VALUE,rmax);
            for (int x = min; x <= max; x++) {
                this.bmpMap[x] = me.getValue();
            }
        }
    }
}
项目:variation-cytoscape3-app    文件Ranges.java   
/**
 * Return true if the specified range is strictly less than the specified value.
 *
 * @param <C> range endpoint type
 * @param range range,must not be null
 * @param value value,must not be null
 * @return true if the specified range is strictly less than the specified value
 */
public static <C extends Comparable> boolean isLessthan(final Range<C> range,final C value)
{
    checkNotNull(range);
    checkNotNull(value);

    if (!range.hasUpperBound())
    {
        return false;
    }
    if (range.upperBoundType() == BoundType.OPEN && range.upperEndpoint().equals(value))
    {
        return true;
    }
    return range.upperEndpoint().compareto(value) < 0;
}
项目:java-monitoring-client-library    文件distributionMetricSubject.java   
/** Returns an appropriate string representation of a metric value for use in error messages. */
@Override
protected String getMessageRepresentation(distribution distribution) {
  StringBuilder sb = new StringBuilder("{");
  boolean first = true;
  for (Map.Entry<Range<Double>,Long> entry :
      distribution.intervalCounts().asMapOfRanges().entrySet()) {
    if (entry.getValue() != 0L) {
      if (first) {
        first = false;
      } else {
        sb.append(',');
      }
      if (entry.getKey().hasLowerBound()) {
        sb.append((entry.getKey().lowerBoundType() == BoundType.CLOSED) ? '[' : '(');
        sb.append(entry.getKey().lowerEndpoint());
      }
      sb.append("..");
      if (entry.getKey().hasUpperBound()) {
        sb.append(entry.getKey().upperEndpoint());
        sb.append((entry.getKey().upperBoundType() == BoundType.CLOSED) ? ']' : ')');
      }
      sb.append('=');
      sb.append(entry.getValue());
    }
  }
  sb.append('}');
  return sb.toString();
}
项目:guava-mock    文件MultisetNavigationTester.java   
@CollectionSize.Require(ZERO)
public void testemptyMultisetNearby() {
  for (BoundType type : BoundType.values()) {
    assertNull(sortedMultiset.headMultiset(e0(),type).lastEntry());
    assertNull(sortedMultiset.tailMultiset(e0(),type).firstEntry());
  }
}
项目:ProjectAres    文件MatchImpl.java   
@Override
public void setPlayerLimits(Range<Integer> limits) {
    if(!playerLimits.equals(limits)) {
        checkArgument(limits.lowerBoundType() == BoundType.CLOSED);
        checkArgument(limits.upperBoundType() == BoundType.CLOSED);
        playerLimits = limits;
        callEvent(new MatchResizeEvent(this));
    }
}
项目:ProjectAres    文件KillStreakFilter.java   
@Override
protected boolean matches(IPlayerQuery query,MatchPlayer player) {
    final StatsUserFacet facet = player.getUserContext().facet(StatsUserFacet.class);
    int kills = persistent ? facet.teamKills() : facet.lifeKills();
    if(repeat && kills > 0) {
        int modulo = this.range.upperEndpoint() - (this.range.upperBoundType() == BoundType.CLOSED ? 0 : 1);
        kills = 1 + (kills - 1) % modulo;
    }
    return this.range.contains(kills);
}
项目:ProjectAres    文件Ranges.java   
/**
 * Return an english phrase describing the given {@link Range} e.g.
 *
 *     Range.all()                      -> "unbounded"
 *     Range.singleton(3)               -> "3"
 *     Range.atLeast(3)                 -> "at least 3"
 *     Range.closedOpen(3,7)           -> "at least 3 and less than 7"
 *     Range.closed(3,7)               -> "between 3 and 7"
 */
public static String describe(Range<?> range) {
    if(range.hasLowerBound() && range.hasUpperBound() && range.lowerBoundType() == BoundType.CLOSED && range.upperBoundType() == BoundType.CLOSED) {
        if(range.lowerEndpoint().equals(range.upperEndpoint())) {
            // singleton
            return range.lowerEndpoint().toString();
        } else {
            // closed-closed
            return "between " + range.lowerEndpoint() + " and " + range.upperEndpoint();
        }
    }

    final List<String> parts = new ArrayList<>(2);

    if(range.hasLowerBound()) {
        parts.add((range.lowerBoundType() == BoundType.CLOSED ? "at least " : "more than ") + range.lowerEndpoint());
    }

    if(range.hasUpperBound()) {
        parts.add((range.upperBoundType() == BoundType.CLOSED ? "at most " : "less than ") + range.upperEndpoint());
    }

    switch(parts.size()) {
        case 0: return "unbounded";
        case 1: return parts.get(0);
        default: return parts.get(0) + " and " + parts.get(1);
    }
}
项目:googles-monorepo-demo    文件MultisetNavigationTester.java   
@CollectionSize.Require(ZERO)
public void testemptyMultisetNearby() {
  for (BoundType type : BoundType.values()) {
    assertNull(sortedMultiset.headMultiset(e0(),type).firstEntry());
  }
}
项目:oma-riista-web    文件NumberGenerator.java   
default int nextInt(final Range<Integer> range) {
    final int upperEndPoint = range.hasUpperBound()
            ? range.upperBoundType() == BoundType.CLOSED ? range.upperEndpoint() : range.upperEndpoint() - 1
            : Integer.MAX_VALUE;

    final int lowerEndPoint = range.hasLowerBound()
            ? range.lowerBoundType() == BoundType.CLOSED ? range.lowerEndpoint() : range.lowerEndpoint() + 1
            : Integer.MIN_VALUE;

    return nextIntBetween(lowerEndPoint,upperEndPoint);
}
项目:incubator-pulsar    文件ServiceUnitZkUtils.java   
private static Range<Long> getHashRange(String rangePathPart) {
    String[] endPoints = rangePathPart.split("_");
    checkArgument(endPoints.length == 2,"Malformed bundle hash range path part:" + rangePathPart);
    Long startLong = Long.decode(endPoints[0]);
    Long endLong = Long.decode(endPoints[1]);
    BoundType endType = (endPoints[1].equals(LAST_BOUNDARY)) ? BoundType.CLOSED : BoundType.OPEN;
    return Range.range(startLong,endLong,endType);
}
项目:incubator-pulsar    文件NamespaceBundle.java   
public NamespaceBundle(NamespaceName nsname,Range<Long> keyRange,NamespaceBundleFactory factory) {
    this.nsname = checkNotNull(nsname);
    this.keyRange = checkNotNull(keyRange);
    checkArgument(this.keyRange.lowerBoundType().equals(BoundType.CLOSED),"Invalid hash range. Lower Endpoint has to be inclusive");
    checkArgument(
            (this.keyRange.upperEndpoint().equals(NamespaceBundles.FULL_UPPER_BOUND)
                    && this.keyRange.upperBoundType().equals(BoundType.CLOSED))
                    || (!this.keyRange.upperEndpoint().equals(NamespaceBundles.FULL_UPPER_BOUND)
                            && this.keyRange.upperBoundType().equals(BoundType.OPEN)),"Invalid hash range. Upper Endpoint should be exclusive unless it is 0xffffffff");
    checkArgument(!this.keyRange.isEmpty(),"Cannot create bundle object for an empty key range");
    this.factory = checkNotNull(factory);
}
项目:incubator-pulsar    文件NamespaceBundles.java   
public NamespaceBundles(NamespaceName nsname,long[] partitions,NamespaceBundleFactory factory) {
    // check input arguments
    this.nsname = checkNotNull(nsname);
    this.factory = checkNotNull(factory);
    checkArgument(partitions.length > 0,"Can't create bundles w/o partition boundaries");

    // calculate bundles based on partition boundaries
    this.bundles = Lists.newArrayList();
    fullBundle = new NamespaceBundle(nsname,Range.range(FULL_LOWER_BOUND,FULL_UPPER_BOUND,factory);

    if (partitions.length > 0) {
        if (partitions.length == 1) {
            throw new IllegalArgumentException("Need to specify at least 2 boundaries");
        }

        this.partitions = partitions;
        long lowerBound = partitions[0];
        for (int i = 1; i < partitions.length; i++) {
            long upperBound = partitions[i];
            checkArgument(upperBound >= lowerBound);
            Range<Long> newRange = null;
            if (i != partitions.length - 1) {
                newRange = Range.range(lowerBound,upperBound,BoundType.OPEN);
            } else {
                // last one has a closed right end
                newRange = Range.range(lowerBound,BoundType.CLOSED);
            }
            bundles.add(new NamespaceBundle(nsname,newRange,factory));
            lowerBound = upperBound;
        }
    } else {
        this.partitions = new long[] { 0l };
        bundles.add(fullBundle);
    }
}
项目:incubator-pulsar    文件NamespaceBundleFactory.java   
public NamespaceBundle getBundle(String namespace,String bundleRange) {
    checkArgument(bundleRange.contains("_"),"Invalid bundle range");
    String[] boundaries = bundleRange.split("_");
    Long lowerEndpoint = Long.decode(boundaries[0]);
    Long upperEndpoint = Long.decode(boundaries[1]);
    Range<Long> hashRange = Range.range(lowerEndpoint,(upperEndpoint.equals(NamespaceBundles.FULL_UPPER_BOUND)) ? BoundType.CLOSED : BoundType.OPEN);
    return getBundle(NamespaceName.get(namespace),hashRange);
}
项目:incubator-pulsar    文件LoadBalancerTestingUtils.java   
public static NamespaceBundle[] makeBundles(final NamespaceBundleFactory nsFactory,final String property,final String cluster,final String namespace,final int numBundles) {
    final NamespaceBundle[] result = new NamespaceBundle[numBundles];
    final NamespaceName namespaceName = NamespaceName.get(property,cluster,namespace);
    for (int i = 0; i < numBundles - 1; ++i) {
        final long lower = NamespaceBundles.FULL_UPPER_BOUND * i / numBundles;
        final long upper = NamespaceBundles.FULL_UPPER_BOUND * (i + 1) / numBundles;
        result[i] = nsFactory.getBundle(namespaceName,Range.range(lower,BoundType.OPEN));
    }
    result[numBundles - 1] = nsFactory.getBundle(namespaceName,Range.range(NamespaceBundles.FULL_UPPER_BOUND * (numBundles - 1) / numBundles,BoundType.CLOSED));
    return result;
}
项目:incubator-pulsar    文件NamespaceBundleTest.java   
@Test
public void testGetBundle() throws Exception {
    NamespaceBundle bundle = factory.getBundle(NamespaceName.get("pulsar/use/ns1"),Range.range(0L,0xffffffffL,BoundType.CLOSED));
    assertNotNull(bundle);
    NamespaceBundle bundle2 = factory.getBundle(NamespaceName.get("pulsar/use/ns1"),BoundType.CLOSED));
    // Don't call equals and make sure those two are the same instance
    assertEquals(bundle,bundle2);

}
项目:incubator-pulsar    文件NamespaceBundleTest.java   
@Test
public void testCompareto() throws Exception {
    NamespaceBundle bundle = factory.getBundle(NamespaceName.get("pulsar/use/ns1"),BoundType.OPEN));
    try {
        bundle.compareto(bundle2);
        fail("Should have Failed due to overlap ranges");
    } catch (IllegalArgumentException iae) {
        // OK,expected
    }

    NamespaceBundle bundle0 = factory.getBundle(NamespaceName.get("pulsar/use/ns1"),0x10000000L,BoundType.OPEN));
    assertTrue(bundle0.compareto(bundle2) < 0);
    assertTrue(bundle2.compareto(bundle0) > 0);
    NamespaceBundle bundle1 = factory.getBundle(NamespaceName.get("pulsar/use/ns1"),0x20000000L,BoundType.OPEN));
    assertTrue(bundle1.compareto(bundle2) < 0);

    NamespaceBundle bundle3 = factory.getBundle(NamespaceName.get("pulsar/use/ns1"),BoundType.OPEN));
    assertTrue(bundle.compareto(bundle3) == 0);

    NamespaceBundle otherBundle = factory.getBundle(NamespaceName.get("pulsar/use/ns2"),Range.range(0x10000000l,0x30000000L,BoundType.OPEN));
    assertTrue(otherBundle.compareto(bundle0) > 0);
}
项目:incubator-pulsar    文件NamespaceBundleTest.java   
@Test
public void testToString() throws Exception {
    NamespaceBundle bundle0 = factory.getBundle(NamespaceName.get("pulsar/use/ns1"),BoundType.OPEN));
    assertEquals(bundle0.toString(),"pulsar/use/ns1/0x00000000_0x10000000");
    bundle0 = factory.getBundle(NamespaceName.get("pulsar/use/ns1"),BoundType.CLOSED));
    assertEquals(bundle0.toString(),"pulsar/use/ns1/0x10000000_0xffffffff");
}
项目:emodb    文件RestartingS3InputStream.java   
public RestartingS3InputStream(AmazonS3 s3,String bucket,String key,@Nullable Range<Long> range) {
    _s3 = s3;
    _bucket = bucket;
    _key = key;

    S3Object s3Object;

    // Get the object synchronously so any immediate S3 errors,such as file not found,are thrown inline.
    if (range == null) {
        s3Object = _s3.getobject(new GetobjectRequest(_bucket,_key));
        _pos = 0;
        _length = s3Object.getobjectMetadata().getContentLength();
    } else {
        long start,end;

        if (range.hasLowerBound()) {
            start = range.lowerEndpoint() + (range.lowerBoundType() == BoundType.CLOSED ? 0 : 1);
        } else {
            start = 0;
        }

        if (range.hasUpperBound()) {
            end = range.upperEndpoint() - (range.upperBoundType() == BoundType.CLOSED ? 0 : 1);
        } else {
            end = Long.MAX_VALUE;
        }

        s3Object = _s3.getobject(new GetobjectRequest(_bucket,_key).withRange(start,end));

        _pos = start;
        // The S3 Metadata's content length is the length of the data actually being returned by S3.
        // Since we effectively skipped the first "start" bytes we need to add them back to the total length
        // of data being read to make future calculations using _pos and _length consistent.
        _length = start + s3Object.getobjectMetadata().getContentLength();
    }

    _in = s3Object.getobjectContent();
}
项目:guava-libraries    文件MultisetNavigationTester.java   
@CollectionSize.Require(ZERO)
public void testemptyMultisetNearby() {
  for (BoundType type : BoundType.values()) {
    assertNull(sortedMultiset.headMultiset(e0(),type).firstEntry());
  }
}
项目:r01fb    文件Range.java   
public Range(final com.google.common.collect.Range<T> range) {
    _range = range;
    _upperBound = range.hasUpperBound() ? range.upperEndpoint() : null;
    _lowerBound = range.hasLowerBound() ? range.lowerEndpoint() : null;

    _upperBoundType = range.hasUpperBound() ? range.upperBoundType() : BoundType.OPEN;
    _lowerBoundType = range.hasLowerBound() ? range.lowerBoundType() : BoundType.OPEN;
}
项目:r01fb    文件Range.java   
public Range(final T lower,final BoundType lowerBoundType,final T upper,final BoundType upperBoundType) {
    // store the lower and upper bounds
    _lowerBound = lower;
    _upperBound = upper;

    _lowerBoundType = lowerBoundType;
    _upperBoundType = upperBoundType;

    // Create the delegate
    if (_lowerBound != null && _upperBound != null) {
        if (lowerBoundType == BoundType.OPEN && upperBoundType == BoundType.OPEN) { 
            _range = com.google.common.collect.Range.open(_lowerBound,_upperBound);
        } else if (lowerBoundType == BoundType.OPEN && upperBoundType == BoundType.CLOSED) {
            _range = com.google.common.collect.Range.openClosed(_lowerBound,_upperBound);
        } else if (lowerBoundType == BoundType.CLOSED && upperBoundType == BoundType.CLOSED) {
            _range = com.google.common.collect.Range.closed(_lowerBound,_upperBound);
        } else if (lowerBoundType == BoundType.CLOSED && upperBoundType == BoundType.OPEN) {
            _range = com.google.common.collect.Range.closedOpen(_lowerBound,_upperBound);
        } else {
            throw new IllegalArgumentException("Both lower and upper bound types MUST be provided!");
        }
    } else if (_lowerBound != null) {
        if (lowerBoundType == BoundType.OPEN) {
            _range = com.google.common.collect.Range.greaterThan(_lowerBound);
        } else {
            _range = com.google.common.collect.Range.atLeast(_lowerBound);
        }
    } else if (_upperBound != null) {
        if (upperBoundType == BoundType.OPEN) {
            _range = com.google.common.collect.Range.lessthan(_upperBound);
        } else {
            _range = com.google.common.collect.Range.atMost(_upperBound);
        }
    } else {
        throw new IllegalArgumentException("Cannot create range,at least lower or upper bound SHOULD be not null");
    }
}
项目:r01fb    文件Range.java   
private static Range<Date> _parseDaterange(final String lowerBound,final String upperBound,final BoundType upperBoundType) {
    Date lowerBoundDate = lowerBound != null ? Dates.fromMillis(Long.parseLong(lowerBound)) : null;
    Date upperBoundDate = upperBound != null ? Dates.fromMillis(Long.parseLong(upperBound)) : null;
    return new Range<Date>(lowerBoundDate,lowerBoundType,upperBoundDate,upperBoundType);
}
项目:r01fb    文件Range.java   
private static Range<Byte>  _parseByterange(final String lowerBound,final BoundType upperBoundType) {
    Byte lowerBoundByte = lowerBound != null ? Byte.valueOf(lowerBound) : null;
    Byte upperBoundByte = upperBound != null ? Byte.valueOf(upperBound) : null;
    return new Range<Byte>(lowerBoundByte,upperBoundByte,upperBoundType);
}
项目:r01fb    文件Range.java   
private static Range<Integer>  _parseIntRange(final String lowerBound,final BoundType upperBoundType) {
    Integer lowerBoundInt = lowerBound != null ? Integer.valueOf(lowerBound) : null;
    Integer upperBoundInt = upperBound != null ? Integer.valueOf(upperBound) : null;
    return new Range<Integer>(lowerBoundInt,upperBoundInt,upperBoundType);
}
项目:r01fb    文件Range.java   
private static Range<Short>  _parseShortRange(final String lowerBound,final BoundType upperBoundType) {
    Short lowerBoundShort = lowerBound != null ? Short.valueOf(lowerBound) : null;
    Short upperBoundShort = upperBound != null ? Short.valueOf(upperBound) : null;
    return new Range<Short>(lowerBoundShort,upperBoundShort,upperBoundType);
}
项目:r01fb    文件Range.java   
private static Range<Long>  _parseLongRange(final String lowerBound,final BoundType upperBoundType) {
    Long lowerBoundLong = lowerBound != null ? Long.valueOf(lowerBound) : null;
    Long upperBoundLong = upperBound != null ? Long.valueOf(upperBound) : null;
    return new Range<Long>(lowerBoundLong,upperBoundLong,upperBoundType);
}
项目:r01fb    文件Range.java   
private static Range<Double>  _parseDoubleRange(final String lowerBound,final BoundType upperBoundType) {
    Double lowerBoundDouble = lowerBound != null ? Double.valueOf(lowerBound) : null;
    Double upperBoundDouble = upperBound != null ? Double.valueOf(upperBound) : null;
    return new Range<Double>(lowerBoundDouble,upperBoundDouble,upperBoundType);
}
项目:r01fb    文件Range.java   
private static Range<Float>  _parseFloatRange(final String lowerBound,final BoundType upperBoundType) {
    Float lowerBoundFloat = lowerBound != null ? Float.valueOf(lowerBound) : null;
    Float upperBoundFloat = upperBound != null ? Float.valueOf(upperBound) : null;
    return new Range<Float>(lowerBoundFloat,upperBoundFloat,upperBoundType);
}
项目:r01fb    文件Range.java   
public String asstring() {
    RangeDef rangeDef = null;
    Class<T> dataType = Range.guessDataType(this);
    /// Compilation errors:  Incomparable Types
    //[javac] /softbase_ejie/aplic/r01fb/tmp/compileLib/r01fbClasses/src/r01f/types/Range.java:407: 
    //incomparable types: java.lang.class<T> and java.lang.class<java.util.Date>
    // [javac]      if (dataType == java.util.Date.class || dataType == java.sql.Date.class) {

    Class<?> java_util_Date_class = java.util.Date.class;
    Class<?> java_sql_Date_class = java.sql.Date.class;
    Class<?> java_lang_Byte_class = Byte.class;
    Class<?> java_lang_Integer_class = Integer.class;
    Class<?> java_lang_Short_class = Short.class;
    Class<?> java_lang_Long_class = Long.class;
    Class<?> java_lang_Double_class = Double.class;
    Class<?> java_lang_Float_class = Float.class;

    if (dataType == java_util_Date_class || dataType == java_sql_Date_class) {
        rangeDef = _toDateBoundStrings(this);
    } else if (dataType == java_lang_Byte_class) {
        rangeDef = _toByteBoundStrings(this);
    } else if (dataType == java_lang_Integer_class) {
        rangeDef = _toIntegerBoundStrings(this);
    } else if (dataType == java_lang_Short_class) {
        rangeDef = _toShortBoundStrings(this);
    } else if (dataType == java_lang_Long_class ) {
        rangeDef = _toLongBoundStrings(this);
    } else if (dataType == java_lang_Double_class ) {
        rangeDef = _todoubleBoundStrings(this);
    } else if (dataType == java_lang_Float_class) {
        rangeDef = _toFloatBoundStrings(this);
    } else {
        throw new IllegalArgumentException("Type " + dataType + " is NOT supported in Range");
    }
    String outStr = Strings.of("{}{}..{}{}")
                           .customizeWith((rangeDef.getLowerBoundType() == BoundType.CLOSED ? "[" : "("),(rangeDef.getLowerBound() != null ? rangeDef.getLowerBound() : ""),(rangeDef.getUpperBound() != null ? rangeDef.getUpperBound() : ""),(rangeDef.getUpperBoundType() == BoundType.CLOSED ? "]" : ")"))
                           .asstring();
    return outStr;
}
项目:r01fb    文件LucenesearchQuery.java   
private static Query _queryClauseFrom(final EqualsQueryClause<?> eqQry) {
    if (eqQry == null || eqQry.getValue() == null) return null;

    IndexDocumentFieldID luceneFieldId = IndexDocumentFieldID.forId(eqQry.getFieldId().asstring());

    Query outQry = null;
    if (eqQry.isTextEquals()) {
        outQry = _matchTermQuery(luceneFieldId,eqQry.getValue().toString());

    } else if (eqQry.isNumberEquals()) {
        outQry = _numberEqualsQuery(luceneFieldId,eqQry.getValueAsNumber(),eqQry.getNumberType());
    } else if (eqQry.isDateEquals()) {
        outQry = _numberInRangeQuery(luceneFieldId,_createrange(eqQry.getDateMilis(),eqQry.getDateMilis(),Long.class);
    } else if (eqQry.isEnumWithCodeEquals()) {
        EnumWithCode<?,?> enumWithCode = (EnumWithCode<?,?>)eqQry.getValue();
        String codeAsstring = enumWithCode.getCode().toString();
        outQry = _matchKeywordQuery(luceneFieldId,codeAsstring);
    } else if (eqQry.isEnumEquals()) {
        Enum<?> enumSimple = (Enum<?>)eqQry.getValue();
        String enumAsstring = enumSimple.name();
        outQry = _matchKeywordQuery(luceneFieldId,enumAsstring);
    } else if (eqQry.isOIDEquals()) {
        OID oid = (OID)eqQry.getValue();
        String oidAsstring = oid.asstring();
        outQry = _matchKeywordQuery(luceneFieldId,oidAsstring);
    } else {
        throw new IllegalArgumentException();
    }
    return outQry;
}
项目:r01fb    文件LucenesearchQuery.java   
@SuppressWarnings("rawtypes")
private static <N extends Number & Comparable> Query _numberInRangeQuery(final IndexDocumentFieldID fieldId,final Range<N> range,final Class<N> numberType) {
    boolean lowerIncluded = range.hasLowerBound() && range.lowerBoundType() == BoundType.CLOSED;
    boolean upperIncluded = range.hasUpperBound() && range.upperBoundType() == BoundType.CLOSED;

    N lowerBound = range.hasLowerBound() ? range.lowerEndpoint() : null;
    N upperBound = range.hasUpperBound() ? range.upperEndpoint() : null;

    Query outNumberEqQry = null;
     if (numberType.equals(Integer.class)) {
        outNumberEqQry = NumericRangeQuery.newIntRange(fieldId.asstring(),(Integer)lowerBound,(Integer)upperBound,lowerIncluded,upperIncluded);
     } else if (numberType.equals(Long.class)) {
        outNumberEqQry = NumericRangeQuery.newLongRange(fieldId.asstring(),(Long)lowerBound,(Long)upperBound,upperIncluded);
    } else if (numberType.equals(Double.class)) {
        outNumberEqQry = NumericRangeQuery.newDoubleRange(fieldId.asstring(),(Double)lowerBound,(Double)upperBound,upperIncluded);         
    } else if (numberType.equals(Float.class)) {
        outNumberEqQry = NumericRangeQuery.newFloatRange(fieldId.asstring(),(Float)lowerBound,(Float)upperBound,upperIncluded);
    }
    return outNumberEqQry;
}
项目:gondola    文件BucketManager.java   
public ShardState lookupBucketTable(Range<Integer> range) {
    Map<Range<Integer>,ShardState> rangeMaps = bucketMap.subRangeMap(range).asMapOfRanges();
    if (rangeMaps.size() > 1) {
        boolean same = true;
        ShardState prev = null;
        for (Map.Entry<Range<Integer>,ShardState> e : rangeMaps.entrySet()) {
            Range<Integer> r = e.getKey();
            if (r.upperEndpoint() - r.lowerEndpoint() <= 1 && r.lowerBoundType() == BoundType.OPEN
                && r.upperBoundType() == BoundType.OPEN) {
                continue;
            }
            if (prev != null && !prev.equals(e.getValue())) {
                same = false;
                break;

            }
            prev = e.getValue();
        }
        if (!same) {
            throw new IllegalStateException(
                "Overlapped range found - inputRange=" + range + " ranges=" + rangeMaps.toString());
        }
        return prev;
    } else if (rangeMaps.size() == 0) {
        return null;
    }
    return rangeMaps.values().stream().findFirst().get();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。