Chromium Code Reviews| 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 |