All files / lib/core patterngroup.js

0% Statements 0/10
0% Branches 0/2
0% Functions 0/4
0% Lines 0/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30                                                           
/**
 * PatternGroup -- a collection of one or more RoutePatterns associated with
 * a PathSegment
 */
export default class PatternGroup {
  constructor() {
    this.patterns = []
 
    // lookup tables mapping pattern IDs to their from/to indices in the containing PathSegment
    this.fromIndexLookup = {}
    this.toIndexLookup = {}
  }
 
  addPattern(pattern, fromIndex, toIndex) {
    if (this.patterns.indexOf(pattern) === -1) {
      this.patterns.push(pattern)
      this.fromIndexLookup[pattern.pattern_id] = fromIndex
      this.toIndexLookup[pattern.pattern_id] = toIndex
    }
  }
 
  getFromIndex(pattern) {
    return this.fromIndexLookup[pattern.pattern_id]
  }
 
  getToIndex(pattern) {
    return this.toIndexLookup[pattern.pattern_id]
  }
}