package de.escalon.hypermedia.sample.beans.store;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import de.escalon.hypermedia.hydra.mapping.Term;
import org.springframework.hateoas.ResourceSupport;
import org.springframework.hateoas.core.Relation;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Dietrich on 17.02.2015.
*/
@Term(define = "accessories", as = "isAccessoryOrSparePartFor", reverse = true)
@Relation("product")
public class Product extends ResourceSupport {
public final String name;
public final String productID;
private Offer offer;
public List<Product> accessories = new ArrayList<Product>();
public Offer getOffers() {
return offer;
}
@JsonCreator
public Product(@JsonProperty("name") String name, @JsonProperty("productID") String productID) {
this.name = name;
this.productID = productID;
}
public void addOffer(Offer offer) {
this.offer = offer;
}
public boolean hasExtra(String accessoryId) {
boolean ret = false;
for (Product accessory : accessories) {
if (accessory.productID.equals(accessoryId)) {
ret = true;
break;
}
}
return ret;
}
public void addAccessory(Product product) {
this.accessories.add(product);
}
}