-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathMain.java
More file actions
72 lines (59 loc) · 3.1 KB
/
Main.java
File metadata and controls
72 lines (59 loc) · 3.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import decorator.LenghtUnitConverterDecorator;
import decorator.MetersToYardsConverterDecorator;
import patterns.ConverterAbstractFactory;
import patterns.ConverterFactoryProducer;
import patterns.ConverterSingleton;
import src.converters.*;
import java.util.LinkedList;
import java.util.Scanner;
class Main {
public static void main(String[] args) throws Exception
{
//Homework 7
//Exception for null values and negative currencies (CURRENCY)
// CurrencyConverter okayCurrency = new DollarToEuroConverter("Dollars", "Euros", 0.86);
// CurrencyConverter notokayCurrency = new DollarToEuroConverter(null, null, -4);
//Exception for null values, mismatch of types (TEMPERATURE)
// TemperatureConverter okayTemp = new CelsiusToFahrenheitConverter("Celsius", "Fahrenheit");
// TemperatureConverter notokTemp = new CelsiusToFahrenheitConverter("o", "k");
// TemperatureConverter notokayTemp = new CelsiusToFahrenheitConverter(null, null);
//Test by TinyTestJ
TestSuite.testInput();
//Using FACTORY PATTERN with ABSTRACT FACTORY
ConverterAbstractFactory theF = ConverterFactoryProducer.getFactory();
UnitConverter tstFactory = theF.callFactory("CelsiusToFahrenheit");
tstFactory.convert(33.0);
tstFactory.print();
UnitConverter tstExc = theF.callFactory("mmg");
//Using SINGLETON PATTERN with ABSTRACT FACTORY (within the singleton)
ConverterSingleton tstSingleton = ConverterSingleton.getInstance();
UnitConverter singleton = tstSingleton.getConverter("CelsiusToFahrenheit");
singleton.convert(33.0);
singleton.print();
LenghtUnitConverterDecorator lenghtUnitConverterDecorator = new LenghtUnitConverterDecorator();
lenghtUnitConverterDecorator.newLenghtConverterClass("miles", "meters",10,10);
lenghtUnitConverterDecorator.inversionMethod();
MetersToYardsConverterDecorator metersToYardsConverterDecorator = new MetersToYardsConverterDecorator(new MetersToYardsConverter());
metersToYardsConverterDecorator.convert(12);
metersToYardsConverterDecorator.print();
metersToYardsConverterDecorator.inversionMethod();
LinkedList<UnitConverter> linkedList = new LinkedList<>();
linkedList.add(new CelsiusToFahrenheitConverter());
linkedList.add(new DollarToEuroConverter());
linkedList.add(new FahrenheitToCelsiusConverter());
linkedList.add(new MetersToYardsConverter());
linkedList.add(new MilesToKilometersConverter());
linkedList.add(new PoundToLiraConverter());
linkedList.add(new MetersToYardsConverterDecorator(new MetersToYardsConverter()));
linkedList.add(new MetersToYardsConverterDecorator(new MilesToKilometersConverter()));
System.out.print("number?");
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int s1 = Integer.parseInt(sc.next());
for (UnitConverter unitConverter : linkedList) {
unitConverter.convert(s1);
unitConverter.print();
}
}
}
}