Ich habe erfolgreich einen GMF-Editor erstellt, der Modelle basierend auf meinem EMF-Modell zeichnet. Was ich tun wollte ist, durch meine EClasses zu iterieren. Dies kann zur Laufzeit durch meinen Plugin-Code erreicht werden, ohne die XML-Datei lesen zu müssen Gmf-Editor erstellt? Gibt es eine solche API von EMF?Wie kann ich mein emf-Modell von einem gmf-Editor durchlaufen, ohne die XML-Modelldatei zu analysieren?
1
A
Antwort
1
Wenn Sie Testcode aus der genmodel Datei erzeugen dann innerhalb des XYZ.test Plugin gibt diese Art von Code ist, dass ich war searching.It quert durch die XMI-Datei Ihres Modells
// Create a resource set to hold the resources.
//
ResourceSet resourceSet = new ResourceSetImpl();
// Register the appropriate resource factory to handle all file extensions.
//
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put
(Resource.Factory.Registry.DEFAULT_EXTENSION,
new XMIResourceFactoryImpl());
// Register the package to ensure it is available during loading.
//
resourceSet.getPackageRegistry().put
(XYZmetamodelPackage.eNS_URI,
XYZmetamodelPackage.eINSTANCE);
// If there are no arguments, emit an appropriate usage message.
//
if (args.length == 0) {
System.out.println("Enter a list of file paths or URIs that have content like this:");
try {
Resource resource = resourceSet.createResource(URI.createURI("http:///My.metamodel"));
ModelObject root = atagmetamodelFactory.eINSTANCE.createModelObject();
resource.getContents().add(root);
resource.save(System.out, null);
}
catch (IOException exception) {
exception.printStackTrace();
}
}
else {
// Iterate over all the arguments.
//
for (int i = 0; i < args.length; ++i) {
// Construct the URI for the instance file.
// The argument is treated as a file path only if it denotes an existing file.
// Otherwise, it's directly treated as a URL.
//
File file = new File(args[i]);
URI uri = file.isFile() ? URI.createFileURI(file.getAbsolutePath()): URI.createURI(args[i]);
try {
// Demand load resource for this file.
//
Resource resource = resourceSet.getResource(uri, true);
System.out.println("Loaded " + uri);
// Validate the contents of the loaded resource.
//
for (EObject eObject : resource.getContents()) {
Diagnostic diagnostic = Diagnostician.INSTANCE.validate(eObject);
if (diagnostic.getSeverity() != Diagnostic.OK) {
printDiagnostic(diagnostic, "");
}
}
}
catch (RuntimeException exception) {
System.out.println("Problem loading " + uri);
exception.printStackTrace();
}
}
}
}
Verwandte Themen
- 1. Wie kann ich mein neues Projekt analysieren?
- 2. Kann ich zwei .NET DataTables zusammenführen, ohne Nullwerte zusammenzuführen, ohne die Zeilen selbst durchlaufen zu müssen?
- 3. C# Wie kann ich eine Sammlung von benutzerdefinierten Objekten erstellen, ohne jedes Feld zu durchlaufen?
- 4. IdeaVim: Wie durch Listenelemente ohne Verwendung von Pfeiltasten zu durchlaufen?
- 5. Wie kann ich alle Kontrollkästchen in einem Formular durchlaufen?
- 6. Wie ich mein Programm zu einem Hintergrundprozess machen kann
- 7. Wie kann ich jedes Pixel in einem GIF-Bild durchlaufen?
- 8. Wie verwende ich jQuery XML zu analysieren, wie ich hier
- 9. Wie kann ich Dateinamen in Stata durchlaufen
- 10. Wie kann ich die Unicode-Codepunkte einer Java-Zeichenfolge durchlaufen?
- 11. Wie kann ich einen IP-Adressbereich durchlaufen?
- 12. Wie kann ich markierten Text für die weitere Verarbeitung analysieren?
- 13. Wie kann man Zeilen von einem TextReader durchlaufen?
- 14. Wie kann ich mein Formular die linke
- 15. Wie kann ich die Ansichtselemente innerhalb einer Recyclerview durchlaufen?
- 16. Wie kann ich eine große Anzahl von Dateien zyklisch durchlaufen?
- 17. Wie kann ich eine MySQL-Ergebnismenge durchlaufen?
- 18. Wie in einem Fragment zu analysieren?
- 19. Wie kann ich mein PHP-Skript testen?
- 20. Wie kann ich in Django-Vorlagen analysieren?
- 21. Wie kann ich MARC-Datensätze mit einem regulären Ausdruck analysieren?
- 22. Wie kann man eine konstante Lua-Tabelle analysieren, ohne sie in die Lua VM zu laden?
- 23. Kann ich for loop durchlaufen, um mehr Javascript zu erstellen?
- 24. Wie kann ich diese JSON-Antwort analysieren
- 25. Wie lösche ich ~ ohne mein Heimatverzeichnis zu löschen?
- 26. Wie kann ich eine Excel-Formel analysieren?
- 27. Wie kann ich ein Array von JSON-Objekten durchlaufen?
- 28. Kann die Winkelgruppe nicht durchlaufen?
- 29. Wie kann ich XML Android analysieren?
- 30. Wie kann ich eine Liste von Strings durchlaufen?