aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/google/escapevelocity/ImmutableAsciiSet.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/escapevelocity/ImmutableAsciiSet.java')
-rw-r--r--src/main/java/com/google/escapevelocity/ImmutableAsciiSet.java100
1 files changed, 0 insertions, 100 deletions
diff --git a/src/main/java/com/google/escapevelocity/ImmutableAsciiSet.java b/src/main/java/com/google/escapevelocity/ImmutableAsciiSet.java
deleted file mode 100644
index 96a126c..0000000
--- a/src/main/java/com/google/escapevelocity/ImmutableAsciiSet.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2017 Google, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.escapevelocity;
-
-import java.util.AbstractSet;
-import java.util.BitSet;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-/**
- * An immutable set of ASCII characters.
- *
- * @author emcmanus@google.com (Éamonn McManus)
- */
-class ImmutableAsciiSet extends AbstractSet<Integer> {
- private final BitSet bits;
-
- ImmutableAsciiSet(BitSet bits) {
- this.bits = bits;
- }
-
- static ImmutableAsciiSet of(char c) {
- return ofRange(c, c);
- }
-
- static ImmutableAsciiSet ofRange(char from, char to) {
- if (from > to) {
- throw new IllegalArgumentException("from > to");
- }
- if (to >= 128) {
- throw new IllegalArgumentException("Not ASCII");
- }
- BitSet bits = new BitSet();
- bits.set(from, to + 1);
- return new ImmutableAsciiSet(bits);
- }
-
- ImmutableAsciiSet union(ImmutableAsciiSet that) {
- BitSet union = (BitSet) bits.clone();
- union.or(that.bits);
- return new ImmutableAsciiSet(union);
- }
-
- @Override
- public boolean contains(Object o) {
- int i = -1;
- if (o instanceof Character) {
- i = (Character) o;
- } else if (o instanceof Integer) {
- i = (Integer) o;
- }
- return contains(i);
- }
-
- boolean contains(int i) {
- if (i < 0) {
- return false;
- } else {
- return bits.get(i);
- }
- }
-
- @Override
- public Iterator<Integer> iterator() {
- return new Iterator<Integer>() {
- private int index;
-
- @Override
- public boolean hasNext() {
- return bits.nextSetBit(index) >= 0;
- }
-
- @Override
- public Integer next() {
- if (!hasNext()) {
- throw new NoSuchElementException();
- }
- int next = bits.nextSetBit(index);
- index = next + 1;
- return next;
- }
- };
- }
-
- @Override
- public int size() {
- return bits.cardinality();
- }
-}