protected List<?> _getReferenceTreatmentIncludedProperties(final ReferenceEmbed refEmbed) { final ArrayList<EObject> includedProps = new ArrayList<EObject>(); includedProps.addAll(this.getIncludedPrimitiveProperties(refEmbed)); includedProps.addAll(refEmbed.getNestedReferenceTreatments()); return includedProps; }
@Override public List<ReferenceTreatment> apply(ReferenceEmbed input) { return input.getAllNestedReferenceTreatments(); } });
private boolean usesDefaultObjectRealization(ReferenceEmbed embed) { return embed.getReferenceRealization() == null; }
_builder.append(_referenceTreatmentName, " "); _builder.append(" : "); String _name = ref.getReferenceElement().getDataType().getName(); _builder.append(_name, " "); String _cardinalityLabel = com.reprezen.genflow.common.xtend.XDataTypeExtensions.getCardinalityLabel(ref, resource.getIncludedProperties()); _builder.newLine(); if (((ref.getLinkDescriptor() != null) && (!isRecursive))) { Iterable<PrimitiveProperty> _filter = Iterables.<PrimitiveProperty>filter(ListExtensions.<PropertyRealization, Feature>map(ref.getLinkDescriptor().getAllIncludedProperties(), _function), PrimitiveProperty.class); boolean _hasElements = false; for(final PrimitiveProperty feature : _filter) { EList<ReferenceTreatment> _nestedReferenceTreatments = ref.getNestedReferenceTreatments(); boolean _hasElements_1 = false; for(final ReferenceTreatment nestedReferenceTreatment : _nestedReferenceTreatments) {
final ReferenceElement referencedProperty = refEmbed.getReferenceElement(); final String cardinality = XDataTypeExtensions.getCardinalityLabel(refEmbed, includedProperies); StringConcatenation _builder = new StringConcatenation(); EList<ReferenceTreatment> _nestedReferenceTreatments = refEmbed.getNestedReferenceTreatments(); for(final ReferenceTreatment refTreatment : _nestedReferenceTreatments) { String _generateReferenceTreatment = this.generateReferenceTreatment(refTreatment, includedProperies, cycleDetector, Integer.valueOf(((indent).intValue() + 1)));
private Iterable<String> getContainmentXpath(final ReferenceLink referenceLink) { final Function1<ReferenceEmbed, ReferenceElement> _function = (ReferenceEmbed it) -> { return it.getReferenceElement(); }; final Function1<ReferenceElement, Iterable<String>> _function_1 = (ReferenceElement it) -> { return this.getContainmentXpath(it); }; return Iterables.<String>concat(ListExtensions.<ReferenceElement, Iterable<String>>map(ListExtensions.<ReferenceEmbed, ReferenceElement>map(referenceLink.getEmbedHierarchy(), _function), _function_1)); }
private void normalizeUserDefinedReferenceEmbed(final ReferenceEmbed embed) { maybeSetReferenceRealization(embed); removeInvalidTreatments(embed.getReferenceRealization().getReferenceTreatments()); ReferenceElement property = embed.getReferenceElement(); if (property != null) { if (!isDefailtRealization(embed)) { // Need to iterate on a copy of NestedReferenceTreatments because it can be modified during // normalization, // e.g. ReferenceLink will be deleted when it's converted to ReferenceEmbed for (ReferenceTreatment treatment : new ArrayList<>( embed.getReferenceRealization().getReferenceTreatments())) { // resolve nested reference treatments maybeConvertReferenceLinkToEmbed(embed, treatment); } } } }
/** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<ReferenceEmbed> getEmbedHierarchy() { EObject container = eContainer(); if (container instanceof ReferenceRealization) { // use containers of the parent ReferenceRealization container = container.eContainer(); } if (container instanceof ReferenceEmbed) { ReferenceEmbed parentEmbed = (ReferenceEmbed)container; List<ReferenceEmbed> hierarchy = Lists.newArrayList(parentEmbed.getEmbedHierarchy()); hierarchy.add(parentEmbed); return ECollections.unmodifiableEList(hierarchy); } return ECollections.emptyEList(); }
IScope scope_ReferenceTreatment_referenceElement(ReferenceTreatment referenceTreatment, EReference eRef) { EObject econtainer = referenceTreatment.eContainer(); final Structure contextDataType; if (econtainer instanceof ReferenceEmbed) { contextDataType = ((ReferenceEmbed) econtainer).getReferenceElement().getDataType(); } else if (econtainer instanceof ReferenceRealization) { contextDataType = ((ReferenceTreatment) ((ReferenceRealization) econtainer).eContainer()) .getReferenceElement().getDataType(); } else if (econtainer instanceof TypedMessage) { contextDataType = ((TypedMessage) econtainer).getActualType(); } else { contextDataType = ((RealizationContainer) econtainer).getDataType(); } Iterable<ReferenceProperty> result = Iterables.filter(getAllFeatures(contextDataType), ReferenceProperty.class); if (referenceTreatment instanceof ReferenceLink) { // leave only containment references, containment reference might // not be supported in WADL/XSD generator // result = filter(result, isContainmentReferenceProperty()); } return Scopes.scopeFor(result); }
private String getNestedTreatments(final ReferenceTreatment treatment) { String _switchResult = null; boolean _matched = false; if (treatment instanceof ReferenceLink) { _matched=true; _switchResult = "{}"; } if (!_matched) { if (treatment instanceof ReferenceEmbed) { _matched=true; _switchResult = this.getEnrichmentSpec(((ReferenceEmbed)treatment).getNestedReferenceTreatments()); } } return _switchResult; }
@Override public List<ReferenceTreatment> apply(ReferenceEmbed input) { return input.getAllNestedReferenceTreatments(); } });