/*
* Copyright 2003,2004 Colin Crist
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package hermes.browser.model;
import hermes.config.DestinationConfig;
import hermes.ext.HermesAdminSupport;
import hermes.impl.DestinationConfigKeyWrapper;
import java.beans.PropertyChangeSupport;
import java.util.Map;
import javax.jms.JMSException;
import javax.swing.SwingUtilities;
import org.apache.log4j.Logger;
/**
* @author colincrist@hermesjms.com last changed by: $Author: colincrist $
* @version $Id: WatchInfo.java,v 1.6 2006/05/06 17:22:56 colincrist Exp $
*/
public class WatchInfo extends PropertyChangeSupport
{
/**
*
*/
private static final long serialVersionUID = -2096382435084982714L;
private static final Logger log = Logger.getLogger(WatchInfo.class);
public static final String STATISTICS = "statistics";
public static final String DEPTH = "depth";
public static final String EXCEPTION = "exception";
public static final String OLDEST = "oldest";
public WatchInfo(String hermesId, DestinationConfig dConfig) throws JMSException
{
super(new DestinationConfigKeyWrapper(dConfig));
this.key = new DestinationConfigKeyWrapper(dConfig) ;
this.hermesId = hermesId;
this.dConfig = dConfig;
dConfig.setMyHermes(hermesId) ;
}
private DestinationConfigKeyWrapper key;
private String hermesId;
private DestinationConfig dConfig ;
private int depth;
private long oldest;
private Throwable e;
private int depthAlert;
private long ageAlert;
private boolean inAlert = false;
private Map statistics = HermesAdminSupport.getDefaultStatistics();
public int getDepth()
{
return depth;
}
public void setDepth(final int newDepth)
{
if (depth != newDepth)
{
final int oldDepth = depth ;
depth = newDepth;
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
firePropertyChange(DEPTH, oldDepth, newDepth);
}
});
}
}
public Throwable getE()
{
return e;
}
public void setE(final Throwable newE)
{
this.e = newE;
if (e != null && newE != null)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
firePropertyChange(EXCEPTION, e, newE);
}
});
}
}
public boolean isInAlert()
{
return inAlert;
}
public void setInAlert(boolean inAlert)
{
this.inAlert = inAlert;
}
public long getOldest()
{
return oldest;
}
public void setOldest(final long newOldest)
{
if (newOldest != oldest)
{
final long oldOldest = oldest ;
oldest = newOldest;
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
firePropertyChange(OLDEST, new Long(oldOldest), new Long(newOldest));
}
});
}
}
public Map getStatistics()
{
return statistics;
}
public void setStatistics(final Map newStatistics)
{
final Map oldStatistics = statistics ;
statistics = newStatistics ;
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
firePropertyChange(STATISTICS, oldStatistics, newStatistics);
}
});
}
public long getAgeAlert()
{
return ageAlert;
}
public void setAgeAlert(long ageAlert)
{
this.ageAlert = ageAlert;
}
public int getDepthAlert()
{
return depthAlert;
}
public void setDepthAlert(int depthAlert)
{
this.depthAlert = depthAlert;
}
public DestinationConfig getConfig()
{
return dConfig ;
}
public String getHermesId()
{
return hermesId;
}
public void setHermesId(String hermesId)
{
this.hermesId = hermesId;
}
public DestinationConfigKeyWrapper getKey()
{
return key;
}
}