Package org.zeromq
Class ZConfig
- java.lang.Object
-
- org.zeromq.ZConfig
-
public class ZConfig extends java.lang.Object
Lets applications load, work with, and save configuration files. This is a minimal implementation of the ZeroMQ Property Language, which is a simple structured text format for configuration files.
Here is an example ZPL stream and corresponding config structure:
context iothreads = 1 verbose = 1 # Ask for a trace main type = zqueue # ZMQ_DEVICE type frontend option hwm = 1000 swap = 25000000 # 25MB bind = 'inproc://addr1' bind = 'ipc://addr2' backend bind = inproc://addr3
root Down = child | Across = next v context-->main | | | v | type=queue-->frontend-->backend | | | | | v | | bind=inproc://addr3 | v | option-->bind=inproc://addr1-->bind=ipc://addr2 | | | v | hwm=1000-->swap=25000000 v iothreads=1-->verbose=false
It can put and get values and save and load them to disk:
ZConfig conf = new ZConfig("root", null); conf.put("/curve/public-key","abcdef"); String val = conf.get("/curve/public-key","fallback-defaultkey"); conf.save("test.cert"); ZConfig loaded = ZConfig.load("test.cert");
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static interface
ZConfig.IVisitor
static class
ZConfig.ReadException
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.String,ZConfig>
children
private java.util.List<java.lang.String>
comments
private static java.lang.String
LEFT
private java.lang.String
name
private static java.util.regex.Pattern
PTRN_CONTAINER
private static java.util.regex.Pattern
PTRN_KEYVALUE
private java.lang.String
value
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addComment(java.lang.String comment)
add commentprivate static ZConfig
child(ZConfig parent, java.util.regex.Matcher matcher, int currentLevel, java.lang.String currentLine, java.util.concurrent.atomic.AtomicInteger lineNumber)
private void
fillValues(java.lang.String prefix, java.util.Map<java.lang.String,java.lang.String> values)
ZConfig
getChild(java.lang.String name)
java.lang.String
getName()
java.lang.String
getValue(java.lang.String path)
java.lang.String
getValue(java.lang.String path, java.lang.String defaultValue)
java.util.Map<java.lang.String,java.lang.String>
getValues()
static ZConfig
load(java.lang.String filename)
private static ZConfig
load(ZConfig parent, java.util.List<java.lang.String> content, int currentLevel, java.util.concurrent.atomic.AtomicInteger lineNumber)
boolean
pathExists(java.lang.String path)
check if a value-path existsZConfig
putValue(java.lang.String path, java.lang.String value)
void
putValues(ZConfig src)
void
save(java.io.Writer writer)
java.io.File
save(java.lang.String filename)
Saves the configuration to a file.private void
visit(ZConfig startNode, ZConfig.IVisitor handler, int level)
-
-
-
Field Detail
-
LEFT
private static final java.lang.String LEFT
- See Also:
- Constant Field Values
-
PTRN_CONTAINER
private static final java.util.regex.Pattern PTRN_CONTAINER
-
PTRN_KEYVALUE
private static final java.util.regex.Pattern PTRN_KEYVALUE
-
name
private final java.lang.String name
-
children
private final java.util.Map<java.lang.String,ZConfig> children
-
comments
private final java.util.List<java.lang.String> comments
-
value
private java.lang.String value
-
-
Constructor Detail
-
ZConfig
public ZConfig(java.lang.String name, ZConfig parent)
-
-
Method Detail
-
getChild
public ZConfig getChild(java.lang.String name)
-
getValues
public java.util.Map<java.lang.String,java.lang.String> getValues()
-
fillValues
private void fillValues(java.lang.String prefix, java.util.Map<java.lang.String,java.lang.String> values)
-
getName
public java.lang.String getName()
-
getValue
public java.lang.String getValue(java.lang.String path)
-
getValue
public java.lang.String getValue(java.lang.String path, java.lang.String defaultValue)
-
pathExists
public boolean pathExists(java.lang.String path)
check if a value-path exists- Parameters:
path
-- Returns:
- true if value-path exists
-
addComment
public void addComment(java.lang.String comment)
add comment- Parameters:
comment
-
-
putValue
public ZConfig putValue(java.lang.String path, java.lang.String value)
- Parameters:
path
-value
- set value of config item
-
putValues
public void putValues(ZConfig src)
-
visit
private void visit(ZConfig startNode, ZConfig.IVisitor handler, int level) throws java.io.IOException
- Throws:
java.io.IOException
-
save
public java.io.File save(java.lang.String filename) throws java.io.IOException
Saves the configuration to a file.This method will overwrite contents of existing file
- Parameters:
filename
- the path of the file to save the configuration into, or "-" to dump it to standard output- Returns:
- the saved file or null if dumped to the standard output
- Throws:
java.io.IOException
- if unable to save the file.
-
save
public void save(java.io.Writer writer) throws java.io.IOException
- Throws:
java.io.IOException
-
load
public static ZConfig load(java.lang.String filename) throws java.io.IOException
- Throws:
java.io.IOException
-
load
private static ZConfig load(ZConfig parent, java.util.List<java.lang.String> content, int currentLevel, java.util.concurrent.atomic.AtomicInteger lineNumber)
-
-