Package com.linkedin.data.element

Examples of com.linkedin.data.element.DataElement


  {
    String spaces = "                                          ";

    StringBuilder s = new StringBuilder();
    DataIterator it = Builder.create(element, order).dataIterator();
    DataElement current;
    while ((current = it.next()) != null)
    {
      int level = current.level();
      s.append(spaces, 0, level);
      if (usePath)
      {
        s.append("path=").append(current.pathAsString());
      }
      else
      {
        s.append("name=").append(current.getName());
      }
      s.append(", class=").append(current.getValue().getClass().getName());
      Object value = current.getValue();
      if ((value instanceof DataComplex) == false)
      {
        s.append(", value=");
        if (value instanceof ByteString)
        {
View Full Code Here


    return s.toString();
  }

  public void traverseAndCheck(Object root, String preExpected, String postExpected)
  {
    DataElement element = new SimpleDataElement(root, null);
    traverseAndCheckWithDataElement(element, preExpected, postExpected, false);
  }
View Full Code Here

    DataMap grandParent = new DataMap();
    DataMap parent = new DataMap();
    grandParent.put("child", parent);
    parent.put("child", root);

    DataElement grandParentElement = new SimpleDataElement(grandParent, null);
    DataElement parentElement = new SimpleDataElement(parent, "child", null, grandParentElement);
    DataElement element = new SimpleDataElement(root, "child", null, parentElement);

    String preExpected =
      "  path=/child/child, class=com.linkedin.data.DataMap\n" +
      "   path=/child/child/bytes, class=com.linkedin.data.ByteString, value=abc\n" +
      "   path=/child/child/int, class=java.lang.Integer, value=1\n" +
View Full Code Here

    {
      String input = "{ \"aKey\" : [ 1, 2 ], \"bKey\" : [ 1.0, 2.0 ] }";
      Object o = jsonToObject(input);
      // use filterBy(alwaysTrue()) to make sure that FilterIterator.skipToSibling is exercised.
      DataIterator it = Builder.create(o, null, IterationOrder.PRE_ORDER).filterBy(alwaysTrue()).dataIterator();
      DataElement e;
      boolean onlyDataList = false;
      while ((e = it.next()) != null)
      {
        if (onlyDataList == false && e.getValue() instanceof DataList == false)
        {
          continue;
        }
        assertTrue(e.getValue() instanceof DataList);
        onlyDataList = true;
        it.skipToSibling();
      }
      assertTrue(onlyDataList);
    }
    // pre-order skipToSibling on an DataList
    {
      String input = "[ { \"aKey\" : 1 }, { \"bKey\" : 2.0 } ]";
      Object o = jsonToObject(input);
      DataIterator it = Builder.create(o, null, IterationOrder.PRE_ORDER).dataIterator();
      DataElement e;
      boolean onlyDataMap = false;
      while ((e = it.next()) != null)
      {
        if (onlyDataMap == false && e.getValue() instanceof DataMap == false)
        {
          continue;
        }
        assertTrue(e.getValue() instanceof DataMap);
        onlyDataMap = true;
        it.skipToSibling();
      }
      assertTrue(onlyDataMap);
    }
    // pre-order skipToSibling is no-op, because there is no children
    {
      String input = "[ 1, 2, 3 ]";
      Object o = jsonToObject(input);
      DataIterator it = Builder.create(o, null, IterationOrder.PRE_ORDER).dataIterator();
      DataElement e;
      boolean onlyInteger = false;
      while ((e = it.next()) != null)
      {
        if (onlyInteger == false && e.getValue() instanceof Integer == false)
        {
          continue;
        }
        assertTrue(e.getValue() instanceof Integer);
        onlyInteger = true;
        it.skipToSibling();
      }
      assertTrue(onlyInteger);
    }
    // pre-order skipToSibling is no-op, because there is no children
    {
      String input = "{ \"a\" : 1, \"b\" : 2, \"c\" : 3 }";
      Object o = jsonToObject(input);
      DataIterator it = Builder.create(o, null, IterationOrder.PRE_ORDER).dataIterator();
      DataElement e;
      boolean onlyInteger = false;
      while ((e = it.next()) != null)
      {
        if (onlyInteger == false && e.getValue() instanceof Integer == false)
        {
          continue;
        }
        assertTrue(e.getValue() instanceof Integer);
        onlyInteger = true;
        it.skipToSibling();
      }
      assertTrue(onlyInteger);
    }
    // post-order skipToSibling
    {
      String input = "{ \"aKey\" : [ 1, 2 ], \"bKey\" : [ 1.0, 2.0 ] }";
      Object o = jsonToObject(input);
      DataElement e;
      DataIterator it = Builder.create(o, null, IterationOrder.POST_ORDER).dataIterator();
      List<String> pathsWithSkip = new ArrayList<String>();
      while ((e = it.next()) != null)
      {
        pathsWithSkip.add(e.pathAsString());
        it.skipToSibling();
      }

      it = Builder.create(o, null, IterationOrder.POST_ORDER).dataIterator();
      List<String> pathsWithoutSkip = new ArrayList<String>();
      while ((e = it.next()) != null)
      {
        pathsWithoutSkip.add(e.pathAsString());
      }

      assertEquals(pathsWithSkip, pathsWithoutSkip);
    }
  }
View Full Code Here

  {
    String input = "{ \"a\": { \"b\": {} } }";
    Object o = jsonToObject(input);
    DataIterator i = Builder.create(o, null, order).dataIterator();

    DataElement e = i.next();
    if (order == IterationOrder.PRE_ORDER)
    {
      assertEquals(e.level(), 0, "preorder traversal of " + input + " started with level " + e.level());
    }
    else
    {
      assertEquals(e.level(), 2, "postorder traversal of " + input + " started with level " + e.level());
    }
  }
View Full Code Here

  }

  @Override
  public void validate(ValidatorContext context)
  {
    DataElement dataElement = context.dataElement();
    Object value = dataElement.getValue();
    DataSchema schema = dataElement.getSchema();
    if (schema.getType() != DataSchema.Type.RECORD ||
        (((RecordDataSchema) schema).getFullName()).equals(SCHEMA_NAME) == false)
    {
      context.addResult(new Message(context.dataElement().path(),
                                    "%1$s invoked on schema that is not %2$s",
                                    AnyRecordValidator.class.getName(), SCHEMA_NAME));
    }
    else if (value.getClass() != DataMap.class)
    {
      context.addResult(new Message(context.dataElement().path(),
                                    "%1$s expects data to be a DataMap, data is %2$s",
                                    AnyRecordValidator.class.getName(), value));

    }
    else
    {
      DataMap dataMap = (DataMap) value;
      if (dataMap.size() != 1)
      {
        context.addResult(new Message(context.dataElement().path(),
                                      "%1$s expects data to be a DataMap with one entry, data is %2$s",
                                      AnyRecordValidator.class.getName(), value));
      }
      else
      {
        Map.Entry<String, Object> entry = dataMap.entrySet().iterator().next();
        String anySchemaName = entry.getKey();
        Object anyValue = entry.getValue();
        DataSchema anySchema = schemaFromName(context, anySchemaName);
        if (anySchema != null)
        {
          DataElement anyElement = new SimpleDataElement(anyValue, entry.getKey(), anySchema, dataElement);
          // do we want to have cache for anySchemaName to validator
          // do we care about classMap argument to DataSchemaAnnotationValidator
          DataSchemaAnnotationValidator validator = new DataSchemaAnnotationValidator(anySchema);
          if (validator.isInitOk() == false)
          {
View Full Code Here

        {
          validator = new PatchFilterValidator(visitedValidator, opMap, mode);
        }
        else
        {
          DataElement patchElement = DataElementUtil.element(valueMap, schema, patchPath);
          assertNotSame(patchElement, null);
          validator = new PatchFilterValidator(visitedValidator, opMap, mode, patchElement);
        }
        ValidationResult result = ValidateDataAgainstSchema.validate(valueMap, schema, options, validator);
        if (debug)
View Full Code Here

  {
    public List<String> _visitedPaths = new ArrayList<String>();

    public void validate(ValidatorContext ctx)
    {
      DataElement element = ctx.dataElement();
      _visitedPaths.add(element.pathAsString());
    }
View Full Code Here

  }

  @Override
  public boolean evaluate(DataElement element)
  {
    DataElement parentElement = element.getParent();
    if (parentElement == null)
      return false;
    else
      return _predicate.evaluate(parentElement);
  }
View Full Code Here

  }

  @Override
  public DataElement next()
  {
    DataElement element;
    while ((element = _it.next()) != null)
    {
      if (_predicate.evaluate(element))
      {
        return element;
View Full Code Here

TOP

Related Classes of com.linkedin.data.element.DataElement

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.