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

org.plasma.sdo.PlasmaProperty Maven / Gradle / Ivy

There is a newer version: 1.3.3
Show newest version
/**
 *         PlasmaSDO™ License
 * 
 * This is a community release of PlasmaSDO™, a dual-license 
 * Service Data Object (SDO) 2.1 implementation. 
 * This particular copy of the software is released under the 
 * version 2 of the GNU General Public License. PlasmaSDO™ was developed by 
 * TerraMeta Software, Inc.
 * 
 * Copyright (c) 2013, TerraMeta Software, Inc. All rights reserved.
 * 
 * General License information can be found below.
 * 
 * This distribution may include materials developed by third
 * parties. For license and attribution notices for these
 * materials, please refer to the documentation that accompanies
 * this distribution (see the "Licenses for Third-Party Components"
 * appendix) or view the online documentation at 
 * .
 *  
 */
package org.plasma.sdo;

import java.util.List;

import org.plasma.sdo.core.CoreConstants;
import org.plasma.sdo.core.CoreProperty;
import org.plasma.sdo.profile.ConcurrencyType;
import org.plasma.sdo.profile.ConcurrentDataFlavor;
import org.plasma.sdo.profile.KeyType;
import org.plasma.sdo.repository.Comment;
import org.plasma.sdo.repository.Enumeration;

import commonj.sdo.DataObject;
import commonj.sdo.Property;
import commonj.sdo.Type;

/**
 * A representation of a Property in the {@link Type type} of a
 * {@link DataObject data object}.
 */
public interface PlasmaProperty extends Property {
   
    // instance properties on DataObject 
    public static final PlasmaProperty INSTANCE_PROPERTY_STRING_UUID = CoreProperty.createInstanceProperty(CoreConstants.PROPERTY_NAME_UUID_STRING, DataType.String);
    public static final PlasmaProperty INSTANCE_PROPERTY_LONG_SNAPSHOT_TIMESTAMP = CoreProperty.createInstanceProperty(CoreConstants.PROPERTY_NAME_SNAPSHOT_TIMESTAMP, DataType.Long);

    public static final PlasmaProperty INSTANCE_PROPERTY_BOOLEAN_ISOPERATIONAL = CoreProperty.createInstanceProperty("IsOperational", DataType.Boolean);
    //public static PlasmaProperty INSTANCE_PROPERTY_BOOLEAN_ISLOGGING = createInstanceProperty("IsLogging", DataType.Boolean);
     
    
    public static final PlasmaProperty INSTANCE_PROPERTY_INT_MAXLENGTH = CoreProperty.createInstanceProperty("MaxLength", DataType.Int);
    public static final PlasmaProperty INSTANCE_PROPERTY_BOOLEAN_ISUNIQUE = CoreProperty.createInstanceProperty("IsUnique", DataType.Boolean);

    // instance properties on Type
    public static final PlasmaProperty INSTANCE_PROPERTY_OBJECT_PRIKEY_PROPERTIES = CoreProperty.createInstanceProperty("PriKeyProperties", DataType.Object);
    public static final PlasmaProperty INSTANCE_PROPERTY_OBJECT_CONCURRENCY_USER = CoreProperty.createInstanceProperty("ConcurrencyUser", DataType.Object);
    public static final PlasmaProperty INSTANCE_PROPERTY_OBJECT_CONCURRENCY_VERSION = CoreProperty.createInstanceProperty("ConcurrencyVersion", DataType.Object);
    public static final PlasmaProperty INSTANCE_PROPERTY_OBJECT_LOCKING_USER = CoreProperty.createInstanceProperty("LockingUser", DataType.Object);
    public static final PlasmaProperty INSTANCE_PROPERTY_OBJECT_LOCKING_TIMESTAMP = CoreProperty.createInstanceProperty("LockingTimestamp", DataType.Object);
    public static final PlasmaProperty INSTANCE_PROPERTY_OBJECT_ORIGINATION_USER = CoreProperty.createInstanceProperty("OriginationUser", DataType.Object);
    public static final PlasmaProperty INSTANCE_PROPERTY_OBJECT_ORIGINATION_TIMESTAMP = CoreProperty.createInstanceProperty("OriginationTimestamp", DataType.Object);
    public static final PlasmaProperty INSTANCE_PROPERTY_OBJECT_DESCRIPTION = CoreProperty.createInstanceProperty("Description", DataType.String);
    public static final PlasmaProperty INSTANCE_PROPERTY_STRING_NAMESPACE_URI = CoreProperty.createInstanceProperty("NamespaceURI", DataType.String);
    public static final PlasmaProperty INSTANCE_PROPERTY_STRING_NAMESPACE_PHYSICAL_NAME = CoreProperty.createInstanceProperty("NamespacePhysicalName", DataType.String);

