Skip to content

Commit

Permalink
Merge pull request Azure#11 from christav/generic-list-result
Browse files Browse the repository at this point in the history
Using generic ListResult<T> as return type for all list<Entity> operations. Implementation for Azure#396
  • Loading branch information
Chris Tavares committed Nov 1, 2012
2 parents 6a41e3a + 259013a commit 0c94dc8
Show file tree
Hide file tree
Showing 15 changed files with 646 additions and 232 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
package com.microsoft.windowsazure.services.media;

import java.util.EnumSet;
import java.util.List;

import com.microsoft.windowsazure.services.core.FilterableService;
import com.microsoft.windowsazure.services.core.ServiceException;
Expand All @@ -27,11 +26,11 @@
import com.microsoft.windowsazure.services.media.models.ListAccessPolicyOptions;
import com.microsoft.windowsazure.services.media.models.ListAssetsOptions;
import com.microsoft.windowsazure.services.media.models.ListLocatorsOptions;
import com.microsoft.windowsazure.services.media.models.ListLocatorsResult;
import com.microsoft.windowsazure.services.media.models.ListMediaProcessorsOptions;
import com.microsoft.windowsazure.services.media.models.ListMediaProcessorsResult;
import com.microsoft.windowsazure.services.media.models.ListResult;
import com.microsoft.windowsazure.services.media.models.LocatorInfo;
import com.microsoft.windowsazure.services.media.models.LocatorType;
import com.microsoft.windowsazure.services.media.models.MediaProcessorInfo;
import com.microsoft.windowsazure.services.media.models.UpdateAssetOptions;
import com.microsoft.windowsazure.services.media.models.UpdateLocatorOptions;

