# HG changeset patch # User František Kučera # Date 1580327412 -3600 # Node ID a2aa84f310a58c19e43810acb8f05414e1799d04 # Parent 1a067a217454ef9e51212b5abbbe75dd980ecfee streamlet examples: documentation diff -r 1a067a217454 -r a2aa84f310a5 streamlet-examples/JarInfo.java --- a/streamlet-examples/JarInfo.java Wed Jan 29 18:41:42 2020 +0100 +++ b/streamlet-examples/JarInfo.java Wed Jan 29 20:50:12 2020 +0100 @@ -21,8 +21,27 @@ import java.util.List; import java.util.jar.JarFile; +/** + *

+ * This streamlet provides metadata from JAR (or ZIP) files.

+ * + *

+ * With no options it returns the main class (if any) and number of entries (files and directories) in the archive.

+ * + *

+ * Specific attributes can be selected using options – e.g. --option 'attribute' '…' Supported attributes are:

+ * + * + */ public class JarInfo extends Streamlet { + // TODO: total size + // TODO: OSGi metadata etc. + // TODO: more OOP, move to separate repository, proper Maven project, clean-up, stabilize API public static final String ATTRIBUTE_COMMENT = "comment"; public static final String ATTRIBUTE_ENTRIES = "entries"; public static final String ATTRIBUTE_MAIN_CLASS = "main_class"; @@ -33,14 +52,6 @@ JarInfo s = new JarInfo(); int status = s.run(); System.exit(status); - - // TODO: return real values: - JarFile jar = new JarFile(new File(args[0])); - String mainClass = jar.getManifest() == null ? null : jar.getManifest().getMainAttributes().getValue("Main-Class"); - System.out.println("Name: " + jar.getName()); - System.out.println("Comment: " + jar.getComment()); - System.out.println("Entries: " + jar.stream().count()); - System.out.println("Main class: " + mainClass); } protected List getOutputAttributesMetadata() { diff -r 1a067a217454 -r a2aa84f310a5 streamlet-examples/xpath.cpp --- a/streamlet-examples/xpath.cpp Wed Jan 29 18:41:42 2020 +0100 +++ b/streamlet-examples/xpath.cpp Wed Jan 29 20:50:12 2020 +0100 @@ -21,6 +21,27 @@ #include #include +/** + * This streamlet provides values from XML files. + * It uses the XPath language to define, what portion of XML should be returned. + * + * With no options it does not provide any attributes. + * + * XPath expressions are passed as 'attribute' options. + * e.g. --option 'attribute' 'name()' will return single attribute with the name of the root node. + * + * Attributes can be renamed using aliases: --option 'attribute' 'name()' --as 'name'. Otherwise the full XPath expression is used as a name. + * Number of aliases should match the number of attributes (otherwise only first attributes are renamed, because aliases are global, not relative to the --option). + * + * Like relpipe-in-xmltable, this streamlet supports several modes: + * - string + * - boolean + * - raw-xml + * - line-number + * - xpath + * + * TODO: more OOP, move to separate repository, proper CMake project, clean-up, stabilize API + */ class XPathStreamlet : public Streamlet { private: xmlpp::Node::PrefixNsMap ns;