32 template<
class ClassType>
43 this->
setInputIndex(0, -((input.getExactTypeInfoValue() + 1)));
47 return std::string(
"self");
74 std::map<std::string, std::string>
getInfo()
override {
77 return std::map<std::string, std::string>{
84 TupleSpec &attsToIncludeInOutput)
override {
91 std::make_shared<TupleSetSetupMachine>(inputSchema, attsToIncludeInOutput);
94 std::vector<int> matches = myMachine->match(attsToOperateOn);
95 int whichAtt = matches[0];
98 int outAtt = attsToIncludeInOutput.
getAtts().size();
100 return std::make_shared<SimpleComputeExecutor>(
105 myMachine->setup(input, output);
108 std::vector<Handle<ClassType>> &inputColumn =
112 if (!output->hasColumn(outAtt)) {
113 std::vector<Ptr<ClassType>> *outputCol =
new std::vector<Ptr<ClassType>>;
114 output->addColumn(outAtt, outputCol,
true);
118 std::vector<Ptr<ClassType>> &outColumn = output->getColumn<
Ptr<ClassType>>(outAtt);
121 int numTuples = inputColumn.size();
122 outColumn.resize(numTuples);
123 for (
int i = 0; i < numTuples; i++) {
124 outColumn[i] = (ClassType *) &(*(inputColumn[i]));
ComputeExecutorPtr getExecutor(TupleSpec &inputSchema, TupleSpec &attsToOperateOn, TupleSpec &attsToIncludeInOutput) override
unsigned int getNumInputs() override
std::vector< std::string > & getAtts()
std::shared_ptr< TupleSetSetupMachine > TupleSetSetupMachinePtr
std::string getInputType()
SelfLambda(Handle< ClassType > &input)
std::shared_ptr< GenericLambdaObject > GenericLambdaObjectPtr
std::map< std::string, std::string > getInfo() override
std::shared_ptr< TupleSet > TupleSetPtr
std::string inputTypeName
std::shared_ptr< ComputeExecutor > ComputeExecutorPtr
int getNumChildren() override
GenericLambdaObjectPtr getChild(int which) override
std::string getTypeOfLambda() override
void setInputIndex(int i, unsigned int index)