Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'applications/kosmos/bundles/org.eclipse.ecf.presence.bot.kosmos/src/org/eclipse/ecf/internal/presence/bot/kosmos/JavadocAnalyzer.java')
-rw-r--r--applications/kosmos/bundles/org.eclipse.ecf.presence.bot.kosmos/src/org/eclipse/ecf/internal/presence/bot/kosmos/JavadocAnalyzer.java129
1 files changed, 129 insertions, 0 deletions
diff --git a/applications/kosmos/bundles/org.eclipse.ecf.presence.bot.kosmos/src/org/eclipse/ecf/internal/presence/bot/kosmos/JavadocAnalyzer.java b/applications/kosmos/bundles/org.eclipse.ecf.presence.bot.kosmos/src/org/eclipse/ecf/internal/presence/bot/kosmos/JavadocAnalyzer.java
new file mode 100644
index 000000000..1c2c10202
--- /dev/null
+++ b/applications/kosmos/bundles/org.eclipse.ecf.presence.bot.kosmos/src/org/eclipse/ecf/internal/presence/bot/kosmos/JavadocAnalyzer.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Remy Suen and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Remy Suen <remy.suen@gmail.com> - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.ecf.internal.presence.bot.kosmos;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.osgi.util.NLS;
+
+class JavadocAnalyzer {
+
+ private final Map javadocs = new HashMap();
+
+ JavadocAnalyzer() {
+ try {
+ initialize();
+ } catch (IOException e) {
+ // ignored
+ e.printStackTrace(System.err);
+ } catch (RuntimeException e) {
+ e.printStackTrace(System.err);
+ System.exit(0);
+ }
+ }
+
+ private void initialize() throws IOException {
+ BufferedReader reader = new BufferedReader(new InputStreamReader(
+ JavadocAnalyzer.class.getResourceAsStream("javadoc.txt")));
+ String input = reader.readLine();
+ while (input != null) {
+ String className = input.substring(input.lastIndexOf('.') + 1);
+ Object o = javadocs.get(className);
+ Javadoc doc = new Javadoc(javadocs, input);
+ if (o != null) {
+ if (o instanceof Javadoc) {
+ Javadoc[] docs = new Javadoc[2];
+ docs[0] = (Javadoc) o;
+ docs[1] = doc;
+ javadocs.put(className, docs);
+ } else {
+ Javadoc[] docs = (Javadoc[]) o;
+ Javadoc[] copy = new Javadoc[docs.length + 1];
+ System.arraycopy(docs, 0, copy, 0, docs.length);
+ copy[docs.length] = doc;
+ javadocs.put(className, copy);
+ }
+ } else {
+ javadocs.put(className, doc);
+ }
+ javadocs.put(input, doc);
+ input = reader.readLine();
+ }
+ reader.close();
+ }
+
+ String getJavadocs(String className) {
+ Object docs = javadocs.get(className);
+ if (docs == null) {
+ return NLS.bind(CustomMessages
+ .getString(CustomMessages.Javadoc_NotFound), className);
+ } else if (docs instanceof Javadoc) {
+ return ((Javadoc) docs).getDefault();
+ } else {
+ Javadoc[] array = (Javadoc[]) docs;
+ String reply = ""; //$NON-NLS-1$
+ for (int i = 0; i < array.length; i++) {
+ reply += array[i].getDefault() + " "; //$NON-NLS-1$
+ }
+ reply = reply.substring(0, reply.length() - 1);
+ return reply;
+ }
+ }
+
+ String getJavadocs(String className, String field) {
+ Object docs = javadocs.get(className);
+ if (docs == null) {
+ return NLS.bind(CustomMessages
+ .getString(CustomMessages.Javadoc_NotFound), className);
+ } else if (docs instanceof Javadoc) {
+ return ((Javadoc) docs).getField(field);
+ } else {
+ Javadoc[] array = (Javadoc[]) docs;
+ String reply = ""; //$NON-NLS-1$
+ for (int i = 0; i < array.length; i++) {
+ reply += array[i].getField(field) + " "; //$NON-NLS-1$
+ }
+ reply = reply.substring(0, reply.length() - 1);
+ return reply;
+ }
+ }
+
+ String getJavadocs(String className, String methodName, String[] parameters) {
+ Object docs = javadocs.get(className);
+ if (docs == null) {
+ return NLS.bind(CustomMessages
+ .getString(CustomMessages.Javadoc_NotFound), className);
+ } else if (docs instanceof Javadoc) {
+ String javadocs = ((Javadoc) docs)
+ .getMethod(methodName, parameters);
+ if (javadocs == null) {
+ return CustomMessages.getString(CustomMessages.Javadoc_ResultsUnknown);
+ } else {
+ return javadocs;
+ }
+ } else {
+ Javadoc[] array = (Javadoc[]) docs;
+ String reply = ""; //$NON-NLS-1$
+ for (int i = 0; i < array.length; i++) {
+ String ret = array[i].getMethod(methodName, parameters);
+ if (ret != null) {
+ reply = reply + ret + " "; //$NON-NLS-1$
+ }
+ }
+ reply = reply.substring(0, reply.length() - 1);
+ return reply;
+ }
+ }
+}

Back to the top