import org.zephyr.data.Record; //导入依赖的package包/类

/**

* This method takes in a List of orderedPairings (key:value pairs). It creates a new Record with a new UUID, then iterates over the list of Pair items.

*

* If the Pair item currently operated upon can be normalized and validated as per the Scheme for that pair.getKey() successfully, it is added to the Record

* and the pair.getKey() is added to the normalizedAndValidatedFields Set - this set keeps track of all the fields that have been successfully normalized, validated, mapped, and security labeled.

*

* After all Pairs have been mapped according to their scheme, we then check the normalizedAndValidatedFields Set against the requiredFields set - unless all requiredFields have been successfully operated over,

* we throw a SchemeException. If all have been operated over successfully, we return the Record.

*

* @param orderedPairings

* @return

* @throws SchemeException

*/

public ProcessingResult> map(List orderedPairings) {

Set normalizedAndValidatedFields = new TreeSet();

Record record = new Record();

record.setFeedName(getFeedName());

for (Pair pair : orderedPairings) {

try {

List> results = normalizeAndValidate(pair);

for (ProcessingResult result : results) {

if (result.wasProcessedSuccessfully()) {

normalizedAndValidatedFields.add(pair.getKey());

record.add(result.getProcessedData());

} else {

logger.debug("A SchemeException error occurred when processing: {}", pair, result.getError());

}

}

} catch (SchemeException e) {

logger.debug("A SchemeException error occurred when processing: {}", pair, e);

}

}

Set requiredFields = getRequiredFields();

if (requiredFields != null) {

if (normalizedAndValidatedFields.containsAll(requiredFields)) {

return new ProcessingResult>(record);

} else {

Set missingRequiredFields = new TreeSet(requiredFields);

missingRequiredFields.removeAll(normalizedAndValidatedFields);

StringBuilder builder = new StringBuilder();

for (String missing : missingRequiredFields) {

builder.append(missing);

builder.append(",");

}

String error = builder.substring(0, builder.length() - 1);

return new ProcessingResult>(orderedPairings, new SchemeException("Of the required fields for this Schema, the following were unsuccessfully normalized or validated: " + error));

}

} else {

return new ProcessingResult>(record);

}

}

record java_Java Record类代码示例相关推荐

  1. ushort java_Java UShort类代码示例

    import org.joou.UShort; //导入依赖的package包/类 @Nullable @RequiredReadAction public static DotNetTypeRef ...

  2. mimemessage类是什么_Java MimeMessage类代码示例

    本文整理汇总了Java中javax.mail.internet.MimeMessage类的典型用法代码示例.如果您正苦于以下问题:Java MimeMessage类的具体用法?Java MimeMes ...

  3. java代码查询索引文件实例_关于使用pdfbox的对PDF文件通过lucene生成索引文件IndexPDFFiles类代码示例...

    一.前言 下面通过pdfbox的pdfbox-2.0.9源码中org.apache.pdfbox.examples.lucene.IndexPDFFiles索引PDF文件生成类,基于apache的lu ...

  4. JAVA WEB之XSS防御工具类代码示例

    简述 人们经常将跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆.因此,有人将跨站脚本攻击缩写 ...

  5. 自定义数组操作工具类代码示例

    自定义一个操作数据的工具类,其实工具类的编写很简单,将方法静态化,将构造方法私有化就可以了. 工具类代码: class MyArrays{private MyArrays() {}/** 返回数组中最 ...

  6. Java axis 配置host_Java AxisProperties类代码示例

    import org.apache.axis.AxisProperties; //导入依赖的package包/类 private StringBuilder getDefaultClasspath() ...

  7. java中utilities类_Java PHUtilities类代码示例

    import com.philips.lighting.hue.sdk.utilities.PHUtilities; //导入依赖的package包/类 private void setLampSta ...

  8. java dataconvert_Java DateConverter类代码示例

    import org.apache.commons.beanutils.converters.DateConverter; //导入依赖的package包/类 /** * Register array ...

  9. java code viewer_Java CodeView类代码示例

    import io.github.kbiakov.codeview.CodeView; //导入依赖的package包/类 public void setToken(List tokens, List ...

最新文章

  1. sklearn输出模型参数_如何使用sklearn优雅地进行数据挖掘?
  2. Eclipse生成jar包
  3. mysql 日期格式
  4. Ubuntu构建ARM交叉编译器
  5. 软件项目设计文档分类
  6. rust自创服务器_萌新教大家搭建Rust服务器(局域网和公网)
  7. 数据归一化及两种常用归一化方法
  8. 试题 算法训练 逗志芃的危机 (Java实现 通俗易懂)
  9. 科研化的稀土掺杂上转换纳米材料BaGdF5:Yb3+/Er3+的应用
  10. 长庆油田嬗变记:“骑着毛驴”踏上“信息高速路”
  11. 迪博·中国上市公司内部控制指数(2000-2020年)
  12. Jar包安装成系统服务-开机自启动
  13. js求解斐波拉契数列
  14. 第八章-磁盘存储器管理(SWUST操作系统期末复习试题)
  15. 数据结构C语言版字符串,数据结构c语言版
  16. 对OpenStack运维架构的总结(转)
  17. 学校WiFi覆盖解决方案——时讯无线
  18. Joomla模块位置教程
  19. h5移动端滑动内容置顶
  20. TLS/SSL加解密详解(一)

热门文章

  1. CFA一级学习笔记--权益(二)--头寸与杠杆
  2. 扬帆牧哲:跨境电商还有未来吗?
  3. TS报错:TS2532: Object is possibly ‘undefined‘.
  4. 疯狂值班表(人员跟日期生成的视图)
  5. 工业互联网与制造控制生产网络学习总结
  6. [Kaggle Classify-Leaves] 树叶分类 score0.950
  7. [转载]ExtJs4 笔记(4) Ext.XTemplate 模板
  8. 【C语言/C++学习】初识C语言(三)
  9. select2如何清除选择项
  10. # 互信息最大化[视角统一]:Align before Fuse: Vision Language Representation Learning with Momentum Distillation