public static ReferenceLink createReferenceLink(ReferenceRealization referenceRealization) { ReferenceLink referenceLink = rapidmlFactory.createReferenceLink(); referenceLink.setReferenceRealization(referenceRealization); return referenceLink; }
public ReferenceTreatment buildReferenceTreatment(final ReferenceRealization referenceRealization) { ReferenceTreatment _xifexpression = null; ReferenceRealizationEnum _realizationType = referenceRealization.getRealizationType(); boolean _equals = Objects.equal(_realizationType, ReferenceRealizationEnum.LINK); if (_equals) { _xifexpression = this.rapidmlFactory.createReferenceLink(); } else { _xifexpression = this.rapidmlFactory.createReferenceEmbed(); } final ReferenceTreatment referenceTreatment = _xifexpression; referenceTreatment.setReferenceRealization(referenceRealization); if (((referenceTreatment instanceof ReferenceLink) && TagUtils.getTagWithName(referenceRealization, TagUtils.LINK_RELATION).isPresent())) { final String linkRel = TagUtils.getTagWithName(referenceRealization, TagUtils.LINK_RELATION).get().getValue(); ((ReferenceLink) referenceTreatment).setLinkRelation(this.linkRelationRegistry.getLinkRelation(linkRel)); } ReferenceTreatmentFactory.markWithDefaultRealization(referenceTreatment); return referenceTreatment; }
private void generateImplicitCollectionLinks(CollectionResource serviceDataResource, boolean hasRealizationRule) { ServiceDataResource targetResource = resourceFinder.findResource(serviceDataResource.getDataType(), true); boolean useReferenceLinkList = targetResource != null && serviceDataResource.isWithDefaultRealization() && !hasRealizationRule; serviceDataResource .setResourceRealizationKind(useReferenceLinkList ? CollectionRealizationEnum.REFERENCE_LINK_LIST : CollectionRealizationEnum.EMBEDDED_OBJECT_LIST); if (useReferenceLinkList) { ReferenceLink hyperlink = rapidmlFactory.createReferenceLink(); ReferenceTreatmentFactory.maybeSetReferenceRealization(hyperlink); hyperlink.getReferenceRealization().setTargetResource(targetResource); serviceDataResource.getReferenceTreatments().add(hyperlink); if (targetResource.getDefaultLinkDescriptor() != null) { hyperlink.getReferenceRealization().setProperties(targetResource.getDefaultLinkDescriptor()); } else { ObjectRealization linkDescriptor = rapidmlFactory.createObjectRealization(); // set container hyperlink.getReferenceRealization().setInlineObjectRealization(linkDescriptor); // Set by ReferenceTreatmentInlineLinkDescriptorProcessor for user-defined link descriptors hyperlink.getReferenceRealization().setProperties(linkDescriptor); } CollectionReferenceElement collectionReferenceElement = rapidmlFactory.createCollectionReferenceElement(); collectionReferenceElement.setCardinality(new int[] { 0, -1 }); collectionReferenceElement.setDataType(serviceDataResource.getDataType()); hyperlink.setReferenceElement(collectionReferenceElement); serviceDataResource.getReferenceElements().add(collectionReferenceElement); } }