Expand Down Expand Up @@ -88,7 +87,7 @@ public interface MediaContract extends FilterableService<MediaContract> {
* @throws ServiceException
* the service exception
*/
public List<AssetInfo> listAssets() throws ServiceException;
public ListResult<AssetInfo> listAssets() throws ServiceException;

/**
* List assets.
Expand All @@ -99,7 +98,7 @@ public interface MediaContract extends FilterableService<MediaContract> {
* @throws ServiceException
* the service exception
*/
public List<AssetInfo> listAssets(ListAssetsOptions listAssetsOptions) throws ServiceException;
public ListResult<AssetInfo> listAssets(ListAssetsOptions listAssetsOptions) throws ServiceException;

/**
* Update asset.
Expand Down Expand Up @@ -157,7 +156,7 @@ AccessPolicyInfo createAccessPolicy(String accessPolicyName, double durationInMi
* @throws ServiceException
* the service exception
*/
List<AccessPolicyInfo> listAccessPolicies() throws ServiceException;
ListResult<AccessPolicyInfo> listAccessPolicies() throws ServiceException;

/**
* List access policies.
Expand All @@ -168,7 +167,7 @@ AccessPolicyInfo createAccessPolicy(String accessPolicyName, double durationInMi
* @throws ServiceException
* the service exception
*/
List<AccessPolicyInfo> listAccessPolicies(ListAccessPolicyOptions options) throws ServiceException;
ListResult<AccessPolicyInfo> listAccessPolicies(ListAccessPolicyOptions options) throws ServiceException;

/**
* Creates the locator.
Expand Down Expand Up @@ -222,7 +221,7 @@ public LocatorInfo createLocator(String accessPolicyId, String assetId, LocatorT
* @throws ServiceException
* the service exception
*/
public ListLocatorsResult listLocators() throws ServiceException;
public ListResult<LocatorInfo> listLocators() throws ServiceException;

/**
* Delete locator.
Expand All @@ -244,7 +243,7 @@ public LocatorInfo createLocator(String accessPolicyId, String assetId, LocatorT
* @throws ServiceException
* the service exception
*/
public ListLocatorsResult listLocators(ListLocatorsOptions listLocatorOptions) throws ServiceException;
public ListResult<LocatorInfo> listLocators(ListLocatorsOptions listLocatorOptions) throws ServiceException;

/**
* Update locator.
Expand All @@ -265,7 +264,7 @@ public LocatorInfo createLocator(String accessPolicyId, String assetId, LocatorT
* @throws ServiceException
* the service exception
*/
public ListMediaProcessorsResult listMediaProcessors() throws ServiceException;
public ListResult<MediaProcessorInfo> listMediaProcessors() throws ServiceException;

/**
* List media processors.
Expand All @@ -276,7 +275,7 @@ public LocatorInfo createLocator(String accessPolicyId, String assetId, LocatorT
* @throws ServiceException
* the service exception
*/
public ListMediaProcessorsResult listMediaProcessors(ListMediaProcessorsOptions listMediaProcessorsOptions)
public ListResult<MediaProcessorInfo> listMediaProcessors(ListMediaProcessorsOptions listMediaProcessorsOptions)
throws ServiceException;

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
package com.microsoft.windowsazure.services.media.implementation;

import java.util.EnumSet;
import java.util.List;

import javax.inject.Inject;

Expand All @@ -35,11 +34,11 @@
import com.microsoft.windowsazure.services.media.models.ListAccessPolicyOptions;
import com.microsoft.windowsazure.services.media.models.ListAssetsOptions;
import com.microsoft.windowsazure.services.media.models.ListLocatorsOptions;
import com.microsoft.windowsazure.services.media.models.ListLocatorsResult;
import com.microsoft.windowsazure.services.media.models.ListMediaProcessorsOptions;
import com.microsoft.windowsazure.services.media.models.ListMediaProcessorsResult;
import com.microsoft.windowsazure.services.media.models.ListResult;
import com.microsoft.windowsazure.services.media.models.LocatorInfo;
import com.microsoft.windowsazure.services.media.models.LocatorType;
import com.microsoft.windowsazure.services.media.models.MediaProcessorInfo;
import com.microsoft.windowsazure.services.media.models.UpdateAssetOptions;
import com.microsoft.windowsazure.services.media.models.UpdateLocatorOptions;
import com.sun.jersey.api.client.ClientHandlerException;
Expand Down Expand Up @@ -167,7 +166,7 @@ public AssetInfo getAsset(String assetId) throws ServiceException {
* @see com.microsoft.windowsazure.services.media.MediaContract#listAssets()
*/
@Override
public List<AssetInfo> listAssets() throws ServiceException {
public ListResult<AssetInfo> listAssets() throws ServiceException {
try {
return service.listAssets();
}
Expand All @@ -183,7 +182,7 @@ public List<AssetInfo> listAssets() throws ServiceException {
* @see com.microsoft.windowsazure.services.media.MediaContract#listAssets(com.microsoft.windowsazure.services.media.models.ListAssetsOptions)
*/
@Override
public List<AssetInfo> listAssets(ListAssetsOptions listAssetsOptions) throws ServiceException {
public ListResult<AssetInfo> listAssets(ListAssetsOptions listAssetsOptions) throws ServiceException {
try {
return service.listAssets(listAssetsOptions);
}
Expand Down Expand Up @@ -232,7 +231,7 @@ public AccessPolicyInfo createAccessPolicy(String accessPolicyName, double durat
* @see com.microsoft.windowsazure.services.media.MediaContract#getAccessPolicies()
*/
@Override
public List<AccessPolicyInfo> listAccessPolicies() throws ServiceException {
public ListResult<AccessPolicyInfo> listAccessPolicies() throws ServiceException {
try {
return service.listAccessPolicies();
}
Expand Down Expand Up @@ -279,7 +278,7 @@ public AccessPolicyInfo getAccessPolicy(String accessPolicyId) throws ServiceExc
/* (non-Javadoc)
* @see com.microsoft.windowsazure.services.media.MediaContract#listAccessPolicies(com.microsoft.windowsazure.services.media.models.ListAccessPolicyOptions)
*/@Override
public List<AccessPolicyInfo> listAccessPolicies(ListAccessPolicyOptions options) throws ServiceException {
public ListResult<AccessPolicyInfo> listAccessPolicies(ListAccessPolicyOptions options) throws ServiceException {
try {
return service.listAccessPolicies(options);
}
Expand Down Expand Up @@ -361,7 +360,7 @@ public void updateLocator(String locatorId, UpdateLocatorOptions updateLocatorOp
* @see com.microsoft.windowsazure.services.media.MediaContract#listLocators()
*/
@Override
public ListLocatorsResult listLocators() throws ServiceException {
public ListResult<LocatorInfo> listLocators() throws ServiceException {
try {
return service.listLocators();
}
Expand All @@ -377,7 +376,7 @@ public ListLocatorsResult listLocators() throws ServiceException {
* @see com.microsoft.windowsazure.services.media.MediaContract#listLocators(com.microsoft.windowsazure.services.media.models.ListLocatorsOptions)
*/
@Override
public ListLocatorsResult listLocators(ListLocatorsOptions listLocatorsOptions) throws ServiceException {
public ListResult<LocatorInfo> listLocators(ListLocatorsOptions listLocatorsOptions) throws ServiceException {
try {
return service.listLocators(listLocatorsOptions);
}
Expand Down Expand Up @@ -410,7 +409,7 @@ public LocatorInfo createLocator(String accessPolicyId, String assetId, LocatorT
* @see com.microsoft.windowsazure.services.media.MediaContract#listMediaProcessors()
*/
@Override
public ListMediaProcessorsResult listMediaProcessors() throws ServiceException {
public ListResult<MediaProcessorInfo> listMediaProcessors() throws ServiceException {
try {
return service.listMediaProcessors();
}
Expand All @@ -426,7 +425,7 @@ public ListMediaProcessorsResult listMediaProcessors() throws ServiceException {
* @see com.microsoft.windowsazure.services.media.MediaContract#listMediaProcessors(com.microsoft.windowsazure.services.media.models.ListMediaProcessorsOptions)
*/
@Override
public ListMediaProcessorsResult listMediaProcessors(ListMediaProcessorsOptions listMediaProcessorsOptions)
public ListResult<MediaProcessorInfo> listMediaProcessors(ListMediaProcessorsOptions listMediaProcessorsOptions)
throws ServiceException {
try {
return service.listMediaProcessors(listMediaProcessorsOptions);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import java.net.URLEncoder;
import java.util.Arrays;
import java.util.EnumSet;
import java.util.List;

import javax.inject.Inject;
import javax.ws.rs.core.MediaType;
Expand All @@ -43,10 +42,9 @@
import com.microsoft.windowsazure.services.media.models.ListAccessPolicyOptions;
import com.microsoft.windowsazure.services.media.models.ListAssetsOptions;
import com.microsoft.windowsazure.services.media.models.ListLocatorsOptions;
import com.microsoft.windowsazure.services.media.models.ListLocatorsResult;
import com.microsoft.windowsazure.services.media.models.ListMediaProcessorsOptions;
import com.microsoft.windowsazure.services.media.models.ListMediaProcessorsResult;
import com.microsoft.windowsazure.services.media.models.ListOptions;
import com.microsoft.windowsazure.services.media.models.ListResult;
import com.microsoft.windowsazure.services.media.models.LocatorInfo;
import com.microsoft.windowsazure.services.media.models.LocatorType;
import com.microsoft.windowsazure.services.media.models.MediaProcessorInfo;
Expand Down Expand Up @@ -254,19 +252,19 @@ public AssetInfo getAsset(String assetId) throws ServiceException {
* @see com.microsoft.windowsazure.services.media.MediaContract#listAssets(com.microsoft.windowsazure.services.media.models.ListAssetsOptions)
*/
@Override
public List<AssetInfo> listAssets(ListAssetsOptions listAssetsOptions) {
public ListResult<AssetInfo> listAssets(ListAssetsOptions listAssetsOptions) {
WebResource resource = getResource("Assets", listAssetsOptions);

return resource.type(MediaType.APPLICATION_ATOM_XML).accept(MediaType.APPLICATION_ATOM_XML)
.get(new GenericType<List<AssetInfo>>() {
.get(new GenericType<ListResult<AssetInfo>>() {
});
}

/* (non-Javadoc)
* @see com.microsoft.windowsazure.services.media.MediaContract#listAssets()
*/
@Override
public List<AssetInfo> listAssets() {
public ListResult<AssetInfo> listAssets() {
ListAssetsOptions listAssetsOptions = new ListAssetsOptions();
return listAssets(listAssetsOptions);
}
Expand Down Expand Up @@ -331,19 +329,19 @@ public void deleteAccessPolicy(String accessPolicyId) throws ServiceException {
* @see com.microsoft.windowsazure.services.media.MediaContract#listAccessPolicies()
*/
@Override
public List<AccessPolicyInfo> listAccessPolicies() throws ServiceException {
public ListResult<AccessPolicyInfo> listAccessPolicies() throws ServiceException {
return listAccessPolicies(null);
}

/* (non-Javadoc)
* @see com.microsoft.windowsazure.services.media.MediaContract#listAccessPolicies()
*/
@Override
public List<AccessPolicyInfo> listAccessPolicies(ListAccessPolicyOptions options) throws ServiceException {
public ListResult<AccessPolicyInfo> listAccessPolicies(ListAccessPolicyOptions options) throws ServiceException {
WebResource resource = getResource("AccessPolicies", options);

return resource.type(MediaType.APPLICATION_ATOM_XML).accept(MediaType.APPLICATION_ATOM_XML)
.get(new GenericType<List<AccessPolicyInfo>>() {
.get(new GenericType<ListResult<AccessPolicyInfo>>() {
});
}

Expand Down Expand Up @@ -396,24 +394,20 @@ public LocatorInfo getLocator(String locatorId) throws ServiceException {
* @see com.microsoft.windowsazure.services.media.MediaContract#listLocators()
*/
@Override
public ListLocatorsResult listLocators() {
public ListResult<LocatorInfo> listLocators() {
return listLocators(null);
}

/* (non-Javadoc)
* @see com.microsoft.windowsazure.services.media.MediaContract#listLocators(com.microsoft.windowsazure.services.media.models.ListLocatorsOptions)
*/
@Override
public ListLocatorsResult listLocators(ListLocatorsOptions listLocatorOptions) {
public ListResult<LocatorInfo> listLocators(ListLocatorsOptions listLocatorOptions) {
WebResource resource = getResource("Locators", listLocatorOptions);

List<LocatorInfo> locatorInfoList = resource.type(MediaType.APPLICATION_ATOM_XML)
.accept(MediaType.APPLICATION_ATOM_XML).get(new GenericType<List<LocatorInfo>>() {
return resource.type(MediaType.APPLICATION_ATOM_XML).accept(MediaType.APPLICATION_ATOM_XML)
.get(new GenericType<ListResult<LocatorInfo>>() {
});
ListLocatorsResult listLocatorsResult = new ListLocatorsResult();
listLocatorsResult.setLocatorInfos(locatorInfoList);
return listLocatorsResult;

}

/* (non-Javadoc)
Expand Down Expand Up @@ -449,23 +443,20 @@ public void updateLocator(String locatorId, UpdateLocatorOptions updateLocatorOp
* @see com.microsoft.windowsazure.services.media.MediaContract#listMediaProcessors()
*/
@Override
public ListMediaProcessorsResult listMediaProcessors() {
public ListResult<MediaProcessorInfo> listMediaProcessors() {
return this.listMediaProcessors(null);
}

/* (non-Javadoc)
* @see com.microsoft.windowsazure.services.media.MediaContract#listMediaProcessors(com.microsoft.windowsazure.services.media.models.ListMediaProcessorsOptions)
*/
@Override
public ListMediaProcessorsResult listMediaProcessors(ListMediaProcessorsOptions listMediaProcessorsOptions) {
public ListResult<MediaProcessorInfo> listMediaProcessors(ListMediaProcessorsOptions listMediaProcessorsOptions) {
WebResource resource = getResource("MediaProcessors", listMediaProcessorsOptions);

List<MediaProcessorInfo> mediaProcessorInfoList = resource.type(MediaType.APPLICATION_ATOM_XML)
.accept(MediaType.APPLICATION_ATOM_XML).get(new GenericType<List<MediaProcessorInfo>>() {
return resource.type(MediaType.APPLICATION_ATOM_XML).accept(MediaType.APPLICATION_ATOM_XML)
.get(new GenericType<ListResult<MediaProcessorInfo>>() {
});
ListMediaProcessorsResult listMediaProcessorsResult = new ListMediaProcessorsResult();
listMediaProcessorsResult.setMediaProcessorInfos(mediaProcessorInfoList);
return listMediaProcessorsResult;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import com.microsoft.windowsazure.services.media.implementation.content.AssetType;
import com.microsoft.windowsazure.services.media.implementation.content.Constants;
import com.microsoft.windowsazure.services.media.implementation.content.ODataActionType;
import com.microsoft.windowsazure.services.media.models.ListResult;

/**
* This class implements unmarshalling from OData over Atom into Java
Expand Down Expand Up @@ -74,7 +75,7 @@ public ODataAtomUnmarshaller() throws JAXBException {
* @throws JAXBException
* @throws ServiceException
*/
public <T extends ODataEntity> List<T> unmarshalFeed(InputStream stream, Class<T> contentType)
public <T extends ODataEntity> ListResult<T> unmarshalFeed(InputStream stream, Class<T> contentType)
throws JAXBException, ServiceException {
validateNotNull(stream, "stream");
validateNotNull(contentType, "contentType");
Expand All @@ -89,7 +90,7 @@ public <T extends ODataEntity> List<T> unmarshalFeed(InputStream stream, Class<T
entries.add(contentFromEntry(contentType, marshallingContentType, entry));
}
}
return entries;
return new ListResult<T>(entries);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.List;

import javax.xml.bind.JAXBElement;

import com.microsoft.windowsazure.services.media.implementation.atom.ContentType;
import com.microsoft.windowsazure.services.media.implementation.atom.EntryType;
import com.microsoft.windowsazure.services.media.implementation.content.Constants;
import com.microsoft.windowsazure.services.media.models.ListResult;

/**
* Class wrapping deserialized OData entities. Allows easy
Expand Down Expand Up @@ -86,7 +86,7 @@ public static boolean isODataEntityType(Class<?> type) {
* @return true if it's List&lt;OEntity> or derive from.
*/
public static boolean isODataEntityCollectionType(Class<?> type, Type genericType) {
if (List.class != type) {
if (ListResult.class != type) {
return false;
}

Expand Down
Loading

0 comments on commit 0c94dc8

Please sign in to comment.