Debian only package Guava's Java 8+ (JRE) flavor in libguava-java,
not the Android flavor. The "Predicate" class of the JRE flavor extends "java.util.function.Predicate", so the lambdas need to override both the "apply()" and "test()" methods.

Find attached a patch to adopt the lambdas accordingly, to work with the JRE flavor.

-- Lukas
Description: Make lambdas use Guava's Java 8 (JRE) flavor
 Debian and Ubuntu only package Guava's Java 8+ (JRE) flavor in libguava-java,
 not the Android flavor. The "Predicate" class of the JRE flavor extends
 "java.util.function.Predicate", so the lambdas need to override both the
 "apply()" and "test()" methods.

Author: Lukas Märdian <sl...@ubuntu.com>
Bug: https://github.com/w3c/epubcheck/pull/833#issuecomment-367052775
Bug-Debian: https://bugs.debian.org/963444
Forwarded: https://bugs.debian.org/963444
Last-Update: 2021-01-06

--- epubcheck-4.2.4.orig/src/main/java/com/adobe/epubcheck/ocf/OCFChecker.java
+++ epubcheck-4.2.4/src/main/java/com/adobe/epubcheck/ocf/OCFChecker.java
@@ -359,6 +359,11 @@ public class OCFChecker
                     || (validationVersion == EPUBVersion.VERSION_3
                         && ((OPFHandler30) opfHandler).getLinkedResources().hasPath(entry));
               }
+              @Override
+              public boolean test(OPFHandler opfHandler)
+              {
+                return apply(opfHandler);
+              }
             }).isPresent())
         {
           report.message(MessageId.OPF_003, EPUBLocation.create(ocf.getName()), entry);
--- epubcheck-4.2.4.orig/src/main/java/com/adobe/epubcheck/opf/MetadataSet.java
+++ epubcheck-4.2.4/src/main/java/com/adobe/epubcheck/opf/MetadataSet.java
@@ -237,6 +237,11 @@ public final class MetadataSet
       {
         return tryFind(meta.getRefiners(), property, value).isPresent();
       }
+      @Override
+      public boolean test(Metadata meta)
+      {
+        return apply(meta);
+      }
     });
   }
 
@@ -274,6 +279,11 @@ public final class MetadataSet
         return property.equals(meta.getProperty())
             && (!value.isPresent() || value.get().equals(meta.getValue()));
       }
+      @Override
+      public boolean test(Metadata meta)
+      {
+        return apply(meta);
+      }
     });
   }
 
--- epubcheck-4.2.4.orig/src/main/java/com/adobe/epubcheck/opf/OPFChecker30.java
+++ epubcheck-4.2.4/src/main/java/com/adobe/epubcheck/opf/OPFChecker30.java
@@ -337,6 +337,11 @@ public class OPFChecker30 extends OPFChe
                 {
                   return item.get().getPath().equals(dict.getLocation().get().getPath());
                 }
+                @Override
+                public boolean test(Feature dict)
+                {
+                  return apply(dict);
+                }
               }).isPresent();
         }
       }
--- epubcheck-4.2.4.orig/src/main/java/com/adobe/epubcheck/opf/ValidationContext.java
+++ epubcheck-4.2.4/src/main/java/com/adobe/epubcheck/opf/ValidationContext.java
@@ -270,6 +270,11 @@ public final class ValidationContext
         {
           return input.properties.contains(property);
         }
+        @Override
+        public boolean test(ValidationContext input)
+        {
+          return apply(input);
+        }
       };
     }
 
@@ -286,6 +291,11 @@ public final class ValidationContext
         {
           return input.pubTypes.contains(type);
         }
+        @Override
+        public boolean test(ValidationContext input)
+        {
+          return apply(input);
+        }
       };
     }
 
@@ -302,6 +312,11 @@ public final class ValidationContext
         {
           return input.mimeType.equals(mimetype);
         }
+        @Override
+        public boolean test(ValidationContext input)
+        {
+          return apply(input);
+        }
       };
     }
 
@@ -318,6 +333,11 @@ public final class ValidationContext
         {
           return input.path.equals(path);
         }
+        @Override
+        public boolean test(ValidationContext input)
+        {
+          return apply(input);
+        }
       };
     }
 
@@ -334,6 +354,11 @@ public final class ValidationContext
         {
           return input.profile.equals(profile);
         }
+        @Override
+        public boolean test(ValidationContext input)
+        {
+          return apply(input);
+        }
       };
     }
 
@@ -350,6 +375,11 @@ public final class ValidationContext
         {
           return input.version.equals(version);
         }
+        @Override
+        public boolean test(ValidationContext input)
+        {
+          return apply(input);
+        }
       };
     }
 
--- epubcheck-4.2.4.orig/src/main/java/org/idpf/epubcheck/util/css/CssParser.java
+++ epubcheck-4.2.4/src/main/java/org/idpf/epubcheck/util/css/CssParser.java
@@ -705,6 +705,10 @@ public final class CssParser
         checkNotNull(cc);
         return cc.type != CssConstruct.Type.ATRULE; //TODO;
       }
