private void addDefaultAsssignmentExpressions(IDataAssociationBean dab) { if(dab.getAssignements().isEmpty()) return; IAssignmentBean a = dab.getAssignements().get(0); if(a.getFrom()==null || a.getFrom().getContent()==null || a.getFrom().getContent().isEmpty()) { IExpressionBean fromExp = new ExpressionBean(); String fromExpContent = "$"+dab.getSources().get(0).getId(); fromExp.setContent(fromExpContent); a.setFrom(fromExp); } if(a.getTo()==null || a.getTo().getContent()==null || a.getTo().getContent().isEmpty()) { IExpressionBean toExp = new ExpressionBean(); String toExpContent = "$"+dab.getTarget().getId(); toExp.setContent(toExpContent); a.setTo(toExp); } }
@Override public void visitAssignement(IAssignmentBean a, IDataAssociationBean da) { if(a.getId().equals(this.id) && bean==null){bean = a;} } @Override
private void buildExpression(Assignment a, IAssignmentBean ab){ Expression expFrom = newInstance(Expression.class); setDocumentation(expFrom, ab.getFrom()); expFrom.setId(ab.getFrom().getId()); expFrom.setTextContent(ab.getFrom().getContent()); Expression expTo = newInstance(Expression.class); setDocumentation(expTo, ab.getTo()); expTo.setId(ab.getTo().getId()); expTo.setTextContent(ab.getTo().getContent()); a.setFrom(expFrom); a.setTo(expTo); }
@Override public void bind(DataAssociationEditorModel watchedModel, DataAssociationBean modelToBind) { // 1 - binding of 'to' and 'from' fields of the editor model //add an assignment with the 'to' and 'from' expressions modelToBind.getAssignements().clear(); IAssignmentBean a = new AssignmentBean(); modelToBind.addAssignement(a); IExpressionBean from = new ExpressionBean(); from.setContent(watchedModel.getFrom()); a.setFrom(from); IExpressionBean to = new ExpressionBean(); to.setContent(watchedModel.getTo()); a.setTo(to); // 2 - binding of 'itemDef' property of the editor model //set targetItem and sourceItem to the editor model value // the builder will use one of them depending if the data association // is a datainputassociation or a dataoutputassociation modelToBind.setTargetItem(watchedModel.getItemDef()); modelToBind.setSourceItem(watchedModel.getItemDef()); }
@Override public void initializeWatchedModel(DataAssociationEditorModel watchedModel, DataAssociationBean modelToBind) { // 1 - load assignments if(modelToBind.getAssignements()!=null && !modelToBind.getAssignements().isEmpty()) { IAssignmentBean a = modelToBind.getAssignements().get(0); if(a.getFrom()!=null) { watchedModel.setFrom(a.getFrom().getContent()); } if(a.getTo()!=null) { watchedModel.setTo(a.getTo().getContent()); } } // 2 - load source or target item if(modelToBind.getSourceItem()!=null) { watchedModel.setItemDef(modelToBind.getSourceItem()); } else if (modelToBind.getTargetItem()!=null) { watchedModel.setItemDef(modelToBind.getTargetItem()); } }
@Override public void visitDataInputAssociation(IDataAssociationBean diaBean, WithDataInputAssociationBean owner){ DataInputAssociation dia = newInstance(DataInputAssociation.class); setDocumentationAndExtensions(dia, diaBean); dia.setId(diaBean.getId()); if(diaBean.getTarget()!=null){ dataAssociationTargets.put(dia, diaBean.getTarget()); } if(diaBean.getSources()!=null){ dataAssociationSources.put(dia, diaBean.getSources()); } for(IAssignmentBean assignementBean : diaBean.getAssignements()){ Assignment assignement = newInstance(Assignment.class); setDocumentationAndExtensions(assignement, assignementBean); assignement.setId(assignementBean.getId()); buildExpression(assignement, assignementBean); dia.addAssignment(assignement); } if(diaBean.getTransformation()!=null){ dia.setTransformation(buildExpression(diaBean.getTransformation().getContent(), diaBean.getTransformation().getId())); } currentDataInputAssociationOwner.addDataInputAssociation(dia); }
@Override public void visitDataOutputAssociation(IDataAssociationBean doaBean, WithDataOutputAssociationBean owner){ DataOutputAssociation doa = newInstance(DataOutputAssociation.class); setDocumentationAndExtensions(doa, doaBean); doa.setId(doaBean.getId()); if(doaBean.getTarget()!=null){ dataAssociationTargets.put(doa, doaBean.getTarget()); } if(doaBean.getSources()!=null){ dataAssociationSources.put(doa, doaBean.getSources()); } for(IAssignmentBean ab : doaBean.getAssignements()){ Assignment a = newInstance(Assignment.class); setDocumentationAndExtensions(a, ab); a.setId(ab.getId()); buildExpression(a, ab); doa.addAssignment(a); } if(doaBean.getTransformation()!=null){ doa.setTransformation(buildExpression(doaBean.getTransformation().getContent(), doaBean.getTransformation().getId())); } currentDataOutputAssociationOwner.addDataOutputAssociation(doa); }