Example #1
0
		protected override CommandCanExecuteResult CanExecute()
		{
			if (CurrentNode == null || !CurrentNode.Id.In(Terminals.ObjectIdentifier, Terminals.Identifier))
			{
				return false;
			}

			_schemaObject = SemanticModel.AllReferenceContainers
				.SelectMany(c => c.AllReferences)
				.Where(c => (c.ObjectNode == CurrentNode || (c as OracleProgramReference)?.ProgramIdentifierNode == CurrentNode) && c.SchemaObject != null)
				.Select(c => c.SchemaObject)
				.SingleOrDefault();

			if (_schemaObject == null)
			{
				_schemaObject = SemanticModel.AllReferenceContainers
					.SelectMany(c => c.ColumnReferences)
					.Where(c => c.ObjectNode == CurrentNode && c.ValidObjectReference?.SchemaObject != null)
					.Select(c => c.ValidObjectReference.SchemaObject)
					.FirstOrDefault();
			}

			return
				new CommandCanExecuteResult
				{
					CanExecute = _schemaObject != null,
					IsLongOperation = true
				};
		}
Example #2
0
        protected override CommandCanExecuteResult CanExecute()
        {
            if (CurrentNode == null || !CurrentNode.Id.In(Terminals.ObjectIdentifier, Terminals.Identifier))
            {
                return(false);
            }

            _schemaObject = SemanticModel.AllReferenceContainers
                            .SelectMany(c => c.AllReferences)
                            .Where(c => (c.ObjectNode == CurrentNode || (c as OracleProgramReference)?.ProgramIdentifierNode == CurrentNode) && c.SchemaObject != null)
                            .Select(c => c.SchemaObject)
                            .SingleOrDefault();

            if (_schemaObject == null)
            {
                _schemaObject = SemanticModel.AllReferenceContainers
                                .SelectMany(c => c.ColumnReferences)
                                .Where(c => c.ObjectNode == CurrentNode && c.ValidObjectReference?.SchemaObject != null)
                                .Select(c => c.ValidObjectReference.SchemaObject)
                                .FirstOrDefault();
            }

            return
                (new CommandCanExecuteResult
            {
                CanExecute = _schemaObject != null,
                IsLongOperation = true
            });
        }
        private static string GetFullSchemaObjectToolTip(OracleSchemaObject schemaObject)
        {
            string tip = null;

            if (schemaObject is OracleSynonym synonym)
            {
                tip          = $"{GetSchemaObjectToolTip(synonym)} => ";
                schemaObject = synonym.SchemaObject;
            }

            return($"{tip}{GetSchemaObjectToolTip(schemaObject)}");
        }
        private static bool TryGetSchemaObjectProgramMetadata(OracleSchemaObject schemaObject, out IEnumerable <OracleProgramMetadata> functionMetadata)
        {
            var targetObject = schemaObject.GetTargetSchemaObject();

            if (targetObject is IProgramCollection functionContainer)
            {
                functionMetadata = functionContainer.Programs;
                return(true);
            }

            functionMetadata = EmptyMetadataCollection;
            return(false);
        }
        private void BuildSimpleToolTip(OracleSchemaObject schemaObject)
        {
            if (schemaObject == null)
            {
                return;
            }

            ToolTip =
                new ToolTipObject
            {
                DataContext = GetFullSchemaObjectToolTip(schemaObject)
            };
        }
        private static string GetObjectTypeLabel(OracleSchemaObject schemaObject)
        {
            switch (schemaObject.Type)
            {
            case OracleObjectType.Type:
                if (schemaObject is OracleTypeObject)
                {
                    return("Object type");
                }

                var collection = (OracleTypeCollection)schemaObject;
                return(collection.CollectionType == OracleCollectionType.Table
                                                ? "Object table"
                                                : "Object varrying array");

            default:
                return(schemaObject.Type.ToLower());
            }
        }
