From bf168ffb706ec6ca9d438b283796073473d7ef29 Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Tue, 5 Apr 2016 14:00:57 +0200 Subject: [PATCH] reduced duplicate code. --- .../model/DistributionSetMetadata.java | 52 ++-------- .../hawkbit/repository/model/MetaData.java | 98 +++++++++++++++++++ .../model/SoftwareModuleMetadata.java | 53 ++-------- 3 files changed, 111 insertions(+), 92 deletions(-) create mode 100644 hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/MetaData.java diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSetMetadata.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSetMetadata.java index 7b2e637b9..28afd5517 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSetMetadata.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSetMetadata.java @@ -8,10 +8,6 @@ */ package org.eclipse.hawkbit.repository.model; -import java.io.Serializable; - -import javax.persistence.Basic; -import javax.persistence.Column; import javax.persistence.ConstraintMode; import javax.persistence.Entity; import javax.persistence.FetchType; @@ -29,24 +25,16 @@ import javax.persistence.Table; @IdClass(DsMetadataCompositeKey.class) @Entity @Table(name = "sp_ds_metadata") -public class DistributionSetMetadata implements Serializable { +public class DistributionSetMetadata extends MetaData { private static final long serialVersionUID = 1L; - @Id - @Column(name = "meta_key", length = 128) - private String key; - - @Column(name = "meta_value", length = 4000) - @Basic - private String value; - @Id @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "ds_id", foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_metadata_ds")) private DistributionSet distributionSet; public DistributionSetMetadata() { - // Default constructor for JPA. + super(); } /** @@ -57,35 +45,18 @@ public class DistributionSetMetadata implements Serializable { * @param value */ public DistributionSetMetadata(final String key, final DistributionSet distributionSet, final String value) { - this.key = key; + super(key, value); this.distributionSet = distributionSet; - this.value = value; } public DsMetadataCompositeKey getId() { - return new DsMetadataCompositeKey(distributionSet, key); - } - - public String getKey() { - return key; - } - - public void setKey(final String key) { - this.key = key; + return new DsMetadataCompositeKey(distributionSet, getKey()); } public void setDistributionSet(final DistributionSet distributionSet) { this.distributionSet = distributionSet; } - public String getValue() { - return value; - } - - public void setValue(final String value) { - this.value = value; - } - public DistributionSet getDistributionSet() { return distributionSet; } @@ -93,9 +64,8 @@ public class DistributionSetMetadata implements Serializable { @Override public int hashCode() { final int prime = 31; - int result = 1; - result = prime * result + (distributionSet == null ? 0 : distributionSet.hashCode()); - result = prime * result + (key == null ? 0 : key.hashCode()); + int result = super.hashCode(); + result = prime * result + ((distributionSet == null) ? 0 : distributionSet.hashCode()); return result; } @@ -104,7 +74,7 @@ public class DistributionSetMetadata implements Serializable { if (this == obj) { return true; } - if (obj == null) { + if (!super.equals(obj)) { return false; } if (!(obj instanceof DistributionSetMetadata)) { @@ -118,14 +88,6 @@ public class DistributionSetMetadata implements Serializable { } else if (!distributionSet.equals(other.distributionSet)) { return false; } - if (key == null) { - if (other.key != null) { - return false; - } - } else if (!key.equals(other.key)) { - return false; - } return true; } - } diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/MetaData.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/MetaData.java new file mode 100644 index 000000000..97ffacdcc --- /dev/null +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/MetaData.java @@ -0,0 +1,98 @@ +/** + * Copyright (c) 2015 Bosch Software Innovations GmbH and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + */ +package org.eclipse.hawkbit.repository.model; + +import java.io.Serializable; + +import javax.persistence.Basic; +import javax.persistence.Column; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; + +/** + * Meta data for entities. + * + */ +@MappedSuperclass +public abstract class MetaData implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + @Column(name = "meta_key", length = 128) + private String key; + + @Column(name = "meta_value", length = 4000) + @Basic + private String value; + + public MetaData(final String key, final String value) { + super(); + this.key = key; + this.value = value; + } + + public MetaData() { + // Default constructor needed for JPA entities + } + + public String getKey() { + return key; + } + + public void setKey(final String key) { + this.key = key; + } + + public String getValue() { + return value; + } + + public void setValue(final String value) { + this.value = value; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((key == null) ? 0 : key.hashCode()); + result = prime * result + ((value == null) ? 0 : value.hashCode()); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (!(obj instanceof MetaData)) { + return false; + } + final MetaData other = (MetaData) obj; + if (key == null) { + if (other.key != null) { + return false; + } + } else if (!key.equals(other.key)) { + return false; + } + if (value == null) { + if (other.value != null) { + return false; + } + } else if (!value.equals(other.value)) { + return false; + } + return true; + } + +} diff --git a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModuleMetadata.java b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModuleMetadata.java index c7af1f2ae..8783fec96 100644 --- a/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModuleMetadata.java +++ b/hawkbit-repository/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModuleMetadata.java @@ -8,9 +8,6 @@ */ package org.eclipse.hawkbit.repository.model; -import java.io.Serializable; - -import javax.persistence.Column; import javax.persistence.ConstraintMode; import javax.persistence.Entity; import javax.persistence.FetchType; @@ -28,16 +25,9 @@ import javax.persistence.Table; @IdClass(SwMetadataCompositeKey.class) @Entity @Table(name = "sp_sw_metadata") -public class SoftwareModuleMetadata implements Serializable { +public class SoftwareModuleMetadata extends MetaData { private static final long serialVersionUID = 1L; - @Id - @Column(name = "meta_key", length = 128) - private String key; - - @Column(name = "meta_value", length = 4000) - private String value; - @Id @ManyToOne(targetEntity = SoftwareModule.class, fetch = FetchType.LAZY) @JoinColumn(name = "sw_id", foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_metadata_sw")) @@ -47,7 +37,7 @@ public class SoftwareModuleMetadata implements Serializable { * Default constructor for JPA. */ public SoftwareModuleMetadata() { - // default constructor for JPA. + super(); } /** @@ -60,21 +50,12 @@ public class SoftwareModuleMetadata implements Serializable { * of the meta data element */ public SoftwareModuleMetadata(final String key, final SoftwareModule softwareModule, final String value) { - this.key = key; + super(key, value); this.softwareModule = softwareModule; - this.value = value; } public SwMetadataCompositeKey getId() { - return new SwMetadataCompositeKey(softwareModule, key); - } - - public String getValue() { - return value; - } - - public void setValue(final String value) { - this.value = value; + return new SwMetadataCompositeKey(softwareModule, getKey()); } public SoftwareModule getSoftwareModule() { @@ -85,24 +66,10 @@ public class SoftwareModuleMetadata implements Serializable { this.softwareModule = softwareModule; } - public String getKey() { - return key; - } - - public void setKey(final String key) { - this.key = key; - } - - @Override - public String toString() { - return "SoftwareModuleMetadata [key=" + key + ", value=" + value + ", softwareModule=" + softwareModule + "]"; - } - @Override public int hashCode() { final int prime = 31; - int result = 1; - result = prime * result + ((key == null) ? 0 : key.hashCode()); + int result = super.hashCode(); result = prime * result + ((softwareModule == null) ? 0 : softwareModule.hashCode()); return result; } @@ -112,20 +79,13 @@ public class SoftwareModuleMetadata implements Serializable { if (this == obj) { return true; } - if (obj == null) { + if (!super.equals(obj)) { return false; } if (!(obj instanceof SoftwareModuleMetadata)) { return false; } final SoftwareModuleMetadata other = (SoftwareModuleMetadata) obj; - if (key == null) { - if (other.key != null) { - return false; - } - } else if (!key.equals(other.key)) { - return false; - } if (softwareModule == null) { if (other.softwareModule != null) { return false; @@ -135,5 +95,4 @@ public class SoftwareModuleMetadata implements Serializable { } return true; } - }