Class: Invoracle::SystemsSet
- Inherits:
-
Object
- Object
- Invoracle::SystemsSet
- Defined in:
- lib/invoracle/systems_set.rb
Overview
Invoracle::SystemsSet maintains a group of Invoracle::System objects and their associated cluster UIDs.
Initial use case is to create sets of Invoracle::Systems and then retrieve them by Cluster UID.
Examples
systemsSet = Invoracle::SystemsSet.new
systemsSet.addSystem( system )
systemsSet.getSystem( systemUid )
systemsSet.exists?( system )
systemsSet.getClusterCount
systemsSet.getSystemCount
systemsSet.getClusterUids
systemsSet.inflateSystems
systemsSet.getSystemsForClusterUid( clusterUid )
Instance Attribute Summary collapse
-
#dSystemsBySysUid ⇒ Object
readonly
Returns the value of attribute dSystemsBySysUid.
-
#dSysUidsbyCluUid ⇒ Object
readonly
Returns the value of attribute dSysUidsbyCluUid.
Instance Method Summary collapse
-
#exists?(oSystem = nil) ⇒ Boolean
Given an Invoracle::System, returns true or false if the system is within the set.
- #getClusterCount ⇒ Object
- #getClusterUids ⇒ Object
- #getSystem(sSysUid = nil) ⇒ Object
- #getSystemCount ⇒ Object
- #getSystemsForClusterUid(sCluUid = nil) ⇒ Object
-
#inflateSystems ⇒ Object
Calls the #inflate method on each system in the set.
-
#initialize ⇒ SystemsSet
constructor
A new instance of SystemsSet.
- #setSystem(oSystem = nil) ⇒ Object
Constructor Details
#initialize ⇒ SystemsSet
Returns a new instance of SystemsSet.
28 29 30 31 |
# File 'lib/invoracle/systems_set.rb', line 28 def initialize() @dSystemsBySysUid = {} @dSysUidsbyCluUid = {} end |
Instance Attribute Details
#dSystemsBySysUid ⇒ Object (readonly)
Returns the value of attribute dSystemsBySysUid.
26 27 28 |
# File 'lib/invoracle/systems_set.rb', line 26 def dSystemsBySysUid @dSystemsBySysUid end |
#dSysUidsbyCluUid ⇒ Object (readonly)
Returns the value of attribute dSysUidsbyCluUid.
27 28 29 |
# File 'lib/invoracle/systems_set.rb', line 27 def dSysUidsbyCluUid @dSysUidsbyCluUid end |
Instance Method Details
#exists?(oSystem = nil) ⇒ Boolean
Given an Invoracle::System, returns true or false if the system is within the set
50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/invoracle/systems_set.rb', line 50 def exists?(oSystem=nil) unless oSystem.is_a?(Invoracle::System) raise ArgumentError, "E_BAD_SYSTEM_OBJECT #{oSystem.class}]" end sSysUid = oSystem.getAttr(:sSysUid) unless sSysUid.kind_of?(String) && sSysUid.length > 0 raise ArgumentError, 'E_BAD_SYSTEM_UID' end bHasSys = @dSystemsBySysUid.has_key?(sSysUid) ? true : false return bHasSys end |
#getClusterCount ⇒ Object
33 34 35 |
# File 'lib/invoracle/systems_set.rb', line 33 def getClusterCount() return @dSysUidsbyCluUid.keys.length end |
#getClusterUids ⇒ Object
41 42 43 44 45 |
# File 'lib/invoracle/systems_set.rb', line 41 def getClusterUids() aClusterUids = @dSysUidsbyCluUid.keys aClusterUids.sort! return aClusterUids end |
#getSystem(sSysUid = nil) ⇒ Object
65 66 67 68 69 70 71 72 73 74 |
# File 'lib/invoracle/systems_set.rb', line 65 def getSystem(sSysUid=nil) unless sSysUid.kind_of?(String) && sSysUid.length > 0 raise ArgumentError, 'E_BAD_SYSTEM_UID' end oSystem = @dSystemsBySysUid.has_key( sSysUid ) \ ? @dSystemsBySysUid[ sSysUid ] : nil return oSystem end |
#getSystemCount ⇒ Object
37 38 39 |
# File 'lib/invoracle/systems_set.rb', line 37 def getSystemCount() return @dSystemsBySysUid.keys.length end |
#getSystemsForClusterUid(sCluUid = nil) ⇒ Object
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
# File 'lib/invoracle/systems_set.rb', line 108 def getSystemsForClusterUid(sCluUid=nil) unless sCluUid.kind_of?(String) && sCluUid.length > 0 raise ArgumentError, 'E_BAD_CLUSTER_UID' end aSystems = [] if @dSysUidsbyCluUid.has_key?( sCluUid ) @dSysUidsbyCluUid[ sCluUid ].keys.each do |sSysUid| if @dSystemsBySysUid.has_key?( sSysUid ) oSystem = @dSystemsBySysUid[ sSysUid ] aSystems.push( oSystem ) end end end return aSystems end |
#inflateSystems ⇒ Object
Calls the #inflate method on each system in the set.
102 103 104 105 106 |
# File 'lib/invoracle/systems_set.rb', line 102 def inflateSystems() @dSystemsBySysUid.keys.each do |sSysUid| @dSystemsBySysUid[ sSysUid ].inflate end end |
#setSystem(oSystem = nil) ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/invoracle/systems_set.rb', line 76 def setSystem(oSystem=nil) unless oSystem.is_a?(Invoracle::System) raise ArgumentError, 'E_BAD_SYSTEM_OBJECT' end sSysUid = oSystem.getAttr(:sSysUid) unless sSysUid.kind_of?(String) raise ArgumentError, 'E_BAD_SYSTEM_UID' end sSysUid.strip! unless sSysUid.length > 0 raise ArgumentError, 'E_BAD_SYSTEM_UID' end @dSystemsBySysUid[ sSysUid ] = oSystem sCluUid = oSystem.getAttr(:sCluUid) if sCluUid.kind_of?(String) && sCluUid.length > 0 @dSysUidsbyCluUid[ sCluUid ] ||= {} @dSysUidsbyCluUid[ sCluUid ][ sSysUid ] = 1 end end |