01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: /**
18: * @author Alexey A. Ivanov
19: * @version $Revision$
20: */package javax.swing.text.html;
21:
22: final class Specificity implements Comparable {
23: final int tags;
24: final int ids;
25: final int classes;
26:
27: Specificity(final Selector selector) {
28: int tmpTags = 0;
29: int tmpIDs = 0;
30: int tmpClasses = 0;
31:
32: for (int i = 0; i < selector.simpleSelectors.length; i++) {
33: if (selector.simpleSelectors[i].tag != null) {
34: ++tmpTags;
35: }
36: if (selector.simpleSelectors[i].id != null) {
37: ++tmpIDs;
38: }
39: if (selector.simpleSelectors[i].clazz != null) {
40: ++tmpClasses;
41: }
42: }
43:
44: tags = tmpTags;
45: ids = tmpIDs;
46: classes = tmpClasses;
47: }
48:
49: public int compareTo(final Object object) {
50: Specificity another = (Specificity) object;
51: int result = ids - another.ids;
52: if (result != 0) {
53: return result;
54: }
55: result = classes - another.classes;
56: if (result != 0) {
57: return result;
58: }
59: return tags - another.tags;
60: }
61:
62: public String toString() {
63: return "" + ids + classes + tags;
64: }
65: }
|