From 44750e0e59bf1224fb9b18bab2ac5a5d45a233bd Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 13 Jun 2012 16:09:34 +0200 Subject: [PATCH] improve preprocessor api --- .../scm/repository/ChangesetPreProcessor.java | 3 +- .../ChangesetPreProcessorFactory.java | 2 + .../repository/FileObjectPreProcessor.java | 5 +- .../FileObjectPreProcessorFactory.java | 2 + .../sonia/scm/repository/PreProcessor.java | 51 ++++++++++++++++++ .../scm/repository/PreProcessorFactory.java | 53 +++++++++++++++++++ 6 files changed, 114 insertions(+), 2 deletions(-) create mode 100644 scm-core/src/main/java/sonia/scm/repository/PreProcessor.java create mode 100644 scm-core/src/main/java/sonia/scm/repository/PreProcessorFactory.java diff --git a/scm-core/src/main/java/sonia/scm/repository/ChangesetPreProcessor.java b/scm-core/src/main/java/sonia/scm/repository/ChangesetPreProcessor.java index 3e6db77967..43cddee19e 100644 --- a/scm-core/src/main/java/sonia/scm/repository/ChangesetPreProcessor.java +++ b/scm-core/src/main/java/sonia/scm/repository/ChangesetPreProcessor.java @@ -42,7 +42,7 @@ import sonia.scm.plugin.ExtensionPoint; * @author Sebastian Sdorra */ @ExtensionPoint -public interface ChangesetPreProcessor +public interface ChangesetPreProcessor extends PreProcessor { /** @@ -51,5 +51,6 @@ public interface ChangesetPreProcessor * * @param changeset */ + @Override public void process(Changeset changeset); } diff --git a/scm-core/src/main/java/sonia/scm/repository/ChangesetPreProcessorFactory.java b/scm-core/src/main/java/sonia/scm/repository/ChangesetPreProcessorFactory.java index fc3cc92387..d9c209a4ab 100644 --- a/scm-core/src/main/java/sonia/scm/repository/ChangesetPreProcessorFactory.java +++ b/scm-core/src/main/java/sonia/scm/repository/ChangesetPreProcessorFactory.java @@ -44,6 +44,7 @@ import sonia.scm.plugin.ExtensionPoint; */ @ExtensionPoint public interface ChangesetPreProcessorFactory + extends PreProcessorFactory { /** @@ -54,5 +55,6 @@ public interface ChangesetPreProcessorFactory * * @return */ + @Override public ChangesetPreProcessor createPreProcessor(Repository repository); } diff --git a/scm-core/src/main/java/sonia/scm/repository/FileObjectPreProcessor.java b/scm-core/src/main/java/sonia/scm/repository/FileObjectPreProcessor.java index 1f4e2e42ea..3170672ee9 100644 --- a/scm-core/src/main/java/sonia/scm/repository/FileObjectPreProcessor.java +++ b/scm-core/src/main/java/sonia/scm/repository/FileObjectPreProcessor.java @@ -33,6 +33,8 @@ package sonia.scm.repository; +//~--- non-JDK imports -------------------------------------------------------- + import sonia.scm.plugin.ExtensionPoint; /** @@ -41,7 +43,7 @@ import sonia.scm.plugin.ExtensionPoint; * @since 1.10 */ @ExtensionPoint -public interface FileObjectPreProcessor +public interface FileObjectPreProcessor extends PreProcessor { /** @@ -50,5 +52,6 @@ public interface FileObjectPreProcessor * * @param fileObject */ + @Override public void process(FileObject fileObject); } diff --git a/scm-core/src/main/java/sonia/scm/repository/FileObjectPreProcessorFactory.java b/scm-core/src/main/java/sonia/scm/repository/FileObjectPreProcessorFactory.java index 2e3dce877c..5584593d7a 100644 --- a/scm-core/src/main/java/sonia/scm/repository/FileObjectPreProcessorFactory.java +++ b/scm-core/src/main/java/sonia/scm/repository/FileObjectPreProcessorFactory.java @@ -44,6 +44,7 @@ import sonia.scm.plugin.ExtensionPoint; */ @ExtensionPoint public interface FileObjectPreProcessorFactory + extends PreProcessorFactory { /** @@ -54,5 +55,6 @@ public interface FileObjectPreProcessorFactory * * @return */ + @Override public FileObjectPreProcessor createPreProcessor(Repository repository); } diff --git a/scm-core/src/main/java/sonia/scm/repository/PreProcessor.java b/scm-core/src/main/java/sonia/scm/repository/PreProcessor.java new file mode 100644 index 0000000000..3431991c5a --- /dev/null +++ b/scm-core/src/main/java/sonia/scm/repository/PreProcessor.java @@ -0,0 +1,51 @@ +/** + * Copyright (c) 2010, Sebastian Sdorra All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. 2. Redistributions in + * binary form must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. 3. Neither the name of SCM-Manager; + * nor the names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * http://bitbucket.org/sdorra/scm-manager + * + */ + + + +package sonia.scm.repository; + +/** + * + * @author Sebastian Sdorra + * @since 1.17 + * + * @param + */ +public interface PreProcessor +{ + + /** + * Method description + * + * + * @param item + */ + public void process(T item); +} diff --git a/scm-core/src/main/java/sonia/scm/repository/PreProcessorFactory.java b/scm-core/src/main/java/sonia/scm/repository/PreProcessorFactory.java new file mode 100644 index 0000000000..bd25b578bf --- /dev/null +++ b/scm-core/src/main/java/sonia/scm/repository/PreProcessorFactory.java @@ -0,0 +1,53 @@ +/** + * Copyright (c) 2010, Sebastian Sdorra All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. 2. Redistributions in + * binary form must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. 3. Neither the name of SCM-Manager; + * nor the names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * http://bitbucket.org/sdorra/scm-manager + * + */ + + + +package sonia.scm.repository; + +/** + * + * @author Sebastian Sdorra + * + * @param + * @since 1.17 + */ +public interface PreProcessorFactory +{ + + /** + * Method description + * + * + * @param repository + * + * @return + */ + public PreProcessor createPreProcessor(Repository repository); +}