Permalink
Browse files

Enhanced javadoc taglet support so that we can link to the new MongoD…

…B manual at docs.mongogb.org/manual
  • Loading branch information...
1 parent 0cac416 commit bef3865df841aa1092326bf27d197164df2adb04 @jyemin jyemin committed Aug 3, 2012
View
@@ -210,7 +210,8 @@ limitations under the License.
access="protected">
<link href="http://download.oracle.com/javase/1.5.0/docs/api/"/>
<classpath refid="classpath"/>
- <taglet name="ApiToolsTaglet" path="build/util"/>
+ <taglet name="DochubTaglet" path="build/util"/>
+ <taglet name="ManualTaglet" path="build/util"/>
</javadoc>
<javadoc
@@ -225,7 +226,8 @@ limitations under the License.
access="protected">
<link href="http://download.oracle.com/javase/1.5.0/docs/api/"/>
<classpath refid="classpath"/>
- <taglet name="ApiToolsTaglet" path="build/util"/>
+ <taglet name="DochubTaglet" path="build/util"/>
+ <taglet name="ManualTaglet" path="build/util"/>
</javadoc>
</target>
@@ -21,7 +21,9 @@
/**
- * an abstract class that represents preferred replica set members to which a query or command can be sent
+ * An abstract class that represents preferred replica set members to which a query or command can be sent.
+ *
+ * @mongodb.driver.manual applications/replication/#replica-set-read-preference Read Preference
*/
public abstract class ReadPreference {
@@ -1,71 +0,0 @@
-// ApiToolsTaglet.java
-
-/**
- * Copyright (C) 2008 10gen Inc.
- *
- * 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.
- */
-
-import java.util.*;
-import com.sun.javadoc.*;
-import com.sun.tools.doclets.*;
-
-public class ApiToolsTaglet implements Taglet {
-
- @SuppressWarnings("unchecked")
- public static void register( Map tagletMap ){
- ApiToolsTaglet t = new ApiToolsTaglet();
- tagletMap.put( t.getName() , t );
- }
-
- public String getName(){
- return "dochub";
- }
-
- public boolean inConstructor(){ return true; }
- public boolean inField(){ return true; }
- public boolean inMethod(){ return true; }
- public boolean inOverview(){ return true; }
- public boolean inPackage(){ return true; }
- public boolean inType(){ return true; }
-
- public boolean isInlineTag(){ return false; }
-
- String genLink( String name ){
- return new StringBuilder()
- .append( "<a href='http://dochub.mongodb.org/core/" ).append( name ).append( "' " )
- .append( "name='" ).append( name ).append( "' " )
- .append( ">").append( name ).append( "</a>" )
- .toString();
- }
-
- public String toString( Tag tag ){
- return toString( new Tag[]{ tag } );
- }
-
- public String toString( Tag[] tags ){
- if ( tags.length == 0 )
- return null;
-
- StringBuilder buf = new StringBuilder( "\n<br><DT><B>MongoDB Doc Links</B><DD>" );
- buf.append( "<ul>" );
- for ( Tag t : tags ){
- buf.append( "<li>" ).append( genLink( t.text() ) ).append( "</li>" );
- }
- buf.append( "</ul>" );
- buf.append( "</DD>\n" );
- return buf.toString();
- }
-
-
-}
View
@@ -0,0 +1,65 @@
+/**
+ * Copyright (c) 2008 - 2012 10gen, Inc. <http://10gen.com>
+ * <p/>
+ * 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
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * 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.
+ */
+
+import com.sun.javadoc.Tag;
+import com.sun.tools.doclets.Taglet;
+
+public abstract class DocTaglet implements Taglet {
+
+ public boolean inConstructor() { return true; }
+ public boolean inField() { return true; }
+ public boolean inMethod() { return true; }
+ public boolean inOverview() { return true; }
+ public boolean inPackage() { return true; }
+ public boolean inType() { return true; }
+
+ public boolean isInlineTag() { return false; }
+
+ public String toString( Tag[] tags ){
+ if ( tags.length == 0 )
+ return null;
+
+ StringBuilder buf = new StringBuilder( "\n<br><DT><B>MongoDB Doc Links</B><DD>" );
+ buf.append( "<ul>" );
+ for ( Tag t : tags ){
+ buf.append( "<li>" ).append( genLink( t.text() ) ).append( "</li>" );
+ }
+ buf.append( "</ul>" );
+ buf.append( "</DD>\n" );
+ return buf.toString();
+ }
+
+ public String toString( Tag tag ){
+ return toString(new Tag[]{tag});
+ }
+
+ protected String genLink( String text ){
+ String relativePath = text;
+ String display = text;
+
+ int firstSpace = text.indexOf(' ');
+ if (firstSpace != -1) {
+ relativePath = text.substring(0, firstSpace);
+ display = text.substring(firstSpace, text.length()).trim();
+ }
+
+ return new StringBuilder()
+ .append( "<a href='" ).append(getBaseDocURI()).append(relativePath).append( "'>" ).append(display).append( "</a>" )
+ .toString();
+ }
+
+ protected abstract String getBaseDocURI();
+}
View
@@ -0,0 +1,36 @@
+/**
+ * Copyright (c) 2008 - 2012 10gen, Inc. <http://10gen.com>
+ * <p/>
+ * 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
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * 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.
+ */
+
+import com.sun.tools.doclets.Taglet;
+
+import java.util.Map;
+
+public class DochubTaglet extends DocTaglet {
+
+ public static void register( Map<String, Taglet> tagletMap ){
+ DochubTaglet t = new DochubTaglet();
+ tagletMap.put( t.getName() , t );
+ }
+
+ public String getName(){
+ return "dochub";
+ }
+
+ @Override
+ protected String getBaseDocURI() {
+ return "http://dochub.mongodb.org/core/";
+ }
+}
View
@@ -0,0 +1,37 @@
+/**
+ * Copyright (c) 2008 - 2012 10gen, Inc. <http://10gen.com>
+ * <p/>
+ * 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
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * 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.
+ */
+
+import com.sun.tools.doclets.Taglet;
+
+import java.util.Map;
+
+public class ManualTaglet extends DocTaglet {
+
+ public static void register( Map<String, Taglet> tagletMap ){
+ ManualTaglet t = new ManualTaglet();
+ tagletMap.put( t.getName() , t );
+ }
+
+ public String getName(){
+ return "mongodb.driver.manual";
+ }
+
+ @Override
+ protected String getBaseDocURI() {
+ return "http://docs.mongodb.org/manual/";
+ }
+
+}

0 comments on commit bef3865

Please sign in to comment.