From 181e3dfdffc2a5bdca812ce0bb7d07d5463f13af Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Sun, 27 Oct 2013 03:27:18 +0100 Subject: [PATCH] [Minor] Added StrolchComponent interface to SimpleServiceHandler --- pom.xml | 4 ++++ .../{AbstractCommand.java => Command.java} | 23 +++++++++++++++---- .../li/strolch/service/AbstractService.java | 2 +- src/main/java/li/strolch/service/Service.java | 6 ++--- .../li/strolch/service/ServiceHandler.java | 8 +++++++ .../strolch/service/SimpleServiceHandler.java | 10 +++++--- 6 files changed, 41 insertions(+), 12 deletions(-) rename src/main/java/li/strolch/command/{AbstractCommand.java => Command.java} (71%) create mode 100644 src/main/java/li/strolch/service/ServiceHandler.java diff --git a/pom.xml b/pom.xml index b2a94ae31..267f0a731 100644 --- a/pom.xml +++ b/pom.xml @@ -39,6 +39,10 @@ li.strolch li.strolch.persistence.api + + li.strolch + li.strolch.runtime + ch.eitchnet diff --git a/src/main/java/li/strolch/command/AbstractCommand.java b/src/main/java/li/strolch/command/Command.java similarity index 71% rename from src/main/java/li/strolch/command/AbstractCommand.java rename to src/main/java/li/strolch/command/Command.java index 304f62381..f447f41c9 100644 --- a/src/main/java/li/strolch/command/AbstractCommand.java +++ b/src/main/java/li/strolch/command/Command.java @@ -19,21 +19,36 @@ */ package li.strolch.command; +import li.strolch.persistence.api.StrolchTransaction; import ch.eitchnet.privilege.model.Restrictable; - /** * @author Robert von Burg * */ -public abstract class AbstractCommand implements Restrictable { +public abstract class Command implements Restrictable { + + private final StrolchTransaction tx; + + public Command(StrolchTransaction tx) { + this.tx = tx; + } + + /** + * Returns the {@link StrolchTransaction} bound to this {@link Command}'s runtime + * + * @return the {@link StrolchTransaction} bound to this {@link Command}'s runtime + */ + protected StrolchTransaction tx() { + return this.tx; + } /** * @see ch.eitchnet.privilege.model.Restrictable#getPrivilegeName() */ @Override public String getPrivilegeName() { - return AbstractCommand.class.getName(); + return Command.class.getName(); } /** @@ -43,6 +58,6 @@ public abstract class AbstractCommand implements Restrictable { public Object getPrivilegeValue() { return this.getClass().getName(); } - + public abstract void doCommand(); } diff --git a/src/main/java/li/strolch/service/AbstractService.java b/src/main/java/li/strolch/service/AbstractService.java index 53409944a..b96b68f55 100644 --- a/src/main/java/li/strolch/service/AbstractService.java +++ b/src/main/java/li/strolch/service/AbstractService.java @@ -23,7 +23,7 @@ package li.strolch.service; * @author Robert von Burg * */ -public abstract class AbstractService implements Service { +public abstract class AbstractService implements Service { private static final long serialVersionUID = 1L; /** diff --git a/src/main/java/li/strolch/service/Service.java b/src/main/java/li/strolch/service/Service.java index 3c84a533a..42446cb49 100644 --- a/src/main/java/li/strolch/service/Service.java +++ b/src/main/java/li/strolch/service/Service.java @@ -27,9 +27,7 @@ import ch.eitchnet.privilege.model.Restrictable; * @author Robert von Burg * */ -public interface Service extends Serializable, Restrictable { +public interface Service extends Serializable, Restrictable { - public ServiceResult doService(ServiceArgument argument); - - public ServiceArgument getServiceArgument(); + public ServiceResult doService(T argument); } diff --git a/src/main/java/li/strolch/service/ServiceHandler.java b/src/main/java/li/strolch/service/ServiceHandler.java new file mode 100644 index 000000000..917a9f51a --- /dev/null +++ b/src/main/java/li/strolch/service/ServiceHandler.java @@ -0,0 +1,8 @@ +package li.strolch.service; + +import ch.eitchnet.privilege.model.Certificate; + +public interface ServiceHandler { + + public ServiceResult doService(Certificate certificate, Service service, T argument); +} \ No newline at end of file diff --git a/src/main/java/li/strolch/service/SimpleServiceHandler.java b/src/main/java/li/strolch/service/SimpleServiceHandler.java index 7f38de053..61c221f76 100644 --- a/src/main/java/li/strolch/service/SimpleServiceHandler.java +++ b/src/main/java/li/strolch/service/SimpleServiceHandler.java @@ -21,23 +21,27 @@ package li.strolch.service; import java.text.MessageFormat; +import li.strolch.runtime.component.StrolchComponent; import ch.eitchnet.privilege.handler.PrivilegeHandler; import ch.eitchnet.privilege.model.Certificate; /** * @author Robert von Burg */ -public class SimpleServiceHandler { +public class SimpleServiceHandler extends StrolchComponent implements ServiceHandler { private PrivilegeHandler privilegeHandler; - public ServiceResult doService(Certificate certificate, Service service, ServiceArgument argument) { + @Override + public ServiceResult doService(Certificate certificate, Service service, T argument) { try { this.privilegeHandler.getPrivilegeContext(certificate).validateAction(service); - return service.doService(argument); + ServiceResult serviceResult = service.doService(argument); + + return serviceResult; } catch (Exception e) { String msg = "Failed to perform service {0} due to exception {1}"; //$NON-NLS-1$