The required libs (from ArgoUML 26.2 installation):
- argouml-mdr.jar
- argouml-model.jar
- argouml.jar
- java-interfaces.jar
- jmi.jar
- jmiutils.jar
- log4j-1.2.6.jar
- mdrapi.jar
- mof.jar
- nbmdr.jar
- openide-util.jar
Note: only the first two jar files need to be in classpath when compiling the code below; the other jar files are needed at runtime only.
The code:
import java.io.File; import java.io.FileOutputStream; import org.argouml.model.Model; import org.argouml.model.XmiWriter; public class Main { /** * @param args */ public static void main(String[] args) { // initialize model subsystem Throwable error = Model .initialise("org.argouml.model.mdr.MDRModelImplementation"); if (error != null) { // need to be handled System.out.println(error.toString()); return; } // create a model Object model = Model.getModelManagementFactory().createModel(); Model.getCoreHelper().setName(model, "myModel"); // create a class in the model Object mClass = Model.getCoreFactory().buildClass("MyClass", model); // create an attribute in the class Object intType = Model.getCoreFactory().buildDataType("int", model); Object mAttr = Model.getCoreFactory().buildAttribute2(mClass, intType); Model.getCoreHelper().setName(mAttr, "myAttr"); // create an operation in the class Object voidType = Model.getCoreFactory().buildDataType("void", model); Model.getCoreFactory().buildOperation2(mClass, voidType, "myOp"); // export to XMI try { File file = new File("myXMI.xmi"); FileOutputStream stream = new FileOutputStream(file); XmiWriter xmiWriter = Model .getXmiWriter(model, stream, "myVersion"); xmiWriter.write(); stream.flush(); stream.close(); System.out.println("Wrote file: " + file.getAbsolutePath()); } catch (Exception e) { // need to be handled } } }