This is an automated email from the ASF dual-hosted git repository.

tv pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jcs.git

commit 8a573b9bc4d9ba593b0934122fe7a433c55e8e22
Author: Thomas Vandahl <[email protected]>
AuthorDate: Mon Feb 9 18:56:27 2026 +0100

    More immutable records
---
 .../jcs4/engine/control/event/ElementEvent.java    | 68 +++-------------------
 .../control/event/behavior/IElementEvent.java      | 10 ++--
 .../control/event/ElementEventHandlerMockImpl.java | 14 ++---
 .../control/event/SimpleEventHandlingUnitTest.java |  2 +-
 .../commons/jcs4/jcache/EvictionListener.java      |  2 +-
 5 files changed, 21 insertions(+), 75 deletions(-)

diff --git 
a/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/control/event/ElementEvent.java
 
b/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/control/event/ElementEvent.java
index e0351f61..60b77953 100644
--- 
a/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/control/event/ElementEvent.java
+++ 
b/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/control/event/ElementEvent.java
@@ -1,26 +1,5 @@
 package org.apache.commons.jcs4.engine.control.event;
 
-/*
- * 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
- *
- *   https://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.
- */
-
-import java.util.EventObject;
-
 import org.apache.commons.jcs4.engine.control.event.behavior.ElementEventType;
 import org.apache.commons.jcs4.engine.control.event.behavior.IElementEvent;
 
@@ -28,47 +7,14 @@ import 
org.apache.commons.jcs4.engine.control.event.behavior.IElementEvent;
  * Element events will trigger the creation of Element Event objects. This is 
a wrapper around the
  * cache element that indicates the event triggered.
  */
-public class ElementEvent<T>
-    extends EventObject
-    implements IElementEvent<T>
+public record ElementEvent<T>(
+        /** Event source */
+        T source,
+
+        /** Default event code */
+        ElementEventType elementEventType
+) implements IElementEvent<T>
 {
     /** Don't change */
     private static final long serialVersionUID = -5364117411457467056L;
-
-    /** Default event code */
-    private ElementEventType elementEvent = 
ElementEventType.EXCEEDED_MAXLIFE_BACKGROUND;
-
-    /**
-     * Constructor for the ElementEvent object
-     *
-     * @param source The Cache Element
-     * @param elementEvent The event id defined in the enum class.
-     */
-    public ElementEvent( final T source, final ElementEventType elementEvent )
-    {
-        super( source );
-        this.elementEvent = elementEvent;
-    }
-
-    /**
-     * Gets the elementEvent attribute of the ElementEvent object
-     *
-     * @return The elementEvent value. The List of values is defined in 
ElementEventType.
-     */
-    @Override
-    public ElementEventType getElementEvent()
-    {
-        return elementEvent;
-    }
-
-    /**
-     * @return the source of the event.
-     */
-    @SuppressWarnings("unchecked") // Generified
-    @Override
-    public T getSource()
-    {
-        return (T) super.getSource();
-
-    }
 }
diff --git 
a/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/control/event/behavior/IElementEvent.java
 
b/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/control/event/behavior/IElementEvent.java
index c5482a13..66583c6f 100644
--- 
a/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/control/event/behavior/IElementEvent.java
+++ 
b/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/control/event/behavior/IElementEvent.java
@@ -28,15 +28,15 @@ public interface IElementEvent<T>
     extends Serializable
 {
     /**
-     * Gets the elementEvent attribute of the IElementEvent object. This code 
is Contained in the
-     * IElememtEventConstants class.
+     * Gets the elementEvent attribute of the IElementEvent object. This code 
is contained in the
+     * ElementEventType class.
      *
-     * @return The elementEvent value
+     * @return The elementEventType value
      */
-    ElementEventType getElementEvent();
+    ElementEventType elementEventType();
 
     /**
      * @return the source of the event.
      */
-    T getSource();
+    T source();
 }
diff --git 
a/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/engine/control/event/ElementEventHandlerMockImpl.java
 
