<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.5) on Tue Jan 21 20:13:53 EST 2020 -->
<title>SyncConfigManager (PTP API Specification)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="dc.created" content="2020-01-21">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../../jquery/jquery-3.4.1.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="SyncConfigManager (PTP API Specification)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SyncConfigManager.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>PTP</b><br>Release 7.0</div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.ptp.rdt.sync.core</a></div>
<h2 title="Class SyncConfigManager" class="title">Class SyncConfigManager</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.eclipse.ptp.rdt.sync.core.SyncConfigManager</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public class <span class="typeNameLabel">SyncConfigManager</span>
extends java.lang.Object</pre>
<div class="block">Main class for managing sync configurations</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addConfig(org.eclipse.core.resources.IProject,org.eclipse.ptp.rdt.sync.core.SyncConfig)">addConfig</a></span>&#8203;(org.eclipse.core.resources.IProject&nbsp;project,
         <a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;config)</code></th>
<td class="colLast">
<div class="block">Add a new sync configuration to the project</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addSyncConfigListener(java.lang.String,org.eclipse.ptp.rdt.sync.core.listeners.ISyncConfigListener)">addSyncConfigListener</a></span>&#8203;(java.lang.String&nbsp;natureId,
                     <a href="listeners/ISyncConfigListener.html" title="interface in org.eclipse.ptp.rdt.sync.core.listeners">ISyncConfigListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Register to receive sync configuration events.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getActive(org.eclipse.core.resources.IProject)">getActive</a></span>&#8203;(org.eclipse.core.resources.IProject&nbsp;project)</code></th>
<td class="colLast">
<div class="block">Get the active configuration for the project.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static java.net.URI</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getActiveSyncLocationURI(org.eclipse.core.resources.IResource)">getActiveSyncLocationURI</a></span>&#8203;(org.eclipse.core.resources.IResource&nbsp;resource)</code></th>
<td class="colLast">
<div class="block">Get the synchronize location URI of the resource associated with the active sync configuration.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static <a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfig(org.eclipse.core.resources.IProject,java.lang.String)">getConfig</a></span>&#8203;(org.eclipse.core.resources.IProject&nbsp;project,
         java.lang.String&nbsp;name)</code></th>
<td class="colLast">
<div class="block">Find a configuration by name</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static <a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfigs(org.eclipse.core.resources.IProject)">getConfigs</a></span>&#8203;(org.eclipse.core.resources.IProject&nbsp;project)</code></th>
<td class="colLast">
<div class="block">Get the sync configurations associated with the project</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static <a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLocalConfig(java.lang.String)">getLocalConfig</a></span>&#8203;(java.lang.String&nbsp;syncServiceId)</code></th>
<td class="colLast">
<div class="block">Get a local sync config, really a config that does no sync'ing, for when the user wants to just work locally.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLocalConfigName()">getLocalConfigName</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the name of the local sync config</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static java.net.URI</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSyncLocationURI(org.eclipse.ptp.rdt.sync.core.SyncConfig,org.eclipse.core.resources.IResource)">getSyncLocationURI</a></span>&#8203;(<a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;config,
                  org.eclipse.core.resources.IResource&nbsp;resource)</code></th>
<td class="colLast">
<div class="block">Get the synchronize location URI of the resource associated with the sync configuration.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isActive(org.eclipse.core.resources.IProject,org.eclipse.ptp.rdt.sync.core.SyncConfig)">isActive</a></span>&#8203;(org.eclipse.core.resources.IProject&nbsp;project,
        <a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;config)</code></th>
