Skip to content

Commit e8b320b

Browse files
authored
Version2.0 files for review
1 parent 79bfa87 commit e8b320b

File tree

7 files changed

+471
-80
lines changed

7 files changed

+471
-80
lines changed

AttEditDialog.java

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
/* Package: GUI */
1212
/******************************
13-
* Copyright (c) 2003,2019 Kevin Lano
13+
* Copyright (c) 2003,2020 Kevin Lano
1414
* This program and the accompanying materials are made available under the
1515
* terms of the Eclipse Public License 2.0 which is available at
1616
* http://www.eclipse.org/legal/epl-2.0
@@ -100,7 +100,7 @@ class AttDialogPanel extends JPanel
100100
private JLabel initLabel;
101101
JTextField initField; /* initial value */
102102

103-
JCheckBox senBox, intBox, actBox, derBox;
103+
JCheckBox senBox, intBox, actBox, derBox, sumBox, passBox;
104104
private JPanel kindPanel;
105105
private ButtonGroup kindGroup; /* kind */
106106

@@ -133,21 +133,27 @@ public AttDialogPanel()
133133
initField = new JTextField();
134134

135135
kindPanel = new JPanel();
136-
senBox = new JCheckBox("Sensor");
136+
senBox = new JCheckBox("Input");
137137
intBox = new JCheckBox("Internal",true);
138-
actBox = new JCheckBox("Actuator");
138+
actBox = new JCheckBox("Output");
139139
derBox = new JCheckBox("Derived");
140+
sumBox = new JCheckBox("Hidden");
141+
passBox = new JCheckBox("Password");
140142
kindPanel.add(senBox);
141143
kindPanel.add(intBox);
142144
kindPanel.add(actBox);
143145
kindPanel.add(derBox);
146+
kindPanel.add(sumBox);
147+
kindPanel.add(passBox);
144148
kindPanel.setBorder(
145-
BorderFactory.createTitledBorder("Kind"));
149+
BorderFactory.createTitledBorder("Stereotype"));
146150
kindGroup = new ButtonGroup();
147151
kindGroup.add(senBox);
148152
kindGroup.add(intBox);
149153
kindGroup.add(actBox);
150154
kindGroup.add(derBox);
155+
kindGroup.add(sumBox);
156+
kindGroup.add(passBox);
151157

152158
frozenPanel = new JPanel();
153159
frozBox = new JCheckBox("Frozen");
@@ -225,25 +231,29 @@ else if (kind == ModelElement.ACT)
225231
{ actBox.setSelected(true); }
226232
else if (kind == ModelElement.DERIVED)
227233
{ derBox.setSelected(true); }
234+
else if (kind == ModelElement.HIDDEN)
235+
{ sumBox.setSelected(true); }
236+
else if (kind == ModelElement.PASSWORD)
237+
{ passBox.setSelected(true); }
228238
}
229239

230240
public Dimension getPreferredSize()
231-
{ return new Dimension(450,350); }
241+
{ return new Dimension(550,350); }
232242

233243
public Dimension getMinimumSize()
234-
{ return new Dimension(450,650); }
244+
{ return new Dimension(550,650); }
235245

236246
public void doLayout()
237247
{ nameLabel.setBounds(10,10,90,30);
238-
nameField.setBounds(100,15,270,20);
248+
nameField.setBounds(100,15,370,20);
239249
typeLabel.setBounds(10,40,90,30);
240-
typeCombo.setBounds(100,45,270,20);
250+
typeCombo.setBounds(100,45,370,20);
241251
initLabel.setBounds(10,70,90,30);
242-
initField.setBounds(100,75,270,20);
243-
kindPanel.setBounds(10,100,400,50);
244-
frozenPanel.setBounds(10,160,400,50);
245-
scopePanel.setBounds(10,210,400,50);
246-
uniqPanel.setBounds(10,260,400,50);
252+
initField.setBounds(100,75,370,20);
253+
kindPanel.setBounds(10,100,500,50);
254+
frozenPanel.setBounds(10,160,500,50);
255+
scopePanel.setBounds(10,210,500,50);
256+
uniqPanel.setBounds(10,260,500,50);
247257
}
248258

249259
public void reset()
@@ -269,6 +279,10 @@ else if (dialogPanel.actBox.isSelected())
269279
{ kind = ModelElement.ACT; }
270280
else if (dialogPanel.derBox.isSelected())
271281
{ kind = ModelElement.DERIVED; }
282+
else if (dialogPanel.sumBox.isSelected())
283+
{ kind = ModelElement.HIDDEN; }
284+
else if (dialogPanel.passBox.isSelected())
285+
{ kind = ModelElement.PASSWORD; }
272286
else
273287
{ kind = ModelElement.INTERNAL; }
274288
setFields(dialogPanel.nameField.getText(),

Attribute.java

Lines changed: 238 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -897,9 +897,9 @@ public boolean isPrimaryAttribute()
897897
public void setFrozen(boolean fr)
898898
{ frozen = fr;
899899
if (fr)
900-
{ addStereotype("readOnly"); }
901-
else
902-
{ removeStereotype("readOnly"); }
900+
{ addStereotype("readOnly"); }
901+
else
902+
{ removeStereotype("readOnly"); }
903903
}
904904

905905
public boolean isInteger()
@@ -938,6 +938,9 @@ public void setStatic(boolean stat)
938938
public boolean isStatic()
939939
{ return instanceScope == false; }
940940

941+
public boolean isDerived()
942+
{ return kind == ModelElement.DERIVED; }
943+
941944
public void setVisibility(int visib)
942945
{ visibility = visib; }
943946

@@ -4497,7 +4500,8 @@ else if (Type.isSubType(typetatt,type,mm,entities))
44974500
return Type.typeSimilarity(type,typetatt,mm,entities);
44984501
} // int does not match to enum, but boolean can match to an enum of size 2
44994502

