private Value createValue()

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