<td class="colLast">
<div class="block">Check if this config is active for the project.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLocal(org.eclipse.ptp.rdt.sync.core.SyncConfig)">isLocal</a></span>&#8203;(<a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;config)</code></th>
<td class="colLast">
<div class="block">Return whether the config is local (no sync'ing is done)
 This definition must agree with how local configs are created in <a href="#getLocalConfig(java.lang.String)"><code>getLocalConfig(String)</code></a>.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRemote(org.eclipse.ptp.rdt.sync.core.SyncConfig)">isRemote</a></span>&#8203;(<a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;config)</code></th>
<td class="colLast">
<div class="block">Return whether the config is remote (sync'ing is done)</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static <a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newConfig(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">newConfig</a></span>&#8203;(java.lang.String&nbsp;name,
         java.lang.String&nbsp;providerId,
         java.lang.String&nbsp;remoteServicesId,
         java.lang.String&nbsp;connName,
         java.lang.String&nbsp;location)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static <a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newConfig(java.lang.String,java.lang.String,org.eclipse.remote.core.IRemoteConnection,java.lang.String)">newConfig</a></span>&#8203;(java.lang.String&nbsp;name,
         java.lang.String&nbsp;providerId,
         org.eclipse.remote.core.IRemoteConnection&nbsp;conn,
         java.lang.String&nbsp;location)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeConfig(org.eclipse.core.resources.IProject,org.eclipse.ptp.rdt.sync.core.SyncConfig)">removeConfig</a></span>&#8203;(org.eclipse.core.resources.IProject&nbsp;project,
            <a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;config)</code></th>
<td class="colLast">
<div class="block">Remove the sync configuration from the project.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeSyncConfigListener(java.lang.String,org.eclipse.ptp.rdt.sync.core.listeners.ISyncConfigListener)">removeSyncConfigListener</a></span>&#8203;(java.lang.String&nbsp;natureId,
                        <a href="listeners/ISyncConfigListener.html" title="interface in org.eclipse.ptp.rdt.sync.core.listeners">ISyncConfigListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Remove the listener for sync config events</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#saveConfigs(org.eclipse.core.resources.IProject)">saveConfigs</a></span>&#8203;(org.eclipse.core.resources.IProject&nbsp;project)</code></th>
<td class="colLast">
<div class="block">Save the current configurations for the project.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setActive(org.eclipse.core.resources.IProject,org.eclipse.ptp.rdt.sync.core.SyncConfig)">setActive</a></span>&#8203;(org.eclipse.core.resources.IProject&nbsp;project,
         <a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;config)</code></th>
<td class="colLast">
<div class="block">Set the active sync configuration for the project.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#updateConfigs(org.eclipse.core.resources.IProject,org.eclipse.ptp.rdt.sync.core.SyncConfig%5B%5D,org.eclipse.ptp.rdt.sync.core.SyncConfig%5B%5D)">updateConfigs</a></span>&#8203;(org.eclipse.core.resources.IProject&nbsp;project,
             <a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>[]&nbsp;addedConfigs,
             <a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>[]&nbsp;removedConfigs)</code></th>
<td class="colLast">
<div class="block">Batch update configurations for the project</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a id="addConfig(org.eclipse.core.resources.IProject,org.eclipse.ptp.rdt.sync.core.SyncConfig)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addConfig</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;addConfig&#8203;(org.eclipse.core.resources.IProject&nbsp;project,
                             <a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;config)</pre>
<div class="block">Add a new sync configuration to the project</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>project</code> - project</dd>
<dd><code>config</code> - sync configuration to add to the project</dd>
</dl>
</li>
</ul>
<a id="addSyncConfigListener(java.lang.String,org.eclipse.ptp.rdt.sync.core.listeners.ISyncConfigListener)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addSyncConfigListener</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;addSyncConfigListener&#8203;(java.lang.String&nbsp;natureId,
                                         <a href="listeners/ISyncConfigListener.html" title="interface in org.eclipse.ptp.rdt.sync.core.listeners">ISyncConfigListener</a>&nbsp;listener)</pre>
<div class="block">Register to receive sync configuration events.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>natureId</code> - project nature ID of projects to notify of changes</dd>
<dd><code>listener</code> - listener to receive events</dd>
</dl>
</li>
</ul>
<a id="getActive(org.eclipse.core.resources.IProject)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getActive</h4>
<pre class="methodSignature">public static&nbsp;<a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;getActive&#8203;(org.eclipse.core.resources.IProject&nbsp;project)</pre>
<div class="block">Get the active configuration for the project. There is always at least one active configuration for every project. Returns
 null if the project is not a synchronized project.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>project</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>active configuration</dd>
</dl>
</li>
</ul>
<a id="getActiveSyncLocationURI(org.eclipse.core.resources.IResource)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getActiveSyncLocationURI</h4>
<pre class="methodSignature">public static&nbsp;java.net.URI&nbsp;getActiveSyncLocationURI&#8203;(org.eclipse.core.resources.IResource&nbsp;resource)
                                             throws org.eclipse.core.runtime.CoreException</pre>