+      public boolean test(CssConstruct cc)
+      {
+        return apply(cc);
+      }
     };
 
     /**
@@ -717,6 +721,10 @@ public final class CssParser
         checkNotNull(cc);
         return true; // atrule param space allows SYMBOL (aka DELIM) too
       }
+      public boolean test(CssConstruct cc)
+      {
+        return apply(cc);
+      }
     };
 
     /**
@@ -729,6 +737,10 @@ public final class CssParser
         checkNotNull(cc);
         return cc.type != CssConstruct.Type.ATRULE; //TODO
       }
+      public boolean test(CssConstruct cc)
+      {
+        return apply(cc);
+      }
     };
 
     /**
@@ -741,6 +753,10 @@ public final class CssParser
         checkNotNull(cc);
         return cc.type == CssConstruct.Type.KEYWORD || cc.type == CssConstruct.Type.STRING;
       }
+      public boolean test(CssConstruct cc)
+      {
+        return apply(cc);
+      }
     };
 
     /**
@@ -758,6 +774,10 @@ public final class CssParser
             || (cc.type == CssConstruct.Type.SYMBOL && cc.toCssString().equals("-"))
             ;
       }
+      public boolean test(CssConstruct cc)
+      {
+        return apply(cc);
+      }
     };
 
     /**
@@ -775,6 +795,10 @@ public final class CssParser
             || (cc.type == CssConstruct.Type.PSEUDO)
             ;
       }
+      public boolean test(CssConstruct cc)
+      {
+        return apply(cc);
+      }
     };
   }
 
--- epubcheck-4.2.4.orig/src/main/java/org/idpf/epubcheck/util/css/CssToken.java
+++ epubcheck-4.2.4/src/main/java/org/idpf/epubcheck/util/css/CssToken.java
@@ -201,6 +201,10 @@ final class CssToken
         return input.type == CssToken.Type.CHAR
             && (input.getChar() == ';' || input.getChar() == '{');
       }
+      public final boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     /**
@@ -213,6 +217,10 @@ final class CssToken
         return input.type == CssToken.Type.CHAR
             && (input.getChar() == ';' || input.getChar() == '}');
       }
+      public final boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     /**
@@ -225,6 +233,10 @@ final class CssToken
         return input.type == CssToken.Type.CHAR
             && (input.getChar() == ',' || input.getChar() == '{');
       }
+      public final boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     /**
@@ -236,6 +248,10 @@ final class CssToken
       {
         return input.type == CssToken.Type.CHAR && (input.getChar() == ':');
       }
+      public final boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     /**
@@ -247,6 +263,10 @@ final class CssToken
       {
         return input.type == CssToken.Type.CHAR && (input.getChar() == '|');
       }
+      public final boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     /**
@@ -258,6 +278,10 @@ final class CssToken
       {
         return input.type == CssToken.Type.CHAR && (input.getChar() == '}');
       }
+      public final boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     /**
@@ -269,6 +293,10 @@ final class CssToken
       {
         return input.type == CssToken.Type.CHAR && (input.getChar() == '{');
       }
+      public final boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     /**
@@ -282,6 +310,10 @@ final class CssToken
         return input.type == CssToken.Type.CHAR
             && (input.getChar() == '>' || input.getChar() == '+' || input.getChar() == '~');
       }
+      public final boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     /**
@@ -293,6 +325,10 @@ final class CssToken
       {
         return input.type == CssToken.Type.CHAR && (input.getChar() == ';');
       }
+      public final boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     /**
@@ -304,6 +340,10 @@ final class CssToken
       {
         return input.type == CssToken.Type.CHAR && (input.getChar() == ',');
       }
+      public final boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     /**
@@ -315,6 +355,10 @@ final class CssToken
       {
         return input.type == CssToken.Type.CHAR && (input.getChar() == ')');
       }
+      public final boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     /**
@@ -326,6 +370,10 @@ final class CssToken
       {
         return input.type == CssToken.Type.CHAR && (input.getChar() == '(');
       }
+      public final boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     /**
@@ -338,6 +386,10 @@ final class CssToken
         return input.type == CssToken.Type.CHAR
             && (input.getChar() == '*' || input.getChar() == '|');
       }
+      public final boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     /**
@@ -349,6 +401,10 @@ final class CssToken
       {
         return input.type == CssToken.Type.CHAR && (input.getChar() == '*');
       }
+      public final boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     /**
@@ -360,6 +416,10 @@ final class CssToken
       {
         return input.type == CssToken.Type.CHAR && (input.getChar() == '[');
       }
+      public final boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     /**
@@ -371,6 +431,10 @@ final class CssToken
       {
         return input.type == CssToken.Type.CHAR && (input.getChar() == ']');
       }
+      public final boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     /**
@@ -383,6 +447,10 @@ final class CssToken
         return input.type == CssToken.Type.IDENT || input.type == CssToken.Type.STRING;
 
       }
+      public final boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     static final Predicate<CssToken> MATCH_ATTRIBUTE_SELECTOR_MATCHERS = new Predicate<CssToken>()
@@ -395,6 +463,10 @@ final class CssToken
             || input.type == CssToken.Type.SUBSTRINGMATCH;
 
       }
+      public final boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
   }
 
--- epubcheck-4.2.4.orig/src/main/java/org/idpf/epubcheck/util/css/CssTokenList.java
+++ epubcheck-4.2.4/src/main/java/org/idpf/epubcheck/util/css/CssTokenList.java
@@ -188,6 +188,10 @@ final class CssTokenList extends ArrayLi
       {
         return !(input.type == Type.S || input.type == Type.COMMENT);
       }
+      public boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     /**
@@ -200,6 +204,10 @@ final class CssTokenList extends ArrayLi
         return !(input.type == Type.S || input.type == Type.COMMENT
             || input.type == Type.CDO || input.type == Type.CDC);
       }
+      public boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
     /**
@@ -211,6 +219,10 @@ final class CssTokenList extends ArrayLi
       {
         return true;
       }
+      public boolean test(final CssToken input)
+      {
+        return apply(input);
+      }
     };
 
   }

Reply via email to