public static final class Resource.Builder
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private java.util.Set<Resource.Builder> |
childResourceBuilders |
private java.util.List<Resource.Data> |
childResources |
private boolean |
extended |
private java.util.Set<java.lang.Class<?>> |
handlerClasses |
private java.util.Set<java.lang.Object> |
handlerInstances |
private java.util.Set<ResourceMethod.Builder> |
methodBuilders |
private java.util.List<java.lang.String> |
names |
private Resource.Builder |
parentResource |
private java.lang.String |
path |
private java.util.List<ResourceMethod.Data> |
resourceMethods |
private ResourceMethod.Data |
subResourceLocator |
Modifier | Constructor and Description |
---|---|
private |
Builder() |
private |
Builder(Resource.Builder parentResource) |
private |
Builder(java.lang.String path) |
private |
Builder(java.lang.String path,
Resource.Builder parentResource) |
Modifier and Type | Method and Description |
---|---|
void |
addChildResource(Resource resource)
Add an existing Resource as a child resource of current resource.
|
Resource.Builder |
addChildResource(java.lang.String relativePath)
Add a new child resource to the resource.
|
ResourceMethod.Builder |
addMethod()
Add a new arbitrary method model to the resource.
|
ResourceMethod.Builder |
addMethod(ResourceMethod resourceMethod)
Add a new method model that is a copy of the given
resourceMethod . |
ResourceMethod.Builder |
addMethod(java.lang.String httpMethod)
Add a new method model to the resource for processing requests of
the specified HTTP method.
|
private boolean |
areAllMembersExtended(java.util.List<Resource.Data> mergedChildResources) |
Resource |
build()
Build a new resource model.
|
private Resource.Data |
buildResourceData() |
Resource.Builder |
extended(boolean extended)
Set the flag indicating whether the resource is extended or is a core of exposed RESTful API.
|
private boolean |
isEmpty() |
(package private) boolean |
isExtended()
Get the flag indicating whether the resource method is extended or is a core of exposed RESTful API.
|
private java.util.List<Resource.Data> |
mergeResources(java.util.List<Resource.Data> resources) |
Resource.Builder |
mergeWith(Resource.Builder resourceBuilder)
Merge methods from a given resource model builder into this resource model
builder.
|
private Resource.Builder |
mergeWith(Resource.Data resourceData) |
Resource.Builder |
mergeWith(Resource resource)
Merge methods from a given resource model into this resource model builder.
|
Resource.Builder |
name(java.lang.String name)
Define a new name of the built resource.
|
private void |
onBuildChildResource(Resource.Builder childResourceBuilder,
Resource.Data childResourceData) |
(package private) void |
onBuildMethod(ResourceMethod.Builder builder,
ResourceMethod.Data methodData)
Called when a new resource, sub-resource and sub-resource locator method
was built and should be registered with the resource builder.
|
Resource.Builder |
path(java.lang.String path)
Define a new path for the built resource.
|
private void |
processChildResourceBuilders() |
private void |
processMethodBuilders() |
void |
replaceChildResource(Resource replacedResource,
Resource newResource)
Replace an existing child resource with a newly supplied one.
|
private java.lang.String |
shortToString() |
java.lang.String |
toString() |
ResourceMethod.Builder |
updateMethod(ResourceMethod resourceMethod)
Get a method builder for an existing resource method.
|
private java.util.List<java.lang.String> names
private java.lang.String path
private final java.util.Set<ResourceMethod.Builder> methodBuilders
private final java.util.Set<Resource.Builder> childResourceBuilders
private final java.util.List<Resource.Data> childResources
private final java.util.List<ResourceMethod.Data> resourceMethods
private ResourceMethod.Data subResourceLocator
private final java.util.Set<java.lang.Class<?>> handlerClasses
private final java.util.Set<java.lang.Object> handlerInstances
private final Resource.Builder parentResource
private boolean extended
private Builder(Resource.Builder parentResource)
private Builder(java.lang.String path)
private Builder(java.lang.String path, Resource.Builder parentResource)
private Builder()
private boolean isEmpty()
public Resource.Builder name(java.lang.String name)
name
- new name of the resource.Resource.getName()
public Resource.Builder path(java.lang.String path)
path
- new path for the resource.public ResourceMethod.Builder addMethod(java.lang.String httpMethod)
build()
method on the method builder after setting all the data. This will be
done automatically when the resource is built.httpMethod
- HTTP method that will be processed by the method.public ResourceMethod.Builder addMethod()
build()
method on the method builder after setting all the data. This will be
done automatically when the resource is built.public ResourceMethod.Builder addMethod(ResourceMethod resourceMethod)
resourceMethod
.
The returned builder is automatically bound to the the resource. It is
not necessary to invoke the build()
method on the method builder after setting all the data. This will be
done automatically when the resource is built.resourceMethod
- The resource method based on which the new method builder
should be created.public ResourceMethod.Builder updateMethod(ResourceMethod resourceMethod)
resourceMethod
- The resource method to be replaced by a builder.java.lang.IllegalArgumentException
- in case the method to be updated is not registered
in this resource builder.public Resource.Builder addChildResource(java.lang.String relativePath)
build()
method on the resource builder after setting all the data. This will be
done automatically when the resource is built.relativePath
- The path of the new child resource relative to this resource.java.lang.IllegalStateException
- in case the child resource for this path exists already.public void addChildResource(Resource resource)
resource
- Resource to be added as child resource.public void replaceChildResource(Resource replacedResource, Resource newResource)
replacedResource
- old resource to be replaced.newResource
- new resource to add.java.lang.IllegalArgumentException
- in case there is no such child resource to be replaced.public Resource.Builder mergeWith(Resource resource)
resource
- to be merged into this resource model builder.public Resource.Builder extended(boolean extended)
Resource.isExtended()
.
Extended resource model components are helper components that are not considered as a core of a
RESTful API. These can be for example OPTIONS
resource methods
added by model processors
or application.wadl
resource producing the WADL. Both resource are rather supportive
than the core of RESTful API.
If not set the resource will not be defined as extended by default.
extended
- If true
then resource is marked as extended.ExtendedResource
boolean isExtended()
true
if the method is extended.private Resource.Builder mergeWith(Resource.Data resourceData)
public Resource.Builder mergeWith(Resource.Builder resourceBuilder)
NOTE: Any "open" method builders in the supplied resourceBuilder
that have
not been explicitly converted to method models
will be closed as part of this merge operation
before merging the resource builder instances.
resourceBuilder
- to be merged into this resource model builder.void onBuildMethod(ResourceMethod.Builder builder, ResourceMethod.Data methodData)
This is a friend call-back API exposed for a use by a ResourceMethod.Builder
.
builder
- builder instance that built the method.methodData
- new resource, sub-resource or sub-resource locatorprivate void onBuildChildResource(Resource.Builder childResourceBuilder, Resource.Data childResourceData)
private java.util.List<Resource.Data> mergeResources(java.util.List<Resource.Data> resources)
private Resource.Data buildResourceData()
private boolean areAllMembersExtended(java.util.List<Resource.Data> mergedChildResources)
public Resource build()
private void processMethodBuilders()
private void processChildResourceBuilders()
public java.lang.String toString()
toString
in class java.lang.Object
private java.lang.String shortToString()