<div class="block">Get the synchronize location URI of the resource associated with the active sync configuration. Returns null if the project
 containing the resource is not a synchronized project.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>resource</code> - target resource - cannot be null</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>URI or null if not a sync project</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.core.runtime.CoreException</code></dd>
</dl>
</li>
</ul>
<a id="getConfig(org.eclipse.core.resources.IProject,java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConfig</h4>
<pre class="methodSignature">public static&nbsp;<a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;getConfig&#8203;(org.eclipse.core.resources.IProject&nbsp;project,
                                   java.lang.String&nbsp;name)</pre>
<div class="block">Find a configuration by name</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>project</code> - project containing configuration</dd>
<dd><code>name</code> - name of configuration</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>configuration or null if no configuration with supplied name found</dd>
</dl>
</li>
</ul>
<a id="getConfigs(org.eclipse.core.resources.IProject)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConfigs</h4>
<pre class="methodSignature">public static&nbsp;<a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>[]&nbsp;getConfigs&#8203;(org.eclipse.core.resources.IProject&nbsp;project)</pre>
<div class="block">Get the sync configurations associated with the project</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>project</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>sync configurations for the project</dd>
</dl>
</li>
</ul>
<a id="getLocalConfig(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocalConfig</h4>
<pre class="methodSignature">public static&nbsp;<a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;getLocalConfig&#8203;(java.lang.String&nbsp;syncServiceId)
                                 throws org.eclipse.core.runtime.CoreException</pre>
<div class="block">Get a local sync config, really a config that does no sync'ing, for when the user wants to just work locally.
 This method must agree with <a href="#isLocal(org.eclipse.ptp.rdt.sync.core.SyncConfig)"><code>isLocal(SyncConfig)</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a local config</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.core.runtime.CoreException</code> - on problems retrieving local service elements</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>4.0</dd>
</dl>
</li>
</ul>
<a id="getLocalConfigName()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocalConfigName</h4>
<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;getLocalConfigName()</pre>
<div class="block">Get the name of the local sync config</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>name for local sync config</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>5.0</dd>
</dl>
</li>
</ul>
<a id="getSyncLocationURI(org.eclipse.ptp.rdt.sync.core.SyncConfig,org.eclipse.core.resources.IResource)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSyncLocationURI</h4>
<pre class="methodSignature">public static&nbsp;java.net.URI&nbsp;getSyncLocationURI&#8203;(<a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;config,
                                              org.eclipse.core.resources.IResource&nbsp;resource)
                                       throws org.eclipse.core.runtime.CoreException</pre>
<div class="block">Get the synchronize location URI of the resource associated with the sync configuration. Returns null if the sync
 configuration has not been configured correctly.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>config</code> - sync configuration</dd>
<dd><code>resource</code> - target resource</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>URI or null if not correctly configured</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.core.runtime.CoreException</code></dd>
</dl>
</li>
</ul>
<a id="isActive(org.eclipse.core.resources.IProject,org.eclipse.ptp.rdt.sync.core.SyncConfig)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isActive</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isActive&#8203;(org.eclipse.core.resources.IProject&nbsp;project,
                               <a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;config)</pre>
<div class="block">Check if this config is active for the project.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>project</code> - </dd>
<dd><code>config</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this config is the active config for the project</dd>
</dl>
</li>
</ul>
<a id="isLocal(org.eclipse.ptp.rdt.sync.core.SyncConfig)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLocal</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isLocal&#8203;(<a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;config)</pre>
<div class="block">Return whether the config is local (no sync'ing is done)
 This definition must agree with how local configs are created in <a href="#getLocalConfig(java.lang.String)"><code>getLocalConfig(String)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>config</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether config is local</dd>
</dl>
</li>
</ul>
<a id="isRemote(org.eclipse.ptp.rdt.sync.core.SyncConfig)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRemote</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isRemote&#8203;(<a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;config)</pre>
<div class="block">Return whether the config is remote (sync'ing is done)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>config</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether config is remote</dd>
</dl>
</li>
</ul>
<a id="newConfig(java.lang.String,java.lang.String,org.eclipse.remote.core.IRemoteConnection,java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newConfig</h4>
<pre class="methodSignature">public static&nbsp;<a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;newConfig&#8203;(java.lang.String&nbsp;name,
                                   java.lang.String&nbsp;providerId,
                                   org.eclipse.remote.core.IRemoteConnection&nbsp;conn,
                                   java.lang.String&nbsp;location)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - </dd>
<dd><code>providerId</code> - </dd>
<dd><code>conn</code> - </dd>
<dd><code>location</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>4.0</dd>
</dl>
</li>
</ul>
<a id="newConfig(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newConfig</h4>
<pre class="methodSignature">public static&nbsp;<a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;newConfig&#8203;(java.lang.String&nbsp;name,
                                   java.lang.String&nbsp;providerId,
                                   java.lang.String&nbsp;remoteServicesId,
                                   java.lang.String&nbsp;connName,
                                   java.lang.String&nbsp;location)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - </dd>
