/******************************************************************************* | |
* Copyright (c) 1998, 2013 Oracle and/or its affiliates. All rights reserved. | |
* This program and the accompanying materials are made available under the | |
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 | |
* which accompanies this distribution. | |
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html | |
* and the Eclipse Distribution License is available at | |
* http://www.eclipse.org/org/documents/edl-v10.php. | |
* | |
* Contributors: | |
* Oracle - initial API and implementation from Oracle TopLink | |
******************************************************************************/ | |
/* | |
DESCRIPTION | |
Perform copy junit test operations on DataObjects. | |
References: | |
SDO59-DeepCopy.doc | |
SDO_Ref_BiDir_Relationships_DesignSpec.doc | |
http://files.oraclecorp.com/content/MySharedFolders/ST%20Functional%20Specs/AS11gR1/TopLink/SDO/SDO_Ref_BiDir_Relationships_DesignSpec.doc | |
MODIFIED (MM/DD/YY) | |
mfobrien 02/12/07 - | |
dmahar 11/23/06 - | |
mfobrien 09/12/06 - Add bidirectional property copy support | |
*/ | |
package org.eclipse.persistence.testing.sdo.helper.copyhelper; | |
import commonj.sdo.Property; | |
import java.util.ArrayList; | |
import java.util.List; | |
import org.eclipse.persistence.sdo.SDOConstants; | |
import org.eclipse.persistence.sdo.SDODataObject; | |
import org.eclipse.persistence.sdo.SDOProperty; | |
import org.eclipse.persistence.sdo.SDOType; | |
import org.eclipse.persistence.sdo.helper.SDOCopyHelper; | |
import org.eclipse.persistence.testing.sdo.SDOTestCase; | |
public class SDOCopyHelperTestCases extends SDOTestCase { | |
protected SDOCopyHelper copyHelper; | |
protected String rootTypeName = "rootTypeName"; | |
protected String rootTypeUri = "rootTypeTypeUri"; | |
protected String containedTypeName = "containedTypeName"; | |
protected String containedTypeUri = "containedTypeTypeUri"; | |
protected String containedType1Name = "containedType1Name"; | |
protected String containedType1Uri = "containedType1TypeUri"; | |
protected String containedByContainedTypeName = "containedByContainedTypeName"; | |
protected String containedBycontainedType1Uri = "containedBycontainedTypeTypeUri"; | |
protected SDODataObject root; | |
protected SDODataObject containedDataObject; | |
protected SDODataObject containedDataObject1; | |
protected SDODataObject containedByContainedDataObject; | |
protected SDOType rootType; | |
protected SDOType containedType; | |
protected SDOType containedType1; | |
protected SDOType containedByContainedType; | |
protected SDOProperty rootProperty1; | |
protected SDOProperty rootProperty2; | |
protected SDOProperty rootProperty3; | |
protected SDOProperty rootProperty4; | |
protected SDOProperty containedProperty1; | |
protected SDOProperty containedProperty2; | |
protected SDOProperty containedProperty_ChangeSummary; | |
protected SDOProperty contained1Property1; | |
protected SDOProperty containedByContainedProperty1; | |
protected SDOProperty containedByContainedProperty2; | |
// Data structures for UC02xx (bidirectional property between internal nodes) | |
protected String containedType3Name = "containedType3Name"; | |
protected String containedType3Uri = "containedType3TypeUri"; | |
protected SDOType containedByContainedType3; | |
protected SDODataObject containedByContainedDataObject3; | |
protected String containedByContainedTypeName3 = "containedByContainedTypeName3"; | |
protected String containedBycontainedType3Uri = "containedBycontainedTypeType3Uri"; | |
protected SDOProperty containedByContainedProperty3; | |
protected SDOProperty contained1Property3; | |
protected SDOType containedType3; | |
protected SDOProperty containedProperty3; | |
protected List objects; | |
public SDOCopyHelperTestCases(String name) { | |
super(name); | |
} | |
/** | |
* Structure: | |
* | |
* root | |
* rootproperty1 --> is DataType; SDOString <---> value: "test" | |
* rootproperty2 --> not DataType <---> value: containedDataObject | |
* root's child: | |
* containedDataObject1 | |
* contained1Property1 --> not DataType; bidirectional <---> value: containedByContainedDataObject | |
* containedDataObject | |
* containedProperty1 --> is DataType; SDOString <---> value: "test1" | |
* containedProperty2 --> not DataType <---> value: containedByContainedDataObject | |
* containedProperty_ChangeSummary --> not DataType <---> value: chSum(ChangeSummary) | |
* containedDataObject's child: | |
* containedByContainedDataObject | |
* containedByContainedProperty1 --> not DataType; bidirectional <---> value: containedDataObject1 | |
* | |
* Covered test cases: | |
* Test Case 1: copied root's DataType property rootproperty1 has same value | |
* Test Case 2: copied root's not DataType property rootproperty2 has a copied DataObject from containedDataObject | |
* Test Case 3: there exists dataobject's bidirectional not containment property has another DataObject as value | |
* Test Case 4: there exists dataobject's unidirectional not containment property has another DataObject as value | |
* Test Case 5: there exists dataobject's not containment property has another DataObject | |
* that is not in containment tree as value | |
* Test Case 6: copied containedProperty's ChangeSummary Type property containedProperty_ChangeSummary | |
* has a copied ChangeSummary from source's ChangeSummary chSum | |
*/ | |
public void setUp() { | |
super.setUp(); | |
SDOType changeSummaryType = (SDOType) aHelperContext.getTypeHelper().getType(SDOConstants.SDO_URL, SDOConstants.CHANGESUMMARY); | |
// first we set up root data object | |
rootType = new SDOType(rootTypeUri, rootTypeName);// root's type | |
rootProperty1 = new SDOProperty(aHelperContext);// root's property1 | |
rootProperty1.setName("rootproperty1-datatype"); | |
SDOType rootProperty1_type = SDOConstants.SDO_STRING;// string type | |
rootProperty1_type.setDataType(true);// datatype | |
rootProperty1.setType(rootProperty1_type); | |
rootType.addDeclaredProperty((Property)rootProperty1);// add this property to root type's declared list | |
rootProperty2 = new SDOProperty(aHelperContext);//root's property2 | |
rootProperty2.setName("rootproperty2-notdatatype"); | |
rootProperty2.setContainment(true);// containment property | |
SDOType rootProperty2_type = new SDOType("notDataTypeUri", "notDataType"); | |
rootProperty2_type.setDataType(false);// not datatype | |
rootProperty2.setType(rootProperty2_type); | |
rootType.addDeclaredProperty((Property)rootProperty2); | |
rootProperty3 = new SDOProperty(aHelperContext);// root's property3 | |
rootProperty3.setName("rootproperty3-notdatatype"); | |
rootProperty3.setContainment(true);// containment property | |
SDOType rootProperty3_type = new SDOType("notDataTypeUri1", "notDataType1"); | |
rootProperty3_type.setDataType(false);// not datatype | |
rootProperty3.setType(rootProperty3_type); | |
rootType.addDeclaredProperty((Property)rootProperty3); | |
rootProperty4 = new SDOProperty(aHelperContext); | |
rootProperty4.setName("rootproperty4-list"); | |
rootProperty4.setContainment(true); | |
rootProperty4.setMany(true); | |
SDOType rootProperty4_type = new SDOType("listPropertyUri", "listProperty"); | |
rootProperty4_type.setDataType(false); | |
rootProperty4.setType(rootProperty4_type); | |
rootType.addDeclaredProperty((Property)rootProperty4); | |
SDOProperty rootProperty_NotContainment = new SDOProperty(aHelperContext); | |
rootProperty_NotContainment.setContainment(false); | |
SDOType rootProperty_NotContainment_type = new SDOType(// | |
"rootProperty_NotContainmenturi", "rootProperty_NotContainment"); | |
rootProperty_NotContainment_type.setDataType(false); | |
rootProperty_NotContainment.setType(rootProperty_NotContainment_type); | |
rootProperty_NotContainment.setName("rootProperty_NotContainment"); | |
rootType.addDeclaredProperty(rootProperty_NotContainment); | |
// 20060913: opposite property 3 | |
contained1Property3 = new SDOProperty(aHelperContext);// containedDataObject3's property3 | |
contained1Property3.setName("contained1Property3-notdataType"); | |
contained1Property3.setContainment(false);// non-containment property | |
SDOType contained1Property3_type = new SDOType(// | |
"contained1Property3Uri", "contained1Property3_notdataType"); | |
contained1Property3_type.setDataType(false);// non-datatype | |
contained1Property3.setType(contained1Property3_type); | |
objects = new ArrayList(); | |
SDOType obj1Type = new SDOType("listelm1", "listelm1"); | |
SDOProperty obj1Property = new SDOProperty(aHelperContext); | |
obj1Property.setName("obj1Property"); | |
SDOType obj1PropertyType = SDOConstants.SDO_STRING; | |
obj1PropertyType.setDataType(true); | |
obj1Property.setType(obj1PropertyType); | |
obj1Property.setContainment(false); | |
obj1Type.addDeclaredProperty(obj1Property); | |
SDODataObject obj1 = (SDODataObject)dataFactory.create(obj1Type); | |
objects.add(obj1); | |
obj1.set(obj1Property, "test"); | |
// second, we create another dataobject contained by root | |
containedType = new SDOType(containedTypeUri, containedTypeName); | |
containedProperty1 = new SDOProperty(aHelperContext);// containedDataObject's property1 | |
containedProperty1.setName("containedProperty1-dataType"); | |
SDOType containedProperty1_type = SDOConstants.SDO_STRING;// String Type | |
containedProperty1_type.setDataType(true);// dataType | |
containedProperty1.setType(containedProperty1_type); | |
containedType.addDeclaredProperty(containedProperty1); | |
containedProperty2 = new SDOProperty(aHelperContext);// containedDataObject's property2 | |
containedProperty2.setName("containedProperty2-notdataType"); | |
containedProperty2.setContainment(true);// containment property | |
SDOType containedProperty2_type = new SDOType(// | |
"containedProperty2Uri", "containedProperty2_notdataType"); | |
containedProperty2_type.setDataType(false);// not datatype | |
containedProperty2.setType(containedProperty2_type); | |
containedType.addDeclaredProperty(containedProperty2); | |
// 20060914 new bidirectional hosting node | |
containedProperty3 = new SDOProperty(aHelperContext);// containedDataObject's property2 | |
containedProperty3.setName("containedProperty3-notdataType"); | |
containedProperty3.setContainment(true);// containment property | |
SDOType containedProperty3_type = new SDOType(// | |
"containedProperty3Uri", "containedProperty3_notdataType"); | |
containedProperty3_type.setDataType(false);// not datatype | |
containedProperty3.setType(containedProperty3_type); | |
containedType.addDeclaredProperty(containedProperty3); | |
containedProperty_ChangeSummary = new SDOProperty(aHelperContext); | |
containedProperty_ChangeSummary.setContainment(false); | |
containedProperty_ChangeSummary.setType(changeSummaryType); | |
containedProperty_ChangeSummary.setName("containedProperty_ChangeSummary"); | |
containedType.addDeclaredProperty((Property)containedProperty_ChangeSummary); | |
containedDataObject = (SDODataObject)dataFactory.create(containedType); | |
containedDataObject.getChangeSummary().beginLogging(); | |
// then, we create one dataobject as root's noncontainment property' value | |
containedType1 = new SDOType(containedType1Uri, containedType1Name); | |
contained1Property1 = new SDOProperty(aHelperContext);// containedDataObject1's property1 | |
contained1Property1.setName("contained1Property1-notdataType"); | |
contained1Property1.setContainment(false);// not containment property | |
SDOType contained1Property1_type = new SDOType(// | |
"contained1Property1Uri", "contained1Property1_notdataType"); | |
contained1Property1_type.setDataType(false);// not datatype | |
contained1Property1.setType(contained1Property1_type); | |
// TODO: 20060906 bidirectional | |
// bidirectional to containedByContainedDataObject | |
// Note: the property parameter is null so this set will have no effect until the 2nd set later | |
contained1Property1.setOpposite(containedByContainedProperty1); | |
containedType1.addDeclaredProperty(contained1Property1); | |
containedDataObject1 = (SDODataObject)dataFactory.create(containedType1); | |
// finally, we create a dataobject contained by containedDataObject | |
containedByContainedType = new SDOType(containedBycontainedType1Uri, containedByContainedTypeName); | |
containedByContainedProperty1 = new SDOProperty(aHelperContext);// containedByContainedDataObject's property1 | |
containedByContainedProperty1.setName("containedByContainedProperty1-notdataType"); | |
containedByContainedProperty1.setContainment(false);// not containment property | |
SDOType containedByContainedProperty1_type = new SDOType(// | |
"containedByContainedProperty1Uri", "containedByContainedProperty1_notdataType"); | |
containedByContainedProperty1_type.setDataType(false);// not datatype | |
containedByContainedProperty1.setType(containedByContainedProperty1_type); | |
// TODO: 20060906 bidirectional | |
// bidirectional to containedDataObject1 | |
containedByContainedProperty1.setOpposite(contained1Property1); | |
containedByContainedType.addDeclaredProperty(containedByContainedProperty1); | |
// reset opposite set above when property paramenter used to be null | |
contained1Property1.setOpposite(containedByContainedProperty1); | |
containedByContainedProperty2 = new SDOProperty(aHelperContext);// containedByContainedDataObject's property1 | |
containedByContainedProperty2.setName("containedByContainedProperty2-dataType"); | |
containedByContainedProperty2.setContainment(false);// not containment property | |
SDOType containedByContainedProperty2_type = new SDOType(// | |
"containedByContainedProperty2Uri", "containedByContainedProperty2_notdataType"); | |
containedByContainedProperty2_type.setDataType(false);// not datatype | |
containedByContainedProperty2.setType(containedByContainedProperty2_type); | |
containedByContainedType.addDeclaredProperty(containedByContainedProperty2); | |
// opposite property 3 | |
/* containedByContainedProperty3 = new SDOProperty(aHelperContext);// containedByContainedDataObject2's property3 | |
containedByContainedProperty3.setName("containedByContainedProperty3-notdataType"); | |
containedByContainedProperty3.setContainment(false);// non-containment property | |
SDOType containedByContainedProperty3_type = new SDOType(// | |
"containedByContainedProperty3Uri", "containedByContainedProperty3_notdataType"); | |
containedByContainedProperty3_type.setDataType(false);// non-datatype | |
containedByContainedProperty3.setType(containedByContainedProperty3_type); | |
// containedByContainedType.addDeclaredProperty(containedByContainedProperty3); | |
*/ | |
containedByContainedDataObject = (SDODataObject)dataFactory.create(// | |
containedByContainedType); | |
// set up relationship | |
root = (SDODataObject)dataFactory.create(rootType); | |
root.set(rootProperty1, "test"); | |
root.set(rootProperty2, containedDataObject);// child: containedDataObject | |
root.set(rootProperty3, containedDataObject1);// child: containedDataObject1 | |
root.set(rootProperty4, objects); | |
containedDataObject.set(containedProperty1, "test1"); | |
// child: containedByContainedDataObject | |
containedDataObject.set(containedProperty2, containedByContainedDataObject); | |
// set opposite property | |
containedDataObject1.set(contained1Property1, containedByContainedDataObject); | |
// set opposite property | |
containedByContainedDataObject.set(containedByContainedProperty1, containedDataObject1); | |
/* | |
// UC02xx: setup some bidirectional properties that have the same copy root | |
// but are 1 level down from the source root so that copy root != source root | |
// new CBCDO2 off off CDO | |
containedByContainedType3 = new SDOType(containedBycontainedType3Uri, containedByContainedTypeName3); | |
// add property to do | |
//containedByContainedType3.addDeclaredProperty(containedByContainedProperty3); | |
// 20060913 | |
//containedType3 = new SDOType(containedType3Uri, containedType3Name); | |
// add property to do | |
containedByContainedType3.addDeclaredProperty(contained1Property3); | |
// new DO | |
containedByContainedDataObject3 = (SDODataObject)aHelperContext.getDataFactory().create(// | |
containedByContainedType3); | |
// 2 new opposite properties CBCP2 and C1P2 between CBCDO and CBCDO2 | |
// set opposite property | |
// containedByContainedDataObject3.set(contained1Property3, containedByContainedDataObject); | |
// set opposite property | |
containedByContainedDataObject.set(containedByContainedProperty3, containedByContainedDataObject3); | |
// child: containedByContainedDataObject | |
// containedDataObject.set(containedProperty3, containedByContainedDataObject3); | |
// attach opposite properties between CBCDO and CBCDO2 | |
// bidirectional to containedDataObject1 | |
containedByContainedProperty3.setOpposite(contained1Property3); | |
// reset opposite set above when property paramenter used to be null | |
contained1Property3.setOpposite(containedByContainedProperty3); | |
*/ | |
} | |
/** | |
* DataObject heiarchy | |
* Eclipse debug output of the [root] object at the end of the setUp() function above | |
* | |
* Abridged and Full versions | |
* | |
root SDODataObject (id=79) | |
instanceProperties ArrayList<E> (id=87) | |
elementData Object[10] (id=105) | |
[0] SDOProperty (id=80) | |
containingType null | |
global false | |
hasMany false | |
isContainment false | |
opposite null | |
propertyName "rootproperty1-datatype" | |
type SDOType (id=22) | |
typeName "String" | |
[1] SDOProperty (id=81) | |
containingType null | |
global false | |
hasMany false | |
isContainment true | |
opposite null | |
propertyName "rootproperty2-notdatatype" | |
type SDOType (id=31) | |
typeName "notDataType" | |
[2] SDOProperty (id=82) | |
containingType null | |
global false | |
hasMany false | |
isContainment true | |
opposite null | |
propertyName "rootproperty3-notdatatype" | |
type SDOType (id=32) | |
typeName "notDataType1" | |
[3] SDOProperty (id=83) | |
containingType null | |
global false | |
hasMany true | |
isContainment true | |
opposite null | |
propertyName "rootproperty4-list" | |
type SDOType (id=33) | |
typeName "listProperty" | |
[4] SDOProperty (id=34) | |
containingType null | |
global false | |
hasMany false | |
isContainment false | |
propertyName "rootProperty_NotContainment" | |
type SDOType (id=37) | |
typeName "rootProperty_NotContainment" | |
properties DefaultValueStore (id=89) | |
typePropertiesIsSetStatus boolean[5] (id=99) | |
[0] true | |
[1] true | |
[2] true | |
[3] true | |
[4] false | |
typePropertyValues Object[5] (id=101) | |
[0] "test" | |
[1] SDODataObject (id=56) | |
[2] SDODataObject (id=57) | |
[3] ListWrapper (id=140) | |
[4] null | |
type SDOType (id=84) | |
aliasNames null | |
allProperties ArrayList<E> (id=144) | |
allPropertiesArr Property[5] (id=145) | |
baseTypes ArrayList<E> (id=147) | |
changeSummaryProperty null | |
declaredProperties ArrayList<E> (id=148) | |
declaredPropertiesMap HashMap<K,V> (id=149) | |
IDProp null | |
instancePropertiesMap null | |
isAbstract false | |
isDataType false | |
isSequenced false | |
open false | |
propertyValues HashMap<K,V> (id=150) | |
typeName "rootTypeName" | |
typeUri "rootTypeTypeUri" | |
xmlDescriptor null | |
xsd false | |
xsdList false | |
xsdLocalName null | |
* | |
* | |
root SDODataObject (id=79) | |
changeSummary null | |
container null | |
containmentPropertyName null | |
instanceProperties ArrayList<E> (id=87) | |
elementData Object[10] (id=105) | |
[0] SDOProperty (id=80) | |
aliasNames ArrayList<E> (id=106) | |
attribute false | |
containingType null | |
defaultValue null | |
global false | |
hasMany false | |
indexInType 0 | |
instancePropertiesMap null | |
isContainment false | |
namespaceQualified false | |
opposite null | |
propertyName "rootproperty1-datatype" | |
propertyValues null | |
readOnly false | |
type SDOType (id=22) | |
aliasNames null | |
allProperties null | |
allPropertiesArr null | |
baseTypes null | |
changeSummaryProperty null | |
declaredProperties null | |
declaredPropertiesMap null | |
IDProp null | |
instancePropertiesMap HashMap<K,V> (id=110) | |
isAbstract false | |
isDataType true | |
isSequenced false | |
open false | |
propertyValues HashMap<K,V> (id=111) | |
typeName "String" | |
typeUri "commonj.sdo" | |
xmlDescriptor null | |
xsd false | |
xsdList false | |
xsdLocalName null | |
xmlMapping null | |
xsd false | |
xsdLocalName null | |
[1] SDOProperty (id=81) | |
aliasNames ArrayList<E> (id=116) | |
attribute false | |
containingType null | |
defaultValue null | |
global false | |
hasMany false | |
indexInType 0 | |
instancePropertiesMap null | |
isContainment true | |
namespaceQualified false | |
opposite null | |
propertyName "rootproperty2-notdatatype" | |
propertyValues null | |
readOnly false | |
type SDOType (id=31) | |
aliasNames null | |
allProperties null | |
allPropertiesArr null | |
baseTypes null | |
changeSummaryProperty null | |
declaredProperties null | |
declaredPropertiesMap null | |
IDProp null | |
instancePropertiesMap null | |
isAbstract false | |
isDataType false | |
isSequenced false | |
open false | |
propertyValues null | |
typeName "notDataType" | |
typeUri "notDataTypeUri" | |
xmlDescriptor null | |
xsd false | |
xsdList false | |
xsdLocalName null | |
xmlMapping null | |
xsd false | |
xsdLocalName null | |
[2] SDOProperty (id=82) | |
aliasNames ArrayList<E> (id=120) | |
attribute false | |
containingType null | |
defaultValue null | |
global false | |
hasMany false | |
indexInType 0 | |
instancePropertiesMap null | |
isContainment true | |
namespaceQualified false | |
opposite null | |
propertyName "rootproperty3-notdatatype" | |
propertyValues null | |
readOnly false | |
type SDOType (id=32) | |
aliasNames null | |
allProperties null | |
allPropertiesArr null | |
baseTypes null | |
changeSummaryProperty null | |
declaredProperties null | |
declaredPropertiesMap null | |
IDProp null | |
instancePropertiesMap null | |
isAbstract false | |
isDataType false | |
isSequenced false | |
open false | |
propertyValues null | |
typeName "notDataType1" | |
typeUri "notDataTypeUri1" | |
xmlDescriptor null | |
xsd false | |
xsdList false | |
xsdLocalName null | |
xmlMapping null | |
xsd false | |
xsdLocalName null | |
[3] SDOProperty (id=83) | |
aliasNames ArrayList<E> (id=127) | |
attribute false | |
containingType null | |
defaultValue null | |
global false | |
hasMany true | |
indexInType 0 | |
instancePropertiesMap null | |
isContainment true | |
namespaceQualified false | |
opposite null | |
propertyName "rootproperty4-list" | |
propertyValues null | |
readOnly false | |
type SDOType (id=33) | |
aliasNames null | |
allProperties null | |
allPropertiesArr null | |
baseTypes null | |
changeSummaryProperty null | |
declaredProperties null | |
declaredPropertiesMap null | |
IDProp null | |
instancePropertiesMap null | |
isAbstract false | |
isDataType false | |
isSequenced false | |
open false | |
propertyValues null | |
typeName "listProperty" | |
typeUri "listPropertyUri" | |
xmlDescriptor null | |
xsd false | |
xsdList false | |
xsdLocalName null | |
xmlMapping null | |
xsd false | |
xsdLocalName null | |
[4] SDOProperty (id=34) | |
aliasNames ArrayList<E> (id=133) | |
attribute false | |
containingType null | |
defaultValue null | |
global false | |
hasMany false | |
indexInType 0 | |
instancePropertiesMap null | |
isContainment false | |
namespaceQualified false | |
opposite null | |
propertyName "rootProperty_NotContainment" | |
propertyValues null | |
readOnly false | |
type SDOType (id=37) | |
aliasNames null | |
allProperties null | |
allPropertiesArr null | |
baseTypes null | |
changeSummaryProperty null | |
declaredProperties null | |
declaredPropertiesMap null | |
IDProp null | |
instancePropertiesMap null | |
isAbstract false | |
isDataType false | |
isSequenced false | |
open false | |
propertyValues null | |
typeName "rootProperty_NotContainment" | |
typeUri "rootProperty_NotContainmenturi" | |
xmlDescriptor null | |
xsd false | |
xsdList false | |
xsdLocalName null | |
xmlMapping null | |
xsd false | |
xsdLocalName null | |
[5] null | |
[6] null | |
[7] null | |
[8] null | |
[9] null | |
modCount 2 | |
size 5 | |
openContentProperties ArrayList<E> (id=88) | |
elementData Object[10] (id=136) | |
modCount 0 | |
size 0 | |
openContentPropertiesMap null | |
properties DefaultValueStore (id=89) | |
dataObject SDODataObject (id=79) | |
openContentValues HashMap<K,V> (id=95) | |
typePropertiesIsSetStatus boolean[5] (id=99) | |
[0] true | |
[1] true | |
[2] true | |
[3] true | |
[4] false | |
typePropertyValues Object[5] (id=101) | |
[0] "test" | |
[1] SDODataObject (id=56) | |
[2] SDODataObject (id=57) | |
[3] ListWrapper (id=140) | |
[4] null | |
type SDOType (id=84) | |
aliasNames null | |
allProperties ArrayList<E> (id=144) | |
allPropertiesArr Property[5] (id=145) | |
baseTypes ArrayList<E> (id=147) | |
changeSummaryProperty null | |
declaredProperties ArrayList<E> (id=148) | |
declaredPropertiesMap HashMap<K,V> (id=149) | |
IDProp null | |
instancePropertiesMap null | |
isAbstract false | |
isDataType false | |
isSequenced false | |
open false | |
propertyValues HashMap<K,V> (id=150) | |
typeName "rootTypeName" | |
typeUri "rootTypeTypeUri" | |
xmlDescriptor null | |
xsd false | |
xsdList false | |
xsdLocalName null | |
xPathEngine XPathEngine (id=92) | |
*/ | |
} |