コード例 #1
0
ファイル: CoGroupOperator.java プロジェクト: f-sander/flink
  @Override
  public DualInputSemanticProperties getSemanticProperties() {

    DualInputSemanticProperties props = super.getSemanticProperties();

    // offset semantic information by extracted key fields
    if (props != null
        && (this.keys1 instanceof SelectorFunctionKeys
            || this.keys2 instanceof SelectorFunctionKeys)) {

      int numFields1 = this.getInput1Type().getTotalFields();
      int numFields2 = this.getInput2Type().getTotalFields();
      int offset1 =
          (this.keys1 instanceof SelectorFunctionKeys)
              ? ((SelectorFunctionKeys<?, ?>) this.keys1).getKeyType().getTotalFields()
              : 0;
      int offset2 =
          (this.keys2 instanceof SelectorFunctionKeys)
              ? ((SelectorFunctionKeys<?, ?>) this.keys2).getKeyType().getTotalFields()
              : 0;

      props =
          SemanticPropUtil.addSourceFieldOffsets(props, numFields1, numFields2, offset1, offset2);
    }

    return props;
  }