summaryrefslogtreecommitdiff
path: root/bkucommon/src/main/java/at/gv/egiz/bku/binding/BindingProcessorManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'bkucommon/src/main/java/at/gv/egiz/bku/binding/BindingProcessorManager.java')
-rw-r--r--bkucommon/src/main/java/at/gv/egiz/bku/binding/BindingProcessorManager.java138
1 files changed, 67 insertions, 71 deletions
diff --git a/bkucommon/src/main/java/at/gv/egiz/bku/binding/BindingProcessorManager.java b/bkucommon/src/main/java/at/gv/egiz/bku/binding/BindingProcessorManager.java
index 9cad95a4..f32d3c4b 100644
--- a/bkucommon/src/main/java/at/gv/egiz/bku/binding/BindingProcessorManager.java
+++ b/bkucommon/src/main/java/at/gv/egiz/bku/binding/BindingProcessorManager.java
@@ -1,107 +1,103 @@
/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* 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.
-*/
+ * Copyright 2008 Federal Chancellery Austria and
+ * Graz University of Technology
+ *
+ * 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.
+ */
package at.gv.egiz.bku.binding;
-import java.net.MalformedURLException;
import java.util.Locale;
import java.util.Set;
-import at.gv.egiz.bku.slcommands.SLCommandInvoker;
-import at.gv.egiz.stal.STALFactory;
-
/**
- * Central player that handles the protocol binding.
- *
- * @author wbauer
+ * A <code>BindingProcessorManager</code> provides factory methods for creating
+ * <code>BindingProcessor</code>s and allows for scheduling them for processing.
*
+ * @author wbauer, mcentner
*/
public interface BindingProcessorManager {
/**
- * FactoryMethod creating a new BindingProcessor object.
- * The created binding processor must be passed to the process method to execute.
+ * Creates a new BindingProcessor for the given <code>protocol</code>.
*
- * @param urlString
- * the source url
- * @param aSessionId
- * optional an external sessionId (e.g. http session) could be
- * provided. This parameter may be null.
- * @param locale the locale used for user interaction, may be null
+ * @param protocol
+ * the name of the protocol binding the created BindingProcessor is
+ * required to implement
+ * @param locale
+ * the locale to be used by the binding processor, may be
+ * <code>null</code>
*/
- public BindingProcessor createBindingProcessor(String urlString,
- String aSessionId, Locale locale) throws MalformedURLException;
+ public BindingProcessor createBindingProcessor(String protocol, Locale locale);
/**
- * FactoryMethod creating a new BindingProcessor object.
- * The created binding processor must be passed to the process method to execute.
+ * Creates a new BindingProcessor for the given <code>protocol</code>.
*
- * @param protcol
- * the source url
- * @param aSessionId
- * optional an external sessionId (e.g. http session) could be
- * provided. This parameter may be null.
+ * @param protocol
+ * the name of the protocol binding the created BindingProcessor is
+ * required to implement
*/
- public BindingProcessor createBindingProcessor(String urlString,
- String aSessionId) throws MalformedURLException;
+ public BindingProcessor createBindingProcessor(String protocol);
-
/**
- * Gets the binding processor with a certain id. The binding processor must be passed to the
- * process method before it is managed and thus returned by this method.
- * @param aId must not be null
- * @return null if the binding processor was not "processed" before.
+ * Returns the BindingProcessor which has been scheduled for processing with
+ * the given <code>id</code>.
+ *
+ * @param id
+ * the processing id of the requested BindingProcessor
+ *
+ * @return the BindingProcessor which has been scheduled for processing with
+ * the given <code>id</code>, or <code>null</code> if no
+ * BindingProcessor has been scheduled with the given <code>id</code>.
*/
- public BindingProcessor getBindingProcessor(Id aId);
+ public BindingProcessor getBindingProcessor(Id id);
/**
- * Sets the STAL factory that is used for creating STAL objects that are used by BindingProcessor objects.
- * For each new BindingProcessor a new STAL object is created.
- * @param aStalFactory the factory to be used. Must not be null.
+ * Schedules the given BindingProcessor for processing.
+ * <p>
+ * <ol>
+ * <li>Creates a processing context with the given <code>id</code>.</li>
+ * <li>Schedules the given BindingProcessor for processing, and</li>
+ * <li>Immediately returns the processing context.</li>
+ * </ol>
+ * </p>
+ *
+ * @param id
+ * @param bindingProcessor
*/
- public void setSTALFactory(STALFactory aStalFactory);
-
+ public BindingProcessorFuture process(Id id, BindingProcessor bindingProcessor);
+
/**
- * Sets the invoker to be used.
- * @param invoker
+ * Removes the BindingProcessor with the given processing id.
+ *
+ * @param id
+ * the processing id of the BindingProcessor to be removed
*/
- public void setSLCommandInvoker(SLCommandInvoker invoker);
+ public void removeBindingProcessor(Id id);
/**
- * Creates a processing context,
- * schedules the provided binding processor for processing and
- * immediately returns the context.
+ * Returns the set of <code>Id</code>s of currently managed BindingProcessor.
*
- * @param aBindingProcessor
+ * @return the set of <code>Id</code>s of currently managed BindingProcessor.
*/
- public ProcessingContext process(BindingProcessor aBindingProcessor);
-
+ public Set<Id> getManagedIds();
+
/**
- * Removes a formerly added (by calling the process method) binding processor.
- * @param bindingProcessor must not be null
+ * Schedule shutdown of this BindingProcessorManager.
*/
- public void removeBindingProcessor(Id sessionId);
-
+ public void shutdown();
+
/**
- * A set of all managed binding processors.
- * @return
+ * Immediately shutdown this BindingProcessorManager.
*/
- public Set<Id> getManagedIds();
-
- public void shutdown();
-
public void shutdownNow();
} \ No newline at end of file