You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-commits@incubator.apache.org by xa...@apache.org on 2007/05/31 06:38:25 UTC

svn commit: r543068 - in /incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version: AbstractVersionMatcher.java ChainVersionMatcher.java

Author: xavier
Date: Wed May 30 23:38:24 2007
New Revision: 543068

URL: http://svn.apache.org/viewvc?view=rev&rev=543068
Log:
ChainVersionMatcher: check parameters against nullity, add some javadoc, remove _ prefix

Modified:
    incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/AbstractVersionMatcher.java
    incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/ChainVersionMatcher.java

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/AbstractVersionMatcher.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/AbstractVersionMatcher.java?view=diff&rev=543068&r1=543067&r2=543068
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/AbstractVersionMatcher.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/AbstractVersionMatcher.java Wed May 30 23:38:24 2007
@@ -23,10 +23,11 @@
 import org.apache.ivy.core.module.id.ModuleRevisionId;
 import org.apache.ivy.core.settings.IvySettings;
 import org.apache.ivy.plugins.IvySettingsAware;
+import org.apache.ivy.util.Checks;
 
 public abstract class AbstractVersionMatcher implements VersionMatcher, IvySettingsAware {
 	private String _name;
-	private IvySettings _settings;
+	private IvySettings settings;
 	
 	public AbstractVersionMatcher() {
 	}
@@ -65,11 +66,12 @@
     }
 
 	public IvySettings getSettings() {
-		return _settings;
+		return settings;
 	}
 
-	public void setSettings(IvySettings ivy) {
-		_settings = ivy;
+	public void setSettings(IvySettings settings) {
+    	Checks.checkNotNull(settings, "settings");
+		this.settings = settings;
 	}
 
 }

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/ChainVersionMatcher.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/ChainVersionMatcher.java?view=diff&rev=543068&r1=543067&r2=543068
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/ChainVersionMatcher.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/version/ChainVersionMatcher.java Wed May 30 23:38:24 2007
@@ -27,25 +27,52 @@
 import org.apache.ivy.core.module.id.ModuleRevisionId;
 import org.apache.ivy.core.settings.IvySettings;
 import org.apache.ivy.plugins.IvySettingsAware;
+import org.apache.ivy.util.Checks;
 
