From 8a7ef55157ef232608e09cbf3d329e5b5e195941 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sat, 14 Jul 2012 11:45:23 +0200 Subject: [PATCH] added branch command --- .../client/api/BranchCommandBuilder.java | 94 +++++++++++++++++++ .../repository/client/api/ClientCommand.java | 2 +- .../client/api/RepositoryClient.java | 11 +++ .../repository/client/spi/BranchCommand.java | 41 ++++++++ .../client/spi/RepositoryClientProvider.java | 11 +++ 5 files changed, 158 insertions(+), 1 deletion(-) create mode 100644 scm-test/src/main/java/sonia/scm/repository/client/api/BranchCommandBuilder.java create mode 100644 scm-test/src/main/java/sonia/scm/repository/client/spi/BranchCommand.java diff --git a/scm-test/src/main/java/sonia/scm/repository/client/api/BranchCommandBuilder.java b/scm-test/src/main/java/sonia/scm/repository/client/api/BranchCommandBuilder.java new file mode 100644 index 0000000000..dbddfc4ec4 --- /dev/null +++ b/scm-test/src/main/java/sonia/scm/repository/client/api/BranchCommandBuilder.java @@ -0,0 +1,94 @@ +/** + * 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.client.api; + +//~--- non-JDK imports -------------------------------------------------------- + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import sonia.scm.repository.client.spi.BranchCommand; + +/** + * + * @author Sebastian Sdorra + * @since 1.18 + */ +public final class BranchCommandBuilder +{ + + /** + * the logger for BranchCommandBuilder + */ + private static final Logger logger = + LoggerFactory.getLogger(BranchCommandBuilder.class); + + //~--- constructors --------------------------------------------------------- + + /** + * Constructs ... + * + * + * @param command + */ + public BranchCommandBuilder(BranchCommand command) + { + this.command = command; + } + + //~--- methods -------------------------------------------------------------- + + /** + * Method description + * + * + * @param name + * + * @return + */ + public BranchCommandBuilder branch(String name) + { + if (logger.isDebugEnabled()) + { + logger.debug("branch {}", name); + } + + command.branch(name); + + return this; + } + + //~--- fields --------------------------------------------------------------- + + /** Field description */ + private BranchCommand command; +} diff --git a/scm-test/src/main/java/sonia/scm/repository/client/api/ClientCommand.java b/scm-test/src/main/java/sonia/scm/repository/client/api/ClientCommand.java index 0d76384a02..3992255de6 100644 --- a/scm-test/src/main/java/sonia/scm/repository/client/api/ClientCommand.java +++ b/scm-test/src/main/java/sonia/scm/repository/client/api/ClientCommand.java @@ -35,5 +35,5 @@ package sonia.scm.repository.client.api; */ public enum ClientCommand { - ADD, REMOVE, COMMIT, PUSH, TAG + ADD, REMOVE, COMMIT, PUSH, TAG, BANCH } diff --git a/scm-test/src/main/java/sonia/scm/repository/client/api/RepositoryClient.java b/scm-test/src/main/java/sonia/scm/repository/client/api/RepositoryClient.java index 4413aa6fa5..0970c1e6ab 100644 --- a/scm-test/src/main/java/sonia/scm/repository/client/api/RepositoryClient.java +++ b/scm-test/src/main/java/sonia/scm/repository/client/api/RepositoryClient.java @@ -68,6 +68,17 @@ public final class RepositoryClient return new AddCommandBuilder(clientProvider.getAddCommand()); } + /** + * Method description + * + * + * @return + */ + public BranchCommandBuilder getBranchCommand() + { + return new BranchCommandBuilder(clientProvider.getBranchCommand()); + } + /** * Method description * diff --git a/scm-test/src/main/java/sonia/scm/repository/client/spi/BranchCommand.java b/scm-test/src/main/java/sonia/scm/repository/client/spi/BranchCommand.java new file mode 100644 index 0000000000..25f5868858 --- /dev/null +++ b/scm-test/src/main/java/sonia/scm/repository/client/spi/BranchCommand.java @@ -0,0 +1,41 @@ +/** + * 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.client.spi; + +import sonia.scm.repository.Branch; + +/** + * + * @author Sebastian Sdorra + * @since 1.18 + */ +public interface BranchCommand +{ + public Branch branch(String name); +} diff --git a/scm-test/src/main/java/sonia/scm/repository/client/spi/RepositoryClientProvider.java b/scm-test/src/main/java/sonia/scm/repository/client/spi/RepositoryClientProvider.java index 29b76877f3..851e28a24f 100644 --- a/scm-test/src/main/java/sonia/scm/repository/client/spi/RepositoryClientProvider.java +++ b/scm-test/src/main/java/sonia/scm/repository/client/spi/RepositoryClientProvider.java @@ -67,6 +67,17 @@ public abstract class RepositoryClientProvider throw new ClientCommandNotSupportedException(ClientCommand.ADD); } + /** + * Method description + * + * + * @return + */ + public BranchCommand getBranchCommand() + { + throw new ClientCommandNotSupportedException(ClientCommand.BANCH); + } + /** * Method description *