You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@olingo.apache.org by "Saurabh Talwalkar (Jira)" <ji...@apache.org> on 2021/02/22 11:55:00 UTC

[jira] [Created] (OLINGO-1513) How can I add Annotations from core vocabularies in my Metadata.xml file using olingo Java?

Saurabh Talwalkar created OLINGO-1513:
-----------------------------------------

             Summary: How can I add Annotations from core vocabularies in my Metadata.xml file using olingo Java?
                 Key: OLINGO-1513
                 URL: https://issues.apache.org/jira/browse/OLINGO-1513
             Project: Olingo
          Issue Type: Question
          Components: odata4-server
    Affects Versions: (Java) V4 4.8.0
            Reporter: Saurabh Talwalkar


I am trying to add an annotation to mark an Entity Set as NonFilterable to my Metadata.

I cannot find any example on the internet to do this. Is there a sample which shows how to write Olingo 4 code to generate a metadata file with FilterRestrictions annotation or any other core vocabulary annotations?

I have tried this method after creating my entity set in my Entity Data Model Provider class.
{code:java}
//In my EntityDataModelProvider.java I call this method after i create an EntitySet

private void setNonFilterableTypeId(CsdlEntitySet csdlEntitySet{
        List<CsdlAnnotation> annotationList = csdlEntitySet.getAnnotations();
        CsdlPropertyPath path = new CsdlPropertyPath();
        path.setValue("token");
        CsdlCollection collection = new CsdlCollection();
        collection.setItems(Arrays.asList(path));
        CsdlPropertyValue propertyValue1 = new CsdlPropertyValue();
        propertyValue1.setProperty("NonFilterableProperties");
        propertyValue1.setValue(collection);
        CsdlRecord record = new CsdlRecord();
        record.setPropertyValues(Arrays.asList(propertyValue1));
        CsdlAnnotation annotation = new CsdlAnnotation();
        annotation.setTerm("Org.OData.Capabilities.V1.FilterRestrictions");
        annotation.setExpression(record);
        annotationList.add(annotation);
    }


{code}
The output Metadata XML that is created is missing the value of the term attribute. It shows 
<Annotation> instead of <Annotation Term="Org.OData.Capabilities.V1.FilterRestrictions">
{code:java}
<EntitySet Name="Persons" EntityType="mynamespace.Person">
   <Annotation>
    <Record>
     <PropertyValue Property="NonFilterableProperties">
       <Collection>
         <PropertyPath>token</PropertyPath>
       </Collection>
     </PropertyValue>
    </Record>
   </Annotation>
</EntitySet>
{code}
 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)