Last active
September 7, 2018 17:56
-
-
Save zhenyanghua/63094acc65c20ec83bda0cfe26ba91b7 to your computer and use it in GitHub Desktop.
OOA&D wk1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.List; | |
import java.util.LinkedList; | |
class ArtWork { | |
private String serialNumber; | |
private double price; | |
private String material; | |
private String type; | |
private String series; | |
ArtWork(String serialNumber, double price, String material, | |
String type, String series) { | |
this.serialNumber = serialNumber; | |
this.price = price; | |
this.material = material; | |
this.type = type; | |
this.series = series; | |
} | |
String getSerialNumber() { | |
return serialNumber; | |
} | |
double getPrice() { | |
return price; | |
} | |
void setPrice(double price) { | |
this.price = price; | |
} | |
String getMaterial() { | |
return material; | |
} | |
String getType() { | |
return type; | |
} | |
String getSeries() { | |
return series; | |
} | |
@Override | |
public String toString() { | |
return "Material: " + material + | |
"\tType: " + type + | |
"\tSeries: " + series; | |
} | |
} | |
class Inventory { | |
private List<ArtWork> artworks; | |
Inventory() { | |
artworks = new LinkedList<>(); | |
} | |
void addArtWork(String serialNumber, double price, String material, | |
String type, String series) { | |
ArtWork artwork = new ArtWork(serialNumber, price, | |
material, type, series); | |
artworks.add(artwork); | |
} | |
List<ArtWork> search(ArtWork artwork) { | |
List<ArtWork> results = new LinkedList<>(); | |
for (ArtWork a: artworks) { | |
if (a.getMaterial() == null || a.getMaterial().isEmpty() || | |
!a.getMaterial().equals(artwork.getMaterial())) | |
continue; | |
if (a.getType() == null || a.getType().isEmpty() || | |
!a.getType().equals(artwork.getType())) | |
continue; | |
if (a.getSeries() == null || a.getSeries().isEmpty() || | |
!a.getSeries().equals(artwork.getSeries())) | |
continue; | |
results.add(a); | |
} | |
return results; | |
} | |
} | |
class SearchArtTest { | |
public static void main(String... args) { | |
Inventory inventory = new Inventory(); | |
inventory.addArtWork("sksf00001", 25, "Silk", | |
"scarf", "Awake"); | |
inventory.addArtWork("pt00001", 200, "Sister", | |
"paper", "Summer"); | |
ArtWork artwork = new ArtWork("", 0, "silk", "scarf", "Awake"); | |
List<ArtWork> results = inventory.search(artwork); | |
if (results.isEmpty()) { | |
System.out.println("Sorry, we found nothing for you"); | |
} else { | |
for(ArtWork a: results) | |
System.out.println("Found: " + a); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.List; | |
import java.util.LinkedList; | |
enum Materials { | |
SILK, | |
NONSILK; | |
@Override | |
public String toString() { | |
return this.name().toLowerCase(); | |
} | |
} | |
enum Types { | |
PAINT, | |
SCARF, | |
PURSE; | |
@Override | |
public String toString() { | |
return this.name().toLowerCase(); | |
} | |
} | |
enum Series { | |
SUMMER, | |
SUNSET; | |
@Override | |
public String toString() { | |
return this.name().toLowerCase(); | |
} | |
} | |
class ArtWorkSpecs { | |
private Materials material; | |
private Types type; | |
private Series series; | |
ArtWorkSpecs(Materials material, | |
Types type, Series series) { | |
this.material = material; | |
this.type = type; | |
this.series = series; | |
} | |
Materials getMaterial() { | |
return material; | |
} | |
Types getType() { | |
return type; | |
} | |
Series getSeries() { | |
return series; | |
} | |
boolean match(ArtWorkSpecs specs) { | |
if (specs.getMaterial() == null || | |
!specs.getMaterial().equals(material)) | |
return false; | |
if (specs.getType() == null || | |
!specs.getType().equals(type)) | |
return false; | |
if (specs.getSeries() == null || | |
!specs.getSeries().equals(series)) | |
return false; | |
return true; | |
} | |
@Override | |
public String toString() { | |
return "Material: " + material + | |
"\tType: " + type + | |
"\tSeries: " + series; | |
} | |
} | |
class ArtWork { | |
private String serialNumber; | |
private double price; | |
private ArtWorkSpecs specs; | |
ArtWork(String serialNumber, double price, ArtWorkSpecs specs) { | |
this.serialNumber = serialNumber; | |
this.price = price; | |
this.specs = specs; | |
} | |
String getSerialNumber() { | |
return serialNumber; | |
} | |
double getPrice() { | |
return price; | |
} | |
void setPrice(double price) { | |
this.price = price; | |
} | |
ArtWorkSpecs getSpecs() { | |
return new ArtWorkSpecs( | |
specs.getMaterial(), | |
specs.getType(), | |
specs.getSeries()); | |
} | |
@Override | |
public String toString() { | |
return specs.toString(); | |
} | |
} | |
class Inventory { | |
private List<ArtWork> artworks; | |
Inventory() { | |
artworks = new LinkedList<>(); | |
} | |
void addArtWork(String serialNumber, double price, Materials material, | |
Types type, Series series) { | |
ArtWork artwork = new ArtWork(serialNumber, price, | |
new ArtWorkSpecs(material, type, series)); | |
artworks.add(artwork); | |
} | |
List<ArtWork> search(ArtWorkSpecs specs) { | |
List<ArtWork> results = new LinkedList<>(); | |
for (ArtWork a: artworks) { | |
if (specs.match(a.getSpecs())) | |
results.add(a); | |
} | |
return results; | |
} | |
} | |
class SearchArtTest { | |
public static void main(String... args) { | |
Inventory inventory = new Inventory(); | |
inventory.addArtWork("sksf00001", 25, Materials.SILK, Types.SCARF, Series.SUNSET); | |
inventory.addArtWork("pt00001", 200, Materials.NONSILK, Types.PAINT, Series.SUMMER); | |
ArtWorkSpecs specs = new ArtWorkSpecs(Materials.SILK, Types.SCARF, Series.SUNSET); | |
List<ArtWork> results = inventory.search(specs); | |
if (results.isEmpty()) { | |
System.out.println("Sorry, we found nothing for you"); | |
} else { | |
for(ArtWork a: results) | |
System.out.println("Found: " + a); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment