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
23 changes: 23 additions & 0 deletions .github/workflows/superlinter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: SuperLinter

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
lint:
name: Lint Code Base
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Run Super-Linter
uses: github/super-linter@v5
env:
VALIDATE_ALL_CODEBASE: true
DEFAULT_BRANCH: main
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
.idea/
target/
target/
.vscode/
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"java.configuration.updateBuildConfiguration": "interactive"
}
24 changes: 6 additions & 18 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,14 @@
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>ua.edu.ucu.apps</groupId>
<artifactId>Lab5.1</artifactId>
<groupId>ucu.apps</groupId>
<artifactId>ucu</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
Expand All @@ -23,20 +27,4 @@
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M7</version>
</plugin>
</plugins>
</build>

<properties>
<maven.compiler.source>15</maven.compiler.source>
<maven.compiler.target>15</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

</project>
13 changes: 13 additions & 0 deletions src/main/java/flower/store/Cammomile.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package flower.store;

class Cammomile extends Flower {

public Cammomile() {
super(FlowerColor.WHITE, FlowerType.CAMMOMILE, 0.0, 0.0);
}

public Cammomile(double sepalLength, FlowerColor color, double price) {
super(color, FlowerType.CAMMOMILE, price, sepalLength);
}
}

23 changes: 15 additions & 8 deletions src/main/java/flower/store/Flower.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,27 @@

import lombok.Getter;
import lombok.Setter;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;



@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class Flower {
@Getter
private double sepalLength;
private FlowerColor color;
@Getter
private double price;
@Getter
private FlowerType flowerType;
private double price;
private double sepalLength;

public Flower(Flower flower) {
this.color = flower.color;
this.flowerType = flower.flowerType;
this.price = flower.price;
this.sepalLength = flower.sepalLength;
}

public String getColor() {
return color.toString();
return color.getCode();
}
}
31 changes: 31 additions & 0 deletions src/main/java/flower/store/FlowerBucket.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package flower.store;

import java.util.ArrayList;
import java.util.List;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@AllArgsConstructor
public class FlowerBucket {
private List<FlowerPack> flowerPacks;

public FlowerBucket() {
this.flowerPacks = new ArrayList<>();
}

public void add(FlowerPack flowerPack) {
flowerPacks.add(flowerPack);
}

public double getPrice() {
double price = 0;
for (FlowerPack flowerPack : flowerPacks) {
price += flowerPack.getPrice();
}
return price;
}
}
20 changes: 9 additions & 11 deletions src/main/java/flower/store/FlowerColor.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
package flower.store;

import lombok.Getter;

@Getter
public enum FlowerColor {
/**
* Flower colors.
*/
RED("#FF0000"), BLUE("#0000FF");
private final String stringRepresentation;
RED("#FF0000"),
WHITE("#FFFFFF"),
YELLOW("#FFFF00");

FlowerColor(String stringRepresentation) {
this.stringRepresentation = stringRepresentation;
}
private String code;

@Override
public String toString() {
return stringRepresentation;
FlowerColor(String code) {
this.code = code;
}
}
18 changes: 17 additions & 1 deletion src/main/java/flower/store/FlowerPack.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,22 @@
package flower.store;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@NoArgsConstructor
public class FlowerPack {
private Flower flower;
private int quantity;
private int count;

public FlowerPack(Flower flower, int count) {
this.flower = new Flower(flower);
this.count = count;
}

public double getPrice() {
return flower.getPrice() * count;
}
}
2 changes: 1 addition & 1 deletion src/main/java/flower/store/FlowerType.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package flower.store;

public enum FlowerType {
CHAMOMILE, ROSE, TULIP;
ROSE,TULIP,CAMMOMILE;
}
25 changes: 25 additions & 0 deletions src/main/java/flower/store/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package flower.store;

public class Main {
public static void main(String[] args) {
Flower flower1 = new Flower();
flower1.setPrice(100);
flower1.setFlowerType(FlowerType.ROSE);

FlowerBucket flowerBucket = new FlowerBucket();
FlowerPack flowerPack1 = new FlowerPack(new Flower(flower1), 5);
flowerBucket.add(flowerPack1);

Flower flower2 = new Flower();
flower2.setPrice(100);
flower2.setFlowerType(FlowerType.ROSE);
FlowerPack flowerPack2 = new FlowerPack(new Flower(flower2), 10);
flowerBucket.add(flowerPack2);


System.out.println(flowerBucket.getPrice());

flower2.setPrice(10);
System.out.println(flowerBucket.getPrice());
}
}
12 changes: 12 additions & 0 deletions src/main/java/flower/store/Rose.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package flower.store;

class Rose extends Flower {

public Rose() {
super(FlowerColor.RED, FlowerType.ROSE, 0.0, 0.0);
}

public Rose(double sepalLength, FlowerColor color, double price) {
super(color, FlowerType.ROSE, price, sepalLength);
}
}
35 changes: 35 additions & 0 deletions src/main/java/flower/store/Store.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package flower.store;

import java.util.ArrayList;
import java.util.List;

public class Store {
private List<FlowerBucket> flowerBuckets;

public Store() {
this.flowerBuckets = new ArrayList<>();
}
public void addBucket(FlowerBucket bucket) {
this.flowerBuckets.add(bucket);
}

public List<Flower> search(FlowerColor color, FlowerType type, double min, double max) {
List<Flower> res = new ArrayList<>();

for (int i = 0; i < flowerBuckets.size(); i++) {
FlowerBucket bucket = flowerBuckets.get(i);

for (int j = 0; j < bucket.getFlowerPacks().size(); j++) {
FlowerPack pack = bucket.getFlowerPacks().get(j);
Flower flower = pack.getFlower();

if ((color == null || flower.getColor().equals(color.getCode())) &&
(type == null || flower.getFlowerType() == type) &&
flower.getPrice() >= min && flower.getPrice() <= max) {
res.add(flower);
}
}
}
return res;
}
}
12 changes: 12 additions & 0 deletions src/main/java/flower/store/Tulip.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package flower.store;

class Tulip extends Flower {

public Tulip() {
super(FlowerColor.YELLOW, FlowerType.TULIP, 0.0, 0.0);
}

public Tulip(double sepalLength, FlowerColor color, double price) {
super(color, FlowerType.TULIP, price, sepalLength);
}
}
31 changes: 31 additions & 0 deletions src/test/java/flower/store/FlowerBucketTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package flower.store;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Assertions;

import java.util.Random;

public class FlowerBucketTest {
private static final Random RANDOM_GENERATOR = new Random();
private static final int MAX_QUANTITY = 1000;
private static final int MAX_PRICE = 100;

private FlowerBucket flowerBucket;

@BeforeEach
public void init() {
flowerBucket = new FlowerBucket();
}

@Test
public void testPrice() {
int price = RANDOM_GENERATOR.nextInt(MAX_PRICE);
int quantity = RANDOM_GENERATOR.nextInt(MAX_QUANTITY);
Flower flower = new Rose();
flower.setPrice(price);
FlowerPack flowerPack = new FlowerPack(flower, quantity);
flowerBucket.add(flowerPack);
Assertions.assertEquals(price * quantity, flowerBucket.getPrice());
}
}