public StatementCompileTimeServices(int statementNumber, ModuleCompileTimeServices services) { this.services = services; this.eventTypeNameGeneratorStatement = new EventTypeNameGeneratorStatement(statementNumber); }
public String getContextPropertyTypeName(String contextName) { return formatNV("ctx", contextName); }
public String getAnonymousTypeName() { return formatSingleConst("out"); }
public static EventType newType(String name, LinkedHashMap<String, Object> schemaMap, ViewForgeEnv env, int streamNum) { String outputEventTypeName = env.getStatementCompileTimeServices().getEventTypeNameGeneratorStatement().getViewDerived(name, streamNum); EventTypeMetadata metadata = new EventTypeMetadata(outputEventTypeName, env.getModuleName(), EventTypeTypeClass.VIEWDERIVED, EventTypeApplicationType.MAP, NameAccessModifier.TRANSIENT, EventTypeBusModifier.NONBUS, false, EventTypeIdPair.unassigned()); Map<String, Object> propertyTypes = EventTypeUtility.getPropertyTypesNonPrimitive(schemaMap); EventType resultEventType = BaseNestableEventUtil.makeMapTypeCompileTime(metadata, propertyTypes, null, null, null, null, env.getBeanEventTypeFactoryProtected(), env.getEventTypeCompileTimeResolver()); env.getEventTypeModuleCompileTimeRegistry().newType(resultEventType); return resultEventType; } }
measureTypeDef.put(variableMultiple, new EventType[]{parentEventType}); String compositeTypeName = services.getEventTypeNameGeneratorStatement().getAnonymousRowrecogCompositeName(); EventTypeMetadata compositeTypeMetadata = new EventTypeMetadata(compositeTypeName, base.getModuleName(), EventTypeTypeClass.MATCHRECOGDERIVED, EventTypeApplicationType.OBJECTARR, NameAccessModifier.TRANSIENT, EventTypeBusModifier.NONBUS, false, EventTypeIdPair.unassigned()); ObjectArrayEventType compositeEventType = BaseNestableEventUtil.makeOATypeCompileTime(compositeTypeMetadata, measureTypeDef, null, null, null, null, services.getBeanEventTypeFactoryPrivate(), services.getEventTypeCompileTimeResolver()); String rowTypeName = services.getEventTypeNameGeneratorStatement().getAnonymousRowrecogRowName(); EventTypeMetadata rowTypeMetadata = new EventTypeMetadata(rowTypeName, base.getModuleName(), EventTypeTypeClass.MATCHRECOGDERIVED, EventTypeApplicationType.MAP, NameAccessModifier.TRANSIENT, EventTypeBusModifier.NONBUS, false, EventTypeIdPair.unassigned()); MapEventType rowEventType = BaseNestableEventUtil.makeMapTypeCompileTime(rowTypeMetadata, rowTypeDef, null, null, null, null, services.getBeanEventTypeFactoryPrivate(), services.getEventTypeCompileTimeResolver());
private static EventType getDefineMultimatchEventType(LinkedHashMap<String, Pair<Integer, Boolean>> variableStreams, EventType parentEventType, StatementBaseInfo base, StatementCompileTimeServices services) { Map<String, Object> multievent = new LinkedHashMap<>(); for (Map.Entry<String, Pair<Integer, Boolean>> entry : variableStreams.entrySet()) { if (entry.getValue().getSecond()) { multievent.put(entry.getKey(), new EventType[]{parentEventType}); } } String multimatchAllTypeName = services.getEventTypeNameGeneratorStatement().getAnonymousRowrecogMultimatchAllName(); EventTypeMetadata multimatchAllTypeMetadata = new EventTypeMetadata(multimatchAllTypeName, base.getModuleName(), EventTypeTypeClass.MATCHRECOGDERIVED, EventTypeApplicationType.OBJECTARR, NameAccessModifier.TRANSIENT, EventTypeBusModifier.NONBUS, false, EventTypeIdPair.unassigned()); ObjectArrayEventType multimatchAllEventType = BaseNestableEventUtil.makeOATypeCompileTime(multimatchAllTypeMetadata, multievent, null, null, null, null, services.getBeanEventTypeFactoryPrivate(), services.getEventTypeCompileTimeResolver()); services.getEventTypeCompileTimeRegistry().newType(multimatchAllEventType); return multimatchAllEventType; }
private static StreamTypeService getStreamTypeService(Map<String, Pair<EventType, String>> taggedEventTypes, Map<String, Pair<EventType, String>> arrayEventTypes, EvalForgeNode forge, int streamNum, StatementRawInfo statementRawInfo, StatementCompileTimeServices services) { LinkedHashMap<String, Pair<EventType, String>> filterTypes = new LinkedHashMap<String, Pair<EventType, String>>(); filterTypes.putAll(taggedEventTypes); // handle array tags (match-until clause) if (arrayEventTypes != null) { String eventTypeName = services.getEventTypeNameGeneratorStatement().getAnonymousPatternName(streamNum, forge.getFactoryNodeId()); EventTypeMetadata metadata = new EventTypeMetadata(eventTypeName, statementRawInfo.getModuleName(), EventTypeTypeClass.PATTERNDERIVED, EventTypeApplicationType.MAP, NameAccessModifier.TRANSIENT, EventTypeBusModifier.NONBUS, false, EventTypeIdPair.unassigned()); Map<String, Object> mapProperties = getMapProperties(new HashMap(), arrayEventTypes); MapEventType mapEventType = BaseNestableEventUtil.makeMapTypeCompileTime(metadata, mapProperties, null, null, null, null, services.getBeanEventTypeFactoryPrivate(), services.getEventTypeCompileTimeResolver()); services.getEventTypeCompileTimeRegistry().newType(mapEventType); EventType arrayTagCompositeEventType = mapEventType; for (Map.Entry<String, Pair<EventType, String>> entry : arrayEventTypes.entrySet()) { String tag = entry.getKey(); if (!filterTypes.containsKey(tag)) { Pair<EventType, String> pair = new Pair<EventType, String>(arrayTagCompositeEventType, tag); filterTypes.put(tag, pair); } } } return new StreamTypeServiceImpl(filterTypes, true, false); }
String eventTypeName = services.getEventTypeNameGeneratorStatement().getAnonymousDBHistorical(streamNum); Function<EventTypeApplicationType, EventTypeMetadata> metadata = appType -> new EventTypeMetadata(eventTypeName, base.getModuleName(), EventTypeTypeClass.DBDERIVED, appType, NameAccessModifier.TRANSIENT, EventTypeBusModifier.NONBUS, false, EventTypeIdPair.unassigned()); if (outputRowConversionHook == null) {
String eventTypeName = services.getEventTypeNameGeneratorStatement().getAnonymousMethodHistorical(stream); return new EventTypeMetadata(eventTypeName, base.getModuleName(), EventTypeTypeClass.METHODPOLLDERIVED, apptype, NameAccessModifier.TRANSIENT, EventTypeBusModifier.NONBUS, false, EventTypeIdPair.unassigned()); };
specificArrayType.put(entry.getKey(), entry.getValue()); String eventTypeName = services.getEventTypeNameGeneratorStatement().getAnonymousPatternNameWTag(streamNum, evalNode.getFactoryNodeId(), entry.getKey()); Map<String, Object> mapProps = getMapProperties(Collections.emptyMap(), specificArrayType); EventTypeMetadata metadata = new EventTypeMetadata(eventTypeName, statementRawInfo.getModuleName(), EventTypeTypeClass.PATTERNDERIVED, EventTypeApplicationType.MAP, NameAccessModifier.TRANSIENT, EventTypeBusModifier.NONBUS, false, EventTypeIdPair.unassigned());
public void attach(EventType parentEventType, int streamNumber, ViewForgeEnv env) throws ViewParameterException { if (viewParameters.size() != 2) { throw new ViewParameterException("View requires a two parameters: the expression returning timestamps and the expression supplying OHLC data points"); } ExprNode[] validatedNodes = ViewForgeSupport.validate("OHLC view", parentEventType, viewParameters, false, env, streamNumber); timestampExpression = validatedNodes[0]; valueExpression = validatedNodes[1]; if ((timestampExpression.getForge().getEvaluationType() != long.class) && (timestampExpression.getForge().getEvaluationType() != Long.class)) { throw new ViewParameterException("View requires long-typed timestamp values in parameter 1"); } if ((valueExpression.getForge().getEvaluationType() != double.class) && (valueExpression.getForge().getEvaluationType() != Double.class)) { throw new ViewParameterException("View requires double-typed values for in parameter 2"); } /* * Allocate a custom event type for this example. This event type will be a Bean event type. */ // make event type name String outputEventTypeName = env.getStatementCompileTimeServices().getEventTypeNameGeneratorStatement().getViewDerived(getViewName(), streamNumber); // make event type metadata EventTypeMetadata metadata = new EventTypeMetadata(outputEventTypeName, env.getModuleName(), EventTypeTypeClass.VIEWDERIVED, EventTypeApplicationType.CLASS, NameAccessModifier.TRANSIENT, EventTypeBusModifier.NONBUS, false, EventTypeIdPair.unassigned()); // for Bean event types, make a stem BeanEventTypeStem stem = env.getStatementCompileTimeServices().getBeanEventTypeStemService().getCreateStem(OHLCBarValue.class, null); // make bean event type eventType = new BeanEventType(stem, metadata, env.getBeanEventTypeFactoryProtected(), null, null, null, null); // register bean type env.getEventTypeModuleCompileTimeRegistry().newType(eventType); }
public String getViewDerived(String name, int streamNum) { return formatNV("view", name + "(" + streamNum + ")"); }
public String getAnonymousRowrecogRowName() { return formatSingleConst("mrrow"); }
public String getContextStatementTypeName(String contextName) { return formatNV("ctxout", contextName); }
public String getAnonymousRowrecogCompositeName() { return formatSingleConst("mrcomp"); }
public String getAnonymousTypeNameUDFMethod(String methodName, String typeName) { return formatNV("mth", methodName + "(" + typeName + ")"); }
public String getAnonymousRowrecogMultimatchAllName() { return formatSingleConst("mrma"); }
public String getAnonymousPatternNameWTag(int streamNum, short factoryNodeId, String tag) { return formatNV("pwt", streamNum + "(" + factoryNodeId + "_" + tag + ")"); }
public String getAnonymousPatternName(int streamNum, short factoryNodeId) { return formatNV("pan", streamNum + "(" + factoryNodeId + ")"); }
public String getDataflowOperatorTypeName(int operatorNumber) { return formatNV("df", "op_" + operatorNumber); }