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();
}
-
}