Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions MDSD.Sirius/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>MDSD.Sirius</name>
<comment></comment>
<projects>
<project>MDSD</project>
</projects>
<buildSpec>
</buildSpec>
<natures>
<nature>org.eclipse.sirius.nature.modelingproject</nature>
</natures>
</projectDescription>
2 changes: 2 additions & 0 deletions MDSD.Sirius/.settings/org.eclipse.core.resources.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
7 changes: 7 additions & 0 deletions MDSD.Sirius/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Automatic-Module-Name: MDSD.Sirius
Bundle-Name: MDSD.Sirius
Bundle-SymbolicName: MDSD.Sirius; singleton:=true
Bundle-Version: 1.0.0
Bundle-ActivationPolicy: lazy
32 changes: 32 additions & 0 deletions MDSD.Sirius/MyRepository.repository
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="ASCII"?>
<metaModel.viewType.repository:Repository xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:metaModel.viewType.repository="http://metaModel/viewType/repository" name="New Container">
<components name="MediaStore" requires="//@interfaces.0" provides="//@interfaces.1"/>
<interfaces name="IAudioDB" superInterfaces="//@interfaces.1">
<signatures name="QueryDB">
<returnType xsi:type="metaModel.viewType.repository:VoidType"/>
<parameters name="parameterName">
<type xsi:type="metaModel.viewType.repository:IntType"/>
</parameters>
<parameters name="parameterName">
<type xsi:type="metaModel.viewType.repository:CharType"/>
</parameters>
</signatures>
<signatures name="AddFile">
<returnType xsi:type="metaModel.viewType.repository:VoidType"/>
</signatures>
</interfaces>
<interfaces name="IMediaStore">
<signatures name="download">
<returnType xsi:type="metaModel.viewType.repository:VoidType"/>
<parameters name="parameter1">
<type xsi:type="metaModel.viewType.repository:IntType"/>
</parameters>
</signatures>
<signatures name="upload">
<returnType xsi:type="metaModel.viewType.repository:VoidType"/>
<parameters name="parameter2">
<type xsi:type="metaModel.viewType.repository:StringType"/>
</parameters>
</signatures>
</interfaces>
</metaModel.viewType.repository:Repository>
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added MDSD.Sirius/icons/UnitsModelFile.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added MDSD.Sirius/icons/featureconfigModelFile.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions MDSD.Sirius/model.metamodel
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<metaModel:ComponentBasedSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:metaModel="http://metaModel">
<repositories>
<components/>
</repositories>
<environments>
<containers/>
</environments>
</metaModel:ComponentBasedSystem>
369 changes: 369 additions & 0 deletions MDSD.Sirius/repository.odesign

Large diffs are not rendered by default.

339 changes: 339 additions & 0 deletions MDSD.Sirius/representations.aird

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions MDSD/model/metamodel.ecore
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
<eStructuralFeatures xsi:type="ecore:EReference" name="signatures" upperBound="-1"
eType="#//viewType/repository/Signature" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="repository" eType="#//viewType/repository/Repository"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="superInterfaces" upperBound="-1"
eType="#//viewType/repository/Interface"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ParameterType" abstract="true" eSuperTypes="#//viewType/repository/Type"/>
<eClassifiers xsi:type="ecore:EClass" name="Signature" eSuperTypes="#//viewType/NamedElement">
Expand Down
2 changes: 2 additions & 0 deletions MDSD/model/metamodel.genmodel
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference metamodel.ecore#//viewType/repository/Interface/signatures"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true"
ecoreFeature="ecore:EReference metamodel.ecore#//viewType/repository/Interface/repository"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true"
ecoreFeature="ecore:EReference metamodel.ecore#//viewType/repository/Interface/superInterfaces"/>
</genClasses>
<genClasses image="false" ecoreClass="metamodel.ecore#//viewType/repository/ParameterType"/>
<genClasses ecoreClass="metamodel.ecore#//viewType/repository/Signature">
Expand Down
33 changes: 8 additions & 25 deletions kit.mdsd.xtext/src/kit/mdsd/xtext/dsl/generator/DslGenerator.xtend
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import java.awt.Component.BaselineResizeBehavior
import metaModel.viewType.repository.Repository
import java.util.Collection
import java.util.HashSet
import java.util.ArrayList

/**
* Generates code from your model files on save.
Expand Down Expand Up @@ -141,39 +142,21 @@ class DslGenerator extends AbstractGenerator {
}

def String getPackageFull(EObject object) {
var result = "";
var element = object.eContainer;
var packageSegements = new ArrayList<String>();
var element = object.eContainer;
while(element !== null) {
if(element instanceof NamedElement) {
result = addSegment(result, element.name);
packageSegements.add(element.name);
} else {
result = addSegment(result, element.eClass.name);
packageSegements.add(element.eClass.name);
}
element = element.eContainer;
}
result = reversePackage(result);
Collections.reverse(packageSegements);
if(object instanceof NamedElement) {
result = addSegment(result, object.name)
packageSegements.add(object.name);
}

return result.toLowerCase() as String
}

def String addSegment(String packageElement, String segment) {
var result = packageElement;
if(segment !== null && !segment.isBlank()) {
if(!result.isEmpty()) {
result += ".";
}
result += segment.trim();
}
return result;
}

def String reversePackage(String name) {
var elements = Arrays.asList(name.split("\\."));
Collections.reverse(elements);
return elements.join(".");
return packageSegements.join(".") as String
}

def String getType(Type type) {
Expand Down