org.apache.gora.util.AvroUtils.deepClonePersistent()方法的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(4.1k)|赞(0)|评价(0)|浏览(58)

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

AvroUtils.deepClonePersistent介绍

[英]Utility method for deep clone a given AVRO persistent bean instance.
[中]

代码示例

代码示例来源:origin: org.apache.gora/gora-core

/**
 * Returns a clone with exactly the requested fields shallowly copied
 */
private static<T extends PersistentBase> T getPersistent(T obj, String[] fields) {
 List<Field> otherFields = obj.getSchema().getFields();
 String[] otherFieldStrings = new String[otherFields.size()];
 for(int i = 0; i<otherFields.size(); i++ ){
  otherFieldStrings[i] = otherFields.get(i).name();
 }
 if(Arrays.equals(fields, otherFieldStrings)) { 
  return obj;
 }
 T newObj = AvroUtils.deepClonePersistent(obj);
 newObj.clear();
 for (String field : fields) {
  Field otherField = obj.getSchema().getField(field);
  int index = otherField.pos();
  newObj.put(index, obj.get(index));
 }
 return newObj;
}

代码示例来源:origin: apache/gora

/**
 * Returns a clone with exactly the requested fields shallowly copied
 */
private static<T extends PersistentBase> T getPersistent(T obj, String[] fields) {
 List<Field> otherFields = obj.getSchema().getFields();
 String[] otherFieldStrings = new String[otherFields.size()];
 for(int i = 0; i<otherFields.size(); i++ ){
  otherFieldStrings[i] = otherFields.get(i).name();
 }
 if(Arrays.equals(fields, otherFieldStrings)) { 
  return obj;
 }
 T newObj = AvroUtils.deepClonePersistent(obj);
 newObj.clear();
 for (String field : fields) {
  Field otherField = obj.getSchema().getField(field);
  int index = otherField.pos();
  newObj.put(index, obj.get(index));
 }
 return newObj;
}

代码示例来源:origin: org.apache.gora/gora-jcache

private static <T extends PersistentBase> T getPersistent(T persitent, String[] fields) {
 List<Schema.Field> otherFields = persitent.getSchema().getFields();
 String[] otherFieldStrings = new String[otherFields.size()];
 for (int i = 0; i < otherFields.size(); i++) {
  otherFieldStrings[i] = otherFields.get(i).name();
 }
 if (Arrays.equals(fields, otherFieldStrings)) {
  return persitent;
 }
 T clonedPersistent = AvroUtils.deepClonePersistent(persitent);
 clonedPersistent.clear();
 if (fields != null && fields.length > 0) {
  for (String field : fields) {
   Schema.Field otherField = persitent.getSchema().getField(field);
   int index = otherField.pos();
   clonedPersistent.put(index, persitent.get(index));
  }
 } else {
  for (String field : otherFieldStrings) {
   Schema.Field otherField = persitent.getSchema().getField(field);
   int index = otherField.pos();
   clonedPersistent.put(index, persitent.get(index));
  }
 }
 return clonedPersistent;
}

代码示例来源:origin: apache/gora

private static <T extends PersistentBase> T getPersistent(T persitent, String[] fields) {
 List<Schema.Field> otherFields = persitent.getSchema().getFields();
 String[] otherFieldStrings = new String[otherFields.size()];
 for (int i = 0; i < otherFields.size(); i++) {
  otherFieldStrings[i] = otherFields.get(i).name();
 }
 if (Arrays.equals(fields, otherFieldStrings)) {
  return persitent;
 }
 T clonedPersistent = AvroUtils.deepClonePersistent(persitent);
 clonedPersistent.clear();
 if (fields != null && fields.length > 0) {
  for (String field : fields) {
   Schema.Field otherField = persitent.getSchema().getField(field);
   int index = otherField.pos();
   clonedPersistent.put(index, persitent.get(index));
  }
 } else {
  for (String field : otherFieldStrings) {
   Schema.Field otherField = persitent.getSchema().getField(field);
   int index = otherField.pos();
   clonedPersistent.put(index, persitent.get(index));
  }
 }
 return clonedPersistent;
}

代码示例来源:origin: apache/gora

@Test
public void testDeepClonePersistent() throws Exception {
  CharSequence url = new Utf8("http://gora.apache.org/");
  WebPage.Builder builder = WebPage.newBuilder()
    .setUrl(url)
    .setContent(ByteBuffer.wrap("Gora".getBytes("UTF-8")));
  WebPage webPage = builder.build();
  WebPage clonedWebPage = AvroUtils.deepClonePersistent(webPage);
  assertThat(clonedWebPage, is(notNullValue()));
  assertThat(clonedWebPage.getUrl(), is(equalTo(url)));
  assertThat(clonedWebPage.getContent(), is(notNullValue()));
  String clonedWebPageContent = new String(clonedWebPage.getContent().array(), "UTF-8");
  assertThat(clonedWebPageContent, is(equalTo("Gora")));
}

相关文章

微信公众号

最新文章

更多