Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ public Set<StyleClass> getStyleClassSet() {
* styleClasses converted to a set of bit masks
*/
private final Set<StyleClass> styleClassSet;
private final Set<StyleClass> unwrappedStyleClassSet;

private final String id;

Expand Down Expand Up @@ -148,19 +149,19 @@ public NodeOrientation getNodeOrientation() {
// then match needs to check name
this.matchOnName = (name != null && !("".equals(name)) && !("*".equals(name)));

Set<StyleClass> scs = new StyleClassSet();
this.unwrappedStyleClassSet = new StyleClassSet();

if (styleClasses != null) {
for (int n = 0; n < styleClasses.size(); n++) {

final String styleClassName = styleClasses.get(n);
if (styleClassName == null || styleClassName.isEmpty()) continue;

scs.add(StyleClassSet.getStyleClass(styleClassName));
unwrappedStyleClassSet.add(StyleClassSet.getStyleClass(styleClassName));
}
}

this.styleClassSet = Collections.unmodifiableSet(scs);
this.styleClassSet = Collections.unmodifiableSet(unwrappedStyleClassSet);
this.matchOnStyleClass = (this.styleClassSet.size() > 0);

PseudoClassState pcs = new PseudoClassState();
Expand Down Expand Up @@ -289,7 +290,8 @@ public NodeOrientation getNodeOrientation() {
// This selector matches when class="pastoral blue aqua marine" but does not
// match for class="pastoral blue".
private boolean matchStyleClasses(StyleClassSet otherStyleClasses) {
return otherStyleClasses.containsAll(styleClassSet);
// checks against unwrapped version so BitSet can do its special casing for performance
return otherStyleClasses.containsAll(unwrappedStyleClassSet);
}

@Override public boolean equals(Object obj) {
Expand Down