xapi.collect.api.StringTrie Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xapi-dev Show documentation
Show all versions of xapi-dev Show documentation
Everything needed to run a comprehensive dev environment.
Just type X_ and pick a service from autocomplete;
new dev modules will be added as they are built.
The only dev service not included in the uber jar is xapi-dev-maven,
as it includes all runtime dependencies of maven, adding ~4 seconds to build time,
and 6 megabytes to the final output jar size (without xapi-dev-maven, it's ~1MB).
The newest version!
package xapi.collect.api;
import xapi.util.api.ReceivesValue;
public interface StringTrie {
interface StringTrieEdge {
E addValue(CharSequence key, int keyFrom, E value);
int depth();
StringTrieCursor hasEdge(CharSequence key, int keyFrom);
StringTrieEdge highest();
CharSequence key();
StringTrieEdge lowest();
E value();
}
interface StringTrieCursor {
int consumed();
StringTrieEdge edge();
CharSequence key();
}
// Memory management
void clear();
StringTrie compress(CharPool pool);
void destroy();
// Getters
E get(CharSequence key);
E get(CharSequence key, int start, int len);
E get(CharSequence key, StringTrieCursor cursor, ReceivesValue> cursorPointer);
// Iterators
Iterable findPrefixed(CharSequence key);
Iterable findPrefixed(CharSequence key, int start, int len);
// Setters
E put(CharSequence key, E vaue);
E put(CharSequence key, int start, int len, E value);
StringTrieCursor put(CharSequence key, E vaue, StringTrieCursor cursor);
StringTrieCursor put(CharSequence key, int start, int len, E value, StringTrieCursor cursor);
// Metadata
int size();
}