package io.lumify.web.clientapi.model; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; import io.lumify.web.clientapi.model.util.ClientApiConverter; import java.util.ArrayList; import java.util.List; @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") @JsonSubTypes({ @JsonSubTypes.Type(value = ClientApiEdge.class, name = "edge"), @JsonSubTypes.Type(value = ClientApiVertex.class, name = "vertex") }) public abstract class ClientApiElement implements ClientApiObject { private String id; private List<ClientApiProperty> properties = new ArrayList<ClientApiProperty>(); private SandboxStatus sandboxStatus; private String visibilitySource; public String getId() { return id; } public void setId(String id) { this.id = id; } public SandboxStatus getSandboxStatus() { return sandboxStatus; } public void setSandboxStatus(SandboxStatus sandboxStatus) { this.sandboxStatus = sandboxStatus; } public List<ClientApiProperty> getProperties() { return properties; } public String getVisibilitySource() { return visibilitySource; } public void setVisibilitySource(String visibilitySource) { this.visibilitySource = visibilitySource; } @Override public String toString() { return ClientApiConverter.clientApiToString(this); } }