<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: read source code by using ADT SDK in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/read-source-code-by-using-adt-sdk/m-p/11363102#M1922358</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found it by myself.&lt;/P&gt;&lt;P&gt;Using this coding I get access to InputStream:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IWorkspace workspace = ResourcesPlugin.getWorkspace();&lt;/P&gt;&lt;P&gt;IWorkspaceRoot root = workspace.getRoot();&lt;/P&gt;&lt;P&gt;IProject project&amp;nbsp; = root.getProject("my_project");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IFolder folder = project.getFolder(".adt").getFolder("programs").getFolder("programs").getFolder("zsd_0010");&lt;/P&gt;&lt;P&gt;IFile file = folder.getFile("zsd_0010.asprog");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//download to semantic file system&lt;/P&gt;&lt;P&gt;IAdtSfsUtil sfs = AdtSfsUtilFactory.createAdtSfsUtil();&lt;/P&gt;&lt;P&gt;sfs.synchronizeDevelopmentObject(file, false, null);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//open stream&lt;/P&gt;&lt;P&gt;InputStream is = file.getContents();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;Peter&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 26 Sep 2015 13:52:17 GMT</pubDate>
    <dc:creator>former_member356497</dc:creator>
    <dc:date>2015-09-26T13:52:17Z</dc:date>
    <item>
      <title>read source code by using ADT SDK</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/read-source-code-by-using-adt-sdk/m-p/11363101#M1922357</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am currently creating an ADT plugin for eclipse.&lt;/P&gt;&lt;P&gt;My aim is to read abap source code of current frame program / class, parse it and display some extracts in my own view.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But how can I read source code via ADT SDK?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Maybe I can use &lt;A target="classFrame" title="class in com.sap.adt.tools.abapsource.sourcefileretrieval"&gt;AdtSourceFileRetrievalServiceFactory&lt;/A&gt;/&lt;SPAN class="typeNameLabel"&gt;IAdtSourceFileRetrievalService, but I have to pass IFile. How do I get IFile when all I have is program name?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="typeNameLabel"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="typeNameLabel"&gt;Are there any existing code samples / template projects?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="typeNameLabel"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="typeNameLabel"&gt;Any hints appreciated.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="typeNameLabel"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="typeNameLabel"&gt;Thank you&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="typeNameLabel"&gt;Peter&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: Peter Herweg&#xD;
&#xD;
P. S.:&#xD;
Of course I can read content of current editor (see below).&#xD;
But when coding contains INCLUDEs, I have to read content of these includes additionally. &#xD;
&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public Object execute(ExecutionEvent event) throws ExecutionException {&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IWorkbenchWindow window = HandlerUtil&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .getActiveWorkbenchWindowChecked(event);&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEditorPart editorPart = window.getActivePage().getActiveEditor();&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ITextEditor editor = (ITextEditor) editorPart&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .getAdapter(ITextEditor.class);&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (editor != null) {&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IDocumentProvider provider = editor.getDocumentProvider();&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IDocument document = provider.getDocument(editor.getEditorInput());&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String code = document.get();&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; code = AbapSource.getCleanCode(code);&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.set(code);&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception ex) {&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TODO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (java.lang.Exception ex) {&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TODO&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&#xD;
&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Sep 2015 14:35:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/read-source-code-by-using-adt-sdk/m-p/11363101#M1922357</guid>
      <dc:creator>former_member356497</dc:creator>
      <dc:date>2015-09-25T14:35:15Z</dc:date>
    </item>
    <item>
      <title>Re: read source code by using ADT SDK</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/read-source-code-by-using-adt-sdk/m-p/11363102#M1922358</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found it by myself.&lt;/P&gt;&lt;P&gt;Using this coding I get access to InputStream:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IWorkspace workspace = ResourcesPlugin.getWorkspace();&lt;/P&gt;&lt;P&gt;IWorkspaceRoot root = workspace.getRoot();&lt;/P&gt;&lt;P&gt;IProject project&amp;nbsp; = root.getProject("my_project");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IFolder folder = project.getFolder(".adt").getFolder("programs").getFolder("programs").getFolder("zsd_0010");&lt;/P&gt;&lt;P&gt;IFile file = folder.getFile("zsd_0010.asprog");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//download to semantic file system&lt;/P&gt;&lt;P&gt;IAdtSfsUtil sfs = AdtSfsUtilFactory.createAdtSfsUtil();&lt;/P&gt;&lt;P&gt;sfs.synchronizeDevelopmentObject(file, false, null);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//open stream&lt;/P&gt;&lt;P&gt;InputStream is = file.getContents();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;Peter&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 26 Sep 2015 13:52:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/read-source-code-by-using-adt-sdk/m-p/11363102#M1922358</guid>
      <dc:creator>former_member356497</dc:creator>
      <dc:date>2015-09-26T13:52:17Z</dc:date>
    </item>
  </channel>
</rss>

