Example #1
0
  /** 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);
 }
Example #3
0
  /**
   * 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;
  }
Example #9
0
  /** 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);
   }
 }
Example #11
0
 public SDOType(HelperContext helperContext) {
   this((SDOTypeHelper) helperContext.getTypeHelper());
 }
Example #12
0
 /**
  * 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);
 }