Package org.zeromq
Class ZConfig
- java.lang.Object
-
- org.zeromq.ZConfig
-
public class ZConfig extends java.lang.ObjectLets 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://addr3root 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=falseIt 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 interfaceZConfig.IVisitorstatic classZConfig.ReadException
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.String,ZConfig>childrenprivate java.util.List<java.lang.String>commentsprivate static java.lang.StringLEFTprivate java.lang.Stringnameprivate static java.util.regex.PatternPTRN_CONTAINERprivate static java.util.regex.PatternPTRN_KEYVALUEprivate java.lang.Stringvalue
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddComment(java.lang.String comment)add commentprivate static ZConfigchild(ZConfig parent, java.util.regex.Matcher matcher, int currentLevel, java.lang.String currentLine, java.util.concurrent.atomic.AtomicInteger lineNumber)private voidfillValues(java.lang.String prefix, java.util.Map<java.lang.String,java.lang.String> values)ZConfiggetChild(java.lang.String name)java.lang.StringgetName()java.lang.StringgetValue(java.lang.String path)java.lang.StringgetValue(java.lang.String path, java.lang.String defaultValue)java.util.Map<java.lang.String,java.lang.String>getValues()static ZConfigload(java.lang.String filename)private static ZConfigload(ZConfig parent, java.util.List<java.lang.String> content, int currentLevel, java.util.concurrent.atomic.AtomicInteger lineNumber)booleanpathExists(java.lang.String path)check if a value-path existsZConfigputValue(java.lang.String path, java.lang.String value)voidputValues(ZConfig src)voidsave(java.io.Writer writer)java.io.Filesave(java.lang.String filename)Saves the configuration to a file.private voidvisit(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.IOExceptionSaves 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)
-
-