Resource model = DiagramUtils.getModel(graph, res);
Resource configuration = DiagramUtils.getConfiguration(graph, model);
Set<String> names = new HashSet<String>();
+ if (configuration == null)
+ return names;
Collection<Resource> composites = getAllComposites(graph, configuration);
for (Resource composite : composites) {
names.addAll(getAllModuleNamesForComposite(graph, composite));
Layer0 l0 = Layer0.getInstance(g);
Layer0X l0x = Layer0X.getInstance(g);
ModelingResources m = ModelingResources.getInstance(g);
+ DiagramResource dia = DiagramResource.getInstance(g);
// create composite
Resource composite = g.newResource();
// This would cause problems because a diagram is a structural composite/component also.
g.claimLiteral(diagram, l0.HasName, name, Bindings.STRING);
Resource container = g.newResource();
- g.claim(container, l0.InstanceOf, null, l0.Library);
+ g.claim(container, l0.InstanceOf, null, dia.DiagramContainer);
g.addLiteral(container, l0.HasName, l0.NameOf, l0.String, "__CONTAINER__", Bindings.STRING);
g.claim(container, l0.ConsistsOf, diagram);
g.claim(composite, l0.ConsistsOf, container);
public Diagram<T> fromExisting(ReadGraph g, Resource diagram) throws DatabaseException {
ModelingResources m = ModelingResources.getInstance(g);
StructuralResource2 s = StructuralResource2.getInstance(g);
+ DiagramResource d = DiagramResource.getInstance(g);
Resource composite = null;
if (g.isInstanceOf(diagram, s.Composite)) {
composite = diagram;
diagram = g.getPossibleObject(composite, m.CompositeToDiagram);
if (diagram == null)
return null;
+ } else if (g.isInheritedFrom(diagram, d.DefinedElement)) {
+ // TODO : Defined Element behaves differently to regular configuration diagrams; should we have separate implementation?
+ composite = diagram;
+ diagram = g.getPossibleObject(composite, s.IsDefinedBy);
+ if (diagram == null)
+ return null;
} else {
composite = g.getPossibleObject(diagram, m.DiagramToComposite);
if (composite == null)
+
+
/**
* Returns diagram type from composite type
* @param g
* @throws ManyObjectsForFunctionalRelationException
* @throws ServiceException
*/
- private static Resource getDiagramFromComposite(ReadGraph g, Resource compositeType) throws DatabaseException {
+ public Resource getDiagramFromComposite(ReadGraph g, Resource compositeType) throws DatabaseException {
ModelingResources m = ModelingResources.getInstance(g);
Collection<Resource> diagramTemplates = g.getAssertedObjects(compositeType, m.HasModelingTemplate);
for (Resource diagramTemplate : diagramTemplates) {
public T getSymbol(ReadGraph g, Resource element) throws DatabaseException {
ModelingResources mr = ModelingResources.getInstance(g);
DiagramResource dr = DiagramResource.getInstance(g);
+ StructuralResource2 s = StructuralResource2.getInstance(g);
if (g.isInstanceOf(element, dr.Element))
return getSymbol(g, element, g.getPossibleObject(element, mr.ElementToComponent));
+ else if (g.isSubrelationOf(element, s.IsConnectedTo)) {
+ // TODO : Defined Element
+ return getSymbol(g, g.getSingleObject(element, dr.HasConnectionPoint_Inverse),element);
+ }
else
return getSymbol(g, g.getSingleObject(element, mr.ComponentToElement), element);
}