src/JavaResolver.st
branchjk_new_structure
changeset 822 36cb538be3c2
parent 821 560f60ad3a2a
child 846 cec92244091c
equal deleted inserted replaced
821:560f60ad3a2a 822:36cb538be3c2
   207      process (§5.4.1); it is not part of link-time access control."
   207      process (§5.4.1); it is not part of link-time access control."
   208     
   208     
   209     (self checkPermissionsFrom: accessingJavaClass to: resolvedJavaClass) 
   209     (self checkPermissionsFrom: accessingJavaClass to: resolvedJavaClass) 
   210         ifFalse: [ ^ false ].
   210         ifFalse: [ ^ false ].
   211     aJavaMethodOrField isPublic ifTrue: [ ^ true ].
   211     aJavaMethodOrField isPublic ifTrue: [ ^ true ].
   212     ((aJavaMethodOrField isProtected 
   212     ((aJavaMethodOrField isProtected and: 
   213         and: [ resolvedJavaClass equalsOrIsSubclassOf: aJavaMethodOrField javaClass ]) 
   213             [ resolvedJavaClass javaComponentClass 
   214             and: 
   214                 equalsOrIsSubclassOf: aJavaMethodOrField javaClass ]) 
   215                 [ accessingJavaClass equalsOrIsSubclassOf: resolvedJavaClass
   215         and: 
   216                 ]                                                           )
   216             [ accessingJavaClass javaComponentClass 
       
   217                 equalsOrIsSubclassOf: aJavaMethodOrField javaClass ]) 
   217             ifTrue: [ ^ true ].
   218             ifTrue: [ ^ true ].
   218     ((aJavaMethodOrField isPrivate not 
   219     ((aJavaMethodOrField isPrivate not 
   219         and: [ resolvedJavaClass javaPackage = accessingJavaClass javaPackage ]) 
   220         and: [ resolvedJavaClass javaPackage = accessingJavaClass javaPackage ]) 
   220             and: [ resolvedJavaClass classLoader = accessingJavaClass classLoader ]) 
   221             and: [ resolvedJavaClass classLoader = accessingJavaClass classLoader ]) 
   221             ifTrue: [ ^ true ].
   222             ifTrue: [ ^ true ].
   223         and: [ aJavaMethodOrField javaClass = accessingJavaClass ]) 
   224         and: [ aJavaMethodOrField javaClass = accessingJavaClass ]) 
   224             ifTrue: [ ^ true ].
   225             ifTrue: [ ^ true ].
   225     ^ false.
   226     ^ false.
   226 
   227 
   227     "Created: / 14-04-2011 / 14:19:33 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   228     "Created: / 14-04-2011 / 14:19:33 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   228     "Modified: / 30-05-2011 / 23:16:50 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   229     "Modified: / 30-05-2011 / 23:32:55 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   229 ! !
   230 ! !
   230 
   231 
   231 !JavaResolver methodsFor:'exceptions'!
   232 !JavaResolver methodsFor:'exceptions'!
   232 
   233 
   233 throwAbstractMethodError
   234 throwAbstractMethodError