#ifndef PATTERN_H_
#define PATTERN_H_
+#include <list>
#include <string>
+/**
+Stores a filename pattern. A pattern consists of a prefix and a suffix, and
+can be applied to a body to form a complete filename. Either or both of the
+prefix and suffix may be empty.
+*/
class Pattern
{
private:
std::string suffix;
public:
+ /** Constructs a pattern from a single string. The string must have exactly
+ one percent sign (%) to separate the prefix and suffix. */
Pattern(const std::string &);
+ /** Applies the pattern to a body string. */
std::string apply(const std::string &) const;
+
+ /** Applies a list of patterns to the same body. */
+ static std::list<std::string> apply_list(const std::list<Pattern> &, const std::string &);
};
#endif