The final restructured version for automatic build using maven tycho
[Mograsim.git] / plugins / net.mograsim.logic.model / src / net / mograsim / logic / model / util / ModellingTool.java
1 package net.mograsim.logic.model.util;
2
3 import net.mograsim.logic.model.model.LogicModelModifiable;
4 import net.mograsim.logic.model.model.components.ModelComponent;
5 import net.mograsim.logic.model.model.wires.ModelWire;
6 import net.mograsim.logic.model.model.wires.Pin;
7 import net.mograsim.logic.model.model.wires.ModelWireCrossPoint;
8
9 public class ModellingTool
10 {
11         private LogicModelModifiable model;
12
13         ModellingTool(LogicModelModifiable model)
14         {
15                 this.model = model;
16         }
17
18         public ModelWire connect(ModelComponent a, ModelComponent b, String pinA, String pinB)
19         {
20                 return connect(null, a, b, pinA, pinB);
21         }
22
23         public ModelWire connect(ModelWireCrossPoint a, ModelComponent b, String pinB)
24         {
25                 return connect(null, a, b, pinB);
26         }
27
28         public ModelWire connect(Pin a, ModelComponent b, String pinB)
29         {
30                 return connect(null, a, b, pinB);
31         }
32
33         public ModelWire connect(ModelComponent a, ModelWireCrossPoint b, String pinA)
34         {
35                 return connect(null, a, b, pinA);
36         }
37
38         public ModelWire connect(ModelWireCrossPoint a, ModelWireCrossPoint b)
39         {
40                 return connect(null, a, b);
41         }
42
43         public ModelWire connect(Pin a, ModelWireCrossPoint b)
44         {
45                 return connect(null, a, b);
46         }
47
48         public ModelWire connect(ModelComponent a, Pin b, String pinA)
49         {
50                 return connect(null, a, b, pinA);
51         }
52
53         public ModelWire connect(ModelWireCrossPoint a, Pin b)
54         {
55                 return connect(null, a, b);
56         }
57
58         public ModelWire connect(Pin a, Pin b)
59         {
60                 return connect(null, a, b);
61         }
62
63         public ModelWire connect(String name, ModelComponent a, ModelComponent b, String pinA, String pinB)
64         {
65                 return connect(name, a.getPin(pinA), b.getPin(pinB));
66         }
67
68         public ModelWire connect(String name, ModelWireCrossPoint a, ModelComponent b, String pinB)
69         {
70                 return connect(name, a.getPin(), b.getPin(pinB));
71         }
72
73         public ModelWire connect(String name, Pin a, ModelComponent b, String pinB)
74         {
75                 return connect(name, a, b.getPin(pinB));
76         }
77
78         public ModelWire connect(String name, ModelComponent a, ModelWireCrossPoint b, String pinA)
79         {
80                 return connect(name, a.getPin(pinA), b.getPin());
81         }
82
83         public ModelWire connect(String name, ModelWireCrossPoint a, ModelWireCrossPoint b)
84         {
85                 return connect(name, a.getPin(), b.getPin());
86         }
87
88         public ModelWire connect(String name, Pin a, ModelWireCrossPoint b)
89         {
90                 return connect(name, a, b.getPin());
91         }
92
93         public ModelWire connect(String name, ModelComponent a, Pin b, String pinA)
94         {
95                 return connect(name, a.getPin(pinA), b);
96         }
97
98         public ModelWire connect(String name, ModelWireCrossPoint a, Pin b)
99         {
100                 return connect(name, a.getPin(), b);
101         }
102
103         public ModelWire connect(String name, Pin a, Pin b)
104         {
105                 return new ModelWire(model, name, a, b);
106         }
107
108         public static ModellingTool createFor(LogicModelModifiable model)
109         {
110                 return new ModellingTool(model);
111         }
112 }