diff options
author | tkellner <tkellner@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4> | 2011-05-16 15:27:17 +0000 |
---|---|---|
committer | tkellner <tkellner@8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4> | 2011-05-16 15:27:17 +0000 |
commit | 379b5636bfe4919c83c185964ae552e442b8d28c (patch) | |
tree | aa402e48e2ba8c25fb7b146420c1c5b9b63952bc /BKUOnline/src/main/java/at/gv/egiz/mocca/id/SLCommandBrocker.java | |
parent | 25479b6e776109b384f779c5b1e3e26ac7ddbf5b (diff) | |
download | mocca-379b5636bfe4919c83c185964ae552e442b8d28c.tar.gz mocca-379b5636bfe4919c83c185964ae552e442b8d28c.tar.bz2 mocca-379b5636bfe4919c83c185964ae552e442b8d28c.zip |
Spelling
git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@934 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4
Diffstat (limited to 'BKUOnline/src/main/java/at/gv/egiz/mocca/id/SLCommandBrocker.java')
-rw-r--r-- | BKUOnline/src/main/java/at/gv/egiz/mocca/id/SLCommandBrocker.java | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/BKUOnline/src/main/java/at/gv/egiz/mocca/id/SLCommandBrocker.java b/BKUOnline/src/main/java/at/gv/egiz/mocca/id/SLCommandBrocker.java deleted file mode 100644 index 2e46a220..00000000 --- a/BKUOnline/src/main/java/at/gv/egiz/mocca/id/SLCommandBrocker.java +++ /dev/null @@ -1,100 +0,0 @@ -/* -* Copyright 2009 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.mocca.id; - -import at.gv.egiz.bku.slcommands.SLCommand; -import at.gv.egiz.bku.slcommands.SLCommandContext; -import at.gv.egiz.bku.slcommands.SLResult; -import at.gv.egiz.bku.slcommands.impl.ErrorResultImpl; -import at.gv.egiz.bku.slexceptions.SLCommandException; - -public class SLCommandBrocker { - - private Sync<SLCommand> commandSync = new Sync<SLCommand>(); - - private Sync<SLResult> resultSync = new Sync<SLResult>(); - - public SLResult execute(SLCommand command, SLCommandContext context, long timeout) throws InterruptedException { - try { - commandSync.put(command, timeout); - if (command != null) { - return resultSync.get(timeout); - } else { - return null; - } - } catch (SLCommandException e) { - return new ErrorResultImpl(e, context.getLocale()); - } - } - - public SLCommand nextCommand(SLResult result, long timeout) throws SLCommandException, InterruptedException { - if (result != null) { - resultSync.put(result, timeout); - } - return commandSync.get(timeout); - } - - public class Sync<R> { - - private boolean available; - - private R r; - - public synchronized R get(long timeout) throws SLCommandException, InterruptedException { - - long t0 = System.currentTimeMillis(); - long elapsed = 0; - - while (!available) { - wait(timeout - elapsed); - elapsed = System.currentTimeMillis() - t0; - if (elapsed > timeout) { - notifyAll(); - throw new SLCommandException(6000); - } - } - - R r = this.r; - this.r = null; - available = false; - notifyAll(); - return r; - } - - public synchronized void put(R r, long timeout) throws SLCommandException, InterruptedException { - - long t0 = System.currentTimeMillis(); - long elapsed = 0; - - while (available) { - wait(timeout - elapsed); - elapsed = System.currentTimeMillis() - t0; - if (elapsed > timeout) { - notifyAll(); - throw new SLCommandException(6000); - } - } - - this.r = r; - available = true; - notifyAll(); - } - - } - -} |