Client.java

package com.tradecloud.authentication;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import javax.persistence.*;
import javax.validation.constraints.NotNull;

/**
 *
 * @author jon
 */
@Entity
@Table(name = "client")
public class Client implements Serializable {

    @Id
    @NotNull
    private String code;

    @NotNull
    private String name;

    private boolean active;

    private String adminUsername;

    @ElementCollection(fetch = FetchType.EAGER)
    @CollectionTable(name = "connectionproperties", joinColumns = {@JoinColumn(name = "client_code")})
    @MapKeyColumn(name = "key")
    @Column(name = "value")
    private Map<String, String> connectionProperties = new HashMap<>();

    public Client() {
    }

    public Client(String code) {
        this.code = code;
        this.name = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public boolean isActive() {
        return active;
    }

    public void setActive(boolean active) {
        this.active = active;
    }

    public String getAdminUsername() {
        return adminUsername;
    }

    public void setAdminUsername(String adminUsername) {
        this.adminUsername = adminUsername;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    @Override
    public String toString() {
        return code;
    }

    public Map<String, String> getConnectionProperties() {
        return connectionProperties;
    }

    public void setConnectionProperties(Map<String, String> connectionProperties) {
        this.connectionProperties = connectionProperties;
    }
}