in src/main/java/org/apache/sling/feature/cpconverter/handlers/slinginitialcontent/VaultContentXMLContentCreator.java [228:256]
private Value createValue(String name, Object value, int index) throws RepositoryException {
ValueFactory valueFactory = ValueFactoryImpl.getInstance();
final Value jcrValue;
if (value instanceof String) {
jcrValue = valueFactory.createValue((String)value);
} else if (value instanceof Long) {
jcrValue = valueFactory.createValue((long)value);
} else if (value instanceof Double) {
jcrValue = valueFactory.createValue((Double)value);
} else if (value instanceof BigDecimal) {
jcrValue = valueFactory.createValue((BigDecimal)value);
} else if (value instanceof Date) {
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.UTC), Locale.ROOT);
calendar.setTime((Date)value);
jcrValue = valueFactory.createValue(calendar);
} else if (value instanceof Calendar) {
jcrValue = valueFactory.createValue((Calendar)value);
} else if (value instanceof Boolean) {
jcrValue = valueFactory.createValue((Boolean)value);
} else if (value instanceof InputStream) {
// binaries are always stored outside the docview xml (https://jackrabbit.apache.org/filevault/vaultfs.html#Binary_Properties)
String binaryPropertyEntryName = PlatformNameFormat.getPlatformName(name) + ((index != -1) ? "[" + index + "]" : "") + ".binary";
createBinary((InputStream)value, SLASH + binaryPropertyEntryName);
jcrValue = valueFactory.createValue("", PropertyType.BINARY);
} else {
throw new UnsupportedOperationException("Unsupported value type " + value.getClass());
}
return jcrValue;
}