package jetbrains.buildServer.clouds.vmware.connector.beans;
import com.vmware.vim25.ManagedObjectReference;
import com.vmware.vim25.mo.ResourcePool;
import jetbrains.buildServer.Used;
import jetbrains.buildServer.clouds.vmware.connector.VmwareManagedEntity;
import jetbrains.buildServer.util.StringUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* Created by sergeypak on 02/02/2017.
*/
public class ResourcePoolBean implements VmwareManagedEntity, Comparable<ResourcePoolBean> {
private final String myName;
private final ManagedObjectReference myMOR;
private final String myPath;
private final ManagedObjectReference myParentRef;
private final String myDatacenterId;
@Used("Tests")
public ResourcePoolBean(final ResourcePool rp){
this(rp.getMOR(), rp.getName(), null, rp.getParent().getMOR(), "dc");
}
public ResourcePoolBean(@NotNull final ManagedObjectReference mor,
@NotNull final String name,
@NotNull final String path,
@Nullable final ManagedObjectReference parentRef,
@Nullable final String datacenterId) {
myName = name;
myMOR = mor;
myPath = path;
myParentRef = parentRef;
myDatacenterId = datacenterId;
}
@NotNull
@Override
public String getId() {
return myMOR.getVal();
}
@NotNull
public String getName() {
return myName;
}
@NotNull
@Override
public String getPath() {
return myPath;
}
@Nullable
@Override
public String getDatacenterId() {
return myDatacenterId;
}
@NotNull
@Override
public ManagedObjectReference getMOR() {
return myMOR;
}
@Nullable
@Override
public ManagedObjectReference getParentMOR() {
return myParentRef;
}
@Override
public int compareTo(@NotNull final ResourcePoolBean o) {
if (myPath == null && o.myPath == null){
return StringUtil.compare(StringUtil.toLowerCase(myName), StringUtil.toLowerCase(o.myName));
}
return StringUtil.compare(StringUtil.toLowerCase(myPath), StringUtil.toLowerCase(o.myPath));
}
}