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: 8 additions & 0 deletions task01/src/com/example/task01/Level.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.example.task01;

public enum Level {
DEBUG,
INFO,
WARNING,
ERROR
}
73 changes: 73 additions & 0 deletions task01/src/com/example/task01/Logger.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package com.example.task01;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

public class Logger {
private String name;
private Level level;
private static ArrayList<Logger> loggers = new ArrayList<Logger>();
public Logger(String name) {
this.name = name;
}
public String getName(){
return name;
}
public static Logger getLogger(String name){
for (int i= 0; i< loggers.size();i++){
if(loggers.get(i).getName().equals(name)){
return loggers.get(i);
}
}
Logger logger = new Logger(name);
loggers.add(logger);
return logger;
}
public void setLevel(Level level) {
this.level = level;
}
public Level getLevel() {
return level;
}
private String formatMessage(Level level, String Message){
String date = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new Date());

return String.format("[%s] %s %s - %s", level.name(), date, this.name, Message);
}
public void log(Level level, String message){

if(level.compareTo(this.level) >= 0){
System.out.println(formatMessage(level, message));
}
}
public void log(Level level, String format, Object... args){
if(level.compareTo(this.level) >= 0){
System.out.println(formatMessage(level, String.format(format, args)));
}
}
public void debug(String message){
log(Level.DEBUG, message);
}
public void debug(String format, Object... args){
log(Level.DEBUG,format,args);
}
public void info(String message){
log(Level.INFO, message);
}
public void info(String format, Object... args){
log(Level.INFO, format, args);
}
public void warning(String message){
log(Level.WARNING, message);
}
public void warning(String format, Object... args){
log(Level.WARNING, format, args);
}
public void error(String message){
log(Level.ERROR, message);
}
public void error(String format, Object... args){
log(Level.ERROR, format, args);
}
}
2 changes: 1 addition & 1 deletion task01/src/com/example/task01/Task01Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

public class Task01Main {
public static void main(String[] args) {

return;
}
}
18 changes: 18 additions & 0 deletions task02/src/com/example/task02/DiscountBill.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.example.task02;

public class DiscountBill extends Bill{
private final double discount;
public DiscountBill(int discount) {
this.discount = discount;
}
public String getDiscount() {
return discount + "%";
}
public long getAbsoluteDiscount(){
return (long)(super.getPrice() * ((double)discount / 100));
}
@Override
public long getPrice() {
return super.getPrice() - getAbsoluteDiscount();
}
}
12 changes: 6 additions & 6 deletions task02/src/com/example/task02/Task02Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

