diff options
author | Tobias Schwarz | 2014-06-11 05:41:26 +0000 |
---|---|---|
committer | Tobias Schwarz | 2014-06-11 05:42:01 +0000 |
commit | 2bace60b015cb7dc35caa255a84abd89f87773c2 (patch) | |
tree | c6c8b57c5f9467105f39e68f73eece19cf41c61a /target_explorer | |
parent | 3e83e827a01c97ce7ebe9ea18ed353eaae950297 (diff) | |
download | org.eclipse.tcf-2bace60b015cb7dc35caa255a84abd89f87773c2.tar.gz org.eclipse.tcf-2bace60b015cb7dc35caa255a84abd89f87773c2.tar.xz org.eclipse.tcf-2bace60b015cb7dc35caa255a84abd89f87773c2.zip |
Target Explorer: add encode/decode for list of peers
Diffstat (limited to 'target_explorer')
-rw-r--r-- | target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/utils/PeerDataHelper.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/utils/PeerDataHelper.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/utils/PeerDataHelper.java index dc73b0305..549998994 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/utils/PeerDataHelper.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.locator/src/org/eclipse/tcf/te/tcf/locator/utils/PeerDataHelper.java @@ -63,4 +63,45 @@ public class PeerDataHelper { } return new IPeerNode[0]; } + + /** + * Encode an array of peers to a string. + * @param contexts The array of peers. + * @return String representing the array of peers. + */ + public static final String encodePeerList(IPeer[] contexts) { + try { + if (contexts != null && contexts.length > 0) { + IPersistenceDelegate delegate = PersistenceManager.getInstance().getDelegate(IPeer.class, String.class); + return (String)delegate.writeList(contexts, String.class); + } + } + catch (Exception e) { + } + return null; + } + + /** + * Decode a string encoded array of peers. + * @param encoded The string encoded peers. + * @return Array of peers. + */ + public static final IPeer[] decodePeerList(String encoded) { + try { + if (encoded != null && encoded.trim().length() > 0) { + IPersistenceDelegate delegate = PersistenceManager.getInstance().getDelegate(IPeer.class, String.class); + Object[] input = delegate.readList(IPeer.class, encoded); + List<IPeer> peers = new ArrayList<IPeer>(); + for (Object object : input) { + if (object instanceof IPeer) { + peers.add((IPeer)object); + } + } + return peers.toArray(new IPeer[peers.size()]); + } + } + catch (Exception e) { + } + return new IPeer[0]; + } } |