ForexGroup.java

package com.tradecloud.domain.model;

import com.tradecloud.common.base.PersistenceBase;
import org.apache.commons.lang3.builder.CompareToBuilder;
import org.hibernate.annotations.Proxy;

import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;

/**
 * @TODO. This class should extend StaticDataEntityBase
 */
@Proxy(lazy = false)
@Entity(name = "ForexGroup")
@Table(name = "forexgroup")
public class ForexGroup extends PersistenceBase implements Comparable<ForexGroup>, Serializable, ConvertableToDefaultDTO {

    private String code;
    private String name;
    private String description;
    private boolean active;

    public ForexGroup() {
        this.active = true;
    }

    public ForexGroup(String name, String code) {
        this.name = name;
        this.code = code;
        this.active = true;
    }

    public String getName() {
        return name;
    }

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

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

    public String getCode() {
        return code;
    }

    public boolean isActive() {
        return active;
    }

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

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    @Override
    public Class getInstanceClass() {
        return ForexGroup.class;
    }

    /**
     * TODO. Remove this. Very bad.
     *
     * @return
     */
    public boolean isDuties() {
        return code.equals(ForexGroupType.DUTIES.getCode());
    }

    @Override
    public String toString() {
        return "ForexGroup{" +
                "code='" + code + '\'' +
                ", name='" + name + '\'' +
                ", description='" + description + '\'' +
                '}';
    }

    public String getStateAsXML() {
        StringBuilder builder = new StringBuilder();
        builder.append("<ForexGroup>");
        builder.append("<id>");
        builder.append(getId());
        builder.append("</id>");
        builder.append("<name>");
        builder.append(getName());
        builder.append("</name>");
        builder.append("<code>");
        builder.append(code);
        builder.append("</code>");
        builder.append("</ForexGroup>");
        return builder.toString();
    }

    @Override
    public int compareTo(ForexGroup o) {
        return new CompareToBuilder().append(name, o.getName()).toComparison();
    }
}