#NEWLINE# def dimRelationships( self , structuralNode , getMembers = False , getDimQname = False ) : #NEWLINE# #INDENT# self . _dimensionQname = structuralNode . evaluate ( self , self . evalDimensionQname ) #NEWLINE# self . _sourceQname = ( structuralNode . evaluate ( self , self . evalRrelationshipSourceQname ) or XbrlConst . qnXfiRoot ) #NEWLINE# linkrole = structuralNode . evaluate ( self , self . evalLinkrole ) #NEWLINE# if ( ( not linkrole ) and getMembers ) : #NEWLINE# #INDENT# linkrole = 'XBRL-all-linkroles' #NEWLINE# #UNINDENT# dimConcept = self . modelXbrl . qnameConcepts . get ( self . _dimensionQname ) #NEWLINE# sourceConcept = self . modelXbrl . qnameConcepts . get ( self . _sourceQname ) #NEWLINE# self . _axis = ( structuralNode . evaluate ( self , self . evalAxis ) or ( ) ) #NEWLINE# self . _generations = ( structuralNode . evaluate ( self , self . evalGenerations ) or ( ) ) #NEWLINE# if ( ( self . _dimensionQname and ( ( dimConcept is None ) or ( not dimConcept . isDimensionItem ) ) ) or ( self . _sourceQname and ( self . _sourceQname != XbrlConst . qnXfiRoot ) and ( ( sourceConcept is None ) or ( not sourceConcept . isItem ) ) ) ) : #NEWLINE# #INDENT# return ( ) #NEWLINE# #UNINDENT# if ( dimConcept is not None ) : #NEWLINE# #INDENT# if getDimQname : #NEWLINE# #INDENT# return self . _dimensionQname #NEWLINE# #UNINDENT# if ( sourceConcept is None ) : #NEWLINE# #INDENT# sourceConcept = dimConcept #NEWLINE# #UNINDENT# #UNINDENT# if getMembers : #NEWLINE# #INDENT# return concept_relationships ( self . modelXbrl . rendrCntx , None , ( self . _sourceQname , getDimQname , 'XBRL-dimensions' , self . _axis . replace ( '-or-self' , '' ) , self . _generations ) , True ) #NEWLINE# #UNINDENT# if getDimQname : #NEWLINE# #INDENT# if ( sourceConcept is not None ) : #NEWLINE# #INDENT# return self . stepDimRel ( sourceConcept , linkrole ) #NEWLINE# #UNINDENT# return None