196 private final ResourceBundle parent;
197
198 private KeySet(Set<String> set, ResourceBundle parent) {
199 this.set = set;
200 this.parent = parent;
201 }
202
203 @Override
204 public boolean contains(Object o) {
205 if (set.contains(o)) {
206 return true;
207 }
208 return (parent != null) ? parent.containsKey((String) o) : false;
209 }
210
211 @Override
212 public Iterator<String> iterator() {
213 if (parent == null) {
214 return set.iterator();
215 }
216 return new Iterator<String>() {
217 private Iterator<String> itr = set.iterator();
218 private boolean usingParent;
219
220 @Override
221 public boolean hasNext() {
222 if (itr.hasNext()) {
223 return true;
224 }
225 if (!usingParent) {
226 Set<String> nextset = new HashSet<>(parent.keySet());
227 nextset.removeAll(set);
228 itr = nextset.iterator();
229 usingParent = true;
230 }
231 return itr.hasNext();
232 }
233
234 @Override
235 public String next() {
236 if (hasNext()) {
|
196 private final ResourceBundle parent;
197
198 private KeySet(Set<String> set, ResourceBundle parent) {
199 this.set = set;
200 this.parent = parent;
201 }
202
203 @Override
204 public boolean contains(Object o) {
205 if (set.contains(o)) {
206 return true;
207 }
208 return (parent != null) ? parent.containsKey((String) o) : false;
209 }
210
211 @Override
212 public Iterator<String> iterator() {
213 if (parent == null) {
214 return set.iterator();
215 }
216 return new Iterator<>() {
217 private Iterator<String> itr = set.iterator();
218 private boolean usingParent;
219
220 @Override
221 public boolean hasNext() {
222 if (itr.hasNext()) {
223 return true;
224 }
225 if (!usingParent) {
226 Set<String> nextset = new HashSet<>(parent.keySet());
227 nextset.removeAll(set);
228 itr = nextset.iterator();
229 usingParent = true;
230 }
231 return itr.hasNext();
232 }
233
234 @Override
235 public String next() {
236 if (hasNext()) {
|