From 1f3971fae8a55df3a68469e15ad3f616ff362a36 Mon Sep 17 00:00:00 2001 From: Adrian Cole Date: Sun, 11 Mar 2012 17:43:02 -0700 Subject: [PATCH] removed unnecessary wrapping of Task collections --- .../director/v1_5/domain/AdminCatalog.java | 31 ++- .../vcloud/director/v1_5/domain/Catalog.java | 12 +- .../director/v1_5/domain/CatalogItem.java | 25 +- .../director/v1_5/domain/CatalogType.java | 12 +- .../vcloud/director/v1_5/domain/Entity.java | 12 +- .../director/v1_5/domain/EntityType.java | 64 ++++-- .../vcloud/director/v1_5/domain/File.java | 18 +- .../vcloud/director/v1_5/domain/Group.java | 12 +- .../vcloud/director/v1_5/domain/Media.java | 12 +- .../director/v1_5/domain/NetworkType.java | 20 +- .../vcloud/director/v1_5/domain/Org.java | 14 +- .../director/v1_5/domain/OrgNetwork.java | 20 +- .../v1_5/domain/ResourceEntityType.java | 24 +- .../director/v1_5/domain/ResourceType.java | 19 +- .../vcloud/director/v1_5/domain/Task.java | 29 ++- .../director/v1_5/domain/TasksInProgress.java | 113 --------- .../director/v1_5/domain/TasksList.java | 216 +++++++++++------- .../vcloud/director/v1_5/domain/User.java | 14 +- .../director/v1_5/domain/VAppTemplate.java | 12 +- .../vcloud/director/v1_5/domain/Vdc.java | 23 +- .../v1_5/domain/cim/package-info.java | 1 + .../domain/ovf/internal/package-info.java | 1 + .../v1_5/domain/ovf/package-info.java | 1 + .../v1_5/domain/query/package-info.java | 1 + .../v1_5/domain/vapp/package-info.java | 1 + .../vcloud/director/v1_5/domain/Checks.java | 6 +- .../v1_5/features/MediaClientExpectTest.java | 7 +- .../v1_5/features/MediaClientLiveTest.java | 10 +- .../v1_5/features/TaskClientExpectTest.java | 5 +- .../v1_5/features/TaskClientLiveTest.java | 6 +- 30 files changed, 347 insertions(+), 394 deletions(-) delete mode 100644 labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/TasksInProgress.java diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/AdminCatalog.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/AdminCatalog.java index 6f466e7597..5f73b7ef86 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/AdminCatalog.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/AdminCatalog.java @@ -19,8 +19,6 @@ package org.jclouds.vcloud.director.v1_5.domain; -import static com.google.common.base.Preconditions.checkNotNull; - import java.net.URI; import java.util.Set; @@ -28,8 +26,6 @@ import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; -import com.google.common.collect.Sets; - /** * @@ -69,7 +65,7 @@ public class AdminCatalog extends CatalogType { public static class Builder extends CatalogType.Builder { public AdminCatalog build() { - return new AdminCatalog(href, type, links, description, tasksInProgress, id, name, owner, catalogItems, isPublished); + return new AdminCatalog(href, type, links, description, tasks, id, name, owner, catalogItems, isPublished); } /** @@ -132,14 +128,14 @@ public class AdminCatalog extends CatalogType { } /** - * @see EntityType#getTasksInProgress() + * @see EntityType#getTasks() */ @Override - public Builder tasksInProgress(TasksInProgress tasksInProgress) { - this.tasksInProgress = tasksInProgress; + public Builder tasks(Set tasks) { + super.tasks(tasks); return this; } - + /** * @see ReferenceType#getHref() */ @@ -157,25 +153,24 @@ public class AdminCatalog extends CatalogType { this.type = type; return this; } - + /** - * @see EntityType#getLinks() + * @see ResourceType#getLinks() */ @Override public Builder links(Set links) { - this.links = Sets.newLinkedHashSet(checkNotNull(links, "links")); - return this; + return Builder.class.cast(super.links(links)); } /** - * @see EntityType#getLinks() + * @see ResourceType#getLinks() */ @Override public Builder link(Link link) { - this.links.add(checkNotNull(link, "link")); - return this; + return Builder.class.cast(super.link(link)); } + @Override public Builder fromCatalogType(CatalogType in) { return Builder.class.cast(super.fromCatalogType(in)); @@ -190,8 +185,8 @@ public class AdminCatalog extends CatalogType { // For JAXB } - public AdminCatalog(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, String id, + public AdminCatalog(URI href, String type, Set links, String description, Set tasks, String id, String name, Owner owner, CatalogItems catalogItems, Boolean published) { - super(href, type, links, description, tasksInProgress, id, name, owner, catalogItems, published); + super(href, type, links, description, tasks, id, name, owner, catalogItems, published); } } diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Catalog.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Catalog.java index 7454d952d1..535dfe490f 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Catalog.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Catalog.java @@ -57,7 +57,7 @@ public class Catalog extends CatalogType { @Override public Catalog build() { - return new Catalog(href, type, links, description, tasksInProgress, id, name, owner, catalogItems, isPublished); + return new Catalog(href, type, links, description, tasks, id, name, owner, catalogItems, isPublished); } /** @@ -120,11 +120,11 @@ public class Catalog extends CatalogType { } /** - * @see EntityType#getTasksInProgress() + * @see EntityType#getTasks() */ @Override - public Builder tasksInProgress(TasksInProgress tasksInProgress) { - this.tasksInProgress = tasksInProgress; + public Builder tasks(Set tasks) { + super.tasks(tasks); return this; } @@ -174,9 +174,9 @@ public class Catalog extends CatalogType { } } - public Catalog(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, String id, + public Catalog(URI href, String type, Set links, String description, Set tasks, String id, String name, Owner owner, CatalogItems catalogItems, Boolean published) { - super(href, type, links, description, tasksInProgress, id, name, owner, catalogItems, published); + super(href, type, links, description, tasks, id, name, owner, catalogItems, published); } @SuppressWarnings("unused") diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/CatalogItem.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/CatalogItem.java index 12b3cdb740..4abcfe131b 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/CatalogItem.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/CatalogItem.java @@ -46,7 +46,6 @@ public class CatalogItem extends EntityType { public static final String MEDIA_TYPE = VCloudDirectorMediaType.CATALOG_ITEM; - @SuppressWarnings("unchecked") public static Builder builder() { return new Builder(); } @@ -87,7 +86,7 @@ public class CatalogItem extends EntityType { @Override public CatalogItem build() { - return new CatalogItem(href, type, links, description, tasksInProgress, id, name, entity, properties); + return new CatalogItem(href, type, links, description, tasks, id, name, entity, properties); } /** @@ -116,13 +115,13 @@ public class CatalogItem extends EntityType { this.id = id; return this; } - + /** - * @see EntityType#getTasksInProgress() + * @see EntityType#getTasks() */ @Override - public Builder tasksInProgress(TasksInProgress tasksInProgress) { - this.tasksInProgress = tasksInProgress; + public Builder tasks(Set tasks) { + super.tasks(tasks); return this; } @@ -145,21 +144,19 @@ public class CatalogItem extends EntityType { } /** - * @see EntityType#getLinks() + * @see ResourceType#getLinks() */ @Override public Builder links(Set links) { - this.links = Sets.newLinkedHashSet(checkNotNull(links, "links")); - return this; + return Builder.class.cast(super.links(links)); } /** - * @see EntityType#getLinks() + * @see ResourceType#getLinks() */ @Override public Builder link(Link link) { - this.links.add(checkNotNull(link, "link")); - return this; + return Builder.class.cast(super.link(link)); } @Override @@ -172,8 +169,8 @@ public class CatalogItem extends EntityType { } } - private CatalogItem(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, String id, String name, Reference entity, Set properties) { - super(href, type, links, description, tasksInProgress, id, name); + private CatalogItem(URI href, String type, Set links, String description, Set tasks, String id, String name, Reference entity, Set properties) { + super(href, type, links, description, tasks, id, name); this.entity = entity; this.properties = ImmutableSet.copyOf(properties); } diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/CatalogType.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/CatalogType.java index f56095d5f6..b5ccbb6c89 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/CatalogType.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/CatalogType.java @@ -90,7 +90,7 @@ public class CatalogType> extends EntityType { @Override public CatalogType build() { - return new CatalogType(href, type, links, description, tasksInProgress, id, name, owner, catalogItems, isPublished); + return new CatalogType(href, type, links, description, tasks, id, name, owner, catalogItems, isPublished); } /** @@ -121,11 +121,11 @@ public class CatalogType> extends EntityType { } /** - * @see EntityType#getTasksInProgress() + * @see EntityType#getTasks() */ @Override - public Builder tasksInProgress(TasksInProgress tasksInProgress) { - super.tasksInProgress(tasksInProgress); + public Builder tasks(Set tasks) { + super.tasks(tasks); return this; } @@ -176,9 +176,9 @@ public class CatalogType> extends EntityType { } } - public CatalogType(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, String id, + public CatalogType(URI href, String type, Set links, String description, Set tasks, String id, String name, Owner owner, CatalogItems catalogItems, Boolean published) { - super(href, type, links, description, tasksInProgress, id, name); + super(href, type, links, description, tasks, id, name); this.owner = owner; this.catalogItems = catalogItems; this.isPublished = published; diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Entity.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Entity.java index 801375b9c0..b0486a53a2 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Entity.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Entity.java @@ -46,7 +46,7 @@ public class Entity extends EntityType { @Override public Entity build() { - return new Entity(href, type, links, description, tasksInProgress, id, name); + return new Entity(href, type, links, description, tasks, id, name); } /** @@ -77,11 +77,11 @@ public class Entity extends EntityType { } /** - * @see EntityType#getTasksInProgress() + * @see EntityType#getTasks() */ @Override - public Builder tasksInProgress(TasksInProgress tasksInProgress) { - this.tasksInProgress = tasksInProgress; + public Builder tasks(Set tasks) { + super.tasks(tasks); return this; } @@ -131,8 +131,8 @@ public class Entity extends EntityType { } } - private Entity(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, String id, String name) { - super(href, type, links, description, tasksInProgress, id, name); + private Entity(URI href, String type, Set links, String description, Set tasks, String id, String name) { + super(href, type, links, description, tasks, id, name); } private Entity() { diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/EntityType.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/EntityType.java index b9a0bc1fc9..5c23f0beda 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/EntityType.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/EntityType.java @@ -22,13 +22,18 @@ import static com.google.common.base.Objects.equal; import static com.google.common.base.Preconditions.checkNotNull; import java.net.URI; +import java.util.Collections; import java.util.Set; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElementWrapper; + +import org.jclouds.javax.annotation.Nullable; import com.google.common.base.Objects; import com.google.common.base.Objects.ToStringHelper; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; /** @@ -48,7 +53,7 @@ public abstract class EntityType> extends ResourceType> extends ResourceType.NewBuilder { protected String description; - protected TasksInProgress tasksInProgress; + protected Set tasks; protected String name; protected String id; @@ -77,16 +82,16 @@ public abstract class EntityType> extends ResourceType tasks) { + this.tasks = tasks; return self(); } public T fromEntityType(EntityType in) { return fromResourceType(in) - .description(in.getDescription()).tasksInProgress(in.getTasksInProgress()) + .description(in.getDescription()).tasks(in.getTasks()) .id(in.getId()).name(in.getName()); } } @@ -94,7 +99,7 @@ public abstract class EntityType> extends ResourceType> extends ResourceType.Builder { protected String description; - protected TasksInProgress tasksInProgress; + protected Set tasks; protected String name; protected String id; @@ -121,12 +126,23 @@ public abstract class EntityType> extends ResourceType tasks(Set tasks) { + if (checkNotNull(tasks, "tasks").size() > 0) + this.tasks = Sets.newLinkedHashSet(tasks); + return this; + } /** - * @see EntityType#getTasksInProgress() + * @see EntityType#getTasks() */ - public Builder tasksInProgress(TasksInProgress tasksInProgress) { - this.tasksInProgress = tasksInProgress; + public Builder task(Task task) { + if (tasks == null) + tasks = Sets.newLinkedHashSet(); + this.tasks.add(checkNotNull(task, "task")); return this; } @@ -151,19 +167,19 @@ public abstract class EntityType> extends ResourceType links(Set links) { - this.links = Sets.newLinkedHashSet(checkNotNull(links, "links")); - return this; + return Builder.class.cast(super.links(links)); } /** * @see ResourceType#getLinks() */ + @SuppressWarnings("unchecked") @Override public Builder link(Link link) { - this.links.add(checkNotNull(link, "link")); - return this; + return Builder.class.cast(super.link(link)); } /** @@ -177,24 +193,26 @@ public abstract class EntityType> extends ResourceType fromEntityType(EntityType in) { return fromResourceType(in) - .description(in.getDescription()).tasksInProgress(in.getTasksInProgress()) + .description(in.getDescription()).tasks(in.getTasks()) .id(in.getId()).name(in.getName()); } } @XmlElement(name = "Description") private String description; - @XmlElement(name = "Tasks") - private TasksInProgress tasksInProgress; + @XmlElementWrapper(name = "Tasks") + @XmlElement(name = "Task") + private Set tasks; @XmlAttribute private String id; @XmlAttribute(required = true) private String name; - public EntityType(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, String id, String name) { + public EntityType(URI href, String type, @Nullable Set links, String description, @Nullable Set tasks, String id, String name) { super(href, type, links); this.description = description; - this.tasksInProgress = tasksInProgress; + // nullable so that jaxb wont persist empty collections + this.tasks = tasks != null && tasks.size() == 0 ? null : tasks; this.id = id; this.name = name; } @@ -213,8 +231,8 @@ public abstract class EntityType> extends ResourceType getTasks() { + return tasks == null ? ImmutableSet.of() : Collections.unmodifiableSet(tasks); } /** @@ -243,7 +261,7 @@ public abstract class EntityType> extends ResourceType that = EntityType.class.cast(o); return super.equals(that) && equal(this.id, that.id) && equal(this.description, that.description) && - equal(this.tasksInProgress, that.tasksInProgress) && equal(this.name, that.name); + equal(this.tasks, that.tasks) && equal(this.name, that.name); } @Override @@ -258,11 +276,11 @@ public abstract class EntityType> extends ResourceType { } public File build() { - return new File(href, type, links, description, tasksInProgress, id, name, size, bytesTransferred, checksum); + return new File(href, type, links, description, tasks, id, name, size, bytesTransferred, checksum); } @@ -128,11 +126,11 @@ public class File extends EntityType { } /** - * @see EntityType#getTasksInProgress() + * @see EntityType#getTasks() */ @Override - public Builder tasksInProgress(TasksInProgress tasksInProgress) { - super.tasksInProgress (tasksInProgress); + public Builder tasks(Set tasks) { + super.tasks (tasks); return this; } @@ -159,7 +157,7 @@ public class File extends EntityType { */ @Override public Builder links(Set links) { - this.links = Sets.newLinkedHashSet(checkNotNull(links, "links")); + super.links(links); return this; } @@ -168,7 +166,7 @@ public class File extends EntityType { */ @Override public Builder link(Link link) { - this.links.add(checkNotNull(link, "link")); + super.link(link); return this; } @@ -186,9 +184,9 @@ public class File extends EntityType { } } - public File(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, String id, + public File(URI href, String type, Set links, String description, Set tasks, String id, String name, Long size, Long bytesTransferred, String checksum) { - super(href, type, links, description, tasksInProgress, id, name); + super(href, type, links, description, tasks, id, name); this.size = size; this.bytesTransferred = bytesTransferred; this.checksum = checksum; diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Group.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Group.java index 5c7887e04d..f23153310d 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Group.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Group.java @@ -106,7 +106,7 @@ public class Group extends EntityType { } public Group build() { - return new Group(href, type, links, description, tasksInProgress, id, name, + return new Group(href, type, links, description, tasks, id, name, nameInSource, usersList, role); } @@ -138,11 +138,11 @@ public class Group extends EntityType { } /** - * @see EntityType#getTasksInProgress() + * @see EntityType#getTasks() */ @Override - public Builder tasksInProgress(TasksInProgress tasksInProgress) { - super.tasksInProgress(tasksInProgress); + public Builder tasks(Set tasks) { + super.tasks(tasks); return this; } @@ -200,9 +200,9 @@ public class Group extends EntityType { } public Group(URI href, String type, Set links, String description, - TasksInProgress tasksInProgress, String id, String name, String nameInSource, + Set tasks, String id, String name, String nameInSource, UsersList usersList, Reference role) { - super(href, type, links, description, tasksInProgress, id, name); + super(href, type, links, description, tasks, id, name); this.nameInSource = nameInSource; this.usersList = usersList; this.role = role; diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Media.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Media.java index 234091b18d..209361b246 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Media.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Media.java @@ -90,7 +90,7 @@ public class Media extends ResourceEntityType { @Override public Media build() { - return new Media(href, type, links, description, tasksInProgress, id, name, files, status, owner, imageType, size); + return new Media(href, type, links, description, tasks, id, name, files, status, owner, imageType, size); } /** @@ -139,11 +139,11 @@ public class Media extends ResourceEntityType { } /** - * @see EntityType#getTasksInProgress() + * @see EntityType#getTasks() */ @Override - public Builder tasksInProgress(TasksInProgress tasksInProgress) { - super.tasksInProgress(tasksInProgress); + public Builder tasks(Set tasks) { + super.tasks(tasks); return this; } @@ -194,9 +194,9 @@ public class Media extends ResourceEntityType { } - public Media(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, String id, + public Media(URI href, String type, Set links, String description, Set tasks, String id, String name, FilesList files, Integer status, Owner owner, String imageType, long size) { - super(href, type, links, description, tasksInProgress, id, name, files, status); + super(href, type, links, description, tasks, id, name, files, status); this.owner = owner; this.imageType = imageType; this.size = size; diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/NetworkType.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/NetworkType.java index 9b8d4e9f75..8cb5cbcbf3 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/NetworkType.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/NetworkType.java @@ -19,7 +19,6 @@ package org.jclouds.vcloud.director.v1_5.domain; import static com.google.common.base.Objects.equal; -import static com.google.common.base.Preconditions.checkNotNull; import java.net.URI; import java.util.Set; @@ -29,7 +28,6 @@ import javax.xml.bind.annotation.XmlRootElement; import com.google.common.base.Objects; import com.google.common.base.Objects.ToStringHelper; -import com.google.common.collect.Sets; @XmlRootElement(name = "NetworkType") public class NetworkType> extends EntityType { @@ -57,7 +55,7 @@ public class NetworkType> extends EntityType { @Override public NetworkType build() { - return new NetworkType(href, type, links, description, tasksInProgress, id, name, networkConfiguration); + return new NetworkType(href, type, links, description, tasks, id, name, networkConfiguration); } /** @@ -86,13 +84,13 @@ public class NetworkType> extends EntityType { this.id = id; return this; } - + /** - * @see EntityType#getTasksInProgress() + * @see EntityType#getTasks() */ @Override - public Builder tasksInProgress(TasksInProgress tasksInProgress) { - this.tasksInProgress = tasksInProgress; + public Builder tasks(Set tasks) { + super.tasks(tasks); return this; } @@ -119,7 +117,7 @@ public class NetworkType> extends EntityType { */ @Override public Builder links(Set links) { - this.links = Sets.newLinkedHashSet(checkNotNull(links, "links")); + super.links(links); return this; } @@ -128,7 +126,7 @@ public class NetworkType> extends EntityType { */ @Override public Builder link(Link link) { - this.links.add(checkNotNull(link, "link")); + super.link(link); return this; } @@ -146,9 +144,9 @@ public class NetworkType> extends EntityType { } } - public NetworkType(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, + public NetworkType(URI href, String type, Set links, String description, Set tasks, String id, String name, NetworkConfiguration networkConfiguration) { - super(href, type, links, description, tasksInProgress, id, name); + super(href, type, links, description, tasks, id, name); this.networkConfiguration = networkConfiguration; } diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Org.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Org.java index 69b9c48852..464208023c 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Org.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Org.java @@ -80,7 +80,7 @@ public class Org extends EntityType { @Override public Org build() { - return new Org(href, type, links, description, tasksInProgress, id, name, fullName, isEnabled); + return new Org(href, type, links, description, tasks, id, name, fullName, isEnabled); } public T fromOrg(Org in) { @@ -143,7 +143,7 @@ public class Org extends EntityType { @Override public Org build() { - return new Org(href, type, links, description, tasksInProgress, id, name, fullName, isEnabled); + return new Org(href, type, links, description, tasks, id, name, fullName, isEnabled); } /** @@ -174,11 +174,11 @@ public class Org extends EntityType { } /** - * @see EntityType#getTasksInProgress() + * @see EntityType#getTasks() */ @Override - public Builder tasksInProgress(TasksInProgress tasksInProgress) { - this.tasksInProgress = tasksInProgress; + public Builder tasks(Set tasks) { + super.tasks(tasks); return this; } @@ -232,8 +232,8 @@ public class Org extends EntityType { // for JAXB } - public Org(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, String id, String name, String fullName, Boolean enabled) { - super(href, type, links, description, tasksInProgress, id, name); + public Org(URI href, String type, Set links, String description, Set tasks, String id, String name, String fullName, Boolean enabled) { + super(href, type, links, description, tasks, id, name); this.fullName = fullName; isEnabled = enabled; } diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/OrgNetwork.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/OrgNetwork.java index 65212fd30e..b65c593b6c 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/OrgNetwork.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/OrgNetwork.java @@ -19,7 +19,6 @@ package org.jclouds.vcloud.director.v1_5.domain; import static com.google.common.base.Objects.equal; -import static com.google.common.base.Preconditions.checkNotNull; import java.net.URI; import java.util.Set; @@ -29,7 +28,6 @@ import javax.xml.bind.annotation.XmlRootElement; import com.google.common.base.Objects; import com.google.common.base.Objects.ToStringHelper; -import com.google.common.collect.Sets; @XmlRootElement(name = "OrgNetwork") public class OrgNetwork extends NetworkType { @@ -67,7 +65,7 @@ public class OrgNetwork extends NetworkType { @Override public OrgNetwork build() { - return new OrgNetwork(href, type, links, description, tasksInProgress, id, name, networkConfiguration, + return new OrgNetwork(href, type, links, description, tasks, id, name, networkConfiguration, networkPool, allowedExternalIpAddresses); } @@ -105,13 +103,13 @@ public class OrgNetwork extends NetworkType { this.id = id; return this; } - + /** - * @see EntityType#getTasksInProgress() + * @see EntityType#getTasks() */ @Override - public Builder tasksInProgress(TasksInProgress tasksInProgress) { - this.tasksInProgress = tasksInProgress; + public Builder tasks(Set tasks) { + super.tasks(tasks); return this; } @@ -138,7 +136,7 @@ public class OrgNetwork extends NetworkType { */ @Override public Builder links(Set links) { - this.links = Sets.newLinkedHashSet(checkNotNull(links, "links")); + super.links(links); return this; } @@ -147,7 +145,7 @@ public class OrgNetwork extends NetworkType { */ @Override public Builder link(Link link) { - this.links.add(checkNotNull(link, "link")); + super.link(link); return this; } @@ -167,9 +165,9 @@ public class OrgNetwork extends NetworkType { // For JAXB } - private OrgNetwork(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, + private OrgNetwork(URI href, String type, Set links, String description, Set tasks, String id, String name, NetworkConfiguration networkConfiguration, ReferenceType networkPool, IpAddresses allowedExternalIpAddresses) { - super(href, type, links, description, tasksInProgress, id, name, networkConfiguration); + super(href, type, links, description, tasks, id, name, networkConfiguration); this.networkPool = networkPool; this.allowedExternalIpAddresses = allowedExternalIpAddresses; } diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/ResourceEntityType.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/ResourceEntityType.java index 8527fe20b9..8cbb354b72 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/ResourceEntityType.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/ResourceEntityType.java @@ -20,7 +20,6 @@ package org.jclouds.vcloud.director.v1_5.domain; import static com.google.common.base.Objects.equal; -import static com.google.common.base.Preconditions.checkNotNull; import java.net.URI; import java.util.Set; @@ -30,7 +29,6 @@ import javax.xml.bind.annotation.XmlElement; import com.google.common.base.Objects; import com.google.common.base.Objects.ToStringHelper; -import com.google.common.collect.Sets; /** * Base type that represents a resource entity such as a vApp template or virtual media. @@ -72,13 +70,13 @@ public abstract class ResourceEntityType> extend this.id = id; return this; } - + /** - * @see EntityType#getTasksInProgress() + * @see EntityType#getTasks() */ @Override - public Builder tasksInProgress(TasksInProgress tasksInProgress) { - this.tasksInProgress = tasksInProgress; + public Builder tasks(Set tasks) { + super.tasks(tasks); return this; } @@ -101,20 +99,18 @@ public abstract class ResourceEntityType> extend } /** - * @see EntityType#getLinks() + * @see ResourceEntityType#getLinks() */ - @Override public Builder links(Set links) { - this.links = Sets.newLinkedHashSet(checkNotNull(links, "links")); + super.links(links); return this; } /** - * @see EntityType#getLinks() + * @see ResourceEntityType#getLinks() */ - @Override public Builder link(Link link) { - this.links.add(checkNotNull(link, "link")); + super.link(link); return this; } @@ -134,8 +130,8 @@ public abstract class ResourceEntityType> extend @XmlAttribute protected Integer status; - public ResourceEntityType(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, String id, String name, FilesList files, Integer status) { - super(href, type, links, description, tasksInProgress, id, name); + public ResourceEntityType(URI href, String type, Set links, String description, Set tasks, String id, String name, FilesList files, Integer status) { + super(href, type, links, description, tasks, id, name); this.files = files; this.status = status; } diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/ResourceType.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/ResourceType.java index 42f14c1189..24843d43be 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/ResourceType.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/ResourceType.java @@ -28,6 +28,8 @@ import java.util.Set; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; +import org.jclouds.javax.annotation.Nullable; + import com.google.common.base.Objects; import com.google.common.base.Objects.ToStringHelper; import com.google.common.collect.ImmutableSet; @@ -55,7 +57,7 @@ public abstract class ResourceType> { protected URI href; protected String type; - protected Set links = Sets.newLinkedHashSet(); + protected Set links; /** * @see ResourceType#getHref() @@ -85,6 +87,8 @@ public abstract class ResourceType> { * @see ResourceType#getLinks() */ public T link(Link link) { + if (links == null) + links = Sets.newLinkedHashSet(); this.links.add(checkNotNull(link, "link")); return self(); } @@ -102,7 +106,7 @@ public abstract class ResourceType> { protected URI href; protected String type; - protected Set links = Sets.newLinkedHashSet(); + protected Set links; /** * @see ResourceType#getHref() @@ -132,6 +136,8 @@ public abstract class ResourceType> { * @see ResourceType#getLinks() */ public Builder link(Link link) { + if (links == null) + links = Sets.newLinkedHashSet(); this.links.add(checkNotNull(link, "link")); return this; } @@ -148,12 +154,13 @@ public abstract class ResourceType> { @XmlAttribute private String type; @XmlElement(name = "Link") - private Set links = Sets.newLinkedHashSet(); + private Set links; - protected ResourceType(URI href, String type, Set links) { + protected ResourceType(URI href, String type, @Nullable Set links) { this.href = href; this.type = type; - this.links = ImmutableSet.copyOf(links); + // nullable so that jaxb wont persist empty collections + this.links = links != null && links.size() == 0 ? null : links; } protected ResourceType() { @@ -193,7 +200,7 @@ public abstract class ResourceType> { * Set of optional links to an entity or operation associated with this object. */ public Set getLinks() { - return Collections.unmodifiableSet(links); + return links == null ? ImmutableSet.of() : Collections.unmodifiableSet(links); } @Override diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Task.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Task.java index 1ddfda0972..b6f1ca88b4 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Task.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Task.java @@ -19,7 +19,6 @@ package org.jclouds.vcloud.director.v1_5.domain; import static com.google.common.base.Objects.equal; -import static com.google.common.base.Preconditions.checkNotNull; import java.net.URI; import java.util.Arrays; @@ -35,7 +34,6 @@ import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType; import com.google.common.base.Objects; import com.google.common.base.Objects.ToStringHelper; -import com.google.common.collect.Sets; /** * Represents an asynchronous or long-running task in the vCloud environment. @@ -44,6 +42,8 @@ import com.google.common.collect.Sets; * <xs:complexType name="TaskType"> * * + * TODO: this object and the hierarchy is wrong. it is literally a Task with a Task container. please review class diagram + * * @author grkvlt@apache.org */ @XmlRootElement(name = "Task") @@ -188,7 +188,7 @@ public class Task extends EntityType { @Override public Task build() { - return new Task(href, type, links, description, tasksInProgress, id, name, + return new Task(href, type, links, description, tasks, id, name, error, org, progress, owner, user, params, status, operation, operationName, startTime, endTime, expiryTime); } @@ -218,13 +218,13 @@ public class Task extends EntityType { this.id = id; return this; } - + /** - * @see EntityType#getTasksInProgress() + * @see EntityType#getTasks() */ @Override - public Builder tasksInProgress(TasksInProgress tasksInProgress) { - this.tasksInProgress = tasksInProgress; + public Builder tasks(Set tasks) { + super.tasks(tasks); return this; } @@ -247,23 +247,22 @@ public class Task extends EntityType { } /** - * @see EntityType#getLinks() + * @see ResourceType#getLinks() */ @Override public Builder links(Set links) { - this.links = Sets.newLinkedHashSet(checkNotNull(links, "links")); - return this; + return Builder.class.cast(super.links(links)); } /** - * @see EntityType#getLinks() + * @see ResourceType#getLinks() */ @Override public Builder link(Link link) { - this.links.add(checkNotNull(link, "link")); - return this; + return Builder.class.cast(super.link(link)); } + @Override public Builder fromEntityType(EntityType in) { return Builder.class.cast(super.fromEntityType(in)); @@ -276,11 +275,11 @@ public class Task extends EntityType { } } - public Task(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, + public Task(URI href, String type, Set links, String description, Set tasks, String id, String name, Error error, Reference org, Integer progress, Reference owner, Reference user, Object params, String status, String operation, String operationName, Date startTime, Date endTime, Date expiryTime) { - super(href, type, links, description, tasksInProgress, id, name); + super(href, type, links, description, tasks, id, name); this.error = error; this.org = org; this.progress = progress; diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/TasksInProgress.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/TasksInProgress.java deleted file mode 100644 index 76500a4b6a..0000000000 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/TasksInProgress.java +++ /dev/null @@ -1,113 +0,0 @@ -/** - * Licensed to jclouds, Inc. (jclouds) under one or more - * contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. jclouds licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIOXMLNS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.jclouds.vcloud.director.v1_5.domain; - -import static com.google.common.base.Objects.equal; -import static com.google.common.base.Preconditions.checkNotNull; - -import java.util.Collection; -import java.util.Collections; -import java.util.Set; - -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; - -import com.google.common.base.Objects; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Sets; - -/** - * @author grkvlt@apache.org - */ -@XmlRootElement(name = "TasksInProgress") -public class TasksInProgress { - - public static Builder builder() { - return new Builder(); - } - - public Builder toBuilder() { - return new Builder(); - } - - public static class Builder { - - protected Set tasks = Sets.newLinkedHashSet(); - - /** - * @see TasksInProgress#getTasks() - */ - public Builder tasks(Set tasks) { - this.tasks = ImmutableSet.copyOf(checkNotNull(tasks, "tasks")); - return this; - } - - /** - * @see TasksInProgress#getTasks() - */ - public Builder task(Task task) { - this.tasks.add(checkNotNull(task, "task")); - return this; - } - - public TasksInProgress build() { - return new TasksInProgress(tasks); - } - - public Builder fromTasksInProgress(TasksInProgress in) { - return tasks(in.getTasks()); - } - } - - private TasksInProgress() { - // for JAXB - } - - private TasksInProgress(Collection tasks) { - this.tasks = ImmutableSet.copyOf(tasks); - } - - @XmlElement(name = "Task") - private Set tasks = Sets.newLinkedHashSet(); - - public Set getTasks() { - return Collections.unmodifiableSet(tasks); - } - - @Override - public boolean equals(Object o) { - if (this == o) - return true; - if (o == null || getClass() != o.getClass()) - return false; - TasksInProgress that = TasksInProgress.class.cast(o); - return equal(this.tasks, that.tasks); - } - - @Override - public int hashCode() { - return Objects.hashCode(tasks); - } - - @Override - public String toString() { - return Objects.toStringHelper("").add("tasks", tasks).toString(); - } -} - diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/TasksList.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/TasksList.java index 495de77fd0..510edb27d4 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/TasksList.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/TasksList.java @@ -22,13 +22,16 @@ import static com.google.common.base.Objects.equal; import static com.google.common.base.Preconditions.checkNotNull; import java.net.URI; +import java.util.Collection; import java.util.Collections; +import java.util.Iterator; import java.util.Set; +import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; -import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType; +import org.jclouds.javax.annotation.Nullable; import com.google.common.base.Objects; import com.google.common.base.Objects.ToStringHelper; @@ -36,33 +39,36 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; /** - * A list of tasks. - * + * Task List + * + * * @author Adrian Cole */ @XmlRootElement(name = "TasksList") -public class TasksList extends EntityType { - - public static final String MEDIA_TYPE = VCloudDirectorMediaType.TASKS_LIST; - +public class TasksList extends ResourceType implements Set { public static Builder builder() { return new Builder(); } - @Override - public Builder toBuilder() { - return new Builder(); - } + public static class Builder extends ResourceType.Builder { + protected String name; - public static class Builder extends EntityType.Builder { + private Set tasks; - protected Set tasks = Sets.newLinkedHashSet(); + /** + * @see TasksList#getName() + */ + public Builder name(String name) { + this.name = name; + return this; + } /** * @see TasksList#getTasks() */ public Builder tasks(Set tasks) { - this.tasks = Sets.newLinkedHashSet(checkNotNull(tasks, "tasks")); + if (checkNotNull(tasks, "tasks").size() > 0) + this.tasks = Sets.newLinkedHashSet(tasks); return this; } @@ -70,111 +76,86 @@ public class TasksList extends EntityType { * @see TasksList#getTasks() */ public Builder task(Task task) { + if (tasks == null) + tasks = Sets.newLinkedHashSet(); this.tasks.add(checkNotNull(task, "task")); return this; } - + @Override public TasksList build() { - return new TasksList(href, type, links, description, tasksInProgress, id, name, tasks); + return new TasksList(href, type, links, name, tasks); } /** - * @see EntityType#getName() - */ - @Override - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * @see EntityType#getDescription() - */ - @Override - public Builder description(String description) { - this.description = description; - return this; - } - - /** - * @see EntityType#getId() - */ - @Override - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * @see EntityType#getTasksInProgress() - */ - @Override - public Builder tasksInProgress(TasksInProgress tasksInProgress) { - this.tasksInProgress = tasksInProgress; - return this; - } - - /** - * @see ReferenceType#getHref() + * @see ResourceType#getHref() */ @Override public Builder href(URI href) { - this.href = href; + super.href(href); return this; } /** - * @see ReferenceType#getType() + * @see ResourceType#getType() */ @Override public Builder type(String type) { - this.type = type; + super.type(type); return this; } /** - * @see EntityType#getLinks() + * @see ResourceType#getLinks() */ @Override public Builder links(Set links) { - this.links = Sets.newLinkedHashSet(checkNotNull(links, "links")); - return this; + return Builder.class.cast(super.links(links)); } /** - * @see EntityType#getLinks() + * @see ResourceType#getLinks() */ @Override public Builder link(Link link) { - this.links.add(checkNotNull(link, "link")); + super.link(link); return this; } - @Override - public Builder fromEntityType(EntityType in) { - return Builder.class.cast(super.fromEntityType(in)); + public Builder fromTasksList(TasksList in) { + return fromResourceType(in).tasks(in); } - public Builder fromTasksList(TasksList in) { - return fromEntityType(in).tasks(in.getTasks()); + /** + * {@inheritDoc} + */ + @Override + public Builder fromResourceType(ResourceType in) { + return Builder.class.cast(super.fromResourceType(in)); } } + @XmlAttribute(required = true) + private String name; + @XmlElement(name = "Task") + private Set tasks; + + public TasksList(URI href, String type, @Nullable Set links, String name, @Nullable Set tasks) { + super(href, type, links); + this.tasks = tasks; + this.name = name; + } + protected TasksList() { - // for JAXB + // For JAXB } - public TasksList(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, String id, String name, Set tasks) { - super(href, type, links, description, tasksInProgress, id, name); - this.tasks = ImmutableSet.copyOf(tasks); - } - @XmlElement(name = "Task") - private Set tasks = Sets.newLinkedHashSet(); - - public Set getTasks() { - return Collections.unmodifiableSet(tasks); + /** + * Contains the name of the the entity. + */ + public String getName() { + return name; } @Override @@ -184,16 +165,91 @@ public class TasksList extends EntityType { if (o == null || getClass() != o.getClass()) return false; TasksList that = TasksList.class.cast(o); - return super.equals(that) && equal(this.tasks, that.tasks); + return super.equals(that) && equal(this.delegate(), that.delegate()) && equal(this.name, that.name); } @Override public int hashCode() { - return super.hashCode() + Objects.hashCode(tasks); + return super.hashCode() + Objects.hashCode(delegate(), name); + } + + private Set delegate() { + return tasks == null ? ImmutableSet.of() : Collections.unmodifiableSet(tasks); } @Override public ToStringHelper string() { - return super.string().add("tasks", tasks); + return super.string().add("name", name).add("tasks", delegate()); } -} + + @Override + public Builder toBuilder() { + return new Builder().fromTasksList(this); + } + + @Override + public Iterator iterator() { + return delegate().iterator(); + } + + @Override + public int size() { + return delegate().size(); + } + + @Override + public boolean removeAll(Collection collection) { + return delegate().removeAll(collection); + } + + @Override + public boolean isEmpty() { + return delegate().isEmpty(); + } + + @Override + public boolean contains(Object object) { + return delegate().contains(object); + } + + @Override + public boolean add(Task element) { + return delegate().add(element); + } + + @Override + public boolean remove(Object object) { + return delegate().remove(object); + } + + @Override + public boolean containsAll(Collection collection) { + return delegate().containsAll(collection); + } + + @Override + public boolean addAll(Collection collection) { + return delegate().addAll(collection); + } + + @Override + public boolean retainAll(Collection collection) { + return delegate().retainAll(collection); + } + + @Override + public void clear() { + delegate().clear(); + } + + @Override + public Object[] toArray() { + return delegate().toArray(); + } + + @Override + public T[] toArray(T[] array) { + return delegate().toArray(array); + } + +} \ No newline at end of file diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/User.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/User.java index b55ae0aba7..f16e165bd1 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/User.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/User.java @@ -270,7 +270,7 @@ public class User public User build() { - return new User(href, type, links, description, tasksInProgress, id, + return new User(href, type, links, description, tasks, id, name, fullName, emailAddress, telephone, isEnabled, isLocked, im, nameInSource, isAlertEnabled, alertEmailPrefix, alertEmail, isExternal, isDefaultCached, isGroupRole, storedVmQuota, deployedVmQuota, @@ -286,13 +286,13 @@ public class User this.id = id; return this; } - + /** - * @see EntityType#getTasksInProgress() + * @see EntityType#getTasks() */ @Override - public Builder tasksInProgress(TasksInProgress tasksInProgress) { - this.tasksInProgress = tasksInProgress; + public Builder tasks(Set tasks) { + super.tasks(tasks); return this; } @@ -398,12 +398,12 @@ public class User @XmlElement(name = "GroupReferences") protected Object /* GroupsList */ groupReferences; - public User(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, String id, + public User(URI href, String type, Set links, String description, Set tasks, String id, String name, String fullName, String emailAddress, String telephone, Boolean enabled, Boolean locked, String im, String nameInSource, Boolean alertEnabled, String alertEmailPrefix, String alertEmail, Boolean external, Boolean defaultCached, Boolean groupRole, Integer storedVmQuota, Integer deployedVmQuota, Reference role, String password, Object groupReferences) { - super(href, type, links, description, tasksInProgress, id, name); + super(href, type, links, description, tasks, id, name); this.fullName = fullName; this.emailAddress = emailAddress; this.telephone = telephone; diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/VAppTemplate.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/VAppTemplate.java index 2efd0969d9..8519c9d9ad 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/VAppTemplate.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/VAppTemplate.java @@ -145,7 +145,7 @@ public class VAppTemplate extends ResourceEntityType { @Override public VAppTemplate build() { - return new VAppTemplate(href, type, links, description, tasksInProgress, id, name, files, status, owner, children, sections, vAppScopedLocalId, ovfDescriptorUploaded, goldMaster); + return new VAppTemplate(href, type, links, description, tasks, id, name, files, status, owner, children, sections, vAppScopedLocalId, ovfDescriptorUploaded, goldMaster); } @Override @@ -210,11 +210,11 @@ public class VAppTemplate extends ResourceEntityType { } /** - * @see EntityType#getTasksInProgress() + * @see EntityType#getTasks() */ @Override - public Builder tasksInProgress(TasksInProgress tasksInProgress) { - super.tasksInProgress(tasksInProgress); + public Builder tasks(Set tasks) { + super.tasks(tasks); return this; } @@ -268,10 +268,10 @@ public class VAppTemplate extends ResourceEntityType { @XmlAttribute protected Boolean goldMaster; - private VAppTemplate(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, + private VAppTemplate(URI href, String type, Set links, String description, Set tasks, String id, String name, FilesList files, Integer status, Owner owner, Set children, Set> sections, String vAppScopedLocalId, Boolean ovfDescriptorUploaded, Boolean goldMaster) { - super(href, type, links, description, tasksInProgress, id, name, files, status); + super(href, type, links, description, tasks, id, name, files, status); this.owner = owner; this.children = VAppTemplateChildren.builder().vms(children).build(); this.sections = ImmutableSet.copyOf(sections); diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Vdc.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Vdc.java index 179658a50a..6c3e431980 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Vdc.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Vdc.java @@ -20,7 +20,6 @@ package org.jclouds.vcloud.director.v1_5.domain; import static com.google.common.base.Objects.equal; -import static com.google.common.base.Preconditions.checkNotNull; import java.net.URI; import java.util.Set; @@ -32,7 +31,6 @@ import javax.xml.bind.annotation.XmlSeeAlso; import javax.xml.bind.annotation.XmlType; import com.google.common.base.Objects; -import com.google.common.collect.Sets; /** @@ -199,7 +197,7 @@ public class Vdc public Vdc build() { return new Vdc( - href, type, links, description, tasksInProgress, id, name, allocationModel, storageCapacity, + href, type, links, description, tasks, id, name, allocationModel, storageCapacity, computeCapacity, resourceEntities, availableNetworks, capabilities, nicQuota, networkQuota, vmQuota, isEnabled, status); } @@ -228,13 +226,13 @@ public class Vdc this.id = id; return this; } - + /** - * @see EntityType#getTasksInProgress() + * @see EntityType#getTasks() */ @Override - public Builder tasksInProgress(TasksInProgress tasksInProgress) { - this.tasksInProgress = tasksInProgress; + public Builder tasks(Set tasks) { + super.tasks(tasks); return this; } @@ -255,13 +253,13 @@ public class Vdc this.type = type; return this; } - + /** * @see EntityType#getLinks() */ @Override public Builder links(Set links) { - this.links = Sets.newLinkedHashSet(checkNotNull(links, "links")); + super.links(links); return this; } @@ -270,11 +268,10 @@ public class Vdc */ @Override public Builder link(Link link) { - this.links.add(checkNotNull(link, "link")); + super.link(link); return this; } - @Override public Builder fromEntityType(EntityType in) { return Builder.class.cast(super.fromEntityType(in)); @@ -296,8 +293,8 @@ public class Vdc } } - public Vdc(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, String id, String name, String allocationModel, CapacityWithUsage storageCapacity, ComputeCapacity computeCapacity, ResourceEntities resourceEntities, AvailableNetworks availableNetworks, Capabilities capabilities, int nicQuota, int networkQuota, Integer vmQuota, Boolean enabled, Integer status) { - super(href, type, links, description, tasksInProgress, id, name); + public Vdc(URI href, String type, Set links, String description, Set tasks, String id, String name, String allocationModel, CapacityWithUsage storageCapacity, ComputeCapacity computeCapacity, ResourceEntities resourceEntities, AvailableNetworks availableNetworks, Capabilities capabilities, int nicQuota, int networkQuota, Integer vmQuota, Boolean enabled, Integer status) { + super(href, type, links, description, tasks, id, name); this.allocationModel = allocationModel; this.storageCapacity = storageCapacity; this.computeCapacity = computeCapacity; diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/cim/package-info.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/cim/package-info.java index 7d4f5fca83..565b77fad1 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/cim/package-info.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/cim/package-info.java @@ -23,3 +23,4 @@ import static org.jclouds.vcloud.director.v1_5.VCloudDirectorConstants.VCLOUD_CI import javax.xml.bind.annotation.XmlNsForm; import javax.xml.bind.annotation.XmlSchema; + diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/ovf/internal/package-info.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/ovf/internal/package-info.java index 89e7c81e8d..376ebb7d43 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/ovf/internal/package-info.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/ovf/internal/package-info.java @@ -30,3 +30,4 @@ import static org.jclouds.vcloud.director.v1_5.VCloudDirectorConstants.VCLOUD_OV import javax.xml.bind.annotation.XmlNs; import javax.xml.bind.annotation.XmlNsForm; import javax.xml.bind.annotation.XmlSchema; + diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/ovf/package-info.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/ovf/package-info.java index 4f6e14dc43..2f51ebaf66 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/ovf/package-info.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/ovf/package-info.java @@ -30,3 +30,4 @@ import static org.jclouds.vcloud.director.v1_5.VCloudDirectorConstants.VCLOUD_OV import javax.xml.bind.annotation.XmlNs; import javax.xml.bind.annotation.XmlNsForm; import javax.xml.bind.annotation.XmlSchema; + diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/query/package-info.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/query/package-info.java index c5be051558..82e216e32c 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/query/package-info.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/query/package-info.java @@ -29,3 +29,4 @@ import static org.jclouds.vcloud.director.v1_5.VCloudDirectorConstants.VCLOUD_CI import javax.xml.bind.annotation.XmlNs; import javax.xml.bind.annotation.XmlNsForm; import javax.xml.bind.annotation.XmlSchema; + diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/vapp/package-info.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/vapp/package-info.java index 7b9e88a9c0..c8acc0be09 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/vapp/package-info.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/vapp/package-info.java @@ -31,3 +31,4 @@ import static org.jclouds.vcloud.director.v1_5.VCloudDirectorConstants.VCLOUD_OV import javax.xml.bind.annotation.XmlNs; import javax.xml.bind.annotation.XmlNsForm; import javax.xml.bind.annotation.XmlSchema; + diff --git a/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/domain/Checks.java b/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/domain/Checks.java index 89d0f76fcf..963ca76c3b 100644 --- a/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/domain/Checks.java +++ b/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/domain/Checks.java @@ -66,9 +66,9 @@ public class Checks { // Check optional fields // NOTE description cannot be checked - TasksInProgress tasksInProgress = entity.getTasksInProgress(); - if (tasksInProgress != null && tasksInProgress.getTasks() != null && !tasksInProgress.getTasks().isEmpty()) { - for (Task task : tasksInProgress.getTasks()) checkTask(task); + Set tasks = entity.getTasks(); + if (tasks != null && tasks != null && !tasks.isEmpty()) { + for (Task task : tasks) checkTask(task); } // Check parent type diff --git a/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MediaClientExpectTest.java b/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MediaClientExpectTest.java index 687b3dd822..301dbd7050 100644 --- a/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MediaClientExpectTest.java +++ b/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MediaClientExpectTest.java @@ -38,10 +38,11 @@ import org.jclouds.vcloud.director.v1_5.domain.MetadataValue; import org.jclouds.vcloud.director.v1_5.domain.Owner; import org.jclouds.vcloud.director.v1_5.domain.Reference; import org.jclouds.vcloud.director.v1_5.domain.Task; -import org.jclouds.vcloud.director.v1_5.domain.TasksInProgress; import org.jclouds.vcloud.director.v1_5.internal.BaseVCloudDirectorRestClientExpectTest; import org.testng.annotations.Test; +import com.google.common.collect.ImmutableSet; + /** * Allows us to test a client via its side effects. * @@ -415,8 +416,8 @@ public class MediaClientExpectTest extends BaseVCloudDirectorRestClientExpectTes .href(URI.create("https://mycloud.greenhousedata.com/api/media/a6b023f2-7f90-4e89-a24d-56e0eba83a5a")) .build()) .description("copied by testCloneMedia()") - .tasksInProgress(TasksInProgress.builder() - .task(Task.builder() + .tasks(ImmutableSet.builder() + .add(Task.builder() .status("running") .startTime(dateService.iso8601DateParse("2012-03-02T04:58:48.754-07:00")) .operationName("vdcCopyMedia") diff --git a/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MediaClientLiveTest.java b/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MediaClientLiveTest.java index 95291310cd..44beae7b6f 100644 --- a/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MediaClientLiveTest.java +++ b/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MediaClientLiveTest.java @@ -143,7 +143,7 @@ public class MediaClientLiveTest extends BaseVCloudDirectorClientLiveTest { media = mediaClient.getMedia(media.getHref()); - Task task = Iterables.getOnlyElement(media.getTasksInProgress().getTasks()); + Task task = Iterables.getOnlyElement(media.getTasks()); assertEquals(task.getStatus(), "running"); @@ -192,8 +192,8 @@ public class MediaClientLiveTest extends BaseVCloudDirectorClientLiveTest { Checks.checkMediaFor(VDC, media); - if (media.getTasksInProgress() != null) { - Task copyTask = getFirst(media.getTasksInProgress().getTasks(), null); + if (media.getTasks() != null) { + Task copyTask = getFirst(media.getTasks(), null); if (copyTask != null) { Checks.checkTask(copyTask); assertTrue(retryTaskSuccess.apply(copyTask), String.format(TASK_COMPLETE_TIMELY, "copyTask")); @@ -216,8 +216,8 @@ public class MediaClientLiveTest extends BaseVCloudDirectorClientLiveTest { Checks.checkMediaFor(VDC, media); - if (media.getTasksInProgress() != null) { - Task copyTask = getFirst(media.getTasksInProgress().getTasks(), null); + if (media.getTasks() != null) { + Task copyTask = getFirst(media.getTasks(), null); if (copyTask != null) { Checks.checkTask(copyTask); assertTrue(retryTaskSuccess.apply(copyTask), String.format(TASK_COMPLETE_TIMELY, "copyTask")); diff --git a/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/TaskClientExpectTest.java b/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/TaskClientExpectTest.java index 77ac6d25e6..327d588f39 100644 --- a/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/TaskClientExpectTest.java +++ b/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/TaskClientExpectTest.java @@ -81,11 +81,11 @@ public class TaskClientExpectTest extends BaseVCloudDirectorRestClientExpectTest .name("Tasks Lists") .type("application/vnd.vmware.vcloud.tasksList+xml") .href(URI.create("https://vcloudbeta.bluelock.com/api/tasksList/6f312e42-cd2b-488d-a2bb-97519cd57ed0")) - .task(taskOne()) .task(taskTwo()) + .task(taskOne()) .build(); - assertEquals(client.getTaskClient().getTaskList(URI.create("https://vcloudbeta.bluelock.com/api/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0")), expected); + assertEquals(client.getTaskClient().getTaskList(URI.create("https://vcloudbeta.bluelock.com/api/org/6f312e42-cd2b-488d-a2bb-97519cd57ed0")).toString(), expected.toString()); } @Test @@ -198,6 +198,7 @@ public class TaskClientExpectTest extends BaseVCloudDirectorRestClientExpectTest URI taskUri = URI.create(endpoint + "/task/5fcd2af3-d0ec-45ce-9451-8c585a2c766b"); + //TODO: incorrect relationship, as task should not have a nested task container!! Task expected = taskOne(); assertEquals(client.getTaskClient().getTask(taskUri), expected); diff --git a/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/TaskClientLiveTest.java b/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/TaskClientLiveTest.java index cef98e1f66..fc64909b8a 100644 --- a/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/TaskClientLiveTest.java +++ b/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/TaskClientLiveTest.java @@ -80,9 +80,9 @@ public class TaskClientLiveTest extends BaseVCloudDirectorClientLiveTest { // NOTE The environment MUST have ... // Check required elements and attributes - assertFalse(Iterables.isEmpty(taskList.getTasks()), String.format(NOT_EMPTY_OBJECT_FMT, "Task", "TaskList")); + assertFalse(Iterables.isEmpty(taskList), String.format(NOT_EMPTY_OBJECT_FMT, "Task", "TaskList")); - for (Task task : taskList.getTasks()) { + for (Task task : taskList) { checkTask(task); } } @@ -91,7 +91,7 @@ public class TaskClientLiveTest extends BaseVCloudDirectorClientLiveTest { public void testGetTask() { //TODO: upload media or something so you can get a fresh cancellable task? - Task taskRef = Iterables.getFirst(taskList.getTasks(), null); + Task taskRef = Iterables.getFirst(taskList, null); taskURI = taskRef.getHref(); // Call the method being tested