X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Forg%2Fz3950%2Fzing%2Fcql%2FCQLRelation.java;h=c34f67ba1a491af3811fd6e234749f1249f37f4a;hb=b53fe47e0bd5f0825b0d8ceeb33538e714bf9e7e;hp=3de9f579435d7b0d1bf897c169be1487e1e6f482;hpb=70be8275aabe87c909bf11148bb279c3e1380bb2;p=cql-java-moved-to-github.git
diff --git a/src/org/z3950/zing/cql/CQLRelation.java b/src/org/z3950/zing/cql/CQLRelation.java
index 3de9f57..c34f67b 100644
--- a/src/org/z3950/zing/cql/CQLRelation.java
+++ b/src/org/z3950/zing/cql/CQLRelation.java
@@ -1,76 +1,73 @@
-// $Id: CQLRelation.java,v 1.1 2002-10-30 09:19:26 mike Exp $
+// $Id: CQLRelation.java,v 1.17 2007-06-29 10:23:02 mike Exp $
package org.z3950.zing.cql;
import java.util.Vector;
+import java.util.Properties;
import java.lang.StringBuffer;
/**
- * Represents a relation between a CQL qualifier and term.
- * ###
+ * Represents a relation between a CQL index and term.
*
- * @version $Id: CQLRelation.java,v 1.1 2002-10-30 09:19:26 mike Exp $
+ * @version $Id: CQLRelation.java,v 1.17 2007-06-29 10:23:02 mike Exp $
*/
public class CQLRelation extends CQLNode {
- String base;
- Vector modifiers;
+ ModifierSet ms;
+ /**
+ * Creates a new CQLRelation with the specified base relation.
+ * Typical base relations include the usual six ordering relations
+ * (<=, >, etc.), the text
+ * relations any, all and exact, the
+ * server-choice relation scr and profiled relations of
+ * the form prefix.name.
+ */
+ // ### Seems wrong: a modifier set should not have a base, a
+ // relation should
public CQLRelation(String base) {
- this.base = base;
- modifiers = new Vector();
+ ms = new ModifierSet(base);
}
- public void addModifier(String modifier) {
- modifiers.add(modifier);
+ /**
+ * Returns the base relation with which the CQLRelation was
+ * originally created.
+ */
+ public String getBase() {
+ return ms.getBase();
}
- public String[] getModifiers() {
- int n = modifiers.size();
- String[] res = new String[n];
- for (int i = 0; i < n; i++) {
- res[i] = (String) modifiers.get(i);
- }
+ /**
+ * Sets the modifiers of the specified CQLRelation.
+ * Typical relation modifiers include relevant,
+ * fuzzy, stem and phonetic. On the
+ * whole, these modifiers have a meaningful interpretation only
+ * for the text relations.
+ */
+ public void setModifiers(ModifierSet ms) {
+ this.ms = ms;
+ }
- return res;
+ /**
+ * Returns an array of the modifiers associated with a CQLRelation.
+ * @return
+ * An array of Modifier objects.
+ */
+ public Vector getModifiers() {
+ return ms.getModifiers();
}
- public String toXCQL(int level) {
- StringBuffer buf = new StringBuffer();
- buf.append (indent(level) + "\n" +
- indent(level+1) + "" + xq(base) + "\n");
- String[] mods = getModifiers();
- if (mods.length > 0) {
- buf.append(indent(level+1) + "\n");
- for (int i = 0; i < mods.length; i++)
- buf.append(indent(level+2)).
- append(""). append(mods[i]).
- append("\n");
- buf.append(indent(level+1) + "\n");
- }
- buf.append(indent(level) + "\n");
- return buf.toString();
+ public String toXCQL(int level, Vector prefixes) {
+ return ms.toXCQL(level, "relation");
}
public String toCQL() {
- StringBuffer buf = new StringBuffer(base);
- String[] mods = getModifiers();
- for (int i = 0; i < mods.length; i++) {
- buf.append("/").append(mods[i]);
- }
-
- return buf.toString();
+ return ms.toCQL();
}
- public static void main(String[] args) {
- if (args.length < 1) {
- System.err.println("Usage: CQLRelation ...");
- System.exit(1);
- }
-
- CQLRelation res = new CQLRelation(args[0]);
- for (int i = 1; i < args.length; i++) {
- res.addModifier(args[i]);
- }
+ public String toPQF(Properties config) throws PQFTranslationException {
+ throw new Error("CQLRelation.toPQF() can never be called");
+ }
- System.out.println(res.toCQL());
+ public byte[] toType1BER(Properties config) {
+ throw new Error("CQLRelation.toType1BER() can never be called");
}
}