org.locationtech.geogig.model.Node.getExtraData()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(11.8k)|赞(0)|评价(0)|浏览(126)

本文整理了Java中org.locationtech.geogig.model.Node.getExtraData()方法的一些代码示例,展示了Node.getExtraData()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Node.getExtraData()方法的具体详情如下:
包路径:org.locationtech.geogig.model.Node
类名称:Node
方法名:getExtraData

Node.getExtraData介绍

[英]Returns the extra data stored with this node, which shall be considered immutable, regardless of the concrete Map implementation returned.

Changes to the returned map, if it's not immutable, will not affect the internal state of the node.

The returned map may contain null values, but not null key.
[中]返回与此节点一起存储的额外数据,无论返回的具体映射实现如何,这些数据都将被视为不可变的。
对返回的映射的更改(如果不是不变的)不会影响节点的内部状态。
返回的映射可能包含空值,但不包含空键。

代码示例

代码示例来源:origin: locationtech/geogig

@SuppressWarnings("unchecked")
public static Map<String, Object> getMaterializedAttributes(Node n) {
  Object v = n.getExtraData(IndexInfo.FEATURE_ATTRIBUTES_EXTRA_DATA);
  Preconditions.checkArgument(v == null || v instanceof Map);
  return (Map<String, Object>) v;
}

代码示例来源:origin: org.locationtech.geogig/geogig-api

@SuppressWarnings("unchecked")
public static Map<String, Object> getMaterializedAttributes(Node n) {
  Map<String, Object> extraData = n.getExtraData();
  Object v = extraData.get(IndexInfo.FEATURE_ATTRIBUTES_EXTRA_DATA);
  Preconditions.checkArgument(v == null || v instanceof Map);
  return (Map<String, Object>) v;
}

代码示例来源:origin: locationtech/geogig

public @Nullable Object getExtraData(String key) {
  return getExtraData().get(key);
}

代码示例来源:origin: org.locationtech.geogig/geogig-api

public Node update(final ObjectId newId, final @Nullable Envelope newBounds) {
  ObjectId mdId = getMetadataId().or(ObjectId.NULL);
  return Node.create(getName(), newId, mdId, getType(), newBounds, getExtraData());
}

代码示例来源:origin: locationtech/geogig

public Node update(final ObjectId newId, final @Nullable Envelope newBounds) {
  ObjectId mdId = getMetadataId().or(ObjectId.NULL);
  return RevObjectFactory.defaultInstance().createNode(getName(), newId, mdId, getType(),
      newBounds, getExtraData());
}

代码示例来源:origin: org.locationtech.geogig/geogig-core

public static void writeNode(Node node, DataOutput data, Envelope envBuff) {
  try {
    data.writeUTF(node.getName());
    data.write(node.getObjectId().getRawValue());
    data.write(node.getMetadataId().or(ObjectId.NULL).getRawValue());
    int typeN = node.getType().value();
    data.writeByte(typeN);
    envBuff.setToNull();
    node.expand(envBuff);
    writeBoundingBox(envBuff, data);
    Map<String, Object> extraData = node.getExtraData();
    DataStreamValueSerializerV1.INSTANCE.writeMap(extraData, data);
  } catch (IOException e) {
    throw Throwables.propagate(e);
  }
}

代码示例来源:origin: locationtech/geogig

public static void writeNode(Node node, DataOutput data, Envelope envBuff) {
  try {
    data.writeUTF(node.getName());
    node.getObjectId().writeTo(data);
    node.getMetadataId().or(ObjectId.NULL).writeTo(data);
    int typeN = node.getType().value();
    data.writeByte(typeN);
    envBuff.setToNull();
    node.expand(envBuff);
    writeBoundingBox(envBuff, data);
    Map<String, Object> extraData = node.getExtraData();
    DataStreamValueSerializerV1.INSTANCE.writeMap(extraData, data);
  } catch (IOException e) {
    throw new RuntimeException(e);
  }
}

代码示例来源:origin: locationtech/geogig

@Override
  public void funnel(Node ref, PrimitiveSink into) {
    RevObjectTypeFunnel.funnel(ref.getType(), into);
    StringFunnel.funnel((CharSequence) ref.getName(), into);
    ObjectIdFunnel.funnel(ref.getObjectId(), into);
    ObjectIdFunnel.funnel(ref.getMetadataId().or(ObjectId.NULL), into);
    Map<String, Object> extraData = ref.getExtraData();
    // consider extraData only if it's not empty to maintain backwards compatibility with
    // Geogig pre 1.1
    if (!extraData.isEmpty()) {
      PropertyValueFunnel.funnel(extraData, into);
    }
  }
};

代码示例来源:origin: org.locationtech.geogig/geogig-api

@Override
  public void funnel(Node ref, PrimitiveSink into) {
    RevObjectTypeFunnel.funnel(ref.getType(), into);
    StringFunnel.funnel((CharSequence) ref.getName(), into);
    ObjectIdFunnel.funnel(ref.getObjectId(), into);
    ObjectIdFunnel.funnel(ref.getMetadataId().or(ObjectId.NULL), into);
    Map<String, Object> extraData = ref.getExtraData();
    // consider extraData only if it's not empty to maintain backwards compatibility with
    // Geogig pre 1.1
    if (!extraData.isEmpty()) {
      PropertyValueFunnel.funnel(extraData, into);
    }
  }
};

代码示例来源:origin: locationtech/geogig

@Test
public void testLazyNodeGetExtaDataValue() throws IOException {
  final Map<String, Object> expected = extraData(0);
  final Node originalNode = RevObjectFactory.defaultInstance().createNode("feature-0",
      RevObjectTestSupport.hashString("1"), ObjectId.NULL, TYPE.FEATURE, null, expected);
  assertEquals(expected.size(), originalNode.getExtraData().size());
  assertEquals(expected, originalNode.getExtraData());
  NodeSet nodeset = encodedDecode(Collections.singletonList(originalNode), TYPE.FEATURE);
  Node lazyNode = nodeset.build().get(0);
  for (Map.Entry<String, Object> e : expected.entrySet()) {
    String key = e.getKey();
    Object value = e.getValue();
    Object lazyVal = lazyNode.getExtraData(key);
    assertEquals("key=" + key, value, lazyVal);
  }
}

代码示例来源:origin: locationtech/geogig

private void assertNodesEqual(List<Node> l1, List<Node> l2) {
  assertEquals(l1, l2);
  for (int i = 0; i < l1.size(); i++) {
    Node n1 = l1.get(i);
    Node n2 = l2.get(i);
    assertEquals(n1.getExtraData(), n2.getExtraData());
    assertEquals(n1.getMetadataId(), n2.getMetadataId());
    assertEquals(n1.bounds(), n2.bounds());
  }
}

代码示例来源:origin: org.locationtech.geogig/geogig-core

private void assertNodesEqual(List<Node> l1, List<Node> l2) {
  assertEquals(l1, l2);
  for (int i = 0; i < l1.size(); i++) {
    Node n1 = l1.get(i);
    Node n2 = l2.get(i);
    assertEquals(n1.getExtraData(), n2.getExtraData());
    assertEquals(n1.getMetadataId(), n2.getMetadataId());
    assertEquals(n1.bounds(), n2.bounds());
  }
}

代码示例来源:origin: org.locationtech.geogig/geogig-cli-core

@SuppressWarnings("unchecked")
@Then("^the repository's \"([^\"]*)\" index should not track the extra attribute \"([^\"]*)\"$")
public void verifyIndexNotExtraAttributes(String headRef, String attributeName)
    throws Throwable {
  Repository repo = localRepo.geogigCLI.getGeogig().getRepository();
  Optional<ObjectId> indexTreeId = resolveIndexTreeId(headRef, null);
  assertTrue(indexTreeId.isPresent());
  RevTree indexTree = repo.indexDatabase().getTree(indexTreeId.get());
  Set<org.locationtech.geogig.model.Node> nodes = RevObjectTestSupport.getTreeNodes(indexTree,
      repo.indexDatabase());
  for (org.locationtech.geogig.model.Node n : nodes) {
    Map<String, Object> extraData = n.getExtraData();
    if (extraData.containsKey(IndexInfo.FEATURE_ATTRIBUTES_EXTRA_DATA)) {
      Map<String, Object> attributeData = (Map<String, Object>) extraData
          .get(IndexInfo.FEATURE_ATTRIBUTES_EXTRA_DATA);
      assertFalse(attributeData.containsKey(attributeName));
    }
  }
}

代码示例来源:origin: org.locationtech.geogig/geogig-cli

@SuppressWarnings("unchecked")
@Then("^the repository's \"([^\"]*)\" index should track the extra attribute \"([^\"]*)\"$")
public void verifyIndexExtraAttributes(String headRef, String attributeName) throws Throwable {
  Repository repo = localRepo.geogigCLI.getGeogig().getRepository();
  Optional<ObjectId> indexTreeId = resolveIndexTreeId(headRef, null);
  assertTrue(indexTreeId.isPresent());
  RevTree indexTree = repo.indexDatabase().getTree(indexTreeId.get());
  Set<org.locationtech.geogig.model.Node> nodes = RevObjectTestSupport.getTreeNodes(indexTree,
      repo.indexDatabase());
  for (org.locationtech.geogig.model.Node n : nodes) {
    Map<String, Object> extraData = n.getExtraData();
    assertTrue(extraData.containsKey(IndexInfo.FEATURE_ATTRIBUTES_EXTRA_DATA));
    Map<String, Object> attributeData = (Map<String, Object>) extraData
        .get(IndexInfo.FEATURE_ATTRIBUTES_EXTRA_DATA);
    assertTrue(attributeData.containsKey(attributeName));
  }
}

代码示例来源:origin: locationtech/geogig

