/*
* Copyright (c) 2015. Escalon System-Entwicklung, Dietrich Schulten
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for
* the specific language governing permissions and limitations under the License.
*/
package de.escalon.hypermedia.spring.uber;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import org.springframework.http.MediaType;
import java.util.List;
@JsonInclude(Include.NON_NULL)
@JsonPropertyOrder({"id", "name", "rel", "url", "action", "transclude", "model", "sending", "accepting", "value",
"data"})
public class UberNode extends AbstractUberNode {
@JsonSerialize(using = NullValueSerializer.class)
static class NullValue {
}
/**
* Uses {@link NullValueSerializer} to render undefined values as null.
*/
public static final NullValue NULL_VALUE = new NullValue();
private String id;
private String name;
private List<String> rel;
private String url;
private UberAction action;
/**
* Defines if the {@link #url} content should be embedded within the currently loaded document or treated as a
* navigation to a new document. Default is false (navigate).
*/
private Boolean transclude;
/**
* If set to true the value of the url property SHOULD be treated as a URI Template per [RFC6570]. The default value
* is false.
*/
private Boolean templated;
/**
* RFC6570 URI template
*/
private String model;
/**
* Default is formUrlEncoded
*/
private List<MediaType> sending;
/**
* Default is the mediatype of this data.
*/
private List<MediaType> accepting;// = Arrays.asList(mediaType);
/**
* One of number, string, false, true, null
*/
private Object value;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<String> getRel() {
return rel;
}
public void setRel(List<String> rel) {
this.rel = rel;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public UberAction getAction() {
return action;
}
public void setAction(UberAction action) {
this.action = action;
}
public Boolean isTransclude() {
return transclude;
}
public void setTransclude(Boolean transclude) {
this.transclude = transclude;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public List<MediaType> getSending() {
return sending;
}
public void setSending(List<MediaType> sending) {
this.sending = sending;
}
public List<MediaType> getAccepting() {
return accepting;
}
public void setAccepting(List<MediaType> accepting) {
this.accepting = accepting;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
public void setTemplated(Boolean templated) {
this.templated = templated;
}
public Boolean getTemplated() {
return templated;
}
@Override
public String toString() {
return "UberNode{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", rel=" + rel +
", url='" + url + '\'' +
", action=" + action +
", transclude=" + transclude +
", templated=" + templated +
", model='" + model + '\'' +
", sending=" + sending +
", accepting=" + accepting +
", value=" + value +
'}';
}
}