Package org.openbp.core.model.item.type

Examples of org.openbp.core.model.item.type.DataTypeItem


        return CANNOT_LINK;
      }
    }

    // Check parameter compatibility
    DataTypeItem sourceType = determineType(sourceParam, sourceMemberPath);
    DataTypeItem targetType = determineType(targetParam, targetMemberPath);

    if (sourceType == null || targetType == null)
    {
      // Probably invalid member path
      return CANNOT_LINK;
    }

    if ((flags & LINK_OMIT_TYPE_CHECK) != 0)
    {
      // Omit the type checking, so we assume we can link the parameters
      return CAN_LINK | reverseFlag;
    }

    if (sourceType == targetType)
    {
      return CAN_LINK | reverseFlag;
    }

    if (targetType.isBaseTypeOf(sourceType))
    {
      // Direct hierarchy can be linked without problems
      return CAN_LINK | reverseFlag;
    }
View Full Code Here


  public static String checkAutoConversion(Param sourceParam, String sourceMemberPath, Param targetParam, String targetMemberPath)
  {
    String ret = null;

    // Check parameter compatibility
    DataTypeItem sourceType = determineType(sourceParam, sourceMemberPath);
    DataTypeItem targetType = determineType(targetParam, targetMemberPath);

    // Data link autoconnector operation mode: Connect convertible types
    // One type must be a complex type (i. e. a bean), the other must be
    // a type that can be used as lookup key.
    if (targetType instanceof ComplexTypeItem)
View Full Code Here

  public static DataTypeItem determineType(Param param, String memberPath)
  {
    if (param == null)
      return null;

    DataTypeItem type = param.getDataType();
    if (memberPath == null)
    {
      // No member path, use
      return type;
    }

    // Determine the target type using the data member path.
    // Use '.' and '>' operators as token (and make the string tokenizer return the tokens!)
    StringTokenizer st = new StringTokenizer(memberPath, TOKENS, true);
    while (st.hasMoreTokens())
    {
      if (type == null)
        return null;

      String t = st.nextToken();
      if (t.equals(TOK_MEMBER))
      {
        // Simply eat this token since member name are the default tokens
        continue;
      }

      if (t.equals(TOK_REFERENCE))
      {
        // We expect '>>' operator
        if (!st.hasMoreTokens())
          return null;

        t = st.nextToken();
        if (!t.equals(TOK_REFERENCE))
          return null;

        // Now we expect a data type name
        if (!st.hasMoreTokens())
          return null;

        String typeName = st.nextToken();
        try
        {
          type = (DataTypeItem) param.getProcess().resolveItemRef(typeName, ItemTypes.TYPE);
        }
        catch (ModelException e)
        {
          // Silently ignore, just return null
          return null;
        }

        continue;
      }

      // Member operator
      if (type.isSimpleType())
      {
        // Sorry...
        return null;
      }
View Full Code Here

  // @@ Finder implementation
  //////////////////////////////////////////////////

  public List findModelObjectInModel(ModelObject mo, Model model)
  {
    DataTypeItem item = (DataTypeItem) mo;

    List foundModelObjects = new ArrayList();

    // Search all nodesockets for the datatype
    Iterator processes = model.getItems(ItemTypes.PROCESS);
    while (processes.hasNext())
    {
      ProcessItem process = (ProcessItem) processes.next();
      Iterator nodes = process.getNodes();
      while (nodes.hasNext())
      {
        Node node = (Node) nodes.next();
        List modelObjects = findInNode(node, item);
        if (modelObjects.size() != 0)
          foundModelObjects.addAll(modelObjects);
      }
    }

    // Search all Activity items
    Iterator activityItems = model.getItems(ItemTypes.ACTIVITY);
    while (activityItems.hasNext())
    {
      ActivityItem activity = (ActivityItem) activityItems.next();
      Iterator sockets = activity.getSockets();
      while (sockets.hasNext())
      {
        ActivitySocket activitySocket = (ActivitySocket) sockets.next();
        foundModelObjects.addAll(findInActivitySocket(activitySocket, item));
      }
    }

    // Now search the datatypes itself, e.g. complex data types
    Iterator dataTypes = model.getItems(ItemTypes.TYPE);
    while (dataTypes.hasNext())
    {
      DataTypeItem dt = (DataTypeItem) dataTypes.next();
      if (dt instanceof ComplexTypeItem)
      {
        foundModelObjects.addAll(findInComplexDataType((ComplexTypeItem) dt, item));
      }
    }
View Full Code Here

    List modelObjects = new ArrayList();
    if (complex == item)
      return modelObjects;

    // Check the base type
    DataTypeItem dti = complex.getBaseType();

    // Add the type to the list if found
    addIfMatch(complex, dti, item, modelObjects);

    // Check the members
    Iterator member = complex.getAllMembers();
    while (member.hasNext())
    {
      DataMember dm = (DataMember) member.next();
      DataTypeItem memberItem = dm.getDataType();
      addIfMatch(dm, memberItem, item, modelObjects);
    }
    return modelObjects;
  }
View Full Code Here

    List foundObject = new ArrayList();
    Iterator parameter = socket.getParams();
    while (parameter.hasNext())
    {
      NodeParam param = (NodeParam) parameter.next();
      DataTypeItem dataType = param.getDataType();
      addIfMatch(param, dataType, item, foundObject);
    }
    return foundObject;
  }
View Full Code Here

    List foundObject = new ArrayList();
    Iterator parameter = socket.getParams();
    while (parameter.hasNext())
    {
      ActivityParam param = (ActivityParam) parameter.next();
      DataTypeItem dataType = param.getDataType();
      addIfMatch(param, dataType, item, foundObject);
    }
    return foundObject;
  }
View Full Code Here

          return EVENT_IGNORED;

        NodeParam nodeParam = (NodeParam) o;

        String name = nodeParam.getName();
        DataTypeItem type = nodeParam.getDataType();
        addParam(name, type);
      }

      return EVENT_HANDLED;
    }
View Full Code Here

    param.setProcess(process);

    // Assign it the Object type
    try
    {
      DataTypeItem type = (DataTypeItem) ModelConnector.getInstance().getModelByQualifier(CoreConstants.SYSTEM_MODEL_QUALIFIER).getItem("Object", ItemTypes.TYPE, false);
      param.setDataType(type);
      param.setTypeName("Object");
    }
    catch (ModelException e)
    {
View Full Code Here

  private ComplexTypeItem lookupTypeByClassName(Model model, String className)
  {
    for (Iterator it = model.getItems(ItemTypes.TYPE); it.hasNext();)
    {
      DataTypeItem dataType = (DataTypeItem) it.next();
      if (dataType instanceof ComplexTypeItem)
      {
        if (className.equals(dataType.getClassName()))
        {
          return (ComplexTypeItem) dataType;
        }
      }
    }
View Full Code Here

TOP

Related Classes of org.openbp.core.model.item.type.DataTypeItem

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.