Issue #830 vcloud-director: combined ReferenceType and Reference domain classes

This commit is contained in:
Aled Sage 2012-03-15 11:07:27 +00:00
parent 68d455d1d9
commit a862b53fe5
26 changed files with 357 additions and 295 deletions

View File

@ -5,20 +5,20 @@ import java.net.URI;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "CatalogReference")
public class CatalogReference extends ReferenceType {
public class CatalogReference extends Reference {
public static Builder<?> builder() {
return new ConcreteBuilder();
}
public Builder<?> toBuilder() {
return builder().fromReferenceType(this);
return builder().fromCatalogReference(this);
}
private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
}
public static class Builder<B extends Builder<B>> extends ReferenceType.Builder<B> {
public static class Builder<B extends Builder<B>> extends Reference.Builder<B> {
@Override
public CatalogReference build() {
@ -26,7 +26,7 @@ public class CatalogReference extends ReferenceType {
}
protected B fromCatalogReference(CatalogReference in) {
return fromReferenceType(in);
return fromReference(in);
}
}

View File

@ -130,7 +130,7 @@ public class GroupsList {
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link ReferenceType }
* {@link Reference }
*
*
*/

View File

@ -52,14 +52,14 @@ public class InstantiateVAppParamsType extends VAppCreationParamsType {
public static abstract class Builder<B extends Builder<B>> extends VAppCreationParamsType.Builder<B> {
private ReferenceType source;
private Reference source;
private Boolean sourceDelete;
private Boolean linkedClone;
/**
* @see InstantiateVAppParamsType#getSource()
*/
public B source(ReferenceType source) {
public B source(Reference source) {
this.source = source;
return self();
}
@ -137,7 +137,7 @@ public class InstantiateVAppParamsType extends VAppCreationParamsType {
}
@XmlElement(name = "Source", required = true)
private ReferenceType source;
private Reference source;
@XmlElement(name = "IsSourceDelete")
private Boolean sourceDelete;
@XmlAttribute
@ -146,7 +146,7 @@ public class InstantiateVAppParamsType extends VAppCreationParamsType {
/**
* Gets the value of the source property.
*/
public ReferenceType getSource() {
public Reference getSource() {
return source;
}

View File

@ -41,7 +41,7 @@ import com.google.common.base.Objects.ToStringHelper;
* @author Adrian Cole
*/
@XmlRootElement(name = "Link")
public class Link extends ReferenceType {
public class Link extends Reference {
public static final class Rel {
public static final String ADD = "add";
@ -132,7 +132,7 @@ public class Link extends ReferenceType {
private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
}
public static class Builder<B extends Builder<B>> extends ReferenceType.Builder<B> {
public static class Builder<B extends Builder<B>> extends Reference.Builder<B> {
private String rel;
@ -150,7 +150,7 @@ public class Link extends ReferenceType {
}
public B fromLink(Link in) {
return fromReferenceType(in).rel(in.getRel());
return fromReference(in).rel(in.getRel());
}
/**

View File

@ -133,7 +133,7 @@ public class Networks {
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link ReferenceType }
* {@link Reference }
*
*
*/

View File

@ -42,13 +42,13 @@ public class OrgNetwork extends NetworkType {
public static abstract class Builder<B extends Builder<B>> extends NetworkType.Builder<B> {
private ReferenceType networkPool;
private Reference networkPool;
private IpAddresses allowedExternalIpAddresses;
/**
* @see OrgNetwork#getNetworkPool()
*/
public B networkPool(ReferenceType networkPool) {
public B networkPool(Reference networkPool) {
this.networkPool = networkPool;
return self();
}
@ -84,14 +84,14 @@ public class OrgNetwork extends NetworkType {
}
@XmlElement(name = "NetworkPool")
private ReferenceType networkPool;
private Reference networkPool;
@XmlElement(name = "AllowedExternalIpAddresses")
private IpAddresses allowedExternalIpAddresses;
/**
* @return optional network pool
*/
public ReferenceType getNetworkPool() {
public Reference getNetworkPool() {
return networkPool;
}

View File

@ -53,12 +53,12 @@ public class Owner extends ResourceType {
public static abstract class Builder<B extends Builder<B>> extends ResourceType.Builder<B> {
private ReferenceType user;
private Reference user;
/**
* @see Owner#getUser()
*/
public B user(ReferenceType user) {
public B user(Reference user) {
this.user = user;
return self();
}
@ -84,12 +84,12 @@ public class Owner extends ResourceType {
}
@XmlElement(name = "User", required = true)
private ReferenceType user;
private Reference user;
/**
* Gets the value of the user property.
*/
public ReferenceType getUser() {
public Reference getUser() {
return user;
}

View File

@ -18,14 +18,36 @@
*/
package org.jclouds.vcloud.director.v1_5.domain;
import static com.google.common.base.Objects.equal;
import java.net.URI;
import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import org.jclouds.logging.Logger;
import com.google.common.base.Objects;
import com.google.common.base.Objects.ToStringHelper;
/**
* A reference to a resource.
*
* Contains an href attribute and optional name and type attributes.
* <p>
* <pre>
* &lt;xs:complexType name="ReferenceType"&gt;
* </pre>
*
* @author grkvlt@apache.org
*/
public class Reference extends ReferenceType {
@XmlAccessorType(XmlAccessType.FIELD)
public class Reference {
@javax.annotation.Resource
protected static Logger logger = Logger.NULL;
public static Builder<?> builder() {
return new ConcreteBuilder();
@ -38,34 +60,145 @@ public class Reference extends ReferenceType {
private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
}
public static class Builder<B extends Builder<B>> extends ReferenceType.Builder<B> {
public static class Builder<B extends Builder<B>> {
private URI href;
private String id;
private String name;
private String type;
@SuppressWarnings("unchecked")
protected B self() {
return (B) this;
}
/**
* @see Reference#getHref()
*/
public B href(URI href) {
this.href = href;
return self();
}
/**
* @see Reference#getId()
*/
public B id(String id) {
this.id = id;
return self();
}
/**
* @see Reference#getType()
*/
public B type(String type) {
this.type = type;
return self();
}
/**
* @see Reference#getName()
*/
public B name(String name) {
this.name = name;
return self();
}
@Override
public Reference build() {
return new Reference(this);
}
public B fromReference(Reference in) {
return fromReferenceType(in);
protected B fromReference(Reference in) {
return href(in.getHref()).id(in.getId()).name(in.getName()).type(in.getType());
}
public B fromEntity(EntityType in) {
return href(in.getHref()).id(in.getId()).name(in.getName()).type(in.getType());
}
protected B fromAttributes(Map<String, String> attributes) {
return href(URI.create(attributes.get("href"))).id(attributes.get("id")).name(attributes.get("name")).type(attributes.get("type"));
}
}
@XmlAttribute(required = true)
private URI href;
@XmlAttribute
private String id;
@XmlAttribute
private String name;
@XmlAttribute
private String type;
protected Reference(Builder<?> builder) {
super(builder);
this.href = builder.href;
this.id = builder.id;
this.name = builder.name;
this.type = builder.type;
}
public Reference(URI href, String id, String name, String type) {
super(href, id, name, type);
protected Reference(URI href, String id, String name, String type) {
this.href = href;
this.id = id;
this.name = name;
this.type = type;
}
protected Reference() {
// For JAXB
}
/**
* Contains the URI to the entity.
* <p/>
* An object reference, expressed in URL format. Because this URL includes the object identifier
* portion of the id attribute value, it uniquely identifies the object, persists for the life of
* the object, and is never reused. The value of the href attribute is a reference to a view of
* the object, and can be used to access a representation of the object that is valid in a
* particular context. Although URLs have a well-known syntax and a well-understood
* interpretation, a client should treat each href as an opaque string. The rules that govern how
* the server constructs href strings might change in future releases.
*
* @return an opaque reference and should never be parsed
*/
public URI getHref() {
return href;
}
/**
* The resource identifier, expressed in URN format.
* <p/>
* The value of this attribute uniquely identifies the resource, persists for the life of the
* resource, and is never reused.
*/
public String getId() {
return id;
}
/**
* Contains the name of the the entity.
* <p/>
* The object type, specified as a MIME content type, of the object that the link references.
* This attribute is present only for links to objects. It is not present for links to actions.
*
* @return type definition, type, expressed as an HTTP Content-Type
*/
public String getName() {
return name;
}
/**
* Contains the type of the the entity.
* <p/>
* The object type, specified as a MIME content type, of the object that the link references.
* This attribute is present only for links to objects. It is not present for links to actions.
*
* @return type definition, type, expressed as an HTTP Content-Type
*/
public String getType() {
return type;
}
@Override
public boolean equals(Object o) {
if (this == o)
@ -73,10 +206,24 @@ public class Reference extends ReferenceType {
if (o == null || getClass() != o.getClass())
return false;
Reference that = Reference.class.cast(o);
return super.equals(that);
return equal(this.href, that.href) && equal(this.id, that.id) && equal(this.name, that.name) && equal(this.type, that.type);
}
public ReferenceType toAdminReference(String endpoint) {
@Override
public int hashCode() {
return Objects.hashCode(href, id, name, type);
}
@Override
public String toString() {
return string().toString();
}
protected ToStringHelper string() {
return Objects.toStringHelper("").add("href", href).add("id", id).add("name", name).add("type", type);
}
public Reference toAdminReference(String endpoint) {
return toBuilder()
.type(null)
.href(URI.create(getHref().toASCIIString().replace(endpoint, endpoint+"/admin")))

View File

@ -1,221 +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 CONDITIONS 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 java.net.URI;
import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import org.jclouds.logging.Logger;
import com.google.common.base.Objects;
import com.google.common.base.Objects.ToStringHelper;
/**
* A reference to a resource.
*
* Contains an href attribute and optional name and type attributes.
* <p>
* <pre>
* &lt;xs:complexType name="ReferenceType"&gt;
* </pre>
*
* @author grkvlt@apache.org
*/
@XmlAccessorType(XmlAccessType.FIELD)
public class ReferenceType {
@javax.annotation.Resource
protected static Logger logger = Logger.NULL;
public static Builder<?> builder() {
return new ConcreteBuilder();
}
public Builder<?> toBuilder() {
return builder().fromReferenceType(this);
}
private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
}
public static class Builder<B extends Builder<B>> {
private URI href;
private String id;
private String name;
private String type;
@SuppressWarnings("unchecked")
protected B self() {
return (B) this;
}
/**
* @see ReferenceType#getHref()
*/
public B href(URI href) {
this.href = href;
return self();
}
/**
* @see ReferenceType#getId()
*/
public B id(String id) {
this.id = id;
return self();
}
/**
* @see ReferenceType#getType()
*/
public B type(String type) {
this.type = type;
return self();
}
/**
* @see ReferenceType#getName()
*/
public B name(String name) {
this.name = name;
return self();
}
public ReferenceType build() {
return new ReferenceType(this);
}
protected B fromReferenceType(ReferenceType in) {
return href(in.getHref()).id(in.getId()).name(in.getName()).type(in.getType());
}
protected B fromAttributes(Map<String, String> attributes) {
return href(URI.create(attributes.get("href"))).id(attributes.get("id")).name(attributes.get("name")).type(attributes.get("type"));
}
}
@XmlAttribute(required = true)
private URI href;
@XmlAttribute
private String id;
@XmlAttribute
private String name;
@XmlAttribute
private String type;
protected ReferenceType(Builder<?> builder) {
this.href = builder.href;
this.id = builder.id;
this.name = builder.name;
this.type = builder.type;
}
protected ReferenceType(URI href, String id, String name, String type) {
this.href = href;
this.id = id;
this.name = name;
this.type = type;
}
protected ReferenceType() {
// For JAXB
}
/**
* Contains the URI to the entity.
* <p/>
* An object reference, expressed in URL format. Because this URL includes the object identifier
* portion of the id attribute value, it uniquely identifies the object, persists for the life of
* the object, and is never reused. The value of the href attribute is a reference to a view of
* the object, and can be used to access a representation of the object that is valid in a
* particular context. Although URLs have a well-known syntax and a well-understood
* interpretation, a client should treat each href as an opaque string. The rules that govern how
* the server constructs href strings might change in future releases.
*
* @return an opaque reference and should never be parsed
*/
public URI getHref() {
return href;
}
/**
* The resource identifier, expressed in URN format.
* <p/>
* The value of this attribute uniquely identifies the resource, persists for the life of the
* resource, and is never reused.
*/
public String getId() {
return id;
}
/**
* Contains the name of the the entity.
* <p/>
* The object type, specified as a MIME content type, of the object that the link references.
* This attribute is present only for links to objects. It is not present for links to actions.
*
* @return type definition, type, expressed as an HTTP Content-Type
*/
public String getName() {
return name;
}
/**
* Contains the type of the the entity.
* <p/>
* The object type, specified as a MIME content type, of the object that the link references.
* This attribute is present only for links to objects. It is not present for links to actions.
*
* @return type definition, type, expressed as an HTTP Content-Type
*/
public String getType() {
return type;
}
@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;
ReferenceType that = ReferenceType.class.cast(o);
return equal(this.href, that.href) && equal(this.id, that.id) && equal(this.name, that.name) && equal(this.type, that.type);
}
@Override
public int hashCode() {
return Objects.hashCode(href, id, name, type);
}
@Override
public String toString() {
return string().toString();
}
protected ToStringHelper string() {
return Objects.toStringHelper("").add("href", href).add("id", id).add("name", name).add("type", type);
}
}

View File

@ -86,9 +86,9 @@ public class RelocateParams {
* Gets the value of the datastore property.
*
* @return possible object is
* {@link ReferenceType }
* {@link Reference }
*/
public ReferenceType getDatastore() {
public Reference getDatastore() {
return datastore;
}

View File

@ -131,7 +131,7 @@ public class UsersList {
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link ReferenceType }
* {@link Reference }
*
*
*/

View File

@ -134,7 +134,7 @@ public class Vdcs {
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link ReferenceType }
* {@link Reference }
*
*
*/

View File

@ -27,7 +27,7 @@ import java.util.Set;
import javax.xml.bind.annotation.XmlElementRef;
import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
import org.jclouds.vcloud.director.v1_5.domain.ReferenceType;
import org.jclouds.vcloud.director.v1_5.domain.Reference;
import com.google.common.base.Objects;
import com.google.common.base.Objects.ToStringHelper;
@ -60,12 +60,12 @@ public class QueryResultReferences extends ContainerType {
public static class Builder<B extends Builder<B>> extends ContainerType.Builder<B> {
private Set<ReferenceType> references = Sets.newLinkedHashSet();
private Set<Reference> references = Sets.newLinkedHashSet();
/**
* @see QueryResultReferences#getReferences()
*/
public B references(Set<? extends ReferenceType> references) {
public B references(Set<? extends Reference> references) {
this.references = Sets.newLinkedHashSet(checkNotNull(references, "references"));
return self();
}
@ -73,7 +73,7 @@ public class QueryResultReferences extends ContainerType {
/**
* @see QueryResultReferences#getReferences()
*/
public B reference(ReferenceType reference) {
public B reference(Reference reference) {
this.references.add(reference);
return self();
}
@ -99,12 +99,12 @@ public class QueryResultReferences extends ContainerType {
// NOTE add other types as they are used. probably not the best way to do this.
@XmlElementRef
private Set<ReferenceType> references = Sets.newLinkedHashSet();
private Set<Reference> references = Sets.newLinkedHashSet();
/**
* Set of references representing query results.
*/
public Set<ReferenceType> getReferences() {
public Set<Reference> getReferences() {
return references;
}

View File

@ -0,0 +1,87 @@
/*
* 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 CONDITIONS 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.predicates;
import static com.google.common.base.Preconditions.checkNotNull;
import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
import org.jclouds.vcloud.director.v1_5.domain.Link;
import org.jclouds.vcloud.director.v1_5.domain.Reference;
import com.google.common.base.Predicate;
/**
* Predicates handy when working with Reference Types
*
* @author Adrian Cole
*/
public class ReferencePredicates {
/**
* matches references of the given name
*
* @param <T>
* type of the Reference, ex. {@link Link}
* @param name
* ex. {@code context.getApi().getCurrentSession().getOrg()}
* @return predicate that will match references of the given name
*/
public static <T extends Reference> Predicate<T> nameEquals(final String name) {
checkNotNull(name, "name must be defined");
return new Predicate<T>() {
@Override
public boolean apply(T reference) {
return name.equals(reference.getName());
}
@Override
public String toString() {
return "nameEquals(" + name + ")";
}
};
}
/**
* matches references of the given type
*
* @param <T>
* type of the Reference, ex. {@link Link}
* @param type
* ex. {@link VCloudDirectorMediaType#CATALOG}
* @return predicate that will match references of the given type
* @see VCloudDirectorMediaType
*/
public static <T extends Reference> Predicate<T> typeEquals(final String type) {
checkNotNull(type, "type must be defined");
return new Predicate<T>() {
@Override
public boolean apply(T reference) {
return type.equals(reference.getType());
}
@Override
public String toString() {
return "typeEquals(" + type + ")";
}
};
}
}

View File

@ -22,7 +22,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
import org.jclouds.vcloud.director.v1_5.domain.Link;
import org.jclouds.vcloud.director.v1_5.domain.ReferenceType;
import org.jclouds.vcloud.director.v1_5.domain.Reference;
import com.google.common.base.Predicate;
@ -43,7 +43,7 @@ public class ReferenceTypePredicates {
* ex. {@code context.getApi().getCurrentSession().getOrg()}
* @return predicate that will match references of the given name
*/
public static <T extends ReferenceType> Predicate<T> nameEquals(final String name) {
public static <T extends Reference> Predicate<T> nameEquals(final String name) {
checkNotNull(name, "name must be defined");
return new Predicate<T>() {
@ -69,7 +69,7 @@ public class ReferenceTypePredicates {
* @return predicate that will match references of the given type
* @see VCloudDirectorMediaType
*/
public static <T extends ReferenceType> Predicate<T> typeEquals(final String type) {
public static <T extends Reference> Predicate<T> typeEquals(final String type) {
checkNotNull(type, "type must be defined");
return new Predicate<T>() {

View File

@ -100,11 +100,11 @@ public class Checks {
*
* @see checkReferenceType(ReferenceType, Collection<String>)
*/
public static void checkReferenceType(ReferenceType reference) {
public static void checkReferenceType(Reference reference) {
checkReferenceType(reference, VCloudDirectorMediaType.ALL);
}
public static void checkReferenceType(ReferenceType reference, Collection<String> validTypes) {
public static void checkReferenceType(Reference reference, Collection<String> validTypes) {
// Check required fields
assertNotNull(reference.getHref(), String.format(NOT_NULL_OBJECT_FMT, "Href", "ReferenceType"));
@ -183,13 +183,13 @@ public class Checks {
// NOTE startTime cannot be checked
// NOTE endTime cannot be checked
// NOTE expiryTimecannot be checked
ReferenceType owner = task.getOwner();
Reference owner = task.getOwner();
if (owner != null) checkReferenceType(owner);
Error error = task.getError();
if (error != null) checkError(error);
ReferenceType user = task.getUser();
Reference user = task.getUser();
if (user != null) checkReferenceType(user);
ReferenceType org = task.getOrg();
Reference org = task.getOrg();
if (org != null) checkReferenceType(org);
Integer progress = task.getProgress();
if (progress != null) checkProgress(progress);

View File

@ -30,7 +30,6 @@ import org.jclouds.vcloud.director.v1_5.domain.Link;
import org.jclouds.vcloud.director.v1_5.domain.Owner;
import org.jclouds.vcloud.director.v1_5.domain.PublishCatalogParams;
import org.jclouds.vcloud.director.v1_5.domain.Reference;
import org.jclouds.vcloud.director.v1_5.domain.ReferenceType;
import org.jclouds.vcloud.director.v1_5.domain.Task;
import org.jclouds.vcloud.director.v1_5.internal.BaseVCloudDirectorRestClientExpectTest;
import org.testng.annotations.Test;
@ -88,8 +87,6 @@ public class AdminCatalogClientExpectTest extends BaseVCloudDirectorRestClientEx
AdminCatalog expected = catalog();
// assertEquals(client.getAdminCatalogClient().getCatalog(catalogRef.getHref()), expected);
AdminCatalog actual = client.getAdminCatalogClient().getCatalog(catalogRef.getHref());
assertEquals(actual.getHref(), expected.getHref());
assertEquals(actual.getLinks(), expected.getLinks());
@ -98,10 +95,13 @@ public class AdminCatalogClientExpectTest extends BaseVCloudDirectorRestClientEx
System.out.println(actual.getOwner());
System.out.println(expected.getOwner());
assertEquals(actual.getOwner().getUser(), expected.getOwner().getUser());
Reference actualUser = actual.getOwner().getUser();
Reference expectedUser = expected.getOwner().getUser();
assertEquals(actualUser, expectedUser);
assertEquals(actual.getOwner(), expected.getOwner());
assertEquals(client.getAdminCatalogClient().getCatalog(catalogRef.getHref()), expected);
}
@Test(enabled = false)//TODO

View File

@ -36,7 +36,6 @@ import org.jclouds.vcloud.director.v1_5.domain.Error;
import org.jclouds.vcloud.director.v1_5.domain.Owner;
import org.jclouds.vcloud.director.v1_5.domain.PublishCatalogParams;
import org.jclouds.vcloud.director.v1_5.domain.Reference;
import org.jclouds.vcloud.director.v1_5.domain.ReferenceType;
import org.jclouds.vcloud.director.v1_5.internal.BaseVCloudDirectorClientLiveTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@ -62,7 +61,7 @@ public class AdminCatalogClientLiveTest extends BaseVCloudDirectorClientLiveTest
/*
* Shared state between dependant tests.
*/
private ReferenceType orgRef;
private Reference orgRef;
private AdminCatalog catalog;
private Owner owner;

View File

@ -33,7 +33,7 @@ import org.jclouds.vcloud.director.v1_5.domain.OrgLeaseSettings;
import org.jclouds.vcloud.director.v1_5.domain.OrgPasswordPolicySettings;
import org.jclouds.vcloud.director.v1_5.domain.OrgSettings;
import org.jclouds.vcloud.director.v1_5.domain.OrgVAppTemplateLeaseSettings;
import org.jclouds.vcloud.director.v1_5.domain.ReferenceType;
import org.jclouds.vcloud.director.v1_5.domain.Reference;
import org.jclouds.vcloud.director.v1_5.domain.SmtpServerSettings;
import org.jclouds.vcloud.director.v1_5.internal.BaseVCloudDirectorClientLiveTest;
import org.testng.annotations.BeforeClass;
@ -60,7 +60,7 @@ public class AdminOrgClientLiveTest extends BaseVCloudDirectorClientLiveTest {
/*
* Shared state between dependant tests.
*/
private ReferenceType orgRef;
private Reference orgRef;
private OrgSettings settings, newSettings;
private OrgEmailSettings emailSettings, newEmailSettings;
private OrgGeneralSettings generalSettings, newGeneralSettings;

View File

@ -42,7 +42,6 @@ import org.jclouds.vcloud.director.v1_5.domain.Metadata;
import org.jclouds.vcloud.director.v1_5.domain.MetadataEntry;
import org.jclouds.vcloud.director.v1_5.domain.MetadataValue;
import org.jclouds.vcloud.director.v1_5.domain.Reference;
import org.jclouds.vcloud.director.v1_5.domain.ReferenceType;
import org.jclouds.vcloud.director.v1_5.domain.Task;
import org.jclouds.vcloud.director.v1_5.domain.query.CatalogReferences;
import org.jclouds.vcloud.director.v1_5.internal.BaseVCloudDirectorClientLiveTest;
@ -71,9 +70,9 @@ public class CatalogClientLiveTest extends BaseVCloudDirectorClientLiveTest {
* Shared state between dependant tests.
*/
private ReferenceType catalogRef;
private ReferenceType catalogItemRef;
private ReferenceType newCatalogItemRef;
private Reference catalogRef;
private Reference catalogItemRef;
private Reference newCatalogItemRef;
private CatalogType catalog;
private CatalogItem catalogItem;
private CatalogItem newCatalogItem;

View File

@ -35,7 +35,6 @@ import org.jclouds.vcloud.director.v1_5.domain.Checks;
import org.jclouds.vcloud.director.v1_5.domain.Error;
import org.jclouds.vcloud.director.v1_5.domain.Group;
import org.jclouds.vcloud.director.v1_5.domain.Reference;
import org.jclouds.vcloud.director.v1_5.domain.ReferenceType;
import org.jclouds.vcloud.director.v1_5.internal.BaseVCloudDirectorClientLiveTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@ -59,7 +58,7 @@ public class GroupClientLiveTest extends BaseVCloudDirectorClientLiveTest {
/*
* Shared state between dependant tests.
*/
private ReferenceType groupRef;
private Reference groupRef;
private Group group;
@Override

View File

@ -35,7 +35,7 @@ import org.jclouds.vcloud.director.v1_5.domain.Metadata;
import org.jclouds.vcloud.director.v1_5.domain.MetadataEntry;
import org.jclouds.vcloud.director.v1_5.domain.MetadataValue;
import org.jclouds.vcloud.director.v1_5.domain.OrgNetwork;
import org.jclouds.vcloud.director.v1_5.domain.ReferenceType;
import org.jclouds.vcloud.director.v1_5.domain.Reference;
import org.jclouds.vcloud.director.v1_5.internal.BaseVCloudDirectorClientLiveTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@ -76,7 +76,7 @@ public class NetworkClientLiveTest extends BaseVCloudDirectorClientLiveTest {
Checks.checkNetworkType(network);
// optional
ReferenceType networkPoolRef = network.getNetworkPool();
Reference networkPoolRef = network.getNetworkPool();
if (networkPoolRef != null) {
Checks.checkReferenceType(networkPoolRef);
}

View File

@ -32,7 +32,6 @@ import org.jclouds.vcloud.director.v1_5.VCloudDirectorException;
import org.jclouds.vcloud.director.v1_5.domain.Checks;
import org.jclouds.vcloud.director.v1_5.domain.Error;
import org.jclouds.vcloud.director.v1_5.domain.Reference;
import org.jclouds.vcloud.director.v1_5.domain.ReferenceType;
import org.jclouds.vcloud.director.v1_5.domain.User;
import org.jclouds.vcloud.director.v1_5.internal.BaseVCloudDirectorClientLiveTest;
import org.testng.annotations.BeforeClass;
@ -58,7 +57,7 @@ public class UserClientLiveTest extends BaseVCloudDirectorClientLiveTest {
/*
* Shared state between dependant tests.
*/
private ReferenceType orgRef;
private Reference orgRef;
private User user;
@Override

View File

@ -64,7 +64,6 @@ import org.jclouds.vcloud.director.v1_5.domain.ProductSectionList;
import org.jclouds.vcloud.director.v1_5.domain.RasdItemsList;
import org.jclouds.vcloud.director.v1_5.domain.RecomposeVAppParams;
import org.jclouds.vcloud.director.v1_5.domain.Reference;
import org.jclouds.vcloud.director.v1_5.domain.ReferenceType;
import org.jclouds.vcloud.director.v1_5.domain.RelocateParams;
import org.jclouds.vcloud.director.v1_5.domain.ResourceEntityType.Status;
import org.jclouds.vcloud.director.v1_5.domain.RuntimeInfoSection;
@ -805,7 +804,7 @@ public class VAppClientLiveTest extends BaseVCloudDirectorClientLiveTest {
.notPowerOn()
.description("Test VApp")
.instantiationParams(instantiationParams())
.source(ReferenceType.builder().href(vAppTemplateURI).build())
.source(Reference.builder().href(vAppTemplateURI).build())
.build();
// debug(instantiate);

View File

@ -36,7 +36,6 @@ import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
import org.jclouds.vcloud.director.v1_5.domain.Link;
import org.jclouds.vcloud.director.v1_5.domain.Org;
import org.jclouds.vcloud.director.v1_5.domain.Reference;
import org.jclouds.vcloud.director.v1_5.domain.ReferenceType;
import org.jclouds.vcloud.director.v1_5.domain.Session;
import org.jclouds.vcloud.director.v1_5.domain.Task;
import org.jclouds.vcloud.director.v1_5.predicates.ReferenceTypePredicates;
@ -155,7 +154,7 @@ public abstract class BaseVCloudDirectorClientLiveTest extends BaseVersionedServ
context.close();
}
public URI toAdminUri(ReferenceType ref) {
public URI toAdminUri(Reference ref) {
return toAdminUri(ref.getHref());
}

View File

@ -0,0 +1,55 @@
/**
* 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 CONDITIONS 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.predicates;
import java.net.URI;
import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
import org.jclouds.vcloud.director.v1_5.domain.Reference;
import org.testng.annotations.Test;
/**
*
* @author Adrian Cole
*/
@Test(groups = "unit", testName = "ReferencePredicatesTest")
public class ReferencePredicatesTest {
Reference ref = Reference.builder().type("application/vnd.vmware.vcloud.catalogItem+xml").name("image").href(
URI.create("https://vcloudbeta.bluelock.com/api/catalogItem/67a469a1-aafe-4b5b-bb31-a6202ad8961f")).build();
@Test
public void testNameEqualsWhenEqual() {
assert ReferencePredicates.<Reference> nameEquals("image").apply(ref);
}
@Test
public void testNameEqualsWhenNotEqual() {
assert !ReferencePredicates.<Reference> nameEquals("foo").apply(ref);
}
@Test
public void testTypeEqualsWhenEqual() {
assert ReferencePredicates.<Reference> typeEquals(VCloudDirectorMediaType.CATALOG_ITEM).apply(ref);
}
@Test
public void testTypeEqualsWhenNotEqual() {
assert !ReferencePredicates.<Reference> typeEquals("foo").apply(ref);
}
}