Author: niclas
Date: Thu Jul  1 12:11:36 2004
New Revision: 22440

Modified:
   avalon/trunk/runtime/framework/api/src/java/org/apache/avalon/framework/Enum.java
Log:
There is a variable name (enum) in this class that will fail under JDK1.5, as this is 
now a keyword.

Modified: 
avalon/trunk/runtime/framework/api/src/java/org/apache/avalon/framework/Enum.java
==============================================================================
--- avalon/trunk/runtime/framework/api/src/java/org/apache/avalon/framework/Enum.java  
 (original)
+++ avalon/trunk/runtime/framework/api/src/java/org/apache/avalon/framework/Enum.java  
 Thu Jul  1 12:11:36 2004
@@ -1,175 +1,175 @@
-/*
- * Copyright 1997-2004 The Apache Software Foundation
- * 
- * Licensed 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.avalon.framework;
-
-import java.util.Map;
-
-/**
- * Basic enum class for type-safe enums. Should be used as an abstract base. For 
example:
- *
- * <pre>
- * import org.apache.avalon.framework.Enum;
- *
- * public final class Color extends Enum {
- *   public static final Color RED = new Color( "Red" );
- *   public static final Color GREEN = new Color( "Green" );
- *   public static final Color BLUE = new Color( "Blue" );
- *
- *   private Color( final String color )
- *   {
- *     super( color );
- *   }
- * }
- * </pre>
- *
- * If further operations, such as iterating over all items, are required, the
- * [EMAIL PROTECTED] #Enum(String, Map)} constructor can be used to populate a 
<code>Map</code>, from which
- * further functionality can be derived:
- * <pre>
- * public final class Color extends Enum {
- *   static final Map map = new HashMap();
- *
- *   public static final Color RED = new Color( "Red", map );
- *   public static final Color GREEN = new Color( "Green", map );
- *   public static final Color BLUE = new Color( "Blue", map );
- *
- *   private Color( final String color, final Map map )
- *   {
- *     super( color, map );
- *   }
- *
- *   public static Iterator iterator()
- *   {
- *     return map.values().iterator();
- *   }
- * }
- * </pre>
- *
- * <p>
- * <em>NOTE:</em> between 4.0 and 4.1, the constructors' access has been changed
- * from <code>public</code> to <code>protected</code>. This is to prevent users
- * of the Enum breaking type-safety by defining new Enum items. All Enum items
- * should be defined in the Enum class, as shown above.
- * </p>
- *
- *
- * @author <a href="mailto:[EMAIL PROTECTED]">Avalon Development Team</a>
- * @version CVS $Revision: 1.28 $ $Date: 2004/02/11 14:34:24 $
- */
-public abstract class Enum
-{
-    /**
-     * The string representation of the Enum.
-     */
-    private final String m_name;
-
-    /**
-     * Constructor to add a new named item.
-     * <p>
-     * <em>Note:</em> access changed from <code>public</code> to
-     * <code>protected</code> after 4.0. See class description.
-     * </p>
-     *
-     * @param name Name of the item.
-     */
-    protected Enum( final String name )
-    {
-        this( name, null );
-    }
-
-    /**
-     * Constructor to add a new named item.
-     * <p>
-     * <em>Note:</em> access changed from <code>public</code> to
-     * <code>protected</code> after 4.0. See class description.
-     * </p>
-     *
-     * @param name Name of the item.
-     * @param map A <code>Map</code>, to which will be added a pointer to the newly 
constructed
-     * object.
-     */
-    protected Enum( final String name, final Map map )
-    {
-        m_name = name;
-        if( null != map )
-        {
-            map.put( name, this );
-        }
-    }
-
-    /**
-     * Tests for equality. Two Enum:s are considered equal
-     * if they are of the same class and have the same names.
-     * The method is also declared final - I (LSutic) did this to
-     * allow the JIT to inline it easily.
-     *
-     * @param o the other object
-     * @return the equality status
-     */
-    public final boolean equals( Object o )
-    {
-        if( this == o )
-            return true;
-        if( !(o instanceof Enum) )
-            return false;
-
-        final Enum enum = (Enum)o;
-
-        if( !getClass().equals( enum.getClass() ) )
-            return false;
-        if( m_name != null ? !m_name.equals( enum.m_name ) : enum.m_name != null )
-            return false;
-
-        return true;
-    }
-
-    public int hashCode()
-    {
-        int result;
-        result = (m_name != null ? m_name.hashCode() : 0);
-        result = 29 * result + getClass().hashCode();
-        return result;
-    }
-
-    /**
-     * Returns a hash code value for the object.
-     *
-     * @return a hash code value for this object
-     */
-    /*public int hashCode()
-    {
-        return m_name.hashCode() ^ this.getClass().getName().hashCode();
-    }*/
-
-    /**
-     * Retrieve the name of this Enum item, set in the constructor.
-     * @return the name <code>String</code> of this Enum item
-     */
-    public final String getName()
-    {
-        return m_name;
-    }
-
-    /**
-     * Human readable description of this Enum item. For use when debugging.
-     * @return String in the form <code>type[name]</code>, eg.:
-     * <code>Color[Red]</code>.
-     */
-    public String toString()
-    {
-        return getClass().getName() + "[" + m_name + "]";
-    }
-}
+/*

+ * Copyright 1997-2004 The Apache Software Foundation

+ * 

+ * Licensed 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.avalon.framework;

+

+import java.util.Map;

+

+/**

+ * Basic enum class for type-safe enums. Should be used as an abstract base. For 
example:

+ *

+ * <pre>

+ * import org.apache.avalon.framework.Enum;

+ *

+ * public final class Color extends Enum {

+ *   public static final Color RED = new Color( "Red" );

+ *   public static final Color GREEN = new Color( "Green" );

+ *   public static final Color BLUE = new Color( "Blue" );

+ *

+ *   private Color( final String color )

+ *   {

+ *     super( color );

+ *   }

+ * }

+ * </pre>

+ *

+ * If further operations, such as iterating over all items, are required, the

+ * [EMAIL PROTECTED] #Enum(String, Map)} constructor can be used to populate a 
<code>Map</code>, from which

+ * further functionality can be derived:

+ * <pre>

+ * public final class Color extends Enum {

+ *   static final Map map = new HashMap();

+ *

+ *   public static final Color RED = new Color( "Red", map );

+ *   public static final Color GREEN = new Color( "Green", map );

+ *   public static final Color BLUE = new Color( "Blue", map );

+ *

+ *   private Color( final String color, final Map map )

+ *   {

+ *     super( color, map );

+ *   }

+ *

+ *   public static Iterator iterator()

+ *   {

+ *     return map.values().iterator();

+ *   }

+ * }

+ * </pre>

+ *

+ * <p>

+ * <em>NOTE:</em> between 4.0 and 4.1, the constructors' access has been changed

+ * from <code>public</code> to <code>protected</code>. This is to prevent users

+ * of the Enum breaking type-safety by defining new Enum items. All Enum items

+ * should be defined in the Enum class, as shown above.

+ * </p>

+ *

+ *

+ * @author <a href="mailto:[EMAIL PROTECTED]">Avalon Development Team</a>

+ * @version CVS $Revision: 1.28 $ $Date: 2004/02/11 14:34:24 $

+ */

