Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1345)

Unified Diff: client/fling/src/java/core/com/google/dart/fling/PrefixTree.java

Issue 9314025: Remove fling, deftserver (used only by fling), and commons-codec (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: client/fling/src/java/core/com/google/dart/fling/PrefixTree.java
===================================================================
--- client/fling/src/java/core/com/google/dart/fling/PrefixTree.java (revision 3853)
+++ client/fling/src/java/core/com/google/dart/fling/PrefixTree.java (working copy)
@@ -1,115 +0,0 @@
-// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-package com.google.dart.fling;
-
-/**
- * @param <T>
- */
-public class PrefixTree<T> {
-
- /**
- *
- * @param <A>
- */
- public static class Entry<A> {
- private final String prefix;
- private final Node<A> node;
-
- private Entry(String prefix, Node<A> node) {
- this.prefix = prefix;
- this.node = node;
- }
-
- public String getPrefix() {
- return prefix;
- }
-
- public A getValue() {
- return node.data;
- }
- }
-
- /**
- *
- * @param <A>
- */
- private static class Node<A> {
- final char splitChar;
-
- A data;
-
- Node<A> lo, ea, hi;
-
- Node(char splitChar) {
- this.splitChar = splitChar;
- }
- }
-
- private Node<T> root = null;
- private int numNodes = 0;
-
- public void add(String prefix, T obj) {
- final Node<T> nd = placeNode(prefix);
- if (nd.data == null) {
- numNodes++;
- }
- nd.data = obj;
- }
-
- public Entry<T> resolve(String key) {
- return findEntry(key, root, null, 0, key.length());
- }
-
- public int size() {
- return numNodes;
- }
-
- private Entry<T> findEntry(String key, Node<T> cNode, Entry<T> sEntry, int cur, int len) {
- if (cNode == null || cur == len) {
- return sEntry;
- } else {
- final int cp = key.charAt(cur) - cNode.splitChar;
- if (cp == 0) {
- final int nex = cur + 1;
- return findEntry(key, cNode.ea, (cNode.data == null) ? sEntry : new Entry<T>(key.substring(0, nex), cNode), nex, len);
- } else {
- return findEntry(key, (cp < 0) ? cNode.lo : cNode.hi, sEntry, cur, len);
- }
- }
- }
-
- private Node<T> placeNode(String key) {
- if (root == null) {
- root = new Node<T>(key.charAt(0));
- }
-
- Node<T> nd = root;
- int ix = 0, ln = key.length();
-
- while (true) {
- int cp = key.charAt(ix) - nd.splitChar;
- if (cp == 0) {
- ix++;
- if (ix == ln) {
- return nd;
- }
- if (nd.ea == null) {
- nd.ea = new Node<T>(key.charAt(ix));
- }
- nd = nd.ea;
- } else if (cp < 0) {
- if (nd.lo == null) {
- nd.lo = new Node<T>(key.charAt(ix));
- }
- nd = nd.lo;
- } else {
- if (nd.hi == null) {
- nd.hi = new Node<T>(key.charAt(ix));
- }
- nd = nd.hi;
- }
- }
- }
-}

Powered by Google App Engine
This is Rietveld 408576698