forrest-svn mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rgard...@apache.org
Subject svn commit: r476494 - in /forrest/trunk/whiteboard/forrest2/core/org/apache/forrest/core: Controller.java IController.java
Date Sat, 18 Nov 2006 12:03:28 GMT
Author: rgardler
Date: Sat Nov 18 04:03:28 2006
New Revision: 476494

URL: http://svn.apache.org/viewvc?view=rev&rev=476494
Log:
@refactor - create controller interface and expose methods for retrieving readers and plugins

Added:
    forrest/trunk/whiteboard/forrest2/core/org/apache/forrest/core/IController.java   (with
props)
Modified:
    forrest/trunk/whiteboard/forrest2/core/org/apache/forrest/core/Controller.java

Modified: forrest/trunk/whiteboard/forrest2/core/org/apache/forrest/core/Controller.java
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest2/core/org/apache/forrest/core/Controller.java?view=diff&rev=476494&r1=476493&r2=476494
==============================================================================
--- forrest/trunk/whiteboard/forrest2/core/org/apache/forrest/core/Controller.java (original)
+++ forrest/trunk/whiteboard/forrest2/core/org/apache/forrest/core/Controller.java Sat Nov
18 04:03:28 2006
@@ -61,7 +61,7 @@
  * 
  * 
  */
