public static String getExtensionValue(PMML pmml, String name) { return pmml.getExtensions().stream().filter(extension -> name.equals(extension.getName())).findFirst(). map(Extension::getValue).orElse(null); }
/** * @param pmml PMML model to query for extensions * @param name name of extension to query * @return content of the extension, parsed as if it were a PMML {@link Array}: * space-separated values, with PMML quoting rules */ public static List<String> getExtensionContent(PMML pmml, String name) { return pmml.getExtensions().stream().filter(extension -> name.equals(extension.getName())).findFirst(). map(extension -> { List<?> content = extension.getContent(); Preconditions.checkArgument(content.size() <= 1); return content.isEmpty() ? Collections.<String>emptyList() : Arrays.asList(TextUtils.parsePMMLDelimited(content.get(0).toString())); }).orElse(null); }
public static Extension getExtension(List<Extension> extensions, String key) { for(Extension extension: extensions) { if(key.equals(extension.getName())) { return extension; } } throw new RuntimeException("No such extension: " + key); }
public static Extension getExtension(List<Extension> extensions, String key) { for(Extension extension: extensions) { if(key.equals(extension.getName())) { return extension; } } throw new RuntimeException("No such extension: " + key); }
public static String getExtensionValue(PMML pmml, String name) { return pmml.getExtensions().stream().filter(extension -> name.equals(extension.getName())).findFirst(). map(Extension::getValue).orElse(null); }
/** * @param pmml PMML model to query for extensions * @param name name of extension to query * @return content of the extension, parsed as if it were a PMML {@link Array}: * space-separated values, with PMML quoting rules */ public static List<String> getExtensionContent(PMML pmml, String name) { return pmml.getExtensions().stream().filter(extension -> name.equals(extension.getName())).findFirst(). map(extension -> { List<?> content = extension.getContent(); Preconditions.checkArgument(content.size() <= 1); return content.isEmpty() ? Collections.<String>emptyList() : Arrays.asList(TextUtils.parsePMMLDelimited(content.get(0).toString())); }).orElse(null); }
/** * Quite manually parse our fake model representation in PMML. */ private static ALSModelDescription read(InputStream in) throws JAXBException, SAXException { PMML pmml = JAXBUtil.unmarshalPMML(ImportFilter.apply(new InputSource(in))); List<Extension> extensions = pmml.getExtensions(); Preconditions.checkNotNull(extensions); Preconditions.checkArgument(!extensions.isEmpty()); ALSModelDescription model = new ALSModelDescription(); for (Extension extension : extensions) { String name = extension.getName(); String value = extension.getValue(); Preconditions.checkNotNull(name); Preconditions.checkNotNull(value); model.getPathByKey().put(name, value); } return model; }
static private void checkExtension(String name, String value, Extension extension){ assertEquals(name, extension.getName()); assertEquals(value, extension.getValue()); } }