Resources
-
Supertype: Restricted Resource:
-
Not
AnyResource:-
A restricted resource type
T{Us}is a subtype of a restricted resource typeV{Ws}:-
When
T != AnyResource: ifT == V.UsandWsdo not have to be subsets: The owner of the resource may freely restrict and unrestrict the resource.- Static: Yes
- Dynamic: Yes
-
When
T == AnyResource: if the run-time type isV.- Static: No
- Dynamic: Yes
-
-
An unrestricted resource type
Tis a subtype of a restricted resource typeU{Vs}:-
When
T != AnyResource: ifT == U.The owner of the resource may freely restrict the resource.
- Static: Yes
- Dynamic: Yes
-
When
T == AnyResource: if the run-time type isU.- Static: No
- Dynamic: Yes
-
-
-
AnyResource:-
A restricted resource type
T{Us}is a subtype of a restricted resource typeAnyResource{Vs}:-
When
T != AnyResource: ifTconforms toVs.UsandVsdo not have to be subsets.- Static: Yes
- Dynamic: Yes
-
When
T == AnyResource:- Static: if
Vsis a subset ofUs - Dynamic: if the run-time type conforms to
Vs
- Static: if
-
-
An unrestricted resource type
Tis a subtype of a restricted resource typeAnyResource{Us}:-
When
T != AnyResource: ifTconforms toUs.- Static: Yes
- Dynamic: Yes
-
When
T == AnyResource: if the run-time type conforms toUs.- Static: No
- Dynamic: Yes
-
-
-
-
Supertype: Unrestricted Resource:
-
Not
AnyResource:-
A restricted resource type
T{Us}is a subtype of an unrestricted resource typeV:-
When
T != AnyResource: ifT == V.The owner of the resource may freely unrestrict the resource.
- Static: Yes
- Dynamic: Yes
-
When
T == AnyResource: if the run-time type isV.- Static: No
- Dynamic: Yes
-
-
An unrestricted resource type
Tis a subtype of an unrestricted resource typeV: ifT == V.- Static: Yes
- Dynamic: Yes
-
-
AnyResource-
A restricted resource type
T{Us}or unrestricted resource typeTis a subtype of the typeAnyResource: always.- Static: Yes
- Dynamic: Yes
-
-
References
-
Authorized
An authorized reference type
auth &Tis a subtype of an unauthorized reference type&Uor an authorized reference typeauth &UifTis a subtype ofU.- Static: Yes
- Dynamic: Yes
-
Unauthorized
-
An unauthorized reference type
&Tis a subtype of an authorized reference typeauth &T: never.The holder of the reference may not gain more permissions.
- Static: No
- Dynamic: No
-
Supertype: Reference to Restricted Resource
-
Not
AnyResource:-
An unauthorized reference to a restricted resource type
&T{Us}is a subtype of a reference to a restricted resource type&V{Ws}:-
When
T != AnyResource: ifT == VandWsis a subset ofUs.The holder of the reference may not gain more permissions or knowledge and may only further restrict the reference to the resource.
- Static: Yes
- Dynamic: Yes
-
When
T == AnyResource: never.The holder of the reference may not gain more permissions or knowledge.
- Static: No
- Dynamic: No
-
-
An unauthorized reference to an unrestricted resource type
&Tis a subtype of a reference to a restricted resource type&U{Vs}:-
When
T != AnyResource: ifT == U.The holder of the reference may only further restrict the reference.
- Static: Yes
- Dynamic: Yes
-
When
T == AnyResource: never.The holder of the reference may not gain more permissions or knowledge.
- Static: No
- Dynamic: No
-
-
-
AnyResource:-
An unauthorized reference to a restricted resource type
&T{Us}is a subtype of a reference to a restricted resource type&AnyResource{Vs}: ifVsis a subset ofUs.The holder of the reference may only further restrict the reference.
The requirement for
Tto conform toVsis implied by the subset requirement.- Static: Yes
- Dynamic: Yes
-
An unauthorized reference to an unrestricted resource type
&Tis a subtype of a reference to a restricted resource type&AnyResource{Us}:-
When
T != AnyResource: ifTconforms toUs.The holder of the reference may only restrict the reference.
- Static: Yes
- Dynamic: Yes
-
When
T == AnyResource: never.The holder of the reference may not gain more permissions or knowledge.
- Static: No
- Dynamic: No
-
-
-
-
Supertype: Unrestricted Resource:
-
Not
AnyResource:-
An unauthorized reference to a restricted resource type
&T{Us}is a subtype of a reference to an unrestricted resource type&V: never.The holder of the reference may not gain more permissions or knowledge.
- Static: No
- Dynamic: No
-
An unauthorized reference to an unrestricted resource type
&Tis a subtype of a reference to an unrestricted resource type&V: ifT == V.- Static: Yes
- Dynamic: Yes
-
-
AnyResource-
An unauthorized reference to a restricted resource type
&T{Us}or to a unrestricted resource type&Tis a subtype of the type&AnyResource: always.- Static: Yes
- Dynamic: Yes
-
-
-