b/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/engine/control/event/ElementEventHandlerMockImpl.java
index 8c1d3a01..8a958ad2 100644
--- 
a/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/engine/control/event/ElementEventHandlerMockImpl.java
+++ 
b/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/engine/control/event/ElementEventHandlerMockImpl.java
@@ -108,27 +108,27 @@ public class ElementEventHandlerMockImpl
 
         if ( log.isDebugEnabled() )
         {
-            log.debug( "HANDLER -- HANDLER -- HANDLER -- ---EVENT CODE = " + 
event.getElementEvent() );
-            log.debug( "/n/n EVENT CODE = " + event.getElementEvent() + " 
***************************" );
+            log.debug( "HANDLER -- HANDLER -- HANDLER -- ---EVENT CODE = " + 
event.elementEventType() );
+            log.debug( "/n/n EVENT CODE = " + event.elementEventType() + " 
***************************" );
         }
 
-        if ( event.getElementEvent() == 
ElementEventType.SPOOLED_DISK_AVAILABLE )
+        if ( event.elementEventType() == 
ElementEventType.SPOOLED_DISK_AVAILABLE )
         {
             setSpoolCount( getSpoolCount() + 1 );
         }
-        else if ( event.getElementEvent() == 
ElementEventType.SPOOLED_NOT_ALLOWED )
+        else if ( event.elementEventType() == 
ElementEventType.SPOOLED_NOT_ALLOWED )
         {
             setSpoolNotAllowedCount( getSpoolNotAllowedCount() + 1 );
         }
-        else if ( event.getElementEvent() == 
ElementEventType.SPOOLED_DISK_NOT_AVAILABLE )
+        else if ( event.elementEventType() == 
ElementEventType.SPOOLED_DISK_NOT_AVAILABLE )
         {
             setSpoolNoDiskCount( getSpoolNoDiskCount() + 1 );
         }
-        else if ( event.getElementEvent() == 
ElementEventType.EXCEEDED_MAXLIFE_BACKGROUND )
+        else if ( event.elementEventType() == 
ElementEventType.EXCEEDED_MAXLIFE_BACKGROUND )
         {
             setExceededMaxLifeBackgroundCount( 
getExceededMaxLifeBackgroundCount() + 1 );
         }
-        else if ( event.getElementEvent() == 
ElementEventType.EXCEEDED_IDLETIME_BACKGROUND )
+        else if ( event.elementEventType() == 
ElementEventType.EXCEEDED_IDLETIME_BACKGROUND )
         {
             setExceededIdleTimeBackgroundCount( 
getExceededIdleTimeBackgroundCount() + 1 );
         }
diff --git 
a/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/engine/control/event/SimpleEventHandlingUnitTest.java
 
b/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/engine/control/event/SimpleEventHandlingUnitTest.java
index 5443c5cf..8476d3f3 100644
--- 
a/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/engine/control/event/SimpleEventHandlingUnitTest.java
+++ 
b/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/engine/control/event/SimpleEventHandlingUnitTest.java
@@ -108,7 +108,7 @@ class SimpleEventHandlingUnitTest
             //System.out.println( "Handling Event of Type " +
             // event.getElementEvent() );
 
-            switch (event.getElementEvent())
+            switch (event.elementEventType())
             {
                 case SPOOLED_DISK_AVAILABLE:
                 //System.out.println( "Handling Event of Type
diff --git 
a/commons-jcs4-jcache/src/main/java/org/apache/commons/jcs4/jcache/EvictionListener.java
 
b/commons-jcs4-jcache/src/main/java/org/apache/commons/jcs4/jcache/EvictionListener.java
index 6ba72fe8..9e1a1a3b 100644
--- 
a/commons-jcs4-jcache/src/main/java/org/apache/commons/jcs4/jcache/EvictionListener.java
+++ 
b/commons-jcs4-jcache/src/main/java/org/apache/commons/jcs4/jcache/EvictionListener.java
@@ -33,7 +33,7 @@ public class EvictionListener implements IElementEventHandler
     @Override
     public <T> void handleElementEvent(final IElementEvent<T> event)
     {
-        switch (event.getElementEvent())
+        switch (event.elementEventType())
         {
             case EXCEEDED_MAXLIFE_BACKGROUND:
             case EXCEEDED_MAXLIFE_ONREQUEST:

Reply via email to