From dda459c9713303002c09a1f21998f4de5c39de0d Mon Sep 17 00:00:00 2001 From: erius Date: Mon, 9 May 2022 17:22:26 +0300 Subject: [PATCH] changed some methods that would return null in place of a message in CommandResult removed null check when calling CommandResult#getValue() --- Lab5Client/build/libs/Lab5Client-2.0.jar | Bin 74732 -> 74787 bytes Lab5Client/build/libs/connection.properties | 2 +- .../build/libs/connection.properties.bak | 4 +-- .../commandline/CommandLineHandler.java | 24 +++++++++------- .../src/main/java/client/net/UDPClient.java | 6 ++-- .../common/parser/ConnectionProperties.class | Bin 3794 -> 3881 bytes .../javadoc/common/data/package-tree.html | 2 +- Lab5Core/build/libs/Lab5Core-2.0.jar | Bin 37831 -> 37977 bytes .../compileJava/previous-compilation-data.bin | Bin 7203 -> 7203 bytes .../java/common/commandline/Executables.java | 26 ++++++++++++------ Lab5Server/build/libs/Lab5Server-2.0.jar | Bin 42174 -> 42365 bytes Lab5Server/build/libs/connection.properties | 2 +- .../src/main/java/server/net/UDPServer.java | 26 ++++++++++-------- 13 files changed, 53 insertions(+), 39 deletions(-) diff --git a/Lab5Client/build/libs/Lab5Client-2.0.jar b/Lab5Client/build/libs/Lab5Client-2.0.jar index 9bb66188717c8291042af3f3d25e085d7871ce89..06ad261dd0e4468ae921098136fd0144a8e44463 100644 GIT binary patch delta 22998 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 delta 22900 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 R4(@XRy!dIv*t-Gb{{SZ2(rW+! diff --git a/Lab5Client/build/libs/connection.properties b/Lab5Client/build/libs/connection.properties index 15fc23f..f5630d4 100644 --- a/Lab5Client/build/libs/connection.properties +++ b/Lab5Client/build/libs/connection.properties @@ -1,2 +1,2 @@ -hostname=helios.se.ifmo.ru +hostname=localhost port=1234 \ No newline at end of file diff --git a/Lab5Client/build/libs/connection.properties.bak b/Lab5Client/build/libs/connection.properties.bak index 193632e..168e0c6 100644 --- a/Lab5Client/build/libs/connection.properties.bak +++ b/Lab5Client/build/libs/connection.properties.bak @@ -1,2 +1,2 @@ -hostname=s316304@helios.se.ifmo.ru -port=1234 \ No newline at end of file +hostname=localhost +port=2222 \ No newline at end of file diff --git a/Lab5Client/src/main/java/client/commandline/CommandLineHandler.java b/Lab5Client/src/main/java/client/commandline/CommandLineHandler.java index a484b30..88bf7ee 100644 --- a/Lab5Client/src/main/java/client/commandline/CommandLineHandler.java +++ b/Lab5Client/src/main/java/client/commandline/CommandLineHandler.java @@ -1,8 +1,10 @@ package client.commandline; import client.net.UDPClient; +import common.commandline.Executables; import common.commandline.response.CommandResult; import common.commandline.response.DefaultResponse; +import common.commandline.response.Response; import common.parser.ConnectionProperties; import common.util.UtilFunctions; @@ -68,7 +70,7 @@ public final class CommandLineHandler { System.out.flush(); } } catch (IOException | InterruptedException e) { - e.printStackTrace(); + System.err.println("Что-то пошло не так"); } } @@ -92,11 +94,10 @@ public final class CommandLineHandler { } boolean argsValid = command.validate(args); if (!argsValid) return; - CommandResult result = command.isClientOnly() || clientMode ? - command.executeOnClient() : executeOnServer(udp, command); + boolean isClient = command.isClientOnly() || clientMode; + CommandResult result = isClient ? command.executeOnClient() : executeOnServer(udp, command); PrintStream ps = result.getResponse() == DefaultResponse.OK ? System.out : System.err; - if (result.getValue() == null) ps.println(result.getResponse().getMsg()); - else ps.println(result.getValue()); + ps.println(result.getValue()); updateHistory(alias); } @@ -243,18 +244,21 @@ public final class CommandLineHandler { args -> { String fileName = (String) args[0]; File file = new File(fileName); - if (!file.exists() || file.isDirectory()) - return new CommandResult(null, DefaultResponse.FILE_NOT_FOUND); + if (!file.exists() || file.isDirectory()) { + Response response = DefaultResponse.FILE_NOT_FOUND; + return new CommandResult(response.getMsg(), response); + } Reader streamReader; try { streamReader = new InputStreamReader(new FileInputStream(file)); } catch (FileNotFoundException e) { - e.printStackTrace(); - return new CommandResult(null, DefaultResponse.UNKNOWN); + Response response = DefaultResponse.UNKNOWN; + return new CommandResult(response.getMsg(), response); } instance.addNewInput(streamReader, fileName); - return new CommandResult(null, DefaultResponse.OK); + Response response = DefaultResponse.OK; + return new CommandResult(response.getMsg(), response); }); } diff --git a/Lab5Client/src/main/java/client/net/UDPClient.java b/Lab5Client/src/main/java/client/net/UDPClient.java index 62a8901..a71271d 100644 --- a/Lab5Client/src/main/java/client/net/UDPClient.java +++ b/Lab5Client/src/main/java/client/net/UDPClient.java @@ -45,10 +45,8 @@ public class UDPClient { public CommandResult send(Executable executable, Object[] args) { if (!available) return new CommandResult(null, DefaultResponse.HOST_NOT_FOUND); byte[] buffer; - try ( - ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream(); - ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteOutputStream) - ) { + try (ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream()) { + ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteOutputStream); objectOutputStream.writeObject(executable); objectOutputStream.writeObject(args); buffer = byteOutputStream.toByteArray(); diff --git a/Lab5Core/build/classes/java/main/common/parser/ConnectionProperties.class b/Lab5Core/build/classes/java/main/common/parser/ConnectionProperties.class index 71b4f312ab5f9fa750ec4b1ad3e85df9db4974c4..5f86f73f0b3c245d9dedaa8550fabee11128554f 100644 GIT binary patch delta 1375 zcmZ9M+gDXp6vlu1+}38Zxos{T5D+P~pyVMiDy>N6A|ND)k)<6C@PeR#N|v3ntEG0? zWhqi=7qTc3>Oh{dn`xOPk(E94;A8(mqZrj(ppJ&)j5F6-bAEHKZ+&a-HI{WKJACS& zqsM?k&RNW%IR=v!lhqaptkH|LChII(S+8g_X*bzmveBZ0PLnQ+O>9}>UkLYo`4n7*z)5moDam5pgCoP_0hsD!8W3iK67Sq^m zk;AjvJZJK}#S6HxyvR$6J-WuridPhSEoQOL;yQY?*{@Bn&gnIIRq>idkq#&Dy2$~> zL5mxC!y@n|ZzNyXbrWs6x4NftZ8d;YmEI#adlmxRqLul8|p(VTbqQdo8&1p`rJ~F z>)R>>+}}OtpnxjEh)fp=}*qu)&nOm`1^cLv_K`GCW2 zi7y=Jvl*b?J>kpo9%0b^!*`8YM!(GvAG#U-W!{e@t=qrUi7;$4LXFMG+8h=4d4Exz zB5LyqpDK>oe8%UBFKoW#E1NQoYxA|u2~LUxmf{(kufsBTX{=8v~BNHhL#Revv z7L_u$CjnGZEvpz7QKOS8+(bJ!95awNAYLyzD-FNce8F5xob*$wv{+EKxL75IBx;2W z+#!DxW1OI3vEb{dmztVTkC67rc>N$A$BN*q%sWZKAbuw{f=cp@_2-RXSLIJS!%o}< zZ+?XMe#x6;GDB)g4Y7s7q)3>|mhYyRZ0X`$ZX%DHh1=W-W@)ltjChtzFv}KfEe*m( zbBxC`PP%X$Cq=PTINy0uI-^HaTJ96jZ&4B&he;d~#z`YML-?a4H##Z9q*mrdNZU)i zKEM?bf_-d}X_RzH$Z)1a$P_@93=y&;OpTJ$7-d?cV@AkzQrz8f<@rHTB1%!C+|cX@ zH~cTX__Fk%Ys6=S^-VO$DfG=*a(YL8nWS*#h5J~j9~EhfZlK5geiE delta 1324 zcmZ9M`Bzm{6vsdJ4V=s6f^eBpQ7Bo9M@l6)L{?xH3J!%yWSI|RQUro0Qb{kHEp70Y ziKG<`WKl8HgM6k_L$8)FVhR^+V z;uKKAj~3Swj3c!WnS9^-L~CwS6gKKm@@ z@su`Co9wqZz%vOv%X5n7b(@01GBlkE7TU;*HP<(82f~ex8%_p3)Dd)5{ zpW1xJ=LUwQ_`>E(&M3aJIm_1u$(PDt^Nk#RChkh7oO8PRTbuKm(RWn1N_Bd_=d`;= zH78u4LNRIc15;zaso%X@^JK2TLylHQq8zU02Jt=&X;UF~rL2m@8{++eaf}fOJlrTY zE|#=dC9ypN;3jUCRXmlfmdr}G$<7a(!+~K*dSgWy_$4kBNPt9&NaqTfxrP5Vi6@0M zR0*b9J`-b_EX7*EuVcM#DcOD@;1R!g6ps@h!B-VH%dAoSjukI{cLT;3Kby4QmIe8KComBUi#L94{C=sQ!P9A7U zgr)y0Uv^2kbhoQTh-*9(l#R$0=E$gAkgLv!vPrI{U(*sv9Fk?%;WAQ1hzz-MCXMn~ zJt9-DjLHFKb5Ib6=$*?E(QQC}2*dJUI?n=Wna`w@UgUCqq9CSXiM)NIOx#9plY@Ii z&rPDIM;fJ5%k4s8Qq-&Cju@?zZ01fOqcwK$O|wXG*PnE?Dz^NgCxg3X$HUgY0d++J Ay8r+H diff --git a/Lab5Core/build/docs/javadoc/common/data/package-tree.html b/Lab5Core/build/docs/javadoc/common/data/package-tree.html index af23486..d6beec8 100644 --- a/Lab5Core/build/docs/javadoc/common/data/package-tree.html +++ b/Lab5Core/build/docs/javadoc/common/data/package-tree.html @@ -91,8 +91,8 @@ diff --git a/Lab5Core/build/libs/Lab5Core-2.0.jar b/Lab5Core/build/libs/Lab5Core-2.0.jar index 5437021624a005e410121edffa57ff7af7037d70..b00027ee854d86aa05c9c134bfa1a5f93bd9be76 100644 GIT binary patch delta 7959 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 Ivx)+l88VR-=l}o! delta 50 zcmV-20L}lSIHNeQr2!CpARzcXFT diff --git a/Lab5Core/src/main/java/common/commandline/Executables.java b/Lab5Core/src/main/java/common/commandline/Executables.java index 0d99a53..9f410cb 100644 --- a/Lab5Core/src/main/java/common/commandline/Executables.java +++ b/Lab5Core/src/main/java/common/commandline/Executables.java @@ -5,6 +5,7 @@ import common.collection.PeopleDatabase; import common.commandline.response.CommandResult; import common.commandline.response.DefaultResponse; import common.commandline.response.PeopleDatabaseResponse; +import common.commandline.response.Response; import common.data.Person; import java.util.Collections; @@ -15,26 +16,30 @@ public enum Executables { PeopleDatabase peopleDatabase = (PeopleDatabase) args[0]; Person person = (Person) args[1]; boolean success = peopleDatabase.getCollection().add(person); - return new CommandResult(null, success ? DefaultResponse.OK : PeopleDatabaseResponse.FAILED_TO_ADD); + Response response = success ? DefaultResponse.OK : PeopleDatabaseResponse.FAILED_TO_ADD; + return new CommandResult(response.getMsg(), response); }), ADD_IF_MAX(args -> { PeopleDatabase peopleDatabase = (PeopleDatabase) args[0]; Person person = (Person) args[1]; Person last = peopleDatabase.getCollection().last(); if (person.compareTo(last) > 0) return ADD.executable.execute(args); - return new CommandResult(null, PeopleDatabaseResponse.FAILED_TO_ADD); + Response response = PeopleDatabaseResponse.FAILED_TO_ADD; + return new CommandResult(response.getMsg(), response); }), ADD_IF_MIN(args -> { PeopleDatabase peopleDatabase = (PeopleDatabase) args[0]; Person person = (Person) args[1]; Person first = peopleDatabase.getCollection().first(); if (person.compareTo(first) < 0) return ADD.executable.execute(args); - return new CommandResult(null, PeopleDatabaseResponse.FAILED_TO_ADD); + Response response = PeopleDatabaseResponse.FAILED_TO_ADD; + return new CommandResult(response.getMsg(), response); }), CLEAR(args -> { PeopleDatabase peopleDatabase = (PeopleDatabase) args[0]; peopleDatabase.getCollection().clear(); - return new CommandResult(null, DefaultResponse.OK); + Response response = DefaultResponse.OK; + return new CommandResult(response.getMsg(), response); }), FILTER_CONTAINS_NAME(args -> { PeopleDatabase peopleDatabase = (PeopleDatabase) args[0]; @@ -64,13 +69,15 @@ public enum Executables { PeopleDatabase peopleDatabase = (PeopleDatabase) args[0]; long id = (long) args[1]; boolean success = peopleDatabase.getCollection().removeIf(p -> p.getId().equals(id)); - return new CommandResult(null, success ? DefaultResponse.OK : PeopleDatabaseResponse.ELEMENT_NOT_FOUND); + Response response = success ? DefaultResponse.OK : PeopleDatabaseResponse.ELEMENT_NOT_FOUND; + return new CommandResult(response.getMsg(), response); }), SAVE(args -> { PeopleDatabase peopleDatabase = (PeopleDatabase) args[0]; try { peopleDatabase.save(); - return new CommandResult(null, DefaultResponse.OK); + Response response = DefaultResponse.OK; + return new CommandResult(response.getMsg(), response); } catch (Database.DatabaseSaveFailedException e) { return new CommandResult(e.getMessage(), PeopleDatabaseResponse.SAVE_FAILED); } @@ -83,11 +90,11 @@ public enum Executables { }), SUM_OF_HEIGHT(args -> { PeopleDatabase peopleDatabase = (PeopleDatabase) args[0]; - int sum = peopleDatabase.getCollection() + String sum = "Сумма ростов всех людей в коллекции - " + peopleDatabase.getCollection() .stream() .mapToInt(p -> p.getHeight() == null ? 0 : p.getHeight()) .sum(); - return new CommandResult("Сумма ростов всех людей в коллекции - " + sum, DefaultResponse.OK); + return new CommandResult(sum, DefaultResponse.OK); }), UPDATE(args -> { PeopleDatabase peopleDatabase = (PeopleDatabase) args[0]; @@ -97,7 +104,8 @@ public enum Executables { .stream() .filter(p -> p.getId().equals(id)) .findFirst(); - if (!optionalPerson.isPresent()) return new CommandResult(null, PeopleDatabaseResponse.ELEMENT_NOT_FOUND); + Response response = PeopleDatabaseResponse.ELEMENT_NOT_FOUND; + if (!optionalPerson.isPresent()) return new CommandResult(response.getMsg(), response); Person oldPerson = optionalPerson.get(); CommandResult result = REMOVE_BY_ID.executable.execute(new Object[]{ peopleDatabase, id }); if (result.getResponse() != DefaultResponse.OK) return result; diff --git a/Lab5Server/build/libs/Lab5Server-2.0.jar b/Lab5Server/build/libs/Lab5Server-2.0.jar index 9d96d091406c444775b15465209cbd7fec9583f8..e2ebd8f5278b8eefd763b12cbe6b8495befce7a4 100644 GIT binary patch delta 11359 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