Package nexj.core.meta.integration

Examples of nexj.core.meta.integration.Message


      MessagePart processedPart = msg;
      String sMessageName = null;
      Metaclass metaclass;
      Instance instance = (obj instanceof Instance) ? (Instance)obj : null;
      TransferObject srcTobj = (obj instanceof TransferObject) ? (TransferObject)obj : null;
      Message message = null;

      if (instance != null || srcTobj != null)
      {
         if (msg instanceof CompositeMessagePartRef)
         {
            CompositeMessagePartRef ref = (CompositeMessagePartRef)msg;
            CompositeMessagePart referencedPart = ref.getRefPart();

            message = ((ObjectMessagePartMapping)referencedPart.getMapping()).getMessage();
         }
         else if (msg.getParent() == null)
         {
            message = ((ObjectMessagePartMapping)msg.getRoot().getMapping()).getMessage();
         }
      }

      // Process inheritance
      if (message != null)
      {
         metaclass = (instance != null) ? instance.getMetaclass() :
            m_context.getMetadata().getMetaclass(srcTobj.getClassName());

         Message derivedMessage = findDerivedMessage(message, metaclass);

         if (derivedMessage == null)
         {
            throw new IntegrationException("err.integration.object.missingMapping",
               new Object[]{metaclass.getName(), message.getName(), msg.getFullPath()});
         }

         Message.validatePolymorphism(message, derivedMessage, msg);
         msg = derivedMessage.getRoot();
         message = derivedMessage;
         sMessageName = message.getName();
      }

      ObjectMessagePartMapping mapping = (ObjectMessagePartMapping)msg.getMapping();
