Allow descriptors to be added using a List in addition to varags

Closes gh-242
This commit is contained in:
Andy Wilkinson
2016-05-23 16:10:47 +01:00
parent 117e8ec096
commit 65e55ac15c
8 changed files with 154 additions and 27 deletions

View File

@@ -70,10 +70,21 @@ public class RequestHeadersSnippet extends AbstractHeadersSnippet {
* @param additionalDescriptors the additional descriptors
* @return the new snippet
*/
public RequestHeadersSnippet and(HeaderDescriptor... additionalDescriptors) {
List<HeaderDescriptor> combinedDescriptors = new ArrayList<>();
combinedDescriptors.addAll(this.getHeaderDescriptors());
combinedDescriptors.addAll(Arrays.asList(additionalDescriptors));
public final RequestHeadersSnippet and(HeaderDescriptor... additionalDescriptors) {
return and(Arrays.asList(additionalDescriptors));
}
/**
* Returns a new {@code RequestHeadersSnippet} configured with this snippet's
* attributes and its descriptors combined with the given
* {@code additionalDescriptors}.
* @param additionalDescriptors the additional descriptors
* @return the new snippet
*/
public final RequestHeadersSnippet and(List<HeaderDescriptor> additionalDescriptors) {
List<HeaderDescriptor> combinedDescriptors = new ArrayList<>(
this.getHeaderDescriptors());
combinedDescriptors.addAll(additionalDescriptors);
return new RequestHeadersSnippet(combinedDescriptors, getAttributes());
}

View File

@@ -71,9 +71,21 @@ public class ResponseHeadersSnippet extends AbstractHeadersSnippet {
* @return the new snippet
*/
public final ResponseHeadersSnippet and(HeaderDescriptor... additionalDescriptors) {
List<HeaderDescriptor> combinedDescriptors = new ArrayList<>();
combinedDescriptors.addAll(this.getHeaderDescriptors());
combinedDescriptors.addAll(Arrays.asList(additionalDescriptors));
return and(Arrays.asList(additionalDescriptors));
}
/**
* Returns a new {@code ResponseHeadersSnippet} configured with this snippet's
* attributes and its descriptors combined with the given
* {@code additionalDescriptors}.
* @param additionalDescriptors the additional descriptors
* @return the new snippet
*/
public final ResponseHeadersSnippet and(
List<HeaderDescriptor> additionalDescriptors) {
List<HeaderDescriptor> combinedDescriptors = new ArrayList<>(
this.getHeaderDescriptors());
combinedDescriptors.addAll(additionalDescriptors);
return new ResponseHeadersSnippet(combinedDescriptors, getAttributes());
}

View File

@@ -249,10 +249,21 @@ public class LinksSnippet extends TemplatedSnippet {
* @param additionalDescriptors the additional descriptors
* @return the new snippet
*/
public LinksSnippet and(LinkDescriptor... additionalDescriptors) {
List<LinkDescriptor> combinedDescriptors = new ArrayList<>();
combinedDescriptors.addAll(this.descriptorsByRel.values());
combinedDescriptors.addAll(Arrays.asList(additionalDescriptors));
public final LinksSnippet and(LinkDescriptor... additionalDescriptors) {
return and(Arrays.asList(additionalDescriptors));
}
/**
* Returns a new {@code RequestHeadersSnippet} configured with this snippet's link
* extractor and attributes, and its descriptors combined with the given
* {@code additionalDescriptors}.
* @param additionalDescriptors the additional descriptors
* @return the new snippet
*/
public final LinksSnippet and(List<LinkDescriptor> additionalDescriptors) {
List<LinkDescriptor> combinedDescriptors = new ArrayList<>(
this.descriptorsByRel.values());
combinedDescriptors.addAll(additionalDescriptors);
return new LinksSnippet(this.linkExtractor, combinedDescriptors, getAttributes());
}

View File

@@ -107,7 +107,19 @@ public class RequestFieldsSnippet extends AbstractFieldsSnippet {
* @param additionalDescriptors the additional descriptors
* @return the new snippet
*/
public RequestFieldsSnippet and(FieldDescriptor... additionalDescriptors) {
public final RequestFieldsSnippet and(FieldDescriptor... additionalDescriptors) {
return andWithPrefix("", additionalDescriptors);
}
/**
* Returns a new {@code RequestFieldsSnippet} configured with this snippet's
* attributes and its descriptors combined with the given
* {@code additionalDescriptors}.
*
* @param additionalDescriptors the additional descriptors
* @return the new snippet
*/
public final RequestFieldsSnippet and(List<FieldDescriptor> additionalDescriptors) {
return andWithPrefix("", additionalDescriptors);
}
@@ -121,7 +133,7 @@ public class RequestFieldsSnippet extends AbstractFieldsSnippet {
* @param additionalDescriptors the additional descriptors
* @return the new snippet
*/
public RequestFieldsSnippet andWithPrefix(String pathPrefix,
public final RequestFieldsSnippet andWithPrefix(String pathPrefix,
FieldDescriptor... additionalDescriptors) {
List<FieldDescriptor> combinedDescriptors = new ArrayList<>();
combinedDescriptors.addAll(getFieldDescriptors());
@@ -130,4 +142,22 @@ public class RequestFieldsSnippet extends AbstractFieldsSnippet {
return new RequestFieldsSnippet(combinedDescriptors, this.getAttributes());
}
/**
* Returns a new {@code RequestFieldsSnippet} configured with this snippet's
* attributes and its descriptors combined with the given
* {@code additionalDescriptors}. The given {@code pathPrefix} is applied to the path
* of each additional descriptor.
*
* @param pathPrefix the prefix to apply to the additional descriptors
* @param additionalDescriptors the additional descriptors
* @return the new snippet
*/
public final RequestFieldsSnippet andWithPrefix(String pathPrefix,
List<FieldDescriptor> additionalDescriptors) {
List<FieldDescriptor> combinedDescriptors = new ArrayList<>(
getFieldDescriptors());
combinedDescriptors.addAll(applyPathPrefix(pathPrefix, additionalDescriptors));
return new RequestFieldsSnippet(combinedDescriptors, this.getAttributes());
}
}

View File

@@ -108,7 +108,19 @@ public class ResponseFieldsSnippet extends AbstractFieldsSnippet {
* @param additionalDescriptors the additional descriptors
* @return the new snippet
*/
public ResponseFieldsSnippet and(FieldDescriptor... additionalDescriptors) {
public final ResponseFieldsSnippet and(FieldDescriptor... additionalDescriptors) {
return andWithPrefix("", additionalDescriptors);
}
/**
* Returns a new {@code ResponseFieldsSnippet} configured with this snippet's
* attributes and its descriptors combined with the given
* {@code additionalDescriptors}.
*
* @param additionalDescriptors the additional descriptors
* @return the new snippet
*/
public final ResponseFieldsSnippet and(List<FieldDescriptor> additionalDescriptors) {
return andWithPrefix("", additionalDescriptors);
}
@@ -122,7 +134,7 @@ public class ResponseFieldsSnippet extends AbstractFieldsSnippet {
* @param additionalDescriptors the additional descriptors
* @return the new snippet
*/
public ResponseFieldsSnippet andWithPrefix(String pathPrefix,
public final ResponseFieldsSnippet andWithPrefix(String pathPrefix,
FieldDescriptor... additionalDescriptors) {
List<FieldDescriptor> combinedDescriptors = new ArrayList<>();
combinedDescriptors.addAll(getFieldDescriptors());
@@ -131,4 +143,22 @@ public class ResponseFieldsSnippet extends AbstractFieldsSnippet {
return new ResponseFieldsSnippet(combinedDescriptors, this.getAttributes());
}
/**
* Returns a new {@code ResponseFieldsSnippet} configured with this snippet's
* attributes and its descriptors combined with the given
* {@code additionalDescriptors}. The given {@code pathPrefix} is applied to the path
* of each additional descriptor.
*
* @param pathPrefix the prefix to apply to the additional descriptors
* @param additionalDescriptors the additional descriptors
* @return the new snippet
*/
public final ResponseFieldsSnippet andWithPrefix(String pathPrefix,
List<FieldDescriptor> additionalDescriptors) {
List<FieldDescriptor> combinedDescriptors = new ArrayList<>(
getFieldDescriptors());
combinedDescriptors.addAll(applyPathPrefix(pathPrefix, additionalDescriptors));
return new ResponseFieldsSnippet(combinedDescriptors, this.getAttributes());
}
}

View File

@@ -165,10 +165,22 @@ public class PathParametersSnippet extends AbstractParametersSnippet {
* @param additionalDescriptors the additional descriptors
* @return the new snippet
*/
public PathParametersSnippet and(ParameterDescriptor... additionalDescriptors) {
List<ParameterDescriptor> combinedDescriptors = new ArrayList<>();
combinedDescriptors.addAll(getParameterDescriptors().values());
combinedDescriptors.addAll(Arrays.asList(additionalDescriptors));
public final PathParametersSnippet and(ParameterDescriptor... additionalDescriptors) {
return and(Arrays.asList(additionalDescriptors));
}
/**
* Returns a new {@code PathParametersSnippet} configured with this snippet's
* attributes and its descriptors combined with the given
* {@code additionalDescriptors}.
* @param additionalDescriptors the additional descriptors
* @return the new snippet
*/
public final PathParametersSnippet and(
List<ParameterDescriptor> additionalDescriptors) {
List<ParameterDescriptor> combinedDescriptors = new ArrayList<>(
getParameterDescriptors().values());
combinedDescriptors.addAll(additionalDescriptors);
return new PathParametersSnippet(combinedDescriptors, this.getAttributes());
}

View File

@@ -129,9 +129,20 @@ public class RequestParametersSnippet extends AbstractParametersSnippet {
* @return the new snippet
*/
public RequestParametersSnippet and(ParameterDescriptor... additionalDescriptors) {
List<ParameterDescriptor> combinedDescriptors = new ArrayList<>();
combinedDescriptors.addAll(getParameterDescriptors().values());
combinedDescriptors.addAll(Arrays.asList(additionalDescriptors));
return and(Arrays.asList(additionalDescriptors));
}
/**
* Returns a new {@code RequestParametersSnippet} configured with this snippet's
* attributes and its descriptors combined with the given
* {@code additionalDescriptors}.
* @param additionalDescriptors the additional descriptors
* @return the new snippet
*/
public RequestParametersSnippet and(List<ParameterDescriptor> additionalDescriptors) {
List<ParameterDescriptor> combinedDescriptors = new ArrayList<>(
getParameterDescriptors().values());
combinedDescriptors.addAll(additionalDescriptors);
return new RequestParametersSnippet(combinedDescriptors, this.getAttributes());
}

View File

@@ -115,14 +115,24 @@ public class RequestPartsSnippet extends TemplatedSnippet {
/**
* Returns a new {@code RequestPartsSnippet} configured with this snippet's attributes
* and its descriptors combined with the given {@code additionalDescriptors}.
*
* @param additionalDescriptors the additional descriptors
* @return the new snippet
*/
public RequestPartsSnippet and(RequestPartDescriptor... additionalDescriptors) {
List<RequestPartDescriptor> combinedDescriptors = new ArrayList<>();
combinedDescriptors.addAll(this.descriptorsByName.values());
combinedDescriptors.addAll(Arrays.asList(additionalDescriptors));
public final RequestPartsSnippet and(RequestPartDescriptor... additionalDescriptors) {
return and(Arrays.asList(additionalDescriptors));
}
/**
* Returns a new {@code RequestPartsSnippet} configured with this snippet's attributes
* and its descriptors combined with the given {@code additionalDescriptors}.
* @param additionalDescriptors the additional descriptors
* @return the new snippet
*/
public final RequestPartsSnippet and(
List<RequestPartDescriptor> additionalDescriptors) {
List<RequestPartDescriptor> combinedDescriptors = new ArrayList<>(
this.descriptorsByName.values());
combinedDescriptors.addAll(additionalDescriptors);
return new RequestPartsSnippet(combinedDescriptors, this.getAttributes());
}