-
+/**
+ * An implementation of {@link VersionMatcher} chaining several
+ * version matchers, and implemeting the {@link VersionMatcher}
+ * interface by returning results from the first matcher in the chain
+ * accepting the version. 
+ */
 public class ChainVersionMatcher extends AbstractVersionMatcher {
-    private List _matchers = new LinkedList();
+	/**
+	 * The list of version matchers in the chain.
+	 * This list will be queried in order, so the last matcher
+	 * will be used only if no other matcher accept the revision
+	 * before.
+	 */
+    private List/*<VersionMatcher>*/ matchers = new LinkedList();
     
+    /**
+     * Unique Constructor.
+     */
     public ChainVersionMatcher() {
     	super("chain");
     }
-    
+
+    /**
+     * Adds a {@link VersionMatcher} to the chain.
+     * 
+     * @param matcher the version matcher to add. Must not be null
+     */
     public void add(VersionMatcher matcher) {
-        _matchers.add(0, matcher);
+    	Checks.checkNotNull(matcher, "matcher");
+        matchers.add(0, matcher);
 		if (getSettings() != null && matcher instanceof IvySettingsAware) {
 			((IvySettingsAware) matcher).setSettings(getSettings());
 		}
     }
     
+    /**
+     * Sets the settings this matcher will use, and set to the matcher in the chain
+     * which implements {@link IvySettingsAware}.
+     * 
+     * @param settings the settings to use in the whole chain. Must not be null.
+     */
     public void setSettings(IvySettings settings) {
     	super.setSettings(settings);
-    	for (Iterator iter = _matchers.iterator(); iter.hasNext();) {
+    	for (Iterator iter = matchers.iterator(); iter.hasNext();) {
 			VersionMatcher matcher = (VersionMatcher) iter.next();
 			if (matcher instanceof IvySettingsAware) {
 				((IvySettingsAware) matcher).setSettings(settings);
@@ -53,13 +80,22 @@
 		}
     }
     
+    /**
+     * Returns the list of matchers in the chain.
+     * <p>
+     * The list is returned as an unmodifiable view on the actual list of matchers,
+     * and will thus reflect futher changes made in the chain.
+     * 
+     * @return the list of matchers in the chain. Is never null.
+     */
     public List getMatchers() {
-    	return Collections.unmodifiableList(_matchers);
+    	return Collections.unmodifiableList(matchers);
     }
     
 
     public boolean isDynamic(ModuleRevisionId askedMrid) {
-        for (Iterator iter = _matchers.iterator(); iter.hasNext();) {
+    	Checks.checkNotNull(askedMrid, "askedMrid");
+        for (Iterator iter = matchers.iterator(); iter.hasNext();) {
             VersionMatcher matcher = (VersionMatcher)iter.next();
             if (matcher.isDynamic(askedMrid)) {
                 return true;
@@ -69,7 +105,10 @@
     }
 
     public int compare(ModuleRevisionId askedMrid, ModuleRevisionId foundMrid, Comparator staticComparator) {
-    	for (Iterator iter = _matchers.iterator(); iter.hasNext();) {
+    	Checks.checkNotNull(askedMrid, "askedMrid");
+    	Checks.checkNotNull(foundMrid, "foundMrid");
+    	Checks.checkNotNull(staticComparator, "staticComparator");
+    	for (Iterator iter = matchers.iterator(); iter.hasNext();) {
     		VersionMatcher matcher = (VersionMatcher)iter.next();
     		if (matcher.isDynamic(askedMrid)) {
     			return matcher.compare(askedMrid, foundMrid, staticComparator);
@@ -79,7 +118,9 @@
     }
 
     public boolean accept(ModuleRevisionId askedMrid, ModuleRevisionId foundMrid) {
-        for (Iterator iter = _matchers.iterator(); iter.hasNext();) {
+    	Checks.checkNotNull(askedMrid, "askedMrid");
+    	Checks.checkNotNull(foundMrid, "foundMrid");
+        for (Iterator iter = matchers.iterator(); iter.hasNext();) {
             VersionMatcher matcher = (VersionMatcher)iter.next();
             if (!iter.hasNext() || matcher.isDynamic(askedMrid)) {
                 return matcher.accept(askedMrid, foundMrid);
@@ -89,7 +130,9 @@
     }
 
     public boolean needModuleDescriptor(ModuleRevisionId askedMrid, ModuleRevisionId foundMrid) {
-        for (Iterator iter = _matchers.iterator(); iter.hasNext();) {
+    	Checks.checkNotNull(askedMrid, "askedMrid");
+    	Checks.checkNotNull(foundMrid, "foundMrid");
+        for (Iterator iter = matchers.iterator(); iter.hasNext();) {
             VersionMatcher matcher = (VersionMatcher)iter.next();
             if (!iter.hasNext() || matcher.isDynamic(askedMrid)) {
                 return matcher.needModuleDescriptor(askedMrid, foundMrid);
@@ -99,7 +142,9 @@
     }
 
     public boolean accept(ModuleRevisionId askedMrid, ModuleDescriptor foundMD) {
-        for (Iterator iter = _matchers.iterator(); iter.hasNext();) {
+    	Checks.checkNotNull(askedMrid, "askedMrid");
+    	Checks.checkNotNull(foundMD, "foundMD");
+        for (Iterator iter = matchers.iterator(); iter.hasNext();) {
             VersionMatcher matcher = (VersionMatcher)iter.next();
             if (!iter.hasNext() || matcher.isDynamic(askedMrid)) {
                 return matcher.accept(askedMrid, foundMD);
@@ -107,5 +152,4 @@
         }
         return false;
     }
-
 }