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); }
assertEquals(9, pmml.getExtensions().size()); assertNotNull(AppPMMLUtils.getExtensionValue(pmml, "X")); assertNotNull(AppPMMLUtils.getExtensionValue(pmml, "Y"));
assertEquals(3, pmml.getExtensions().size()); Map<String,Object> expected = new HashMap<>(); expected.put("maxSplitCandidates", MAX_SPLIT_CANDIDATES);
assertEquals(3, pmml.getExtensions().size()); Map<String,Object> expected = new HashMap<>(); expected.put("maxSplitCandidates", MAX_SPLIT_CANDIDATES);
checkHeader(pmml.getHeader()); assertEquals(8, pmml.getExtensions().size()); Map<String,Object> expected = new HashMap<>(); expected.put("features", FEATURES);
checkHeader(pmml.getHeader()); assertEquals(3, pmml.getExtensions().size()); Map<String,Object> expected = new HashMap<>(); expected.put("maxDepth", MAX_DEPTH);
@Override public PMML addExtensions(org.dmg.pmml.Extension... extensions) { getExtensions().addAll(Arrays.asList(extensions)); return this; }
@Override public PMML addExtensions(org.dmg.pmml.Extension... extensions) { getExtensions().addAll(Arrays.asList(extensions)); return this; }
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 write our fake model representation in PMML. */ private static void write(OutputStream out, ALSModelDescription model) throws JAXBException { PMML pmml = new PMML("4.2.1", null, null); for (Map.Entry<String,String> entry : model.getPathByKey().entrySet()) { Extension extension = new Extension(); extension.setName(entry.getKey()); extension.setValue(entry.getValue()); pmml.getExtensions().add(extension); } JAXBUtil.marshalPMML(pmml, new StreamResult(out)); }
/** * 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; }
@Override public VisitorAction accept(Visitor visitor) { VisitorAction status = visitor.visit(this); if (status == VisitorAction.CONTINUE) { visitor.pushParent(this); if (status == VisitorAction.CONTINUE) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getHeader(), getMiningBuildTask(), getDataDictionary(), getTransformationDictionary()); } if ((status == VisitorAction.CONTINUE)&&hasModels()) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getModels()); } if ((status == VisitorAction.CONTINUE)&&hasExtensions()) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getExtensions()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
@Override public VisitorAction accept(Visitor visitor) { VisitorAction status = visitor.visit(this); if (status == VisitorAction.CONTINUE) { visitor.pushParent(this); if (status == VisitorAction.CONTINUE) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getHeader(), getMiningBuildTask(), getDataDictionary(), getTransformationDictionary()); } if ((status == VisitorAction.CONTINUE)&&hasModels()) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getModels()); } if ((status == VisitorAction.CONTINUE)&&hasExtensions()) { status = org.dmg.pmml.PMMLObject.traverse(visitor, getExtensions()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }