<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.hyades.trace.ui">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.hyades.trace.ui" id="profilingTypes" name="profilingTypes"/>
      </appInfo>
      <documentation>
         This extension point is used to register profiling types.
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="profilingType" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  a fully qualified identifier of the target extension point
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  an optional name of the extension instance
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  an optional identifier of the extension instance
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="profilingType">
      <complexType>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  A translatable name which will be available in the UI and identify this profiling type
               </documentation>
            </annotation>
         </attribute>
         <attribute name="description" type="string">
            <annotation>
               <documentation>
                  A description for this profiling type.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="icon" type="string">
            <annotation>
               <documentation>
                  A relative name of the icon that will be used to describe this profiling type.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="group" type="string">
            <annotation>
               <documentation>
                  The profiling section where this profiling type will be available.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="className" type="string" use="required">
            <annotation>
               <documentation>
                  A name of the class that implements &lt;samp&gt;org.eclipse.hyades.trace.ui.launcher.IProfilingType&lt;/samp&gt;.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.hyades.trace.ui.launcher.IProfilingType"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="useFilters" type="boolean" use="required">
            <annotation>
               <documentation>
                  True if this profiling type uses filters as defined by the Hyades Remote Agent Controller framework.
When the value is false, the filters page is not available on this profiling type selection.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  The unique id of this profiling Type.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         Hyades 3.0
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         &lt;pre&gt;
   &lt;extension point=&quot;org.eclipse.hyades.trace.ui.profilingTypes&quot;  
         id=&quot;org.eclipse.hyades.defaultProfilingTypes&quot;
         name=&quot;defaultProfilingTypes&quot;&gt;
         &lt;profilingType
          name=&quot;Memory/Heap Analysis&quot;
          description = &quot;Memory/Heap Analysis description&quot;
          icon=&quot;icons/full/elcl16/suspend_co.gif&quot;
          level=&quot;Memory and Time&quot;
          className=&quot;org.eclipse.hyades.trace.ui.internal.launcher.defaults.MemoryHeapProfilingType&quot;
          useFilters=&quot;true&quot;&gt;
         &lt;/profilingType&gt;
         &lt;profilingType
          name=&quot;Execution Time Analysis&quot;
          description = &quot;Execution Time Analysis description&quot;
          icon=&quot;icons/full/elcl16/suspend_co.gif&quot;
          level=&quot;Memory and Time&quot;
          className=&quot;org.eclipse.hyades.trace.ui.internal.launcher.defaults.ExecutionTimeProfilingType&quot;
          useFilters=&quot;true&quot;&gt;
         &lt;/profilingType&gt;
          &lt;profilingType
          name=&quot;Method Code Coverage&quot;
          description = &quot;Method Code Coverage Description&quot;
          icon=&quot;icons/full/elcl16/suspend_co.gif&quot;
          level=&quot;Code Coverage&quot;
          className=&quot;org.eclipse.hyades.trace.ui.internal.launcher.defaults.MethodCodeCoverageProfilingType&quot;
          useFilters=&quot;false&quot;&gt;
         &lt;/profilingType&gt;
  &lt;/extension&gt;
&lt;/pre&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         All profiling type classes are instances of &lt;samp&gt;org.eclipse.haydes.trace.ui.launcher.IProfilingType&lt;/samp&gt;.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         The Hyades framework itself has a number of pre-defined profiling  types. Particular product installs may include additional profiling types as required. All attributes contributed by profiling types are merged with launch configuration options. Because of this, any extensions defining new launch configuration types are responsible for clearing all launch configuration options before writing any options to the launch configuration, to ensure that attributes are properly removed. This is most easily done at the tab group level, by overriding the performApply() method from the base tab group implementation.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2003 Hyades project.
All rights reserved. This program and the accompanying materials are made available under the terms of the Common Public License v1.0 which accompanies this distribution, and is available at &lt;a href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
      </documentation>
   </annotation>

</schema>
