private Map<String, Collection<String>> cloneParams(Map<String, Collection<String>> map) { // TODO: implement more efficient clone return CloneUtil.clone(map); }
public static <T> List<T> cloneCollectionMembers(Collection<T> collection) { if (collection == null) { return null; } List<T> clonedCollection = new ArrayList<>(collection.size()); for (T element : collection) { clonedCollection.add(clone(element)); } return clonedCollection; }
public static <T> List<T> cloneListMembers(List<T> list) { List<T> clonedCollection = new ArrayList<>(list.size()); for (T element : list) { clonedCollection.add(clone(element)); } return clonedCollection; }
public SearchResultList<T> clone() { SearchResultList<T> clone = new SearchResultList<>(); clone.metadata = this.metadata; // considered read-only object if (this.list != null) { clone.list = new ArrayList(this.list.size()); for (T item : this.list) { clone.list.add(CloneUtil.clone(item)); } } return clone; }
public ExpressionWrapper clone() { // todo call super.clone? Object expressionClone = CloneUtil.clone(expression); return new ExpressionWrapper(elementName, expressionClone); }
@Nullable public static Object cloneIfNecessary(String name, Object value) { if (value == null) { return null; } Object immutableOrNull = tryMakingImmutable(value); if (immutableOrNull != null) { return immutableOrNull; } else { try { return CloneUtil.clone(value); } catch (Throwable t) { LOGGER.warn("Scripting variable value {} of type {} couldn't be cloned. Using original.", name, value.getClass()); return value; } } }
protected void copyValues(CloneStrategy strategy, PrismPropertyValueImpl<T> clone) { super.copyValues(strategy, clone); clone.value = CloneUtil.clone(this.value); if (this.expression != null) { clone.expression = this.expression.clone(); } clone.rawElement = this.rawElement; }
public OperationResult clone() { OperationResult clone = new OperationResult(operation); clone.status = status; clone.params = cloneParams(params); clone.context = cloneParams(context); clone.returns = cloneParams(returns); clone.token = token; clone.messageCode = messageCode; clone.message = message; clone.userFriendlyMessage = CloneUtil.clone(userFriendlyMessage); clone.cause = CloneUtil.clone(cause); clone.count = count; clone.hiddenRecordsCount = hiddenRecordsCount; if (subresults != null) { clone.subresults = new ArrayList<>(subresults.size()); for (OperationResult subresult : subresults) { if (subresult != null) { clone.subresults.add(subresult.clone()); } } } clone.details = CloneUtil.clone(details); clone.summarizeErrors = summarizeErrors; clone.summarizePartialErrors = summarizePartialErrors; clone.summarizeSuccesses = summarizeSuccesses; clone.minor = minor; clone.asynchronousOperationReference = asynchronousOperationReference; return clone; }
@SuppressWarnings("unchecked") public static <V extends PrismValue, D extends ItemDefinition> ItemDelta<V, D> createAddDeltaFor(Item<V, D> item, PrismValue value) { ItemDelta<V, D> rv = item.createDelta(item.getPath()); rv.addValueToAdd((V) CloneUtil.clone(value)); return rv; }
PrimitiveXNodeImpl cloneInternal() { PrimitiveXNodeImpl clone; if (value != null) { // if we are parsed, things are much simpler clone = new PrimitiveXNodeImpl(CloneUtil.clone(getValue())); } else { clone = new PrimitiveXNodeImpl(); clone.valueParser = valueParser; // for the time being we simply don't clone the valueParser } clone.isAttribute = this.isAttribute; clone.copyCommonAttributesFrom(this); return clone; } }
private <O extends ObjectType> List<V> executeSearchUsingCache(Class<O> targetTypeClass, final QName targetTypeQName, ObjectQuery query, List<ItemDelta<V, D>> additionalAttributeDeltas, final ExpressionEvaluationContext params, String contextDescription, Task task, OperationResult result) throws ExpressionEvaluationException, ObjectNotFoundException, SchemaException { ObjectSearchStrategyType searchStrategy = getSearchStrategy(); AbstractSearchExpressionEvaluatorCache cache = getCache(); if (cache == null) { return executeSearch(null, targetTypeClass, targetTypeQName, query, searchStrategy, additionalAttributeDeltas, params, contextDescription, task, result); } List<V> list = cache.getQueryResult(targetTypeClass, query, searchStrategy, params, prismContext); if (list != null) { LOGGER.trace("Cache: HIT {} ({})", query, targetTypeClass.getSimpleName()); return CloneUtil.clone(list); } LOGGER.trace("Cache: MISS {} ({})", query, targetTypeClass.getSimpleName()); List<PrismObject> rawResult = new ArrayList<>(); list = executeSearch(rawResult, targetTypeClass, targetTypeQName, query, searchStrategy, additionalAttributeDeltas, params, contextDescription, task, result); if (list != null && !list.isEmpty()) { // we don't want to cache negative results (e.g. if used with focal objects it might mean that they would be attempted to create multiple times) cache.putQueryResult(targetTypeClass, query, searchStrategy, params, list, rawResult, prismContext); } return list; }
final XMLGregorianCalendar beforeEnd = CloneUtil.clone(stageDeadline); beforeEnd.add(beforeDeadline.negate()); if (XmlTypeConverter.toMillis(beforeEnd) > System.currentTimeMillis()) {
worker.setOwnerRef(CloneUtil.clone(coordinatorTaskBean.getOwnerRef())); worker.setCategory(coordinatorTask.getCategory()); worker.setObjectRef(CloneUtil.clone(coordinatorTaskBean.getObjectRef())); worker.setRecurrence(TaskRecurrenceType.SINGLE); worker.setParent(coordinatorTask.getTaskIdentifier());