Data/src/main/java/de/ph87/data/view/tree/ViewDto.java

35 lines
905 B
Java

package de.ph87.data.view.tree;
import lombok.Getter;
import lombok.NonNull;
import lombok.ToString;
@Getter
@ToString
public abstract class ViewDto {
public final String _type_;
public final String uuid;
public final String name;
protected ViewDto(@NonNull final View view) {
this._type_ = view.get_type_();
this.uuid = view.getUuid();
this.name = view.getName();
}
@NonNull
public static ViewDto map(@NonNull final View view) {
return switch (view) {
case final ViewLiteral viewLiteral -> new ViewLiteralDto(viewLiteral);
case final ViewSeries viewSeries -> new ViewSeriesDto(viewSeries);
case final ViewUnary viewUnary -> new ViewUnaryDto(viewUnary);
case final ViewBinary viewBinary -> new ViewBinaryDto(viewBinary);
default -> throw new RuntimeException("DTO mapping of View type not implemented: " + view.getClass());
};
}
}