/** * mergeFragmentDefinitionRefIds - utility method to merge reference ids * * @param fragmentReferences list of fragment references * @param refIds merged set of unique reference ids */ private void mergeFragmentDefinitionRefIds(List<BaseFragmentElement> fragmentReferences, Set<String> refIds) { // merge list of fragment reference reference ids if ((fragmentReferences != null) && !fragmentReferences.isEmpty()) { for (BaseFragmentElement fragmentReference : fragmentReferences) { String refId = ((FragmentReference)fragmentReference).getRefId(); if (refId != null) { refIds.add(refId); } } } }
FragmentDefinition fragmentDefinition = (FragmentDefinition)((fragmentDefinitions != null) ? fragmentDefinitions.get(fragmentReference.getRefId()) : null); if ((fragmentDefinition != null) && (fragmentDefinition.getRootFragment() instanceof Fragment)) contentFragmentImpl.setRefId(fragmentReference.getRefId()); return contentFragmentImpl;
/** * Generate content fragment reference for a PSML fragment reference. * * @param parentId content fragment parent id * @param pageOrTemplate PSML page or template * @param definition PSML fragment page, page template, or fragments definition * @param fragmentReference PSML fragment * @return content fragment hierarchy or null if undefined */ private ContentFragmentImpl newContentFragment(String parentId, BaseFragmentsElement pageOrTemplate, BaseFragmentsElement definition, FragmentReference fragmentReference) { // generate content fragment reference for fragment reference String contentFragmentId = parentId+CONTENT_FRAGMENT_ID_SEPARATOR+fragmentReference.getId(); ContentFragmentImpl contentFragmentImpl = newContentFragment(contentFragmentId, pageOrTemplate, pageOrTemplate, fragmentReference, null, null, false, true); contentFragmentImpl.setType(ContentFragment.REFERENCE); contentFragmentImpl.setRefId(fragmentReference.getRefId()); // inherit fragment reference attributes mergeContentFragmentAttributes(contentFragmentImpl, fragmentReference); // set content fragment security constraints setContentFragmentSecurityConstraints(contentFragmentImpl, fragmentReference); return contentFragmentImpl; }
if (!refId.equals(fragmentReference.getRefId()))
copyFragment.setRefId(sourceFragment.getRefId());