Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions LB05/LB05.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager">
<output url="file://$MODULE_DIR$/bin" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="jdk" jdkName="JavaSE-18" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
5 changes: 5 additions & 0 deletions LB05/Test_Write_XML.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<SMS>
<Number>2</Number>
<message>23</message>
</SMS>
Binary file added LB05/bin/Main.class
Binary file not shown.
Binary file added LB05/bin/Organization/Address.class
Binary file not shown.
Binary file added LB05/bin/Organization/Coordinates.class
Binary file not shown.
Binary file added LB05/bin/Organization/Location.class
Binary file not shown.
Binary file added LB05/bin/Organization/Organization.class
Binary file not shown.
Binary file added LB05/bin/Organization/OrganizationType.class
Binary file not shown.
61 changes: 61 additions & 0 deletions LB05/bin/Organizations.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<?xmlversion="1.0"encoding="UTF-8"?>
<Organizations>
<Organization>
<name>VkusnoiTochka</name>
<Coordinates>
<xc>542</xc>
<yc>42</yc>
</Coordinates>
<creationDate>2022-03-20</creationDate>
<annualTurnover>239.30</annualTurnover>
<type>GOVERNMENT</type>
<postalAddress>
<zipCode>239239</zipCode>
<street>CGSG</street>
<Location>
<xl>542</xl>
<yl>42</yl>
<town>name</town>
</Location>
</postalAddress>
</Organization>
<Organization>
<id>1</id>
<name>VkusnoiTochka</name>
<Coordinates>
<xc>542</xc>
<yc>42</yc>
</Coordinates>
<creationDate>2022-03-20</creationDate>
<annualTurnover>239.30</annualTurnover>
<type>GOVERNMENT</type>
<postalAddress>
<zipCode>239239</zipCode>
<street>CGSG</street>
<Location>
<xl>542</xl>
<yl>42</yl>
<town>name</town>
</Location>
</postalAddress>
</Organization>
<Organization>
<name>VkusnoiTochka</name>
<Coordinates>
<xc>542</xc>
<yc>42</yc>
</Coordinates>
<creationDate>2022-03-20</creationDate>
<annualTurnover>239.30</annualTurnover>
<type>GOVERNMENT</type>
<postalAddress>
<zipCode>239239</zipCode>
<street>CGSG</street>
<Location>
<xl>542</xl>
<yl>42</yl>
<town>name</town>
</Location>
</postalAddress>
</Organization>
</Organizations>
83 changes: 83 additions & 0 deletions LB05/bin/OutOrganizations.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
<Organizations>
<Organization>
<id>192693</id>
<name>VkusnoiTochka</name>
<Coordinates>
<x>542</x>
<y>42.0</y>
</Coordinates>
<creationDate>2023-03-13T22:42:35.119597600</creationDate>
<annualTurnover>239.3</annualTurnover>
<type>GOVERNMENT</type>
<postalAddress>
<zipCode>239239</zipCode>
<street>CGSG</street>
<Location>
<x>542</x>
<y>42</y>
<town>name</town>
</Location>
</postalAddress>
</Organization>
<Organization>
<id>1</id>
<name>VkusnoiTochka</name>
<Coordinates>
<x>542</x>
<y>42.0</y>
</Coordinates>
<creationDate>2023-03-13T22:42:35.119597600</creationDate>
<annualTurnover>239.3</annualTurnover>
<type>GOVERNMENT</type>
<postalAddress>
<zipCode>239239</zipCode>
<street>CGSG</street>
<Location>
<x>542</x>
<y>42</y>
<town>name</town>
</Location>
</postalAddress>
</Organization>
<Organization>
<id>1</id>
<name>VkusnoiTochka</name>
<Coordinates>
<x>542</x>
<y>42.0</y>
</Coordinates>
<creationDate>2023-03-13T22:42:35.119597600</creationDate>
<annualTurnover>239.3</annualTurnover>
<type>GOVERNMENT</type>
<postalAddress>
<zipCode>239239</zipCode>
<street>CGSG</street>
<Location>
<x>542</x>
<y>42</y>
<town>name</town>
</Location>
</postalAddress>
</Organization>
<Organization>
<id>698657280</id>
<name>KFC</name>
<Coordinates>
<x>900</x>
<y>239.3</y>
</Coordinates>
<creationDate>2023-03-13T22:42:35.150842100</creationDate>
<annualTurnover>100000.0</annualTurnover>
<type>COMMERCIAL</type>
<postalAddress>
<zipCode>23</zipCode>
<street>ulica</street>
<Location>
<x>3</x>
<y>20</y>
<town>Spb</town>
</Location>
</postalAddress>
</Organization>
</Organizations>
Binary file added LB05/bin/Test_Write_XML.class
Binary file not shown.
5 changes: 5 additions & 0 deletions LB05/bin/Test_Write_XML.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<SMS>
<Number>2</Number>
<message>23e</message>
</SMS>
14 changes: 14 additions & 0 deletions LB05/src/Auxiliary/FilterOrganizations.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package Auxiliary;

import Organization.Organization;

import java.util.Vector;
import java.util.stream.Collectors;

