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);
}
}