/** Check if the supertype of the given event is a subtype of Event. * * @param event the type to test. */ @Check(CheckType.FAST) public void checkSuperType(SarlEvent event) { checkSuperTypes( event, SARL_EVENT__EXTENDS, Utils.singletonList(event.getExtends()), Event.class, false); }
/** Generate the given object. * * @param event the event. * @param context the context. */ protected void _generate(SarlEvent event, IExtraLanguageGeneratorContext context) { final JvmDeclaredType jvmType = getJvmModelAssociations().getInferredType(event); final PyAppendable appendable = createAppendable(jvmType, context); final List<JvmTypeReference> superTypes; if (event.getExtends() != null) { superTypes = Collections.singletonList(event.getExtends()); } else { superTypes = Collections.singletonList(getTypeReferences().getTypeForName(Event.class, event)); } if (generateTypeDeclaration( this.qualifiedNameProvider.getFullyQualifiedName(event).toString(), event.getName(), event.isAbstract(), superTypes, getTypeBuilder().getDocumentation(event), true, event.getMembers(), appendable, context, null)) { final QualifiedName name = getQualifiedNameProvider().getFullyQualifiedName(event); writeFile(name, appendable, context); } }
/** Format the given SARL event. * * @param event the SARL component. * @param document the document. */ protected void _format(SarlEvent event, IFormattableDocument document) { formatAnnotations(event, document, XbaseFormatterPreferenceKeys.newLineAfterClassAnnotations); formatModifiers(event, document); final ISemanticRegionsFinder regionFor = this.textRegionExtensions.regionFor(event); document.append(regionFor.keyword(this.keywords.getEventKeyword()), ONE_SPACE); document.surround(regionFor.keyword(this.keywords.getExtendsKeyword()), ONE_SPACE); document.format(event.getExtends()); formatBody(event, document); }
@SuppressWarnings("all") @Override protected void generateTypeContent(ISourceAppender appender, IJvmTypeProvider typeProvider, String comment, IProgressMonitor monitor) throws Exception { final SubMonitor mon = SubMonitor.convert(monitor, 3); final ScriptSourceAppender scriptBuilder = this.codeBuilderFactory.buildScript( getPackageFragment().getElementName(), typeProvider); final ISarlEventBuilder event = scriptBuilder.addSarlEvent(getTypeName()); event.setExtends(getSuperClass()); event.setDocumentation(comment); mon.worked(1); if (event.getSarlEvent().getExtends() != null) { createInheritedMembers( Event.class.getCanonicalName(), event.getSarlEvent(), false, () -> event.addSarlConstructor(), null, getSuperClass()); } mon.worked(2); scriptBuilder.build(appender); mon.done(); }
appendConstrainedExtends(context, inferredJvmType, Event.class, SarlEvent.class, source.getExtends());