public class LdifReader extends Object implements Iterable<LdifEntry>, Closeable
<ldif-file> ::= "version:" <fill> <number> <seps> <dn-spec> <sep> <ldif-content-change> <ldif-content-change> ::= <number> <oid> <options-e> <value-spec> <sep> <attrval-specs-e> <ldif-attrval-record-e> | <alpha> <chars-e> <options-e> <value-spec> <sep> <attrval-specs-e> <ldif-attrval-record-e> | "control:" <fill> <number> <oid> <spaces-e> <criticality> <value-spec-e> <sep> <controls-e> "changetype:" <fill> <changerecord-type> <ldif-change-record-e> | "changetype:" <fill> <changerecord-type> <ldif-change-record-e> <ldif-attrval-record-e> ::= <seps> <dn-spec> <sep> <attributeType> <options-e> <value-spec> <sep> <attrval-specs-e> <ldif-attrval-record-e> | e <ldif-change-record-e> ::= <seps> <dn-spec> <sep> <controls-e> "changetype:" <fill> <changerecord-type> <ldif-change-record-e> | e <dn-spec> ::= "dn:" <fill> <safe-string> | "dn::" <fill> <base64-string> <controls-e> ::= "control:" <fill> <number> <oid> <spaces-e> <criticality> <value-spec-e> <sep> <controls-e> | e <criticality> ::= "true" | "false" | e <oid> ::= '.' <number> <oid> | e <attrval-specs-e> ::= <number> <oid> <options-e> <value-spec> <sep> <attrval-specs-e> | <alpha> <chars-e> <options-e> <value-spec> <sep> <attrval-specs-e> | e <value-spec-e> ::= <value-spec> | e <value-spec> ::= ':' <fill> <safe-string-e> | "::" <fill> <base64-chars> | ":<" <fill> <url> <attributeType> ::= <number> <oid> | <alpha> <chars-e> <options-e> ::= ';' <char> <chars-e> <options-e> |e <chars-e> ::= <char> <chars-e> | e <changerecord-type> ::= "add" <sep> <attributeType> <options-e> <value-spec> <sep> <attrval-specs-e> | "delete" <sep> | "modify" <sep> <mod-type> <fill> <attributeType> <options-e> <sep> <attrval-specs-e> <sep> '-' <sep> <mod-specs-e> | "moddn" <sep> <newrdn> <sep> "deleteoldrdn:" <fill> <0-1> <sep> <newsuperior-e> <sep> | "modrdn" <sep> <newrdn> <sep> "deleteoldrdn:" <fill> <0-1> <sep> <newsuperior-e> <sep> <newrdn> ::= ':' <fill> <safe-string> | "::" <fill> <base64-chars> <newsuperior-e> ::= "newsuperior" <newrdn> | e <mod-specs-e> ::= <mod-type> <fill> <attributeType> <options-e> <sep> <attrval-specs-e> <sep> '-' <sep> <mod-specs-e> | e <mod-type> ::= "add:" | "delete:" | "replace:" <url> ::= <a Uniform Resource Locator, as defined in [6]> LEXICAL ------- <fill> ::= ' ' <fill> | e <char> ::= <alpha> | <digit> | '-' <number> ::= <digit> <digits> <0-1> ::= '0' | '1' <digits> ::= <digit> <digits> | e <digit> ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' <seps> ::= <sep> <seps-e> <seps-e> ::= <sep> <seps-e> | e <sep> ::= 0x0D 0x0A | 0x0A <spaces> ::= ' ' <spaces-e> <spaces-e> ::= ' ' <spaces-e> | e <safe-string-e> ::= <safe-string> | e <safe-string> ::= <safe-init-char> <safe-chars> <safe-init-char> ::= [0x01-0x09] | 0x0B | 0x0C | [0x0E-0x1F] | [0x21-0x39] | 0x3B | [0x3D-0x7F] <safe-chars> ::= <safe-char> <safe-chars> | e <safe-char> ::= [0x01-0x09] | 0x0B | 0x0C | [0x0E-0x7F] <base64-string> ::= <base64-char> <base64-chars> <base64-chars> ::= <base64-char> <base64-chars> | e <base64-char> ::= 0x2B | 0x2F | [0x30-0x39] | 0x3D | [0x41-9x5A] | [0x61-0x7A] <alpha> ::= [0x41-0x5A] | [0x61-0x7A] COMMENTS -------- - The ldap-oid VN is not correct in the RFC-2849. It has been changed from 1*DIGIT 0*1("." 1*DIGIT) to DIGIT+ ("." DIGIT+)* - The mod-spec lacks a sep between *attrval-spec and "-". - The BASE64-UTF8-STRING should be BASE64-CHAR BASE64-STRING - The ValueSpec rule must accept multilines values. In this case, we have a LF followed by a single space before the continued value.The relaxed mode is used when a SchemaManager is injected.
Constructor and Description |
---|
LdifReader()
Constructors
|
LdifReader(File file)
A constructor which takes a File.
|
LdifReader(File file,
SchemaManager schemaManager)
A constructor which takes a File and a SchemaManager.
|
LdifReader(InputStream in)
A constructor which takes an InputStream.
|
LdifReader(Reader in)
A constructor which takes a Reader.
|
LdifReader(SchemaManager schemaManager)
Creates a Schema aware reader
|
LdifReader(String ldifFileName)
A constructor which takes a file name.
|
Modifier and Type | Method and Description |
---|---|
void |
close() |
boolean |
containsEntries() |
LdifEntry |
fetch()
Gets the current entry, but don't move forward.
|
Exception |
getError() |
int |
getLineNumber() |
long |
getSizeLimit() |
int |
getVersion() |
boolean |
hasError() |
boolean |
hasNext()
Tests to see if another LDIF is on the input channel.
|
void |
init()
Initialize the LdifReader
|
boolean |
isValidateDn() |
Iterator<LdifEntry> |
iterator() |
LdifEntry |
next()
Gets the next LDIF on the channel.
|
void |
parseAttributeValue(LdifEntry entry,
String line,
String lowerLine)
Parse an AttributeType/AttributeValue
|
static Attribute |
parseAttributeValue(String line)
Parse an AttributeType/AttributeValue
|
List<LdifEntry> |
parseLdif(BufferedReader reader)
The main entry point of the LdifParser.
|
List<LdifEntry> |
parseLdif(String ldif)
A method which parses a ldif string and returns a list of entries.
|
List<LdifEntry> |
parseLdifFile(String fileName)
Parse a ldif file (using the default encoding).
|
List<LdifEntry> |
parseLdifFile(String fileName,
String encoding)
Parse a ldif file, decoding it using the given charset encoding
|
void |
remove()
Always throws UnsupportedOperationException!
|
void |
setSchemaManager(SchemaManager schemaManager) |
void |
setSizeLimit(long sizeLimit)
Set the maximum file size that can be accepted for an attribute value
|
void |
setValidateDn(boolean validateDn)
Turns on/off the DN validation
|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEach, spliterator
public LdifReader()
public LdifReader(SchemaManager schemaManager)
schemaManager
- The SchemaManagerpublic LdifReader(String ldifFileName) throws LdapLdifException
ldifFileName
- A file name containing ldif formated inputLdapLdifException
- If the file cannot be processed or if the format is incorrectpublic LdifReader(Reader in) throws LdapException
in
- A Reader containing ldif formated inputLdapException
- If the file cannot be processed or if the format is incorrectpublic LdifReader(InputStream in) throws LdapException
in
- An InputStream containing ldif formated inputLdapException
- If the file cannot be processed or if the format is incorrectpublic LdifReader(File file) throws LdapLdifException
file
- A File containing ldif formated inputLdapLdifException
- If the file cannot be processed or if the format is incorrectpublic LdifReader(File file, SchemaManager schemaManager) throws LdapLdifException
file
- A File containing ldif formated inputschemaManager
- The SchemaManager instance to useLdapLdifException
- If the file cannot be processed or if the format is incorrectpublic void init() throws LdapException
LdapException
- If the initialization failedpublic int getVersion()
public long getSizeLimit()
public void setSizeLimit(long sizeLimit)
sizeLimit
- The size in bytespublic static Attribute parseAttributeValue(String line)
line
- The line to parsepublic void parseAttributeValue(LdifEntry entry, String line, String lowerLine) throws LdapException
entry
- The entry where to store the valueline
- The line to parselowerLine
- The same line, lowercasedLdapException
- If anything goes wrongpublic List<LdifEntry> parseLdifFile(String fileName) throws LdapLdifException
fileName
- The ldif fileLdapLdifException
- If the parsing failspublic List<LdifEntry> parseLdifFile(String fileName, String encoding) throws LdapLdifException
fileName
- The ldif fileencoding
- The charset encoding to useLdapLdifException
- If the parsing failspublic List<LdifEntry> parseLdif(String ldif) throws LdapLdifException
ldif
- The ldif stringLdapLdifException
- If something went wrongpublic LdifEntry fetch()
public boolean hasNext()
public void remove()
Iterator.remove()
public boolean hasError()
public List<LdifEntry> parseLdif(BufferedReader reader) throws LdapException
reader
- The buffer being processedLdapException
- If something went wrongpublic boolean containsEntries()
public int getLineNumber()
public boolean isValidateDn()
public void setValidateDn(boolean validateDn)
validateDn
- the boolean flagpublic void setSchemaManager(SchemaManager schemaManager)
schemaManager
- the schemaManager to setpublic void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
IOException
Copyright © 2003–2018 The Apache Software Foundation. All rights reserved.