Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/internal/core/index/AbstractQField.java')
-rw-r--r--qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/internal/core/index/AbstractQField.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/internal/core/index/AbstractQField.java b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/internal/core/index/AbstractQField.java
new file mode 100644
index 00000000000..9d11ebb2621
--- /dev/null
+++ b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/internal/core/index/AbstractQField.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2013 QNX Software Systems and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.eclipse.cdt.qt.internal.core.index;
+
+import org.eclipse.cdt.qt.core.index.IQObject;
+import org.eclipse.cdt.qt.core.index.IQObject.IMember;
+
+public abstract class AbstractQField implements IQObject.IMember {
+
+ private final IQObject owner;
+ protected String name;
+
+ /**
+ * Scan the given field and extracts the strings defining the attributes of the
+ * field. Returns false if the expansion parameter, does not represent a Q_PROPERTY,
+ * does not have related information, or if the information does not match the
+ * expected format.
+ */
+ protected abstract boolean scanDefn(String expansionParam);
+
+ protected AbstractQField(IQObject owner) {
+ this.owner = owner;
+ }
+
+ @Override
+ public IQObject getOwner() {
+ return owner;
+ }
+
+ @Override
+ public boolean isOverride(IMember member) {
+ if (!AbstractQField.class.isAssignableFrom(member.getClass()))
+ return false;
+
+ // I haven't been able to find Qt documentation describing how Q_PROPERY is overridden,
+ // but the docs suggest it is just by name.
+
+ AbstractQField other = (AbstractQField) member;
+ return name == null ? other.name == null : name.equals(other.name);
+ }
+}

Back to the top