    // instance properties used on Properties and/or Types
    public static final PlasmaProperty INSTANCE_PROPERTY_STRING_PHYSICAL_NAME = CoreProperty.createInstanceProperty("PhysicalName", DataType.String);
    public static final PlasmaProperty INSTANCE_PROPERTY_OBJECT_VISIBILITY = CoreProperty.createInstanceProperty("Visibility", DataType.Object);
    public static final PlasmaProperty INSTANCE_PROPERTY_STRING_LOCAL_NAME = CoreProperty.createInstanceProperty("LocalName", DataType.String);
    public static final PlasmaProperty INSTANCE_PROPERTY_STRING_BUSINESS_NAME = CoreProperty.createInstanceProperty("BusinessName", DataType.String);
    
    public static final PlasmaProperty INSTANCE_PROPERTY_BYTES_NAME_BYTES = CoreProperty.createInstanceProperty("NameBytes", DataType.Bytes);
    public static final PlasmaProperty INSTANCE_PROPERTY_BYTES_URI_BYTES = CoreProperty.createInstanceProperty("URIBytes", DataType.Bytes);
    public static final PlasmaProperty INSTANCE_PROPERTY_BYTES_PACKAGE_PHYSICAL_NAME_BYTES = CoreProperty.createInstanceProperty("PackagePhysicalNameBytes", DataType.Bytes);
    public static final PlasmaProperty INSTANCE_PROPERTY_BYTES_PHYSICAL_NAME_BYTES = CoreProperty.createInstanceProperty("PhysicalNameBytes", DataType.Bytes);
    public static final PlasmaProperty INSTANCE_PROPERTY_BYTES_LOCAL_NAME_BYTES = CoreProperty.createInstanceProperty("LocalNameBytes", DataType.Bytes);
    
    public static final PlasmaProperty INSTANCE_PROPERTY_OBJECT_QUALIFIED_NAME = CoreProperty.createInstanceProperty("QualifiedName", DataType.Object);
    public static final PlasmaProperty INSTANCE_PROPERTY_BYTES_QUALIFIED_NAME_BYTES = CoreProperty.createInstanceProperty("QualifiedNameBytes", DataType.Bytes);
    public static final PlasmaProperty INSTANCE_PROPERTY_BYTES_QUALIFIED_PHYSICAL_NAME_BYTES = CoreProperty.createInstanceProperty("QualifiedPhysicalNameBytes", DataType.Bytes);
    
    
    // FIXME: not used - seemingly should be instance properties on a base type
    public static final PlasmaProperty INSTANCE_PROPERTY_OBJECT_SNAPSHOT_DATE_PROPERTY = CoreProperty.createInstanceProperty("SnapshotDateProperty", DataType.Object);
    public static final PlasmaProperty INSTANCE_PROPERTY_OBJECT_IS_LOCKED_PROPERTY = CoreProperty.createInstanceProperty("IsLockedProperty", DataType.Object);
	
    /**
     * For data type properties, returns the data flavor associated
     * with the property data type. 
     * @throws UnsupportedOperationException when the property is not a data type property
     * i.e. when property.getType().isDataType() returns false. 
     * @return the data flavor associated
     * with the property data type
     */
	public DataFlavor getDataFlavor();
    
	public List getDescription();
	public String getDescriptionText();	
	public Enumeration getRestriction();
	
		
	/**
	 * Returns true if this property is rendered within an XML document
	 * as an XML attribute. This determination is based 
	 * on 1.) whether the XmlProperty information exists for this
	 * property and the {@link XmlNodeType nodeType} is 'attribute'
	 * and then 2.) on a simple algorithm based on the data type
	 * and data flavor. 
	 * 
	 * @return true if this property is rendered within an XML document
	 * as an XML attribute.
	 * @see XmlProperty
	 * @see XmlNodeType
	 */
	public boolean isXMLAttribute();
	
    /**
     * Returns the alias for this property if exists, or null
     * if not exists
     * @return the alias, or null
     * if not exists
     * @see Alias
     */
    public Alias getAlias();
    