Example #7
0
        private static object MapSchemaObject(IDataRecord reader, IDictionary <OracleObjectIdentifier, OracleSchemaObject> allObjects)
        {
            var objectTypeIdentifer = OracleObjectIdentifier.Create(QualifyStringObject(reader["OWNER"]), QualifyStringObject(reader["OBJECT_NAME"]));
            var objectType          = (string)reader["OBJECT_TYPE"];
            var created             = (DateTime)reader["CREATED"];
            var isValid             = (string)reader["STATUS"] == "VALID";
            var lastDdl             = (DateTime)reader["LAST_DDL_TIME"];
            var isTemporary         = String.Equals((string)reader["TEMPORARY"], "Y");

            OracleSchemaObject schemaObject = null;

            switch (objectType)
            {
            case OracleObjectType.Table:
                if (allObjects.TryGetValue(objectTypeIdentifer, out schemaObject))
                {
                    goto case OracleObjectType.MaterializedView;
                }

                goto default;

            case OracleObjectType.MaterializedView:
            case OracleObjectType.Type:
                if (schemaObject == null && allObjects.TryGetValue(objectTypeIdentifer, out schemaObject))
                {
                    schemaObject.Created     = created;
                    schemaObject.IsTemporary = isTemporary;
                    schemaObject.IsValid     = isValid;
                    schemaObject.LastDdl     = lastDdl;
                }
                break;

            default:
                schemaObject = OracleObjectFactory.CreateSchemaObjectMetadata(objectType, objectTypeIdentifer.NormalizedOwner, objectTypeIdentifer.NormalizedName, isValid, created, lastDdl, isTemporary);
                AddObjectToDictionary(allObjects, schemaObject, schemaObject.Type);
                break;
            }

            return(schemaObject);
        }
        private static OracleDataObject GetSingleObjectReference(OracleColumnReference column)
        {
            OracleSchemaObject dataObject = null;

            if (column.Owner.ObjectReferences.Count == 1)
            {
                dataObject = column.Owner.ObjectReferences.First().SchemaObject.GetTargetSchemaObject();
            }

            if (dataObject == null)
            {
                var schemaObjectReference = column.ValidObjectReference;
                if (schemaObjectReference != null)
                {
                    dataObject = schemaObjectReference.SchemaObject.GetTargetSchemaObject();
                }
            }

            return(dataObject != null && dataObject.Type == OracleObjectType.Table
                                ? (OracleDataObject)dataObject
                                : null);
        }
Example #9
0
		private bool FilterSchema(OracleSchemaObject schemaObject, string activeSchema, string schemaName)
		{
			return String.IsNullOrEmpty(schemaName)
				? String.Equals(schemaObject.Owner, activeSchema) || String.Equals(schemaObject.Owner, OracleObjectIdentifier.SchemaPublic)
				: String.Equals(schemaObject.Owner, schemaName);
		}
Example #10
0
        public static OracleSchemaObject GetTargetSchemaObject(this OracleSchemaObject schemaObject)
        {
            var synonym = schemaObject as OracleSynonym;

            return(synonym == null ? schemaObject : synonym.SchemaObject);
        }
Example #11
0
		private static string GetObjectTypeLabel(OracleSchemaObject schemaObject)
		{
			switch (schemaObject.Type)
			{
				case OracleObjectType.Type:
					if (schemaObject is OracleTypeObject)
					{
						return "Object type";
					}

					var collection = (OracleTypeCollection)schemaObject;
					return collection.CollectionType == OracleCollectionType.Table
						? "Object table"
						: "Object varrying array";

				default:
					return schemaObject.Type.ToLower();
			}
		}
Example #12
0
		private static string GetSchemaObjectToolTip(OracleSchemaObject schemaObject)
		{
			return schemaObject == null
				? null
				: GetObjectTitle(schemaObject.FullyQualifiedName, GetObjectTypeLabel(schemaObject));
		}
Example #13
0
		private static string GetFullSchemaObjectToolTip(OracleSchemaObject schemaObject)
		{
			string tip = null;
			var synonym = schemaObject as OracleSynonym;
			if (synonym != null)
			{
				tip = $"{GetSchemaObjectToolTip(synonym)} => ";
				schemaObject = synonym.SchemaObject;
			}

			return $"{tip}{GetSchemaObjectToolTip(schemaObject)}";
		}
 private static string GetSchemaObjectToolTip(OracleSchemaObject schemaObject)
 {
     return(schemaObject == null
                         ? null
                         : GetObjectTitle(schemaObject.FullyQualifiedName, GetObjectTypeLabel(schemaObject)));
 }
Example #15
0
		private static bool IsDataObject(OracleSchemaObject schemaObject)
		{
			return schemaObject.GetTargetSchemaObject() is OracleDataObject;
		}
Example #16
0
		private static bool FilterOtherSchemaObject(OracleSchemaObject schemaObject, bool sequencesAllowed)
		{
			var targetObject = schemaObject.GetTargetSchemaObject();
			return targetObject != null && (String.Equals(targetObject.Type, OracleObjectType.Type) || (sequencesAllowed && String.Equals(targetObject.Type, OracleObjectType.Sequence)));
		}
Example #17
0
		private void BuildSimpleToolTip(OracleSchemaObject schemaObject)
		{
			if (schemaObject == null)
			{
				return;
			}

			ToolTip =
				new ToolTipObject
				{
					DataContext = GetFullSchemaObjectToolTip(schemaObject)
				};
		}