+public abstract class Enum

+{

+    /**

+     * The string representation of the Enum.

+     */

+    private final String m_name;

+

+    /**

+     * Constructor to add a new named item.

+     * <p>

+     * <em>Note:</em> access changed from <code>public</code> to

+     * <code>protected</code> after 4.0. See class description.

+     * </p>

+     *

+     * @param name Name of the item.

+     */

+    protected Enum( final String name )

+    {

+        this( name, null );

+    }

+

+    /**

+     * Constructor to add a new named item.

+     * <p>

+     * <em>Note:</em> access changed from <code>public</code> to

+     * <code>protected</code> after 4.0. See class description.

+     * </p>

+     *

+     * @param name Name of the item.

+     * @param map A <code>Map</code>, to which will be added a pointer to the newly 
constructed

+     * object.

+     */

+    protected Enum( final String name, final Map map )

+    {

+        m_name = name;

+        if( null != map )

+        {

+            map.put( name, this );

+        }

+    }

+

+    /**

+     * Tests for equality. Two Enum:s are considered equal

+     * if they are of the same class and have the same names.

+     * The method is also declared final - I (LSutic) did this to

+     * allow the JIT to inline it easily.

+     *

+     * @param o the other object

+     * @return the equality status

+     */

+    public final boolean equals( Object o )

+    {

+        if( this == o )

+            return true;

+        if( !(o instanceof Enum) )

+            return false;

+

+        final Enum enumerated = (Enum)o;

+

+        if( !getClass().equals( enumerated.getClass() ) )

+            return false;

+        if( m_name != null ? !m_name.equals( enumerated.m_name ) : enumerated.m_name 
!= null )

+            return false;

+

+        return true;

+    }

+

+    public int hashCode()

+    {

+        int result;

+        result = (m_name != null ? m_name.hashCode() : 0);

+        result = 29 * result + getClass().hashCode();

+        return result;

+    }

+

+    /**

+     * Returns a hash code value for the object.

+     *

+     * @return a hash code value for this object

+     */

+    /*public int hashCode()

+    {

+        return m_name.hashCode() ^ this.getClass().getName().hashCode();

+    }*/

+

+    /**

+     * Retrieve the name of this Enum item, set in the constructor.

+     * @return the name <code>String</code> of this Enum item

+     */

+    public final String getName()

+    {

+        return m_name;

+    }

+

+    /**

+     * Human readable description of this Enum item. For use when debugging.

+     * @return String in the form <code>type[name]</code>, eg.:

+     * <code>Color[Red]</code>.

+     */

+    public String toString()

+    {

+        return getClass().getName() + "[" + m_name + "]";

+    }

+}


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to