1
//////////////////////////////////////////////////////////////////////
3
// JCSP ("CSP for Java") Libraries //
4
// Copyright (C) 1996-2008 Peter Welch and Paul Austin. //
5
// 2001-2004 Quickstone Technologies Limited. //
7
// This library is free software; you can redistribute it and/or //
8
// modify it under the terms of the GNU Lesser General Public //
9
// License as published by the Free Software Foundation; either //
10
// version 2.1 of the License, or (at your option) any later //
13
// This library is distributed in the hope that it will be //
14
// useful, but WITHOUT ANY WARRANTY; without even the implied //
15
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
16
// PURPOSE. See the GNU Lesser General Public License for more //
19
// You should have received a copy of the GNU Lesser General //
20
// Public License along with this library; if not, write to the //
21
// Free Software Foundation, Inc., 59 Temple Place, Suite 330, //
22
// Boston, MA 02111-1307, USA. //
24
// Author contact: P.H.Welch@kent.ac.uk //
27
//////////////////////////////////////////////////////////////////////
29
package org.jcsp.net.settings;
32
import org.jcsp.net.*;
35
* Used internally within the JCSP network infrastructure to represent a set of link profiles.
37
* @author Quickstone Technologies Limited
39
public class LinkProfiles
41
public void addProfile(LinkProfile p)
45
if(!profiles.contains(p) && !profileNameMap.containsKey(p.getName()))
48
profileNameMap.put(p.getName(), p);
52
throw new LinkProfileAlreadyExistsException("Already have a profile named " + p.getName());
55
Node.err.log(this, "Error: Null profile");
58
public void removeProfile(LinkProfile p)
60
if(profiles.contains(p))
63
profileNameMap.remove(p.getName());
67
public LinkProfile getProfile(String name)
69
return (LinkProfile) profileNameMap.get(name);
72
public LinkProfile[] getProfiles()
74
LinkProfile[] toReturn = new LinkProfile[profiles.size()];
75
return (LinkProfile[])profiles.keySet().toArray(toReturn);
78
public LinkProfile getLastProfile()
83
public String toString()
85
StringBuffer sb = new StringBuffer();
86
sb.append("<LinkProfiles>\n");
87
LinkProfile[] profiles = getProfiles();
88
for(int i=0; i<profiles.length; i++)
89
sb.append(JCSPConfig.tabIn(profiles[i].toString())).append("\n");
90
sb.append("</LinkProfiles>");
94
private Hashtable profiles = new Hashtable();
95
private Hashtable profileNameMap = new Hashtable();
96
private LinkProfile lastProfile = null;
98
static class LinkProfileAlreadyExistsException extends RuntimeException
100
private LinkProfileAlreadyExistsException(String msg)
b'\\ No newline at end of file'