    /**
     * Returns the logical name of this Property as a byte array which may be cached
     * or lazily cached on demand. 
     * 

* Helps support {@link org.plasma.sdo.access.DataAccessService Data Access Services} for sparse, * distributed "cloud" data stores typically storing lexicographically * ordered row and column keys as uninterpreted arrays of bytes. Fast dynamic * construction of such keys is important as such services may necessarily construct * unique composite keys based in part on qualified or unqualified logical or physical * type names. *

* @return the logical name alias as a byte array. */ public byte[] getNameBytes(); /** * Returns the physical name alias for this property if exists, or null * if not exists * @return the physical name alias, or null * if not exists * @see Alias */ public String getPhysicalName(); /** * Returns the physical name alias of this Property as a byte array which may be cached * or lazily cached on demand, or null if no physical alias name exists. *

* Helps support {@link org.plasma.sdo.access.DataAccessService Data Access Services} for sparse, * distributed "cloud" data stores typically storing lexicographically * ordered row and column keys as uninterpreted arrays of bytes. Fast dynamic * construction of such keys is important as such services may necessarily construct * unique composite keys based in part on qualified or unqualified logical or physical * type names. *

* @return the physical name alias of this Property as a byte array, or null if no physical alias name exists. */ public byte[] getPhysicalNameBytes(); /** * Returns the local name alias for this Property if exists, or otherwise * the property name * @return the local name alias for this Property if exists, or otherwise * the property name * @see Alias */ public String getLocalName(); /** * Returns the local name of this Property as a byte array which may be cached * or lazily cached on demand. *

* Helps support {@link org.plasma.sdo.access.DataAccessService Data Access Services} for sparse, * distributed "cloud" data stores typically storing lexicographically * ordered row and column keys as uninterpreted arrays of bytes. Fast dynamic * construction of such keys is important as such services may necessarily construct * unique composite keys based in part on qualified or unqualified logical or physical * type names. *

* @return the local name of this Property as a byte array */ public byte[] getLocalNameBytes(); /** * Returns the key information for this property if exists, or null * if not exists * @return the key information, or null * if not exists * @see Key */ public Key getKey(); /** * Returns true if the key information for this property if exists. * @param keyType the key type * @return true if the key information for this property if exists * @see Key */ public boolean isKey(); /** * Returns true if the key information for this property if exists and the * key type is set to the given type. * @param keyType the key type * @return true if the key information for this property if exists and the * key type is set to the given type * @see KeyType */ public boolean isKey(KeyType keyType); /** * Returns the key supplier property for this property or null if not exists. * @return the key supplier property for this property or null if not exists. */ public PlasmaProperty getKeySupplier(); /** * Returns the concurrent information for this property if exists, or null * if not exists * @return the concurrent information, or null * if not exists * @see Concurrent */ public Concurrent getConcurrent(); /** * Returns true if this property is tagged as concurrent. * @return true if this property is tagged as concurrent. */ public boolean isConcurrent(); /** * Returns true if this property is tagged as concurrent for the given * concurrency type and data flavor. * @param type the concurrency type * @param dataFlavor concurrency data flavor * @return true if this property is tagged as concurrent for the given * concurrency type and data flavor. */ public boolean isConcurrent(ConcurrencyType type, ConcurrentDataFlavor dataFlavor); /** * Returns the temporal information for this property if exists, or null * if not exists * @return the temporal information, or null * if not exists * @throws IllegalArgumentException if the property's type is * not a data type, e.g. if property.getType().isDataType() returns false. * @see Temporal */ public Temporal getTemporal(); /** * Returns the enumeration constraint information for this property if exists, or null * if not exists * @return the enumeration constraint information, or null * if not exists * @throws IllegalArgumentException if the property's type is * not a data type, e.g. if property.getType().isDataType() returns false. * @see Temporal */ public EnumerationConstraint getEnumerationConstraint(); /** * Returns the value-set constraint information for this property if exists, or null * if not exists * @return the value-set constraint information, or null * if not exists * @throws IllegalArgumentException if the property's type is * not a data type, e.g. if property.getType().isDataType() returns false. * @see ValueSetConstraint */ public ValueSetConstraint getValueSetConstraint(); /** * Returns the sorting information for this property if exists, or null * if not exists * @return the sorting information, or null * if not exists * @see Sequence */ public Sort getSort(); /** * Returns the maximum length allowed this property, or -1 if no * maximum length is defined. * @return the maximum length or -1 if no * maximum length is defined */ public long getMaxLength(); /** * Returns the value constraint information for this property if exists, or null * if not exists * @return the value constraint, or null * if not exists * @throws IllegalArgumentException if the property's type is * not a data type, e.g. if property.getType().isDataType() returns false. * @see ValueConstraint */ public ValueConstraint getValueConstraint(); /** * Returns the unique constraint information for this property if exists, or null * if not exists * @return the unique constraint information, or null * if not exists * @throws IllegalArgumentException if the property's type is * not a data type, e.g. if property.getType().isDataType() returns false. * @see ValueConstraint */ public UniqueConstraint getUniqueConstraint(); /** * Returns the XML property information for this property if exists, or null * if not exists * @return the XML property information, or null * if not exists * @throws IllegalArgumentException if the property's type is * not a data type, e.g. if property.getType().isDataType() returns false. * @see XmlProperty */ public XmlProperty getXmlProperty(); /** * Returns the derivation information for this property if exists, or null * if not exists * @return the derivation information, or null * if not exists */ public Derivation getDerivation(); /** * Returns the derivation supplier property for this property or null if not exists. * @return the derivation supplier property for this property or null if not exists. */ public PlasmaProperty getDerivationSupplier(); /** * Returns the unique id for the element within its meta data repository. * @return the unique id for the element within its meta data repository. */ public String getId(); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy