private IASTEnumerator buildEnumConstantDeclaration(final EnumConstantDeclarationInfo enumConstantDeclaration) {
return f.newEnumerator(new NameInfo(enumConstantDeclaration.getName()).getName(), null);
}
private IASTDeclaration buildTypeDeclaration(final TypeDeclarationInfo typeDeclarationInfo) {
final ICPPASTCompositeTypeSpecifier compositeTypeSpecifier = f.newCompositeTypeSpecifier(ICPPASTCompositeTypeSpecifier.k_class, new NameInfo(typeDeclarationInfo.getName()).getName());
if (typeDeclarationInfo.getTypeDeclaration().getSuperclassType() != null) {
final TypeInfo typeInfo = new TypeInfo(typeDeclarationInfo.getTypeDeclaration().getSuperclassType(), this);
compositeTypeSpecifier.addBaseSpecifier(f.newBaseSpecifier(typeInfo.getName(), 0, false));
}
compositeTypeSpecifier.addDeclaration(f.newVisibilityLabel(ICPPASTVisibilityLabel.v_private));
for (final TypeDeclarationInfo subType : typeDeclarationInfo.subTypes()) {
if (subType.getModifiers().isPrivate) {
compositeTypeSpecifier.addDeclaration(buildTypeDeclaration(subType));
}
}
for (final FieldDeclarationInfo field : typeDeclarationInfo.fields()) {
if (field.getModifiers().isPrivate) {
compositeTypeSpecifier.addDeclaration(field.getDeclaration());
typeDeclarationInfo.orderedFields.add(field);
}
}
for (final MethodDeclarationInfo method : typeDeclarationInfo.methods()) {
if (method.getModifiers().isPrivate && !Converter.excludedJavaMethods.contains(method.getMethodDeclaration().getName().getIdentifier())) {
compositeTypeSpecifier.addDeclaration(method.getDeclaration());
}
}
compositeTypeSpecifier.addDeclaration(f.newVisibilityLabel(ICPPASTVisibilityLabel.v_protected));
for (final TypeDeclarationInfo subType : typeDeclarationInfo.subTypes()) {
if (subType.getModifiers().isProtected) {
compositeTypeSpecifier.addDeclaration(buildTypeDeclaration(subType));
}
}
for (final FieldDeclarationInfo field : typeDeclarationInfo.fields()) {
if (field.getModifiers().isProtected) {
compositeTypeSpecifier.addDeclaration(field.getDeclaration());
typeDeclarationInfo.orderedFields.add(field);
}
}
for (final MethodDeclarationInfo method : typeDeclarationInfo.methods()) {
if (method.getModifiers().isProtected && !Converter.excludedJavaMethods.contains(method.getMethodDeclaration().getName().getIdentifier())) {
compositeTypeSpecifier.addDeclaration(method.getDeclaration());
}
}
compositeTypeSpecifier.addDeclaration(f.newVisibilityLabel(ICPPASTVisibilityLabel.v_public));
for (final TypeDeclarationInfo subType : typeDeclarationInfo.subTypes()) {
if (subType.getModifiers().isPublic) {
compositeTypeSpecifier.addDeclaration(buildTypeDeclaration(subType));
}
}
for (final FieldDeclarationInfo field : typeDeclarationInfo.fields()) {
if (field.getModifiers().isPublic) {
compositeTypeSpecifier.addDeclaration(field.getDeclaration());
typeDeclarationInfo.orderedFields.add(field);
}
}
for (final MethodDeclarationInfo method : typeDeclarationInfo.methods()) {
if (method.getModifiers().isPublic && !Converter.excludedJavaMethods.contains(method.getMethodDeclaration().getName().getIdentifier())) {
compositeTypeSpecifier.addDeclaration(method.getDeclaration());
}
}
// Build includes
// for (final FieldDeclarationInfo field : typeDeclarationInfo.fields()) {