diff --git a/plugins/language-support-cpp-java/anjuta-language-support-cpp-java.xml b/plugins/language-support-cpp-java/anjuta-language-support-cpp-java.xml
index e3680ac..aafd0b3 100644
--- a/plugins/language-support-cpp-java/anjuta-language-support-cpp-java.xml
+++ b/plugins/language-support-cpp-java/anjuta-language-support-cpp-java.xml
@@ -10,6 +10,7 @@
 	<popup name="PopupDocumentManager">
 		<separator name="separator1"/>
 		<menuitem name="Swap" action="ActionFileSwap" />
+		<menuitem name="CreateGetter" action="ActionCreateGetter" />
 		<separator name="separator2"/>
 	</popup>
 </ui>
diff --git a/plugins/language-support-cpp-java/plugin.c b/plugins/language-support-cpp-java/plugin.c
index 1d46d46..76c05dc 100644
--- a/plugins/language-support-cpp-java/plugin.c
+++ b/plugins/language-support-cpp-java/plugin.c
@@ -48,8 +48,10 @@
 
 /* Pixmaps */
 #define ANJUTA_PIXMAP_SWAP                "anjuta-swap"
+#define ANJUTA_PIXMAP_CREATE_GETTER       "anjuta-create-getter"
 #define ANJUTA_PIXMAP_AUTOINDENT          "anjuta-indent-auto"
 #define ANJUTA_STOCK_SWAP                 "anjuta-swap"
+#define ANJUTA_STOCK_CREATE_GETTER        "anjuta-create-getter"
 #define ANJUTA_STOCK_AUTOINDENT           "anjuta-indent"
 #define ANJUTA_STOCK_COMMENT              "anjuta-comment"
 
@@ -1184,6 +1186,94 @@ on_toggle_comment (GtkAction *action, gpointer data)
     ianjuta_document_end_undo_action (IANJUTA_DOCUMENT(editor), NULL);
 }
 
