public static List getFunctions()

in lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/FunctionProvider.java [258:1156]


  public static List<CsdlFunction> getFunctions(final FullQualifiedName functionName) throws ODataException {
      
      if(functionName.equals(name_FC_RTTimeOfDay_)){
        List<CsdlFunction> functions = new ArrayList<CsdlFunction>();
       
            functions.add(new CsdlFunction()
            .setName(name_FC_RTTimeOfDay_.getName())
            .setParameters(Collections.singletonList(
                new CsdlParameter()
                    .setName("ParameterTimeOfDay")
                    .setType(PropertyProvider.nameTimeOfDay)
                    .setNullable(false)))
            .setComposable(true)
            .setBound(true)
            .setReturnType(
                new CsdlReturnType().setType(PropertyProvider.nameTimeOfDay)));

           functions.add( new CsdlFunction()
            .setName(name_FC_RTTimeOfDay_.getName())
            .setParameters(Arrays.asList(
                new CsdlParameter()
                    .setName("ParameterTimeOfDay")
                    .setType(PropertyProvider.nameTimeOfDay)
                    .setNullable(false),
                 new CsdlParameter()
                    .setName("ParameterAny")
                    .setType(PropertyProvider.nameString)
                    .setNullable(false)))
            .setComposable(true)
            .setBound(true)
            .setReturnType(
                new CsdlReturnType().setType(PropertyProvider.nameTimeOfDay)));

           functions.add( new CsdlFunction()
            .setName(name_FC_RTTimeOfDay_.getName())
            .setParameters(Arrays.asList(
                new CsdlParameter()
                    .setName("ParameterTimeOfDay")
                    .setType(PropertyProvider.nameTimeOfDay)
                    .setNullable(false),
                 new CsdlParameter()
                    .setName("ParameterString")
                    .setType(PropertyProvider.nameString)
                    .setNullable(false),
                  new CsdlParameter()
                    .setName("ParameterAny")
                    .setType(PropertyProvider.nameInt32)
                    .setNullable(false)))
            .setComposable(true)
            .setBound(true)
            .setReturnType(
                new CsdlReturnType().setType(PropertyProvider.nameTimeOfDay)));
        
           functions.add(new CsdlFunction()
            .setName(name_FC_RTTimeOfDay_.getName())
            .setParameters(Collections.singletonList(
                new CsdlParameter()
                    .setName("ParameterTimeOfDay")
                    .setType(PropertyProvider.nameTimeOfDay)
                    .setNullable(false)))
            .setComposable(true)
            .setBound(false)
            .setReturnType(
                new CsdlReturnType().setType(PropertyProvider.nameTimeOfDay)));

           functions.add( new CsdlFunction()
            .setName(name_FC_RTTimeOfDay_.getName())
            .setParameters(Arrays.asList(
                new CsdlParameter()
                    .setName("ParameterTimeOfDay")
                    .setType(PropertyProvider.nameTimeOfDay)
                    .setNullable(false),
                 new CsdlParameter()
                    .setName("ParameterAny")
                    .setType(PropertyProvider.nameString)
                    .setNullable(false)))
            .setComposable(true)
            .setBound(false)
            .setReturnType(
                new CsdlReturnType().setType(PropertyProvider.nameTimeOfDay)));

           functions.add( new CsdlFunction()
            .setName(name_FC_RTTimeOfDay_.getName())
            .setParameters(Arrays.asList(
                new CsdlParameter()
                    .setName("ParameterTimeOfDay")
                    .setType(PropertyProvider.nameTimeOfDay)
                    .setNullable(false),
                 new CsdlParameter()
                    .setName("ParameterString")
                    .setType(PropertyProvider.nameString)
                    .setNullable(false),
                  new CsdlParameter()
                    .setName("ParameterAny")
                    .setType(PropertyProvider.nameInt32)
                    .setNullable(false)))
            .setComposable(true)
            .setBound(false)
            .setReturnType(
                new CsdlReturnType().setType(PropertyProvider.nameTimeOfDay)));
           
        return functions;
        
    }else if(functionName.equals(nameUFCRTCollDecimal)){
          return Collections.singletonList(
          new CsdlFunction()
              .setName(functionName.getName())
              .setParameters(Collections.<CsdlParameter> emptyList())
              .setComposable(true)
              .setReturnType(new CsdlReturnType()
                      .setType(PropertyProvider.nameDecimal)
                      .setPrecision(12)
                      .setScale(5)
                      .setCollection(true)));
          
    }else if(functionName.equals(nameUFCRTDecimal)){
        return Collections.singletonList(
          new CsdlFunction()
              .setName(functionName.getName())
              .setParameters(Collections.<CsdlParameter> emptyList())
              .setComposable(true)
              .setReturnType(new CsdlReturnType()
                      .setType(PropertyProvider.nameDecimal)
                      .setPrecision(12)
                      .setScale(5)));
          
    }else if (functionName.equals(nameUFNRTInt16)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName(functionName.getName())
              .setParameters(Collections.<CsdlParameter> emptyList())
              .setReturnType(new CsdlReturnType().setType(PropertyProvider.nameInt16)));

    } else if (functionName.equals(nameUFCRTETKeyNav)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("UFCRTETKeyNav")
              .setParameters(Collections.<CsdlParameter> emptyList())
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETKeyNav).setNullable(false)));

    } else if (functionName.equals(nameUFCRTETTwoKeyNav)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName(functionName.getName())
              .setParameters(Collections.<CsdlParameter> emptyList())
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false)));
    } else if (functionName.equals(nameUFCRTETTwoKeyNavParam)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("UFCRTETTwoKeyNavParam")
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16).setNullable(false)))
              .setComposable(true)
              .setReturnType(new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false))
          );

    } else if (functionName.equals(nameUFCRTETTwoKeyNavParamCTTwoPrim)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("UFCRTETTwoKeyNavParamCTTwoPrim")
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("ParameterCTTwoPrim").setType(ComplexTypeProvider.nameCTTwoPrim)
                      .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false)
              )
          );

    } else if (functionName.equals(nameUFCRTStringTwoParam)) {
      return Arrays.asList(
          new CsdlFunction()
              .setName("UFCRTStringTwoParam")
              .setParameters(Collections.singletonList(
                  new CsdlParameter()
                      .setName("ParameterInt16")
                      .setType(PropertyProvider.nameInt16)
                      .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(PropertyProvider.nameString).setNullable(true)),
          new CsdlFunction()
              .setName("UFCRTStringTwoParam")
              .setParameters(Arrays.asList(
                  new CsdlParameter()
                      .setName("ParameterString")
                      .setType(PropertyProvider.nameString)
                      .setNullable(false),
                  new CsdlParameter()
                      .setName("ParameterInt16")
                      .setType(PropertyProvider.nameInt16)
                      .setNullable(false)))
              .setComposable(true)
              .setReturnType(new CsdlReturnType().setType(PropertyProvider.nameString).setNullable(true)));

    } else if (functionName.equals(nameUFCRTCollETTwoKeyNavParam)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName(functionName.getName())
              .setParameters(Collections.singletonList(
                  new CsdlParameter()
                      .setName("ParameterInt16")
                      .setType(PropertyProvider.nameInt16)
                      .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameUFCRTCollETKeyNavContParam)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("UFCRTCollETKeyNavContParam")
              .setComposable(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("ParameterInt16")
                      .setNullable(false)
                      .setType(PropertyProvider.nameInt16)))
              .setReturnType(new CsdlReturnType().setType(EntityTypeProvider.nameETKeyNavCont)
                  .setCollection(true)
                  .setNullable(false)));

    } else if (functionName.equals(nameUFCRTString)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("UFCRTString")
              .setComposable(true)
              .setParameters(Collections.<CsdlParameter> emptyList())
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(PropertyProvider.nameString).setNullable(false)));

    } else if (functionName.equals(nameUFCRTCollStringTwoParam)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("UFCRTCollStringTwoParam")
              .setParameters(Arrays.asList(
                  new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString)
                      .setNullable(false),
                  new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16)
                      .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(PropertyProvider.nameString).setCollection(true).setNullable(false)));

    } else if (functionName.equals(nameUFCRTCollString)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("UFCRTCollString")
              .setParameters(Collections.<CsdlParameter> emptyList())
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(PropertyProvider.nameString).setCollection(true).setNullable(false)));

    } else if (functionName.equals(nameUFCRTCTAllPrimTwoParam)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("UFCRTCTAllPrimTwoParam")
              .setParameters(
                  Arrays.asList(
                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString)
                          .setNullable(false),
                      new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16)
                          .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTAllPrim).setNullable(false)));

    } else if (functionName.equals(nameUFNRTCollETMixPrimCollCompTwoParam)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("UFNRTCollETMixPrimCollCompTwoParam")
              .setParameters(
                  Arrays.asList(
                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString)
                          .setNullable(false),
                      new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16)
                          .setNullable(false)))
              .setComposable(false)
              .setBound(false)
              .setReturnType(
                    new CsdlReturnType().setType(EntityTypeProvider.nameETMixPrimCollComp)
                       .setNullable(false)
                       .setCollection(true)));

    } else if (functionName.equals(nameUFNRTByteNineParam)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName(functionName.getName())
              .setParameters(Arrays.asList(
                  new CsdlParameter().setName("ParameterEnum").setType(EnumTypeProvider.nameENString),
                  new CsdlParameter().setName("ParameterDef").setType(TypeDefinitionProvider.nameTDString),
                  new CsdlParameter().setName("ParameterComp").setType(ComplexTypeProvider.nameCTTwoPrim),
                  new CsdlParameter().setName("ParameterETTwoPrim").setType(EntityTypeProvider.nameETTwoPrim),
                  new CsdlParameter().setName("CollParameterByte").setType(PropertyProvider.nameByte)
                      .setCollection(true),
                  new CsdlParameter().setName("CollParameterEnum").setType(EnumTypeProvider.nameENString)
                      .setCollection(true),
                  new CsdlParameter().setName("CollParameterDef").setType(TypeDefinitionProvider.nameTDString)
                      .setCollection(true),
                  new CsdlParameter().setName("CollParameterComp").setType(ComplexTypeProvider.nameCTTwoPrim)
                      .setCollection(true),
                  new CsdlParameter().setName("CollParameterETTwoPrim").setType(EntityTypeProvider.nameETTwoPrim)
                      .setCollection(true)))
              .setComposable(false)
              .setBound(false)
              .setReturnType(new CsdlReturnType().setType(PropertyProvider.nameByte)));

    } else if (functionName.equals(nameUFCRTCTTwoPrimTwoParam)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("UFCRTCTTwoPrimTwoParam")
              .setParameters(
                  Arrays.asList(
                      new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16)
                          .setNullable(false),
                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString)
                          .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setNullable(false)));

    } else if (functionName.equals(nameUFCRTCollCTTwoPrimTwoParam)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("UFCRTCollCTTwoPrimTwoParam")
              .setParameters(
                  Arrays.asList(
                      new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16)
                          .setNullable(false),
                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString)
                          .setNullable(true)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameUFCRTCTTwoPrim)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("UFCRTCTTwoPrim")
              .setParameters(Collections.<CsdlParameter> emptyList())
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setNullable(false)));

    } else if (functionName.equals(nameUFCRTCollCTTwoPrim)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("UFCRTCollCTTwoPrim")
              .setComposable(true)
              .setParameters(Collections.<CsdlParameter> emptyList())
              .setReturnType(
                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameUFCRTETMedia)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("UFCRTETMedia")
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("ParameterInt16").setNullable(false)
                      .setType(PropertyProvider.nameInt16)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETMedia).setNullable(false)));

    } else if (functionName.equals(nameUFCRTCollETMedia)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName(functionName.getName())
              .setParameters(Collections.<CsdlParameter> emptyList())
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETMedia).setCollection(true).setNullable(false)));

    } else if (functionName.equals(nameUFCRTCollETMixPrimCollCompTwoParam)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName(functionName.getName())
              .setParameters(
                  Arrays.asList(
                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString)
                          .setNullable(false),
                      new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16)
                          .setNullable(false)))
              .setComposable(true)
              .setBound(false)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETMixPrimCollComp).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameUFCRTETAllPrimTwoParam)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("UFCRTETAllPrimTwoParam")
              .setParameters(
                  Arrays.asList(
                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString)
                          .setNullable(false),
                      new CsdlParameter().setName("ParameterInt16").setType(PropertyProvider.nameInt16)
                          .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETAllPrim).setNullable(false)));

    } else if (functionName.equals(nameUFNRTCollCTNavFiveProp)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("UFNRTCollCTNavFiveProp")
              .setReturnType(
                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTNavFiveProp).setCollection(true)));

    } else if (functionName.equals(nameBFC_RTESTwoKeyNav_)) {
      return Arrays.asList(
          new CsdlFunction()
              .setName(nameBFC_RTESTwoKeyNav_.getName())
              .setEntitySetPath("BindingParam/NavPropertyETTwoKeyNavMany")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                      .setCollection(true).setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)
                      .setNullable(false)),

          new CsdlFunction()
              .setName(nameBFC_RTESTwoKeyNav_.getName())
              .setBound(true)
              .setParameters(Arrays.asList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                      .setCollection(true).setNullable(false),
                  new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString)
                      .setCollection(false).setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)
                      .setNullable(false)),

          new CsdlFunction()
              .setName(nameBFC_RTESTwoKeyNav_.getName())
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETKeyNav)
                      .setCollection(true).setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameBFCStringRTESTwoKeyNav)) {
      return Collections.singletonList(
          new CsdlFunction().setName("BFCStringRTESTwoKeyNav")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(PropertyProvider.nameString).setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameBFCETBaseTwoKeyNavRTETTwoKeyNav)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCETBaseTwoKeyNavRTETTwoKeyNav")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETBaseTwoKeyNav)
                      .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false)));

    } else if (functionName.equals(nameBFCESBaseTwoKeyNavRTESBaseTwoKey)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCESBaseTwoKeyNavRTESBaseTwoKey")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETBaseTwoKeyNav)
                      .setCollection(true).setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETBaseTwoKeyNav).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameBFNESAllPrimRTCTAllPrim)) {
      return Arrays.asList(
          new CsdlFunction()
              .setName("BFNESAllPrimRTCTAllPrim")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETAllPrim)
                      .setCollection(true).setNullable(false)))
              .setComposable(false)
              .setReturnType(
                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTAllPrim).setNullable(false)));

    } else if (functionName.equals(nameBFCESTwoKeyNavRTCTTwoPrim)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCESTwoKeyNavRTCTTwoPrim")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                      .setCollection(true).setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setNullable(false)));

    } else if (functionName.equals(nameBFCESTwoKeyNavRTCollCTTwoPrim)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCESTwoKeyNavRTCollCTTwoPrim")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                      .setCollection(true).setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameBFCESTwoKeyNavRTString)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCESTwoKeyNavRTString")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                      .setCollection(true).setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(PropertyProvider.nameString).setNullable(false)));
      
    } else if (functionName.equals(nameBFNESTwoKeyNavRTString)){
        return Collections.singletonList(
          new CsdlFunction()
              .setName("BFNESTwoKeyNavRTString")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                      .setCollection(true).setNullable(false)))
              .setComposable(false)
              .setReturnType(
                  new CsdlReturnType().setType(PropertyProvider.nameString).setNullable(false)));

    } else if (functionName.equals(nameBFCESTwoKeyNavRTCollString)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCESTwoKeyNavRTCollString")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                      .setCollection(true).setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(PropertyProvider.nameString).setCollection(true).setNullable(false)));

    } else if (functionName.equals(nameBFCETTwoKeyNavRTESTwoKeyNav)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCETTwoKeyNavRTESTwoKeyNav")
              .setEntitySetPath("BindingParam/NavPropertyETTwoKeyNavOne")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                      .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameBFCETBaseTwoKeyNavRTESTwoKeyNav)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCETBaseTwoKeyNavRTESTwoKeyNav")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETBaseTwoKeyNav)
                      .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameBFCSINavRTESTwoKeyNav)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCSINavRTESTwoKeyNav")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                          .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameBFCETBaseTwoKeyNavRTESBaseTwoKey)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCETBaseTwoKeyNavRTESBaseTwoKey")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETBaseTwoKeyNav)
                      .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETBaseTwoKeyNav).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameBFCCollStringRTESTwoKeyNav)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCCollStringRTESTwoKeyNav")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(PropertyProvider.nameString).setCollection(true)
                      .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameBFCCTPrimCompRTESTwoKeyNav)) {
      return Arrays.asList(
          new CsdlFunction()
              .setName("BFCCTPrimCompRTESTwoKeyNav")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(ComplexTypeProvider.nameCTPrimComp)
                      .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameBFCCTPrimCompRTESBaseTwoKeyNav)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCCTPrimCompRTESBaseTwoKeyNav")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(ComplexTypeProvider.nameCTPrimComp)
                      .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETBaseTwoKeyNav).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameBFCColCTAllPrimRTESAllPrim)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCColCTAllPrimRTESAllPrim")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(ComplexTypeProvider.nameCTAllPrim)
                      .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETAllPrim).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameBFCCollCTPrimCompRTESAllPrim)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCCollCTPrimCompRTESAllPrim")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(ComplexTypeProvider.nameCTPrimComp)
                      .setCollection(true).setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETAllPrim).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameBFCESTwoKeyNavRTTwoKeyNav)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCESTwoKeyNavRTTwoKeyNav")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                      .setCollection(true).setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false)));

    } else if (functionName.equals(nameBFCESKeyNavRTETKeyNav)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCESKeyNavRTETKeyNav")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETKeyNav)
                      .setCollection(true).setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETKeyNav).setNullable(false)));

    } else if (functionName.equals(nameBFCETKeyNavRTETKeyNav)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCETKeyNavRTETKeyNav")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETKeyNav)
                      .setNullable(false)))
              .setComposable(true)
              .setEntitySetPath("BindingParam/NavPropertyETKeyNavOne")
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETKeyNav).setNullable(false)));

    } else if (functionName.equals(nameBFESTwoKeyNavRTESTwoKeyNav)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFESTwoKeyNavRTESTwoKeyNav")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                      .setCollection(true).setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameBFESBaseRTESTwoBase)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFESBaseRTESTwoBase")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETBase)
                  .setNullable(false)))
              .setComposable(true)
              .setEntitySetPath("BindingParam/olingo.odata.test1.ETTwoBase")
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoBase)
                      .setNullable(false)));

    } else if (functionName.equals(nameBFCESKeyNavRTESTwoKeyNav)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCESKeyNavRTESTwoKeyNav")
              .setEntitySetPath("BindingParam/NavPropertyETTwoKeyNavMany")
              .setBound(true)
              .setComposable(true)
              .setParameters(Arrays.asList(
                  new CsdlParameter().setName("BindingParam")
                      .setNullable(false)
                      .setType(EntityTypeProvider.nameETKeyNav)
                      .setCollection(true),
                  new CsdlParameter().setName("ParameterString")
                      .setNullable(false)
                      .setType(PropertyProvider.nameString)))
              .setReturnType(new CsdlReturnType()
                  .setNullable(false)
                  .setType(EntityTypeProvider.nameETTwoKeyNav)
                  .setCollection(true)));

    } else if (functionName.equals(nameBFCETTwoKeyNavRTETTwoKeyNav)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCETTwoKeyNavRTETTwoKeyNav")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                      .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false)));
      
   } else if (functionName.equals(nameBFCESTwoKeyNavRTCollDecimal)){
        return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCESTwoKeyNavRTCollDecimal")
              .setBound(true)
              .setParameters(
                  Collections.singletonList(
                      new CsdlParameter().setName("BindingParam")
                          .setType(EntityTypeProvider.nameETTwoKeyNav)
                          .setNullable(false)
                          .setCollection(true)))
              .setComposable(true)
              .setBound(true)
              .setReturnType(
                  new CsdlReturnType().setType(PropertyProvider.nameDecimal)
                      .setPrecision(12)
                      .setScale(5)
                      .setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameBFCETTwoKeyNavRTCTTwoPrim)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCETTwoKeyNavRTCTTwoPrim")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                      .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTTwoPrim).setNullable(false)));

    } else if (functionName.equals(nameBFCESTwoKeyNavRTCTNavFiveProp)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCESTwoKeyNavRTCTNavFiveProp")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                      .setCollection(true).setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTNavFiveProp).setNullable(false)));

    } else if (functionName.equals(nameBFCESTwoKeyNavRTCollCTNavFiveProp)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCESTwoKeyNavRTCollCTNavFiveProp")
              .setBound(true)
              .setParameters(Collections.singletonList(
                  new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                      .setCollection(true).setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(ComplexTypeProvider.nameCTNavFiveProp).setCollection(true)
                      .setNullable(false)));

    } else if (functionName.equals(nameBFCESTwoKeyNavRTStringParam)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCESTwoKeyNavRTStringParam")
              .setBound(true)
              .setParameters(
                  Arrays.asList(
                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETTwoKeyNav)
                          .setCollection(true).setNullable(false),
                      new CsdlParameter().setName("ParameterComp").setType(ComplexTypeProvider.nameCTTwoPrim)
                          .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(PropertyProvider.nameString).setNullable(false)));

    } else if (functionName.equals(nameBFCESKeyNavRTETKeyNavParam)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCESKeyNavRTETKeyNavParam")
              .setBound(true)
              .setParameters(
                  Arrays.asList(
                      new CsdlParameter().setName("BindingParam").setType(EntityTypeProvider.nameETKeyNav)
                          .setCollection(true).setNullable(false),
                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString)
                          .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETKeyNav).setNullable(false)));

    } else if (functionName.equals(nameBFCCTPrimCompRTETTwoKeyNavParam)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCCTPrimCompRTETTwoKeyNavParam")
              .setBound(true)
              .setParameters(
                  Arrays.asList(
                      new CsdlParameter().setName("BindingParam").setType(ComplexTypeProvider.nameCTPrimComp)
                          .setNullable(false),
                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString)
                          .setNullable(false)))
              .setComposable(true)
              .setReturnType(new CsdlReturnType()
                  .setType(EntityTypeProvider.nameETTwoKeyNav).setNullable(false)));

    } else if (functionName.equals(nameBFCCTPrimCompRTESTwoKeyNavParam)) {
      return Collections.singletonList(
          new CsdlFunction()
              .setName("BFCCTPrimCompRTESTwoKeyNavParam")
              .setBound(true)
              .setParameters(
                  Arrays.asList(
                      new CsdlParameter().setName("BindingParam").setType(ComplexTypeProvider.nameCTPrimComp)
                          .setNullable(false),
                      new CsdlParameter().setName("ParameterString").setType(PropertyProvider.nameString)
                          .setNullable(false)))
              .setComposable(true)
              .setReturnType(
                  new CsdlReturnType().setType(EntityTypeProvider.nameETTwoKeyNav).setCollection(true)
                      .setNullable(false)));
    }

    return null;
  }