jdk/src/share/classes/com/sun/jndi/toolkit/dir/ContextEnumerator.java
author prappo
Fri, 01 Aug 2014 22:32:51 +0100
changeset 25808 e113d0a0fde0
parent 23010 6dadb192ad81
permissions -rw-r--r--
8054158: Fix typos in JNDI-related packages Reviewed-by: rriggs, vinnie
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     1
/*
23010
6dadb192ad81 8029235: Update copyright year to match last edit in jdk8 jdk repository for 2013
lana
parents: 21278
diff changeset
     2
 * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     4
 *
90ce3da70b43 Initial load
duke
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
90ce3da70b43 Initial load
duke
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
     7
 * published by the Free Software Foundation.  Oracle designates this
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     8
 * particular file as subject to the "Classpath" exception as provided
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
     9
 * by Oracle in the LICENSE file that accompanied this code.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    10
 *
90ce3da70b43 Initial load
duke
parents:
diff changeset
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
90ce3da70b43 Initial load
duke
parents:
diff changeset
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
90ce3da70b43 Initial load
duke
parents:
diff changeset
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
90ce3da70b43 Initial load
duke
parents:
diff changeset
    14
 * version 2 for more details (a copy is included in the LICENSE file that
90ce3da70b43 Initial load
duke
parents:
diff changeset
    15
 * accompanied this code).
90ce3da70b43 Initial load
duke
parents:
diff changeset
    16
 *
90ce3da70b43 Initial load
duke
parents:
diff changeset
    17
 * You should have received a copy of the GNU General Public License version
90ce3da70b43 Initial load
duke
parents:
diff changeset
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    20
 *
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
    21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
    22
 * or visit www.oracle.com if you need additional information or have any
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
    23
 * questions.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    24
 */
90ce3da70b43 Initial load
duke
parents:
diff changeset
    25
package com.sun.jndi.toolkit.dir;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    26
90ce3da70b43 Initial load
duke
parents:
diff changeset
    27
import javax.naming.*;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    28
import javax.naming.directory.SearchControls;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    29
import java.util.*;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    30
90ce3da70b43 Initial load
duke
parents:
diff changeset
    31
/**
90ce3da70b43 Initial load
duke
parents:
diff changeset
    32
  * A class for recursively enumerating the contents of a Context;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    33
  *
90ce3da70b43 Initial load
duke
parents:
diff changeset
    34
  * @author Jon Ruiz
90ce3da70b43 Initial load
duke
parents:
diff changeset
    35
  */
10324
e28265130e4f 7072353: JNDI libraries do not build with javac -Xlint:all -Werror
jjg
parents: 5506
diff changeset
    36
