Skip to content
Snippets Groups Projects
Commit cdc2779a authored by Jan Kožusznik's avatar Jan Kožusznik
Browse files

Solution

parent 6a64180a
Branches solution
No related merge requests found
Pipeline #61 failed with stages
in 0 seconds
...@@ -52,5 +52,13 @@ ...@@ -52,5 +52,13 @@
<version>5.5.2</version> <version>5.5.2</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.18</version>
<scope>provided</scope>
</dependency>
</dependencies> </dependencies>
</project> </project>
...@@ -11,4 +11,17 @@ public class ColorPoint extends Point { ...@@ -11,4 +11,17 @@ public class ColorPoint extends Point {
this.color = color; this.color = color;
} }
@Override
public boolean equals(Object obj) {
if (obj instanceof ColorPoint) {
ColorPoint cp = (ColorPoint) obj;
return super.equals(obj) && cp.color == color;
}
return false;
}
@Override
protected boolean canEqual(Point point) {
return point instanceof ColorPoint;
}
} }
package koz01.java2.lab04;
import javafx.scene.paint.Color;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
public class ColorPoint2 extends Point2 {
private Color color;
public ColorPoint2(double x, double y, Color color) {
super(x, y);
this.color = color;
}
}
package koz01.java2.lab04;
import koz01.java2.lab04.NutritionFacts.Builder;
public class MainNutrition {
public static void main(String[] args) {
NutritionFacts nf = new Builder(10, 20)
.calories(25)
.carbohydrate(15).build();
NutritionFacts2 nf2 = NutritionFacts2.builder(10, 20).calories(20).carbohydrate(20).build();
}
}
package koz01.java2.lab04; package koz01.java2.lab04;
public class NutritionFacts { public class NutritionFacts {
//mandatory
private final int servingSize;// (mL)required private final int servingSize;// (mL)required
private final int servings;// (per container) required private final int servings;// (per container) required
private final int calories;// (per serving)optional private final int calories;// (per serving)optional
private final int fat;// (g/serving)optional private final int fat;// (g/serving)optional
private final int sodium;// (mg/serving)optional private final int sodium;// (mg/serving)optional
private final int carbohydrate; // (g/serving) optional private final int carbohydrate; // (g/serving) optional
public NutritionFacts(int servingSize, int servings) {
this(servingSize, servings, 0); private NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium, int carbohydrate) {
}
public NutritionFacts(int servingSize, int servings, int calories) {
this(servingSize, servings, calories, 0);
}
public NutritionFacts(int servingSize, int servings, int calories, int fat) {
this(servingSize, servings, calories, fat, 0);
}
public NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium) {
this(servingSize, servings, calories, fat, sodium, 0);
}
public NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium, int carbohydrate) {
this.servingSize = servingSize; this.servingSize = servingSize;
this.servings = servings; this.servings = servings;
this.calories = calories; this.calories = calories;
...@@ -32,4 +20,45 @@ public class NutritionFacts { ...@@ -32,4 +20,45 @@ public class NutritionFacts {
this.sodium = sodium; this.sodium = sodium;
this.carbohydrate = carbohydrate; this.carbohydrate = carbohydrate;
} }
public static class Builder {
//mandatory
private final int servingSize;// (mL)required
private final int servings;// (per container) required
//optional
private int calories = 0;// (per serving)optional
private int fat = 0;// (g/serving)optional
private int sodium = 0;// (mg/serving)optional
private int carbohydrate = 0; // (g/serving) optional
public Builder(int servingSize, int servings) {
this.servingSize = servingSize;
this.servings = servings;
}
public Builder calories(int calories) {
this.calories = calories;
return this;
}
public Builder fat(int fat) {
this.fat = fat;
return this;
}
public Builder sodium(int sodium) {
this.sodium = sodium;
return this;
}
public Builder carbohydrate(int carbohydrate) {
this.carbohydrate = carbohydrate;
return this;
}
public NutritionFacts build() {
return new NutritionFacts(servingSize, servings, calories, fat, sodium, carbohydrate);
}
}
} }
package koz01.java2.lab04;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
@Builder()
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class NutritionFacts2 {
//mandatory
private final int servingSize;// (mL)required
private final int servings;// (per container) required
private final int calories;// (per serving)optional
private final int fat;// (g/serving)optional
private final int sodium;// (mg/serving)optional
private final int carbohydrate; // (g/serving) optional
public static NutritionFacts2Builder builder(int servingSize, int servings) {
return new NutritionFacts2Builder().servingSize(servingSize).servings(servings);
}
}
...@@ -3,7 +3,7 @@ package koz01.java2.lab04; ...@@ -3,7 +3,7 @@ package koz01.java2.lab04;
public class Point { public class Point {
private double x; private double x;
private double y; private double y;
public Point(double x, double y) { public Point(double x, double y) {
...@@ -11,5 +11,17 @@ public class Point { ...@@ -11,5 +11,17 @@ public class Point {
this.y = y; this.y = y;
} }
@Override
public boolean equals(Object obj) {
if (obj instanceof Point) {
Point point = (Point) obj;
return point.canEqual(this) && x == point.x && y == point.y;
}
return false;
}
protected boolean canEqual(Point point) {
return true;
}
} }
package koz01.java2.lab04;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode
public class Point2 {
private double x;
private double y;
public Point2(double x, double y) {
this.x = x;
this.y = y;
}
}
...@@ -3,4 +3,5 @@ module koz01.java2.lab04 { ...@@ -3,4 +3,5 @@ module koz01.java2.lab04 {
requires javafx.fxml; requires javafx.fxml;
opens koz01.java2.lab04 to javafx.fxml; opens koz01.java2.lab04 to javafx.fxml;
exports koz01.java2.lab04; exports koz01.java2.lab04;
requires lombok;
} }
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment