diff --git a/src/UMLClass.java b/src/UMLClass.java index 11534b7..c355036 100644 --- a/src/UMLClass.java +++ b/src/UMLClass.java @@ -71,10 +71,19 @@ public class UMLClass { for (UMLMethod method : methods) { s.append(method.toString()); } - - s.append("}"); } + if(manager.isGetSetAuto()){ + System.out.println("hallo"); + for(UMLField field : fields){ + s.append(field.getter()); + s.append(field.setter()); + } + } + + s.append("}"); + + return s.toString(); } diff --git a/src/UMLClassView.form b/src/UMLClassView.form index 5ead9b5..d96be48 100644 --- a/src/UMLClassView.form +++ b/src/UMLClassView.form @@ -1,6 +1,6 @@
- + @@ -123,9 +123,17 @@ - + + + + + + + + + diff --git a/src/UMLClassView.java b/src/UMLClassView.java index 3948e91..61e907f 100644 --- a/src/UMLClassView.java +++ b/src/UMLClassView.java @@ -3,6 +3,8 @@ import java.awt.datatransfer.DataFlavor; import java.awt.dnd.DnDConstants; import java.awt.dnd.DropTarget; import java.awt.dnd.DropTargetDropEvent; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; @@ -16,6 +18,7 @@ public class UMLClassView { private JButton convertFileButton; private JTextField packagePathField; private JCheckBox watermarkBox; + private JCheckBox generateGetSetButton; private UMLManager manager; @@ -67,6 +70,14 @@ public class UMLClassView { manager.setShowWatermark(watermarkBox.isSelected()); refreshTextArea(); }); + + generateGetSetButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + manager.setGetSetAuto(generateGetSetButton.isSelected()); + refreshTextArea(); + } + }); } private void refreshTextArea(){ @@ -86,4 +97,8 @@ public class UMLClassView { public boolean isWatermarkSelected(){ return watermarkBox.isSelected(); } + + public boolean isGetSetAutoSelected() { + return generateGetSetButton.isSelected(); + } } diff --git a/src/UMLField.java b/src/UMLField.java index 03e0405..da4e35d 100644 --- a/src/UMLField.java +++ b/src/UMLField.java @@ -40,4 +40,24 @@ public class UMLField { return " " + encapsulation + dataType + " " + name + ";\n"; } + + public String setter() { + String nameCapital = name.toUpperCase(); + String nameCC = "set" + nameCapital.charAt(0) + name.substring(1); + UMLMethod setter = new UMLMethod("void ", nameCC, "public "); + setter.addArg(name, dataType); + setter.addBodyLine("this." + name + " = " + name + ";"); + + return setter.toString(); + } + + public String getter() { + + String nameCapital = name.toUpperCase(); + String nameCC = "get" + nameCapital.charAt(0) + name.substring(1); + UMLMethod setter = new UMLMethod(dataType + " ", nameCC, "public "); + setter.addBodyLine("return " + name + ";"); + + return setter.toString(); + } } diff --git a/src/UMLManager.java b/src/UMLManager.java index 0b07c25..8248454 100644 --- a/src/UMLManager.java +++ b/src/UMLManager.java @@ -10,10 +10,12 @@ public class UMLManager { private UMLClassView view; private boolean showWatermark; + private boolean getSetAuto; public UMLManager(UMLClassView view) { this.view = view; this.showWatermark = view.isWatermarkSelected(); + this.getSetAuto = view.isGetSetAutoSelected(); view.setManager(this); } @@ -56,4 +58,12 @@ public class UMLManager { public void setShowWatermark(boolean showWatermark) { this.showWatermark = showWatermark; } + + public void setGetSetAuto(boolean getSetAuto) { + this.getSetAuto = getSetAuto; + } + + public boolean isGetSetAuto() { + return getSetAuto; + } } diff --git a/src/UMLMethod.java b/src/UMLMethod.java index ccf9c15..51f8ce8 100644 --- a/src/UMLMethod.java +++ b/src/UMLMethod.java @@ -12,6 +12,8 @@ public class UMLMethod { private final ArrayList argsNames = new ArrayList<>(); private final ArrayList argsTypes = new ArrayList<>(); + private String methodBody = ""; + /** * Create a new method/constructor from the UML representation of that method * @@ -56,6 +58,11 @@ public class UMLMethod { } } + public UMLMethod(String returnType, String name, String encapsulation) { + this.returnType = returnType; + this.name = name; + this.encapsulation = encapsulation; + } /** * Returns the method as the Java code representation @@ -74,8 +81,23 @@ public class UMLMethod { } } - returnString.append(") {\n \n }\n"); + returnString.append(") {\n "); + returnString.append(methodBody); + returnString.append("\n }\n"); return returnString.toString(); } + + public void addArg(String name, String dataType) { + argsNames.add(name); + argsTypes.add(dataType); + } + + public void addBodyLine(String line){ + if(methodBody.contains("\n")) { + methodBody += "\n " + line; + } else { + methodBody += " " + line; + } + } }