public class ContextEnumerator implements NamingEnumeration<Binding> {
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    37
90ce3da70b43 Initial load
duke
parents:
diff changeset
    38
    private static boolean debug = false;
10324
e28265130e4f 7072353: JNDI libraries do not build with javac -Xlint:all -Werror
jjg
parents: 5506
diff changeset
    39
    private NamingEnumeration<Binding> children = null;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    40
    private Binding currentChild = null;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    41
    private boolean currentReturned = false;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    42
    private Context root;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    43
    private ContextEnumerator currentChildEnum = null;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    44
    private boolean currentChildExpanded = false;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    45
    private boolean rootProcessed = false;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    46
    private int scope = SearchControls.SUBTREE_SCOPE;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    47
    private String contextName = "";
90ce3da70b43 Initial load
duke
parents:
diff changeset
    48
90ce3da70b43 Initial load
duke
parents:
diff changeset
    49
    public ContextEnumerator(Context context) throws NamingException {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    50
        this(context, SearchControls.SUBTREE_SCOPE);
90ce3da70b43 Initial load
duke
parents:
diff changeset
    51
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
    52
90ce3da70b43 Initial load
duke
parents:
diff changeset
    53
    public ContextEnumerator(Context context, int scope)
90ce3da70b43 Initial load
duke
parents:
diff changeset
    54
        throws NamingException {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    55
            // return this object except when searching single-level
90ce3da70b43 Initial load
duke
parents:
diff changeset
    56
        this(context, scope, "", scope != SearchControls.ONELEVEL_SCOPE);
90ce3da70b43 Initial load
duke
parents:
diff changeset
    57
   }
90ce3da70b43 Initial load
duke
parents:
diff changeset
    58
90ce3da70b43 Initial load
duke
parents:
diff changeset
    59
    protected ContextEnumerator(Context context, int scope, String contextName,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    60
                             boolean returnSelf)
90ce3da70b43 Initial load
duke
parents:
diff changeset
    61
        throws NamingException {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    62
        if(context == null) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    63
            throw new IllegalArgumentException("null context passed");
90ce3da70b43 Initial load
duke
parents:
diff changeset
    64
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
    65
90ce3da70b43 Initial load
duke
parents:
diff changeset
    66
        root = context;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    67
90ce3da70b43 Initial load
duke
parents:
diff changeset
    68
        // No need to list children if we're only searching object
90ce3da70b43 Initial load
duke
parents:
diff changeset
    69
        if (scope != SearchControls.OBJECT_SCOPE) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    70
            children = getImmediateChildren(context);
90ce3da70b43 Initial load
duke
parents:
diff changeset
    71
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
    72
        this.scope = scope;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    73
        this.contextName = contextName;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    74
        // pretend root is processed, if we're not supposed to return ourself
90ce3da70b43 Initial load
duke
parents:
diff changeset
    75
        rootProcessed = !returnSelf;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    76
        prepNextChild();
90ce3da70b43 Initial load
duke
parents:
diff changeset
    77
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
    78
90ce3da70b43 Initial load
duke
parents:
diff changeset
    79
    // Subclass should override if it wants to avoid calling obj factory
10324
e28265130e4f 7072353: JNDI libraries do not build with javac -Xlint:all -Werror
jjg
parents: 5506
diff changeset
    80
    protected NamingEnumeration<Binding> getImmediateChildren(Context ctx)
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    81
        throws NamingException {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    82
            return ctx.listBindings("");
90ce3da70b43 Initial load
duke
parents:
diff changeset
    83
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
    84
21278
ef8a3a2a72f2 8022746: List of spelling errors in API doc
malenkov
parents: 10324
diff changeset
    85
    // Subclass should override so that instance is of same type as subclass
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    86
    protected ContextEnumerator newEnumerator(Context ctx, int scope,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    87
        String contextName, boolean returnSelf) throws NamingException {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    88
            return new ContextEnumerator(ctx, scope, contextName, returnSelf);
90ce3da70b43 Initial load
duke
parents:
diff changeset
    89
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
    90
90ce3da70b43 Initial load
duke
parents:
diff changeset
    91
    public boolean hasMore() throws NamingException {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    92
        return !rootProcessed ||
90ce3da70b43 Initial load
duke
parents:
diff changeset
    93
            (scope != SearchControls.OBJECT_SCOPE && hasMoreDescendants());
90ce3da70b43 Initial load
duke
parents:
diff changeset
    94
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
    95
90ce3da70b43 Initial load
duke
parents:
diff changeset
    96
    public boolean hasMoreElements() {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    97
        try {
90ce3da70b43 Initial load
duke
parents:
diff changeset
    98
            return hasMore();
90ce3da70b43 Initial load
duke
parents:
diff changeset
    99
        } catch (NamingException e) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   100
            return false;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   101
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   102
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   103
10324
e28265130e4f 7072353: JNDI libraries do not build with javac -Xlint:all -Werror
jjg
parents: 5506
diff changeset
   104
    public Binding nextElement() {
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   105
        try {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   106
            return next();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   107
        } catch (NamingException e) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   108
            throw new NoSuchElementException(e.toString());
90ce3da70b43 Initial load
duke
parents:
diff changeset
   109
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   110
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   111
10324
e28265130e4f 7072353: JNDI libraries do not build with javac -Xlint:all -Werror
jjg
parents: 5506
diff changeset
   112
    public Binding next() throws NamingException {
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   113
        if (!rootProcessed) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   114
            rootProcessed = true;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   115
            return new Binding("", root.getClass().getName(),
90ce3da70b43 Initial load
duke
parents:
diff changeset
   116
                               root, true);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   117
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   118
90ce3da70b43 Initial load
duke
parents:
diff changeset
   119
        if (scope != SearchControls.OBJECT_SCOPE && hasMoreDescendants()) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   120
            return getNextDescendant();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   121
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   122
90ce3da70b43 Initial load
duke
parents:
diff changeset
   123
        throw new NoSuchElementException();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   124
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   125
90ce3da70b43 Initial load
duke
parents:
diff changeset
   126
    public void close() throws NamingException {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   127
        root = null;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   128
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   129
90ce3da70b43 Initial load
duke
parents:
diff changeset
   130
    private boolean hasMoreChildren() throws NamingException {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   131
        return children != null && children.hasMore();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   132
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   133
90ce3da70b43 Initial load
duke
parents:
diff changeset
   134
    private Binding getNextChild() throws NamingException {
10324
e28265130e4f 7072353: JNDI libraries do not build with javac -Xlint:all -Werror
jjg
parents: 5506
diff changeset
   135
        Binding oldBinding = children.next();
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   136
        Binding newBinding = null;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   137
90ce3da70b43 Initial load
duke
parents:
diff changeset
   138
        // if the name is relative, we need to add it to the name of this
90ce3da70b43 Initial load
duke
parents:
diff changeset
   139
        // context to keep it relative w.r.t. the root context we are
90ce3da70b43 Initial load
duke
parents:
diff changeset
   140
        // enumerating
90ce3da70b43 Initial load
duke
parents:
diff changeset
   141
        if(oldBinding.isRelative() && !contextName.equals("")) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   142
            NameParser parser = root.getNameParser("");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   143
            Name newName = parser.parse(contextName);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   144
            newName.add(oldBinding.getName());
90ce3da70b43 Initial load
duke
parents:
diff changeset
   145
            if(debug) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   146
                System.out.println("ContextEnumerator: adding " + newName);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   147
            }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   148
            newBinding = new Binding(newName.toString(),
90ce3da70b43 Initial load
duke
parents:
diff changeset
   149
                                     oldBinding.getClassName(),
90ce3da70b43 Initial load
duke
parents:
diff changeset
   150
                                     oldBinding.getObject(),
90ce3da70b43 Initial load
duke
parents:
diff changeset
   151
                                     oldBinding.isRelative());
90ce3da70b43 Initial load
duke
parents:
diff changeset
   152
        } else {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   153
            if(debug) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   154
                System.out.println("ContextEnumerator: using old binding");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   155
            }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   156
            newBinding = oldBinding;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   157
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   158
90ce3da70b43 Initial load
duke
parents:
diff changeset
   159
        return newBinding;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   160
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   161
90ce3da70b43 Initial load
duke
parents:
diff changeset
   162
    private boolean hasMoreDescendants() throws NamingException {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   163
        // if the current child is expanded, see if it has more elements
90ce3da70b43 Initial load
duke
parents:
diff changeset
   164
        if (!currentReturned) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   165
            if(debug) {System.out.println("hasMoreDescendants returning " +
90ce3da70b43 Initial load
duke
parents:
diff changeset
   166
                                          (currentChild != null) ); }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   167
            return currentChild != null;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   168
        } else if (currentChildExpanded && currentChildEnum.hasMore()) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   169
90ce3da70b43 Initial load
duke
parents:
diff changeset
   170
            if(debug) {System.out.println("hasMoreDescendants returning " +
90ce3da70b43 Initial load
duke
parents:
diff changeset
   171
                "true");}
90ce3da70b43 Initial load
duke
parents:
diff changeset
   172
90ce3da70b43 Initial load
duke
parents:
diff changeset
   173
            return true;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   174
        } else {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   175
            if(debug) {System.out.println("hasMoreDescendants returning " +
90ce3da70b43 Initial load
duke
parents:
diff changeset
   176
                "hasMoreChildren");}
90ce3da70b43 Initial load
duke
parents:
diff changeset
   177
            return hasMoreChildren();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   178
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   179
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   180
90ce3da70b43 Initial load
duke
parents:
diff changeset
   181
    private Binding getNextDescendant() throws NamingException {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   182
90ce3da70b43 Initial load
duke
parents:
diff changeset
   183
        if (!currentReturned) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   184
            // returning parent
25808
e113d0a0fde0 8054158: Fix typos in JNDI-related packages
prappo
parents: 23010
diff changeset
   185
            if(debug) {System.out.println("getNextDescendant: simple case");}
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   186
90ce3da70b43 Initial load
duke
parents:
diff changeset
   187
            currentReturned = true;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   188
            return currentChild;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   189
90ce3da70b43 Initial load
duke
parents:
diff changeset
   190
        } else if (currentChildExpanded && currentChildEnum.hasMore()) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   191
25808
e113d0a0fde0 8054158: Fix typos in JNDI-related packages
prappo
parents: 23010
diff changeset
   192
            if(debug) {System.out.println("getNextDescendant: expanded case");}
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   193
90ce3da70b43 Initial load
duke
parents:
diff changeset
   194
            // if the current child is expanded, use it's enumerator
10324
e28265130e4f 7072353: JNDI libraries do not build with javac -Xlint:all -Werror
jjg
parents: 5506
diff changeset
   195
            return currentChildEnum.next();
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   196
90ce3da70b43 Initial load
duke
parents:
diff changeset
   197
        } else {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   198
90ce3da70b43 Initial load
duke
parents:
diff changeset
   199
            // Ready to go onto next child
25808
e113d0a0fde0 8054158: Fix typos in JNDI-related packages
prappo
parents: 23010
diff changeset
   200
            if(debug) {System.out.println("getNextDescendant: next case");}
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   201
90ce3da70b43 Initial load
duke
parents:
diff changeset
   202
            prepNextChild();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   203
            return getNextDescendant();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   204
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   205
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   206
90ce3da70b43 Initial load
duke
parents:
diff changeset
   207
    private void prepNextChild() throws NamingException {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   208
        if(hasMoreChildren()) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   209
            try {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   210
                currentChild = getNextChild();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   211
                currentReturned = false;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   212
            } catch (NamingException e){
90ce3da70b43 Initial load
duke
parents:
diff changeset
   213
                if (debug) System.out.println(e);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   214
                if (debug) e.printStackTrace();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   215
            }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   216
        } else {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   217
            currentChild = null;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   218
            return;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   219
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   220
90ce3da70b43 Initial load
duke
parents:
diff changeset
   221
        if(scope == SearchControls.SUBTREE_SCOPE &&
90ce3da70b43 Initial load
duke
parents:
diff changeset
   222
           currentChild.getObject() instanceof Context) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   223
            currentChildEnum = newEnumerator(
90ce3da70b43 Initial load
duke
parents:
diff changeset
   224
                                          (Context)(currentChild.getObject()),
90ce3da70b43 Initial load
duke
parents:
diff changeset
   225
                                          scope, currentChild.getName(),
90ce3da70b43 Initial load
duke
parents:
diff changeset
   226
                                          false);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   227
            currentChildExpanded = true;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   228
            if(debug) {System.out.println("prepNextChild: expanded");}
90ce3da70b43 Initial load
duke
parents:
diff changeset
   229
        } else {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   230
            currentChildExpanded = false;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   231
            currentChildEnum = null;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   232
            if(debug) {System.out.println("prepNextChild: normal");}
90ce3da70b43 Initial load
duke
parents:
diff changeset
   233
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   234
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   235
}