View Javadoc
1   /*
2    * Copyright 2012 the original author or authors.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.openehealth.ipf.commons.core.config;
17  
18  /**
19   * Base class for all custom configurers which have to implement their own strategy
20   * for lookup and configure.
21   *
22   * @author Boris Stanojevic
23   */
24  public abstract class OrderedConfigurer<T, R extends Registry> implements Configurer<T, R>, Comparable<OrderedConfigurer<T, R>> {
25  
26      private int order = Integer.MAX_VALUE;
27  
28      @Override
29      public int compareTo(OrderedConfigurer<T, R> configurer) {
30          if (configurer.getOrder() < getOrder()) {
31              return 1;
32          } else if (configurer.getOrder() > getOrder()) {
33              return -1;
34          } else {
35              return 0;
36          }
37      }
38  
39      public int getOrder() {
40          return order;
41      }
42  
43      public void setOrder(int order) {
44          this.order = order;
45      }
46  }