Package nexj.core.runtime

Examples of nexj.core.runtime.Instance


      InstanceList timerList = getNonInitialTimers();
      int i = 0;

      while (i < timerList.size())
      {
         Instance timer = timerList.getInstance(i);

         if (timer.getValue("workflow") == workflow)
         {
            return timer;
         }

         i++;
View Full Code Here


      InstanceList timerList = Query.createRead(timerClass, null, Boolean.TRUE, null, -1, 0, false, Query.SEC_NONE, m_context).read();
      int i = 0;

      while (i < timerList.size())
      {
         Instance timer = timerList.getInstance(i);
         OID timerOID = timer.getOID();

         assertEquals(1, timerOID.getCount());

         if (((Binary)timerOID.getValue(0)).toString().equals("00000000000000000000000000000001"))
         {
View Full Code Here

   {
      Metaclass serviceClass = getMetadata().getMetaclass(Metadata.SERVICE_CLASS_NAME);
      Metaclass schedulerClass = getMetadata().getMetaclass("TestSysWorkflowSchedulerBatchJob");
      TransferObject tobj = new TransferObject();
      TransferObject result;
      Instance instance, assignment;
      InstanceList assignmentList;

      // Set scheduler time outside of the queue time window
      schedulerClass.setValue("time", Primitive.toTimestamp(Primitive.createInteger(15000)));


      // Test: no exception
      tobj.setValue("trace", "");
      tobj.setValue("throwOuterEx", Boolean.FALSE);
      tobj.setValue("throwUncaughtEx", Boolean.FALSE);
      instance = (Instance)serviceClass.invoke("invoke", new Object[]{"Semaphore", tobj, null});
      assertEquals(Boolean.FALSE, instance.invoke("done"));
      assertEquals("BEFORE;", tobj.getValue("trace"));
      assignmentList = (InstanceList)instance.getValue("assignments");
      assertEquals(1, assignmentList.size());
      assignment = assignmentList.getInstance(0);
      assertEquals(Boolean.TRUE, assignment.getValue("semaphore"));
      assertEquals(Primitive.ZERO_INTEGER, assignment.getValue("status"));
      commit();
      assignment.invoke("schedulerRun");
      assertEquals(Boolean.TRUE, instance.invoke("done"));
      assertEquals(Instance.DELETED, assignment.getState());
      result = (TransferObject)instance.invoke("result");
      assertEquals("BEFORE;EXECUTE_SEMAPHORE;END_SEMAPHORE;AFTER;", result.getValue("trace"));
      instance.delete();
      commit();


      // Test: caught exception
      tobj.setValue("trace", "");
      tobj.setValue("throwOuterEx", Boolean.TRUE);
      tobj.setValue("throwUncaughtEx", Boolean.FALSE);
      instance = (Instance)serviceClass.invoke("invoke", new Object[]{"Semaphore", tobj, null});
      assertEquals(Boolean.FALSE, instance.invoke("done"));
      assertEquals("BEFORE;", tobj.getValue("trace"));
      assignmentList = (InstanceList)instance.getValue("assignments");
      assertEquals(1, assignmentList.size());
      assignment = assignmentList.getInstance(0);
      assertEquals(Boolean.TRUE, assignment.getValue("semaphore"));
      assertEquals(Primitive.ZERO_INTEGER, assignment.getValue("status"));
      commit();
      assignment.invoke("schedulerRun");
      assertEquals(Boolean.TRUE, instance.invoke("done"));
      assertEquals(Instance.DELETED, assignment.getState());
      assertEquals(Primitive.createInteger(2), assignment.getValue("status"));
      result = (TransferObject)instance.invoke("result");
      assertEquals("BEFORE;EXECUTE_SEMAPHORE;CAUGHT_OUTER;", result.getValue("trace"));
      instance.delete();
      commit();


      // Test: uncaught exception
      tobj.setValue("trace", "");
      tobj.setValue("throwOuterEx", Boolean.FALSE);
      tobj.setValue("throwUncaughtEx", Boolean.TRUE);
      instance = (Instance)serviceClass.invoke("invoke", new Object[]{"Semaphore", tobj, null});
      assertEquals(Boolean.FALSE, instance.invoke("done"));
      assertEquals("BEFORE;", tobj.getValue("trace"));
      assignmentList = (InstanceList)instance.getValue("assignments");
      assertEquals(1, assignmentList.size());
      assignment = assignmentList.getInstance(0);
      assertEquals(Boolean.TRUE, assignment.getValue("semaphore"));
      assertEquals(Primitive.ZERO_INTEGER, assignment.getValue("status"));
      commit();

      try
      {
         assignment.invoke("schedulerRun");
         fail();
      }
      catch (ScriptingException ex)
      {
         assertEquals(Boolean.TRUE, instance.invoke("done"));
         assertEquals(Instance.DELETED, assignment.getState());
         assertEquals(Primitive.createInteger(2), assignment.getValue("status"));
         result = (TransferObject)instance.invoke("result");
         assertEquals("BEFORE;EXECUTE_SEMAPHORE;", result.getValue("trace"));
         instance.delete();
         commit();
      }
   }
View Full Code Here

               throw new TypeMismatchException(getSymbol());
            }
           
            InvocationContext context = (InvocationContext)machine.getContext();
            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;
               }
               else
               {
                  throw new TypeMismatchException(getSymbol());
               }

               instance = context.findInstance(metaclass, oid);

               if (instance == null)
               {
                  instance = new Instance(metaclass, context);
                  instance.cache(oid);
               }
            }
            else
            {
               instance = new Instance(metaclass, context);
               instance.setNew();
            }

            for (int i = 2; i < nArgCount; ++i)
            {
               Object obj = machine.getArg(i, nArgCount);

               if (!(obj instanceof Pair))
               {
                  throw new TypeMismatchException(getSymbol());
               }

               Pair pair = (Pair)obj;
              
               if (!(pair.getHead() instanceof Symbol))
               {
                  throw new TypeMismatchException(getSymbol());
               }

               Attribute attribute = metaclass.getAttribute((Symbol)pair.getHead());

               if (attribute.isStatic())
               {
                  throw new ScriptingException("err.scripting.staticAttribute",
                     new Object[]{attribute.getName(), metaclass.getName()});           
               }

               instance.setOldValueDirect(attribute.getOrdinal(), pair.getTail());
            }

            if (oidArray == null)
            {
               for (int i = 0, n = metaclass.getInstanceAttributeCount(); i != n; ++i)
               {
                  Attribute attribute = metaclass.getInstanceAttribute(i);
                 
                  if (instance.getValueDirect(attribute.getOrdinal()) instanceof Undefined &&
                     attribute.getInitializerFunction() != null)
                  {
                     instance.setValueDirect(attribute.getOrdinal(),
                        machine.invoke(attribute.getInitializerFunction(), instance, (Object[])null));
                  }
               }
            }