View Full Code Here


   public static Message findDerivedMessage(Message message, Metaclass clazz)
   {
      if (clazz != null && message.getDerivation() != Message.DERIVATION_FINAL)
      {
         ObjectMessagePartMapping mapping = (ObjectMessagePartMapping)message.getRoot().getMapping();
         Message result = mapping.findMessage(clazz);

         if (result == null)
         {
            return findDerivedMessage(message, clazz.getBase());
         }
View Full Code Here

      {
         return null;
      }

      Object[] rawRow = null;
      Message detectedMessage = null;

      Message longestMessage = parserTable.getMessageWithMostFields();
      CSVMessagePartMapping rootMapping = (CSVMessagePartMapping)longestMessage.getRoot().getMapping();
      CompositeMessagePart rowPart = (CompositeMessagePart)longestMessage.getRoot().getPart(0);
      CSVMessagePartMapping rowMapping = (CSVMessagePartMapping)rowPart.getMapping();

      initializeParse(in, rootMapping);

      //Count the number of fields in the first row of input, and use this number
View Full Code Here

      List messages = new ArrayList();

      //Consider all pairs of Message objects in the table.
      for (int nMessageIndex1 = 0; nMessageIndex1 < nMessages; nMessageIndex1++)
      {
         Message message1 = table.getMessage(nMessageIndex1);
         CSVMessagePartMapping message1Mapping = (CSVMessagePartMapping)message1.getRoot().getMapping();

         for (int nMessageIndex2 = 0; nMessageIndex2 < nMessages; nMessageIndex2++)
         {
            Message message2 = table.getMessage(nMessageIndex2);

            if (message2 == message1 || message2.getName() == message1.getName())
            {
               continue;
            }

            CSVMessagePartMapping message2Mapping = (CSVMessagePartMapping)message2.getRoot().getMapping();

            //Perform verification on the message pair (message1, message2)
            if (!haveSameConfiguration(message1Mapping, message2Mapping) || !verifyLengthRestriction(message1, message2))
            {
               throw new IntegrationException("err.integration.csv.messageTableConflict",
                  new Object[]{message1.getName(), message2.getName()});
            }
         }

         messages.add(message1);
      }

      //If all checks passed, construct a table to speed up lookup
      CSVMessageParserTable parserTable = new CSVMessageParserTable();

      parserTable.setMessageList(messages);

      int nMessageCount = messages.size();

      for (int nMessageIndex = 0; nMessageIndex < nMessageCount; nMessageIndex++)
      {
         Message msg = (Message)messages.get(nMessageIndex);

         computeMessageLengthLookup(msg, parserTable);
      }

      if (parserTable.getMessageForFieldCount(0) == null && !messages.isEmpty())
View Full Code Here

      {
         throw new IntegrationException("err.integration.hl7.unparseableMessage", e);
      }

      Lookup2D map = (Lookup2D)table.getParserTable();
      Message message = (Message)map.get(msh.type, msh.event);

      if (message == null)
      {
         String s = msh.structure;

         if (s.length() != 0)
         {
            int i = s.indexOf('_');

            message = (Message)((i < 0) ? map.get(s, "") : map.get(s.substring(0, i), s.substring(i + 1)));
         }

         if (message == null)
         {
            if (msh.event.length() != 0)
            {
               message = (Message)map.get(msh.type, "");
            }

            if (message == null)
            {
               throw new IntegrationException("err.integration.hl7.unsupportedMessage", new Object[]{msh.type, msh.event});
            }
         }
      }

      if (s_logger.isDebugEnabled())
      {
         s_logger.debug("Identified the HL7 message as \"" + message.getName() + "\"");
      }

      m_msh = HL7MessagePartMapping.findMSH(message);

      if (m_msh != null)
      {
         resetReader();
         nextToken();
      }

      TransferObject tobj = new TransferObject(message.getName());

      try
      {
         parse(message.getRoot(), null, null, tobj);
      }
      catch (IntegrationException e)
      {
         throw e;
      }
      catch (Exception e)
      {
         throw new IntegrationException("err.integration.hl7.messageSyntax",
            new Object[]{message.getName()}, e);
      }

      return tobj;
   }
View Full Code Here

   {
      Lookup2D map = new HashTab2D();

      for (Iterator itr = table.getMessageIterator(); itr.hasNext();)
      {
         Message message = (Message)itr.next();
         HL7MessagePartMapping mapping = (HL7MessagePartMapping)message.getRoot().getMapping();

         if (mapping.getLevel() != HL7MessagePartMapping.LEVEL_MESSAGE)
         {
            throw new MetadataException("err.meta.integration.hl7.messageLevel",
               new Object[]{message.getName()});
         }

         String sName = mapping.getName();

         if (sName == null)
         {
            throw new MetadataException("err.meta.integration.hl7.missingMessageType",
               new Object[]{message.getName()});
         }

         String sType;
         String sEvent;
         int i = sName.indexOf('^');

         if (i < 0)
         {
            sType = sName;
            sEvent = "";
         }
         else
         {
            sType = sName.substring(0, i);

            int k = sName.indexOf('^', i + 1);

            if (k < 0)
            {
               sEvent = sName.substring(i + 1);
            }
            else
            {
               sEvent = sName.substring(i + 1, k);
            }
         }

         Message old = (Message)map.put(sType, sEvent, message);

         if (old != null)
         {
            throw new MetadataException("err.meta.integration.hl7.dupMessageType",
               new Object[]{sType, sEvent, old.getName(), message.getName()});
         }
      }

      table.setParserTable(map);
   }
View Full Code Here

         ObjectMessagePartMapping mapping = (ObjectMessagePartMapping)composite.getMapping();

         if (mapping != null)
         {
            String sDerivedMessageName = tobj.getClassName();
            Message message = mapping.getMessage();

            if (!StringUtil.isEmpty(sDerivedMessageName) && !sDerivedMessageName.equals(message.getName()))
            {
               Message derivedMessage = m_context.getMetadata().getMessage(sDerivedMessageName);
               Message.validatePolymorphism(message, derivedMessage, derivedMessage.getRoot());

               composite = derivedMessage.getRoot();
            }
         }

         if (s_logger.isDebugEnabled())
         {
View Full Code Here

         CompositeMessagePart referencedPart = ((CompositeMessagePartRef)composite).getRefPart();

         if (!StringUtil.isEmpty(sDerivedMessageName))
         {
            Metadata metadata = context.getMetadata();
            Message derivedMessage = metadata.getMessage(sDerivedMessageName);
            Message baseMessage = metadata.getMessage(referencedPart.getRoot().getName());

            Message.validatePolymorphism(baseMessage, derivedMessage, composite);

            return derivedMessage.getRoot();
         }
View Full Code Here

      }
     
      if (service.getInterface() != null)
      {
         MessageTable responseTable = service.getInterface().getResponseTable();
         Message message = null;

         if (responseTable.getMessageCount() != 0)
         {
            if (!(value instanceof TransferObject) ||
               (message = responseTable.findMessage(((TransferObject)value).getClassName())) == null)
            {
               throw new IntegrationException("err.integration.service.outputMessage", new Object[]{service.getFullName()});
            }

            if (message.getFormat() == null)
            {
               message = null;
            }
         }
         else if (responseTable.getFormat() != null)
         {
            channel = null;
         }

         if (channel != null && message != null)
         {
            if (channel.getSender() == null)
            {
               throw new RPCException("err.rpc.notSender", new Object[]{channel.getName()});
            }

            Sender sender = (Sender)channel.getSender().getInstance(m_context);
            ObjectOutput output = sender.createOutput();

            ((MessageFormatter)message.getFormat().getFormatter().getInstance(m_context)).format((TransferObject)value, message, output);
            TransferObject tobj = new TransferObject(1);
            tobj.setValue(Sender.BODY, output.getObject());
            value = tobj;
         }
      }
View Full Code Here

            Element childElement;

            if (child instanceof CompositeMessagePartRef)
            {
               CompositeMessagePart referentPart = ((CompositeMessagePartRef)child).getRefPart();
               Message referentMessage = ((RootXMLMessagePartMapping)referentPart.getMapping()).getRootMessage();

               childType = createCompositeType(referentPart, referentMessage);
               childElement = new Element(childMapping.getNodeName());
               childElement.setType(childType);
               childElement.setDescription(child.getDescription());

               if (bEnvelopeHeaders)
               {
                  addEnvelopeHeader(child, childElement, true);
               }
            }
            else
            {
               XMLNamespace childNamespace = childMapping.getNamespace();
               String sURI = (childNamespace == null) ? null : childNamespace.getURI();

               if (sURI != null && !sURI.equals(m_sNamespaceURI))
               {
                  // Element reference (different namespace)
                  String sCurrentNamespace = m_sNamespaceURI;
                  Schema otherNSSchema = m_universe.getSchema(sURI, childNamespace.getName());

                  m_sNamespaceURI = sURI;
                  childType = createCompositeType((CompositeMessagePart)child, null);

                  Element otherNSElement = new Element(childMapping.getNodeName());

                  setElementProperties(otherNSElement, (CompositeMessagePart)child);
                  otherNSElement.setType(childType);
                  otherNSElement.setDescription(child.getDescription());
                  otherNSSchema.addItem(otherNSElement);

                  childElement = new ElementRef(otherNSElement);
                  m_sNamespaceURI = sCurrentNamespace;

                  if (bEnvelopeHeaders)
                  {
                     addEnvelopeHeader(child, childElement, false);
                  }
               }
               else
               {
                  // Anonymous type (same namespace)
                  childType = createCompositeType((CompositeMessagePart)child, null);
                  childElement = new Element(childMapping.getNodeName());
                  childElement.setType(childType);
                  childElement.setDescription(child.getDescription());

                  if (bEnvelopeHeaders)
                  {
                     addEnvelopeHeader(child, childElement, true);
                  }
               }
            }

            setElementProperties(childElement, (CompositeMessagePart)child);

            if (!bChildEnvelopeHeaders && !isEnvelopeMarkup(childElement))
            {
               type.addChild(childElement);
            }
         }
      }

      m_sNamespaceURI = sOldNamespaceURI;

      // Export inheritance hierarchy
      if (message != null)
      {
         // Export derived messages
         if (message.getDerivation() != Message.DERIVATION_FINAL)
         {
            for (int i = 0, nCount = message.getDerivedMessageCount(); i < nCount; i++)
            {
               Message derived = message.getDerivedMessage(i);
               CompositeType derivedType = createCompositeType(derived.getRoot(), derived);

               derivedType.setBase(type);
            }
         }

         // Export base message
         Message base = message.getBaseMessage();

         if (type.getBase() == null && base != null)
         {
            CompositeType baseType = createCompositeType(base.getRoot(), base);

            type.setBase(baseType);
         }

         type.setAbstract(message.getDerivation() == Message.DERIVATION_ABSTRACT);
View Full Code Here

TOP

Related Classes of nexj.core.meta.integration.Message

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.