Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to the Apache Software Foundation (ASF) under one
   * or more contributor license agreements.  See the NOTICE file
   * distributed with this work for additional information
   * regarding copyright ownership.  The ASF licenses this file
   * to you under the Apache License, Version 2.0 (the
   * "License"); you may not use this file except in compliance
   * with the License.  You may obtain a copy of the License at
   *
  *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
 package org.apache.sling.engine.impl.filter;
 
 
 
 
 public class FilterHandle implements Comparable<FilterHandle> {
 
     private final Filter filter;
     
     private final Pattern regex;
 
     private final Long filterId;
 
     private final int order;
 
     private final String orderSource;
 
     private AtomicLong calls;
 
     private AtomicLong time;
 
     FilterHandle(Filter filterString patternLong filterIdint orderfinal String orderSource) {
         this. = filter;
         if (pattern != null && pattern.length() > 0) {
             this. = Pattern.compile(pattern);
         } else {
             this. = null;
         }
         
         this. = filterId;
         this. = order;
         this. = orderSource;
         this. = new AtomicLong();
         this. = new AtomicLong();
     }
 
     public Filter getFilter() {
         return ;
     }
 
     public Long getFilterId() {
         return ;
     }
 
     public int getOrder() {
         return ;
     }
 
     public String getOrderSource() {
         return ;
     }
     
     boolean select(SlingHttpServletRequest slingHttpServletRequest) {
         boolean select = true;        
         if ( != null) {
             String uri = slingHttpServletRequest.getPathInfo();
             // assume root if uri is null
             if (uri == null)
             {
                 uri = "/";
             }
             select = this..matcher(uri).matches();
         }        
         return select;
     }
 
     public long getCalls() {
         return .get();
     }
 
     public long getTime() {
         return .get();
     }
 
     public long getTimePerCall() {
         return (getCalls() > 0) ? (1000L * getTime() / getCalls()) : -1;
     }
    void track() {
        .incrementAndGet();
    }
    void trackTime(long time) {
        this..addAndGet(time);
    }

    
Note: this class has a natural ordering that is inconsistent with equals.
    public int compareTo(FilterHandle other) {
        if (this == other || equals(other)) {
            return 0;
        }
        if ( > other.order) {
            return -1;
        } else if ( < other.order) {
            return 1;
        }
        // if the filterId is comparable and the other is of the same class
        if ( != null && other.filterId != null) {
            int comp = .compareTo(other.filterId);
            if (comp != 0) {
                return comp;
            }
        }
        // consider equal ranking
        return 0;
    }
    @Override
    public int hashCode() {
        if (  == null ) {
            return 0;
        }
        return .hashCode();
    }
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj instanceof FilterHandle) {
            FilterHandle other = (FilterHandleobj;
            return getFilter().equals(other.getFilter());
        }
        return false;
    }
New to GrepCode? Check out our FAQ X