Skip to content
Snippets Groups Projects
Commit 5b7e1cf3 authored by Chrissi's avatar Chrissi
Browse files

add code for creating a new modelJoin query

parent e86653bf
No related branches found
No related tags found
No related merge requests found
...@@ -3,6 +3,7 @@ package org.rosi_project.model_sync.modelrepresentation; ...@@ -3,6 +3,7 @@ package org.rosi_project.model_sync.modelrepresentation;
import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.attributes; import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.attributes;
import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.outgoing; import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.outgoing;
import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.supertype; import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.supertype;
import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.subtype;
import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.naturalJoin; import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.naturalJoin;
import java.io.File; import java.io.File;
...@@ -13,10 +14,20 @@ import org.rosi_project.model_sync.model_join.representation.grammar.ModelJoinEx ...@@ -13,10 +14,20 @@ import org.rosi_project.model_sync.model_join.representation.grammar.ModelJoinEx
import org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder; import org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder;
import org.rosi_project.model_sync.model_join.representation.writer.*; import org.rosi_project.model_sync.model_join.representation.writer.*;
/**
* Create different ModelJoin Queries.
*
* @author Christopher
*/
public class ModelJoinCreation { public class ModelJoinCreation {
public static void main(String[] args) { public static void main(String[] args) {
ModelJoinCreation mjc = new ModelJoinCreation();
//mjc.createModelJoinQueriesForSimpleLibrary();
mjc.createModelJoinQueriesForShrinkingEclipseLibrary();
}
public void createModelJoinQueriesForSimpleLibrary () {
ClassResource library = ClassResource.from("lib", "Library"); ClassResource library = ClassResource.from("lib", "Library");
ClassResource employee = ClassResource.from("lib", "Employee"); ClassResource employee = ClassResource.from("lib", "Employee");
ClassResource person = ClassResource.from("lib", "Person"); ClassResource person = ClassResource.from("lib", "Person");
...@@ -101,4 +112,39 @@ public class ModelJoinCreation { ...@@ -101,4 +112,39 @@ public class ModelJoinCreation {
writerManager.write(mjManager); writerManager.write(mjManager);
} }
public void createModelJoinQueriesForShrinkingEclipseLibrary () {
ClassResource library = ClassResource.from("eclipse", "Library");
ClassResource book = ClassResource.from("eclipse", "Book");
ClassResource circulatingItem = ClassResource.from("eclipse", "CirculatingItem");
ClassResource item = ClassResource.from("eclipse", "Item");
AttributePath libraryName = AttributePath.from(library, "name");
AttributePath libraryStock = AttributePath.from(library, "stock");
AttributePath itemTitle = AttributePath.from(item, "title");
AttributePath bookPages = AttributePath.from(book, "pages");
ModelJoinExpression mj = ModelJoinBuilder.createNewModelJoin()
.add(naturalJoin()
.join(library)
.with(library)
.as(library)
.keep(attributes(libraryName))
.keep(outgoing(libraryStock)
.as(circulatingItem)
.keep(attributes(itemTitle))
.keep(subtype(book)
.as(book)
.keep(attributes(bookPages))
.buildExpression())
.buildExpression()
)
.done())
.build();
File file = new File("shrinkingEclipse.modeljoin");
FileBasedModelJoinWriter writer = new FileBasedModelJoinWriter(file);
writer.write(mj);
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment