Modifying Instances in Python
In Python, the JDL declaration translates in the following Resource and ResourceCapacity interfaces:
class Resource(DbDomObject):
def get_capacity(self) -> ResourceCapacity:
pass
def get_id(self) -> str:
pass
def get_name(self) -> str:
pass
def set_capacity(self, capacity: ResourceCapacity | None):
pass
def set_id(self, id_: str):
pass
def set_name(self, name: str | None):
pass
class ResourceCapacity(DbDomObject, IndexKey):
def get_quantity(self) -> int:
pass
def get_resource(self) -> Resource:
pass
def set_quantity(self, quantity: int | None):
pass
def set_resource(self, resource: Resource | None):
pass
For example, to set the attributes of an instance, one would call
res1 = coll.create_resource() res1.set_id( "MyFirstResourceId" ) res1.set_name( "MyFirstResourceName" )
Relationships are managed in a similar way:
capa1 = coll.create_resource_capacity() capa1.set_quantity(1) capa1.set_resource(res1) # this automatically calls Resource.set_resource_capacity() res1.get_resource_capacity() == capa1 # true capa2 = coll.create_resource_capacity() capa2.set_quantity(2) res1.set_resource_capacity(capa2) # this automatically update the inverted relationships res1.get_resource_capacity() == capa2 # true capa1.get_resource() == None # true capa2.get_resource() == res1 # true