protected void _generate(SarlBehavior behavior, IExtraLanguageGeneratorContext context) {
final JvmDeclaredType jvmType = getJvmModelAssociations().getInferredType(behavior);
final PyAppendable appendable = createAppendable(jvmType, context);
final List<JvmTypeReference> superTypes;
if (behavior.getExtends() != null) {
superTypes = Collections.singletonList(behavior.getExtends());
} else {
superTypes = Collections.singletonList(getTypeReferences().getTypeForName(Behavior.class, behavior));
}
final String qualifiedName = this.qualifiedNameProvider.getFullyQualifiedName(behavior).toString();
if (generateTypeDeclaration(
qualifiedName,
behavior.getName(), behavior.isAbstract(), superTypes,
getTypeBuilder().getDocumentation(behavior),
true,
behavior.getMembers(), appendable, context, (it, context2) -> {
generateGuardEvaluators(qualifiedName, it, context2);
})) {
final QualifiedName name = getQualifiedNameProvider().getFullyQualifiedName(behavior);
writeFile(name, appendable, context);
}
}