4500-
public Vector testCases(String x)
4503+
4504+
public Vector testCases(String x, java.util.Map lowerBnds, java.util.Map upperBnds)
45014505
{ Vector res = new Vector();
45024506
if (type == null)
45034507
{ return res; }
@@ -4506,26 +4510,106 @@ public Vector testCases(String x)
45064510
String t = type.getName();
45074511
Vector vs = type.getValues();
45084512

4513+
String nmx = getName();
4514+
Expression lbnd = (Expression) lowerBnds.get(nmx);
4515+
Expression ubnd = (Expression) upperBnds.get(nmx);
4516+
45094517
if ("int".equals(t))
45104518
{ res.add(nme + " = 0");
45114519
res.add(nme + " = -1");
45124520
res.add(nme + " = 1");
4513-
res.add(nme + " = 2147483647"); // Integer.MAX_VALUE);
4514-
res.add(nme + " = -2147483648"); // Integer.MIN_VALUE);
4521+
4522+
if (ubnd != null && lbnd != null)
4523+
{ try
4524+
{ double ud = Double.parseDouble(ubnd + "");
4525+
double ld = Double.parseDouble(lbnd + "");
4526+
int midd = (int) Math.floor((ud + ld)/2);
4527+
res.add(nme + " = " + midd);
4528+
} catch (Exception _e) { }
4529+
}
4530+
4531+
if (ubnd != null)
4532+
{ String upperval = ubnd + "";
4533+
if ("0".equals(upperval) || "1".equals(upperval) || "-1".equals(upperval)) { }
4534+
else
4535+
{ res.add(nme + " = " + upperval); }
4536+
}
4537+
else
4538+
{ res.add(nme + " = 2147483647"); } // Integer.MAX_VALUE);
4539+
4540+
if (lbnd != null)
4541+
{ String lowerval = lbnd + "";
4542+
if ("0".equals(lowerval) || "1".equals(lowerval) || "-1".equals(lowerval)) { }
4543+
else
4544+
{ res.add(nme + " = " + lowerval); }
4545+
}
4546+
else
4547+
{ res.add(nme + " = -2147483648"); } // Integer.MIN_VALUE);
45154548
}
45164549
else if ("long".equals(t))
45174550
{ res.add(nme + " = 0");
45184551
res.add(nme + " = -1");
45194552
res.add(nme + " = 1");
4520-
res.add(nme + " = " + Long.MAX_VALUE);
4521-
res.add(nme + " = " + Long.MIN_VALUE);
4553+
4554+
if (ubnd != null && lbnd != null)
4555+
{ try
4556+
{ double ud = Double.parseDouble(ubnd + "");
4557+
double ld = Double.parseDouble(lbnd + "");
4558+
long midd = (long) Math.floor((ud + ld)/2);
4559+
res.add(nme + " = " + midd);
4560+
} catch (Exception _e) { }
4561+
}
4562+
4563+
if (ubnd != null)
4564+
{ String upperval = ubnd + "";
4565+
if ("0".equals(upperval) || "1".equals(upperval) || "-1".equals(upperval)) { }
4566+
else
4567+
{ res.add(nme + " = " + upperval); }
4568+
}
4569+
else
4570+
{ res.add(nme + " = " + Long.MAX_VALUE); }
4571+
4572+
if (lbnd != null)
4573+
{ String lowerval = lbnd + "";
4574+
if ("0".equals(lowerval) || "1".equals(lowerval) || "-1".equals(lowerval)) { }
4575+
else
4576+
{ res.add(nme + " = " + lowerval); }
4577+
}
4578+
else
4579+
{ res.add(nme + " = " + Long.MIN_VALUE); }
45224580
}
45234581
else if ("double".equals(t))
45244582
{ res.add(nme + " = 0");
45254583
res.add(nme + " = -1");
45264584
res.add(nme + " = 1");
4527-
res.add(nme + " = " + Double.MAX_VALUE);
4528-
res.add(nme + " = " + Double.MIN_VALUE);
4585+
4586+
if (ubnd != null && lbnd != null)
4587+
{ try
4588+
{ double ud = Double.parseDouble(ubnd + "");
4589+
double ld = Double.parseDouble(lbnd + "");
4590+
double midd = (ud + ld)/2;
4591+
res.add(nme + " = " + midd);
4592+
} catch (Exception _e) { }
4593+
}
4594+
4595+
if (ubnd != null)
4596+
{ String upperval = ubnd + "";
4597+
if ("0".equals(upperval) || "1".equals(upperval) || "-1".equals(upperval)) { }
4598+
else
4599+
{ res.add(nme + " = " + upperval); }
4600+
}
4601+
else
4602+
{ res.add(nme + " = " + Double.MAX_VALUE); }
4603+
4604+
if (lbnd != null)
4605+
{ String lowerval = lbnd + "";
4606+
if ("0".equals(lowerval) || "1".equals(lowerval) || "-1".equals(lowerval)) { }
4607+
else
4608+
{ res.add(nme + " = " + lowerval); }
4609+
}
4610+
else
4611+
{ res.add(nme + " = " + Double.MIN_VALUE); }
4612+
45294613
}
45304614
else if ("boolean".equals(t))
45314615
{ res.add(nme + " = true");
@@ -4561,6 +4645,150 @@ else if (type.isCollection() && elementType != null)
45614645
return res;
45624646
}
45634647

4648+
public Vector testValues(String x, java.util.Map lowerBnds, java.util.Map upperBnds)
4649+
{ Vector res = new Vector();
4650+
if (type == null)
4651+
{ return res; }
4652+
4653+
String nme = x + "." + getName();
4654+
String t = type.getName();
4655+
Vector vs = type.getValues();
4656+
4657+
String nmx = getName();
4658+
Expression lbnd = (Expression) lowerBnds.get(nmx);
4659+
Expression ubnd = (Expression) upperBnds.get(nmx);
4660+
4661+
if ("int".equals(t))
4662+
{ res.add("0");
4663+
res.add("-1");
4664+
res.add("1");
4665+
4666+
if (ubnd != null && lbnd != null)
4667+
{ try
4668+
{ double ud = Double.parseDouble(ubnd + "");
4669+
double ld = Double.parseDouble(lbnd + "");
4670+
int midd = (int) Math.floor((ud + ld)/2);
4671+
res.add("" + midd);
4672+
} catch (Exception _e) { }
4673+
}
4674+
4675+
if (ubnd != null)
4676+
{ String upperval = ubnd + "";
4677+
if ("0".equals(upperval) || "1".equals(upperval) || "-1".equals(upperval)) { }
4678+
else
4679+
{ res.add(upperval); }
4680+
}
4681+
else
4682+
{ res.add("2147483647"); } // Integer.MAX_VALUE);
4683+
4684+
if (lbnd != null)
4685+
{ String lowerval = lbnd + "";
4686+
if ("0".equals(lowerval) || "1".equals(lowerval) || "-1".equals(lowerval)) { }
4687+
else
4688+
{ res.add(lowerval); }
4689+
}
4690+
else
4691+
{ res.add("-2147483648"); } // Integer.MIN_VALUE);
4692+
}
4693+
else if ("long".equals(t))
4694+
{ res.add("0");
4695+
res.add("-1");
4696+
res.add("1");
4697+
4698+
if (ubnd != null && lbnd != null)
4699+
{ try
4700+
{ double ud = Double.parseDouble(ubnd + "");
4701+
double ld = Double.parseDouble(lbnd + "");
4702+
long midd = (long) Math.floor((ud + ld)/2);
4703+
res.add("" + midd);
4704+
} catch (Exception _e) { }
4705+
}
4706+
4707+
if (ubnd != null)
4708+
{ String upperval = ubnd + "";
4709+
if ("0".equals(upperval) || "1".equals(upperval) || "-1".equals(upperval)) { }
4710+
else
4711+
{ res.add(upperval); }
4712+
}
4713+
else
4714+
{ res.add(Long.MAX_VALUE + "L"); }
4715+
4716+
if (lbnd != null)
4717+
{ String lowerval = lbnd + "";
4718+
if ("0".equals(lowerval) || "1".equals(lowerval) || "-1".equals(lowerval)) { }
4719+
else
4720+
{ res.add(lowerval); }
4721+
}
4722+
else
4723+
{ res.add(Long.MIN_VALUE + "L"); }
4724+
}
4725+
else if ("double".equals(t))
4726+
{ res.add("0");
4727+
res.add("-1");
4728+
res.add("1");
4729+
4730+
if (ubnd != null && lbnd != null)
4731+
{ try
4732+
{ double ud = Double.parseDouble(ubnd + "");
4733+
double ld = Double.parseDouble(lbnd + "");
4734+
double midd = (ud + ld)/2;
4735+
res.add("" + midd);
4736+
} catch (Exception _e) { }
4737+
}
4738+
4739+
if (ubnd != null)
4740+
{ String upperval = ubnd + "";
4741+
if ("0".equals(upperval) || "1".equals(upperval) || "-1".equals(upperval)) { }
4742+
else
4743+
{ res.add(upperval); }
4744+
}
4745+
else
4746+
{ res.add("" + Double.MAX_VALUE); }
4747+
4748+
if (lbnd != null)
4749+
{ String lowerval = lbnd + "";
4750+
if ("0".equals(lowerval) || "1".equals(lowerval) || "-1".equals(lowerval)) { }
4751+
else
4752+
{ res.add(lowerval); }
4753+
}
4754+
else
4755+
{ res.add("" + Double.MIN_VALUE); }
4756+
4757+
}
4758+
else if ("boolean".equals(t))
4759+
{ res.add("true");
4760+
res.add("false");
4761+
}
4762+
else if ("String".equals(t))
4763+
{ res.add("\"\"");
4764+
res.add("\" abc_XZ \"");
4765+
res.add("\"#�$* &~@':\"");
4766+
}
4767+
else if (vs != null && vs.size() > 0)
4768+
{ for (int j = 0; j < vs.size(); j++)
4769+
{ String v0 = (String) vs.get(j);
4770+
res.add(v0);
4771+
}
4772+
}
4773+
else if (type.isEntity())
4774+
{ String obj = t.toLowerCase() + "x_0";
4775+
// Identifier.nextIdentifier(t.toLowerCase());
4776+
String decl = obj;
4777+
res.add(decl);
4778+
}
4779+
/* else if (type.isCollection() && elementType != null)
4780+
{ Type elemT = getElementType();
4781+
Vector testVals = elemT.testValues();
4782+
res.add("");
4783+
for (int p = 0; p < testVals.size(); p++)
4784+
{ String tv = (String) testVals.get(p);
4785+
res.add(tv + " : " + nme);
4786+
}
4787+
} */
4788+
4789+
return res;
4790+
}
4791+
45644792
public String androidEntryField(String op, String previous, String ent)
45654793
{ String nme = getName();
45664794
String label = Named.capitalise(nme);

0 commit comments

Comments
 (0)