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
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Проект для практики исправления плохого кода (java)
## 1. Импортируйте как maven проект
## 2. В методе removeIngredient класса Pizza найдите плохие практики
## 3. Попробуйте переписать метод более качественно
# Проект для практики исправления плохого кода (java)
## 1. Импортируйте как maven проект
## 2. В методе removeIngredient класса Pizza найдите плохие практики
## 3. Попробуйте переписать метод более качественно
15 changes: 15 additions & 0 deletions pizza-order-training.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
</component>
</module>
54 changes: 31 additions & 23 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -1,24 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.simbirsoft</groupId>
<artifactId>pizza-order-training</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.simbirsoft</groupId>
<artifactId>pizza-order-training</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>compile</scope>
</dependency>
</dependencies>


</project>
254 changes: 127 additions & 127 deletions src/main/java/PizzaOrder.java
Original file line number Diff line number Diff line change
@@ -1,127 +1,127 @@
import controller.CliController;
import model.*;

import java.util.Scanner;

public class PizzaOrder {

private static final String HELP_COMMAND = "?";

private static final String ANOTHER_HELP_COMMAND = "help";

private static final String STORE_COMMAND = "-store";

private static final String SIZE_COMMAND = "-size";

private static final String ANOTHER_SIZE_COMMAND = "--S";

private static final String ADD_COMMAND = "-add";

private static final String ANOTHER_ADD_COMMAND = "--A";

private static final String REM_COMMAND = "-rem";

private static final String ANOTHER_REM_COMMAND = "--R";

private static final String OK_COMMAND = "-ok";

private static Storage storage;

private static Pizza pizza;

public static void main(String[] args) {
CliController.printHelloMessage();
initDefaultStorage();
try {
while (true) {
String input = new Scanner(System.in).nextLine();
if (input != null && !input.isEmpty()) {
if (HELP_COMMAND.equals(input) || ANOTHER_HELP_COMMAND.equals(
input)) {
CliController.printHelpMessage();
} else if (STORE_COMMAND.equals(input)) {
CliController.printStoreMessage(storage.getStorageIngredients());
// Если присутствуют команды, необходимые для указания размера,
// добавления/удаления ингридиентов
} else if (input.startsWith(SIZE_COMMAND)
|| input.startsWith(ANOTHER_SIZE_COMMAND)
|| input.startsWith(ADD_COMMAND)
|| input.startsWith(ANOTHER_ADD_COMMAND)
|| input.startsWith(REM_COMMAND)
|| input.startsWith(ANOTHER_REM_COMMAND)) {
String s = input.replaceAll(",", "");
s = s.replaceAll("\"", "");
String[] commands = s.split(" ");
pizza = parseCommands(commands);
System.out.println("Данные обновлены");
} else if (OK_COMMAND.equals(input)) {
if (pizza != null)
CliController.printOkMessage(pizza);
else {
System.out.println("Неизвестная команда\n Ознакомьтесь со справкой");
CliController.printHelpMessage();
}
} else {
System.out.println("Неизвестная команда\n Ознакомьтесь со справкой");
CliController.printHelpMessage();
}
}
}
} catch (StorageException | PizzaException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println("Произошла ошибка, ещё раз проверьте вводимые данные");
}
}

public static void initDefaultStorage() {
storage = new DefaultStorage();
try {
storage.addIngredient(new Ingredient("Сыр"), 200);
storage.addIngredient(new Ingredient("Перец"), 100);
storage.addIngredient(new Ingredient("Колбаса"), 50);
storage.addIngredient(new Ingredient("Соус"), 500);
} catch (StorageException e) {
System.out.println(e.getMessage());
}
}

private static Pizza parseCommands(
String[] commands
) throws PizzaException, StorageException {
if (commands != null && commands.length > 0) {
pizza = pizza != null ? pizza : new Pizza();
for (int i = 0; i < commands.length; i++) {
String command = commands[i];
if (SIZE_COMMAND.equals(command) || ANOTHER_SIZE_COMMAND
.equals(command)) {
pizza.setSize(Integer.valueOf(commands[i + 1]));
} else if (ADD_COMMAND.equals(command)
|| ANOTHER_ADD_COMMAND.equals(command)) {
for (int j = i + 1; j < commands.length; j += 2) {
Ingredient ingredient = new Ingredient(commands[j]);
int count = Integer.valueOf(commands[j + 1]);
pizza.addIngredient(
ingredient,
count
);
storage.removeIngredient(ingredient, count);
}
} else if (REM_COMMAND.equals(command)
|| ANOTHER_REM_COMMAND.equals(command)) {
for (int j = i + 1; j < commands.length; j += 2) {
Ingredient ingredient = new Ingredient(commands[j]);
int count = Integer.valueOf(commands[j + 1]);
pizza.removeIngredient(
ingredient,
count
);
storage.addIngredient(ingredient, count);
}
}
}
return pizza;
} else
throw new PizzaException("Неверная команада");
}
}
import controller.CliController;
import model.*;
import java.util.Scanner;
public class PizzaOrder {
private static final String HELP_COMMAND = "?";
private static final String ANOTHER_HELP_COMMAND = "help";
private static final String STORE_COMMAND = "-store";
private static final String SIZE_COMMAND = "-size";
private static final String ANOTHER_SIZE_COMMAND = "--S";
private static final String ADD_COMMAND = "-add";
private static final String ANOTHER_ADD_COMMAND = "--A";
private static final String REM_COMMAND = "-rem";
private static final String ANOTHER_REM_COMMAND = "--R";
private static final String OK_COMMAND = "-ok";
private static Storage storage;
private static Pizza pizza;
public static void main(String[] args) {
CliController.printHelloMessage();
initDefaultStorage();
try {
while (true) {
String input = new Scanner(System.in).nextLine();
if (input != null && !input.isEmpty()) {
if (HELP_COMMAND.equals(input) || ANOTHER_HELP_COMMAND.equals(
input)) {
CliController.printHelpMessage();
} else if (STORE_COMMAND.equals(input)) {
CliController.printStoreMessage(storage.getStorageIngredients());
// Если присутствуют команды, необходимые для указания размера,
// добавления/удаления ингридиентов
} else if (input.startsWith(SIZE_COMMAND)
|| input.startsWith(ANOTHER_SIZE_COMMAND)
|| input.startsWith(ADD_COMMAND)
|| input.startsWith(ANOTHER_ADD_COMMAND)
|| input.startsWith(REM_COMMAND)
|| input.startsWith(ANOTHER_REM_COMMAND)) {
String s = input.replaceAll(",", "");
s = s.replaceAll("\"", "");
String[] commands = s.split(" ");
pizza = parseCommands(commands);
System.out.println("Данные обновлены");
} else if (OK_COMMAND.equals(input)) {
if (pizza != null)
CliController.printOkMessage(pizza);
else {
System.out.println("Неизвестная команда\n Ознакомьтесь со справкой");
CliController.printHelpMessage();
}
} else {
System.out.println("Неизвестная команда\n Ознакомьтесь со справкой");
CliController.printHelpMessage();
}
}
}
} catch (StorageException | PizzaException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println("Произошла ошибка, ещё раз проверьте вводимые данные");
}
}
public static void initDefaultStorage() {
storage = new DefaultStorage();
try {
storage.addIngredient(new Ingredient("Сыр"), 200);
storage.addIngredient(new Ingredient("Перец"), 100);
storage.addIngredient(new Ingredient("Колбаса"), 50);
storage.addIngredient(new Ingredient("Соус"), 500);
} catch (StorageException e) {
System.out.println(e.getMessage());
}
}
private static Pizza parseCommands(
String[] commands
) throws PizzaException, StorageException {
if (commands != null && commands.length > 0) {
pizza = pizza != null ? pizza : new Pizza();
for (int i = 0; i < commands.length; i++) {
String command = commands[i];
if (SIZE_COMMAND.equals(command) || ANOTHER_SIZE_COMMAND
.equals(command)) {
pizza.setSize(Integer.valueOf(commands[i + 1]));
} else if (ADD_COMMAND.equals(command)
|| ANOTHER_ADD_COMMAND.equals(command)) {
for (int j = i + 1; j < commands.length; j += 2) {
Ingredient ingredient = new Ingredient(commands[j]);
int count = Integer.valueOf(commands[j + 1]);
pizza.addIngredient(
ingredient,
count
);
storage.removeIngredient(ingredient, count);
}
} else if (REM_COMMAND.equals(command)
|| ANOTHER_REM_COMMAND.equals(command)) {
for (int j = i + 1; j < commands.length; j += 2) {
Ingredient ingredient = new Ingredient(commands[j]);
int count = Integer.valueOf(commands[j + 1]);
pizza.removeIngredient(
ingredient,
count
);
storage.addIngredient(ingredient, count);
}
}
}
return pizza;
} else
throw new PizzaException("Неверная команада");
}
}
Loading