public static PropertyState createProperty()

in oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyStates.java [196:248]


    public static PropertyState createProperty(String name, Object value, Type<?> type) {
        switch (type.tag()) {
            case PropertyType.STRING:
                return type.isArray()
                ? MultiStringPropertyState.stringProperty(name, (Iterable<String>) value)
                : StringPropertyState.stringProperty(name, (String) value);
            case PropertyType.BINARY:
                return type.isArray()
                ? MultiBinaryPropertyState.binaryPropertyFromBlob(name, (Iterable<Blob>) value)
                : BinaryPropertyState.binaryProperty(name, (Blob) value);
            case PropertyType.LONG:
                return type.isArray()
                ? MultiLongPropertyState.createLongProperty(name, (Iterable<Long>) value)
                : LongPropertyState.createLongProperty(name, (Long) value);
            case PropertyType.DOUBLE:
                return type.isArray()
                ? MultiDoublePropertyState.doubleProperty(name, (Iterable<Double>) value)
                : DoublePropertyState.doubleProperty(name, (Double) value);
            case PropertyType.DATE:
                return type.isArray()
                ? MultiGenericPropertyState.dateProperty(name, (Iterable<String>) value)
                : GenericPropertyState.dateProperty(name, (String) value);
            case PropertyType.BOOLEAN:
                return type.isArray()
                ? MultiBooleanPropertyState.booleanProperty(name, (Iterable<Boolean>) value)
                : BooleanPropertyState.booleanProperty(name, (Boolean) value);
            case PropertyType.NAME:
                return type.isArray()
                ? MultiGenericPropertyState.nameProperty(name, (Iterable<String>) value)
                : GenericPropertyState.nameProperty(name, (String) value);
            case PropertyType.PATH:
                return type.isArray()
                ? MultiGenericPropertyState.pathProperty(name, (Iterable<String>) value)
                : GenericPropertyState.pathProperty(name, (String) value);
            case PropertyType.REFERENCE:
                return type.isArray()
                ? MultiGenericPropertyState.referenceProperty(name, (Iterable<String>) value)
                : GenericPropertyState.referenceProperty(name, (String) value);
            case PropertyType.WEAKREFERENCE:
                return type.isArray()
                ? MultiGenericPropertyState.weakreferenceProperty(name, (Iterable<String>) value)
                : GenericPropertyState.weakreferenceProperty(name, (String) value);
            case PropertyType.URI:
                return type.isArray()
                ? MultiGenericPropertyState.uriProperty(name, (Iterable<String>) value)
                : GenericPropertyState.uriProperty(name, (String) value);
            case PropertyType.DECIMAL:
                return type.isArray()
                ? MultiDecimalPropertyState.decimalProperty(name, (Iterable<BigDecimal>) value)
                : DecimalPropertyState.decimalProperty(name, (BigDecimal) value);
            default: throw new IllegalArgumentException("Invalid type: " + type);
        }
    }