7 лабораторная
This commit is contained in:
parent
42ebda8b47
commit
d9c0fbf63c
1
.idea/AircraftCarrier_Hard.iml
generated
1
.idea/AircraftCarrier_Hard.iml
generated
@ -7,5 +7,6 @@
|
|||||||
</content>
|
</content>
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="library" name="log4j-1.2.17" level="project" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
21
AircraftCarrier_Hard.iml
Normal file
21
AircraftCarrier_Hard.iml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$" isTestSource="false" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="module-library">
|
||||||
|
<library>
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MODULE_DIR$/../../apache-log4j-1.2.17/log4j-1.2.17.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</orderEntry>
|
||||||
|
<orderEntry type="library" name="log4j-1.2.17" level="project" />
|
||||||
|
</component>
|
||||||
|
</module>
|
28
log4j.properties
Normal file
28
log4j.properties
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
log4j.logger.FormMapWithSetWarshipGeneric=INFO, fileAppender, adminAppender
|
||||||
|
|
||||||
|
log4j.additivity.FormMapWithSetWarshipGeneric=false
|
||||||
|
log4j.additivity.FormMapWithSetWarshipGenericAdmin=false
|
||||||
|
|
||||||
|
log4j.appender.fileAppender.threshold=INFO
|
||||||
|
log4j.appender.adminAppender.threshold=INFO
|
||||||
|
|
||||||
|
log4j.appender.fileAppender=org.apache.log4j.RollingFileAppender
|
||||||
|
log4j.appender.fileAppender.File=user.log
|
||||||
|
log4j.appender.fileAppender.MaxFileSize=1MB
|
||||||
|
log4j.appender.fileAppender.MaxBackupIndex=1
|
||||||
|
log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
|
||||||
|
log4j.appender.fileAppender.layout.ConversionPattern=%-5p %c{1}:%L - %m %d{dd-MM-yyyy}%n
|
||||||
|
log4j.appender.fileAppender.filter.a=org.apache.log4j.varia.LevelRangeFilter
|
||||||
|
log4j.appender.fileAppender.filter.a.LevelMin=INFO
|
||||||
|
log4j.appender.fileAppender.filter.a.LevelMax=INFO
|
||||||
|
log4j.appender.fileAppender.filter.a.AcceptOnMatch=TRUE
|
||||||
|
|
||||||
|
log4j.appender.adminAppender=org.apache.log4j.RollingFileAppender
|
||||||
|
log4j.appender.adminAppender.File=admin.log
|
||||||
|
log4j.appender.adminAppender.MaxFileSize=1MB
|
||||||
|
log4j.appender.adminAppender.MaxBackupIndex=1
|
||||||
|
log4j.appender.adminAppender.layout=org.apache.log4j.PatternLayout
|
||||||
|
log4j.appender.adminAppender.layout.ConversionPattern=%-5p %c{1}:%L - %m %d{dd-MM-yyyy}%n
|
||||||
|
log4j.appender.adminAppender.filter.a=org.apache.log4j.varia.LevelRangeFilter
|
||||||
|
log4j.appender.adminAppender.filter.a.LevelMin=WARN
|
||||||
|
log4j.appender.adminAppender.filter.a.AcceptOnMatch=TRUE
|
8
messages
Normal file
8
messages
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2022-12-14 00:20:19 INFO FormMapWithSetTractorsGeneric:195 - Переход на карту: 1
|
||||||
|
2022-12-14 00:20:19 INFO FormMapWithSetTractorsGeneric:228 - Добавлена карта: 1
|
||||||
|
INFO FormMapWithSetTractorsGeneric:195 - Переход на карту: 1 2022-12-14
|
||||||
|
INFO FormMapWithSetTractorsGeneric:228 - Добавлена карта: 1 2022-12-14
|
||||||
|
INFO FormMapWithSetTractorsGeneric:195 - Переход на карту: 1 2022-12-14
|
||||||
|
INFO FormMapWithSetTractorsGeneric:228 - Добавлена карта: 1 2022-12-14
|
||||||
|
INFO FormMapWithSetTractorsGeneric:195 - Переход на карту: 1 14-12-2022
|
||||||
|
INFO FormMapWithSetTractorsGeneric:228 - Добавлена карта: 1 14-12-2022
|
@ -7,6 +7,7 @@ import java.io.File;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
import org.apache.log4j.*;
|
||||||
public class FormMapWithSetWarships extends JFrame{
|
public class FormMapWithSetWarships extends JFrame{
|
||||||
private JPanel mainPanel;
|
private JPanel mainPanel;
|
||||||
private JPanel PictureBox;
|
private JPanel PictureBox;
|
||||||
@ -41,6 +42,8 @@ public class FormMapWithSetWarships extends JFrame{
|
|||||||
put("LineMap", new LineMap());
|
put("LineMap", new LineMap());
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
private Logger _logger;
|
||||||
|
|
||||||
public FormMapWithSetWarships(){
|
public FormMapWithSetWarships(){
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
@ -71,6 +74,7 @@ public class FormMapWithSetWarships extends JFrame{
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void InitializeComponent(){
|
private void InitializeComponent(){
|
||||||
|
_logger = Logger.getLogger("FormMapWithSetTractorsGeneric");
|
||||||
setContentPane(mainPanel);
|
setContentPane(mainPanel);
|
||||||
setTitle("Warship");
|
setTitle("Warship");
|
||||||
setSize(935, 693);
|
setSize(935, 693);
|
||||||
@ -104,14 +108,14 @@ public class FormMapWithSetWarships extends JFrame{
|
|||||||
fs.setDialogTitle("Save");
|
fs.setDialogTitle("Save");
|
||||||
int result = fs.showSaveDialog(null);
|
int result = fs.showSaveDialog(null);
|
||||||
if (result == JFileChooser.APPROVE_OPTION) {
|
if (result == JFileChooser.APPROVE_OPTION) {
|
||||||
File selectedFile = fs.getSelectedFile();
|
try {
|
||||||
if (_mapsCollection.SaveData(selectedFile.getPath()))
|
File selectedFile = fs.getSelectedFile();
|
||||||
{
|
_mapsCollection.SaveData(selectedFile.getPath());
|
||||||
|
_logger.info("Успешное сохранение в файл: "+selectedFile.getPath());
|
||||||
JOptionPane.showMessageDialog(null, "Сохранение прошло успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Сохранение прошло успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
||||||
}
|
} catch (Exception ex) {
|
||||||
else
|
_logger.error("Данные не сохранились: "+ex.getMessage());
|
||||||
{
|
JOptionPane.showMessageDialog(null, "Не сохранилось: "+ex.getMessage(), "Результат",JOptionPane.ERROR_MESSAGE);
|
||||||
JOptionPane.showMessageDialog(null, "Не сохранилось", "Результат",JOptionPane.ERROR_MESSAGE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -126,15 +130,15 @@ public class FormMapWithSetWarships extends JFrame{
|
|||||||
fs.setDialogTitle("Load");
|
fs.setDialogTitle("Load");
|
||||||
int result = fs.showSaveDialog(null);
|
int result = fs.showSaveDialog(null);
|
||||||
if (result == JFileChooser.APPROVE_OPTION) {
|
if (result == JFileChooser.APPROVE_OPTION) {
|
||||||
File selectedFile = fs.getSelectedFile();
|
try {
|
||||||
if (_mapsCollection.LoadData(selectedFile.getPath()))
|
File selectedFile = fs.getSelectedFile();
|
||||||
{
|
_mapsCollection.LoadData(selectedFile.getPath());
|
||||||
ReloadMaps();
|
ReloadMaps();
|
||||||
|
_logger.info("Успешная загрузка из файла: "+selectedFile.getPath());
|
||||||
JOptionPane.showMessageDialog(null, "Загрузка прошла успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Загрузка прошла успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
||||||
}
|
} catch(Exception ex) {
|
||||||
else
|
_logger.error("Не загрузилось: "+ex.getMessage());
|
||||||
{
|
JOptionPane.showMessageDialog(null, "Не загрузилось: "+ex.getMessage(), "Результат",JOptionPane.ERROR_MESSAGE);
|
||||||
JOptionPane.showMessageDialog(null, "Не удалось загрузить", "Результат",JOptionPane.ERROR_MESSAGE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -149,14 +153,14 @@ public class FormMapWithSetWarships extends JFrame{
|
|||||||
fs.setDialogTitle("SaveMap");
|
fs.setDialogTitle("SaveMap");
|
||||||
int result = fs.showSaveDialog(null);
|
int result = fs.showSaveDialog(null);
|
||||||
if (result == JFileChooser.APPROVE_OPTION) {
|
if (result == JFileChooser.APPROVE_OPTION) {
|
||||||
File selectedFile = fs.getSelectedFile();
|
try {
|
||||||
if (_mapsCollection.SaveMap(selectedFile.getPath(), ListBoxMaps.getSelectedValue().toString()))
|
File selectedFile = fs.getSelectedFile();
|
||||||
{
|
_mapsCollection.SaveMap(selectedFile.getPath(), ListBoxMaps.getSelectedValue().toString());
|
||||||
|
_logger.info("Успешное сохранение карты в файл: "+selectedFile.getPath());
|
||||||
JOptionPane.showMessageDialog(null, "Сохранение карты прошло успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Сохранение карты прошло успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
||||||
}
|
} catch(Exception ex) {
|
||||||
else
|
_logger.error("Не сохранилась карта: "+ex.getMessage());
|
||||||
{
|
JOptionPane.showMessageDialog(null, "Не сохранилась карта: "+ex.getMessage(), "Результат",JOptionPane.ERROR_MESSAGE);
|
||||||
JOptionPane.showMessageDialog(null, "Не сохранилась карта", "Результат",JOptionPane.ERROR_MESSAGE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -171,15 +175,15 @@ public class FormMapWithSetWarships extends JFrame{
|
|||||||
fs.setDialogTitle("LoadMap");
|
fs.setDialogTitle("LoadMap");
|
||||||
int result = fs.showSaveDialog(null);
|
int result = fs.showSaveDialog(null);
|
||||||
if (result == JFileChooser.APPROVE_OPTION) {
|
if (result == JFileChooser.APPROVE_OPTION) {
|
||||||
File selectedFile = fs.getSelectedFile();
|
try {
|
||||||
if (_mapsCollection.LoadMap(selectedFile.getPath()))
|
File selectedFile = fs.getSelectedFile();
|
||||||
{
|
_mapsCollection.LoadMap(selectedFile.getPath());
|
||||||
JOptionPane.showMessageDialog(null, "Загрузка карты прошла успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Загрузка карты прошла успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
|
||||||
ReloadMaps();
|
ReloadMaps();
|
||||||
}
|
_logger.info("Успешная загрузка карты из файла: "+selectedFile.getPath());
|
||||||
else
|
}catch(Exception ex) {
|
||||||
{
|
_logger.error("Не загрузилась карта: "+ex.getMessage());
|
||||||
JOptionPane.showMessageDialog(null, "Не загрузилась карта", "Результат",JOptionPane.ERROR_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Не загрузилась карта", "Результат", JOptionPane.ERROR_MESSAGE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -188,6 +192,7 @@ public class FormMapWithSetWarships extends JFrame{
|
|||||||
if(ListBoxMaps.getSelectedIndex() == -1)
|
if(ListBoxMaps.getSelectedIndex() == -1)
|
||||||
return;
|
return;
|
||||||
bufferedImage = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet();
|
bufferedImage = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet();
|
||||||
|
_logger.log(Level.INFO,"Переход на карту: " + ListBoxMaps.getSelectedValue().toString());
|
||||||
repaint();
|
repaint();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -199,6 +204,7 @@ public class FormMapWithSetWarships extends JFrame{
|
|||||||
if(JOptionPane.showConfirmDialog(this,"Удалить карту " + ListBoxMaps.getSelectedValue().toString() + "?",
|
if(JOptionPane.showConfirmDialog(this,"Удалить карту " + ListBoxMaps.getSelectedValue().toString() + "?",
|
||||||
"Удаление",JOptionPane.YES_NO_OPTION) == 0)
|
"Удаление",JOptionPane.YES_NO_OPTION) == 0)
|
||||||
{
|
{
|
||||||
|
_logger.info("Удалена карта: " + ListBoxMaps.getSelectedValue().toString());
|
||||||
_mapsCollection.DelMap(ListBoxMaps.getSelectedValue().toString());
|
_mapsCollection.DelMap(ListBoxMaps.getSelectedValue().toString());
|
||||||
ReloadMaps();
|
ReloadMaps();
|
||||||
}
|
}
|
||||||
@ -207,16 +213,19 @@ public class FormMapWithSetWarships extends JFrame{
|
|||||||
CreateMapButton.addActionListener(e -> {
|
CreateMapButton.addActionListener(e -> {
|
||||||
if (СomboBoxSelectorMap.getSelectedIndex() == -1 || TextFieldMap.getText() == null || TextFieldMap.getText().equals(""))
|
if (СomboBoxSelectorMap.getSelectedIndex() == -1 || TextFieldMap.getText() == null || TextFieldMap.getText().equals(""))
|
||||||
{
|
{
|
||||||
|
_logger.info("Не все данные были заполнены при добавлении карты");
|
||||||
JOptionPane.showMessageDialog(this,"Не все данные заполнены","Ошибка",JOptionPane.ERROR_MESSAGE);
|
JOptionPane.showMessageDialog(this,"Не все данные заполнены","Ошибка",JOptionPane.ERROR_MESSAGE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!_mapsDict.containsKey(СomboBoxSelectorMap.getSelectedItem()))
|
if (!_mapsDict.containsKey(СomboBoxSelectorMap.getSelectedItem()))
|
||||||
{
|
{
|
||||||
|
_logger.info("Нет карты с названием: " + СomboBoxSelectorMap.getSelectedItem());
|
||||||
JOptionPane.showMessageDialog(this,"Нет такой карты","Ошибка",JOptionPane.ERROR_MESSAGE);
|
JOptionPane.showMessageDialog(this,"Нет такой карты","Ошибка",JOptionPane.ERROR_MESSAGE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_mapsCollection.AddMap(TextFieldMap.getText(), _mapsDict.get(СomboBoxSelectorMap.getSelectedItem().toString()));
|
_mapsCollection.AddMap(TextFieldMap.getText(), _mapsDict.get(СomboBoxSelectorMap.getSelectedItem().toString()));
|
||||||
ReloadMaps();
|
ReloadMaps();
|
||||||
|
_logger.info("Добавлена карта: " + TextFieldMap.getText());
|
||||||
});
|
});
|
||||||
|
|
||||||
deletedWarshipButtom.addActionListener(e -> {
|
deletedWarshipButtom.addActionListener(e -> {
|
||||||
@ -235,20 +244,31 @@ public class FormMapWithSetWarships extends JFrame{
|
|||||||
ButtonAddWarship.addActionListener(e -> {
|
ButtonAddWarship.addActionListener(e -> {
|
||||||
FormWarshipConfig formWarshipConfig = new FormWarshipConfig();
|
FormWarshipConfig formWarshipConfig = new FormWarshipConfig();
|
||||||
formWarshipConfig.AddEvent(newWarship ->{
|
formWarshipConfig.AddEvent(newWarship ->{
|
||||||
if(ListBoxMaps.getSelectedIndex() == -1){
|
try{
|
||||||
return;
|
if(ListBoxMaps.getSelectedIndex() == -1){
|
||||||
}
|
return;
|
||||||
if(newWarship != null){
|
|
||||||
DrawingObjectWarship warship = new DrawingObjectWarship(newWarship);
|
|
||||||
if (_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Plus(warship) >= 0) {
|
|
||||||
JOptionPane.showMessageDialog(null, "Объект добавлен");
|
|
||||||
bufferedImage = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet();
|
|
||||||
repaint();
|
|
||||||
}
|
}
|
||||||
else {
|
if(newWarship != null){
|
||||||
JOptionPane.showMessageDialog(null, "Не удалось добавить объект");
|
DrawingObjectWarship warship = new DrawingObjectWarship(newWarship);
|
||||||
|
if (_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Plus(warship) >= 0) {
|
||||||
|
_logger.info("Добавлен объект: " + warship);
|
||||||
|
JOptionPane.showMessageDialog(null, "Объект добавлен");
|
||||||
|
bufferedImage = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet();
|
||||||
|
repaint();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
_logger.info("Не удалось добавить объект: " + warship);
|
||||||
|
JOptionPane.showMessageDialog(null, "Не удалось добавить объект");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}catch (StorageOverflowException ex){
|
||||||
|
_logger.warn("Ошибка переполнения хранилища: " + ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Ошибка переполнения хранилища: " + ex.getMessage());
|
||||||
|
}catch (Exception ex){
|
||||||
|
_logger.fatal("Неизвестная ошибка добавления: " + ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Неизвестная ошибка: " + ex.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
formWarshipConfig.setSize(1000, 450);
|
formWarshipConfig.setSize(1000, 450);
|
||||||
formWarshipConfig.setVisible(true);
|
formWarshipConfig.setVisible(true);
|
||||||
@ -270,17 +290,28 @@ public class FormMapWithSetWarships extends JFrame{
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int pos = Integer.parseInt(TextBoxPosition.getText());
|
int pos = Integer.parseInt(TextBoxPosition.getText());
|
||||||
if (_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Minus(pos)!=null)
|
try {
|
||||||
{
|
var deletedWarship = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Minus(pos);
|
||||||
JOptionPane.showMessageDialog(this,
|
if (deletedWarship != null)
|
||||||
"Объект удален","Успех",JOptionPane.INFORMATION_MESSAGE);
|
{
|
||||||
bufferedImage = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet();
|
_logger.info("Удален объект: " + deletedWarship);
|
||||||
repaint();
|
JOptionPane.showMessageDialog(this,
|
||||||
}
|
"Объект удален","Успех",JOptionPane.INFORMATION_MESSAGE);
|
||||||
else
|
bufferedImage = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet();
|
||||||
{
|
repaint();
|
||||||
JOptionPane.showMessageDialog(this,
|
}
|
||||||
"Не удалось удалить объект","Ошибка",JOptionPane.INFORMATION_MESSAGE);
|
else
|
||||||
|
{
|
||||||
|
_logger.info("Не удалось удалить объект по позиции: " + pos);
|
||||||
|
JOptionPane.showMessageDialog(this,
|
||||||
|
"Не удалось удалить объект","Ошибка",JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
}
|
||||||
|
}catch (WarshipNotFoundException ex){
|
||||||
|
_logger.warn("Ошибка удаления: " + ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Ошибка удаления: " + ex.getMessage());
|
||||||
|
}catch (Exception ex){
|
||||||
|
_logger.fatal("Неизвестная ошибка удаления: " + ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Неизвестная ошибка: " + ex.getMessage());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ public class MapsCollection {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean SaveData(String filename) {
|
public void SaveData(String filename) {
|
||||||
File file = new File(filename);
|
File file = new File(filename);
|
||||||
|
|
||||||
if (file.exists()) {
|
if (file.exists()) {
|
||||||
@ -64,21 +64,20 @@ public class MapsCollection {
|
|||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean LoadData(String filename)
|
public void LoadData(String filename)throws FileNotFoundException
|
||||||
{
|
{
|
||||||
if (!(new File(filename).exists()))
|
if (!(new File(filename).exists()))
|
||||||
{
|
{
|
||||||
return false;
|
throw new FileNotFoundException("Файл не найден");
|
||||||
}
|
}
|
||||||
try (BufferedReader br = new BufferedReader(new FileReader(filename)))
|
try (BufferedReader br = new BufferedReader(new FileReader(filename)))
|
||||||
{
|
{
|
||||||
String str = "";
|
String str = "";
|
||||||
if ((str = br.readLine()) == null || !str.contains("MapsCollection"))
|
if ((str = br.readLine()) == null || !str.contains("MapsCollection"))
|
||||||
{
|
{
|
||||||
return false;
|
throw new IllegalArgumentException("Формат данных в файле неправильный");
|
||||||
}
|
}
|
||||||
//очищаем записи
|
//очищаем записи
|
||||||
_mapStorages.clear();
|
_mapStorages.clear();
|
||||||
@ -100,8 +99,9 @@ public class MapsCollection {
|
|||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
|
}catch (StorageOverflowException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Сохранение отдельного объекта класса-хранилища
|
//Сохранение отдельного объекта класса-хранилища
|
||||||
|
@ -22,7 +22,7 @@ public class SetWarshipsGeneric<T extends Object> implements Iterable<T>{
|
|||||||
public int Insert(T warship, int position)
|
public int Insert(T warship, int position)
|
||||||
{
|
{
|
||||||
if (position < 0 || position >= _maxCount)
|
if (position < 0 || position >= _maxCount)
|
||||||
return -1;
|
throw new StorageOverflowException(_maxCount);
|
||||||
_places.add(position, warship);
|
_places.add(position, warship);
|
||||||
return position;
|
return position;
|
||||||
}
|
}
|
||||||
@ -32,6 +32,7 @@ public class SetWarshipsGeneric<T extends Object> implements Iterable<T>{
|
|||||||
if (position >= _maxCount || position < 0)
|
if (position >= _maxCount || position < 0)
|
||||||
return null;
|
return null;
|
||||||
T deleted = _places.get(position);
|
T deleted = _places.get(position);
|
||||||
|
if(deleted == null) throw new WarshipNotFoundException(position);
|
||||||
_places.remove(position);
|
_places.remove(position);
|
||||||
return deleted;
|
return deleted;
|
||||||
}
|
}
|
||||||
|
16
src/StorageOverflowException.java
Normal file
16
src/StorageOverflowException.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
public class StorageOverflowException extends RuntimeException{
|
||||||
|
public StorageOverflowException(){
|
||||||
|
}
|
||||||
|
public StorageOverflowException(String message){
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
public StorageOverflowException(String message,Throwable exception){
|
||||||
|
super(message,exception);
|
||||||
|
}
|
||||||
|
protected StorageOverflowException(Throwable exception){
|
||||||
|
super(exception);
|
||||||
|
}
|
||||||
|
public StorageOverflowException(int count){
|
||||||
|
super("В наборе превышено допустимое количество: " + count);
|
||||||
|
}
|
||||||
|
}
|
16
src/WarshipNotFoundException.java
Normal file
16
src/WarshipNotFoundException.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
public class WarshipNotFoundException extends RuntimeException{
|
||||||
|
public WarshipNotFoundException(){
|
||||||
|
}
|
||||||
|
public WarshipNotFoundException(String message){
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
public WarshipNotFoundException(String message,Throwable exception){
|
||||||
|
super(message,exception);
|
||||||
|
}
|
||||||
|
public WarshipNotFoundException(Throwable exception){
|
||||||
|
super(exception);
|
||||||
|
}
|
||||||
|
public WarshipNotFoundException(int i){
|
||||||
|
super("Не найден объект по позиции " + i);
|
||||||
|
}
|
||||||
|
}
|
19
src/log4j.xml
Normal file
19
src/log4j.xml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE log4j:configuration PUBLIC
|
||||||
|
"-//APACHE//DTD LOG4J 1.2//EN"
|
||||||
|
"http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
|
||||||
|
<log4j:configuration debug="false">
|
||||||
|
|
||||||
|
<appender name="FileAppender" class="org.apache.log4j.DailyRollingFileAppender">
|
||||||
|
<param name="File" value="messages"/>
|
||||||
|
<param name="DatePattern" value="'-'yyyy-MM-dd"/>
|
||||||
|
<param name="Encoding" value="utf-8"/>
|
||||||
|
<layout class="org.apache.log4j.PatternLayout">
|
||||||
|
<param name="ConversionPattern" value=" %-5p %c{1}:%L - %m %d{dd-MM-yyyy} %n"/>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
|
<root>
|
||||||
|
<priority value="INFO"/>
|
||||||
|
<appender-ref ref="FileAppender"/>
|
||||||
|
</root>
|
||||||
|
</log4j:configuration>
|
Loading…
x
Reference in New Issue
Block a user