Package nexj.core.meta.persistence.virtual

Examples of nexj.core.meta.persistence.virtual.VirtualMapping


    */
   public void execute(Work[] workArray, final int nStart, final int nEnd)
   {
      Metaclass metaclass = m_instance.getMetaclass();
      int nAttributeCount = metaclass.getInstanceAttributeCount();
      VirtualMapping mapping = (VirtualMapping)m_mapping;
      WorkMapping operation = mapping.getCreateMapping();
      Attribute lockingAttribute = mapping.getLockingAttribute();
      int nLockingOrdinal = (lockingAttribute == null) ? -1 : lockingAttribute.getOrdinal();
      String sLockingAttributeName = (lockingAttribute == null) ? null :  lockingAttribute.getName();
      VirtualDataSourceFragment fragment = (VirtualDataSourceFragment)getFragment();
      ArrayList tobjList = new ArrayList(nEnd - nStart);

View Full Code Here


    * @see nexj.core.persistence.virtual.VirtualWork#execute(nexj.core.persistence.Work[], int, int)
    */
   public void execute(Work[] workArray, int nStart, int nEnd)
   {
      // All items have the same attributes to update
      VirtualMapping mapping = (VirtualMapping)m_mapping;
      UpdateMapping updateMapping = mapping.getUpdateMapping();
      Metaclass metaclass = mapping.getMetaclass();
      List updateList = updateMapping.getUpdateCases(m_attributeSet);

      // Execute updates
      Attribute lockingAttribute = mapping.getLockingAttribute();
      int nLockingOrdinal = (lockingAttribute == null) ? -1 : lockingAttribute.getOrdinal();
      String sLockingAttributeName = (lockingAttribute == null) ? null : lockingAttribute.getName();
      VirtualDataSourceFragment fragment = (VirtualDataSourceFragment)getFragment();

      for (int i = 0, nSize = updateList.size(); i < nSize; i++)
View Full Code Here

    */
   protected void addCreate(UnitOfWork uow, Instance instance)
   {
      Metaclass metaclass = instance.getMetaclass();
      int nCount = metaclass.getInstanceAttributeCount();
      VirtualMapping mapping = (VirtualMapping)instance.getPersistenceMapping();
      OID oid = instance.getOID();
      VirtualWork work = getWork(uow, VirtualWork.CREATE, instance);

      if (oid == null)
      {
         Component keyGen = mapping.getKeyGenerator();

         if (keyGen != null)
         {
            oid = ((OIDGenerator)keyGen.getInstance(uow.getInvocationContext())).generateOID(instance, this);
         }
         else
         {
            // Compute OID from attribute values
            Object[] valueArray = null;

            for (int i = 0; i < nCount; i++)
            {
               Attribute attribute = metaclass.getInstanceAttribute(i);

               if (attribute.getType().isPrimitive())
               {
                  VirtualPrimitiveMapping attrMapping = (VirtualPrimitiveMapping)mapping.getAttributeMapping(attribute);

                  if (attrMapping != null// ignore non-persisted attributes
                  {
                     int nKeyPart = attrMapping.getObjectKeyPart();

                     if (nKeyPart >= 0)
                     {
                        Object value = instance.getValueDirect(i);

                        if (value == null)
                        {
                           valueArray = null;

                           break;
                        }

                        if (valueArray == null)
                        {
                           valueArray = new Object[mapping.getObjectKey().getPartCount()];
                        }

                        valueArray[nKeyPart] = value;
                     }
                  }
View Full Code Here

    * @see nexj.core.persistence.virtual.VirtualWork#execute(nexj.core.persistence.Work[], int, int)
    */
   public void execute(Work[] workArray, int nStart, int nEnd)
   {
      Metaclass metaclass = m_instance.getMetaclass();
      VirtualMapping mapping = (VirtualMapping)m_mapping;
      WorkMapping operation = mapping.getDeleteMapping();
      Attribute lockingAttribute = mapping.getLockingAttribute();
      int nLockingOrdinal = (lockingAttribute == null) ? -1 : lockingAttribute.getOrdinal();
      String sLockingAttributeName = (lockingAttribute == null) ? null : lockingAttribute.getName();
      VirtualDataSourceFragment fragment = (VirtualDataSourceFragment)getFragment();
      ArrayList tobjList = new ArrayList(nEnd - nStart);

View Full Code Here

            s_logger.dump(nQuery + ": " + m_query.getOutputQuery(nQuery));
         }
      }

      Machine machine = m_adapter.getInvocationContext().getMachine();
      VirtualMapping mapping = (VirtualMapping)m_query.getPersistenceMapping();
      ReadMapping readMapping = mapping.getReadMapping();

      assert mapping.getMetaclass() == m_query.getMetaclass();

      m_readArgArray = readMapping.getFunctionArgs(m_query, m_fragment);

      if (m_bDebug)
      {
         logQuery(Logger.DEBUG);
      }

      long lStartTime = getCurrentTime();
      Pair readClosePair = (Pair)machine.invoke(readMapping.getFunction(), m_readArgArray);

      logDuration(lStartTime, true);
      m_resultIterator = getIterator(readClosePair.getHead(), mapping.getMetaclass());
      m_closeFunction = (Function)readClosePair.getTail();
   }
View Full Code Here

         TransferObject tobj = m_result;

         if (tobj != null)
         {
            OID oid = tobj.getOID();
            VirtualMapping mapping = (VirtualMapping)m_query.getPersistenceMapping();
            Metaclass metaclass = mapping.getMetaclass();

            assert metaclass == m_query.getMetaclass();

            if (oid == null)
            {
               PersistenceException ex = new PersistenceException("err.persistence.virtual.missingOID",
                  new Object[]{metaclass.getName()});

               ex.setValue("result", tobj);

               throw ex;
            }

            // Set the attributes that are mapped to the OID key parts
            for (int i = 0, nCount = metaclass.getInstanceAttributeCount(); i < nCount; i++)
            {
               Attribute attribute = metaclass.getInstanceAttribute(i);

               if (attribute.getType().isPrimitive())
               {
                  VirtualPrimitiveMapping attrMapping = (VirtualPrimitiveMapping)mapping.getAttributeMapping(attribute);

                  if (attrMapping != null)
                  {
                     int nKeyPart = attrMapping.getObjectKeyPart();
View Full Code Here

TOP

Related Classes of nexj.core.meta.persistence.virtual.VirtualMapping

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.