Skip to content

Commit c56f8c9

Browse files
committed
simplify
1 parent fb5467e commit c56f8c9

File tree

1 file changed

+44
-29
lines changed

1 file changed

+44
-29
lines changed

src/main/java/com/gargoylesoftware/css/dom/CSSStyleSheetImpl.java

Lines changed: 44 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.io.Serializable;
2121
import java.io.StringReader;
2222
import java.util.ArrayList;
23+
import java.util.Collections;
2324
import java.util.HashMap;
2425
import java.util.Iterator;
2526
import java.util.LinkedList;
@@ -372,25 +373,42 @@ public CSSStyleRuleImpl getRule() {
372373

373374
public static class CSSStyleSheetRuleIndex {
374375

376+
private static final class SelectorIndex {
377+
378+
private final Map<String, List<SelectorEntry>> keyToSelectors = new HashMap<>();
379+
380+
void add(final String key, final SelectorEntry selector) {
381+
List<SelectorEntry> entry = keyToSelectors.get(key);
382+
if (entry == null) {
383+
entry = new ArrayList<SelectorEntry>();
384+
keyToSelectors.put(key, entry);
385+
}
386+
entry.add(selector);
387+
}
388+
389+
List<SelectorEntry> get(final String key) {
390+
List<SelectorEntry> entry = keyToSelectors.get(key);
391+
if (entry == null) {
392+
return Collections.emptyList();
393+
}
394+
return entry;
395+
}
396+
}
397+
398+
375399
private static final MediaList DEFAULT_MEDIA_LIST = new MediaListImpl(null);
376400

377401
private final List<CSSStyleSheetRuleIndex> children_ = new ArrayList<>();
378402

379403
private MediaList mediaList_ = DEFAULT_MEDIA_LIST;
380-
private final Map<String, List<SelectorEntry>> elementSelectors_ = new HashMap<>();
381-
private final Map<String, List<SelectorEntry>> classSelectors_ = new HashMap<>();
404+
private final SelectorIndex elementSelectors_ = new SelectorIndex();
405+
private final SelectorIndex classSelectors_ = new SelectorIndex();
382406
private final List<SelectorEntry> otherSelectors_ = new ArrayList<>();
383407

384408
public void addElementSelector(final ElementSelector elementSelector,
385409
final Selector s, final CSSStyleRuleImpl styleRule) {
386410
final String elementName = elementSelector.getLocalNameLowerCase();
387-
List<SelectorEntry> entries = elementSelectors_.get(elementName);
388-
if (entries == null) {
389-
entries = new ArrayList<SelectorEntry>();
390-
elementSelectors_.put(elementName, entries);
391-
}
392-
final SelectorEntry selectorEntry = new SelectorEntry(s, styleRule);
393-
entries.add(selectorEntry);
411+
elementSelectors_.add(elementName, new SelectorEntry(s, styleRule));
394412
}
395413

396414
public void addClassSelector(final ElementSelector elementSelector, final String className,
@@ -403,13 +421,7 @@ public void addClassSelector(final ElementSelector elementSelector, final String
403421
else {
404422
key = elementName + "." + className;
405423
}
406-
List<SelectorEntry> entries = classSelectors_.get(key);
407-
if (entries == null) {
408-
entries = new ArrayList<SelectorEntry>();
409-
classSelectors_.put(key, entries);
410-
}
411-
final SelectorEntry selectorEntry = new SelectorEntry(s, styleRule);
412-
entries.add(selectorEntry);
424+
classSelectors_.add(key, new SelectorEntry(s, styleRule));
413425
}
414426

415427
public void addOtherSelector(final Selector s, final CSSStyleRuleImpl styleRule) {
@@ -449,29 +461,32 @@ static final class SelectorEntriesIterator implements Iterator<SelectorEntry> {
449461
private LinkedList<Iterator<SelectorEntry>> iterators_;
450462

451463
SelectorEntriesIterator(final CSSStyleSheetRuleIndex index,
452-
final String elementName, final String[] classes) {
464+
final String elementName,
465+
final String[] classes) {
466+
453467
iterators_ = new LinkedList<Iterator<SelectorEntry>>();
454468

455-
List<SelectorEntry> sel = index.elementSelectors_.get(null);
456-
if (sel != null && !sel.isEmpty()) {
457-
iterators_.add(sel.iterator());
469+
List<SelectorEntry> selectors = index.elementSelectors_.get(null);
470+
if (!selectors.isEmpty()) {
471+
iterators_.add(selectors.iterator());
458472
}
459-
sel = index.elementSelectors_.get(elementName);
460-
if (sel != null && !sel.isEmpty()) {
461-
iterators_.add(sel.iterator());
473+
474+
selectors = index.elementSelectors_.get(elementName);
475+
if (!selectors.isEmpty()) {
476+
iterators_.add(selectors.iterator());
462477
}
463478

464479
if (classes != null) {
465480
for (String clazz : classes) {
466-
sel = index.classSelectors_.get("." + clazz);
467-
if (sel != null && !sel.isEmpty()) {
468-
iterators_.add(sel.iterator());
481+
selectors = index.classSelectors_.get("." + clazz);
482+
if (selectors != null && !selectors.isEmpty()) {
483+
iterators_.add(selectors.iterator());
469484
}
470485

471486
if (elementName != null) {
472-
sel = index.classSelectors_.get(elementName + "." + clazz);
473-
if (sel != null && !sel.isEmpty()) {
474-
iterators_.add(sel.iterator());
487+
selectors = index.classSelectors_.get(elementName + "." + clazz);
488+
if (selectors != null && !selectors.isEmpty()) {
489+
iterators_.add(selectors.iterator());
475490
}
476491
}
477492
}

0 commit comments

Comments
 (0)