1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.tika.mime;
18
19
20
21
22
23
24
25 class Magic implements Clause, Comparable<Magic> {
26
27 private final MimeType type;
28
29 private int priority = 50;
30
31 private Clause clause = null;
32
33 Magic(MimeType type) {
34 this.type = type;
35 }
36
37 MimeType getType() {
38 return type;
39 }
40
41 void setPriority(int priority) {
42 this.priority = priority;
43 }
44
45 int getPriority() {
46 return priority;
47 }
48
49 void setClause(Clause clause) {
50 this.clause = clause;
51 }
52
53 public boolean eval(byte[] data) {
54 return clause.eval(data);
55 }
56
57 public int size() {
58 return clause.size();
59 }
60
61 public String toString() {
62 StringBuffer buf = new StringBuffer();
63 buf.append("[").append(priority).append("/").append(clause).append("]");
64 return buf.toString();
65 }
66
67 public int compareTo(Magic o) {
68 int diff = o.priority - priority;
69 if (diff == 0) {
70 diff = o.size() - size();
71 }
72 if (diff == 0) {
73 diff = o.toString().compareTo(toString());
74 }
75 return diff;
76 }
77
78 }