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