/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.component.model.endpoint.api;
import java.io.Serializable;
/**
* Provides information about a single endpoint group.
*
* @author Doreen Seider
*/
public class EndpointGroupDescription implements Serializable, Comparable<EndpointGroupDescription> {
private static final long serialVersionUID = -4855835405561620711L;
private String parentGroupName;
private String dynamicEndpointId;
private String name;
private EndpointGroupDefinition endpointGroupDefinition;
@Deprecated
public EndpointGroupDescription() {}
public EndpointGroupDescription(EndpointGroupDefinition newEndpointGroupDefinition) {
this.endpointGroupDefinition = newEndpointGroupDefinition;
if (endpointGroupDefinition != null) {
name = endpointGroupDefinition.getName();
dynamicEndpointId = endpointGroupDefinition.getIdentifier();
parentGroupName = endpointGroupDefinition.getParentGroupName();
}
}
/**
* @return backing {@link EndpointGroupDefinition}
*/
public EndpointGroupDefinition getEndpointGroupDefinition() {
return endpointGroupDefinition;
}
public String getName() {
return name;
}
/**
* @param name name to set
* @throws UnsupportedOperationException of this description belongs to a static one
*/
public void setName(String name) throws UnsupportedOperationException {
if (endpointGroupDefinition != null && endpointGroupDefinition.getName() != null) {
throw new UnsupportedOperationException("name of static endpoint group can not be changed");
}
this.name = name;
}
public String getParentGroupName() {
return parentGroupName;
}
public void setParentGroupName(String parentGroupName) {
this.parentGroupName = parentGroupName;
}
/**
* @return identifier of dynamic endpoint or <code>null</code> if it is a static endpoint
*/
public String getDynamicEndpointIdentifier() {
return dynamicEndpointId;
}
public void setDynamicEndpointIdentifier(String dynamicEndpointIdentifier) {
dynamicEndpointId = dynamicEndpointIdentifier;
}
@Override
public int compareTo(EndpointGroupDescription o) {
return getName().compareTo(o.getName());
}
}