/*
* Copyright (c) 2004-2011 Marco Maccaferri and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Marco Maccaferri - initial API and implementation
*/
package org.eclipsetrader.core.feed;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.util.HashMap;
import java.util.Map;
/**
* Holds the pproperties associated with a feed identifier.
*
* @see org.eclipsetrader.core.feed.IFeedProperties
* @since 1.0
*/
public class FeedProperties implements IFeedProperties {
private Map<String, String> properties = new HashMap<String, String>();
private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
public FeedProperties() {
}
/* (non-Javadoc)
* @see org.eclipsetrader.core.feed.IFeedProperties#getProperty(java.lang.String)
*/
@Override
public String getProperty(String id) {
return properties.get(id);
}
/* (non-Javadoc)
* @see org.eclipsetrader.core.feed.IFeedProperties#getPropertyIDs()
*/
@Override
public String[] getPropertyIDs() {
return properties.keySet().toArray(new String[properties.keySet().size()]);
}
/* (non-Javadoc)
* @see org.eclipsetrader.core.feed.IFeedProperties#setProperty(java.lang.String, java.lang.String)
*/
@Override
public void setProperty(String id, String value) {
Object oldValue = properties.get(id);
if (value == null) {
properties.remove(id);
}
else {
properties.put(id, value);
}
propertyChangeSupport.firePropertyChange(id, oldValue, properties.get(id));
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
propertyChangeSupport.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
propertyChangeSupport.removePropertyChangeListener(listener);
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder s = new StringBuilder();
for (String k : properties.keySet()) {
if (s.length() != 0) {
s.append(",");
}
s.append(k);
s.append("=");
s.append(properties.get(k));
}
return s.toString();
}
}