39 lines
925 B
Java
39 lines
925 B
Java
package tk.antoine.roux.domain.model;
|
|
|
|
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
|
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
|
|
import tk.antoine.roux.domain.Resource;
|
|
|
|
@JsonAutoDetect(creatorVisibility = Visibility.ANY, fieldVisibility = Visibility.ANY)
|
|
public final class Node implements Resource {
|
|
private static final String NOT_DEFINED_NAME = "#NotDefined";
|
|
private final String name;
|
|
|
|
private Node(String name) {
|
|
this.name = name;
|
|
}
|
|
|
|
public String name() {
|
|
return name;
|
|
}
|
|
|
|
public static NodeBuilder builder() {
|
|
return new NodeBuilder();
|
|
}
|
|
|
|
public static class NodeBuilder {
|
|
private String name = NOT_DEFINED_NAME;
|
|
|
|
public NodeBuilder withName(String name) {
|
|
this.name = name;
|
|
return this;
|
|
}
|
|
|
|
public Node build() {
|
|
return new Node(name);
|
|
}
|
|
|
|
}
|
|
|
|
}
|