You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by gh...@apache.org on 2003/07/01 05:44:17 UTC

cvs commit: cocoon-2.1/src/scratchpad/src/org/apache/cocoon/caching/validity NameValueEvent.java Event.java EventValidity.java NamedEvent.java

ghoward     2003/06/30 20:44:17

  Modified:    src/scratchpad/src/org/apache/cocoon/caching/validity
                        NameValueEvent.java Event.java EventValidity.java
                        NamedEvent.java
  Log:
  Add hashCode for lookup in EventAwareCacheImpl
  
  Revision  Changes    Path
  1.2       +19 -11    cocoon-2.1/src/scratchpad/src/org/apache/cocoon/caching/validity/NameValueEvent.java
  
  Index: NameValueEvent.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/scratchpad/src/org/apache/cocoon/caching/validity/NameValueEvent.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- NameValueEvent.java	21 Jun 2003 03:36:14 -0000	1.1
  +++ NameValueEvent.java	1 Jul 2003 03:44:16 -0000	1.2
  @@ -60,27 +60,35 @@
   
       private String m_name;
       private String m_value;
  +    private int m_hashcode;
       
  +    /**
  +     * Constructor requires two Strings - the name/value 
  +     * pair which defines this Event.
  +     * 
  +     * @param name
  +     * @param value
  +     */
   	public NameValueEvent(String name, String value) {
           m_name = name;
           m_value = value;
  +        m_hashcode = (name + value).hashCode();
   	}
       
  -    private String getName() {
  -        return m_name;
  -    }
  -    
  -    private String getValue() {
  -        return m_value;
  -    }
  -    
  +    /**
  +     * Must return true when both name and value are 
  +     * equivalent Strings.
  +     */
   	public boolean equals(Event e) {
   		if (e instanceof NameValueEvent) {
               NameValueEvent nve = (NameValueEvent)e;
  -            return ( m_name.equals(nve.getName()) && 
  -                m_value.equals(nve.getValue()) );
  +            return ( m_name.equals(nve.m_name) && 
  +                m_value.equals(nve.m_value) );
   		}
   		return false;
   	}
  -
  +    
  +    public int hashCode() {
  +        return m_hashcode;
  +    }
   }
  
  
  
  1.2       +14 -0     cocoon-2.1/src/scratchpad/src/org/apache/cocoon/caching/validity/Event.java
  
  Index: Event.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/scratchpad/src/org/apache/cocoon/caching/validity/Event.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Event.java	21 Jun 2003 03:36:14 -0000	1.1
  +++ Event.java	1 Jul 2003 03:44:16 -0000	1.2
  @@ -59,7 +59,21 @@
    */
   public abstract class Event {
       
  +    /**
  +     * Used by EventValidity for equals(Object o) which 
  +     * is important for determining whether a received event 
  +     * should uncache a held Pipeline key.
  +     * 
  +     * @param event Another Event to compare.
  +     * @return true if
  +     */
       public abstract boolean equals(Event e);
  +    
  +    /**
  +     * This hash code is the only way the system can locate 
  +     * matching Events when a new event notification is received.
  +     */
  +    public abstract int hashCode();
       
       public boolean equals(Object o) {
           if (o instanceof Event) {
  
  
  
  1.2       +30 -4     cocoon-2.1/src/scratchpad/src/org/apache/cocoon/caching/validity/EventValidity.java
  
  Index: EventValidity.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/scratchpad/src/org/apache/cocoon/caching/validity/EventValidity.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- EventValidity.java	21 Jun 2003 03:36:14 -0000	1.1
  +++ EventValidity.java	1 Jul 2003 03:44:16 -0000	1.2
  @@ -55,32 +55,58 @@
    * The SourceValidity object for cache invalidation based on 
    * external events.
    * 
  - * @author Geoff Howard(ghoward@apache.org)
  - * @version $CVS$
  + * @author Geoff Howard (ghoward@apache.org)
  + * @version $CVS$ 
    */
   public class EventValidity implements SourceValidity {
       
       private Event m_event;
       
  +    /**
  +     * Constructor requires any subclass of Event.
  +     * @param ev
  +     */
       public EventValidity(Event ev) {
           m_event = ev;
       }
       
  +    /**
  +     * Returns the specific Event this validity is based on.
  +     * 
  +     * @return Event
  +     */
       public Event getEvent() {
           return m_event;
       }
   
  -	/** Basic implementation is always valid until event signals 
  -     *  otherwise.  May never need other behavior.
  +	/** 
  +     * Basic implementation is always valid until event signals 
  +     * otherwise.  May never need other behavior.
   	 */
   	public int isValid() {
   		return VALID;
   	}
   
  +    /** 
  +     * Older style of isValid
  +     */
   	public int isValid(SourceValidity sv) {
   		if (sv instanceof EventValidity) {
               return VALID;
   		} 
           return INVALID;
   	}
  +    
  +    
  +    public boolean equals(Object o) {
  +        if (o instanceof EventValidity) {
  +            return m_event.equals(((EventValidity)o).getEvent());
  +        } 
  +        return false;
  +    }
  +    
  +	public int hashCode() {
  +		return m_event.hashCode();
  +	}
  +
   }
  
  
  
  1.2       +15 -5     cocoon-2.1/src/scratchpad/src/org/apache/cocoon/caching/validity/NamedEvent.java
  
  Index: NamedEvent.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/scratchpad/src/org/apache/cocoon/caching/validity/NamedEvent.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- NamedEvent.java	21 Jun 2003 03:36:14 -0000	1.1
  +++ NamedEvent.java	1 Jul 2003 03:44:16 -0000	1.2
  @@ -59,21 +59,31 @@
   public class NamedEvent extends Event {
       
       private String m_name;
  +    private int m_hashcode;
       
  +    /**
  +     * Constructor takes a simple String as event name.
  +     * 
  +     * @param String name
  +     */
       public NamedEvent(String name) {
           m_name = name;
  +        m_hashcode = name.hashCode();
       }
       
  -    private String getName() {
  -        return m_name;
  -    }
  -
  +    /**
  +     * Every NamedEvent where the name string is equal must 
  +     * return true.
  +     */
   	public boolean equals(Event e) {
           if (e instanceof NamedEvent) {
  -            return m_name.equals(((NamedEvent)e).getName());
  +            return m_name.equals(((NamedEvent)e).m_name);
           }
   		return false;
   	}
       
  +    public int hashCode() {
  +        return m_hashcode;
  +    }
       
   }