public LDIFChangeRecord nextRecord() {
        if (entryIterator.hasNext()) {
            try {
                final Node entryNode = entryIterator.next();
                final String dn = entryNode.valueOf("@dn");
                final List<Attribute> attributes = new ArrayList<Attribute>();

                final List<Node> objectClassList = (List<Node>) objectClassXPath.selectNodes(entryNode);
                final String[] objectClasses = new String[objectClassList.size()];
                for (int j = 0; j < objectClasses.length; ++j) {
                    objectClasses[j] = objectClassList.get(j).getStringValue();
                }
                attributes.add(new Attribute("objectclass", objectClasses));
                for (final Node attributeNode : (List<Node>) attrXPath.selectNodes(entryNode)) {
                    final String attributeName = attributeNode.valueOf("@name");
                    final List<Node> attributeValueNodes = (List<Node>) attrValueXPath.selectNodes(attributeNode);
                    switch (attributeValueNodes.size()) {
                        case 0:
                            break;
                        case 1: {
                            final String attributeValue = attributeValueNodes.get(0).getStringValue();
                            attributes.add(new Attribute(attributeName, attributeValue));
                            break;
                        }
                        default: {
                            final String[] attributeValues = new String[attributeValueNodes.size()];
                            for (int j = 0; j < attributeValueNodes.size(); ++j) {
                                attributeValues[j] = attributeValueNodes.get(j).getStringValue();
                            }
                            attributes.add(new Attribute(attributeName, attributeValues));
                            break;
                        }
                    }
                }
                return new LDIFAddChangeRecord(dn, attributes);
            } catch (final JaxenException e) {
                return null;
            }
        } else {
            return null;
        }
    }
public LDIFChangeRecord nextRecord() {
        if (entryIterator.hasNext()) {
            try {
                final Node entryNode = entryIterator.next();
                final String dn = entryNode.valueOf("@dn");
                final List<Attribute> attributes = new ArrayList<Attribute>();

                final List<Node> objectClassList = (List<Node>) objectClassXPath.selectNodes(entryNode);
                final String[] objectClasses = new String[objectClassList.size()];
                for (int j = 0; j < objectClasses.length; ++j) {
                    objectClasses[j] = objectClassList.get(j).getStringValue();
                }
                attributes.add(new Attribute("objectclass", objectClasses));
                for (final Node attributeNode : (List<Node>) attrXPath.selectNodes(entryNode)) {
                    final String attributeName = attributeNode.valueOf("@name");
                    final List<Node> attributeValueNodes = (List<Node>) attrValueXPath.selectNodes(attributeNode);
                    switch (attributeValueNodes.size()) {
                        case 0:
                            break;
                        case 1: {
                            final String attributeValue = attributeValueNodes.get(0).getStringValue();
                            attributes.add(new Attribute(attributeName, attributeValue));
                            break;
                        }
                        default: {
                            final String[] attributeValues = new String[attributeValueNodes.size()];
                            for (int j = 0; j < attributeValueNodes.size(); ++j) {
                                attributeValues[j] = attributeValueNodes.get(j).getStringValue();
                            }
                            attributes.add(new Attribute(attributeName, attributeValues));
                            break;
                        }
                    }
                }
                return new LDIFAddChangeRecord(dn, attributes);
            } catch (final JaxenException e) {
                return null;
            }
        } else {
            return null;
        }
    }
public LDIFChangeRecord nextRecord ( ) { if ( entryIterator . hasNext ( ) ) { try { final Node entryNode = entryIterator . next ( ) ; final String dn = entryNode . valueOf ( "@dn" ) ; final List < Attribute > attributes = new ArrayList < Attribute > ( ) ; final List < Node > objectClassList = ( List < Node > ) objectClassXPath . selectNodes ( entryNode ) ; final String [ ] objectClasses = new String [ objectClassList . size ( ) ] ; for ( int j = 0 ; j < objectClasses . length ; ++ j ) { objectClasses [ j ] = objectClassList . get ( j ) . getStringValue ( ) ; } attributes . add ( new Attribute ( "objectclass" , objectClasses ) ) ; for ( final Node attributeNode : ( List < Node > ) attrXPath . selectNodes ( entryNode ) ) { final String attributeName = attributeNode . valueOf ( "@name" ) ; final List < Node > attributeValueNodes = ( List < Node > ) attrValueXPath . selectNodes ( attributeNode ) ; switch ( attributeValueNodes . size ( ) ) { case 0 : break ; case 1 : { final String attributeValue = attributeValueNodes . get ( 0 ) . getStringValue ( ) ; attributes . add ( new Attribute ( attributeName , attributeValue ) ) ; break ; } default : { final String [ ] attributeValues = new String [ attributeValueNodes . size ( ) ] ; for ( int j = 0 ; j < attributeValueNodes . size ( ) ; ++ j ) { attributeValues [ j ] = attributeValueNodes . get ( j ) . getStringValue ( ) ; } attributes . add ( new Attribute ( attributeName , attributeValues ) ) ; break ; } } } return new LDIFAddChangeRecord ( dn , attributes ) ; } catch ( final JaxenException e ) { return null ; } } else { return null ; } }
Read the next change record from the underlying input stream.

@return The next change record or {@code null} if the end of the input stream has been reached.
Read the next change record from the underlying input stream .