+static void
+on_create_getter  (GtkAction* action, gpointer data)
+{
+    CppJavaPlugin *lang_plugin = ANJUTA_PLUGIN_CPP_JAVA (data);
+    IAnjutaDocumentManager* docman =
+        anjuta_shell_get_interface (ANJUTA_PLUGIN(lang_plugin)->shell,
+                                    IAnjutaDocumentManager,
+                                    NULL);
+    if (!lang_plugin->current_editor || !docman)
+        return;
+
+    printf ("on_create_getter\n");
+    gchar *current_word;
+    gint line;
+    current_word = ianjuta_editor_get_current_word (lang_plugin->current_editor, NULL);
+    printf ("Current workd is: %s\n", current_word);
+
+    line = ianjuta_editor_get_lineno (lang_plugin->current_editor, NULL);
+    printf("Current line is: %d\n", line);
+
+    IAnjutaEditor *editor = lang_plugin->current_editor;
+
+    IAnjutaSymbolManager *symbol_manager =
+           anjuta_shell_get_interface (ANJUTA_PLUGIN (lang_plugin)->shell, IAnjutaSymbolManager, NULL);
+    IAnjutaSymbolQuery *query_scope;
+    printf("Preparing search query...\n");
+    query_scope = ianjuta_symbol_manager_create_query (symbol_manager,
+                                                          IANJUTA_SYMBOL_QUERY_SEARCH_SCOPE,
+                                                          IANJUTA_SYMBOL_QUERY_DB_PROJECT, NULL);
+    IAnjutaSymbolField fields[] = {IANJUTA_SYMBOL_FIELD_TYPE,
+                                   IANJUTA_SYMBOL_FIELD_NAME,
+                                   IANJUTA_SYMBOL_FIELD_TYPE_NAME};
+    ianjuta_symbol_query_set_fields (query_scope, 3, fields, NULL);
+    ianjuta_symbol_query_set_mode (query_scope, IANJUTA_SYMBOL_QUERY_MODE_SYNC, NULL);
+    printf("Search query ready!\n");
+    if (!query_scope)
+        return;
+
+    GFile *file = ianjuta_file_get_file (IANJUTA_FILE(editor), NULL);
+    gchar* path = g_file_get_path (file);
+
+    IAnjutaIterable *scope = ianjuta_symbol_query_search_scope (query_scope, path, line, NULL);
+    g_object_unref(query_scope);
+
+    if (!scope)
+        return;
+
+
+    gchar *scope_name;
+    scope_name = ianjuta_symbol_get_string (IANJUTA_SYMBOL(scope), IANJUTA_SYMBOL_FIELD_NAME, NULL);
+    printf("Scope name is: %s\n", scope_name);
+    gchar *type_name;
+    type_name = ianjuta_symbol_get_string (IANJUTA_SYMBOL(scope), IANJUTA_SYMBOL_FIELD_TYPE_NAME, NULL);
+    printf("type name is: %s\n", type_name);
+    gchar *type;
+    type = ianjuta_symbol_get_string (IANJUTA_SYMBOL(scope), IANJUTA_SYMBOL_FIELD_TYPE, NULL);
+    printf("type is: %s\n", type);
+
+    gchar *name = get_text_between (editor, "/* ANJUTA: Widgets declaration for ", ".ui - DO NOT REMOVE */");
+    printf("Name is: %s\n", name);
+    gchar *macro_string = get_text_between (editor, "/* ANJUTA: Macro ", " gets ");
+    printf("macro is: %s\n", macro_string);
+    gchar *prefix = g_strdup_printf ("/* ANJUTA: Macro %s gets ", macro_string);
+    gchar *struct_string = get_text_between(editor, prefix, " - DO NOT REMOVE */");
+    g_free (prefix);
+    printf("struct_string is: %s\n", struct_string);
+
+    printf("Getter method:\n");
+    printf("%s\n%s_get_%s (%s *self){\n\t%sPrivate *priv = self->priv;\n\treturn priv->%s;\n}", type_name, name, scope_name, struct_string, struct_string, scope_name);
+    gchar *function = g_strdup_printf("\n%s\n%s_get_%s (%s *self)\n{\n\t%sPrivate *priv = self->priv;\n\treturn priv->%s;\n}\n", type_name, name, scope_name, struct_string, struct_string, scope_name);
+
+    g_free(name);
+    g_free(struct_string);
+    g_free(macro_string);
+
+    ianjuta_document_begin_undo_action (IANJUTA_DOCUMENT(editor), NULL);
+    ianjuta_editor_insert (editor, ianjuta_editor_get_end_position (editor, NULL),
+                           function, -1, NULL);
+	ianjuta_document_end_undo_action (IANJUTA_DOCUMENT(editor), NULL);
+	g_free(function);
+
+    printf("Unreffing scope...\n");
+    g_object_unref(scope);
+
+    printf("Done!\n");
+
+}
+
 /* Plugin */
 
 static GtkActionEntry actions[] = {
@@ -1204,6 +1294,12 @@ static GtkActionEntry actions[] = {
         N_("Swap .h/.c"), NULL,
         N_("Swap C header and source files"),
         G_CALLBACK (on_swap_activate)
+    },
+    {   "ActionCreateGetter",
+        ANJUTA_STOCK_CREATE_GETTER,
+        N_("Create getter"), NULL,
+        N_("Create getter method for attributte"),
+        G_CALLBACK (on_create_getter)
     }
 };
 
@@ -1219,6 +1315,7 @@ register_stock_icons (AnjutaPlugin *plugin)
     /* Register stock icons */
     BEGIN_REGISTER_ICON (plugin);
     REGISTER_ICON_FULL (ANJUTA_PIXMAP_SWAP, ANJUTA_STOCK_SWAP);
+    REGISTER_ICON_FULL (ANJUTA_PIXMAP_CREATE_GETTER, ANJUTA_STOCK_CREATE_GETTER);
     REGISTER_ICON_FULL (ANJUTA_PIXMAP_AUTOINDENT, ANJUTA_STOCK_AUTOINDENT);
     END_REGISTER_ICON;
 }
