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 [EMAIL PROTECTED] VersionMatcher} chaining several
+ * version matchers, and implemeting the [EMAIL PROTECTED] 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 [EMAIL PROTECTED] 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 [EMAIL PROTECTED] 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;
}
-
}