Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.commonjava.maven.galley.maven.parse;
  
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;
  
  import  javax.inject.Inject;
 
 
 public abstract class AbstractMavenXmlReader<T extends ProjectRef>
 {
 
     private final Map<DocCacheKey<T>, WeakReference<DocRef<T>>> cache = new ConcurrentHashMap<DocCacheKey<T>, WeakReference<DocRef<T>>>();
 
     @Inject
     protected XMLInfrastructure xml;
 
     protected AbstractMavenXmlReader()
     {
     }
 
     protected AbstractMavenXmlReaderfinal XMLInfrastructure xml )
     {
         this. = xml;
     }
 
     protected synchronized void cachefinal DocRef<T> dr )
     {
         .putnew DocCacheKey<T>( dr ), new WeakReference<DocRef<T>>( dr ) );
     }
 
     protected synchronized DocRef<T> getFirstCachedfinal T reffinal List<? extends Locationlocations )
     {
         for ( final Location location : locations )
         {
             final DocCacheKey<ProjectRefkey = new DocCacheKey<ProjectRef>( reflocation );
             final WeakReference<DocRef<T>> reference = .getkey );
             if ( reference != null )
             {
                 final DocRef<T> dr = reference.get();
                 if ( dr == null )
                 {
                     .removekey );
                 }
                 else
                 {
                     return dr;
                 }
             }
         }
 
         return null;
     }
 
     protected synchronized Map<LocationDocRef<T>> getAllCachedfinal T reffinal List<? extends Locationlocations )
     {
         final Map<LocationDocRef<T>> result = new HashMap<LocationDocRef<T>>();
         for ( final Location location : locations )
         {
             final DocCacheKey<ProjectRefkey = new DocCacheKey<ProjectRef>( reflocation );
             final WeakReference<DocRef<T>> reference = .getkey );
             if ( reference != null )
             {
                 final DocRef<T> dr = reference.get();
                 if ( dr == null )
                 {
                     .removekey );
                 }
                 else
                 {
                     result.putlocationdr );
                 }
             }
         }
 
         return result;
     }
 
     private static final class DocCacheKey<T extends ProjectRef>
     {
         private final T ref;
 
         private final Location location;
 
         private DocCacheKeyfinal T reffinal Location location )
         {
             this. = ref;
             this. = location;
         }
 
         public DocCacheKeyfinal DocRef<T> dr )
         {
             this. = dr.getRef();
             this. = dr.getLocation();
        }
        @Override
        public int hashCode()
        {
            final int prime = 31;
            int result = 1;
            result = prime * result + ( (  == null ) ? 0 : .hashCode() );
            result = prime * result + ( (  == null ) ? 0 : .hashCode() );
            return result;
        }
        @Override
        public boolean equalsfinal Object obj )
        {
            if ( this == obj )
            {
                return true;
            }
            if ( obj == null )
            {
                return false;
            }
            if ( getClass() != obj.getClass() )
            {
                return false;
            }
            @SuppressWarnings"unchecked" )
            final DocCacheKey<T> other = (DocCacheKey<T>) obj;
            if (  == null )
            {
                if ( other.location != null )
                {
                    return false;
                }
            }
            else if ( !.equalsother.location ) )
            {
                return false;
            }
            if (  == null )
            {
                if ( other.ref != null )
                {
                    return false;
                }
            }
            else if ( !.equalsother.ref ) )
            {
                return false;
            }
            return true;
        }
    }
New to GrepCode? Check out our FAQ X