1 /*
2  * JBoss, Home of Professional Open Source.
3  * Copyright 2014 Red Hat, Inc., and individual contributors
4  * as indicated by the @author tags.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *     http://www.apache.org/licenses/LICENSE-2.0
11  *
12  *  Unless required by applicable law or agreed to in writing, software
13  *  distributed under the License is distributed on an "AS IS" BASIS,
14  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  *  See the License for the specific language governing permissions and
16  *  limitations under the License.
17  */

18
19 package io.undertow.server.handlers.encoding;
20
21 import io.undertow.predicate.Predicate;
22
23 /**
24 * @author Stuart Douglas
25 */

26 final class EncodingMapping implements Comparable<EncodingMapping> {
27
28     private final String name;
29     private final ContentEncodingProvider encoding;
30     private final int priority;
31     private final Predicate allowed;
32
33     EncodingMapping(final String name, final ContentEncodingProvider encoding, final int priority, final Predicate allowed) {
34         this.name = name;
35         this.encoding = encoding;
36         this.priority = priority;
37         this.allowed = allowed;
38     }
39
40     public String getName() {
41         return name;
42     }
43
44     public ContentEncodingProvider getEncoding() {
45         return encoding;
46     }
47
48     public int getPriority() {
49         return priority;
50     }
51
52     public Predicate getAllowed() {
53         return allowed;
54     }
55
56     @Override
57     public boolean equals(Object o) {
58         if (this == o) return true;
59         if (!(o instanceof EncodingMapping)) return false;
60
61         EncodingMapping that = (EncodingMapping) o;
62         return this.compareTo(that) == 0;
63     }
64
65     @Override
66     public int hashCode() {
67         return getPriority();
68     }
69
70     @Override
71     public int compareTo(final EncodingMapping o) {
72         return priority - o.priority;
73     }
74 }
75