// Copyright (c) 2008 DMTF.  All rights reserved.
   [Abstract, Version ( "2.19.0" ), 
    UMLPackagePath ( "CIM::Application::J2eeAppServer" ), 
    Description ( 
       "CIM_J2eeManagedObject is a class for defining operations that "
       "may supported by all J2EE managed objects. It contains the "
       "attributes and methods that are common to all J2EE managed "
       "objects. The J2EE Managed objects - for eg. J2eeServer should "
       "participate in instances of the CIM_LogicalIdentity "
       "association with the corresponding instance of the "
       "J2eeManagedObject class. The start and stop methods of JSR77\'s "
       "J2eeManagedObject find an equivalent in the RequestStateChange "
       "method inherited from EnabledLogicalElement. Using "
       "Enabled/Disabled as inputs to RequestStateChange, one can "
       "effect start and stop." )]
class CIM_J2eeManagedObject : CIM_EnabledLogicalElement {

      [Key, Override ( "InstanceID" ), 
       Description ( 
          "InstanceID identifies a unique instance of a J2EE "
          "ManagedObject\'s Capabilities in a given namespace. In "
          "order to ensure uniqueness, the value of InstanceID MUST "
          "be constructed using the form specified in JSR77.3.1.1.1 "
          "in order to avoid the need for manual key propagation." ), 
       MappingStrings { "JSR77.JCP|JSR77.3.1.1.1 objectName|V1.0" }, 
       ModelCorrespondence { "CIM_J2eeManagedObject.ElementName" }]
   string InstanceID;

      [Override ( "ElementName" ), 
       Description ( 
          "The name of a J2EE managed object. The name MUST be "
          "constructed using the form specified in JSR77.3.1.1.1 in "
          "order to avoid the need for manual key propagation." ), 
       MaxLen ( 256 ), 
       MappingStrings { "JSR77.JCP|JSR77.3.1.1.1 objectName|V1.0" }, 
       ModelCorrespondence { "CIM_J2eeManagedObject.InstanceID" }]
   string ElementName;

      [Override ( "OperationalStatus" ), 
       Description ( 
          "The current state of the entity for J2ee managed objects "
          "that support state management. If the StateManageable "
          "property is FALSE, the value of this property MUST be "
          "set to 0 - Unknown. The mapping from the J2ee management "
          "states to OperationalStatus is as follows - "
          "j2ee.state.starting - Starting, j2ee.state.running - OK, "
          "j2ee.state.stopping - Stopping, j2ee.state.stopped - "
          "Stopped, and j2ee.state.failed - Error." ), 
       ValueMap { "0", "2", "6", "8", "9", "10" }, 
       Values { "Unknown", "OK", "Error", "Starting", "Stopping", 
          "Stopped" }, 
       MappingStrings { "JSR77.JCP|JSR77.5.1.1.1 state|V1.0" }, 
       ModelCorrespondence { 
          "CIM_J2eeManagedObjectCapabilities.StateManageable" }]
   uint16 OperationalStatus[];

      [Description ( 
          "The time that the J2EE managed object was started, "
          "represented as a datetime interval measured as the time "
          "interval since January 1, 1970, 00:00:00. If the "
          "StateManageable property of the "
          "CIM_J2eeManagedObjectCapabilities class is false, this "
          "value MUST be set to a zero time interval." ), 
       MappingStrings { "JSR77.JCP|JSR77.5.1.1.2 startTime|V1.0" }, 
       ModelCorrespondence { 
          "CIM_J2eeManagedObjectCapabilities.StateManageable" }]
   datetime StartTime = "00000000000000.000000:000";


      [Description ( 
          "Starts the J2EE managed object. This operation can only "
          "be invoked in when State is Stopped. This method, causes "
          "State to become Starting initially, and eventually "
          "becomes the RUNNING state. Additionally, "
          "StartRecursive() is called on all the child "
          "StateManageable instances that are registered with this "
          "entity and are in the Stopped state. The method returns "
          "0 on success and non-zero for failure." ), 
       MappingStrings { "JSR77.JCP|JSR77.5.1.2.2 startRecursive|V1.0" }]
   uint32 StartRecursive(
);

      [Description ( 
          "This method starts the J2EE managed object. This "
          "operation can only be invoked when the OperationalStatus "
          "is Stopped. Note that StartService() will not be called "
          "on any of the child StateManageable instances that are "
          "registered with this instance. It is the responsibility "
          "of the calling application to start the child if "
          "required. The method returns 0 on success and non-zero "
          "for failure." ), 
       MappingStrings { "JSR77.JCP|JSR77.5.1.2.1 start|V1.0" }]
   uint32 Start(
);

      [Description ( 
          "This method stops the J2EE managed object and all "
          "dependent objects that can be identified by following "
          "the Dependency/Component associations this object\'s "
          "identity participates in." ), 
       MappingStrings { "JSR77.JCP|JSR77.5.1.2.3 stop|V1.0" }]
   uint32 Stop(
);

};
