com.evolveum.midpoint.prism.Item.clone()方法的使用及代码示例

x33g5p2x  于2022-01-21 转载在 其他  
字(5.0k)|赞(0)|评价(0)|浏览(80)

本文整理了Java中com.evolveum.midpoint.prism.Item.clone()方法的一些代码示例,展示了Item.clone()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Item.clone()方法的具体详情如下:
包路径:com.evolveum.midpoint.prism.Item
类名称:Item
方法名:clone

Item.clone介绍

[英]Literal clone.
[中]文字克隆。

代码示例

代码示例来源:origin: Evolveum/midpoint

static <T extends Item> Collection<T> cloneCollection(Collection<T> items) {
  Collection<T> clones = new ArrayList<>(items.size());
  for (T item: items) {
    clones.add((T)item.clone());
  }
  return clones;
}

代码示例来源:origin: Evolveum/midpoint

protected void copyValues(ItemDeltaItem<V,D> clone) {
  if (this.itemNew != null) {
    clone.itemNew = this.itemNew.clone();
  }
  if (this.delta != null) {
    clone.delta = this.delta.clone();
  }
  if (this.itemOld != null) {
    clone.itemOld = this.itemOld.clone();
  }
  clone.residualPath = this.residualPath;
  clone.resolvePath = this.resolvePath;
  if (this.subItemDeltas != null) {
    clone.subItemDeltas = ItemDeltaCollectionsUtil.cloneCollection(this.subItemDeltas);
  }
}

代码示例来源:origin: Evolveum/midpoint

public Item<V,D> getItemNewMatchingPath(Item<V,D> itemOld) throws SchemaException {
  if (definition == null) {
    throw new IllegalStateException("No definition in "+this);
  }
  Item<V,D> itemNew;
  if (itemOld == null) {
    if (isEmpty()) {
      return null;
    }
    itemNew = definition.instantiate(getElementName());
  } else {
    itemNew = itemOld.clone();
  }
  applyToMatchingPath(itemNew, ParameterizedEquivalenceStrategy.DEFAULT_FOR_DELTA_APPLICATION);
  return itemNew;
}

代码示例来源:origin: Evolveum/midpoint

@SuppressWarnings("unchecked")
public void mergeContent(PrismContainerValue<?> other, List<QName> overwrite) throws SchemaException {
  List<ItemName> remainingToOverwrite = overwrite.stream().map(ItemName::fromQName).collect(Collectors.toList());
  if (other.getItems() != null) {
    for (Item<?, ?> otherItem : other.getItems()) {
      Item<?, ?> existingItem = findItem(otherItem.getElementName());
      if (QNameUtil.remove(remainingToOverwrite, otherItem.getElementName())
          || existingItem != null && existingItem.isSingleValue()) {
        remove(existingItem);
      }
      merge(otherItem.clone());
    }
  }
  remainingToOverwrite.forEach(name -> removeItem(name, Item.class));
}

代码示例来源:origin: Evolveum/midpoint

/**
 * Returns the "new" state of the property - the state that would be after
 * the delta is applied.
 */
public Item<V,D> getItemNew(Item<V,D> itemOld) throws SchemaException {
  if (definition == null) {
    throw new IllegalStateException("No definition in "+this);
  }
  Item<V,D> itemNew;
  if (itemOld == null) {
    if (isEmpty()) {
      return null;
    }
    itemNew = definition.instantiate(getElementName());
  } else {
    itemNew = itemOld.clone();
  }
  applyTo(itemNew);
  return itemNew;
}

代码示例来源:origin: Evolveum/midpoint

if (containerCVal != null) {
  for (Item<?,?> containerItem: containerCVal.getItems()) {
    deltaCVal.add(containerItem.clone());

代码示例来源:origin: Evolveum/midpoint

private boolean hasValue(Item<V,D> item, ItemDelta<V,D> itemDelta) throws SchemaException {
  if (item == null || item.isEmpty()) {
    return itemDelta != null && itemDelta.addsAnyValue();
  } else {
    if (itemDelta == null || itemDelta.isEmpty()) {
      return true;
    } else {
      Item<V,D> clonedItem = item.clone();
      itemDelta.applyToMatchingPath(clonedItem, ParameterizedEquivalenceStrategy.DEFAULT_FOR_DELTA_APPLICATION);
      return !clonedItem.isEmpty();
    }
  }
}

代码示例来源:origin: Evolveum/midpoint

public static void mergeExtension(PrismContainerValue<?> dstExtensionContainerValue, PrismContainerValue<?> srcExtensionContainerValue) throws SchemaException {
  for (Item<?,?> srcExtensionItem: emptyIfNull(srcExtensionContainerValue.getItems())) {
    Item<?,?> magicItem = dstExtensionContainerValue.findItem(srcExtensionItem.getElementName());
    if (magicItem == null) {
      //noinspection unchecked
      dstExtensionContainerValue.add(srcExtensionItem.clone());
    }
  }
}

代码示例来源:origin: Evolveum/midpoint

private static void convertToLegacy(
    ItemDeltaItem<PrismContainerValue<AssignmentType>, PrismContainerDefinition<AssignmentType>> idi) {
  if (idi == null || idi.getDelta() == null || idi.getSubItemDeltas() != null) {
    return;
  }
  // Legacy approach (when adding/removing assignments) was: itemOld+itemNew = value, delta = null
  // This was recently changed, to provide precise information (add = null->itemNew, delete = itemOld->null).
  // However, to not break scripts before 3.6 release we provide imitation of old behavior here.
  // (Moreover, for magic assignment the delta is not correct anyway.)
  if (idi.getDelta().isAdd() || idi.getDelta().isReplace()) {
    idi.setItemOld(idi.getItemNew().clone());
  } else {
    idi.setItemNew(idi.getItemOld().clone());
  }
  idi.setDelta(null);
}

代码示例来源:origin: Evolveum/midpoint

return (T) ((Item<?,?>)orig).clone();

代码示例来源:origin: Evolveum/midpoint

newTask.setExecutionStatus(RUNNABLE);
for (Item<?, ?> extensionItem : extensionItems) {
  newTask.asPrismObject().getExtension().add(extensionItem.clone());

代码示例来源:origin: Evolveum/midpoint

definitionForReport.getValue().add(item.clone());

代码示例来源:origin: Evolveum/midpoint

Item item = (Item) value;
if (!item.isImmutable()) {
  Item clone = item.clone();
  clone.setImmutable(true);
  return (T) clone;

代码示例来源:origin: Evolveum/midpoint

itemOld = itemOld.clone();
itemOld.filterValues(val -> setDef.containsTunnel(val));
itemNew = itemNew.clone();
itemNew.filterValues(val -> setDef.containsTunnel(val));

相关文章