public static string Copy([NotNull] object target) { lastOperationFailed = true; ClearCutData(); if (target == null) { copiedType = Types.Void; ObjectReference = target as Object; hasObjectReference = false; objectReferences.Clear(); Content = "null"; } else { copiedType = target.GetType(); ObjectReference = target as Object; hasObjectReference = objectReference != null; objectReferences.Clear(); Content = PrettySerializer.Serialize(target, ref objectReferences); } lastOperationFailed = false; return(Content); }
public static string CopyObjectReferences(IEnumerable <Object> targets, Type type) { lastOperationFailed = true; ClearCutData(); copiedType = type; hasObjectReference = false; objectReferences.Clear(); var ids = ReusedStringList; #if DEV_MODE && PI_ASSERTATIONS Debug.Assert(ids.Count == 0, "ReusedStringList.Count != 0!"); #endif foreach (var target in targets) { if (!hasObjectReference) { hasObjectReference = true; ObjectReference = target; } objectReferences.Add(target); ids.Add(PrettySerializer.SerializeReference(target)); } var serialize = ids.ToArray(); ids.Clear(); Content = PrettySerializer.Serialize(serialize); lastOperationFailed = false; return(Content); }
public static string Cut([CanBeNull] object target, [CanBeNull] LinkedMemberInfo memberInfo) { lastOperationFailed = true; if (memberInfo != null) { cutMemberInfo = SerializableMemberInfo.Serialize(memberInfo); } ObjectReference = target as Object; hasObjectReference = objectReference != null; if (target != null) { copiedType = target.GetType(); } else if (memberInfo != null) { copiedType = memberInfo.Type; } else { throw new NullReferenceException("Clipboard.Cut both target and memberInfo were null"); } Content = PrettySerializer.Serialize(target); isCut = true; lastOperationFailed = false; return(Content); }
public static string Copy([CanBeNull] object target, [NotNull] Type type) { lastOperationFailed = true; ClearCutData(); if (target == null) { copiedType = type; ObjectReference = null; hasObjectReference = type.IsUnityObject(); objectReferences.Clear(); if (hasObjectReference) { objectReferences.Add(null); } Content = "null"; } else { #if DEV_MODE Debug.Assert(target.GetType() == type, "target.GetType() " + StringUtils.TypeToString(target) + " != type " + StringUtils.ToString(type)); #endif copiedType = type; var unityObject = target as Object; ObjectReference = unityObject; hasObjectReference = objectReference != null; objectReferences.Clear(); if (hasObjectReference) { objectReferences.Add(unityObject); } Content = PrettySerializer.Serialize(target, ref objectReferences); } lastOperationFailed = false; return(Content); }