/**
* Copyright (c) 2013-2016, The SeedStack authors <http://seedstack.org>
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package org.seedstack.seed.rest.jersey2.fixtures;
import org.seedstack.seed.rest.RelRegistry;
import org.seedstack.seed.rest.hal.HalBuilder;
import org.seedstack.seed.rest.hal.HalDefaultRepresentation;
import org.seedstack.seed.rest.hal.HalRepresentation;
import java.util.ArrayList;
import java.util.List;
public class RepresentationFactory {
private final RelRegistry relRegistry;
public RepresentationFactory(RelRegistry relRegistry) {
this.relRegistry = relRegistry;
}
public HalDefaultRepresentation createOrders() {
OrdersRepresentation orders = new OrdersRepresentation(14, 20);
List<HalRepresentation> embedded = new ArrayList<>();
embedded.add(HalBuilder.create(new OrderRepresentation(30.00f, "USD", "shipped"))
.self(relRegistry.uri(OrdersResource.ORDER_REL).set("id", 123))
.link(BasketsResource.REL_BASKET, relRegistry.uri(BasketsResource.REL_BASKET).set("id", "98712"))
.link(CustomersResource.REL_CUSTOMER, relRegistry.uri(CustomersResource.REL_CUSTOMER).set("id", "7809")));
embedded.add(HalBuilder.create(new OrderRepresentation(20.00f, "USD", "processing"))
.self(relRegistry.uri(OrdersResource.ORDER_REL).set("id", "124"))
.link(BasketsResource.REL_BASKET, relRegistry.uri(BasketsResource.REL_BASKET).set("id", "97213"))
.link(CustomersResource.REL_CUSTOMER, relRegistry.uri(CustomersResource.REL_CUSTOMER).set("id", "12369")));
return (HalDefaultRepresentation) HalBuilder.create(orders)
.link("self", relRegistry.uri(OrdersResource.ORDERS_REL))
.link("next", relRegistry.uri(OrdersResource.ORDERS_REL).set("page", "2"))
.link("find", relRegistry.uri(OrdersResource.ORDER_REL).templated())
.embedded("orders", embedded);
}
}