package jetbrains.buildServer.clouds.vmware.connector.beans; import com.vmware.vim25.ManagedObjectReference; import com.vmware.vim25.mo.Folder; 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 FolderBean implements VmwareManagedEntity, Comparable<FolderBean> { private final String myPath; private final String[] myChildType; private final String myName; private final ManagedObjectReference myMOR; private final ManagedObjectReference myParentRef; private final String myDatacenterId; @Used("Tests") public FolderBean(final Folder folder){ this(folder.getMOR(), folder.getName(), null, folder.getChildType(), folder.getParent().getMOR(), "dc"); } public FolderBean(@NotNull final ManagedObjectReference mor, @NotNull final String name, @NotNull final String path, @NotNull final String[] childType, @Nullable final ManagedObjectReference parentRef, @Nullable final String datacenterId) { myPath = path; myChildType = childType; myName = name; myMOR = mor; myParentRef = parentRef; myDatacenterId = datacenterId; } public String[] getChildType() { return myChildType; } @NotNull @Override public String getId() { return myMOR.getVal(); } public String getName() { return myName; } @NotNull @Override public String getPath() { return myPath == null ? myName : myPath; } @Nullable @Override public String getDatacenterId() { return myDatacenterId; } @NotNull @Override public ManagedObjectReference getMOR() { return myMOR; } public ManagedObjectReference getParentMOR() { return myParentRef; } @Override public int compareTo(@NotNull final FolderBean 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)); } }