Romain Manni-Bucau a écrit :
Désolé pour la liste. je joins mes objectmodels (je génère manufacturing mais il est lié à d'autres). Auriez vous le manufacturing.objectmodel correspondant ? Par contre la sortie boucle : [generator] ReturnItem -> ShipmentItem [generator] ShipmentItem -> Shipment [generator] ShipmentItem -> ShipmentStockItem [generator] StockItem -> StockEvent [generator] StockItem -> FacilityStockEvent [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] StockItem -> StockEventPlanned [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] StockItem -> StockEvent [generator] StockItem -> FacilityStockEvent [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] StockItem -> StockEventPlanned [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] ShipmentItem -> Shipment [generator] ShipmentItem -> ShipmentStockItem [generator] StockItem -> StockEvent [generator] StockItem -> FacilityStockEvent [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] StockItem -> StockEventPlanned [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] StockItem -> StockEvent [generator] StockItem -> FacilityStockEvent [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] StockItem -> StockEventPlanned [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] ReturnItem -> ReturnHeader [generator] ReturnItem -> ShipmentItem [generator] ShipmentItem -> Shipment [generator] ShipmentItem -> ShipmentStockItem [generator] StockItem -> StockEvent [generator] StockItem -> FacilityStockEvent [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] StockItem -> StockEventPlanned [generator] FacilityStockEvent -> FacilityStockEventPlanned [generator] FacilityStockEvent -> FacilityStockEventPlanned
cette sortie vient de getRelations() :
private List<Relation> getRelations(Predicate<ObjectModelAttribute> p) { ...
for(ObjectModelAttribute a : clazz.getAttributes()) { ObjectModelAttribute reverse = a.getReverseAttribute(); if (a.isNavigable() && a.referenceClassifier() && reverse != null && Util.isEntity(a.getClassifier()) && Util.isEntity(reverse.getClassifier()) && p.isAccepted(a) // a one level recursive relation && ! a.getClassifier().getName().equals(clazz.getName())) { if (Util.debug()) System.out.println(clazz.getName() + " -> " + a.getClassifier().getName()); ...blabla }
return rel; }
Ok, par contre, c'est plutôt la sortie de la méthode qui ne fonctionne pas qui m'intéresse. Celle ci :
Effectivement, c'est pas très évident à debugguer. Utiliser vous un system de logger (commons-logging) ou un System.out.println() pour afficher des traces d'execution.
Par exemple :
public boolean isAccepted(ObjectModelAttribute t) {
ObjectModelAttribute reverse = t.getReverseAttribute(); boolean accepted = !reverse.isAggregate() && !reverse.isComposite() && !t.isAggregate() && !t.isComposite() && reverse.getMaxMultiplicity() == 1;
log.debug("Test isAccepted for attribute " + t.getName()); log.debug(" reverse is " + reverse.getName()); log.debug(" isAccepted is " + accepted);
return accepted; }
-- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com