Skip to content

Commit

Permalink
add files for refactoring task
Browse files Browse the repository at this point in the history
  • Loading branch information
cagix committed Jun 15, 2024
1 parent 6a1b4bb commit 74814c8
Show file tree
Hide file tree
Showing 8 changed files with 192 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/main/java/refactoring/Article.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package refactoring;

public class Article {

public Bike bike;
public int purchaseAmount;

public Article(Bike b, int pa) {
bike = b;
purchaseAmount = pa;
}
}
16 changes: 16 additions & 0 deletions src/main/java/refactoring/Bike.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package refactoring;

public class Bike {

public String productName;
public double price;
public Integer batteryCapacity;

public Integer getBatteryCapacity() {
return batteryCapacity;
}

public int getGearsCount() {
throw new UnsupportedOperationException("Not Implemented");
}
}
78 changes: 78 additions & 0 deletions src/main/java/refactoring/Bill.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
package refactoring;

import java.util.ArrayList;
import java.util.Date;

public class Bill {

public String customerName;
public String nickname;
public Date birthday;
public String email;
public String street;
public String streetNumber;
public int postalCode;
public String city;
public ArrayList<Article> articles;

public Bill(String cn, String n, String s, String sn, int pc, Date b, String e, String c) {
customerName = cn;
nickname = n;
street = s;
streetNumber = sn;
postalCode = pc;
birthday = b;
email = e;
city = c;
articles = new ArrayList<Article>();
}

public boolean addArticle(Article a) {
return articles.add(a);
}

public String getDetails() {
double total = 0;

String result = "Details for \"" + customerName + "\"\n";
result += street + " " + streetNumber + "\n";
result += postalCode + " " + city + "\n";
result += "Geburtstag: " + birthday + "\n";
result += "Email: " + email + "\n\n";
result += "refactoring.Article: \n";
for (Article article : articles) {
double price = 0;
if (article.bike instanceof Brompton) {
if (article.purchaseAmount > 1) {
price += (article.purchaseAmount - 1) * article.bike.price / 2;
}
price += article.bike.price * article.purchaseAmount;
} else if (article.bike instanceof EBike) {
price += article.bike.price * article.purchaseAmount;
} else if (article.bike instanceof Mountainbike) {
if (article.purchaseAmount > 2) {
price += article.purchaseAmount * article.bike.price * 9 / 10;
} else {
price += article.bike.price * article.purchaseAmount;
}
}
if (price > 1000f || price == 1000.0) {
price = price * 0.8;
}

result +=
"\t"
+ article.bike.productName
+ "\tx\t"
+ article.purchaseAmount
+ "\t=\t"
+ String.valueOf(price)
+ "\n";
total += price;
}

result += "\nTotal price:\t" + String.valueOf(total) + "\n";

return result;
}
}
30 changes: 30 additions & 0 deletions src/main/java/refactoring/Brompton.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package refactoring;

public class Brompton extends Bike {

public int maxSpeed;
public int rearGearsCount;
public int frontGearsCount;

public Brompton(String pn, double p, int ms, int rgc, int fgc) {
productName = pn;
price = p;
maxSpeed = ms;
rearGearsCount = rgc;
frontGearsCount = fgc;
}

public int getMaxSpeed() {
return maxSpeed;
}

@Override
public Integer getBatteryCapacity() {
return null;
}

@Override
public int getGearsCount() {
return rearGearsCount * frontGearsCount;
}
}
26 changes: 26 additions & 0 deletions src/main/java/refactoring/EBike.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package refactoring;

public class EBike extends Bike {

public int maxSpeed;
public int rearGearsCount;
public int frontGearsCount;

public EBike(String pn, double p, int ms, int rgc, int fgc, int bc) {
productName = pn;
price = p;
maxSpeed = ms;
rearGearsCount = rgc;
frontGearsCount = fgc;
batteryCapacity = bc;
}

public int getMaxSpeed() {
return maxSpeed;
}

@Override
public int getGearsCount() {
return rearGearsCount * frontGearsCount;
}
}
30 changes: 30 additions & 0 deletions src/main/java/refactoring/Mountainbike.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package refactoring;

public class Mountainbike extends Bike {

public int maxSpeed;
public int rearGearsCount;
public int frontGearsCount;

public Mountainbike(String pn, double p, int ms, int rgc, int fgc) {
productName = pn;
price = p;
maxSpeed = ms;
rearGearsCount = rgc;
frontGearsCount = fgc;
}

public int getMaxSpeed() {
return maxSpeed;
}

@Override
public Integer getBatteryCapacity() {
return null;
}

@Override
public int getGearsCount() {
return rearGearsCount * frontGearsCount;
}
}
Empty file removed src/test/java/.gitkeep
Empty file.
File renamed without changes.

0 comments on commit 74814c8

Please sign in to comment.