private void readActionImport(XMLEventReader reader, StartElement element, CsdlEntityContainer container) throws XMLStreamException { CsdlActionImport actionImport = new CsdlActionImport(); actionImport.setName(attr(element, "Name")); actionImport.setAction(new FullQualifiedName(attr(element, "Action"))); String entitySet = attr(element, "EntitySet"); if (entitySet != null) { actionImport.setEntitySet(entitySet); } peekAnnotations(reader, "ActionImport", actionImport); container.getActionImports().add(actionImport); }
@Override public EdmAction getUnboundAction() { return edm.getUnboundAction(actionImport.getActionFQN()); } }
protected void loadAllActionImports() { loadContainer(); final List<CsdlActionImport> providerActionImports = container.getActionImports(); final List<EdmActionImport> actionImportsLocal = new ArrayList<EdmActionImport>(); if (providerActionImports != null) { for (CsdlActionImport actionImport : providerActionImports) { final EdmActionImportImpl impl = new EdmActionImportImpl(edm, this, actionImport); actionImportCache.put(actionImport.getName(), impl); actionImportsLocal.add(impl); } actionImports = actionImportsLocal; } }
/** * Creates the ActionImports. Function Imports have to be created for <i>unbound</i> actions. These are actions, * which do not depend on an entity set. E.g. .../MyAction(). <p> * Details are described in : <a href= * "http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part3-csdl/odata-v4.0-errata02-os-part3-csdl- * complete.html#_Toc406398038">13.5 Element edm:ActionImport</a> * @param edmAc * @return */ private CsdlActionImport buildActionImport(CsdlAction edmAc) { final CsdlActionImport edmAcImport = new CsdlActionImport(); edmAcImport.setName(edmAc.getName()); edmAcImport.setAction(nameBuilder.buildFQN(edmAc.getName())); // edmAcImport.setEntitySet(entitySet) return edmAcImport; }
private void addAnnotations(CsdlActionImport actionImport, FullQualifiedName entityContainerName) { List<CsdlSchema> termSchemaDefinition = ((EdmProviderImpl)edm).getTermSchemaDefinitions(); for (CsdlSchema schema : termSchemaDefinition) { List<CsdlAnnotations> annotationGrps = schema.getAnnotationGroups(); for (CsdlAnnotations annotationGrp : annotationGrps) { if (annotationGrp.getTarget(). equalsIgnoreCase(entityContainerName + "/" + actionImport.getName())) { for (CsdlAnnotation annotation : annotationGrp.getAnnotations()) { if (!compareAnnotations(actionImport.getAnnotations(), annotation)) { actionImport.getAnnotations().add(annotation); } } break; } } } }
private void addActionImportAsProcedure(MetadataFactory mf, CsdlActionImport actionImport, ODataType odataType, XMLMetadata metadata) throws TranslatorException { List<CsdlAction> actions = getActions(metadata, actionImport.getAction()); for (CsdlAction action : actions) { if (!hasComplexParameters(action.getParameters())) { Procedure procedure = mf.addProcedure(action.getName()); addOperation(mf, metadata, odataType, action, procedure); } else { LogManager.logInfo(LogConstants.CTX_ODATA, ODataPlugin.Util.gs(ODataPlugin.Event.TEIID17033, action.getName())); } } }
CsdlActionImport actionImport = new CsdlActionImport(); actionImport.setName(proc.getName()).setAction(new FullQualifiedName(schemaName, proc.getName())); addOperationAnnotations(proc, edmAction, csdlSchema); actions.add(edmAction);
private void readActionImport(XMLEventReader reader, StartElement element, CsdlEntityContainer container) throws XMLStreamException { CsdlActionImport actionImport = new CsdlActionImport(); actionImport.setName(attr(element, "Name")); actionImport.setAction(new FullQualifiedName(attr(element, "Action"))); String entitySet = attr(element, "EntitySet"); if (entitySet != null) { actionImport.setEntitySet(entitySet); } peekAnnotations(reader, "ActionImport", actionImport); container.getActionImports().add(actionImport); }
@Override public EdmAction getUnboundAction() { return edm.getUnboundAction(actionImport.getActionFQN()); } }
protected void loadAllActionImports() { loadContainer(); final List<CsdlActionImport> providerActionImports = container.getActionImports(); final List<EdmActionImport> actionImportsLocal = new ArrayList<EdmActionImport>(); if (providerActionImports != null) { for (CsdlActionImport actionImport : providerActionImports) { addAnnotations(actionImport, entityContainerName); final EdmActionImportImpl impl = new EdmActionImportImpl(edm, this, actionImport); actionImportCache.put(actionImport.getName(), impl); actionImportsLocal.add(impl); } actionImports = actionImportsLocal; } }
/** * This method validates Csdl action import. * It checks if action imports are part of correct container and * actions defined for action imports are correct */ private void validateCsdlActionImport() { for (Map.Entry<FullQualifiedName, CsdlEntityContainer> container : csdlContainersMap.entrySet()) { for (CsdlActionImport actionImport : container.getValue().getActionImports()) { FullQualifiedName fqaction = actionImport.getActionFQN(); if (!(csdlActionsMap.containsKey(fqaction))) { validateCsdlActionsWithAlias(fqaction); } } } }
@Override public CsdlActionImport getActionImport(FullQualifiedName fqn, String actionImportName) throws ODataException { CsdlSchema schema = getSchema(fqn.getNamespace()); if (schema != null) { CsdlEntityContainer ec = schema.getEntityContainer(); if (ec != null && ec.getActionImports() != null) { for (CsdlActionImport es : ec.getActionImports()) { if (es.getName().equals(actionImportName)) { return es; } } } } return null; }
/** * This method validates Csdl action import. * It checks if action imports are part of correct container and * actions defined for action imports are correct */ private void validateCsdlActionImport() { for (Map.Entry<FullQualifiedName, CsdlEntityContainer> container : csdlContainersMap.entrySet()) { for (CsdlActionImport actionImport : container.getValue().getActionImports()) { FullQualifiedName fqaction = actionImport.getActionFQN(); if (!(csdlActionsMap.containsKey(fqaction))) { validateCsdlActionsWithAlias(fqaction); } } } }
@Override public CsdlActionImport getActionImport(FullQualifiedName fqn, String actionImportName) throws ODataException { CsdlSchema schema = getSchema(fqn.getNamespace()); if (schema != null) { CsdlEntityContainer ec = schema.getEntityContainer(); if (ec != null && ec.getActionImports() != null) { for (CsdlActionImport es : ec.getActionImports()) { if (es.getName().equals(actionImportName)) { return es; } } } } return null; }