All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.jcr.PropertyType Maven / Gradle / Ivy

There is a newer version: 2024.11.18598.20241113T125352Z-241000
Show newest version
/*
 * Copyright 2009 Day Management AG, Switzerland. All rights reserved.
 */
package javax.jcr;

/**
 * The property types supported by the JCR standard.
 * 

* This interface defines following property types:

  • STRING *
  • BINARY
  • LONG
  • DOUBLE *
  • DECIMAL
  • DATE
  • BOOLEAN *
  • NAME
  • PATH
  • REFERENCE *
  • WEAKREFERENCE
  • URI
. */ public final class PropertyType { /* * The supported property types. */ /** * The STRING property type is used to store strings. It has * the same characteristics as the Java String class. */ public static final int STRING = 1; /** * BINARY properties are used to store binary data. */ public static final int BINARY = 2; /** * The LONG property type is used to store integers. It has the * same characteristics as the Java primitive type long. */ public static final int LONG = 3; /** * The DOUBLE property type is used to store floating point * numbers. It has the same characteristics as the Java primitive type * double. */ public static final int DOUBLE = 4; /** * The DATE property type is used to store time and date * information. */ public static final int DATE = 5; /** * The BOOLEAN property type is used to store boolean values. * It has the same characteristics as the Java primitive type * boolean. */ public static final int BOOLEAN = 6; /** * A NAME is a pairing of a namespace and a local name. When * read, the namespace is mapped to the current prefix. */ public static final int NAME = 7; /** * A PATH property is an ordered list of path elements. A path * element is a NAME with an optional index. When read, the * NAMEs within the path are mapped to their current prefix. A * path may be absolute or relative. */ public static final int PATH = 8; /** * A REFERENCE property stores the identifier of a * referenceable node (one having type mix:referenceable), * which must exist within the same workspace or session as the * REFERENCE property. A REFERENCE property * enforces this referential integrity by preventing the removal of its * target node. */ public static final int REFERENCE = 9; /** * A WEAKREFERENCE property stores the identifier of a * referenceable node (one having type mix:referenceable). A * WEAKREFERENCE property does not enforce referential * integrity. * * @since JCR 2.0 */ public static final int WEAKREFERENCE = 10; /** * A URI property is identical to STRING property * except that it only accepts values that conform to the syntax of a * URI-reference as defined in RFC 3986. * * @since JCR 2.0 */ public static final int URI = 11; /** * The DECIMAL property type is used to store precise decimal * numbers. It has the same characteristics as the Java class * java.math.BigDecimal. * * @since JCR 2.0 */ public static final int DECIMAL = 12; /** * This constant can be used within a property definition (see 4.7.5 * Property Definitions) to specify that the property in question may be * of any type. However, it cannot be the actual type of any property * instance. For example, it will never be returned by {@link * Property#getType} and it cannot be assigned as the type when creating a * new property. */ public static final int UNDEFINED = 0; /** * String constant for type name as used in serialization. */ public static final String TYPENAME_STRING = "String"; /** * String constant for type name as used in serialization. */ public static final String TYPENAME_BINARY = "Binary"; /** * String constant for type name as used in serialization. */ public static final String TYPENAME_LONG = "Long"; /** * String constant for type name as used in serialization. */ public static final String TYPENAME_DOUBLE = "Double"; /** * String constant for type name as used in serialization. * * @since JCR 2.0 */ public static final String TYPENAME_DECIMAL = "Decimal"; /** * String constant for type name as used in serialization. */ public static final String TYPENAME_DATE = "Date"; /** * String constant for type name as used in serialization. */ public static final String TYPENAME_BOOLEAN = "Boolean"; /** * String constant for type name as used in serialization. */ public static final String TYPENAME_NAME = "Name"; /** * String constant for type name as used in serialization. */ public static final String TYPENAME_PATH = "Path"; /** * String constant for type name as used in serialization. */ public static final String TYPENAME_REFERENCE = "Reference"; /** * String constant for type name as used in serialization. * * @since JCR 2.0 */ public static final String TYPENAME_WEAKREFERENCE = "WeakReference"; /** * String constant for type name as used in serialization. * * @since JCR 2.0 */ public static final String TYPENAME_URI = "URI"; /* * String constant for type name as used in serialization. */ public static final String TYPENAME_UNDEFINED = "undefined"; /** * Returns the name of the specified type, as used in * serialization. * * @param type the property type * @return the name of the specified type * @throws IllegalArgumentException if type is not a valid * property type. */ public static String nameFromValue(int type) { switch (type) { case STRING: return TYPENAME_STRING; case BINARY: return TYPENAME_BINARY; case BOOLEAN: return TYPENAME_BOOLEAN; case LONG: return TYPENAME_LONG; case DOUBLE: return TYPENAME_DOUBLE; case DECIMAL: return TYPENAME_DECIMAL; case DATE: return TYPENAME_DATE; case NAME: return TYPENAME_NAME; case PATH: return TYPENAME_PATH; case REFERENCE: return TYPENAME_REFERENCE; case WEAKREFERENCE: return TYPENAME_WEAKREFERENCE; case URI: return TYPENAME_URI; case UNDEFINED: return TYPENAME_UNDEFINED; default: throw new IllegalArgumentException("unknown type: " + type); } } /** * Returns the numeric constant value of the type with the specified name. * * @param name the name of the property type. * @return the numeric constant value. * @throws IllegalArgumentException if name is not a valid * property type name. */ public static int valueFromName(String name) { if (name.equals(TYPENAME_STRING)) { return STRING; } else if (name.equals(TYPENAME_BINARY)) { return BINARY; } else if (name.equals(TYPENAME_BOOLEAN)) { return BOOLEAN; } else if (name.equals(TYPENAME_LONG)) { return LONG; } else if (name.equals(TYPENAME_DOUBLE)) { return DOUBLE; } else if (name.equals(TYPENAME_DECIMAL)) { return DECIMAL; } else if (name.equals(TYPENAME_DATE)) { return DATE; } else if (name.equals(TYPENAME_NAME)) { return NAME; } else if (name.equals(TYPENAME_PATH)) { return PATH; } else if (name.equals(TYPENAME_REFERENCE)) { return REFERENCE; } else if (name.equals(TYPENAME_WEAKREFERENCE)) { return WEAKREFERENCE; } else if (name.equals(TYPENAME_URI)) { return URI; } else if (name.equals(TYPENAME_UNDEFINED)) { return UNDEFINED; } else { throw new IllegalArgumentException("unknown type: " + name); } } /** * Private constructor to prevent instantiation. */ private PropertyType() { } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy