Giter Club home page Giter Club logo

emf-uml-model-reader's Introduction

Eclipse Modeling Framework Model Reader

Example

import org.eclipse.emf.example.loader.ModelLoader;
import org.eclipse.emf.example.models._activity.ActivityDiagram;
import org.eclipse.emf.example.models._class.ClassDiagram;
import org.eclipse.emf.example.models._class.ClassStructure;
import org.eclipse.emf.example.models._enum.EnumStructure;
import org.eclipse.emf.example.models._package.PackageDiagram;
import org.eclipse.emf.example.models._profile.ExtensionStructure;
import org.eclipse.emf.example.models._profile.ProfileDiagram;
import org.eclipse.emf.example.models._profile.StereotypeStructure;
import org.eclipse.emf.example.models._sequence.SequenceDiagram;
import org.eclipse.emf.example.models._sequence.SequenceMessage;
import org.eclipse.emf.example.models._statemachine.StateMachine;
import org.eclipse.emf.example.models._usecase.UseCaseDiagram;
import org.eclipse.emf.example.reader.diagram.*;
import org.eclipse.uml2.uml.Package;

import java.io.File;
import java.io.IOException;
import java.util.List;

public class Driver {
    public static void main(String args[]) throws Exception {
        File model = new File("src/main/resources/model/UML.uml");
        classDiagramReader(model);
        packageDiagramReader(model);
        activityDiagramReader(model);
        sequenceDiagramReader(model);
        stateMachineReader(model);
        useCaseDiagramReader(model);
        profileReader(model);
    }

    public static void classDiagramReader(File model) throws IOException {
        Package aPackage = new ModelLoader().loadModel(model);
        ClassDiagram classDiagram = ClassDiagramReader.getRefModelDetails(aPackage);
        if (classDiagram != null) {
            for (ClassStructure cs : classDiagram.getClasses()) {
                System.out.println("Class: " + cs.getPackage() + "." + cs.getName());
            }

            for (EnumStructure enumStructure : classDiagram.getEnumerations()) {
                System.out.println("Enumeration: " + enumStructure.getPackage() + "." + enumStructure.getName());
            }
        }
    }


    public static void packageDiagramReader(File model) throws IOException {
        Package aPackage = new ModelLoader().loadModel(model);
        PackageDiagram packageDiagram = PackageDiagramReader.getRefModelDetails(aPackage);

        if (packageDiagram != null) {
            System.out.println(packageDiagram.getPackageStructure().getName());
        }
    }


    public static void activityDiagramReader(File model) throws IOException {
        Package aPackage = new ModelLoader().loadModel(model);
        ActivityDiagram activityDiagram = ActivityDiagramReader.getRefModelDetails(aPackage);
        if (activityDiagram != null) {
            System.out.println(activityDiagram.getActivityName());
            for (String edges : activityDiagram.getEdges()) {
                System.out.println(edges);
            }
        }
    }


    public static void sequenceDiagramReader(File model) throws IOException {
        Package aPackage = new ModelLoader().loadModel(model);
        SequenceDiagram sequenceDiagram = SequenceDiagramReader.getRefModelDetails(aPackage);
        if (sequenceDiagram != null) {
            for (SequenceMessage sequenceMessage : sequenceDiagram.getMessages()) {
                System.out.println(sequenceMessage.getMessageName());
            }
        }
    }


    public static void stateMachineReader(File model) throws IOException {
        Package aPackage = new ModelLoader().loadModel(model);
        List<StateMachine> stateMachines = new StateMachineReader().getRefModelDetails(aPackage);
        for (StateMachine stateMachine : stateMachines) {
            System.out.println(stateMachine.getName());
        }
    }

    public static void useCaseDiagramReader(File model) throws IOException {
        Package aPackage = new ModelLoader().loadModel(model);
        UseCaseDiagram useCaseDiagram = UseCaseDiagramReader.getRefModelDetails(aPackage);
        if (useCaseDiagram != null) {
            System.out.println(useCaseDiagram.getSystemName());
            for (String actor : useCaseDiagram.getActors()) {
                System.out.println(actor);
            }
        }
    }


    public static void profileReader(File model) throws IOException {
        Package aPackage = new ModelLoader().loadModel(model);
        ProfileDiagram profileDiagram = UMLProfileReader.getRefModelDetails(aPackage);
        if (profileDiagram != null) {

            System.out.println(profileDiagram.getName());

            for (StereotypeStructure cs : profileDiagram.getStereotypes()) {
                System.out.println("Stereotype: " + cs.getPackage() + "." + cs.getName());
            }

            for (ExtensionStructure cs : profileDiagram.getExtensions()) {
                System.out.println("Extension: " + cs.getName());
            }

            for (EnumStructure enumStructure : profileDiagram.getEnumerations()) {
                System.out.println("Enumeration: " + enumStructure.getPackage() + "." + enumStructure.getName());
            }
        }


    }

}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.