001 /*
002 * Copyright 2005 Stephen J. McConnell.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
013 * implied.
014 *
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018
019 package net.dpml.runtime;
020
021 /**
022 * Event triggered as a result of a state change.
023 *
024 * @author <a href="http://www.dpml.net">Digital Product Management Library</a>
025 * @version 2.1.1
026 */
027 public class ProviderEvent extends ComponentEvent
028 {
029 private final Provider m_provider;
030 private final Status m_action;
031
032 /**
033 * Construct a new <code>StateEvent</code>.
034 *
035 * @param source the source component
036 * @param provider the provider instance initiating the event
037 * @param action the modified Status enumeration
038 */
039 public ProviderEvent( final Component source, Provider provider, Status action )
040 {
041 super( source );
042
043 m_provider = provider;
044 m_action = action;
045 }
046
047 /**
048 * Get the provider initiating the event.
049 *
050 * @return the source provider
051 */
052 public Provider getProvider()
053 {
054 return m_provider;
055 }
056
057 /**
058 * Get the event status.
059 *
060 * @return the event status
061 */
062 public Status getStatus()
063 {
064 return m_action;
065 }
066
067 /**
068 * Return a string representation of the event.
069 *
070 * @return the event as a string
071 */
072 public String toString()
073 {
074 String id = super.toString();
075 return id + "#" + getStatus();
076 }
077 }
078