public class Task02Main {

private static final Item ITEM1 = new Item("Товар 1", 10);
private static final Item ITEM2 = new Item("Товар 2", 20);
private static final Item ITEM3 = new Item("Товар 3", 30);
private static final Item ITEM4 = new Item("Товар 4", 40);
private static final Item ITEM5 = new Item("Товар 5", 50);
private static final Item ITEM6 = new Item("Товар 6", 60);
private static final Item ITEM1 = new Item("Item 1", 10);
private static final Item ITEM2 = new Item("Item 2", 20);
private static final Item ITEM3 = new Item("Item 3", 30);
private static final Item ITEM4 = new Item("Item 4", 40);
private static final Item ITEM5 = new Item("Item 5", 50);
private static final Item ITEM6 = new Item("Item 6", 60);

public static void main(String[] args) {
Bill bill = new Bill();
Expand Down
29 changes: 29 additions & 0 deletions task03/src/com/example/task03/Hours.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.example.task03;

public class Hours implements TimeUnit{
private final long amount;

public Hours(long amount) {
this.amount = amount;
}

@Override
public long toMinutes() {
return amount * 60;
}

@Override
public long toSeconds() {
return amount * 3600;
}

@Override
public long toMillis() {
return amount * 3600000;
}

@Override
public long toHours() {
return amount;
}
}
7 changes: 6 additions & 1 deletion task03/src/com/example/task03/Milliseconds.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ public long toSeconds() {

@Override
public long toMinutes() {
return amount / 1000 * 60;
return amount / 60000;
}

@Override
public long toHours() {
return amount / 3600000;
}
}
15 changes: 10 additions & 5 deletions task03/src/com/example/task03/Minutes.java
Original file line number Diff line number Diff line change
@@ -1,27 +1,32 @@
package com.example.task03;

public class Minutes implements TimeUnit {
private final long amount;

public Minutes(long amount) {
// TODO: реализовать
throw new UnsupportedOperationException();
this.amount = amount;
}

@Override
public long toMillis() {
// TODO: реализовать
throw new UnsupportedOperationException();
return amount * 60 * 1000;
}

@Override
public long toSeconds() {
// TODO: реализовать
throw new UnsupportedOperationException();
return amount * 60;
}

@Override
public long toMinutes() {
// TODO: реализовать
throw new UnsupportedOperationException();
return amount;
}

@Override
public long toHours() {
return amount / 60;
}
}
5 changes: 5 additions & 0 deletions task03/src/com/example/task03/Seconds.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,9 @@ public long toSeconds() {
public long toMinutes() {
return Math.round(amount / 60);
}

@Override
public long toHours() {
return amount / 3600;
}
}
2 changes: 2 additions & 0 deletions task03/src/com/example/task03/TimeUnit.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,6 @@ public interface TimeUnit {
*/
long toMinutes();

long toHours();

}
2 changes: 2 additions & 0 deletions task03/src/com/example/task03/TimeUnitUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,6 @@ public static Milliseconds toMillis(Seconds seconds) {
public static Seconds toSeconds(Milliseconds millis) {
return new Seconds(millis.toSeconds());
}
public static Minutes toMinutes(Seconds seconds){return new Minutes(seconds.toMinutes());}
public static Hours toHours(Minutes minutes){return new Hours(minutes.toHours());}
}
9 changes: 9 additions & 0 deletions task04/src/com/example/task04/ConsoleHandler.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.example.task04;

public class ConsoleHandler implements MessageHandler{

@Override
public void Handle(String message) {
System.out.println(message);
}
}
33 changes: 33 additions & 0 deletions task04/src/com/example/task04/FileHandler.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.example.task04;
import javax.imageio.IIOException;
import java.io.*;
public class FileHandler implements MessageHandler{
private String fileName;
public FileHandler(){}
public FileHandler(String fileName){
this.fileName = fileName;
}
@Override
public void Handle(String message) {
try {
PrintWriter pw = new PrintWriter( new FileWriter(fileInit(fileName),true) );
pw.println(message);
pw.close();
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
private File fileInit(String fileName){
File file = new File(String.format("task04/%s.txt",fileName));
if(!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return file;
}
}
15 changes: 15 additions & 0 deletions task04/src/com/example/task04/HandleEnum.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.example.task04;
import java.time.temporal.ChronoUnit;
public enum HandleEnum {
ConsoleHandle(new ConsoleHandler()),
FileHandle(new FileHandler()),
RotationFileHandle(new RotationFileHandler(ChronoUnit.SECONDS)),
MemoryHandle(new MemoryHandler());
private final MessageHandler messageHandler;
HandleEnum(MessageHandler messageHandler) {
this.messageHandler = messageHandler;
}
public MessageHandler getHandle(){
return this.messageHandler;
}
}
8 changes: 8 additions & 0 deletions task04/src/com/example/task04/Level.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.example.task04;

public enum Level {
DEBUG,
INFO,
WARNING,
ERROR
}
75 changes: 75 additions & 0 deletions task04/src/com/example/task04/Logger.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
package com.example.task04;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

public class Logger {
private String name;
private Level level;
private MessageHandler messageHandler;
private static ArrayList<Logger> loggers = new ArrayList<Logger>();
public Logger(String name, HandleEnum handleType) {
this.name = name;
messageHandler = handleType.getHandle();
}
public String getName(){
return name;
}
public static Logger getLogger(String name){
for (int i= 0; i< loggers.size();i++){
if(loggers.get(i).getName().equals(name)){
return loggers.get(i);
}
}
Logger logger = new Logger(name);
loggers.add(logger);
return logger;
}
public void setLevel(Level level) {
this.level = level;
}
public Level getLevel() {
return level;
}
private String formatMessage(Level level, String Message){
String date = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new Date());

return String.format("[%s] %s %s - %s", level.name(), date, this.name, Message);
}
public void log(Level level, String message){

if(level.compareTo(this.level) >= 0){
messageHandler.Handle(formatMessage(level, message));
}
}
public void log(Level level, String format, Object... args){
if(level.compareTo(this.level) >= 0){
messageHandler.Handle(formatMessage(level, String.format(format, args)));
}
}
public void debug(String message){
log(Level.DEBUG, message);
}
public void debug(String format, Object... args){
log(Level.DEBUG,format,args);
}
public void info(String message){
log(Level.INFO, message);
}
public void info(String format, Object... args){
log(Level.INFO, format, args);
}
public void warning(String message){
log(Level.WARNING, message);
}
public void warning(String format, Object... args){
log(Level.WARNING, format, args);
}
public void error(String message){
log(Level.ERROR, message);
}
public void error(String format, Object... args){
log(Level.ERROR, format, args);
}
}
20 changes: 20 additions & 0 deletions task04/src/com/example/task04/MemoryHandler.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.example.task04;

import java.util.ArrayList;

public class MemoryHandler implements MessageHandler{
private ArrayList<String> memory = new ArrayList<>();
private int limit = 50;
private ConsoleHandler handler = new ConsoleHandler();
@Override
public void Handle(String message) {
if (memory.size() < limit){
memory.add(message);
}else {
for (String element : memory){
handler.Handle(element);
}
memory.clear();
}
}
}
Loading