Index: java/org/chromium/distiller/SchemaOrgParserAccessor.java |
diff --git a/java/org/chromium/distiller/SchemaOrgParserAccessor.java b/java/org/chromium/distiller/SchemaOrgParserAccessor.java |
index 83779ecea65af6b358c1e9dc6d8d57c231a15df5..728411392b334cef74b7ecbfba4cdbc8d95016e0 100644 |
--- a/java/org/chromium/distiller/SchemaOrgParserAccessor.java |
+++ b/java/org/chromium/distiller/SchemaOrgParserAccessor.java |
@@ -19,9 +19,11 @@ import java.util.List; |
*/ |
public class SchemaOrgParserAccessor implements MarkupParser.Accessor { |
+ private static List<SchemaOrgParser.Type> supportedTypes; |
private SchemaOrgParser mParser; |
private final Element mRoot; |
private final TimingInfo mTimingInfo; |
+ private static final String ENGLISH_LANGUAGE = "en"; |
/** |
* The object that instantiates SchemaOrgParser and implements its MarkupParser.Accessor |
@@ -36,6 +38,11 @@ public class SchemaOrgParserAccessor implements MarkupParser.Accessor { |
mTimingInfo = timingInfo; |
} |
+ static { |
+ supportedTypes = new ArrayList<>(); |
+ supportedTypes.add(SchemaOrgParser.Type.RECIPE); |
+ } |
+ |
private void init() { |
if (mParser == null) { |
mParser = new SchemaOrgParser(mRoot, mTimingInfo); |
@@ -184,6 +191,32 @@ public class SchemaOrgParserAccessor implements MarkupParser.Accessor { |
} |
/** |
+ * Get schema.org parsed content. |
+ * |
+ * Content is generated when a main entity is identified or |
+ * has only one entity item parsed and it is supported |
+ * |
+ * @return HTML output from the supported item. |
+ */ |
+ @Override |
+ public String getStructuredData() { |
+ init(); |
wychen
2016/05/31 21:56:34
Only init() when the page is in English.
dalmirsilva
2016/07/06 17:53:34
Done.
|
+ String output = ""; |
+ if (DomUtil.getLanguage(mRoot).contains(ENGLISH_LANGUAGE)) { |
wychen
2016/05/31 21:56:34
Strictly speaking, the lang code should "start wit
dalmirsilva
2016/07/06 17:53:34
Done.
|
+ SchemaOrgParser.ThingItem entity = mParser.getMainEntity(); |
+ List<SchemaOrgParser.ThingItem> topLevelEntities = |
+ mParser.getTopLevelEntities(); |
+ if (entity == null && topLevelEntities.size() == 1) { |
+ entity = topLevelEntities.get(0); |
+ } |
+ if (entity != null && supportedTypes.contains(entity.getType())) { |
+ output = entity.generateOutput(); |
+ } |
+ } |
+ return output; |
+ } |
+ |
+ /** |
* Sort a list of {@link SchemaOrgParser.ArticleItem}s by their area |
* in descending order. |
* @param articles List of {@link SchemaOrgParser.ArticleItem}s to |