@Override public ProductMessage onVersionMessage(List<Message> messages) throws ParseException { VersionMessage version = Messages.getVersionMessage(messages); if (!version.getLanguage().equals(JAVA)) { throw new IllegalArgumentException("wrong language in version message"); } ProductMessage ast = Messages.getProductMessage(messages, AST, JAVA); if (!ast.getLanguage().equals(JAVA)) { throw new IllegalArgumentException("wrong language in ast product message"); } NonTerminal root = (NonTerminal) ASTs.decode(ast); OutlineTrimmer trimmer = new OutlineTrimmer(); root.accept(trimmer); return new ProductMessage( version.getVersionId(), new LongKey(1), version.getSource(), OUTLINE, JAVA, Outlines.encode(trimmer.getConverted()), new ProductDependency(ast)); }
public static ProductMessage getProductMessage( List<Message> messages, Product product, Language language) { if (messages == null) throw new IllegalArgumentException("Message list was null"); ProductMessage productMessage = messages .stream() .filter( msg -> { if (msg instanceof ProductMessage) { ProductMessage msg1 = (ProductMessage) msg; return msg1.getProduct().equals(product) && msg1.getLanguage().equals(language); } else { return false; } }) .findAny() .map(msg -> (ProductMessage) msg) .get(); if (productMessage == null) { throw new IllegalArgumentException( String.format("ProductMessage missing: %s, %s", product, language)); } return productMessage; }