<dd><code>providerId</code> - </dd>
<dd><code>remoteServicesId</code> - </dd>
<dd><code>connName</code> - </dd>
<dd><code>location</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a id="removeConfig(org.eclipse.core.resources.IProject,org.eclipse.ptp.rdt.sync.core.SyncConfig)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeConfig</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;removeConfig&#8203;(org.eclipse.core.resources.IProject&nbsp;project,
                                <a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;config)</pre>
<div class="block">Remove the sync configuration from the project. Note that this methods allows an active configuration to be removed.
 
 Clients should check the active status of the configuration and call <a href="#setActive(org.eclipse.core.resources.IProject,org.eclipse.ptp.rdt.sync.core.SyncConfig)"><code>setActive(IProject, SyncConfig)</code></a> if necessary.
 
 Clients will not be allowed to remove all configurations from the project. There must always be at least one configuration
 for each project.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>project</code> - project</dd>
<dd><code>config</code> - configuration to remove</dd>
</dl>
</li>
</ul>
<a id="removeSyncConfigListener(java.lang.String,org.eclipse.ptp.rdt.sync.core.listeners.ISyncConfigListener)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeSyncConfigListener</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;removeSyncConfigListener&#8203;(java.lang.String&nbsp;natureId,
                                            <a href="listeners/ISyncConfigListener.html" title="interface in org.eclipse.ptp.rdt.sync.core.listeners">ISyncConfigListener</a>&nbsp;listener)</pre>
<div class="block">Remove the listener for sync config events</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>natureId</code> - </dd>
<dd><code>listener</code> - </dd>
</dl>
</li>
</ul>
<a id="saveConfigs(org.eclipse.core.resources.IProject)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>saveConfigs</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;saveConfigs&#8203;(org.eclipse.core.resources.IProject&nbsp;project)
                        throws org.eclipse.core.runtime.CoreException</pre>
<div class="block">Save the current configurations for the project. This method should be called prior to workbench shutdown if any
 modifications have been made to the configurations</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>project</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.core.runtime.CoreException</code></dd>
</dl>
</li>
</ul>
<a id="setActive(org.eclipse.core.resources.IProject,org.eclipse.ptp.rdt.sync.core.SyncConfig)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setActive</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;setActive&#8203;(org.eclipse.core.resources.IProject&nbsp;project,
                             <a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>&nbsp;config)</pre>
<div class="block">Set the active sync configuration for the project. Automatically deselects the current active configuration.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>project</code> - </dd>
<dd><code>config</code> - </dd>
</dl>
</li>
</ul>
<a id="updateConfigs(org.eclipse.core.resources.IProject,org.eclipse.ptp.rdt.sync.core.SyncConfig[],org.eclipse.ptp.rdt.sync.core.SyncConfig[])">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>updateConfigs</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;updateConfigs&#8203;(org.eclipse.core.resources.IProject&nbsp;project,
                                 <a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>[]&nbsp;addedConfigs,
                                 <a href="SyncConfig.html" title="class in org.eclipse.ptp.rdt.sync.core">SyncConfig</a>[]&nbsp;removedConfigs)</pre>
<div class="block">Batch update configurations for the project</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>project</code> - project to update</dd>
<dd><code>addedConfigs</code> - configs to be added</dd>
<dd><code>removedConfigs</code> - configs to be removed</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SyncConfigManager.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>PTP</b><br>Release 7.0</div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright (c) 2011 IBM Corporation and others. All Rights Reserved.</small></p>
</footer>
</body>
</html>