public class FilterOrganizations {
public static Vector<Organization> filterByType(Vector<Organization> org, String type){
Vector<Organization> result = new Vector<Organization>();
result = org.stream().filter(o -> o.equals(type)).collect(Vector<Organization>::new, Vector<Organization>::add, Vector<Organization>::addAll);
return result;
}
}
137 changes: 137 additions & 0 deletions LB05/src/Auxiliary/Read_XML.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@


package Auxiliary;
import Organization.*;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import static Auxiliary.SortOrganizaton.sort;

public class Read_XML {
public static Vector<Organization> CreateVector(String filename) {
File file = new File(filename);
Vector<Organization> org = new Vector<>();
ArrayList<Map> arr = new ArrayList<Map>();
int i = 0;
String str = "";
String[] lines;
int tId = (int)(Math.random() * 999999);
String tName = null;
Coordinates tCoordinates; //Поле не может быть null
long xC = 0;
double yC = 0;
LocalDateTime tCreationDate = LocalDateTime.now();
Float tAnnualTurnover = null;
OrganizationType tType = null;
Address tPostalAddress;
String zipCode = null;
String street = null;
int xL = 0;
long yL = 0;
String town = null;
String lastUpdate = null;

try (Scanner reader = new Scanner(new FileReader(file.getAbsolutePath()))) {
while (reader.hasNext()) {
str += reader.next();
}
}
catch (Exception e){
System.out.println("Not found input file");
}
try {
lines = str.split("><");
for (String el : lines) {
if (el.equalsIgnoreCase("organization")) {
arr.add(new HashMap<String, String>());
continue;
}
if (el.equalsIgnoreCase("/organization")) {
i += 1;
continue;
}
if (arr.size() > i) {
if (el.equalsIgnoreCase("coordinates"))
continue;
if (el.equalsIgnoreCase("/coordinates"))
continue;
if (el.equalsIgnoreCase("postaladdress"))
continue;
if (el.equalsIgnoreCase("/postaladdress"))
continue;
if (el.equalsIgnoreCase("location"))
continue;
if (el.equalsIgnoreCase("/location"))
continue;
arr.get(i).put(el.substring(0, el.indexOf('>')), el.substring(el.indexOf('>') + 1, el.indexOf('<')));
}
}

for (Map<String, String> m : arr) {
for (String key : m.keySet()) {
final String value = m.get(key);

switch (key) {
case "id":
tId = Integer.parseInt(value);
break;
case "name":
tName = value;
break;
case "xc" :
xC = Long.parseLong(value);
break;
case "yc":
yC = Double.parseDouble(value);
break;
case "date":
tCreationDate = LocalDate.parse(value, DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay();
break;
case "annualTurnover":
tAnnualTurnover = Float.parseFloat(value);
break;
case "type":
tType = OrganizationType.valueOf(value);
break;
case "zipCode":
zipCode = value;
break;
case "street":
street = value;
break;
case "xl":
xL = Integer.parseInt(value);
break;
case "yl":
yL = Long.parseLong(value);
break;
case "town":
town = value;
break;
case "lastUpdate":
lastUpdate = value;
break;
default:
break;
}
}
Organization t = new Organization(tName, xC, yC, tCreationDate, tAnnualTurnover, tType, new Address(zipCode, street, new Location(xL, yL, town)));
t.setId(tId);
t.setLastUpdate(lastUpdate);
org.addElement(t);
}
}
catch(Exception e){
System.out.println("Not download xml file");
System.out.println(e.getMessage());
e.printStackTrace();
}
finally {sort(org); return org;}

}
}
29 changes: 29 additions & 0 deletions LB05/src/Auxiliary/SortOrganizaton.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package Auxiliary;

import Organization.Organization;

import java.util.Collections;
import java.util.Comparator;
import java.util.Vector;

public class SortOrganizaton {
public static void sort(Vector<Organization> org){
sortByName(org);
}
public static void sortByName(Vector<Organization> org){
Collections.sort(org, Comparator.comparing(Organization::getName));
}
public static void revSortByName(Vector<Organization> org){
Collections.sort(org, Comparator.comparing(Organization::getName).reversed());
}
public static Vector<Organization> sortByAddress(Vector<Organization> org){
Vector<Organization> result = org;
Collections.sort(result, Comparator.comparing(Organization::getAddress));
return result;
}
public static Vector<Organization> revSortByAddress(Vector<Organization> org){
Vector<Organization> result = org;
Collections.sort(result, Comparator.comparing(Organization::getAddress));
return result;
}
}
27 changes: 27 additions & 0 deletions LB05/src/Auxiliary/Write_XML.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package Auxiliary;

import Organization.Organization;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Vector;

public class Write_XML {
public static void Write(Vector<Organization> vec, String filename){
try {
FileOutputStream file = new FileOutputStream(filename);
file.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Organizations>\n".getBytes());
for (Organization org : vec)
file.write(org.getXML().getBytes());
file.write("</Organizations>".getBytes());
file.close();
} catch (FileNotFoundException e) {
//System.out.println("i dont find file");
throw new RuntimeException(e);
} catch (IOException e) {
//System.out.println("kal");
throw new RuntimeException(e);
}
}
}
Loading