You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jb...@apache.org on 2005/01/31 23:45:09 UTC
svn commit: r149311 - in geronimo/trunk/specs/activation:
README-IMPORTANT-DEVELOPERS.txt
src/java/javax/activation/MailcapCommandMap.java
src/test/javax/activation/MailcapCommandMapTest.java
Author: jboynes
Date: Mon Jan 31 14:45:06 2005
New Revision: 149311
URL: http://svn.apache.org/viewcvs?view=rev&rev=149311
Log:
support wildcards a bit better
Removed:
geronimo/trunk/specs/activation/README-IMPORTANT-DEVELOPERS.txt
Modified:
geronimo/trunk/specs/activation/src/java/javax/activation/MailcapCommandMap.java
geronimo/trunk/specs/activation/src/test/javax/activation/MailcapCommandMapTest.java
Modified: geronimo/trunk/specs/activation/src/java/javax/activation/MailcapCommandMap.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/activation/src/java/javax/activation/MailcapCommandMap.java?view=diff&r1=149310&r2=149311
==============================================================================
--- geronimo/trunk/specs/activation/src/java/javax/activation/MailcapCommandMap.java (original)
+++ geronimo/trunk/specs/activation/src/java/javax/activation/MailcapCommandMap.java Mon Jan 31 14:45:06 2005
@@ -31,8 +31,6 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Collection;
-import java.util.Collections;
/**
* @version $Rev$ $Date$
@@ -273,14 +271,20 @@
}
public synchronized CommandInfo getCommand(String mimeType, String cmdName) {
- HashMap commands = (HashMap) preferredCommands.get(mimeType.toLowerCase());
- if(commands != null)
+ // search for an exact match
+ Map commands = (Map) preferredCommands.get(mimeType.toLowerCase());
+ if(commands != null) {
return (CommandInfo) commands.get(cmdName.toLowerCase());
+ }
int i = mimeType.indexOf('/');
- String mimeType2 = mimeType.substring(0, i + 1) + "*";
- HashMap commands2 = (HashMap) preferredCommands.get(mimeType2.toLowerCase());
- if(commands2 != null)
- return (CommandInfo) commands2.get(cmdName.toLowerCase());
+ if (i == -1) {
+ mimeType = mimeType + "/*";
+ } else {
+ mimeType = mimeType.substring(0, i + 1) + "*";
+ }
+ commands = (Map) preferredCommands.get(mimeType.toLowerCase());
+ if(commands != null)
+ return (CommandInfo) commands.get(cmdName.toLowerCase());
return null;
}
Modified: geronimo/trunk/specs/activation/src/test/javax/activation/MailcapCommandMapTest.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/activation/src/test/javax/activation/MailcapCommandMapTest.java?view=diff&r1=149310&r2=149311
==============================================================================
--- geronimo/trunk/specs/activation/src/test/javax/activation/MailcapCommandMapTest.java (original)
+++ geronimo/trunk/specs/activation/src/test/javax/activation/MailcapCommandMapTest.java Mon Jan 31 14:45:06 2005
@@ -40,9 +40,39 @@
assertEquals("Bar", info.getCommandClass());
}
+ public void testExplicitWildcard() {
+ map.addMailcap("foo/bar ;; x-java-view=Bar");
+ map.addMailcap("foo/* ;; x-java-view=Star");
+ CommandInfo info = map.getCommand("foo/bar", "view");
+ assertEquals("view", info.getCommandName());
+ assertEquals("Bar", info.getCommandClass());
+ info = map.getCommand("foo/foo", "view");
+ assertEquals("view", info.getCommandName());
+ assertEquals("Star", info.getCommandClass());
+ info = map.getCommand("foo/*", "view");
+ assertEquals("view", info.getCommandName());
+ assertEquals("Star", info.getCommandClass());
+ info = map.getCommand("foo", "view");
+ assertEquals("view", info.getCommandName());
+ assertEquals("Star", info.getCommandClass());
+ }
+
+ public void testImplicitWildcard() {
+ map.addMailcap("foo/bar ;; x-java-view=Bar");
+ map.addMailcap("foo ;; x-java-view=Star");
+ CommandInfo info = map.getCommand("foo/bar", "view");
+ assertEquals("view", info.getCommandName());
+ assertEquals("Bar", info.getCommandClass());
+ info = map.getCommand("foo/foo", "view");
+ assertEquals("view", info.getCommandName());
+ assertEquals("Star", info.getCommandClass());
+ info = map.getCommand("foo", "view");
+ assertEquals("view", info.getCommandName());
+ assertEquals("Star", info.getCommandClass());
+ }
+
protected void setUp() throws Exception {
super.setUp();
map = new MailcapCommandMap();
}
-
}