Skip to content
Code-Schnipsel Gruppen Projekte
Commit 10b3867b erstellt von Paul Patolla's avatar Paul Patolla
Dateien durchsuchen

rewrite plugin table

Übergeordneter 9147983c
Branches
Keine zugehörigen Tags gefunden
Keine zugehörigen Merge Requests gefunden
Pipeline-Nr. 1936 bestanden
package de.sip.db;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import de.sip.db.converter.ListToStringConverter;
import org.hibernate.annotations.CreationTimestamp;
import javax.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;
import java.util.Objects;
/**
......@@ -14,38 +15,45 @@ import java.util.Objects;
*/
@Entity
@Table(name = "sip_plugins")
public class DbPlugin implements Serializable {
public class Plugins implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column(unique = true, nullable = false)
private String uuid;
@Column(nullable = false)
@Column(nullable = false, unique = true)
private String name;
@Column(columnDefinition = "TEXT")
private String description;
@Column(nullable = false)
private String version;
private String protocol;
@Column(nullable = false)
private String file;
@Column(name = "is_active", nullable = false, columnDefinition = "BIT(1)")
private boolean isActive = true;
private String vendor;
@Column(nullable = false, columnDefinition = "TEXT")
@Convert(converter = ListToStringConverter.class)
private List<String> products;
@Column(columnDefinition = "TEXT")
private String options;
@Column(name = "remote_address", nullable = false)
private String remoteAddress;
@Column(name = "remote_port", nullable = false)
private int remotePort;
@CreationTimestamp
@Column(name = "created_at", nullable = false)
private Timestamp createdAt;
public DbPlugin() {}
public Plugins() {}
public DbPlugin(String uuid, String name, String description, String version) {
this(uuid, name, description, version, true);
}
public DbPlugin(String uuid, String name, String description, String version, boolean isActive) {
public Plugins(String uuid, String name, String description, String protocol, String vendor, List<String> products, String options, String remoteAddress, int remotePort) {
this.uuid = uuid;
this.name = name;
this.description = description;
this.version = version;
this.isActive = isActive;
this.protocol = protocol;
this.vendor = vendor;
this.products = products;
this.options = options;
this.remoteAddress = remoteAddress;
this.remotePort = remotePort;
}
public long getId() {
......@@ -80,28 +88,52 @@ public class DbPlugin implements Serializable {
this.description = description;
}
public String getVersion() {
return version;
public String getProtocol() {
return protocol;
}
public void setVersion(String version) {
this.version = version;
public void setProtocol(String protocol) {
this.protocol = protocol;
}
public String getFile() {
return file;
public String getVendor() {
return vendor;
}
public void setFile(String file) {
this.file = file;
public void setVendor(String vendor) {
this.vendor = vendor;
}
public boolean isActive() {
return isActive;
public List<String> getProducts() {
return products;
}
public void setActive(boolean active) {
isActive = active;
public void setProducts(List<String> products) {
this.products = products;
}
public String getOptions() {
return options;
}
public void setOptions(String options) {
this.options = options;
}
public String getRemoteAddress() {
return remoteAddress;
}
public void setRemoteAddress(String remoteAddress) {
this.remoteAddress = remoteAddress;
}
public int getRemotePort() {
return remotePort;
}
public void setRemotePort(int remotePort) {
this.remotePort = remotePort;
}
public Timestamp getCreatedAt() {
......@@ -114,24 +146,19 @@ public class DbPlugin implements Serializable {
@Override
public String toString() {
try {
return new ObjectMapper().writeValueAsString(this);
} catch (JsonProcessingException e) {
e.printStackTrace();
return null;
}
return new Gson().toJson(this);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DbPlugin dbPlugin = (DbPlugin) o;
return id == dbPlugin.id && isActive == dbPlugin.isActive && Objects.equals(uuid, dbPlugin.uuid) && Objects.equals(name, dbPlugin.name) && Objects.equals(description, dbPlugin.description) && Objects.equals(version, dbPlugin.version) && Objects.equals(file, dbPlugin.file) && Objects.equals(createdAt, dbPlugin.createdAt);
Plugins plugins = (Plugins) o;
return id == plugins.id && remotePort == plugins.remotePort && Objects.equals(uuid, plugins.uuid) && Objects.equals(name, plugins.name) && Objects.equals(description, plugins.description) && Objects.equals(protocol, plugins.protocol) && Objects.equals(vendor, plugins.vendor) && Objects.equals(products, plugins.products) && Objects.equals(options, plugins.options) && Objects.equals(remoteAddress, plugins.remoteAddress) && Objects.equals(createdAt, plugins.createdAt);
}
@Override
public int hashCode() {
return Objects.hash(id, uuid, name, description, version, file, isActive, createdAt);
return Objects.hash(id, uuid, name, description, protocol, vendor, products, options, remoteAddress, remotePort, createdAt);
}
}
package de.sip.db.converter;
import javax.persistence.AttributeConverter;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* Convert an annotated between String and List<String>
*/
public class ListToStringConverter implements AttributeConverter<List<String>, String> {
@Override
public String convertToDatabaseColumn(List<String> attribute) {
return attribute == null ? null : String.join(",",attribute);
}
@Override
public List<String> convertToEntityAttribute(String dbData) {
return dbData == null ? Collections.emptyList() : Arrays.asList(dbData.split(","));
}
}
0% Lade oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bitte registrieren oder zum Kommentieren