6-я лабораторная. Добавление класса с методами сохранения и загрузки.
This commit is contained in:
parent
5d93c8bf38
commit
9345b24113
47
Project/src/ExtentionPlane.java
Normal file
47
Project/src/ExtentionPlane.java
Normal file
@ -0,0 +1,47 @@
|
||||
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());
|
||||
}
|
||||
}
|
@ -16,4 +16,7 @@ public interface IDrawningObject
|
||||
|
||||
//получение текущей позиции объекта
|
||||
float[] GetCurrentPosition();
|
||||
|
||||
//получение информации по объекту
|
||||
String GetInfo();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user