use of org.apache.asterix.external.library.java.JObjects.JRecord in project asterixdb by apache.
the class ParseTweetFunction method evaluate.
@Override
public void evaluate(IFunctionHelper functionHelper) throws Exception {
list.clear();
JRecord inputRecord = (JRecord) functionHelper.getArgument(0);
JString id = (JString) inputRecord.getValueByName("id");
JString text = (JString) inputRecord.getValueByName("text");
String[] tokens = text.getValue().split(" ");
for (String tk : tokens) {
if (tk.startsWith("#")) {
JString newField = (JString) functionHelper.getObject(JTypeTag.STRING);
newField.setValue(tk);
list.add(newField);
}
}
JRecord result = (JRecord) functionHelper.getResultObject();
result.setField("id", id);
result.setField("username", inputRecord.getValueByName("username"));
result.setField("location", inputRecord.getValueByName("location"));
result.setField("text", text);
result.setField("timestamp", inputRecord.getValueByName("timestamp"));
result.setField("topics", list);
functionHelper.setResult(result);
}
use of org.apache.asterix.external.library.java.JObjects.JRecord in project asterixdb by apache.
the class EchoDelayFunction method evaluate.
@Override
public void evaluate(IFunctionHelper functionHelper) throws Exception {
JRecord inputRecord = (JRecord) functionHelper.getArgument(0);
long sleepInterval = rand.nextInt(range);
Thread.sleep(sleepInterval);
functionHelper.setResult(inputRecord);
}
use of org.apache.asterix.external.library.java.JObjects.JRecord in project asterixdb by apache.
the class JTypeObjectFactory method create.
@Override
public IJObject create(IAType type) {
IJObject retValue = null;
switch(type.getTypeTag()) {
case INTEGER:
retValue = new JInt(0);
break;
case STRING:
retValue = new JString("");
break;
case FLOAT:
retValue = new JFloat(0);
break;
case DOUBLE:
retValue = new JDouble(0);
break;
case BOOLEAN:
retValue = new JBoolean(false);
break;
case CIRCLE:
retValue = new JCircle(new JPoint(0, 0), 0);
break;
case POINT:
retValue = new JPoint(0, 0);
break;
case POINT3D:
retValue = new JPoint3D(0, 0, 0);
break;
case POLYGON:
retValue = new JPolygon(new JPoint[] {});
break;
case LINE:
retValue = new JLine(new JPoint(0, 0), new JPoint(0, 0));
break;
case RECTANGLE:
retValue = new JRectangle(new JPoint(0, 0), new JPoint(1, 1));
break;
case DATE:
retValue = new JDate(0);
break;
case DATETIME:
retValue = new JDateTime(0);
break;
case DURATION:
retValue = new JDuration(0, 0);
break;
case INTERVAL:
retValue = new JInterval(0, 0);
break;
case TIME:
retValue = new JTime(0);
break;
case BIGINT:
retValue = new JLong(0);
break;
case NULL:
retValue = JObjects.JNull.INSTANCE;
break;
case MISSING:
retValue = JObjects.JMissing.INSTANCE;
break;
case ARRAY:
AOrderedListType ot = (AOrderedListType) type;
IAType orderedItemType = ot.getItemType();
IJObject orderedItemObject = create(orderedItemType);
retValue = new JOrderedList(orderedItemObject);
break;
case MULTISET:
AUnorderedListType ut = (AUnorderedListType) type;
IAType unorderedItemType = ut.getItemType();
IJObject unorderedItemObject = create(unorderedItemType);
retValue = new JUnorderedList(unorderedItemObject);
break;
case OBJECT:
IAType[] fieldTypes = ((ARecordType) type).getFieldTypes();
IJObject[] fieldObjects = new IJObject[fieldTypes.length];
int index = 0;
for (IAType fieldType : fieldTypes) {
fieldObjects[index] = create(fieldType);
index++;
}
retValue = new JRecord((ARecordType) type, fieldObjects);
break;
case UNION:
AUnionType unionType = (AUnionType) type;
IJObject itemObject = null;
if (unionType.isMissableType()) {
itemObject = create(unionType);
}
retValue = itemObject;
break;
default:
break;
}
return retValue;
}
use of org.apache.asterix.external.library.java.JObjects.JRecord in project asterixdb by apache.
the class UpperCaseFunction method evaluate.
@Override
public void evaluate(IFunctionHelper functionHelper) throws Exception {
JRecord inputRecord = (JRecord) functionHelper.getArgument(0);
JInt id = (JInt) inputRecord.getValueByName("id");
// for maintaining uniqueness
id.setValue(id.getValue() * -1);
// constraint in the case when
// output is re-inserted into source
// dataset
JString text = (JString) inputRecord.getValueByName("text");
text.setValue(text.getValue().toUpperCase());
JRecord result = (JRecord) functionHelper.getResultObject();
result.setField("id", id);
result.setField("text", text);
functionHelper.setResult(result);
}
Aggregations