48 lines
1.8 KiB
Java
48 lines
1.8 KiB
Java
import java.awt.*;
|
|
|
|
public class ExtentionPlane
|
|
{
|
|
//разделитель для записи информации по объекту в файл
|
|
private static final char _separatorForObject = ':';
|
|
|
|
//создание объекта из строки
|
|
public static DrawingPlane CreateDrawingPlane(String info)
|
|
{
|
|
String[] strs = info.split(String.valueOf(_separatorForObject));
|
|
|
|
//если простой самолёт
|
|
if(strs.length == 4)
|
|
{
|
|
Color color = new Color(Integer.parseInt(strs[2]));
|
|
return new DrawingPlane(Integer.parseInt(strs[0]), Float.valueOf(strs[1]), color, Integer.parseInt(strs[3]));
|
|
}
|
|
|
|
//если аэробус
|
|
if(strs.length == 7)
|
|
{
|
|
Color f_color = new Color(Integer.parseInt(strs[2]));
|
|
Color s_color = new Color(Integer.parseInt(strs[4]));
|
|
|
|
return new DrawingAirbus(Integer.parseInt(strs[0]), Integer.parseInt(strs[1]), f_color, Integer.parseInt(strs[3]),
|
|
s_color, Boolean.parseBoolean(strs[4]), Boolean.parseBoolean(strs[5]));
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
//сохраниние объекта в строку
|
|
public static String GetDataForSave(DrawingAirbus drawingPlane)
|
|
{
|
|
var plane = drawingPlane.Plane;
|
|
var str = String.format("%d%c%d%c%d", plane.GetSpeed(), _separatorForObject, plane.GetWeight(), _separatorForObject, plane.GetColor().getRGB());
|
|
|
|
//если объект не расширеный
|
|
if(!(plane instanceof EntityAirbus airbus))
|
|
{
|
|
return str;
|
|
}
|
|
|
|
return str + String.format("%c%s%c%b%c%b", _separatorForObject, airbus.AddColor(), _separatorForObject, airbus.AddEngine(),airbus.AddCompartment());
|
|
}
|
|
}
|