blob: 41c18332e2632f9a2c89953313240067618f0c4e [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 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 v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.testing.sdo.helper.xsdhelper.defineandgenerate;
import commonj.sdo.DataObject;
import commonj.sdo.Type;
import java.util.ArrayList;
import java.util.List;
import junit.textui.TestRunner;
import org.eclipse.persistence.sdo.SDOConstants;
import org.eclipse.persistence.sdo.SDOProperty;
import org.eclipse.persistence.sdo.SDOType;
import org.eclipse.persistence.sdo.helper.SDOTypeHelper;
public class DefineAndGenerateSequencesPurchaseOrderTestCases extends XSDHelperDefineAndGenerateTestCases {
public DefineAndGenerateSequencesPurchaseOrderTestCases(String name) {
super(name);
}
@Override
public String getSchemaToDefine() {
return "org/eclipse/persistence/testing/sdo/schemas/PurchaseOrderComplexSequenced.xsd";
}
public static void main(String[] args) {
String[] arguments = { "-c", "org.eclipse.persistence.testing.sdo.helper.xsdhelper.defineandgenerate.DefineAndGenerateSequencesPurchaseOrderTestCases" };
TestRunner.main(arguments);
}
@Override
public String getControlGeneratedFileName() {
return "org/eclipse/persistence/testing/sdo/schemas/PurchaseOrderComplexSequenced.xsd";
}
@Override
public List getTypesToGenerateFrom() {
return getControlTypes();
}
@Override
public List getControlTypes() {
SDOType changeSummaryType = (SDOType) aHelperContext.getTypeHelper().getType(SDOConstants.SDO_URL, SDOConstants.CHANGESUMMARY);
List<Type> types = new ArrayList<Type>();
((SDOTypeHelper)typeHelper).reset();
//String xsdSchema = getSchema("org/eclipse/persistence/testing/sdo/schemas/PurchaseOrderComplexSequenced.xsd");
//List types = xsdHelper.define(xsdSchema);
DataObject addressTypeDO = dataFactory.create("commonj.sdo", "Type");
addressTypeDO.set("uri", NON_DEFAULT_URI);
addressTypeDO.set("name", "AddressType");
addressTypeDO.set("sequenced", true);
addProperty(addressTypeDO, "name", SDOConstants.SDO_STRING, false, false, true);
addProperty(addressTypeDO, "street", SDOConstants.SDO_STRING, false, true, true);
addProperty(addressTypeDO, "city", SDOConstants.SDO_STRING, false, false, true);
Type addressType = typeHelper.define(addressTypeDO);
((SDOProperty)addressType.getProperty("name")).setXsd(true);
((SDOProperty)addressType.getProperty("name")).setXsdLocalName("name");
((SDOProperty)addressType.getProperty("street")).setXsd(true);
((SDOProperty)addressType.getProperty("street")).setXsdLocalName("street");
((SDOProperty)addressType.getProperty("city")).setXsd(true);
((SDOProperty)addressType.getProperty("city")).setXsdLocalName("city");
//-----------------
DataObject usAddressTypeDO = dataFactory.create("commonj.sdo", "Type");
usAddressTypeDO.set("uri", NON_DEFAULT_URI);
usAddressTypeDO.set("name", "usAddressType");
usAddressTypeDO.set("sequenced", true);
List<Type> baseTypes = new ArrayList<Type>();
baseTypes.add(addressType);
usAddressTypeDO.set("baseType", baseTypes);
DataObject stateProp = addProperty(usAddressTypeDO, "state", SDOConstants.SDO_STRING);
stateProp.set(SDOConstants.XMLELEMENT_PROPERTY, true);
Type usAddressType = typeHelper.define(usAddressTypeDO);
((SDOProperty)usAddressType.getProperty("state")).setXsd(true);
((SDOProperty)usAddressType.getProperty("state")).setXsdLocalName("state");
//-----------------
DataObject cdnAddressTypeDO = dataFactory.create("commonj.sdo", "Type");
cdnAddressTypeDO.set("uri", NON_DEFAULT_URI);
cdnAddressTypeDO.set("name", "cdnAddressType");
cdnAddressTypeDO.set("sequenced", true);
baseTypes = new ArrayList<Type>(); // reset
baseTypes.add(addressType);
cdnAddressTypeDO.set("baseType", baseTypes);
addProperty(cdnAddressTypeDO, "province", SDOConstants.SDO_STRING, false, false, true);
addProperty(cdnAddressTypeDO, "postalcode", SDOConstants.SDO_STRING, false, false, true);
Type cdnAddressType = typeHelper.define(cdnAddressTypeDO);
((SDOProperty)cdnAddressType.getProperty("province")).setXsd(true);
((SDOProperty)cdnAddressType.getProperty("province")).setXsdLocalName("province");
((SDOProperty)cdnAddressType.getProperty("postalcode")).setXsd(true);
((SDOProperty)cdnAddressType.getProperty("postalcode")).setXsdLocalName("postalcode");
//-----------------
DataObject cdnAddressMailingTypeDO = dataFactory.create("commonj.sdo", "Type");
cdnAddressMailingTypeDO.set("uri", NON_DEFAULT_URI);
cdnAddressMailingTypeDO.set("name", "cdnAddressMailingType");
cdnAddressMailingTypeDO.set("sequenced", true);
baseTypes = new ArrayList<Type>(); // reset
baseTypes.add(cdnAddressType);
cdnAddressMailingTypeDO.set("baseType", baseTypes);
DataObject deliveryInfoProp = addProperty(cdnAddressMailingTypeDO, "deliveryInfo", SDOConstants.SDO_STRING);
deliveryInfoProp.set(SDOConstants.XMLELEMENT_PROPERTY, true);
Type cdnAddressMailingType = typeHelper.define(cdnAddressMailingTypeDO);
((SDOProperty)cdnAddressMailingType.getProperty("deliveryInfo")).setXsd(true);
((SDOProperty)cdnAddressMailingType.getProperty("deliveryInfo")).setXsdLocalName("deliveryInfo");
//-----------------
DataObject itemTypeDO = dataFactory.create("commonj.sdo", "Type");
itemTypeDO.set("uri", NON_DEFAULT_URI);
itemTypeDO.set("name", "LineItemType");
DataObject prodcutNameProp = addProperty(itemTypeDO, "productName", SDOConstants.SDO_STRING);
prodcutNameProp.set(SDOConstants.XMLELEMENT_PROPERTY, true);
DataObject priceProp = addProperty(itemTypeDO, "price", SDOConstants.SDO_FLOAT);
priceProp.set(SDOConstants.XMLELEMENT_PROPERTY, true);
DataObject shipDateProp = addProperty(itemTypeDO, "shipDate", SDOConstants.SDO_STRING);
shipDateProp.set(SDOConstants.XMLELEMENT_PROPERTY, true);
DataObject commentProp = addProperty(itemTypeDO, "comment", SDOConstants.SDO_STRING);
commentProp.set(SDOConstants.XMLELEMENT_PROPERTY, true);
Type itemType = typeHelper.define(itemTypeDO);
((SDOProperty)itemType.getProperty("productName")).setXsd(true);
((SDOProperty)itemType.getProperty("productName")).setXsdLocalName("productName");
((SDOProperty)itemType.getProperty("price")).setXsd(true);
((SDOProperty)itemType.getProperty("price")).setXsdLocalName("price");
((SDOProperty)itemType.getProperty("shipDate")).setXsd(true);
((SDOProperty)itemType.getProperty("shipDate")).setXsdLocalName("shipDate");
((SDOProperty)itemType.getProperty("comment")).setXsd(true);
((SDOProperty)itemType.getProperty("comment")).setXsdLocalName("comment");
//-----------------
DataObject itemsTypeDO = dataFactory.create("commonj.sdo", "Type");
itemsTypeDO.set("uri", NON_DEFAULT_URI);
itemsTypeDO.set("name", "Items");
itemsTypeDO.set("sequenced", true);
addProperty(itemsTypeDO, "item", itemType, true, true, true);
Type itemsType = typeHelper.define(itemsTypeDO);
((SDOProperty)itemsType.getProperty("item")).setXsd(true);
((SDOProperty)itemsType.getProperty("item")).setXsdLocalName("item");
//-----------------
DataObject poTypeDO = dataFactory.create("commonj.sdo", "Type");
poTypeDO.set("uri", NON_DEFAULT_URI);
poTypeDO.set("name", "PurchaseOrderType");
addProperty(poTypeDO, "address", addressType, true, true, true);
addProperty(poTypeDO, "comment", SDOConstants.SDO_STRING, false, false, true);
addProperty(poTypeDO, "items", itemsType, true, false, true);
Type poType = typeHelper.define(poTypeDO);
((SDOProperty)poType.getProperty("address")).setXsd(true);
((SDOProperty)poType.getProperty("address")).setXsdLocalName("address");
((SDOProperty)poType.getProperty("comment")).setXsd(true);
((SDOProperty)poType.getProperty("comment")).setXsdLocalName("comment");
((SDOProperty)poType.getProperty("items")).setXsd(true);
((SDOProperty)poType.getProperty("items")).setXsdLocalName("items");
// ((SDOProperty)poType.getProperty("myCS")).setXsd(true);
// ((SDOProperty)poType.getProperty("myCS")).setXsdLocalName("myCS");
//-----------------
DataObject companyTypeDO = dataFactory.create("commonj.sdo", "Type");
companyTypeDO.set("uri", NON_DEFAULT_URI);
companyTypeDO.set("name", "CompanyType");
DataObject csProp = addProperty(companyTypeDO, "myCS", changeSummaryType, true, false, true);
csProp.set("readOnly", true);
addProperty(companyTypeDO, "order", poType, true, false, true);
Type companyType = typeHelper.define(companyTypeDO);
((SDOProperty)companyType.getProperty("myCS")).setXsd(true);
((SDOProperty)companyType.getProperty("myCS")).setXsdLocalName("myCS");
((SDOProperty)companyType.getProperty("order")).setXsd(true);
((SDOProperty)companyType.getProperty("order")).setXsdLocalName("order");
//------------------
types.add(companyType);
types.add(cdnAddressType);
types.add(usAddressType);
types.add(itemsType);
types.add(poType);
types.add(cdnAddressMailingType);
types.add(itemType);
types.add(addressType);
return types;
}
}