-public class Controller {
+public class Controller implements IController {
 
 	private final String sourceURLExtension = ".forrestSource";
 
@@ -175,18 +175,26 @@
 				sourceDocuments.size());
 		for (int i = 0; i < sourceDocuments.size(); i++) {
 			final AbstractSourceDocument doc = sourceDocuments.get(i);
-			AbstractInputPlugin plugin;
-			try {
-				plugin = (AbstractInputPlugin) this.context.getBean(doc
-						.getType());
-			} catch (final NoSuchBeanDefinitionException e) {
-				plugin = new PassThroughInputPlugin();
-			}
+			AbstractInputPlugin plugin = getInputPlugin(doc);
 			results.add((InternalDocument) plugin.process(doc));
 		}
 		return results;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.forrest.core.IController#getInputPlugin(org.apache.forrest.core.document.AbstractSourceDocument)
+	 */
+	public AbstractInputPlugin getInputPlugin(final AbstractSourceDocument doc) {
+		AbstractInputPlugin plugin;
+		try {
+			plugin = (AbstractInputPlugin) this.context.getBean(doc
+					.getType());
+		} catch (final NoSuchBeanDefinitionException e) {
+			plugin = new PassThroughInputPlugin();
+		}
+		return plugin;
+	}
+
 	/**
 	 * Aggregate all the internal documents into a single document and then
 	 * process it will the appropraite output plugin for the given requestURI.
@@ -207,7 +215,16 @@
 			doc = intDocs.get(0);
 		}
 
-		BaseOutputPlugin plugin = new BaseOutputPlugin();
+		BaseOutputPlugin plugin = getOutputPlugin(requestURI);
+		
+		return (AbstractOutputDocument) plugin.process(doc);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.apache.forrest.core.IController#getOutputPlugin(java.net.URI)
+	 */
+	public BaseOutputPlugin getOutputPlugin(final URI requestURI) {
+		BaseOutputPlugin plugin;
 		final String[] names = this.context.getBeanNamesForType(plugin
 				.getClass());
 		for (int i = 0; i < names.length; i = i + 1) {
@@ -221,8 +238,7 @@
 		if (plugin == null) {
 			plugin = new BaseOutputPlugin();
 		}
-
-		return (AbstractOutputDocument) plugin.process(doc);
+		return plugin;
 	}
 
 	/**
@@ -241,14 +257,22 @@
 
 		for (int i = 0; i < sourceLocations.size(); i++) {
 			final Location location = sourceLocations.get(i);
-			IReader reader;
-			reader = (IReader) this.context.getBean(location.getSourceURI()
-					.getScheme());
+			IReader reader = getReader(location);
 			results.add(reader.read(this.context, location));
 		}
 		return results;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.forrest.core.IController#getReader(org.apache.forrest.core.locationMap.Location)
+	 */
+	public IReader getReader(final Location location) {
+		IReader reader;
+		reader = (IReader) this.context.getBean(location.getSourceURI()
+				.getScheme());
+		return reader;
+	}
+
 	/**
 	 * Resolve the input documents for a given request.
 	 * 
@@ -271,14 +295,8 @@
 		return possibleLocs.get(0);
 	}
 
-	/**
-	 * Get the source URLs for a given request URI.
-	 * 
-	 * @param requestURI
-	 * @return
-	 * @throws IOException
-	 * @throws LocationmapException
-	 * @throws ProcessingException
+	/* (non-Javadoc)
+	 * @see org.apache.forrest.core.IController#getSourceLocations(java.net.URI)
 	 */
 	public List<Location> getSourceLocations(final URI requestURI)
 			throws IOException, LocationmapException, ProcessingException {
@@ -290,14 +308,8 @@
 		return locs;
 	}
 
-	/**
-	 * Get the source documents for a given request URI.
-	 * 
-	 * @param requestURI
-	 * @return
-	 * @throws ProcessingException
-	 * @throws MalformedURLException
-	 * @throws IOException
+	/* (non-Javadoc)
+	 * @see org.apache.forrest.core.IController#getSourceDocuments(java.net.URI)
 	 */
 	public List<AbstractSourceDocument> getSourceDocuments(final URI requestURI)
 			throws MalformedURLException, ProcessingException {
@@ -315,14 +327,8 @@
 		return sources;
 	}
 
-	/**
-	 * Get the internal format documents for a given request URI.
-	 * 
-	 * @param requestURI
-	 * @return
-	 * @throws ProcessingException
-	 * @throws MalformedURLException
-	 * @throws IOException
+	/* (non-Javadoc)
+	 * @see org.apache.forrest.core.IController#getInternalDocuments(java.net.URI)
 	 */
 	public List<InternalDocument> getInternalDocuments(final URI requestURI)
 			throws ProcessingException {
@@ -341,14 +347,8 @@
 		return internalDocs;
 	}
 
-	/**
-	 * Get the output format documents for a given request URI.
-	 * 
-	 * @param requestURI
-	 * @return
-	 * @throws ProcessingException
-	 * @throws MalformedURLException
-	 * @throws IOException
+	/* (non-Javadoc)
+	 * @see org.apache.forrest.core.IController#getOutputDocument(java.net.URI)
 	 */
 	public AbstractOutputDocument getOutputDocument(final URI requestURI)
 			throws MalformedURLException, ProcessingException {

Added: forrest/trunk/whiteboard/forrest2/core/org/apache/forrest/core/IController.java
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest2/core/org/apache/forrest/core/IController.java?view=auto&rev=476494
==============================================================================
--- forrest/trunk/whiteboard/forrest2/core/org/apache/forrest/core/IController.java (added)
+++ forrest/trunk/whiteboard/forrest2/core/org/apache/forrest/core/IController.java Sat Nov
18 04:03:28 2006
@@ -0,0 +1,77 @@
+package org.apache.forrest.core;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.util.List;
+
+import org.apache.forrest.core.document.AbstractOutputDocument;
+import org.apache.forrest.core.document.AbstractSourceDocument;
+import org.apache.forrest.core.document.InternalDocument;
+import org.apache.forrest.core.exception.LocationmapException;
+import org.apache.forrest.core.exception.ProcessingException;
+import org.apache.forrest.core.locationMap.Location;
+import org.apache.forrest.core.plugin.AbstractInputPlugin;
+import org.apache.forrest.core.plugin.BaseOutputPlugin;
+import org.apache.forrest.reader.IReader;
+
+public interface IController {
+
+	public abstract AbstractInputPlugin getInputPlugin(
+			final AbstractSourceDocument doc);
+
+	public abstract BaseOutputPlugin getOutputPlugin(final URI requestURI);
+
+	public abstract IReader getReader(final Location location);
+
+	/**
+	 * Get the source URLs for a given request URI.
+	 * 
+	 * @param requestURI
+	 * @return
+	 * @throws IOException
+	 * @throws LocationmapException
+	 * @throws ProcessingException
+	 */
+	public abstract List<Location> getSourceLocations(final URI requestURI)
+			throws IOException, LocationmapException, ProcessingException;
+
+	/**
+	 * Get the source documents for a given request URI.
+	 * 
+	 * @param requestURI
+	 * @return
+	 * @throws ProcessingException
+	 * @throws MalformedURLException
+	 * @throws IOException
+	 */
+	public abstract List<AbstractSourceDocument> getSourceDocuments(
+			final URI requestURI) throws MalformedURLException,
+			ProcessingException;
+
+	/**
+	 * Get the internal format documents for a given request URI.
+	 * 
+	 * @param requestURI
+	 * @return
+	 * @throws ProcessingException
+	 * @throws MalformedURLException
+	 * @throws IOException
+	 */
+	public abstract List<InternalDocument> getInternalDocuments(
+			final URI requestURI) throws ProcessingException;
+
+	/**
+	 * Get the output format documents for a given request URI.
+	 * 
+	 * @param requestURI
+	 * @return
+	 * @throws ProcessingException
+	 * @throws MalformedURLException
+	 * @throws IOException
+	 */
+	public abstract AbstractOutputDocument getOutputDocument(
+			final URI requestURI) throws MalformedURLException,
+			ProcessingException;
+
+}
\ No newline at end of file

Propchange: forrest/trunk/whiteboard/forrest2/core/org/apache/forrest/core/IController.java
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message