/** INTERNAL: Get the XMLDescriptor associated with this Type or generate a new one. */ public void initializeNamespaces(List namespaceResolvers) { if (!isDataType()) { NamespaceResolver nr = new NamespaceResolver(); // copy namespaces between resolvers for well known and SDO namespaces if (namespaceResolvers != null) { for (int i = 0; i < namespaceResolvers.size(); i++) { NamespaceResolver nextNR = (NamespaceResolver) namespaceResolvers.get(i); if (nextNR != null) { for (int j = 0, size = nextNR.getNamespaces().size(); j < size; j++) { Namespace nextNamespace = (Namespace) nextNR.getNamespaces().get(j); if ((!nextNamespace.getPrefix().equals(XMLConstants.XMLNS)) && (!nextNamespace.getNamespaceURI().equals(XMLConstants.SCHEMA_URL)) && (!nextNamespace.getNamespaceURI().equals(SDOConstants.SDOJAVA_URL)) && (!nextNamespace.getNamespaceURI().equals(SDOConstants.SDOXML_URL)) && (!nextNamespace.getNamespaceURI().equals(SDOConstants.SDO_URL))) { String newPrefix = ((SDOTypeHelper) aHelperContext.getTypeHelper()) .addNamespace(nextNamespace.getPrefix(), nextNamespace.getNamespaceURI()); nr.put(newPrefix, nextNamespace.getNamespaceURI()); } } } } } xmlDescriptor.setNamespaceResolver(nr); if (getURI() != null) { String prefix = ((SDOTypeHelper) aHelperContext.getTypeHelper()).getPrefix(getURI()); xmlDescriptor.getNamespaceResolver().put(prefix, getURI()); } xmlDescriptor .getNamespaceResolver() .put(XMLConstants.SCHEMA_INSTANCE_PREFIX, XMLConstants.SCHEMA_INSTANCE_URL); } }
/** * Registers the Factory instance so that it is available within the supplied scope. * * @argument scope a HelperContext instance that will make the types supported by this Factory * available. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void register(HelperContext scope) { if (scope == null) { throw new IllegalArgumentException("Scope can not be null"); } TypeHelperImpl th = (TypeHelperImpl) scope.getTypeHelper(); th.getExtendedMetaData().putPackage(NAMESPACE_URI, this); }
/** * INTERNAL: Convenience method that sets up class indicator and @sdoRef attribute. * * @param xdesc * @param pCls */ private void addClassIndicator(XMLDescriptor xdesc, Class pCls, boolean isInheritanceRoot) { XMLField field = (XMLField) getXmlDescriptor().buildField("@xsi:type"); xdesc.getInheritancePolicy().setClassIndicatorField(field); String parentIndicator = getName(); String parentPrefix = xdesc.getNamespaceResolver().resolveNamespaceURI(getURI()); if (parentPrefix != null) { parentIndicator = parentPrefix + SDOConstants.SDO_XPATH_NS_SEPARATOR_FRAGMENT + parentIndicator; } xdesc.getInheritancePolicy().addClassIndicator(pCls, parentIndicator); // only add the @sdoRef attribute if necessary if (xdesc.getMappingForAttributeName(SDO_REF_MAPPING_ATTRIBUTE_NAME) == null) { String sdoPrefix = ((SDOTypeHelper) aHelperContext.getTypeHelper()).getPrefix(SDOConstants.SDO_URL); XMLDirectMapping sdoRefMapping = new XMLDirectMapping(); sdoRefMapping.setAttributeName(SDO_REF_MAPPING_ATTRIBUTE_NAME); XMLField xmlField = new XMLField( "@" + sdoPrefix + SDOConstants.SDO_XPATH_NS_SEPARATOR_FRAGMENT + SDOConstants.CHANGESUMMARY_REF); xmlField.getXPathFragment().setNamespaceURI(SDOConstants.SDO_URL); xmlField.getLastXPathFragment().setNamespaceURI(SDOConstants.SDO_URL); sdoRefMapping.setField(xmlField); xdesc.addMapping(sdoRefMapping); } }
public void serialize(XMLDocument xmlDocument, OutputStream outputStream, Object options) throws IOException { OutputStreamWriter writer = new OutputStreamWriter(outputStream, getXmlMarshaller().getEncoding()); XMLMarshaller xmlMarshaller = getXmlContext().createMarshaller(); xmlMarshaller.setMarshalListener( new SDOMarshalListener(xmlMarshaller, (SDOTypeHelper) aHelperContext.getTypeHelper())); save(xmlDocument, writer, xmlMarshaller); }
public void setUp() { HelperContext aHelperContext; if (customContext) { // default to instance of a HelperContext aHelperContext = new SDOHelperContext(); } else { // default to static context (Global) aHelperContext = HelperProvider.getDefaultContext(); } typeHelper = aHelperContext.getTypeHelper(); }
public Project getTopLinkProject() { if (topLinkProject == null) { topLinkProject = new Project(); XMLLogin xmlLogin = new XMLLogin(); xmlLogin.setEqualNamespaceResolvers(false); topLinkProject.setDatasourceLogin(xmlLogin); // 200606_changeSummary NamespaceResolver nr = new NamespaceResolver(); SDOTypeHelper sdoTypeHelper = (SDOTypeHelper) aHelperContext.getTypeHelper(); String sdoPrefix = sdoTypeHelper.getPrefix(SDOConstants.SDO_URL); nr.put(sdoPrefix, SDOConstants.SDO_URL); SDOType changeSummaryType = (SDOType) sdoTypeHelper.getType(SDOConstants.SDO_URL, SDOConstants.CHANGESUMMARY); changeSummaryType.getXmlDescriptor().setNamespaceResolver(nr); topLinkProject.addDescriptor(changeSummaryType.getXmlDescriptor()); SDOType openSequencedType = (SDOType) aHelperContext .getTypeHelper() .getType(SDOConstants.ORACLE_SDO_URL, "OpenSequencedType"); topLinkProject.addDescriptor(openSequencedType.getXmlDescriptor()); SDOTypeType typeType = (SDOTypeType) aHelperContext.getTypeHelper().getType(SDOConstants.SDO_URL, SDOConstants.TYPE); typeType.getXmlDescriptor().setNamespaceResolver(nr); if (!typeType.isInitialized()) { typeType.initializeMappings(); } topLinkProject.addDescriptor(typeType.getXmlDescriptor()); SDOPropertyType propertyType = (SDOPropertyType) aHelperContext.getTypeHelper().getType(SDOConstants.SDO_URL, SDOConstants.PROPERTY); if (!propertyType.isInitialized()) { propertyType.initializeMappings(); } topLinkProject.addDescriptor(propertyType.getXmlDescriptor()); ((SDOTypeHelper) aHelperContext.getTypeHelper()).addWrappersToProject(topLinkProject); } return topLinkProject; }
private void initOpenProps() { getGlobalAttributes().put(SDOConstants.MIME_TYPE_QNAME, SDOConstants.MIME_TYPE_PROPERTY); getGlobalAttributes() .put(SDOConstants.MIME_TYPE_PROPERTY_QNAME, SDOConstants.MIME_TYPE_PROPERTY_PROPERTY); Property xmlSchemaTypeProperty = aHelperContext .getTypeHelper() .getOpenContentProperty(SDOConstants.SDO_URL, SDOConstants.XML_SCHEMA_TYPE_NAME); getGlobalAttributes().put(SDOConstants.SCHEMA_TYPE_QNAME, xmlSchemaTypeProperty); getGlobalAttributes().put(SDOConstants.JAVA_CLASS_QNAME, SDOConstants.JAVA_CLASS_PROPERTY); getGlobalAttributes().put(SDOConstants.XML_ELEMENT_QNAME, SDOConstants.XMLELEMENT_PROPERTY); Property xmlDataTypeProperty = aHelperContext .getTypeHelper() .getOpenContentProperty(SDOConstants.SDOXML_URL, SDOConstants.SDOXML_DATATYPE); getGlobalAttributes().put(SDOConstants.XML_DATATYPE_QNAME, xmlDataTypeProperty); getGlobalAttributes().put(SDOConstants.XML_ID_PROPERTY_QNAME, SDOConstants.ID_PROPERTY); getGlobalAttributes() .put(SDOConstants.DOCUMENTATION_PROPERTY_QNAME, SDOConstants.DOCUMENTATION_PROPERTY); }
public XMLMarshaller getXmlMarshaller() { XMLMarshaller marshaller = xmlMarshallerMap.get(Thread.currentThread()); if (marshaller == null) { marshaller = getXmlContext().createMarshaller(); marshaller.setMarshalListener( new SDOMarshalListener(marshaller, (SDOTypeHelper) aHelperContext.getTypeHelper())); xmlMarshallerMap.put(Thread.currentThread(), marshaller); } XMLContext context = getXmlContext(); if (marshaller.getXMLContext() != context) { marshaller.setXMLContext(context); } return marshaller; }
/** INTERNAL: */ public void postInitialize() { String idPropName = (String) get(SDOConstants.ID_PROPERTY); if (idPropName != null) { SDOProperty idProp = getProperty(idPropName); if (idProp != null) { String targetxpath = idProp.getQualifiedXPath(getURI(), true); getXmlDescriptor().addPrimaryKeyFieldName(targetxpath); } } setFinalized(true); if (null != nonFinalizedReferencingProps) { for (int i = 0; i < nonFinalizedReferencingProps.size(); i++) { SDOProperty nextProp = nonFinalizedReferencingProps.get(i); String nextURI = (String) getNonFinalizedMappingURIs().get(i); nextProp.buildMapping(nextURI, nextProp.getIndexInType()); } } // set @sdoRef attribute mapping for complex types that are not involved in inheritance if (!isDataType() && !isSubType() && !isBaseType()) { String sdoPrefix = ((SDOTypeHelper) aHelperContext.getTypeHelper()).getPrefix(SDOConstants.SDO_URL); XMLDirectMapping sdoRefMapping = new XMLDirectMapping(); sdoRefMapping.setAttributeName(SDO_REF_MAPPING_ATTRIBUTE_NAME); XMLField xmlField = new XMLField( "@" + sdoPrefix + SDOConstants.SDO_XPATH_NS_SEPARATOR_FRAGMENT + SDOConstants.CHANGESUMMARY_REF); xmlField.getXPathFragment().setNamespaceURI(SDOConstants.SDO_URL); xmlField.getLastXPathFragment().setNamespaceURI(SDOConstants.SDO_URL); sdoRefMapping.setField(xmlField); xmlDescriptor.addMapping(sdoRefMapping); } if (!isDataType()) { getImplClass(); if (!isAbstract() && !isWrapperType()) { TypeInstantiationPolicy tip = new TypeInstantiationPolicy(this); this.xmlDescriptor.setInstantiationPolicy(tip); } } }
private XMLMarshaller getXmlMarshaller(Object options) { XMLMarshaller xmlMarshaller = getXmlMarshaller().clone(); if (null == options) { return xmlMarshaller; } try { DataObject optionsDO = (DataObject) options; if (optionsDO.isSet(SDOConstants.ATTACHMENT_MARSHALLER_OPTION)) { xmlMarshaller.setAttachmentMarshaller( (XMLAttachmentMarshaller) optionsDO.get(SDOConstants.ATTACHMENT_MARSHALLER_OPTION)); } xmlMarshaller.setMarshalListener( new SDOMarshalListener(xmlMarshaller, (SDOTypeHelper) aHelperContext.getTypeHelper())); return xmlMarshaller; } catch (ClassCastException ccException) { throw SDOException.optionsMustBeADataObject( ccException, SDOConstants.ORACLE_SDO_URL, SDOConstants.XMLHELPER_LOAD_OPTIONS); } }
public SDOType(HelperContext helperContext) { this((SDOTypeHelper) helperContext.getTypeHelper()); }
/** * INTERNAL: Assign a unique string to a type, which belongs to same uri, among types. * * @param name a unique string representing a type. */ public void addAliasName(String name) { getAliasNames().add(name); QName qname = new QName(getURI(), name); ((SDOTypeHelper) aHelperContext.getTypeHelper()).getTypesHashMap().put(qname, this); }