summaryrefslogtreecommitdiffstats
path: root/sdo-cpp/trunk/runtime/core/src/commonj/sdo/Sequence.h
diff options
context:
space:
mode:
Diffstat (limited to 'sdo-cpp/trunk/runtime/core/src/commonj/sdo/Sequence.h')
-rw-r--r--sdo-cpp/trunk/runtime/core/src/commonj/sdo/Sequence.h319
1 files changed, 319 insertions, 0 deletions
diff --git a/sdo-cpp/trunk/runtime/core/src/commonj/sdo/Sequence.h b/sdo-cpp/trunk/runtime/core/src/commonj/sdo/Sequence.h
new file mode 100644
index 0000000000..fca67a50b6
--- /dev/null
+++ b/sdo-cpp/trunk/runtime/core/src/commonj/sdo/Sequence.h
@@ -0,0 +1,319 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/* $Rev$ $Date$ */
+
+#ifndef _SEQUENCE_H_
+#define _SEQUENCE_H_
+
+
+#include "commonj/sdo/export.h"
+#include "commonj/sdo/RefCountingObject.h"
+#include "commonj/sdo/RefCountingPointer.h"
+#include "commonj/sdo/SDODate.h"
+#include "commonj/sdo/Type.h"
+#include "commonj/sdo/SDOValue.h"
+
+
+namespace commonj{
+namespace sdo{
+
+class Property; /* forward declaration */
+class DataObject;
+
+/**
+ * A sequence is a heterogeneous list of properties and corresponding values.
+ * It represents an ordered arbitrary mixture of data values from more
+ * than one property of a {@link DataObject data object}.
+ */
+
+class Sequence : public RefCountingObject
+{
+ public:
+ /** size() returns the number of elements
+ *
+ * Returns the number of entries in the sequence.
+ */
+
+ SDO_API virtual unsigned int size() = 0;
+
+ /**
+ *
+ * A Sequence element is either a free text item, or represents a property
+ * setting. If the element is a property setting, then the information
+ * held in the element consists of:
+ * -# The property which was set.
+ * -# The element of that property if it was many valued.
+ * -# The value which was set.
+ *
+ * If the sequence element is text, then there is no property, and only the
+ * methods for text retrieval will work. Use the isText() method to check
+ * before calling getProperty().
+ */
+
+ SDO_API virtual const Property& getProperty(unsigned int index) = 0;
+
+ /**
+ * Return the data object associated with this sequence
+ */
+
+ SDO_API virtual const DataObjectPtr getDataObject() = 0;
+
+ /**
+ *
+ * The element of that property if it was many valued. Zero if the
+ * property was single valued.
+ */
+
+ SDO_API virtual unsigned int getListIndex(unsigned int index) = 0;
+
+ /**
+ *
+ * The element contains the actual value set within the property. The
+ * method required to get that value will vary depending on the type
+ * of the property. This is shorthand for getProperty.getTypeEnum().
+ */
+
+ SDO_API virtual Type::Types getTypeEnum(unsigned int index) = 0;
+
+ /**
+ *
+ * This method searched the sequence for a setting which corresponds
+ * to the specified index of the specified property. Searches for single
+ * valued property settings may omit the pindex parameter.
+ */
+
+
+ SDO_API virtual unsigned int getIndex(const Property& p, unsigned int pindex=0) = 0;
+ SDO_API virtual unsigned int getIndex(const char* propName, unsigned int pindex=0) = 0;
+
+ /**
+ *
+ * These methods retrieve the setting according to the type of the
+ * property concerned. If a retrieval method is used which does not correspond to
+ * the correct type, a conversion will be performed, or an illegal conversion
+ * exception will be thrown.
+ */
+
+ SDO_API virtual const char* getCStringValue(unsigned int index) = 0;
+ SDO_API virtual bool getBooleanValue(unsigned int index) = 0;
+ SDO_API virtual char getByteValue(unsigned int index) = 0;
+ SDO_API virtual wchar_t getCharacterValue(unsigned int index) = 0;
+ SDO_API virtual unsigned int getStringValue(unsigned int index, wchar_t* val, unsigned int max) = 0;
+ SDO_API virtual unsigned int getBytesValue(unsigned int index, char* val, unsigned int max) = 0;
+ SDO_API virtual short getShortValue(unsigned int index) = 0;
+ SDO_API virtual long getIntValue(unsigned int index) = 0;
+ SDO_API virtual int64_t getLongValue(unsigned int index) = 0;
+ SDO_API virtual float getFloatValue(unsigned int index) = 0;
+ SDO_API virtual long double getDoubleValue(unsigned int index) = 0;
+ SDO_API virtual const SDODate getDateValue(unsigned int index) = 0;
+ SDO_API virtual DataObjectPtr getDataObjectValue(unsigned int index) = 0;
+ SDO_API virtual const SDOValue& getSDOValue(unsigned int index) = 0;
+
+ /**
+ *
+ * getlength applies to string and byte buffer types, and allows the
+ * client to allocate the correct size of buffer before retrieving the
+ * value.
+ */
+
+ SDO_API virtual unsigned int getLength(unsigned int index) = 0;
+
+
+ /**
+ *
+ * The setter methods use an element of the sequence to perform a
+ * property setting. The value in the sequence is updated, and so is the
+ * rel value of the property in the data object.
+ */
+
+ SDO_API virtual void setCStringValue( unsigned int index, const char* s ) = 0;
+ SDO_API virtual void setBooleanValue( unsigned int index, bool b ) = 0;
+ SDO_API virtual void setByteValue( unsigned int index, char c ) = 0;
+ SDO_API virtual void setCharacterValue( unsigned int index, wchar_t c ) = 0;
+ SDO_API virtual void setStringValue( unsigned int index, const wchar_t* s , unsigned int len) = 0;
+ SDO_API virtual void setBytesValue( unsigned int index, const char* s , unsigned int len) = 0;
+ SDO_API virtual void setShortValue( unsigned int index, short s ) = 0;
+ SDO_API virtual void setIntValue( unsigned int index, long i ) = 0;
+ SDO_API virtual void setLongValue( unsigned int index, int64_t l ) = 0;
+ SDO_API virtual void setFloatValue( unsigned int index, float f ) = 0;
+ SDO_API virtual void setDoubleValue(unsigned int index, long double d ) = 0;
+ SDO_API virtual void setDateValue(unsigned int index, const SDODate t ) = 0;
+ SDO_API virtual void setDataObjectValue(unsigned int index, DataObjectPtr d ) = 0;
+
+
+ /**
+ *
+ * Sequences may be added to by usign the addXXX methods. These provoke
+ * a setting of the real value of the property concerned, and also append
+ * an element to the sequence to reflect that setting.
+ * Additions may be performed based on property name, property index or
+ * the Property itself.
+ */
+
+ SDO_API virtual bool addCString( const char* propertyName,const char* s ) = 0;
+ SDO_API virtual bool addBoolean( const char* propertyName,bool b ) = 0;
+ SDO_API virtual bool addByte( const char* propertyName,char c ) = 0;
+ SDO_API virtual bool addCharacter( const char* propertyName,wchar_t c ) = 0;
+ SDO_API virtual bool addString( const char* propertyName,const wchar_t* s , unsigned int len) = 0;
+ SDO_API virtual bool addBytes ( const char* propertyName,const char* s , unsigned int len) = 0;
+ SDO_API virtual bool addShort( const char* propertyName,short s ) = 0;
+ SDO_API virtual bool addInt( const char* propertyName,long i ) = 0;
+ SDO_API virtual bool addLong( const char* propertyName,int64_t l ) = 0;
+ SDO_API virtual bool addFloat( const char* propertyName,float f ) = 0;
+ SDO_API virtual bool addDouble(const char* propertyName,long double d ) = 0;
+ SDO_API virtual bool addDate(const char* propertyName,const SDODate t ) = 0;
+ SDO_API virtual bool addDataObject(const char* propertyName,DataObjectPtr d ) = 0;
+ SDO_API virtual bool addSDOValue(const char* propertyName, const SDOValue& sval) = 0;
+
+
+ SDO_API virtual bool addCString( unsigned int propertyIndex,const char* s ) = 0;
+ SDO_API virtual bool addBoolean( unsigned int propertyIndex,bool b ) = 0;
+ SDO_API virtual bool addByte( unsigned int propertyIndex,char c ) = 0;
+ SDO_API virtual bool addCharacter( unsigned int propertyIndex,wchar_t c ) = 0;
+ SDO_API virtual bool addString( unsigned int propertyIndex,const wchar_t* s , unsigned int len) = 0;
+ SDO_API virtual bool addBytes( unsigned int propertyIndex,const char* s , unsigned int len) = 0;
+ SDO_API virtual bool addShort( unsigned int propertyIndex,short s ) = 0;
+ SDO_API virtual bool addInt( unsigned int propertyIndex,long i ) = 0;
+ SDO_API virtual bool addLong( unsigned int propertyIndex,int64_t l ) = 0;
+ SDO_API virtual bool addFloat( unsigned int propertyIndex,float f ) = 0;
+ SDO_API virtual bool addDouble(unsigned int propertyIndex,long double d ) = 0;
+ SDO_API virtual bool addDate(unsigned int propertyIndex,const SDODate t ) = 0;
+ SDO_API virtual bool addDataObject(unsigned int propertyIndex,DataObjectPtr d ) = 0;
+ SDO_API virtual bool addSDOValue(unsigned int propertyIndex, const SDOValue& sval) = 0;
+
+
+
+ SDO_API virtual bool addCString( const Property& property,const char* s ) = 0;
+ SDO_API virtual bool addBoolean( const Property& property,bool b ) = 0;
+ SDO_API virtual bool addByte( const Property& property,char c ) = 0;
+ SDO_API virtual bool addCharacter( const Property& property,wchar_t c ) = 0;
+ SDO_API virtual bool addString ( const Property& property,const wchar_t* s , unsigned int len) = 0;
+ SDO_API virtual bool addBytes( const Property& property,const char* s , unsigned int len) = 0;
+ SDO_API virtual bool addShort( const Property& property,short s ) = 0;
+ SDO_API virtual bool addInt( const Property& property,long i ) = 0;
+ SDO_API virtual bool addLong( const Property& property,int64_t l ) = 0;
+ SDO_API virtual bool addFloat( const Property& property,float f ) = 0;
+ SDO_API virtual bool addDouble(const Property& property,long double d ) = 0;
+ SDO_API virtual bool addDate(const Property& property,const SDODate t ) = 0;
+ SDO_API virtual bool addDataObject(const Property& property,DataObjectPtr d ) = 0;
+ SDO_API virtual bool addSDOValue(const Property& property, const SDOValue& sval) = 0;
+
+
+ /**
+ *
+ * Sequences may be added to by usign the addXXX methods. These provoke
+ * a setting of the real value of the property concerned, and also append
+ * an element to the sequence to reflect that setting.
+ * Additions may be performed based on property name, property index or
+ * the Property itself.
+ * The add method also has an override to allow insertion of a sequence element
+ * before any index.
+ */
+
+ SDO_API virtual bool addCString( unsigned int index,const char* propertyName,const char* s ) = 0;
+ SDO_API virtual bool addBoolean( unsigned int index,const char* propertyName,bool b ) = 0;
+ SDO_API virtual bool addByte( unsigned int index,const char* propertyName,char c ) = 0;
+ SDO_API virtual bool addCharacter( unsigned int index,const char* propertyName,wchar_t c ) = 0;
+ SDO_API virtual bool addString( unsigned int index,const char* propertyName,const wchar_t* s, unsigned int len ) = 0;
+ SDO_API virtual bool addBytes( unsigned int index,const char* propertyName,const char* s , unsigned int len) = 0;
+ SDO_API virtual bool addShort( unsigned int index,const char* propertyName,short s ) = 0;
+ SDO_API virtual bool addInt( unsigned int index,const char* propertyName,long i ) = 0;
+ SDO_API virtual bool addLong( unsigned int index,const char* propertyName,int64_t l ) = 0;
+ SDO_API virtual bool addFloat( unsigned int index,const char* propertyName,float f ) = 0;
+ SDO_API virtual bool addDouble(unsigned int index,const char* propertyName,long double d ) = 0;
+ SDO_API virtual bool addDate(unsigned int index,const char* propertyName,const SDODate t ) = 0;
+ SDO_API virtual bool addDataObject(unsigned int index,const char* propertyName,DataObjectPtr d ) = 0;
+ SDO_API virtual bool addSDOValue(unsigned int index, const char* propertyName, const SDOValue& sval) = 0;
+
+
+ SDO_API virtual bool addCString( unsigned int index,unsigned int propertyIndex,const char* s ) = 0;
+ SDO_API virtual bool addBoolean( unsigned int index,unsigned int propertyIndex,bool b ) = 0;
+ SDO_API virtual bool addByte( unsigned int index,unsigned int propertyIndex,char c ) = 0;
+ SDO_API virtual bool addCharacter( unsigned int index,unsigned int propertyIndex,wchar_t c ) = 0;
+ SDO_API virtual bool addString( unsigned int index,unsigned int propertyIndex,const wchar_t* s , unsigned int len) = 0;
+ SDO_API virtual bool addBytes( unsigned int index,unsigned int propertyIndex,const char* s , unsigned int len) = 0;
+ SDO_API virtual bool addShort( unsigned int index,unsigned int propertyIndex,short s ) = 0;
+ SDO_API virtual bool addInt( unsigned int index,unsigned int propertyIndex,long i ) = 0;
+ SDO_API virtual bool addLong( unsigned int index,unsigned int propertyIndex,int64_t l ) = 0;
+ SDO_API virtual bool addFloat( unsigned int index,unsigned int propertyIndex,float f ) = 0;
+ SDO_API virtual bool addDouble(unsigned int index,unsigned int propertyIndex,long double d ) = 0;
+ SDO_API virtual bool addDate(unsigned int index,unsigned int propertyIndex,const SDODate t ) = 0;
+ SDO_API virtual bool addDataObject(unsigned int index,unsigned int propertyIndex,DataObjectPtr d ) = 0;
+ SDO_API virtual bool addSDOValue(unsigned int index, unsigned int propertyIndex, const SDOValue& sval) = 0;
+
+
+ SDO_API virtual bool addCString( unsigned int index,const Property& property,const char* s ) = 0;
+ SDO_API virtual bool addBoolean( unsigned int index,const Property& property,bool b ) = 0;
+ SDO_API virtual bool addByte( unsigned int index,const Property& property,char c ) = 0;
+ SDO_API virtual bool addCharacter( unsigned int index,const Property& property,wchar_t c ) = 0;
+ SDO_API virtual bool addString( unsigned int index,const Property& property,const wchar_t* s , unsigned int len) = 0;
+ SDO_API virtual bool addBytes( unsigned int index,const Property& property,const char* s , unsigned int len) = 0;
+ SDO_API virtual bool addShort( unsigned int index,const Property& property,short s ) = 0;
+ SDO_API virtual bool addInt( unsigned int index,const Property& property,long i ) = 0;
+ SDO_API virtual bool addLong( unsigned int index,const Property& property,int64_t l ) = 0;
+ SDO_API virtual bool addFloat( unsigned int index,const Property& property,float f ) = 0;
+ SDO_API virtual bool addDouble(unsigned int index,const Property& property,long double d ) = 0;
+ SDO_API virtual bool addDate(unsigned int index,const Property& property,const SDODate t ) = 0;
+ SDO_API virtual bool addDataObject(unsigned int index,const Property& property,DataObjectPtr d ) = 0;
+ SDO_API virtual bool addSDOValue(unsigned int index, const Property& property, const SDOValue& sval) = 0;
+
+
+ /** remove() removes an item.
+ *
+ * Remove the item at the specified index in the sequence.
+ * This has no effect on the value of the property in the data object,
+ * but the setting is no longer recorded.
+ */
+ SDO_API virtual void remove(unsigned int index) = 0;
+ SDO_API virtual void removeAll(const Property& p) = 0;
+
+ /**
+ * Moves an entry in the sequence from one index to another. This
+ * makes the entry appear to have been set at a different point in
+ * the sequence, but does not alter the actual value set.
+ */
+
+ SDO_API virtual void move(unsigned int toIndex, unsigned int fromIndex) = 0;
+
+ /**
+ * The text setting APIs add an element to the sequence which
+ * is not a property setting.
+ * This is text which may be retieved in sequence with the settings.
+ */
+
+ SDO_API virtual bool addText(const char* text) = 0;
+ SDO_API virtual bool addText(unsigned int index, const char* text) = 0;
+ SDO_API virtual bool setText(unsigned int index, const char* text) = 0;
+
+ /**
+ * isText returns true if the element is not a property setting.
+ * This method should be used before getting the Property, to avoid an
+ * exception
+ */
+
+ SDO_API virtual bool isText(unsigned int index) = 0;
+
+};
+
+
+};
+};
+
+#endif //_SEQUENCE_H_