Did you resolve this, Eder?

If not, could you put together an example application in github
demonstrating the issue?

Thx
Dan

On Thu, 6 Apr 2017 at 17:22 L Eder <eder200...@gmail.com> wrote:

> Correcting this ...
>
> ResultRepository.java
> "
> public class ResultRepository {
>
>     @Programmatic
>     public Result create(
>             final String description,
>             final int simulationYear,
>             final int status
>     ) {
>         final Result result =
> container.newTransientInstance(Result.class);
>
>         result.setDescription(description);
>         result.setSimulationYear(simulationYear);
>         result.setStatus(status);
>         return result;
>     }
> }
> "
>
>
> 2017-04-06 12:20 GMT-04:00, L Eder <eder200...@gmail.com>:
> > Hi members of this forum:
> >
> > I have this situation - a Scenario entity comprised of many Result
> > entities. And vice-versa.
> >
> > I then add the first result to a sortedset, using Scenario.runScenario().
> >
> > However when i add the second result object, in
> > Scenario.adjustResult(), the first one is overwritten.
> >
> > Thanks for any help on this issue, Eder
> >
> > -----------
> >
> > Scenario.java
> > "
> > public class Scenario implements Comparable<Scenario> {
> >
> >     public String title() {
> >         return getDescription();
> >     }
> >
> >     @Column(allowsNull = "false")
> >     @Property()
> >     @Getter @Setter
> >     private String description;
> >
> >     @Column(allowsNull = "false")
> >     @Property()
> >     @Getter
> >     @Setter
> >     private int simulationYear;
> >
> >     @Column(allowsNull = "false")
> >     @Property()
> >     @Getter @Setter
> >     private ModelCategory modelCategory;
> >
> >     //    @Property(hidden = Where.ANYWHERE)
> >     @Column(allowsNull = "true")
> >     @Property()
> >     @Getter @Setter
> >     private Result budget;
> >
> >     @Persistent(table = "ScenarioResults")
> >     @Join(column = "scenario_id")
> > //    @Element(column = "res_id")
> >     @Element(column = "result_id")
> >     @Collection()
> >     @Getter @Setter
> >     @CollectionLayout(render = RenderType.EAGERLY)
> >     private SortedSet<Result> actuals = new TreeSet<Result>();
> >
> > ....
> >     public Scenario importSeihan(
> >             @Parameter(fileAccept = ".xlsx")
> >             @ParameterLayout(named="Excel spreadsheet")
> >             final Blob spreadsheet){
> > ....
> >                         getBudget().getCords().add(qitem);
> > ....
> >     }
> >
> >     @Action()
> >     public Result runScenario(){
> >
> >         getActuals().add(getBudget());
> >
> >         return getBudget();
> >     }
> >
> >     @Action()
> >     public Result adjustResult() {
> >         Date dNow = new Date();
> >         SimpleDateFormat ft =
> >                 new SimpleDateFormat ("dd-MMMM-yyyy-HH:mm");
> >
> >         /*final*/ Result adj = getBudget();
> >         String descr = getDescription() + "_adjust_" + ft.format(dNow)
> > + "_[optional description]";
> >         adj.setDescription(descr);
> >         adj.setStatus(AdjustStatus.valueOf("InProgress").ordinal());
> >
> >         getActuals().add(adj);
> >
> >         return resultRepo.findByDescription(descr);
> >     }
> >
> >
> >     @Override
> >     public int compareTo(final Scenario other) {
> >         return org.apache.isis.applib.util.ObjectContracts.compare(this,
> > other, "description");
> >     }
> >
> >     @Override
> >     public String toString() {
> >         return org.apache.isis.applib.util.ObjectContracts.toString(this,
> > "description");
> >     }
> >
> >     @javax.inject.Inject
> >     private ResultRepository resultRepo;
> > }
> > "
> >
> >
> >
> > ScenarioRepository.java
> > "
> > public class ScenarioRepository {
> > ....
> >     @Programmatic
> >     public Scenario create(
> >             final String description,
> >             final int simulationYear,
> >             final ModelCategory modelcat) {
> >         final TitleBuffer buf = new TitleBuffer();
> >
> >         Date dNow = new Date();
> >         SimpleDateFormat ft =
> >                 new SimpleDateFormat ("dd-MMMM-yyyy-HH:mm");
> >
> >         buf.append("SimYear-" + simulationYear + "_" + modelcat +
> > "_Created-");
> >         buf.append(ft.format(dNow) + "_");
> >         buf.append(description);
> >
> >         final Scenario scenario =
> > container.newTransientInstance(Scenario.class);
> >         scenario.setDescription(buf.toString());
> >         scenario.setSimulationYear(simulationYear);
> >         scenario.setModelCategory(modelcat);
> >
> >         scenario.setBudget(
> >                 resultRepository.create(
> >                         buf.toString() + " - Analysis Results",
> >                         simulationYear,
> >                         AdjustStatus.valueOf("Created").ordinal()));
> >
> >         container.persistIfNotAlready(scenario);
> >         return scenario;
> >     }
> >
> >     @Inject
> >     ResultRepository resultRepository;
> > }
> > "
> >
> >
> > Result.java
> > "
> > public class Result implements Comparable<Result> {
> >
> >     @Title
> >     @Column(allowsNull = "false")
> >     @Property(maxLength = 120)
> >     @Getter @Setter
> >     private String description;
> >
> >     public String getDescription(){
> >
> >         return description;
> >     }
> >
> >     @Column(allowsNull = "false")
> >     @Property()
> >     @Getter @Setter
> >     private int simulationYear;
> >
> >     @Column(allowsNull = "false")
> >     @Property()
> >     @Getter @Setter
> >     private int status;
> >
> >     @CollectionLayout(render = RenderType.EAGERLY, named = "Power Cord")
> >     private SortedSet<QuotaItem> cords = new TreeSet<QuotaItem>();
> >
> >     @Collection()
> >     public SortedSet<QuotaItem> getCords() {
> >
> >         return cords;
> >     }
> >     public void setCords(
> >             final SortedSet<QuotaItem> obj) {
> >         this.cords = obj;
> >     }
> >
> > }
> >
> >
> > ResultRepository.java
> > "
> > public class ResultRepository {
> >
> >     @Programmatic
> >     public Result create(
> >             final String description,
> >             final int simulationYear,
> >             final int status
> >     ) {
> >         final ComponentSeihan componentSeihan =
> > container.newTransientInstance(ComponentSeihan.class);
> >
> >         componentSeihan.setDescription(description);
> >         componentSeihan.setSimulationYear(simulationYear);
> >         componentSeihan.setStatus(status);
> >         return componentSeihan;
> >     }
> > }
> > "
> > ----
> >
>

Reply via email to