47 lines
1.3 KiB
Java
47 lines
1.3 KiB
Java
package de.ph87.electro.circuit.part;
|
|
|
|
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
|
import de.ph87.electro.circuit.part.parts.*;
|
|
import lombok.Getter;
|
|
import lombok.NoArgsConstructor;
|
|
import lombok.ToString;
|
|
|
|
import java.awt.*;
|
|
|
|
@Getter
|
|
@ToString
|
|
@NoArgsConstructor
|
|
@JsonTypeInfo(use = JsonTypeInfo.Id.MINIMAL_CLASS)
|
|
public abstract class PartDto {
|
|
|
|
private String uuid;
|
|
|
|
private String name;
|
|
|
|
private Point position;
|
|
|
|
private Orientation orientation;
|
|
|
|
protected PartDto(final Part part) {
|
|
this.uuid = part.getUuid();
|
|
this.name = part.getName();
|
|
this.position = part.getPosition();
|
|
this.orientation = part.getOrientation();
|
|
}
|
|
|
|
public static PartDto of(final Part abstractPart) {
|
|
return switch (abstractPart) {
|
|
case final Battery part -> new BatteryDto(part);
|
|
case final Light part -> new LightDto(part);
|
|
case final ConnectorSub part -> new ConnectorSubDto(part);
|
|
case final Switch1x1 part -> new Switch1x1Dto(part);
|
|
case final Switch1x2 part -> new Switch1x2Dto(part);
|
|
case final SwitchCross part -> new SwitchCrossDto(part);
|
|
case final Poti part -> new PotiDto(part);
|
|
case final Voltmeter part -> new VoltmeterDto(part);
|
|
case null, default -> throw new RuntimeException();
|
|
};
|
|
}
|
|
|
|
}
|