Index: java/org/chromium/distiller/webdocument/WebTag.java |
diff --git a/java/org/chromium/distiller/webdocument/WebTag.java b/java/org/chromium/distiller/webdocument/WebTag.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ecf6e70c2d493a35e58f58bfb57ee72eb74860fd |
--- /dev/null |
+++ b/java/org/chromium/distiller/webdocument/WebTag.java |
@@ -0,0 +1,50 @@ |
+package org.chromium.distiller.webdocument; |
+ |
+import java.util.HashSet; |
+import java.util.Set; |
+ |
+/** |
+ * This class represents HTML tags that need to be preserved over |
+ * the distillation process. |
+ */ |
+public class WebTag extends WebElement { |
+ private String tagName; |
+ private TagType tagType; |
+ |
+ public enum TagType { |
+ START, END |
+ } |
+ |
+ private static Set<String> nestingTags; |
+ static { |
+ nestingTags = new HashSet<String>(); |
+ nestingTags.add("UL"); |
+ nestingTags.add("OL"); |
+ nestingTags.add("LI"); |
+ } |
+ |
+ public WebTag(String tagName, TagType tagType) { |
+ this.tagName = tagName; |
+ this.tagType = tagType; |
+ } |
+ |
+ public boolean isStartTag() { |
+ return tagType == TagType.START; |
+ } |
+ |
+ public String getTagName() { |
+ return tagName; |
+ } |
+ |
+ @Override |
+ public String generateOutput(boolean textOnly) { |
+ if (textOnly) { |
+ return ""; |
+ } |
+ return "<" + (isStartTag() ? "" : "/") + tagName + ">"; |
+ } |
+ |
+ public static boolean canBeNested(String tagName) { |
+ return nestingTags.contains(tagName); |
+ } |
+} |