Package nexj.core.persistence

Examples of nexj.core.persistence.OID


            Metaclass metaclass = (Metaclass)classObj;
            Instance instance;

            if (oidArray != null)
            {
               OID oid;
              
               if (oidArray instanceof Object[])
               {
                  oid = new OID((Object[])oidArray);
               }
               else if (oidArray instanceof OID)
               {
                  oid = (OID)oidArray;
               }
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();

                     if (nKeyPart >= 0)
                     {
                        tobj.setValue(attribute.getName(), oid.getValue(nKeyPart));
                     }
                  }
               }
            }
View Full Code Here

         VirtualJoinTab joinTab = (VirtualJoinTab)generator;

         for (Iterator itr = joinTab.getParentOIDIterator(); itr.hasNext(); )
         {
            OID parentOID = (OID)itr.next();
            List childList = joinTab.getChildObjects(parentOID);

            if (childList == null)
            {
               continue;
View Full Code Here

         {
            return ((OIDHolder)value).getOID();
         }

         // Convert non-OID to a single-part OID
         return new OID(new Object[]{value});
      }

      if (item instanceof Field[])
      {
         Field[] fieldArray = (Field[])item;
         int nCount = fieldArray.length;
         Object[] partArray = new Object[nCount];

         for (int i = 0; i < nCount; i++)
         {
            Object value = m_result.findValue(fieldArray[i].getAttribute().getName());

            if (value == null)
            {
               return null;
            }

            partArray[i] = value;
         }

         return new OID(partArray);
      }

      return null;
   }
View Full Code Here

            }
         }
         else if (value instanceof OID)
         {
            // Associate an instance, creating a lazy instance if not loaded
            OID oid = (OID)value;
            Metaclass assocClass = (Metaclass)attribute.getType();
            InstanceRef assocRef = m_query.getInvocationContext().findInstanceRef(assocClass, oid);
            Instance assoc = (assocRef == null) ? null : assocRef.getInstance();

            if (assoc == null)
View Full Code Here

         // Replicate
         context.getUnitOfWork().addReplicationFragment(a, "fragment1");
        
         commit(context);
  
         OID oidA = a.getOID();
         String sOidName = (String)oidA.getValue(0);
        
         // Verify
         File defaultFile = FileManagedConnection.splitNameToSubdirs(dataDir, sOidName, 3, 2, false);
        
         assertTrue(defaultFile.exists());
View Full Code Here

        
         a.setValue("data", new Binary("Creation data.".getBytes("utf-8")));
        
         commit(context);
       
         OID oidA = a.getOID();
         String sOidName = (String)oidA.getValue(0);
        
         // Read
         assertNull(context.beginTransaction());
         a.invoke("read", new Object[]{
            parse("(data)"),
View Full Code Here

        
         b.setValue("data", new Binary("Creation data for 'b'.".getBytes("utf-8")));
        
         commit(context);
       
         OID oidA = a.getOID();
         String sOidNameA = (String)oidA.getValue(0);
         OID oidB = b.getOID();
         String sOidNameB = (String)oidB.getValue(0);

         // Read
         assertNull(context.beginTransaction());
         a.invoke("read", new Object[]{
            parse("(data)"),
View Full Code Here

   public void testUpdateWithoutChangingLocking()
   {
      Metaclass testClass = m_metadata.getMetaclass("TestVirtualClass");
      Instance inst = new Instance(testClass, m_context);

      inst.setOID(new OID(new Object[]{Binary.parse("0013")}));
      inst.setValue("locking", Primitive.createLong(17L));
      inst.setClean();

      try
      {
View Full Code Here

   {
      Metaclass penClass = m_metadata.getMetaclass("AnimalPen");
      Instance inst;
      Collection data;
      InstanceArrayList list;
      OID oid;

      data = (Collection)m_context.getMachine().eval(parse("(AnimalPenStore'data)"));
      assertEquals(2, data.size());

      inst = (Instance)penClass.invoke("new", new Object[]
      {
         new Pair(Symbol.define("name"), "Monkey pen"),
         new Pair(Symbol.define("k1"), "ATTR_SRC"),
         new Pair(Symbol.define("k2"), Primitive.createInteger(42))
      });

      data = (Collection)m_context.getMachine().eval(parse("(AnimalPenStore'data)"));
      assertEquals(2, data.size());
      assertNull(inst.getOID());

      m_context.getUnitOfWork().commit();

      data = (Collection)m_context.getMachine().eval(parse("(AnimalPenStore'data)"));
      assertEquals(3, data.size());

      assertEquals(2, inst.getOID().getCount());
      assertEquals("ATTR_SRC", inst.getOID().getValue(0));
      assertEquals(42, ((Integer)inst.getOID().getValue(1)).intValue());
      assertEquals("ATTR_SRC", inst.getValue("k1"));
      assertEquals(42, ((Integer)inst.getValue("k2")).intValue());
      oid = (OID)m_context.getMachine().eval(parse("(car ((AnimalPenStore'data)'get 2))"));
      assertEquals("ATTR_SRC", oid.getValue(0));
      assertEquals(42, ((Integer)oid.getValue(1)).intValue());

      list = (InstanceArrayList)penClass.invoke("read", new Object[] {
         null, Pair.list(Symbol.EQ, Pair.attribute("name"), "Monkey pen"), null, null, null, null
      });
View Full Code Here

TOP

Related Classes of nexj.core.persistence.OID

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.