项目:tac-kbp-eal
文件:QuoteFilter.java
private QuoteFilter(Map<Symbol,ImmutableRangeSet<Integer>> docIdToBannedRegions) {
this.docIdToBannedRegions = ImmutableMap.copyOf(docIdToBannedRegions);
for (RangeSet<Integer> rs : docIdToBannedRegions.values()) {
for (final Range<Integer> r : rs.asRanges()) {
checkArgument(r.hasLowerBound());
checkArgument(r.hasUpperBound());
checkArgument(r.lowerEndpoint() >= 0);
}
}
// these ensure we can serialize safely
for (Symbol sym : docIdToBannedRegions.keySet()) {
final String s = sym.toString();
checkArgument(!s.isEmpty(),"Document IDs may not be empty");
checkArgument(!CharMatcher.WHITESPACE.matchesAnyOf(s),"Document IDs may not contain whitespace: %s",s);
}
}
项目:javaide
文件:Formatter.java
/**
* Converts zero-indexed,[closed,open) line ranges in the given source file to character ranges.
*/
public static RangeSet<Integer> lineRangesToCharRanges(
String input,RangeSet<Integer> lineRanges) {
List<Integer> lines = new ArrayList<>();
Iterators.addAll(lines,Newlines.lineOffsetIterator(input));
lines.add(input.length() + 1);
final RangeSet<Integer> characterRanges = TreeRangeSet.create();
for (Range<Integer> lineRange :
lineRanges.subRangeSet(Range.closedOpen(0,lines.size() - 1)).asRanges()) {
int lineStart = lines.get(lineRange.lowerEndpoint());
// Exclude the trailing newline. This isn't strictly necessary,but handling blank lines
// as empty ranges is convenient.
int lineEnd = lines.get(lineRange.upperEndpoint()) - 1;
Range<Integer> range = Range.closedOpen(lineStart,lineEnd);
characterRanges.add(range);
}
return characterRanges;
}
项目:javaide
文件:Formatter.java
/**
* Emit a list of {@link Replacement}s to convert from input to output.
*
* @param input the input compilation unit
* @param characterRanges the character ranges to reformat
* @return a list of {@link Replacement}s,sorted from low index to high index,without overlaps
* @throws FormatterException if the input string cannot be parsed
*/
public ImmutableList<Replacement> getFormatReplacements(
String input,Collection<Range<Integer>> characterRanges) throws FormatterException {
JavaInput javaInput = new JavaInput(input);
// TODO(cushon): this is only safe because the modifier ordering doesn't affect whitespace,// and doesn't change the replacements that are output. This is not true in general for
// 'de-linting' changes (e.g. import ordering).
javaInput = ModifierOrderer.reorderModifiers(javaInput,characterRanges);
String lineSeparator = Newlines.guessLineSeparator(input);
JavaOutput javaOutput =
new JavaOutput(lineSeparator,javaInput,new JavaCommentsHelper(lineSeparator,options));
try {
format(javaInput,javaOutput,options);
} catch (FormattingError e) {
throw new FormatterException(e.diagnostics());
}
RangeSet<Integer> tokenRangeSet = javaInput.characterRangesToTokenRanges(characterRanges);
return javaOutput.getFormatReplacements(tokenRangeSet);
}
项目:hashsdn-controller
文件:FrontendShardDataTreeSnapshotMetadataTest.java
private static FrontendClientMetadata createFrontedClientMetadata(final long num) {
final String index = String.valueOf(num);
final String indexName = "test_" + index;
final FrontendIdentifier frontendIdentifier = FrontendIdentifier.create(MemberName.forName(indexName),FrontendType.forName(index));
final ClientIdentifier clientIdentifier = ClientIdentifier.create(frontendIdentifier,num);
final RangeSet<UnsignedLong> purgedHistories = TreeRangeSet.create();
purgedHistories.add(Range.closed(UnsignedLong.ZERO,UnsignedLong.ONE));
final Collection<FrontendHistoryMetadata> currentHistories = Collections.singleton(
new FrontendHistoryMetadata(num,num,true,ImmutableMap.of(UnsignedLong.ZERO,Boolean.TRUE),purgedHistories));
return new FrontendClientMetadata(clientIdentifier,purgedHistories,currentHistories);
}
项目:Mastering-Mesos
文件:CrontabEntry.java
private CrontabEntry(
RangeSet<Integer> minute,RangeSet<Integer> hour,RangeSet<Integer> dayOfMonth,RangeSet<Integer> month,RangeSet<Integer> dayOfWeek) {
checkEnclosed("minute",MINUTE,minute);
checkEnclosed("hour",HOUR,hour);
checkEnclosed("dayOfMonth",DAY_OF_MONTH,dayOfMonth);
checkEnclosed("month",MONTH,month);
checkEnclosed("dayOfWeek",DAY_OF_WEEK,dayOfWeek);
this.minute = ImmutableRangeSet.copyOf(minute);
this.hour = ImmutableRangeSet.copyOf(hour);
this.dayOfMonth = ImmutableRangeSet.copyOf(dayOfMonth);
this.month = ImmutableRangeSet.copyOf(month);
this.dayOfWeek = ImmutableRangeSet.copyOf(dayOfWeek);
checkArgument(hasWildcardDayOfMonth() || hasWildcardDayOfWeek(),"Specifying both dayOfWeek and dayOfMonth is not supported.");
}
项目:Mastering-Mesos
文件:QuotaManager.java
private static Predicate<IAssignedTask> buildNonUpdatingTasksFilter(
final Map<IJobKey,IJobUpdateInstructions> roleJobUpdates) {
return task -> {
Optional<IJobUpdateInstructions> update = Optional.fromNullable(
roleJobUpdates.get(task.getTask().getJob()));
if (update.isPresent()) {
IJobUpdateInstructions instructions = update.get();
RangeSet<Integer> initialInstances = getInstanceIds(instructions.getInitialState());
RangeSet<Integer> desiredInstances = getInstanceIds(instructions.isSetDesiredState()
? ImmutableSet.of(instructions.getDesiredState())
: ImmutableSet.of());
int instanceId = task.getInstanceId();
return !initialInstances.contains(instanceId) && !desiredInstances.contains(instanceId);
}
return true;
};
}
项目:bioasq
文件:TokenConceptAbstractQueryGenerator.java
@Override
public void process(JCas jcas) throws AnalysisEngineProcessException {
Collection<Concept> concepts = TypeUtil.getConcepts(jcas);
List<QueryConcept> qconcepts = ConceptAbstractQueryGenerator
.createQueryConceptsFromConceptMentions(jcas,concepts,useType,useWeight);
// filter tokens that are covered by concept mentions
RangeSet<Integer> cmentionRanges = TreeRangeSet.create();
concepts.stream().map(TypeUtil::getConceptMentions).flatMap(Collection::stream)
.map(cmention -> Range.closedOpen(cmention.getBegin(),cmention.getEnd()))
.forEach(cmentionRanges::add);
// create an aquery using all tokens with POS in posTags set
List<Token> tokens = TypeUtil.getOrderedTokens(jcas).stream().filter(token -> !cmentionRanges
.encloses(Range.closedOpen(token.getBegin(),token.getEnd()))).collect(toList());
List<QueryConcept> qconceptTokens = TokenSelectionAbstractQueryGenerator
.createQueryConceptsFromTokens(jcas,tokens,posTags,stoplist);
qconceptTokens.addAll(qconcepts);
AbstractQuery aquery = TypeFactory.createAbstractQuery(jcas,qconceptTokens);
aquery.addToIndexes();
// create a backup aquery using only nouns
List<QueryConcept> qconceptNouns = TokenSelectionAbstractQueryGenerator
.createQueryConceptsFromTokens(jcas,nounTags,stoplist);
qconceptNouns.addAll(qconcepts);
AbstractQuery aqueryNoun = TypeFactory.createAbstractQuery(jcas,qconceptNouns);
aqueryNoun.addToIndexes();
}
项目:heap-dump
文件:HotspotHeap.java
private void addCmsRanges(RangeSet<Long> ranges,ConcurrentMarkSweepGeneration generation) {
CompactibleFreeListSpace space = generation._cmsSpace();
FreeChunk freeChunk = hotspot.getStructs().staticStruct(FreeChunk.class);
oopDesc oop = hotspot.getStructs().staticStruct(oopDesc.class);
Klass klass = hotspot.getStructs().staticStruct(Klass.class);
long minChunkSize = hotspot.alignUp(hotspot.getTypes().getType("FreeChunk").getSize(),hotspot.getMinObjAlignmentInBytes());
ranges.add(Range.closedOpen(space._bottom(),space._end()));
for (long cur = space._bottom(); cur < space._end();) {
freeChunk.setAddress(cur);
if (freeChunk.isFreeChunk(hotspot)) {
ranges.remove(Range.closedOpen(cur,cur + freeChunk.size(hotspot)));
cur += freeChunk.size(hotspot);
} else {
oop.setAddress(cur);
oop.getKlass(hotspot,klass);
cur += Math.max(oop.getObjectSize(hotspot,klass),minChunkSize);
}
}
}
项目:cerberus-serverless-components
文件:RateLimitingProcessor.java
/**
* 1. Build a map of requests identified by ip-date-time(minutes accuracy) this will give us rate / min by ip.
* 2. Create a range set for ips we do not want to auto block that we can query.
* 3. Collect the do not auto block range set,the ranges of ips for the manual block list.
* 4. Get the current violators from the request map that have requests grouped by ip and minutes
* 5. Filter and Truncate to remove expired IP address and IPs that are on the White or Black manual lists
* and ensure that we are under the ip limit for an IP Set
* 6. Save the violators data.
* 7. Update the auto block ip set to reflect the current violators data.
*
* @param events The Cloud Front log events
* @param config The Cloud Formation outputs from when this Lambda was created
* @param bucketName The Bucket that we are operating from
*/
@Override
public void processLogEvents(List<CloudFrontLogEvent> events,CloudFrontLogHandlerConfig config,String bucketName) {
Map<String,Integer> reqIdCountMap = new HashMap<>();
// Build a map of requests identified by ip-date-time(minutes accuracy) this will give us rate / min by ip
events.forEach(cloudFrontLogEvent -> processRequest(cloudFrontLogEvent,reqIdCountMap));
// Collect the do not auto block range set,the ranges of ips for the manual block and white list.
RangeSet<Integer> doNotAutoBlockIpRangeSet = getDoNotBlockRangeSet(config);
// Get the current violators
Map<String,ViolationMetaData> violators = getCurrentViolators(reqIdCountMap,config);
// Get and merge in all the currently blocked violators
violators.putAll(getCurrentlyBlockedIpsAndDateViolatedMap(bucketName));
// Filter and truncate to remove expired blocks and ensure that we are under the ip limit for an IP Set
violators = filterAndTruncateViolators(config,doNotAutoBlockIpRangeSet,violators);
// Save the violators data.
saveCurrentViolators(violators,bucketName);
// Update the auto block ip set to reflect the current violators data.
Map<String,List<String>> summery = processViolators(config,violators);
// log summery
logSummery(summery,config);
}
项目:cerberus-serverless-components
文件:RateLimitingProcessorTest.java
@Test
public void testThatFilterAndTruncateViolatorsFiltersIPsInDoNotBlockRangeSet() {
config.setRateLimitViolationBlacklistPeriodInMinutes(1);
RangeSet<Integer> doNotAutoBlockIpRangeSet = TreeRangeSet.create();
SubnetUtils subnetUtils = new SubnetUtils("50.39.100.193/32");
subnetUtils.setInclusiveHostCount(true);
SubnetUtils.SubnetInfo subnetInfo = subnetUtils.getInfo();
Integer lowIpAsInt = subnetInfo.asInteger(subnetInfo.getLowAddress());
Integer highIpAsInt = subnetInfo.asInteger(subnetInfo.getHighAddress());
doNotAutoBlockIpRangeSet.add(Range.closed(lowIpAsInt,highIpAsInt));
Map<String,ViolationMetaData> violators = new HashMap<>();
violators.put("50.39.100.193",new ViolationMetaData(new Date(),2));
Map<String,ViolationMetaData> actual = processor.filterAndTruncateViolators(config,violators);
assertTrue("The violators map should be empty after filtering",actual.size() == 0);
}
项目:cerberus-serverless-components
文件:RateLimitingProcessorTest.java
@Test
public void testThatFilterAndTruncateViolatorsTruncatesTheLowestOffenders() {
final int cidrLimit = 2;
processor.setCidrLimitForIpSetOverride(cidrLimit);
config.setRateLimitViolationBlacklistPeriodInMinutes(10);
RangeSet<Integer> rangeSet = TreeRangeSet.create();
Map<String,3));
violators.put("50.39.100.191",1));
violators.put("50.39.100.192",2));
violators.put("50.39.100.194",4));
Map<String,rangeSet,violators);
assertTrue("The violators map should be the size of the cidr limit",actual.size() == cidrLimit);
assertTrue("violators should contain 193 and 194 the highest offenders",actual.containsKey("50.39.100.193") && actual.containsKey("50.39.100.194"));
}
项目:fili
文件:DataSourceMetadata.java
/**
* Return a pair of maps containing the ranges of availability for dimensions and metrics respectively.
*
* @param metadata The metadata that contain segment availability.
*
* @return A pair of two maps of range sets. One entry is for dimensions and the other for metrics.
*/
public static Map<Columns,Map<String,RangeSet<DateTime>>> getRangeLists(DataSourceMetadata metadata) {
final Map<String,RangeSet<DateTime>> dimensionIntervals = new HashMap<>();
final Map<String,RangeSet<DateTime>> metricIntervals = new HashMap<>();
metadata.segments.stream()
.forEach(
segment -> {
buildRangeSet(segment.getDimensions(),segment.getInterval(),dimensionIntervals);
buildRangeSet(segment.getMetrics(),metricIntervals);
}
);
EnumMap<Columns,RangeSet<DateTime>>> intervals = new EnumMap<>(Columns.class);
intervals.put(DIMENSIONS,dimensionIntervals);
intervals.put(METRICS,metricIntervals);
return intervals;
}
项目:MSFTBX
文件:LCMSRangeSet.java
public boolean isEmpty() {
if (!anyLvlSet.isEmpty()) {
return false;
}
for (Map.Entry<Integer,MsLevelRangeSet> lvlMapEntry : lvlMap.entrySet()) {
MsLevelRangeSet msLevelRangeSet = lvlMapEntry.getValue();
if (!msLevelRangeSet.anyPrecursorSet.isEmpty()) {
return false;
}
for (Map.Entry<DoubleRange,RangeSet<Integer>> rngMapEntry : msLevelRangeSet.rngMap.entrySet()) {
if (!rngMapEntry.getValue().isEmpty()) {
return false;
}
}
}
return true;
}
项目:google-java-format
文件:Formatter.java
/**
* Emit a list of {@link Replacement}s to convert from input to output.
*
* @param input the input compilation unit
* @param characterRanges the character ranges to reformat
* @return a list of {@link Replacement}s,without overlaps
* @throws FormatterException if the input string cannot be parsed
*/
public ImmutableList<Replacement> getFormatReplacements(
String input,Collection<Range<Integer>> characterRanges) throws FormatterException {
JavaInput javaInput = new JavaInput(input);
// TODO(cushon): this is only safe because the modifier ordering doesn't affect whitespace,// and doesn't change the replacements that are output. This is not true in general for
// 'de-linting' changes (e.g. import ordering).
javaInput = ModifierOrderer.reorderModifiers(javaInput,characterRanges);
String lineSeparator = Newlines.guessLineSeparator(input);
JavaOutput javaOutput =
new JavaOutput(lineSeparator,options));
try {
format(javaInput,options);
} catch (FormattingError e) {
throw new FormatterException(e.diagnostics());
}
RangeSet<Integer> tokenRangeSet = javaInput.characterRangesToTokenRanges(characterRanges);
return javaOutput.getFormatReplacements(tokenRangeSet);
}
项目:google-java-format
文件:Formatter.java
/**
* Converts zero-indexed,open) line ranges in the given source file to character ranges.
*/
public static RangeSet<Integer> lineRangesToCharRanges(
String input,RangeSet<Integer> lineRanges) {
List<Integer> lines = new ArrayList<>();
Iterators.addAll(lines,Newlines.lineOffsetIterator(input));
lines.add(input.length() + 1);
final RangeSet<Integer> characterRanges = TreeRangeSet.create();
for (Range<Integer> lineRange :
lineRanges.subRangeSet(Range.closedOpen(0,lines.size() - 1)).asRanges()) {
int lineStart = lines.get(lineRange.lowerEndpoint());
// Exclude the trailing newline. This isn't strictly necessary,but handling blank lines
// as empty ranges is convenient.
int lineEnd = lines.get(lineRange.upperEndpoint()) - 1;
Range<Integer> range = Range.closedOpen(lineStart,lineEnd);
characterRanges.add(range);
}
return characterRanges;
}
项目:scylla-tools-java
文件:TokenFilter.java
/**
* Filter out the values for which the tokens are not included within the specified range.
*
* @param tokens the tokens range
* @param values the restricted values
* @return the values for which the tokens are not included within the specified range.
*/
private List<ByteBuffer> filterWithRangeSet(RangeSet<Token> tokens,List<ByteBuffer> values)
{
List<ByteBuffer> remaining = new ArrayList<>();
for (ByteBuffer value : values)
{
Token token = partitioner.getToken(value);
if (!tokens.contains(token))
continue;
remaining.add(value);
}
return remaining;
}
项目:horizondb
文件:TimeSeries.java
/**
* Returns the records of this time series that belong to the specified time ranges and are accepted by the
* specified filter.
*
* @param timeRanges the time ranges for which the data must be read
* @throws IOException if an I/O problem occurs
* @throws HorizonDBException if another problem occurs
*/
public ResourceIterator<Record> read(RangeSet<Field> timeRanges,Filter<String> recordTypeFilter,Filter<Record> filter) throws IOException,HorizonDBException {
Range<Field> span = timeRanges.span();
final Range<Field> from = this.definition.getPartitionTimeRange(span.lowerEndpoint());
final Range<Field> to;
if (from.contains(span.upperEndpoint())) {
to = from;
} else {
to = this.definition.getPartitionTimeRange(span.upperEndpoint());
}
KeyValueIterator<PartitionId,TimeSeriesPartition> rangeForRead =
this.partitionManager.getRangeForRead(toPartitionId(from),toPartitionId(to),this.definition);
return new PartitionRecordIterator(timeRanges,rangeForRead,recordTypeFilter,filter);
}
项目:yangtools
文件:SchemaContextEmitter.java
private static String toLengthString(final RangeSet<Integer> ranges) {
final Iterator<Range<Integer>> it = ranges.asRanges().iterator();
if (!it.hasNext()) {
return "";
}
final StringBuilder sb = new StringBuilder();
boolean haveNext;
do {
final Range<Integer> current = it.next();
haveNext = it.hasNext();
appendRange(sb,current.lowerEndpoint(),current.upperEndpoint(),haveNext);
} while (haveNext);
return sb.toString();
}
项目:yangtools
文件:SchemaContextEmitter.java
private static String toRangeString(final RangeSet<?> ranges) {
final Iterator<? extends Range<?>> it = ranges.asRanges().iterator();
if (!it.hasNext()) {
return "";
}
final StringBuilder sb = new StringBuilder();
boolean haveNext;
do {
final Range<?> current = it.next();
haveNext = it.hasNext();
appendRange(sb,haveNext);
} while (haveNext);
return sb.toString();
}
项目:yangtools
文件:RangeRestrictedTypeBuilder.java
final RangeConstraint<N> calculateRangeConstraint(final RangeConstraint<N> baseRangeConstraint) {
if (ranges == null) {
return baseRangeConstraint;
}
// Run through alternatives and resolve them against the base type
final RangeSet<N> baseRangeSet = baseRangeConstraint.getAllowedRanges();
Verify.verify(!baseRangeSet.isEmpty(),"Base type %s does not define constraints",getBaseType());
final Range<N> baseRange = baseRangeSet.span();
final List<ValueRange> resolvedRanges = ensureResolvedRanges(ranges,baseRange);
// Next up,ensure the of boundaries match base constraints
final RangeSet<N> typedRanges = ensureTypedRanges(resolvedRanges,baseRange.lowerEndpoint().getClass());
// Now verify if new ranges are strict subset of base ranges
if (!baseRangeSet.enclosesAll(typedRanges)) {
throw new InvalidRangeConstraintException(typedRanges,"Range constraint %s is not a subset of parent constraint %s",typedRanges,baseRangeSet);
}
return new ResolvedRangeConstraint<>(constraint,typedRanges);
}
项目:yangtools
文件:TypeTest.java
@Test
public void exceptionTest() {
final UnresolvedNumber min = UnresolvedNumber.min();
final UnresolvedNumber max = UnresolvedNumber.max();
final EnumPair enumPair = EnumPairBuilder.create("enum1",1).setDescription("description")
.setReference("reference").setUnknownSchemaNodes(mock(UnknownSchemaNode.class)).build();
final RangeSet<Integer> rangeset = ImmutableRangeSet.of(Range.closed(1,2));
final InvalidRangeConstraintException invalidRangeConstraintException = new InvalidRangeConstraintException(
rangeset,"error msg","other important messages");
assertSame(rangeset,invalidRangeConstraintException.getOffendingRanges());
final InvalidBitDefinitionException invalidBitDefinitionException = new InvalidBitDefinitionException(
BIT_A,"other important messages");
assertEquals(invalidBitDefinitionException.getOffendingBit(),BIT_A);
final InvalidEnumDefinitionException invalidEnumDefinitionException = new InvalidEnumDefinitionException(
enumPair,"other important messages");
assertEquals(invalidEnumDefinitionException.getOffendingEnum(),enumPair);
}
项目:calcite
文件:DateRangeRules.java
/** Replaces calls to EXTRACT,FLOOR and CEIL in an expression. */
@VisibleForTesting
public static RexNode replaceTimeUnits(RexBuilder rexBuilder,RexNode e,String timeZone) {
ImmutableSortedSet<TimeUnitRange> timeUnits = extractTimeUnits(e);
if (!timeUnits.contains(TimeUnitRange.YEAR)) {
// Case when we have FLOOR or CEIL but no extract on YEAR.
// Add YEAR as TimeUnit so that FLOOR gets replaced in first iteration
// with timeUnit YEAR.
timeUnits = ImmutableSortedSet.<TimeUnitRange>naturalOrder()
.addAll(timeUnits).add(TimeUnitRange.YEAR).build();
}
final Map<String,RangeSet<Calendar>> operandRanges = new HashMap<>();
for (TimeUnitRange timeUnit : timeUnits) {
e = e.accept(
new ExtractShuttle(rexBuilder,timeUnit,operandRanges,timeUnits,timeZone));
}
return e;
}
项目:calcite
文件:DateRangeRules.java
private boolean canRewriteExtract(RexNode operand) {
// We rely on timeUnits being sorted (so YEAR comes before MONTH
// before HOUR) and unique. If we have seen a predicate on YEAR,// operandRanges will not be empty. This checks whether we can rewrite
// the "extract" condition. For example,in the condition
//
// extract(MONTH from time) = someValue
// OR extract(YEAR from time) = someValue
//
// we cannot rewrite extract on MONTH.
if (timeUnit == TimeUnitRange.YEAR) {
return true;
}
final RangeSet<Calendar> calendarRangeSet =
operandRanges.get(operand.toString());
if (calendarRangeSet == null || calendarRangeSet.isEmpty()) {
return false;
}
for (Range<Calendar> range : calendarRangeSet.asRanges()) {
// Cannot reWrite if range does not have an upper or lower bound
if (!range.hasUpperBound() || !range.hasLowerBound()) {
return false;
}
}
return true;
}
项目:calcite
文件:DateRangeRules.java
private RexNode compareFloorCeil(SqlKind comparison,RexNode operand,RexLiteral timeLiteral,TimeUnitRange timeUnit,boolean floor) {
RangeSet<Calendar> rangeSet = operandRanges.get(operand.toString());
if (rangeSet == null) {
rangeSet = ImmutableRangeSet.<Calendar>of().complement();
}
final RangeSet<Calendar> s2 = TreeRangeSet.create();
final Calendar c = timestampValue(timeLiteral);
final Range<Calendar> range = floor
? floorRange(timeUnit,comparison,c)
: ceilRange(timeUnit,c);
s2.add(range);
// Intersect old range set with new.
s2.removeAll(rangeSet.complement());
operandRanges.put(operand.toString(),ImmutableRangeSet.copyOf(s2));
if (range.isEmpty()) {
return rexBuilder.makeLiteral(false);
}
return toRex(operand,range);
}
项目:peercentrum-core
文件:P2PBlobRangeSet.java
public P2PBlobRangeSet constrainMaximumSpan(int maximumSpanSize) {
int currentSize=0;
RangeSet<Integer> constrainedRange=TreeRangeSet.create();
for(Range<Integer> r: ranges.asRanges()){
int sizeOfRange=r.upperEndpoint()-r.lowerEndpoint()+1;
if(currentSize+sizeOfRange<=maximumSpanSize){
currentSize+=sizeOfRange;
constrainedRange.add(r);
}
else{
sizeOfRange=maximumSpanSize-currentSize-1;
constrainedRange.add(Range.closed(r.lowerEndpoint(),r.lowerEndpoint()+sizeOfRange));
break;
}
}
return new P2PBlobRangeSet(constrainedRange);
}
项目:sdf
文件:CharacterClassRangeSet.java
private final BitSet convertToBitSet(final RangeSet<Integer> rangeSet) {
if(rangeSet.isEmpty()) {
return new BitSet();
}
final BitSet bitSet = new BitSet(rangeSet.span().upperEndpoint());
rangeSet.asRanges().forEach(range -> {
if(!range.canonical(DiscreteDomain.integers()).isEmpty()) {
Range<Integer> closedRange = ContiguousSet.create(range,DiscreteDomain.integers()).range();
bitSet.set(closedRange.lowerEndpoint(),closedRange.upperEndpoint() + 1);
}
});
return bitSet;
}
项目:tac-kbp-eal
文件:FancierDiffLogger.java
private String context(final String originalDocText,final Response response) {
// [1,3],[2,5],[8,10] => [1,10]
final List<CharOffsetSpan> charSpans = justificationSpans(response);
final List<CharOffsetSpan> unitedSpans = Lists.newArrayList();
// use RangeSet to do this
final RangeSet<Integer> disconnected = TreeRangeSet.create();
for (CharOffsetSpan charSpan : charSpans) {
int startInclusive = charSpan.startInclusive();
int endInclusive = charSpan.endInclusive();
startInclusive = (startInclusive - 100) >= 0 ? startInclusive - 100 : 0;
endInclusive =
(endInclusive + 100) < originalDocText.length() ? endInclusive + 100 : endInclusive;
disconnected.add(Range.closed(startInclusive,endInclusive));
}
for (Range<Integer> range : disconnected.asRanges()) {
unitedSpans.add(CharOffsetSpan.fromOffsetsOnly(range.lowerEndpoint(),range.upperEndpoint()));
}
Collections.sort(unitedSpans);
String justificationsString = "";
if (unitedSpans.get(0).startInclusive() != 0) {
justificationsString += "[.....]";
}
for (CharOffsetSpan span : unitedSpans) {
justificationsString +=
originalDocText.substring(span.startInclusive(),span.endInclusive() + 1);
justificationsString += "[.....]";
}
return justificationsString;
}
项目:javaide
文件:SnippetFormatter.java
/**
* Runs the Google Java formatter on the given source,with only the given ranges specified.
*/
public List<Replacement> format(
SnippetKind kind,String source,List<Range<Integer>> ranges,int initialIndent,boolean includeComments)
throws FormatterException {
RangeSet<Integer> rangeSet = TreeRangeSet.create();
for (Range<Integer> range : ranges) {
rangeSet.add(range);
}
if (includeComments) {
if (kind != SnippetKind.COMPILATION_UNIT) {
throw new IllegalArgumentException(
"comment formatting is only supported for compilation units");
}
return formatter.getFormatReplacements(source,ranges);
}
SnippetWrapper wrapper = snippetWrapper(kind,source,initialIndent);
ranges = offsetRanges(ranges,wrapper.offset);
String replacement = formatter.formatSource(wrapper.contents.toString(),ranges);
replacement =
replacement.substring(
wrapper.offset,replacement.length() - (wrapper.contents.length() - wrapper.offset - source.length()));
List<Replacement> replacements = toReplacements(source,replacement);
List<Replacement> filtered = new ArrayList<>();
for (Replacement r : replacements) {
if (rangeSet.encloses(r.getReplaceRange())) {
filtered.add(r);
}
}
return filtered;
}
项目:javaide
文件:JavaInput.java
public RangeSet<Integer> characterRangesToTokenRanges(Collection<Range<Integer>> characterRanges)
throws FormatterException {
RangeSet<Integer> tokenRangeSet = TreeRangeSet.create();
for (Range<Integer> characterRange0 : characterRanges) {
Range<Integer> characterRange = characterRange0.canonical(DiscreteDomain.integers());
tokenRangeSet.add(
characterRangeToTokenRange(
characterRange.lowerEndpoint(),characterRange.upperEndpoint() - characterRange.lowerEndpoint()));
}
return tokenRangeSet;
}
项目:athena
文件:EncodedDiscreteResources.java
static EncodedDiscreteResources of(Set<DiscreteResource> resources,DiscreteResourceCodec codec) {
RangeSet<Integer> rangeSet = TreeRangeSet.create();
resources.stream()
.map(x -> x.valueAs(Object.class))
.flatMap(Tools::stream)
.map(x -> codec.encode(x))
.map(Range::singleton)
.map(x -> x.canonical(DiscreteDomain.integers()))
.forEach(rangeSet::add);
return new EncodedDiscreteResources(rangeSet,codec);
}
项目:athena
文件:EncodedResourcesSerializer.java
@Override
public EncodedDiscreteResources read(Kryo kryo,Input input,Class<EncodedDiscreteResources> cls) {
@SuppressWarnings("unchecked")
List<ClosedOpenRange> ranges = kryo.readObject(input,ArrayList.class);
DiscreteResourceCodec codec = (DiscreteResourceCodec) kryo.readClassAndObject(input);
RangeSet<Integer> rangeSet = TreeRangeSet.create();
ranges.stream()
.map(x -> Range.closedOpen(x.lowerBound(),x.upperBound()))
.forEach(rangeSet::add);
return new EncodedDiscreteResources(rangeSet,codec);
}
项目:hashsdn-controller
文件:AbstractFrontendHistory.java
AbstractFrontendHistory(final String persistenceId,final ShardDataTree tree,final Map<UnsignedLong,Boolean> closedTransactions,final RangeSet<UnsignedLong> purgedTransactions) {
this.persistenceId = Preconditions.checkNotNull(persistenceId);
this.tree = Preconditions.checkNotNull(tree);
this.closedTransactions = Preconditions.checkNotNull(closedTransactions);
this.purgedTransactions = Preconditions.checkNotNull(purgedTransactions);
}
项目:hashsdn-controller
文件:FrontendHistoryMetadata.java
public FrontendHistoryMetadata(final long historyId,final long cookie,final boolean closed,final RangeSet<UnsignedLong> purgedTransactions) {
this.historyId = historyId;
this.cookie = cookie;
this.closed = closed;
this.closedTransactions = ImmutableMap.copyOf(closedTransactions);
this.purgedTransactions = ImmutableRangeSet.copyOf(purgedTransactions);
}
项目:hashsdn-controller
文件:FrontendHistoryMetadata.java
public static FrontendHistoryMetadata readFrom(final DataInput in) throws IOException {
byte header = WritableObjects.readLongHeader(in);
final long historyId = WritableObjects.readFirstLong(in,header);
final long cookie = WritableObjects.readSecondLong(in,header);
final boolean closed = in.readBoolean();
header = WritableObjects.readLongHeader(in);
long ls = WritableObjects.readFirstLong(in,header);
Verify.verify(ls >= 0 && ls <= Integer.MAX_VALUE);
final int csize = (int) ls;
ls = WritableObjects.readSecondLong(in,header);
Verify.verify(ls >= 0 && ls <= Integer.MAX_VALUE);
final int psize = (int) ls;
final Map<UnsignedLong,Boolean> closedTransactions = new HashMap<>(csize);
for (int i = 0; i < csize; ++i) {
final UnsignedLong key = UnsignedLong.fromLongBits(WritableObjects.readLong(in));
final Boolean value = Boolean.valueOf(in.readBoolean());
closedTransactions.put(key,value);
}
final RangeSet<UnsignedLong> purgedTransactions = TreeRangeSet.create();
for (int i = 0; i < psize; ++i) {
final byte h = WritableObjects.readLongHeader(in);
final UnsignedLong l = UnsignedLong.fromLongBits(WritableObjects.readFirstLong(in,h));
final UnsignedLong u = UnsignedLong.fromLongBits(WritableObjects.readSecondLong(in,h));
purgedTransactions.add(Range.closed(l,u));
}
return new FrontendHistoryMetadata(historyId,cookie,closed,closedTransactions,purgedTransactions);
}
项目:hashsdn-controller
文件:StandaloneFrontendHistory.java
private StandaloneFrontendHistory(final String persistenceId,final ClientIdentifier clientId,final RangeSet<UnsignedLong> purgedTransactions) {
super(persistenceId,tree,purgedTransactions);
this.identifier = new LocalHistoryIdentifier(clientId,0);
this.tree = Preconditions.checkNotNull(tree);
}
项目:Mastering-Mesos
文件:CrontabEntry.java
private static void checkEnclosed(
String fieldName,Range<Integer> fieldEnclosure,RangeSet<Integer> field) {
checkArgument(fieldEnclosure.encloses(field.span()),String.format(
"Bad specification for field %s: span(%s) = %s is not enclosed by boundary %s.",fieldName,field,field.span(),fieldEnclosure));
}
项目:Mastering-Mesos
文件:CrontabEntry.java
private static CrontabEntry from(
RangeSet<Integer> minute,RangeSet<Integer> dayOfWeek) throws IllegalArgumentException {
return new CrontabEntry(minute,hour,dayOfMonth,month,dayOfWeek);
}
项目:Mastering-Mesos
文件:CrontabEntry.java
private String fieldToString(RangeSet<Integer> rangeSet,Range<Integer> coveringRange) {
if (rangeSet.asRanges().size() == 1 && rangeSet.encloses(coveringRange)) {
return "*";
}
List<String> components = Lists.newArrayList();
for (Range<Integer> range : rangeSet.asRanges()) {
ContiguousSet<Integer> set = ContiguousSet.create(range,DiscreteDomain.integers());
if (set.size() == 1) {
components.add(set.first().toString());
} else {
components.add(set.first() + "-" + set.last());
}
}
return String.join(",",components);
}
项目:Mastering-Mesos
文件:CrontabEntry.java
private RangeSet<Integer> parseMinute() {
RangeSet<Integer> minutes = TreeRangeSet.create();
for (String component : getComponents(rawMinute)) {
minutes.addAll(parseComponent(MINUTE,component));
}
return ImmutableRangeSet.copyOf(minutes);
}
项目:Mastering-Mesos
文件:CrontabEntry.java
private RangeSet<Integer> parseHour() {
RangeSet<Integer> hours = TreeRangeSet.create();
for (String component : getComponents(rawHour)) {
hours.addAll(parseComponent(HOUR,component));
}
return ImmutableRangeSet.copyOf(hours);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。