@SuppressWarnings("unchecked")
@Then("^the repository's \"([^\"]*)\" index should track the extra attribute \"([^\"]*)\"$")
public void verifyIndexExtraAttributes(String headRef, String attributeName) throws Throwable {
  Repository repo = localRepo.geogigCLI.getGeogig().getRepository();
  Optional<ObjectId> indexTreeId = resolveIndexTreeId(headRef, null);
  assertTrue(indexTreeId.isPresent());
  RevTree indexTree = repo.indexDatabase().getTree(indexTreeId.get());
  Set<org.locationtech.geogig.model.Node> nodes = RevObjectTestSupport.getTreeNodes(indexTree,
      repo.indexDatabase());
  for (org.locationtech.geogig.model.Node n : nodes) {
    Map<String, Object> extraData = n.getExtraData();
    assertTrue(extraData.containsKey(IndexInfo.FEATURE_ATTRIBUTES_EXTRA_DATA));
    Map<String, Object> attributeData = (Map<String, Object>) extraData
        .get(IndexInfo.FEATURE_ATTRIBUTES_EXTRA_DATA);
    assertTrue(attributeData.containsKey(attributeName));
  }
}

代码示例来源:origin: locationtech/geogig

public static void assertEqualsFully(List<Node> expected, List<Node> actual) {
  assertEquals(expected.size(), actual.size());
  for (int i = 0; i < expected.size(); i++) {
    Node orig = expected.get(i);
    Node lazy = actual.get(i);
    assertEquals(orig.getName(), lazy.getName());
    assertEquals(orig.getObjectId(), lazy.getObjectId());
    assertEquals(orig.getType(), lazy.getType());
    assertEquals(orig.getMetadataId(), lazy.getMetadataId());
    assertEnvelope("at index " + i, orig.bounds().orNull(), lazy.bounds().orNull());
    Map<String, Object> expectedExtraData = orig.getExtraData();
    Map<String, Object> actualExtraData = lazy.getExtraData();
    assertEquals(expectedExtraData, actualExtraData);
    assertEquals(orig, lazy);
  }
}

代码示例来源:origin: locationtech/geogig

@Test
public void testLazyNodeGetExtaData() throws IOException {
  final Map<String, Object> expected = extraData(0);
  final Node originalNode = RevObjectFactory.defaultInstance().createNode("feature-0",
      RevObjectTestSupport.hashString("1"), ObjectId.NULL, TYPE.FEATURE, null, expected);
  NodeSet nodeset = encodedDecode(Collections.singletonList(originalNode), TYPE.FEATURE);
  Node lazyNode = nodeset.build().get(0);
  Map<String, Object> extraData = lazyNode.getExtraData();
  assertEquals(expected, extraData);
}

代码示例来源:origin: org.locationtech.geogig/geogig-core

public static void assertEqualsFully(List<Node> expected, List<Node> actual) {
  assertEquals(expected.size(), actual.size());
  for (int i = 0; i < expected.size(); i++) {
    Node orig = expected.get(i);
    Node lazy = actual.get(i);
    assertEquals(orig.getName(), lazy.getName());
    assertEquals(orig.getObjectId(), lazy.getObjectId());
    assertEquals(orig.getType(), lazy.getType());
    assertEquals(orig.getMetadataId(), lazy.getMetadataId());
    assertEnvelope("at index " + i, orig.bounds().orNull(), lazy.bounds().orNull());
    Map<String, Object> expectedExtraData = orig.getExtraData();
    Map<String, Object> actualExtraData = lazy.getExtraData();
    assertEquals(expectedExtraData, actualExtraData);
    assertEquals(orig, lazy);
  }
}

代码示例来源:origin: locationtech/geogig

@Test
public void testNodeAccessorsAndConstructors() {
  ObjectId oid = ObjectId.valueOf("abc123000000000000001234567890abcdef0000");
  Map<String, Object> extraData = new HashMap<String, Object>();
  extraData.put("key", "value");
  Node node = RevObjectFactory.defaultInstance().createNode("Points", oid, ObjectId.NULL,
      TYPE.TREE, null, extraData);
  assertEquals(Optional.absent(), node.getMetadataId());
  assertEquals("Points", node.getName());
  assertEquals(oid, node.getObjectId());
  assertEquals(TYPE.TREE, node.getType());
  assertEquals(extraData, node.getExtraData());
}

代码示例来源:origin: locationtech/geogig

public static void deepEquals(@NonNull Node expected, @NonNull Node actual) {
  assertEquals(expected.getName(), actual.getName());
  assertEquals(expected.getObjectId(), actual.getObjectId());
  assertEquals(expected.getType(), actual.getType());
  assertNotNull(expected.getMetadataId());
  assertNotNull(actual.getMetadataId());
  assertEquals(expected.getMetadataId().orNull(), actual.getMetadataId().orNull());
  assertNotNull(expected.bounds());
  assertNotNull(actual.bounds());
  equalsPrecise(expected.bounds().orNull(), actual.bounds().orNull());
  Map<String, Object> expectedExtraData = expected.getExtraData();
  Map<String, Object> actualExtraData = actual.getExtraData();
  assertNotNull(expectedExtraData);
  assertNotNull(actualExtraData);
  assertDeepEquals(expectedExtraData, actualExtraData);
}

相关文章