/** * Get mappings available for a semantic element and a given container view. * * @param semanticElement Semantic element * @param containerView Container view * @param session Session * @return List of mappings which could not be null */ protected List<DiagramElementMapping> getMappings( final EObject semanticElement, final DSemanticDecorator containerView, Session session) { final ModelAccessor modelAccessor = session.getModelAccessor(); final List<DiagramElementMapping> mappings = new ArrayList<DiagramElementMapping>(); if (containerView instanceof DSemanticDiagram) { mappings.addAll( AddElementToDiagramServices.INSTANCE.getValidMappingsForDiagram( semanticElement, (DSemanticDiagram) containerView, session)); } else if (containerView instanceof DNodeContainerSpec) { for (final DiagramElementMapping mapping : ((DNodeContainerSpec) containerView).getActualMapping().getAllContainerMappings()) { final String domainClass = ((AbstractNodeMapping) mapping).getDomainClass(); if (modelAccessor.eInstanceOf(semanticElement, domainClass) && !mapping.isCreateElements()) { mappings.add(mapping); } } for (final DiagramElementMapping mapping : ((DNodeContainerSpec) containerView).getActualMapping().getAllNodeMappings()) { final String domainClass = ((AbstractNodeMapping) mapping).getDomainClass(); if (modelAccessor.eInstanceOf(semanticElement, domainClass) && !mapping.isCreateElements()) { mappings.add(mapping); } } } return mappings; }
private IPermissionAuthority getPermissionAuthority() { if (permissionAuthority == null && object instanceof EObject) { Session session = new EObjectQuery((EObject) object).getSession(); if (session != null) { ModelAccessor modelAccessor = session.getModelAccessor(); if (modelAccessor != null) { permissionAuthority = modelAccessor.getPermissionAuthority(); } } } return permissionAuthority; }
private IPermissionAuthority getPermissionAuthority() { final ModelAccessor accessor = SiriusPlugin.getDefault().getModelAccessorRegistry().getModelAccessor(diagram); return accessor.getPermissionAuthority(); }