@Override public SoftlinkRelationEntity getCopy(SoftlinkRelationEntity target, CopyUnit copyUnit) { if (target == null) { target = new SoftlinkRelationEntity(); } // only set softlink rel on target if not in Predecessor mode if(!CopyResourceDomainService.CopyMode.MAIA_PREDECESSOR.equals(copyUnit.getMode())){ target.setSoftlinkRef(this.softlinkRef); } target.setCpiResource(copyUnit.getTargetResource()); CopyHelper.copyForeignable(target, this, copyUnit); return target; }
@Override public PropertyDescriptorEntity getCopy(PropertyDescriptorEntity target, CopyUnit copyUnit) { if (target == null) { target = new PropertyDescriptorEntity(); } // properties will be added in when copying PropertyEntity target.setEncrypt(isEncrypt()); target.setPropertyName(getPropertyName()); target.setNullable(isNullable()); target.setTesting(isTesting()); target.setValidationLogic(getValidationLogic()); target.setPropertyComment(getPropertyComment()); target.setCardinalityProperty(getCardinalityProperty()); target.setPropertyTypeEntity(getPropertyTypeEntity()); target.setDefaultValue(getDefaultValue()); target.setExampleValue(getExampleValue()); target.setMachineInterpretationKey(getMachineInterpretationKey()); target.setOptional(isOptional()); target.setDisplayName(getDisplayName()); CopyHelper.copyForeignable(target, this, copyUnit); return target; }
CopyHelper.copyForeignable(targetCopy, this, copyUnit);
@Override public ResourceEntity getCopy(ResourceEntity target, CopyUnit copyUnit) { // copy name when releasing if(copyUnit.getMode() == CopyResourceDomainService.CopyMode.RELEASE){ target.setName(this.getName()); copyUnit.getResult().setTargetResourceName(target.getName()); } // resource type can not be changed! (both resources must be from the same type/subtype!) Integer origResTypeId = this.getResourceType() != null ? this.getResourceType().getId() : null; Integer targetResTypeId = target.getResourceType() != null ? target.getResourceType().getId() : null; if (targetResTypeId != null && !CopyHelper.equalsWithNullCheck(origResTypeId, targetResTypeId)) { copyUnit.getResult().addCopyResultError(CopyResourceResult.CopyFailure.RESOURCETYPE_DIFF, CopyResourceResult.CopyTarget.RESOURCE, null, target.getResourceType().getName(), this.getResourceType().getName()); } if (targetResTypeId == null) { target.setResourceType(this.getResourceType()); } // is deletable if (target.isDeletable() != this.isDeletable()) { copyUnit.getResult().addChangedResourceParam(CopyResourceResult.CopyInfo.DELETABLE_CHANGED); } target.setDeletable(this.isDeletable()); // only set softlink rel on target if not in Predecessor mode if(!CopyResourceDomainService.CopyMode.MAIA_PREDECESSOR.equals(copyUnit.getMode())){ target.setSoftlinkId(this.getSoftlinkId()); } CopyHelper.copyForeignable(target, this, copyUnit); return target; }
@Test public void copyForeignable_resourceCopy() throws AMWException{ // given ResourceGroupEntity originGroup = resourceGroupEntityBuilder.buildResourceGroupEntity("origin", null, true); ResourceEntity origin = new ResourceEntityBuilder().withOwner(ForeignableOwner.MAIA).forResourceGroup(originGroup).build(); origin.setExternalLink("originLink"); origin.setExternalKey("originKey"); ResourceGroupEntity targetGroup = resourceGroupEntityBuilder.buildResourceGroupEntity("target", null, true); ResourceEntity target = new ResourceEntityBuilder().forResourceGroup(targetGroup).build(); ForeignableOwner actingOwner = ForeignableOwner.AMW; CopyUnit copyUnit = new CopyUnit(origin, target, CopyResourceDomainService.CopyMode.COPY, actingOwner); // when CopyHelper.copyForeignable(target, origin, copyUnit); // then assertEquals(actingOwner, target.getOwner()); assertNull(target.getExternalKey()); assertNull(target.getExternalLink()); }
@Test public void copyForeignable_copy() throws AMWException{ // given Foreignable origin = new PropertyDescriptorEntityBuilder().withOwner(ForeignableOwner.MAIA).build(); origin.setExternalLink("originLink"); origin.setExternalKey("originKey"); Foreignable target = new PropertyDescriptorEntityBuilder().withOwner(ForeignableOwner.AMW).build(); ForeignableOwner actingOwner = ForeignableOwner.AMW; CopyUnit copyUnit = new CopyUnit(null, new ResourceEntityBuilder().withName("targetResource").build(), CopyResourceDomainService.CopyMode.COPY, ForeignableOwner.AMW); // when CopyHelper.copyForeignable(target, origin, copyUnit); // then assertEquals(actingOwner, target.getOwner()); assertNull(target.getExternalLink()); assertNull(target.getExternalKey()); }
@Test public void copyForeignable_resourceRelease() throws AMWException{ // given ResourceGroupEntity originGroup = resourceGroupEntityBuilder.buildResourceGroupEntity("origin", null, true); ResourceEntity origin = new ResourceEntityBuilder().withOwner(ForeignableOwner.MAIA).forResourceGroup(originGroup).build(); origin.setExternalLink("originLink"); origin.setExternalKey("originKey"); ResourceGroupEntity targetGroup = resourceGroupEntityBuilder.buildResourceGroupEntity("target", null, true); ResourceEntity target = new ResourceEntityBuilder().forResourceGroup(targetGroup).build(); ForeignableOwner actingOwner = ForeignableOwner.AMW; CopyUnit copyUnit = new CopyUnit(origin, target, CopyResourceDomainService.CopyMode.RELEASE, actingOwner); // when CopyHelper.copyForeignable(target, origin, copyUnit); // then assertEquals(actingOwner, target.getOwner()); assertEquals(origin.getExternalKey(), target.getExternalKey()); assertEquals(origin.getExternalLink(), target.getExternalLink()); }
@Test @Ignore public void copyForeignable_release() throws AMWException{ // TODO: cweber FIXME! // given Foreignable origin = new PropertyDescriptorEntityBuilder().withOwner(ForeignableOwner.MAIA).build(); origin.setExternalLink("originLink"); origin.setExternalKey("originKey"); Foreignable target = new PropertyDescriptorEntityBuilder().withOwner(ForeignableOwner.AMW).build(); ForeignableOwner actingOwner = ForeignableOwner.AMW; CopyUnit copyUnit = new CopyUnit(null, new ResourceEntityBuilder().withName("targetResource").build(), CopyResourceDomainService.CopyMode.COPY, actingOwner); // when CopyHelper.copyForeignable(target, origin, copyUnit); // then assertEquals(origin.getOwner(), target.getOwner()); assertEquals(origin.getExternalKey(), target.getExternalKey()); assertEquals(origin.getExternalLink(), target.getExternalLink()); }
CopyHelper.copyForeignable(consumedTarget, this, copyUnit);