diff --git a/src/main/java/org/ntlab/rdlcanvas/generaterdl/BaseGenerateRDL.java b/src/main/java/org/ntlab/rdlcanvas/generaterdl/BaseGenerateRDL.java new file mode 100644 index 0000000..085a326 --- /dev/null +++ b/src/main/java/org/ntlab/rdlcanvas/generaterdl/BaseGenerateRDL.java @@ -0,0 +1,41 @@ +package org.ntlab.rdlcanvas.generaterdl; + +import org.ntlab.rdlcanvas.models.*; + +import java.util.ArrayList; + +public class BaseGenerateRDL { + + // [depending: insideDependedId -> insideArguments] : outsideDependedId -> outsideArguments] + public RDLSpecDependencyTerm createNestDependencyTerm(RDLSpec spec, String depending, String insideDependedId, boolean insideDependedIdPrime, String insideArgument, String outsideDependedId, boolean outsideDependedIdPrime, String outsideArgument){ + + ArrayList insideDependedResourceList = new ArrayList<>(); + ArrayList insideArgumentsList = new ArrayList<>(); + ArrayList outsideDependedResourceList = new ArrayList<>(); + ArrayList outsideArgumentsList = new ArrayList<>(); + + insideArgumentsList.add(spec.getConstant(insideArgument, RDLSpecLang.typeString)); + outsideArgumentsList.add(spec.getConstant(outsideArgument, RDLSpecLang.typeString)); + + if(insideDependedIdPrime){ + insideDependedResourceList.add(spec.getRDLSpecResourceDeclaration(insideDependedId).getPrimedResource()); + }else{ + insideDependedResourceList.add(spec.getRDLSpecResourceDeclaration(insideDependedId).getResource()); + } + + if(outsideDependedIdPrime){ + outsideDependedResourceList.add(spec.getRDLSpecResourceDeclaration(outsideDependedId).getPrimedResource()); + }else { + outsideDependedResourceList.add(spec.getRDLSpecResourceDeclaration(outsideDependedId).getResource()); + } + + + RDLSpecDependencyTerm insideDependencyTerm = new RDLSpecDependencyTerm(spec.getRDLSpecResourceDeclaration(depending).getResource(), insideDependedResourceList, insideArgumentsList); + RDLSpecDependencyTerm outsideDependencyTerm = new RDLSpecDependencyTerm(insideDependencyTerm, outsideDependedResourceList, outsideArgumentsList); + + + return outsideDependencyTerm; + } + + +}