All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jelastic.api.system.persistence.EnvironmentGroup Maven / Gradle / Ivy

The newest version!
/*Server class MD5: 291ed4689f2ac60cf3fd099057ab0bb1*/
package com.jelastic.api.system.persistence;

import com.jelastic.api.common.Constants;
import com.jelastic.api.development.response.interfaces.ArrayItem;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashSet;
import java.util.Set;

/**
 * @name Jelastic API Client
 * @version 8.11.2
 * @copyright Jelastic, Inc.
 */
public class EnvironmentGroup extends ArrayItem {

    public static final String NAME_REGEXP = "^[^\\/=]*$";

    public static final String ID = "id";

    public static final String UID = "uid";

    public static final String OWNER_UID = "ownerUid";

    public static final String NAME = "name";

    public static final String COLOR = "color";

    public static final String ICON = "icon";

    public static final String VISIBILITY = "visibility";

    public static final String PARENT_ID = "parentId";

    public static final String PARENT = "parent";

    public static final String IS_ISOLATED = "isIsolated";

    public static final String HIERARCHY = "hierarchy";

    public static final String ENVIRONMENTS = "environments";

    private Integer uid;

    private String name;

    private String color;

    private String icon;

    private EnvGroupVisibilityType visibility;

    private EnvironmentGroup parent;

    private Set environments = new HashSet<>();

    private Boolean isIsolated = false;

    private String hierarchy;

    public EnvironmentGroup() {
    }

    public Integer getUid() {
        return uid;
    }

    public void setUid(Integer uid) {
        this.uid = uid;
    }

    public String getName() {
        return name;
    }

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

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getIcon() {
        return icon;
    }

    public void setIcon(String icon) {
        this.icon = icon;
    }

    public EnvGroupVisibilityType getVisibility() {
        return visibility;
    }

    public void setVisibility(EnvGroupVisibilityType visibility) {
        this.visibility = visibility;
    }

    public EnvironmentGroup getParent() {
        return parent;
    }

    public void setParent(EnvironmentGroup parent) {
        this.parent = parent;
    }

    public Set getEnvironments() {
        return environments;
    }

    public void setEnvironments(Set environments) {
        this.environments = environments;
    }

    public Boolean isIsolated() {
        return isIsolated;
    }

    public void setIsolated(Boolean isIsolated) {
        this.isIsolated = isIsolated;
    }

    public String getHierarchy() {
        return hierarchy;
    }

    @Override
    public JSONObject _toJSON() throws JSONException {
        JSONObject json = new JSONObject();
        json.put(ID, this.id);
        json.put(NAME, getGroupFullName());
        json.put(COLOR, color);
        json.put(ICON, icon);
        json.put(VISIBILITY, visibility.ordinal());
        json.put(IS_ISOLATED, isIsolated);
        json.putOpt(HIERARCHY, hierarchy != null ? hierarchy : getGroupHierarchy());
        json.put(OWNER_UID, uid);
        return json;
    }

    @Override
    public EnvironmentGroup _fromJSON(JSONObject json) throws JSONException {
        if (json.has(ID)) {
            this.id = json.getInt(ID);
        }
        if (json.has(OWNER_UID)) {
            this.uid = json.getInt(OWNER_UID);
        }
        if (json.has(NAME)) {
            this.name = json.getString(NAME);
        }
        if (json.has(COLOR)) {
            this.color = json.getString(COLOR);
        }
        if (json.has(ICON)) {
            this.icon = json.getString(ICON);
        }
        if (json.has(IS_ISOLATED)) {
            this.isIsolated = json.getBoolean(IS_ISOLATED);
        }
        if (json.has(VISIBILITY)) {
            try {
                this.visibility = EnvGroupVisibilityType.values()[json.getInt(VISIBILITY)];
            } catch (ArrayIndexOutOfBoundsException ex) {
                throw new JSONException("Incorrect value of 'visibility' parameter");
            }
        }
        if (json.has(HIERARCHY)) {
            this.hierarchy = json.getString(HIERARCHY);
        }
        return this;
    }

    public Boolean getIsolated() {
        return isIsolated;
    }

    public EnvironmentGroup cloneTo(EnvironmentGroup cloned) {
        cloned.setUid(this.uid);
        cloned.setName(this.name);
        cloned.setColor(this.color);
        cloned.setIcon(this.icon);
        cloned.setVisibility(this.getVisibility());
        cloned.setIsolated(this.isIsolated);
        return cloned;
    }

    public void copyNotNullableFieldsFrom(EnvironmentGroup sourceGroup) {
        if (sourceGroup.color != null) {
            this.color = sourceGroup.getColor();
        }
        if (sourceGroup.icon != null) {
            this.icon = sourceGroup.getIcon();
        }
        if (sourceGroup.visibility != null) {
            this.visibility = sourceGroup.getVisibility();
        }
    }

    @Override
    public EnvironmentGroup clone() {
        EnvironmentGroup cloned = new EnvironmentGroup();
        return cloneTo(cloned);
    }

    private static String getGroupFullName(EnvironmentGroup group) {
        if (group.getParent() == null) {
            return group.getName();
        }
        return getGroupFullName(group.getParent()) + Constants.PATH_SEPARATOR + group.getName();
    }

    public String getGroupFullName() {
        return getGroupFullName(this);
    }

    private static String getGroupHierarchy(EnvironmentGroup group) {
        if (group.getParent() == null) {
            return group.getId() + "";
        }
        return getGroupHierarchy(group.getParent()) + Constants.PATH_SEPARATOR + group.getId();
    }

    private String getGroupHierarchy() {
        return getGroupHierarchy(this);
    }

    @Override
    public String toString() {
        return "EnvironmentGroup{" + "uid=" + uid + ", name='" + name + '\'' + ", color='" + color + '\'' + ", icon='" + icon + '\'' + ", visibility=" + visibility + ", parent=" + parent + ", environments=" + environments + ", isIsolated=" + isIsolated + '}';
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy