java_gen: introduced HashValue type

This is a contract for types that support bit-wise operations
to support calculating and manipulating hash values.
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/HashFunc.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/HashFunc.java
new file mode 100644
index 0000000..f7648d7
--- /dev/null
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/HashFunc.java
@@ -0,0 +1,14 @@
+package org.projectfloodlight.openflow.types;
+
+/** A hash function that can hash a {@link PrimitiveSinkable}.
+ *
+ * @author Andreas Wundsam <andreas.wundsam@bigswitch.com>
+ * @param <H> - the hash.
+ */
+public interface HashFunc<H extends HashValue<H>> {
+    /** Hash the PrimitivateSinkable with this hash function and return the result */
+    public H hash(PrimitiveSinkable v);
+
+    /** Provide a defined null-hash */
+    public H nullHash();
+}
\ No newline at end of file