You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by an...@apache.org on 2012/03/13 20:40:27 UTC

svn commit: r1300301 - in /myfaces/trinidad/branches/andys-skin-pregen: trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/ trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/ trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/...

Author: andys
Date: Tue Mar 13 19:40:26 2012
New Revision: 1300301

URL: http://svn.apache.org/viewvc?rev=1300301&view=rev
Log:
Checkpoint: more code cleanup.  Plus got tired of hand-coding null arg checks so added new Args utility class with Args.notNull() API.

Added:
    myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Args.java
Modified:
    myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/Version.java
    myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Enums.java
    myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Range.java
    myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts
    myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/variant/ApplicationAndVersion.java
    myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/variant/FixedVariantExtractor.java

Modified: myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/Version.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/Version.java?rev=1300301&r1=1300300&r2=1300301&view=diff
==============================================================================
--- myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/Version.java (original)
+++ myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/Version.java Tue Mar 13 19:40:26 2012
@@ -41,6 +41,11 @@ import org.apache.myfaces.trinidad.util.
  * that is inconsistent with equals.  For example,
  * <code>Version("5", "*").compareTo(Version("5.0", "*") == 0</code>
  * <code>Version("5", "*").equals(Version("5.0", "*") == false;</code>
+ * 
+ * The concrete versions produced by toMinimumVersion() and toMaximumVersion()
+ * do have consistent compareTo()/equals() behavior, as these versions are
+ * guaranteed to not contain wildcards.
+ * 
  * @author Blake Sullivan
  */
 public final class Version implements Comparable<Version>

Added: myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Args.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Args.java?rev=1300301&view=auto
==============================================================================
--- myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Args.java (added)
+++ myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Args.java Tue Mar 13 19:40:26 2012
@@ -0,0 +1,54 @@
+/*
+ * 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.myfaces.trinidad.util;
+
+import org.apache.myfaces.trinidad.logging.TrinidadLogger;
+
+/**
+ * Argument processing utilities.
+ */
+public final class Args
+{
+  /**
+   * Ensures that the specified argument is not null.  If
+   * the value is null, an IllegalArgumentException is thrown.
+   * @param arg the value to test
+   * @param argName the name of the argument (for logging purposes)
+   * @return the argument value, if not null
+   */
+  public static <T> T notNull(T arg, String argName)
+  {
+    if (arg == null)
+    {
+      throw new IllegalArgumentException(_getNotNullMessage(argName));
+    }
+    
+    return arg;
+  }
+
+  private static String _getNotNullMessage(String argName)
+  {
+    return _LOG.getMessage("ILLEGAL_NULL_ARGUMENT", argName);
+  }
+
+  private Args() { }
+
+  static private final TrinidadLogger _LOG =
+    TrinidadLogger.createTrinidadLogger(Args.class);
+}
\ No newline at end of file

Modified: myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Enums.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Enums.java?rev=1300301&r1=1300300&r2=1300301&view=diff
==============================================================================
--- myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Enums.java (original)
+++ myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Enums.java Tue Mar 13 19:40:26 2012
@@ -407,5 +407,4 @@ public final class Enums
 
   static private final TrinidadLogger _LOG =
     TrinidadLogger.createTrinidadLogger(Enums.class);
-  
 }

Modified: myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Range.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Range.java?rev=1300301&r1=1300300&r2=1300301&view=diff
==============================================================================
--- myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Range.java (original)
+++ myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/Range.java Tue Mar 13 19:40:26 2012
@@ -18,8 +18,6 @@
  */
 package org.apache.myfaces.trinidad.util;
 
-import org.apache.myfaces.trinidad.logging.TrinidadLogger;
-
 /**
  * Represents a range of comparable values with a specific start and end.
  * 
@@ -38,8 +36,8 @@ public final class Range<C extends Compa
    */
   public static <C extends Comparable> Range<C> of(C start, C end)
   {
-    _checkNull("start", start);
-    _checkNull("end", end);
+    Args.notNull(start, "start");
+    Args.notNull(end, "end");
 
     if (start.compareTo(end) > 0)
     {
@@ -116,7 +114,7 @@ public final class Range<C extends Compa
    */
   public Range<C> intersect(Range<C> otherRange)
   {
-    _checkNull("otherRange", otherRange);
+    Args.notNull(otherRange, "otherRange");
     
     if (isEmpty() || (otherRange.isEmpty()))
     {
@@ -198,17 +196,6 @@ public final class Range<C extends Compa
     return result;
   }
 
-  // Throws an IllegalArgumentException if the specified param value is null
-  private static <C extends Comparable> void _checkNull(String paramName, Object paramValue)
-    throws IllegalArgumentException
-  {
-    if (paramValue == null)
-    {
-      String message = _LOG.getMessage("ILLEGAL_NULL_VALUE", paramName);
-      throw new IllegalArgumentException(message);
-    }
-  }
-
   private Range(C start, C end)
   {
     _start = start;
@@ -222,7 +209,4 @@ public final class Range<C extends Compa
   // that we properly handle deserialization to this singleton instance.
   private static final Range<? extends Comparable> _EMPTY_RANGE = 
     new Range<Comparable>(null, null);
-  
-  private static final TrinidadLogger _LOG =
-    TrinidadLogger.createTrinidadLogger(Range.class);
 }

Modified: myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts?rev=1300301&r1=1300300&r2=1300301&view=diff
==============================================================================
--- myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts (original)
+++ myfaces/trinidad/branches/andys-skin-pregen/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/LoggerBundle.xrts Tue Mar 13 19:40:26 2012
@@ -525,7 +525,7 @@
 <!-- ILLEGAL_ENUM_VALUE -->
 <resource key="ILLEGAL_ENUM_VALUE">No {0} enum constant for value "{1}".</resource>
 
-<resource key="ILLEGAL_NULL_VALUE">Illegal null value for {0}</resource>
+<resource key="ILLEGAL_NULL_ARGUMENT">A non-null value must be specified for the {0} argument.</resource>
 
 <resource key="UNEXPECTED_VERSION_VALUE">Unable to parse version segment {0} of version string {1}.</resource>
 

Modified: myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/variant/ApplicationAndVersion.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/variant/ApplicationAndVersion.java?rev=1300301&r1=1300300&r2=1300301&view=diff
==============================================================================
--- myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/variant/ApplicationAndVersion.java (original)
+++ myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/variant/ApplicationAndVersion.java Tue Mar 13 19:40:26 2012
@@ -19,6 +19,7 @@
 package org.apache.myfaces.trinidadinternal.skin.pregen.variant;
 
 import org.apache.myfaces.trinidad.context.Version;
+import org.apache.myfaces.trinidad.util.Args;
 import org.apache.myfaces.trinidadinternal.agent.TrinidadAgent;
 
 /**
@@ -26,7 +27,11 @@ import org.apache.myfaces.trinidadintern
  * Version value.
  * 
  * Only note of interest: the AppicationAndVersion.version is guaranteed to
- * be concrete (ie. no wildcards).
+ * be concrete (ie. no wildcards).  As a result, although Version.equals()
+ * and Version.compareTo() are typically inconsistent, ApplicationAndVersion's
+ * equals() and compareTo() implementations are consistent - ie. if
+ * ApplicationAndVersion.compareTo() returns zero, equals() returns true
+ * (and vice versa).
  */
 public final class ApplicationAndVersion implements Comparable<ApplicationAndVersion>
 {
@@ -51,14 +56,16 @@ public final class ApplicationAndVersion
    * 
    * @param application a non-null TrinidadAgent.Application instance.
    * @param version a non-null Version instance.
+   * 
+   * @throws IllegalArgumentException if either application or version are null.
    */
   public ApplicationAndVersion(
     TrinidadAgent.Application application,
     Version version
-    )
+    ) throws IllegalArgumentException
   {
-    assert(application != null);
-    assert(version != null);
+    Args.notNull(application, "application");
+    Args.notNull(version, "version");
 
     this.application = application;
     

Modified: myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/variant/FixedVariantExtractor.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/variant/FixedVariantExtractor.java?rev=1300301&r1=1300300&r2=1300301&view=diff
==============================================================================
--- myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/variant/FixedVariantExtractor.java (original)
+++ myfaces/trinidad/branches/andys-skin-pregen/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/skin/pregen/variant/FixedVariantExtractor.java Tue Mar 13 19:40:26 2012
@@ -21,6 +21,7 @@ package org.apache.myfaces.trinidadinter
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 
 import org.apache.myfaces.trinidadinternal.style.xml.parse.StyleSheetNode;
@@ -73,7 +74,7 @@ final class FixedVariantExtractor <T> im
   private FixedVariantExtractor(
     List<T> values)
   {
-    _values = values;
+    _values = Collections.unmodifiableList(values);
   }
   
   private final List<T> _values;