protected static Property primitiveComplexFunction()

in lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/FunctionData.java [102:226]


  protected static Property primitiveComplexFunction(final String name, final Map<String, Parameter> parameters,
      final Map<String, EntityCollection> data) throws DataProviderException {
    if (name.equals("UFNRTInt16")) {
      return DataCreator.createPrimitive(name, (short) 12345);
    } else if (name.equals("UFCRTString")) {
      return DataCreator.createPrimitive(name, "UFCRTString string value");
    }else if ( name.equals("BFNESTwoKeyNavRTString") ) {
      return DataCreator.createPrimitive(name, "BFNESTwoKeyNavRTString string value");
    } else if (name.equals("UFCRTCollString")) {
      return data.get("ESCollAllPrim").getEntities().get(0).getProperty("CollPropertyString");
    } else if (name.equals("UFCRTCTTwoPrim")) {
      return DataCreator.createComplex(name,
          ComplexTypeProvider.nameCTTwoPrim.getFullQualifiedNameAsString(),
          DataCreator.createPrimitive("PropertyInt16", (short) 16),
          DataCreator.createPrimitive("PropertyString", "UFCRTCTTwoPrim string value"));
    } else if (name.equals("UFCRTCTTwoPrimParam")) {
      return DataCreator.createComplex(name,
          ComplexTypeProvider.nameCTTwoPrim.getFullQualifiedNameAsString(),
          DataCreator.createPrimitive("PropertyInt16", getParameterInt16(parameters)),
          DataCreator.createPrimitive("PropertyString", getParameterString(parameters)));
    } else if (name.equals("UFCRTCollCTTwoPrim")) {
      return DataCreator.createComplexCollection(name,
          ComplexTypeProvider.nameCTTwoPrim.getFullQualifiedNameAsString(),
          Arrays.asList(DataCreator.createPrimitive("PropertyInt16", (short) 16),
              DataCreator.createPrimitive("PropertyString", "Test123")),
          Arrays.asList(DataCreator.createPrimitive("PropertyInt16", 17),
              DataCreator.createPrimitive("PropertyString", "Test456")),
          Arrays.asList(DataCreator.createPrimitive("PropertyInt16", 18),
              DataCreator.createPrimitive("PropertyString", "Test678")));
    } else if (name.equals("UFCRTStringTwoParam")) {
      final String parameterString = getParameterString(parameters);
      // ParameterString is not provided
      if (parameterString == null) {
        return DataCreator.createPrimitive(name, null);
      } else {
        final Short parameterInt16 = getParameterInt16(parameters);
        final StringBuilder builder = new StringBuilder();
        // if parameterInt16 <= 0 return an empty string
        for (short i = parameterInt16; i > 0; i--) {
          if (builder.length() != 0) {
            builder.append(',');
          }
          builder.append('"')
              .append(parameterString)
              .append('"');
        }
        return DataCreator.createPrimitive(name, builder.toString());
      }
    } else if (name.equals("UFCRTCollCTTwoPrimTwoParam")) {
      final Short parameterInt16 = getParameterInt16(parameters);
      final String parameterString = getParameterString(parameters);
      if (parameterString == null) {
        return DataCreator.createComplexCollection(name,
            ComplexTypeProvider.nameCTTwoPrim.getFullQualifiedNameAsString(),
            Arrays.asList(DataCreator.createPrimitive("PropertyInt16", 1),
                DataCreator.createPrimitive("PropertyString", name + " int16 value: " + parameterInt16)),
            Arrays.asList(DataCreator.createPrimitive("PropertyInt16", 2),
                DataCreator.createPrimitive("PropertyString", name + "string value: null")));
      } else {
        List<ComplexValue> complexValues = new ArrayList<ComplexValue>();
        short counter = 1;
        for (short i = parameterInt16; 0 < i; i--) {
          ComplexValue complexValue = new ComplexValue();
          complexValue.getValue().add(new Property(null, "PropertyInt16", ValueType.PRIMITIVE, counter++));
          complexValue.getValue().add(new Property(null, "PropertyString", ValueType.PRIMITIVE, 
              name + " string value: " + parameterString));
          complexValue.setId(URI.create(""));
          complexValues.add(complexValue);
        }
        return new Property(null, name, ValueType.COLLECTION_COMPLEX, complexValues);
      }
    } else if (name.equals("UFNRTByteNineParam")) {
      short count = 0;  // counts non-empty parameters
      for (final Parameter parameter : parameters.values()) {
        if (!(parameter.isNull()
            || !parameter.isCollection()
                && (parameter.isComplex() && parameter.asComplex().getValue().isEmpty()
                    || parameter.isEntity() && ((Entity) parameter.getValue()).getProperties().isEmpty())
            || parameter.isCollection()
                && (parameter.isEntity() && ((EntityCollection) parameter.getValue()).getEntities().isEmpty()
                    || !parameter.isEntity() && parameter.asCollection().isEmpty()))) {
          count++;
        }
      }
      return DataCreator.createPrimitive(null, count);
    } else if (name.equals("_FC_RTTimeOfDay_")) {
      return DataCreator.createPrimitive(name,  getParameterTimeOfDay(parameters));
    } else if (name.equals("BFNESAllPrimRTCTAllPrim")) {
      return DataCreator.createComplex(name,
          ComplexTypeProvider.nameCTAllPrim.getFullQualifiedNameAsString(),
          DataCreator.createPrimitive("PropertyString", "First Resource - first"),
          DataCreator.createPrimitive("PropertyBinary",
              new byte[] { 0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xAB, (byte) 0xCD, (byte) 0xEF }),
          DataCreator.createPrimitive("PropertyBoolean", true),
          DataCreator.createPrimitive("PropertyByte", (short) 255),
          DataCreator.createPrimitive("PropertyDate", getDate(2012, 10, 3)),
          DataCreator.createPrimitive("PropertyDateTimeOffset", getTimestamp(2012, 10, 3, 7, 16, 23, 123456700)),
          DataCreator.createPrimitive("PropertyDecimal", BigDecimal.valueOf(34.27)),
          DataCreator.createPrimitive("PropertySingle", (float) 1.79000000E+20),
          DataCreator.createPrimitive("PropertyDouble", -1.7900000000000000E+19),
          DataCreator.createPrimitive("PropertyDuration", BigDecimal.valueOf(6)),
          DataCreator.createPrimitive("PropertyGuid", GUID),
          DataCreator.createPrimitive("PropertyInt16", Short.MAX_VALUE),
          DataCreator.createPrimitive("PropertyInt32", Integer.MAX_VALUE),
          DataCreator.createPrimitive("PropertyInt64", Long.MAX_VALUE),
          DataCreator.createPrimitive("PropertySByte", Byte.MAX_VALUE),
          DataCreator.createPrimitive("PropertyTimeOfDay", getTime(1, 0, 1)));
    } else if (name.equals("BFCESTwoKeyNavRTCollCTNavFiveProp")) {
      return DataCreator.createComplexCollection(name,
          ComplexTypeProvider.nameCTNavFiveProp.getFullQualifiedNameAsString(),
          Arrays.asList(
              DataCreator.createPrimitive("PropertyInt16", (short) 1)));
    } else if (name.equals("BFCESTwoKeyNavRTCollDecimal")) {
      return DataCreator.createPrimitiveCollection(name,
         1d);
    } else if (name.equals("BFCETTwoKeyNavRTCTTwoPrim")) {
      return DataCreator.createComplex(name,
          ComplexTypeProvider.nameCTTwoPrim.getFullQualifiedNameAsString(),
          DataCreator.createPrimitive("PropertyInt16", (short) 16),
          DataCreator.createPrimitive("PropertyString", "BFCETTwoKeyNavRTCTTwoPrim string value"));
    }  else {
      throw new DataProviderException("Function " + name + " is not yet implemented.",
          HttpStatusCode.NOT_IMPLEMENTED);
    }
  }