This is an automated email from the ASF dual-hosted git repository.

markus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nutch.git


The following commit(s) were added to refs/heads/master by this push:
     new 18e7aebe7 NUTCH-3101 src/java/org/apache/nutch/crawl/Inlink.java
18e7aebe7 is described below

commit 18e7aebe7e128a54353e1ac1fcbeb250f0afe2c0
Author: Markus Jelsma <[email protected]>
AuthorDate: Thu Jan 9 13:41:59 2025 +0200

    NUTCH-3101 src/java/org/apache/nutch/crawl/Inlink.java
---
 src/java/org/apache/nutch/crawl/Inlink.java | 42 +++++++++++++++++++++++++++--
 1 file changed, 40 insertions(+), 2 deletions(-)

diff --git a/src/java/org/apache/nutch/crawl/Inlink.java 
b/src/java/org/apache/nutch/crawl/Inlink.java
index 6304c968b..5485892e6 100644
--- a/src/java/org/apache/nutch/crawl/Inlink.java
+++ b/src/java/org/apache/nutch/crawl/Inlink.java
@@ -19,7 +19,9 @@ package org.apache.nutch.crawl;
 import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
+import java.util.Map.Entry;
 
+import org.apache.hadoop.io.MapWritable;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.io.Writable;
 
@@ -28,6 +30,7 @@ public class Inlink implements Writable {
 
   private String fromUrl;
   private String anchor;
+  private MapWritable md = null;
 
   public Inlink() {
   }
@@ -41,6 +44,13 @@ public class Inlink implements Writable {
   public void readFields(DataInput in) throws IOException {
     fromUrl = Text.readString(in);
     anchor = Text.readString(in);
+    boolean hasMD = in.readBoolean();
+    if (hasMD) {
+      md = new org.apache.hadoop.io.MapWritable();
+      md.readFields(in);
+    } else {
+      md = null;
+    }
   }
 
   /**
@@ -51,12 +61,23 @@ public class Inlink implements Writable {
   public static void skip(DataInput in) throws IOException {
     Text.skip(in); // skip fromUrl
     Text.skip(in); // skip anchor
+    boolean hasMD = in.readBoolean();
+    if (hasMD) {
+      MapWritable metadata = new org.apache.hadoop.io.MapWritable();
+      metadata.readFields(in);
+    }
   }
 
   @Override
   public void write(DataOutput out) throws IOException {
     Text.writeString(out, fromUrl);
     Text.writeString(out, anchor);
+    if (md != null && md.size() > 0) {
+      out.writeBoolean(true);
+      md.write(out);
+    } else {
+      out.writeBoolean(false);
+    }
   }
 
   public static Inlink read(DataInput in) throws IOException {
@@ -73,6 +94,14 @@ public class Inlink implements Writable {
     return anchor;
   }
 
+  public MapWritable getMetadata() {
+    return md;
+  }
+
+  public void setMetadata(MapWritable md) {
+    this.md = md;
+  }
+
   @Override
   public boolean equals(Object o) {
     if (!(o instanceof Inlink))
@@ -89,7 +118,16 @@ public class Inlink implements Writable {
 
   @Override
   public String toString() {
-    return "fromUrl: " + fromUrl + " anchor: " + anchor;
+    StringBuilder buffer = new StringBuilder();
+    if (md != null && !md.isEmpty()) {
+      for (Entry<Writable, Writable> e : md.entrySet()) {
+        buffer.append(" ");
+        buffer.append(e.getKey());
+        buffer.append(": ");
+        buffer.append(e.getValue());
+      }
+    }
+
+    return "fromUrl: " + fromUrl + " anchor: " + anchor + " metadata: " + 
buffer.toString();
   }
-
 }

Reply via email to