From ce3841d2355156db6815587dec7f977b900a52d2 Mon Sep 17 00:00:00 2001 From: jensp Date: Tue, 12 May 2015 17:05:44 +0000 Subject: [PATCH] CCM NG: Entities for the org.libreccm.runtime package git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@3397 8810af33-2d31-482b-a856-94f89814c4df --- .../java/org/libreccm/runtime/Initalizer.java | 163 ++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 ccm-core/src/main/java/org/libreccm/runtime/Initalizer.java diff --git a/ccm-core/src/main/java/org/libreccm/runtime/Initalizer.java b/ccm-core/src/main/java/org/libreccm/runtime/Initalizer.java new file mode 100644 index 000000000..1e037c0db --- /dev/null +++ b/ccm-core/src/main/java/org/libreccm/runtime/Initalizer.java @@ -0,0 +1,163 @@ +/* + * Copyright (C) 2015 LibreCCM Foundation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package org.libreccm.runtime; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Objects; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +/** + * + * @author Jens Pelzetter + */ +@Entity +@Table(name = "inits") +public class Initalizer implements Serializable { + + private static final long serialVersionUID = 9150623897315380159L; + + @Id + @Column(name = "initializer_id") + @GeneratedValue(strategy = GenerationType.AUTO) + private long initializerId; + + @Column(name = "class_name") + private String className; + + @ManyToOne + @JoinColumn(name = "required_by_id") + private Initalizer requiredBy; + + @OneToMany(mappedBy = "requiredBy") + private List requiredInitializers; + + public Initalizer() { + super(); + + requiredInitializers = new ArrayList<>(); + } + + public long getInitializerId() { + return initializerId; + } + + public void setInitializerId(final long initializerId) { + this.initializerId = initializerId; + } + + public String getClassName() { + return className; + } + + public void setClassName(final String className) { + this.className = className; + } + + public Initalizer getRequiredBy() { + return requiredBy; + } + + protected void setRequiredBy(final Initalizer requiredBy) { + this.requiredBy = requiredBy; + } + + public List getRequiredInitializers() { + return Collections.unmodifiableList(requiredInitializers); + } + + protected void setRequiredInitializers( + final List requiredInitializers) { + this.requiredInitializers = requiredInitializers; + } + + protected void addRequiredInitalizer(final Initalizer initalizer) { + requiredInitializers.add(initalizer); + } + + protected void removeRequiredInitalizer(final Initalizer initalizer) { + requiredInitializers.remove(initalizer); + } + + @Override + public int hashCode() { + int hash = 5; + hash + = 37 * hash + (int) (initializerId ^ (initializerId >>> 32)); + hash = 37 * hash + Objects.hashCode(className); + hash = 37 * hash + Objects.hashCode(requiredBy); + hash = 37 * hash + Objects.hashCode(requiredInitializers); + return hash; + } + + @Override + public boolean equals(final Object obj) { + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final Initalizer other = (Initalizer) obj; + if (!other.canEqual(this)) { + return false; + } + + if (initializerId != other.getInitializerId()) { + return false; + } + if (!Objects.equals(className, other.getClassName())) { + return false; + } + if (!Objects.equals(requiredBy, other.getRequiredBy())) { + return false; + } + return Objects.equals(requiredInitializers, + other.getRequiredInitializers()); + } + + public boolean canEqual(final Object obj) { + return obj instanceof Initalizer; + } + + @Override + public String toString() { + return String.format("%s{ " + + "initializerId = %d, " + + "className = \"%s\", " + + "requiredBy = %s" + + " }", + super.toString(), + initializerId, + className, + Objects.toString(requiredBy)); + } + +}