Skip to content

Commit

Permalink
#31 cars formatted to json
Browse files Browse the repository at this point in the history
  • Loading branch information
mihino89 committed Apr 10, 2020
1 parent f12532c commit 1e71b44
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 44 deletions.
10 changes: 10 additions & 0 deletions .idea/composerJson.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 2 additions & 8 deletions src/com/groundZer0/autobazar/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
import javafx.scene.Scene;
import javafx.stage.Stage;

import java.io.IOException;

public class Main extends Application {

@Override
Expand All @@ -33,11 +31,7 @@ public void init(){

@Override
public void stop() {
try{
Connection.getConnection().try_connect_with_server(null);
VehicleOps.getVehicleOps().cars_saving();
} catch (IOException e) {
e.printStackTrace();
}
Connection.getConnection().try_connect_with_server(null);
VehicleOps.getVehicleOps().cars_saving();
}
}
92 changes: 59 additions & 33 deletions src/com/groundZer0/autobazar/data/cars/VehicleOps.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,61 +2,83 @@

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.io.*;
import java.nio.file.Path;
import java.nio.file.Paths;

public class VehicleOps {

private static VehicleOps vehicleOps = new VehicleOps();
/* DB of users */
private final String file_name = "src/com/groundZer0/autobazar/data/db/cars.txt";
private final String file_name = "src/com/groundZer0/autobazar/data/db/cars.json";
Path path = Paths.get(file_name);

private ObservableList<Vehicle> list_of_vehicles;

public void cars_loading() {
String line_file_reader;
list_of_vehicles = FXCollections.observableArrayList();
JSONParser jsonParser = new JSONParser();

try (BufferedReader bufferedReader = Files.newBufferedReader(path)) {
while ((line_file_reader = bufferedReader.readLine()) != null) {
String[] car_information = line_file_reader.split("~");
Vehicle new_vehicle = new Vehicle(car_information[0], car_information[1],car_information[2], car_information[3], car_information[4], Integer.parseInt(car_information[5]), Integer.parseInt(car_information[6]), car_information[7], car_information[8], car_information[9]);
list_of_vehicles.add(new_vehicle);
try (FileReader fileReader = new FileReader(String.valueOf(path))) {
if(fileReader.read() == -1){
return;
}
bufferedReader.close();
FileReader not_empty_file_reader = new FileReader(String.valueOf(path));
Object obj = jsonParser.parse(not_empty_file_reader);

JSONArray cars = (JSONArray) obj;

cars.forEach( car -> parse_cars((JSONObject) car));
} catch (Exception e) {
e.printStackTrace();
}
}

public void cars_saving() throws IOException {
BufferedWriter bufferedWriter = Files.newBufferedWriter(path);

try{
for(Vehicle vehicle : list_of_vehicles){
bufferedWriter.write(String.format("%s~%s~%s~%s~%s~%s~%s~%s~%s~%s",
vehicle.getId(),
vehicle.getType(),
vehicle.getHeadline(),
vehicle.getBrand(),
vehicle.getModel(),
vehicle.getPrice(),
vehicle.getPassed_km(),
vehicle.getState(),
vehicle.getOwner_email(),
vehicle.getDescription()
));
bufferedWriter.newLine();
}
} finally {
bufferedWriter.close();
public void cars_saving() {
JSONArray cars = new JSONArray();
System.out.println("users length: " + list_of_vehicles.size());
for (Vehicle vehicle : list_of_vehicles) {
JSONObject vehicle_detail = new JSONObject();

vehicle_detail.put("id", vehicle.getId());
vehicle_detail.put("type", vehicle.getType());
vehicle_detail.put("headline", vehicle.getHeadline());
vehicle_detail.put("brand", vehicle.getBrand());
vehicle_detail.put("model", vehicle.getModel());
vehicle_detail.put("price", String.valueOf(vehicle.getPrice()));
vehicle_detail.put("passed_km", String.valueOf(vehicle.getPassed_km()));
vehicle_detail.put("state", vehicle.getState());
vehicle_detail.put("owner_email", vehicle.getOwner_email());
vehicle_detail.put("description", vehicle.getDescription());

cars.add(vehicle_detail);
}

try (FileWriter file = new FileWriter(String.valueOf(path))) {
file.write(cars.toJSONString());
file.flush();
} catch (IOException e) {
e.printStackTrace();
}
}

private void parse_cars(org.json.simple.JSONObject car){
String id = (String) car.get("id");
String type = (String) car.get("type");
String headline = (String) car.get("headline");
String brand = (String) car.get("brand");
String model = (String) car.get("model");
int price = Integer.parseInt((String) car.get("price"));
int passed_km = Integer.parseInt((String) car.get("passed_km"));
String state = (String) car.get("state");
String owner_email = (String) car.get("owner_email");
String description = (String) car.get("description");

add_car_to_list(new Vehicle(id, type, headline, brand, model, price, passed_km, state, owner_email, description));
}

public static VehicleOps getVehicleOps() {
Expand All @@ -66,4 +88,8 @@ public static VehicleOps getVehicleOps() {
public ObservableList<Vehicle> getList_of_vehicles() {
return list_of_vehicles;
}

protected void add_car_to_list(Vehicle vehicle){
list_of_vehicles.add(vehicle);
}
}
1 change: 1 addition & 0 deletions src/com/groundZer0/autobazar/data/db/cars.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"owner_email":"test1","price":"5900","description":"There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable.","model":"Caravella T4","id":"000001","passed_km":"350000","state":"used","type":"car","headline":"VW T4 na dlhe cesty","brand":"Volkswagen"},{"owner_email":"test1","price":"5900","description":"There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable.","model":"Caravella T4","id":"000002","passed_km":"350000","state":"used","type":"car","headline":"VW T4 na dlhe cesty","brand":"Volkswagen"},{"owner_email":"test1","price":"5900","description":"There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable.","model":"Caravella T4","id":"000003","passed_km":"350000","state":"used","type":"car","headline":"VW T4 na dlhe cesty","brand":"Volkswagen"},{"owner_email":"test1","price":"5900","description":"There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable.","model":"Caravella T4","id":"000004","passed_km":"350000","state":"used","type":"car","headline":"VW T4 na dlhe cesty","brand":"Volkswagen"},{"owner_email":"test1","price":"5900","description":"There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable.","model":"Caravella T4","id":"000005","passed_km":"350000","state":"used","type":"car","headline":"VW T4 na dlhe cesty","brand":"Volkswagen"}]
3 changes: 0 additions & 3 deletions src/com/groundZer0/autobazar/data/db/cars.txt
Original file line number Diff line number Diff line change
@@ -1,3 +0,0 @@
000001~car~Zachovale prosche 911!~Porsche~911~39000~123900~used~admin~Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.
000002~car~Nova skoda kodiak za tu najlepsiu cenu na trhu a dokonca s novou STK a vela dalsim~Skoda~Kadiak~28000~0~new~admin~It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English.
000003~car~VW T4 na dlhe cestygg!treter~Volkswagen~Caravella T4~5900~350000~used~test@test.com~There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable.

0 comments on commit 1e71b44

Please sign in to comment.