Modifying Instances in Java

In Java, the JDL declaration translates in the following Resource and ResourceCapacity interfaces:

public interface Resource extends DbDomObject {
  ResourceCapacity getCapacity();
  CapacityPlanning getCollector();
  String getId();
  String getName();
  void setCapacity(ResourceCapacity obj);
  void setId(String value);
  void setName(String value);
}

public interface ResourceCapacity extends DbDomObject {
  CapacityPlanning getCollector();
  int getQuantity();
  Resource getResource();
  boolean isSetQuantity();
  void setQuantity(int value);
  void setResource(Resource obj);
  void unsetQuantity();
}

For example, to set the attributes of an instance, one would call

  Resource res1 = coll.createResource();
  res1.setId( "MyFirstResourceId" );
  res1.setName( "MyFirstResourceName" );

Relationships are managed in a similar way:

  ResourceCapacity capa1 = coll.createResourceCapacity();
  capa1.setQuantity(1);
  capa1.setResource(res1); // this automatically calls Resource.setResourceCapacity()
  res1.getResourceCapacity() == capa1; // true
 
  ResourceCapacity capa2 = coll.createResourceCapacity();
  capa2.setQuantity(2);
  res1.setResourceCapacity(capa2); // this automatically update the inverted relationships
  res1.getResourceCapacity() == capa2; // true
  capa1.getResource() == null; // true
  capa2.getResource() == res1; // true