@Override public Record cloneRecord() throws RecordException { return delegate.cloneRecord(); }
@Override public Record cloneRecord(IdentityRecordStack parentRecords) throws RecordException { return delegate.cloneRecord(parentRecords); }
@Override public IdRecord cloneRecord(IdentityRecordStack parentRecords) throws RecordException { Record recordClone = this.record.cloneRecord(parentRecords); return new IdRecordImpl(recordClone, new HashMap<SchemaId, QName>(mapping), new EnumMap<Scope, SchemaId>(recordTypeIds)); }
private Object cloneValue(Object value, IdentityRecordStack parentRecords) throws RecordException, CloneNotSupportedException { if (value instanceof HierarchyPath) { Object[] elements = ((HierarchyPath)value).getElements(); Object[] newElements = new Object[elements.length]; for (int i = 0; i < newElements.length; i++) { newElements[i] = cloneValue(elements[i], parentRecords); } return new HierarchyPath(newElements); } if (value instanceof List) { List<Object> newList = new ArrayList<Object>(); List<Object> values = (List<Object>)value; for (Object object : values) { newList.add(cloneValue(object, parentRecords)); } return newList; } if (value instanceof Blob) { return ((Blob)value).clone(); } if (value instanceof Record) { Record record = (Record) value; return (record).cloneRecord(parentRecords); } return value; // All other values are immutable }
private Record writeRecord(Record record) throws RepositoryException, InterruptedException{ record = record.cloneRecord(); Record originalRecord = record; ResponseStatus status = ResponseStatus.UP_TO_DATE; if (records.containsKey(record.getId())) { originalRecord = records.get(record.getId()); record = merge(record, originalRecord); if (!originalRecord.equals(record)) { status = ResponseStatus.UPDATED; } } else { status = ResponseStatus.CREATED; } QName recordTypeName = record.getRecordTypeName(); Long recordTypeVersion = getTypeManager().getRecordTypeByName(recordTypeName, null).getVersion(); record.setRecordType(recordTypeName, recordTypeVersion); validateRecord(record, originalRecord, getTypeManager().getRecordTypeByName(recordTypeName, null)); Long version = record.getVersion() == null ? 0l : record.getVersion(); record.setVersion(version + 1); records.put(record.getId(), record.cloneRecord()); record.setResponseStatus(status); return record; }
Record newRecord = record.cloneRecord();
private Record updateMutableFields(Record record, boolean latestRecordType, List<MutationCondition> conditions, FieldTypes fieldTypes) throws RepositoryException { Record newRecord = record.cloneRecord();
Record newRecord = record.cloneRecord(); newRecord.setId(recordId);
Record responseRecord = record.cloneRecord(); if (newRecord != null) {