/** * @param pmml PMML model to add extension to, with no content. It may possibly duplicate * existing extensions. * @param key extension key * @param value extension value */ public static void addExtension(PMML pmml, String key, Object value) { pmml.addExtensions(new Extension().setName(key).setValue(value.toString())); }
/** * @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); }
/** * @param pmml PMML model to add extension to, with a single {@code String} content and no value. * The content is encoded as if they were being added to a PMML {@link Array} and are * space-separated with PMML quoting rules * @param key extension key * @param content list of values to add as a {@code String} */ public static void addExtensionContent(PMML pmml, String key, Collection<?> content) { if (content.isEmpty()) { return; } String joined = TextUtils.joinPMMLDelimited(content); pmml.addExtensions(new Extension().setName(key).addContent(joined)); }
static private Extension createExtension(String content){ Extension extension = new Extension() .addContent(content); return extension; }
/** * Create an instance of {@link Extension } * */ public Extension createExtension() { return new Extension(); }
@Override public Extension addContent(Object... content) { getContent().addAll(Arrays.asList(content)); return this; }
/** * 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; }
public static String getExtensionValue(PMML pmml, String name) { return pmml.getExtensions().stream().filter(extension -> name.equals(extension.getName())).findFirst(). map(Extension::getValue).orElse(null); }
@Override public VisitorAction accept(Visitor visitor) { VisitorAction status = visitor.visit(this); if (status == VisitorAction.CONTINUE) { visitor.pushParent(this); if ((status == VisitorAction.CONTINUE)&&hasContent()) { status = org.dmg.pmml.PMMLObject.traverseMixed(visitor, getContent()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
Extension extension = new Extension() .addContent(repr);
/** * Create an instance of {@link Extension } * */ public Extension createExtension() { return new Extension(); }
@Override public Extension addContent(Object... content) { getContent().addAll(Arrays.asList(content)); return this; }
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); }
@Override public VisitorAction accept(Visitor visitor) { VisitorAction status = visitor.visit(this); if (status == VisitorAction.CONTINUE) { visitor.pushParent(this); if ((status == VisitorAction.CONTINUE)&&hasContent()) { status = org.dmg.pmml.PMMLObject.traverseMixed(visitor, getContent()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
public static List<Extension> createExtensions(Map<String, String> extensionMap) { List<Extension> extensions = new ArrayList<Extension>(); for(Map.Entry<String, String> entry: extensionMap.entrySet()) { String key = entry.getKey(); Extension extension = new Extension(); extension.setName(key); extension.setValue(entry.getValue()); extensions.add(extension); } return extensions; }
/** * @param pmml PMML model to add extension to, with a single {@code String} content and no value. * The content is encoded as if they were being added to a PMML {@link Array} and are * space-separated with PMML quoting rules * @param key extension key * @param content list of values to add as a {@code String} */ public static void addExtensionContent(PMML pmml, String key, Collection<?> content) { if (content.isEmpty()) { return; } String joined = TextUtils.joinPMMLDelimited(content); pmml.addExtensions(new Extension().setName(key).addContent(joined)); }
.addExtensions(new Extension()) .setPredicate(new False());
/** * @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); }
static private List<?> getDeepContent(Object object){ Extension extension = (Extension)object; return extension.getContent(); } }