View Full Code Here

                  }

                  obj = frame[1];

                  Event event = (Event)machine.getArg(1, nArgCount);
                  Instance instance = (obj instanceof Instance) ? (Instance)obj : null;

                  RPCUtil.audit(instance, instance, event, context);
               }
            }
View Full Code Here

            if (!(obj instanceof Instance))
            {
               throw new TypeMismatchException(getSymbol());
            }
           
            Instance instance = (Instance)obj;
            boolean bReset = false;
           
            if (nArgCount > 1)
            {
               Object reset = machine.getArg(1, nArgCount);
              
               if (!(reset instanceof Boolean))
               {
                  throw new TypeMismatchException(getSymbol());
               }
              
               bReset = ((Boolean)reset).booleanValue();
            }
           
            instance.setDirty();
           
            if (bReset)
            {
               for (int i = 0, n = instance.getMetaclass().getInstanceAttributeCount(); i < n; ++i)
               {
                  instance.setOldValueDirect(i, Undefined.VALUE);
               }
            }

            instance.setEventPending(true);
            machine.returnValue(null, nArgCount);

            return false;
         }
View Full Code Here

            if (!(obj instanceof Instance))
            {
               throw new TypeMismatchException(getSymbol());
            }
           
            Instance instance = (Instance)obj;

            instance.setNew();
            instance.setEventPending(true);
            machine.returnValue(null, nArgCount);

            return false;
         }
View Full Code Here

         return;
      }

      if (obj instanceof Instance)
      {
         Instance instance = (Instance)obj;

         if (!identitySet.add(obj))
         {
            return;
         }

         if (instance.getPersistenceMapping() != null)
         {
            if (instance.getOID() == null)
            {
               instance.getAdapter().addDependency(uow, work, instance, null,
                  instance.getPersistenceMapping().getObjectKey(), false);
            }

            return;
         }

         Metaclass metaclass = instance.getMetaclass();

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

            if (!attribute.getType().isPrimitive())
            {
               addDependency(uow, work, instance.getValueDirect(attribute.getOrdinal()), identitySet);
            }
         }

         return;
      }
View Full Code Here

   /**
    * @see nexj.core.persistence.PersistenceHook#prepare(nexj.core.persistence.Work)
    */
   public void prepare(Work work)
   {
      Instance instance = work.getInstance();

      if (m_startAttribute != null)
      {
         if (instance.isDirty(m_startAttribute.getOrdinal()))
         {
            instance.getUnitOfWork().setNextTimeout(
               ((Timestamp)instance.getValueDirect(m_startAttribute.getOrdinal())).getTime());
         }
      }

      if (!instance.isDirty(m_objectAttribute.getOrdinal()))
      {
         return;
      }

      Object symbol = instance.getValueDirect(m_eventAttribute.getOrdinal());

      if (!(symbol instanceof Symbol))
      {
         return;
      }

      Column column = ((RelationalPrimitiveMapping)instance.getPersistenceMapping()
         .getAttributeMapping(m_binaryAttribute)).getColumn();
      SQLWork sqlWork = (SQLWork)work;

      if (sqlWork.getTable() == column.getTable())
      {
         TransferObject tobj = (TransferObject)RPCUtil.transferState(
            instance.getValueDirect(m_objectAttribute.getOrdinal()), null, new HashTab(), RPCUtil.TF_ALL);

         Request request = new Request();

         tobj.setEventName(symbol.toString());
         request.addInvocation(tobj);
View Full Code Here

            m_instance = tobj;

            if (bFiltered || m_where == null || !Boolean.FALSE.equals(m_where.getValue()))
            {
               Instance instance = factory.instantiate(tobj);

               identityMap.clear();

               if (isJoin())
               {
View Full Code Here

TOP

Related Classes of nexj.core.runtime.Instance

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.