From 297292eb8ec6e60db03e52bbcd13cd7198b81cb7 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sun, 13 Feb 2011 14:11:03 +0100 Subject: [PATCH] added ModelObject interface --- scm-core/src/main/java/sonia/scm/Manager.java | 2 +- .../src/main/java/sonia/scm/ModelObject.java | 46 +++++++++++++++++++ .../src/main/java/sonia/scm/TypeManager.java | 2 +- .../src/main/java/sonia/scm/group/Group.java | 10 +--- .../java/sonia/scm/repository/Repository.java | 10 +--- .../src/main/java/sonia/scm/user/User.java | 10 +--- 6 files changed, 54 insertions(+), 26 deletions(-) create mode 100644 scm-core/src/main/java/sonia/scm/ModelObject.java diff --git a/scm-core/src/main/java/sonia/scm/Manager.java b/scm-core/src/main/java/sonia/scm/Manager.java index 9fc413a785..0cfc140a91 100644 --- a/scm-core/src/main/java/sonia/scm/Manager.java +++ b/scm-core/src/main/java/sonia/scm/Manager.java @@ -46,7 +46,7 @@ import java.util.Collection; * @param * @param */ -public interface Manager +public interface Manager extends HandlerBase, LastModifiedAware { diff --git a/scm-core/src/main/java/sonia/scm/ModelObject.java b/scm-core/src/main/java/sonia/scm/ModelObject.java new file mode 100644 index 0000000000..55ae650e46 --- /dev/null +++ b/scm-core/src/main/java/sonia/scm/ModelObject.java @@ -0,0 +1,46 @@ +/** + * 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; + +//~--- JDK imports ------------------------------------------------------------ + +import java.io.Serializable; + +/** + * + * @author Sebastian Sdorra + */ +public interface ModelObject + extends TypedObject, LastModifiedAware, Cloneable, Validateable, + Serializable {} diff --git a/scm-core/src/main/java/sonia/scm/TypeManager.java b/scm-core/src/main/java/sonia/scm/TypeManager.java index 3763909c67..69bdf6e624 100644 --- a/scm-core/src/main/java/sonia/scm/TypeManager.java +++ b/scm-core/src/main/java/sonia/scm/TypeManager.java @@ -44,7 +44,7 @@ import java.util.Collection; * @param * @param */ -public interface TypeManager +public interface TypeManager extends Manager { diff --git a/scm-core/src/main/java/sonia/scm/group/Group.java b/scm-core/src/main/java/sonia/scm/group/Group.java index b269f1439a..4b288516a6 100644 --- a/scm-core/src/main/java/sonia/scm/group/Group.java +++ b/scm-core/src/main/java/sonia/scm/group/Group.java @@ -35,16 +35,12 @@ package sonia.scm.group; //~--- non-JDK imports -------------------------------------------------------- -import sonia.scm.LastModifiedAware; -import sonia.scm.TypedObject; -import sonia.scm.Validateable; +import sonia.scm.ModelObject; import sonia.scm.util.Util; import sonia.scm.xml.XmlTimestampDateAdapter; //~--- JDK imports ------------------------------------------------------------ -import java.io.Serializable; - import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; @@ -61,9 +57,7 @@ import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; */ @XmlRootElement(name = "groups") @XmlAccessorType(XmlAccessType.FIELD) -public class Group - implements TypedObject, LastModifiedAware, Cloneable, Validateable, - Iterable, Serializable +public class Group implements ModelObject, Iterable { /** Field description */ diff --git a/scm-core/src/main/java/sonia/scm/repository/Repository.java b/scm-core/src/main/java/sonia/scm/repository/Repository.java index fe2ababe5c..58b37da8cd 100644 --- a/scm-core/src/main/java/sonia/scm/repository/Repository.java +++ b/scm-core/src/main/java/sonia/scm/repository/Repository.java @@ -35,17 +35,13 @@ package sonia.scm.repository; //~--- non-JDK imports -------------------------------------------------------- -import sonia.scm.LastModifiedAware; -import sonia.scm.TypedObject; -import sonia.scm.Validateable; +import sonia.scm.ModelObject; import sonia.scm.util.Util; import sonia.scm.util.ValidationUtil; import sonia.scm.xml.XmlTimestampDateAdapter; //~--- JDK imports ------------------------------------------------------------ -import java.io.Serializable; - import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -62,9 +58,7 @@ import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; */ @XmlRootElement(name = "repositories") @XmlAccessorType(XmlAccessType.FIELD) -public class Repository - implements TypedObject, LastModifiedAware, Validateable, Cloneable, - Serializable +public class Repository implements ModelObject { /** Field description */ diff --git a/scm-core/src/main/java/sonia/scm/user/User.java b/scm-core/src/main/java/sonia/scm/user/User.java index bf4104bf7d..e48a7ba3c0 100644 --- a/scm-core/src/main/java/sonia/scm/user/User.java +++ b/scm-core/src/main/java/sonia/scm/user/User.java @@ -35,17 +35,13 @@ package sonia.scm.user; //~--- non-JDK imports -------------------------------------------------------- -import sonia.scm.LastModifiedAware; -import sonia.scm.TypedObject; -import sonia.scm.Validateable; +import sonia.scm.ModelObject; import sonia.scm.util.Util; import sonia.scm.util.ValidationUtil; import sonia.scm.xml.XmlTimestampDateAdapter; //~--- JDK imports ------------------------------------------------------------ -import java.io.Serializable; - import java.security.Principal; import javax.xml.bind.annotation.XmlAccessType; @@ -59,9 +55,7 @@ import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; */ @XmlRootElement(name = "users") @XmlAccessorType(XmlAccessType.FIELD) -public class User - implements TypedObject, Principal, Cloneable, LastModifiedAware, - Validateable, Serializable +public class User implements Principal, ModelObject { /** Field description */