/**
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package org.mifosplatform.portfolio.group.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import org.springframework.data.jpa.domain.AbstractPersistable;
@Entity
@Table(name = "m_group_level")
public class GroupLevel extends AbstractPersistable<Long> {
@Column(name = "parent_id")
private final Long parentId;
@Column(name = "super_parent", nullable = false)
private final boolean superParent;
@Column(name = "level_name", nullable = false, length = 100, unique = true)
private final String levelName;
@Column(name = "recursable", nullable = false)
private boolean recursable = false;
@Column(name = "can_have_clients", nullable = false)
private boolean canHaveClients = false;
public GroupLevel() {
this.parentId = null;
this.superParent = false;
this.levelName = null;
this.recursable = false;
this.canHaveClients = false;
}
public GroupLevel(final Long parentId, final boolean isSuperParent, final String levelName, final boolean recursable,
final boolean canHaveClients) {
this.superParent = isSuperParent;
this.parentId = parentId;
this.levelName = levelName;
this.recursable = recursable;
this.canHaveClients = canHaveClients;
}
public Long getParentId() {
return this.parentId;
}
public String getLevelName() {
return this.levelName;
}
public boolean isRecursable() {
return this.recursable;
}
public boolean canHaveClients() {
return this.canHaveClients;
}
public boolean isSuperParent() {
return this.superParent;
}
public boolean isIdentifiedByParentId(final Long parentLevelId) {
return this.parentId.equals(parentLevelId);
}
public boolean isCenter() {
return this.levelName.equalsIgnoreCase("Center");
}
public boolean isGroup() {
return this.levelName.equalsIgnoreCase("Group");
}
}