Add NameTree
diff --git a/src/main/java/com/intel/jndn/utils/NameTree.java b/src/main/java/com/intel/jndn/utils/NameTree.java
new file mode 100644
index 0000000..8ae4fcc
--- /dev/null
+++ b/src/main/java/com/intel/jndn/utils/NameTree.java
@@ -0,0 +1,45 @@
+/*
+ * jndn-utils
+ * Copyright (c) 2016, Intel Corporation.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU Lesser General Public License,
+ * version 3, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
+ * more details.
+ */
+
+package com.intel.jndn.utils;
+
+import net.named_data.jndn.Name;
+
+import java.util.Collection;
+import java.util.Optional;
+
+/**
+ * @author Andrew Brown, andrew.brown@intel.com
+ */
+public interface NameTree<T> {
+  Optional<T> content();
+
+  Name.Component lastComponent();
+
+  Name fullName();
+
+  Collection<NameTree<T>> children();
+
+  NameTree<T> parent();
+
+  NameTree<T> insert(Name name, T content);
+
+  Optional<NameTree<T>> find(Name query);
+
+  Optional<NameTree<T>> delete(Name name);
+
+  int count();
+
+  void clear();
+}