/** * Get a db-safe version of a word. * * Attribute names may need some rewriting to become good column names. * * The one exception is 'Class'. It is considered to be an SQL reserved word, * but we use it as a column name * * @param word * token to rewrite if needed * @return db-safe version. */ static String getDBName(final String word) { if ("class".equalsIgnoreCase(word) ) { return word; } return DatabaseUtil.generateSqlCompatibleName(word); }
/** * Get a db-safe version of a word. * * Attribute names may need some rewriting to become good column names. * * The one exception is 'Class'. It is considered to be an SQL reserved word, * but we use it as a column name * * @param word * token to rewrite if needed * @return db-safe version. */ static String getDBName(final String word) { if ("class".equalsIgnoreCase(word) ) { return word; } return DatabaseUtil.generateSqlCompatibleName(word); }
/** * Creates a table name for a class descriptor * * @param cld ClassDescriptor * @return a valid table name */ public static String getTableName(ClassDescriptor cld) { return generateSqlCompatibleName(cld.getUnqualifiedName()); }
/** * Creates a table name for a class descriptor * * @param cld ClassDescriptor * @return a valid table name */ public static String getTableName(ClassDescriptor cld) { return generateSqlCompatibleName(cld.getUnqualifiedName()); }
/** * Creates a column name for a field descriptor * * @param fd FieldDescriptor * @return a valid column name */ public static String getColumnName(FieldDescriptor fd) { if (fd instanceof AttributeDescriptor) { return generateSqlCompatibleName(fd.getName()); } if (fd instanceof CollectionDescriptor) { return null; } if (fd instanceof ReferenceDescriptor) { return fd.getName() + "Id"; } return null; }
/** * Creates a column name for a field descriptor * * @param fd FieldDescriptor * @return a valid column name */ public static String getColumnName(FieldDescriptor fd) { if (fd instanceof AttributeDescriptor) { return generateSqlCompatibleName(fd.getName()); } if (fd instanceof CollectionDescriptor) { return null; } if (fd instanceof ReferenceDescriptor) { return fd.getName() + "Id"; } return null; }
|| (kind == QUERY_FOR_GOFASTER) || (kind == QUERY_FOR_COUNTING)) { retval.append(" AS " + (alias.equals(alias.toLowerCase()) ? DatabaseUtil.generateSqlCompatibleName(alias) : "\"" + DatabaseUtil.generateSqlCompatibleName(alias) + "\"")); } else if (kind == QUERY_SUBQUERY_FROM) { retval.append(" AS " + DatabaseUtil.generateSqlCompatibleName(alias));
|| (kind == QUERY_FOR_GOFASTER) || (kind == QUERY_FOR_COUNTING)) { retval.append(" AS " + (alias.equals(alias.toLowerCase()) ? DatabaseUtil.generateSqlCompatibleName(alias) : "\"" + DatabaseUtil.generateSqlCompatibleName(alias) + "\"")); } else if (kind == QUERY_SUBQUERY_FROM) { retval.append(" AS " + DatabaseUtil.generateSqlCompatibleName(alias));
public void testGenerateSqlCompatibleName() throws Exception { assertEquals("intermine_end", DatabaseUtil.generateSqlCompatibleName("end")); assertEquals("intermine_intermine_end", DatabaseUtil.generateSqlCompatibleName("intermine_end")); assertEquals("id", DatabaseUtil.generateSqlCompatibleName("id")); assertEquals("index", DatabaseUtil.generateSqlCompatibleName("index")); assertEquals("intermine_order", DatabaseUtil.generateSqlCompatibleName("order")); assertEquals("intermine_full", DatabaseUtil.generateSqlCompatibleName("full")); assertEquals("intermine_offset", DatabaseUtil.generateSqlCompatibleName("offset")); assertEquals("some_string", DatabaseUtil.generateSqlCompatibleName("some_string")); try { DatabaseUtil.generateSqlCompatibleName(null); fail("Expected NullPointerException"); } catch (NullPointerException e) { } }
buffer.append(DatabaseUtil.generateSqlCompatibleName(alias)) .append(".id"); } else { buffer.append(" AS ") .append(alias.equals(alias.toLowerCase()) ? DatabaseUtil.generateSqlCompatibleName(alias) : "\"" + DatabaseUtil.generateSqlCompatibleName(alias) + "\""); if (kind == QUERY_SUBQUERY_FROM) { buffer.append(" AS ") .append(DatabaseUtil.generateSqlCompatibleName(alias) + columnName); } else if ((kind == QUERY_NORMAL) || (kind == QUERY_FOR_PRECOMP) || (kind == QUERY_FOR_GOFASTER) || (kind == QUERY_FOR_COUNTING)) { buffer.append(" AS ") .append(alias.equals(alias.toLowerCase()) ? DatabaseUtil.generateSqlCompatibleName(alias) + columnName : "\"" + DatabaseUtil.generateSqlCompatibleName(alias) + columnName.toLowerCase() + "\""); .append(" AS ") .append(alias.equals(alias.toLowerCase()) ? DatabaseUtil.generateSqlCompatibleName(alias) + "objectclass" : "\"" + DatabaseUtil.generateSqlCompatibleName(alias) + "objectclass\""); buffer.append(DatabaseUtil.generateSqlCompatibleName(alias)) .append(".id AS ") .append(alias.equals(alias.toLowerCase())
buffer.append(DatabaseUtil.generateSqlCompatibleName(alias)) .append(".id"); } else { buffer.append(" AS ") .append(alias.equals(alias.toLowerCase()) ? DatabaseUtil.generateSqlCompatibleName(alias) : "\"" + DatabaseUtil.generateSqlCompatibleName(alias) + "\""); if (kind == QUERY_SUBQUERY_FROM) { buffer.append(" AS ") .append(DatabaseUtil.generateSqlCompatibleName(alias) + columnName); } else if ((kind == QUERY_NORMAL) || (kind == QUERY_FOR_PRECOMP) || (kind == QUERY_FOR_GOFASTER) || (kind == QUERY_FOR_COUNTING)) { buffer.append(" AS ") .append(alias.equals(alias.toLowerCase()) ? DatabaseUtil.generateSqlCompatibleName(alias) + columnName : "\"" + DatabaseUtil.generateSqlCompatibleName(alias) + columnName.toLowerCase() + "\""); .append(" AS ") .append(alias.equals(alias.toLowerCase()) ? DatabaseUtil.generateSqlCompatibleName(alias) + "objectclass" : "\"" + DatabaseUtil.generateSqlCompatibleName(alias) + "objectclass\""); buffer.append(DatabaseUtil.generateSqlCompatibleName(alias)) .append(".id AS ") .append(alias.equals(alias.toLowerCase())
/** * Creates a column name for the "outward" key of a many-to-many collection descriptor. * * @param col CollectionDescriptor * @param version the database version number * @return a valid column name */ public static String getOutwardIndirectionColumnName(CollectionDescriptor col, int version) { if (FieldDescriptor.M_N_RELATION != col.relationType()) { throw new IllegalArgumentException("Argument must be a CollectionDescriptor for a " + "many-to-many relation"); } if (version == 0) { ReferenceDescriptor rd = col.getReverseReferenceDescriptor(); String colName = (rd == null ? TypeUtil.unqualifiedName(col.getClassDescriptor().getName()) : rd.getName()); return StringUtil.capitalise(generateSqlCompatibleName(colName)); } else if (version == 1) { return StringUtil.capitalise(generateSqlCompatibleName(col.getName())); } else { throw new IllegalArgumentException("Database version number " + version + " not recognised"); } }
/** * Creates a column name for the "inward" key of a many-to-many collection descriptor. * * @param col CollectionDescriptor * @param version the database version number * @return a valid column name */ public static String getInwardIndirectionColumnName(CollectionDescriptor col, int version) { if (FieldDescriptor.M_N_RELATION != col.relationType()) { throw new IllegalArgumentException("Argument must be a CollectionDescriptor for a " + "many-to-many relation"); } if (version == 0) { return StringUtil.capitalise(generateSqlCompatibleName(col.getName())); } else if (version == 1) { ReferenceDescriptor rd = col.getReverseReferenceDescriptor(); String colName = (rd == null ? TypeUtil.unqualifiedName(col.getClassDescriptor().getName()) : rd.getName()); return StringUtil.capitalise(generateSqlCompatibleName(colName)); } else { throw new IllegalArgumentException("Database version number " + version + " not recognised"); } }
/** * Creates a column name for the "inward" key of a many-to-many collection descriptor. * * @param col CollectionDescriptor * @param version the database version number * @return a valid column name */ public static String getInwardIndirectionColumnName(CollectionDescriptor col, int version) { if (FieldDescriptor.M_N_RELATION != col.relationType()) { throw new IllegalArgumentException("Argument must be a CollectionDescriptor for a " + "many-to-many relation"); } if (version == 0) { return StringUtil.capitalise(generateSqlCompatibleName(col.getName())); } else if (version == 1) { ReferenceDescriptor rd = col.getReverseReferenceDescriptor(); String colName = (rd == null ? TypeUtil.unqualifiedName(col.getClassDescriptor().getName()) : rd.getName()); return StringUtil.capitalise(generateSqlCompatibleName(colName)); } else { throw new IllegalArgumentException("Database version number " + version + " not recognised"); } }
/** * Creates a column name for the "outward" key of a many-to-many collection descriptor. * * @param col CollectionDescriptor * @param version the database version number * @return a valid column name */ public static String getOutwardIndirectionColumnName(CollectionDescriptor col, int version) { if (FieldDescriptor.M_N_RELATION != col.relationType()) { throw new IllegalArgumentException("Argument must be a CollectionDescriptor for a " + "many-to-many relation"); } if (version == 0) { ReferenceDescriptor rd = col.getReverseReferenceDescriptor(); String colName = (rd == null ? TypeUtil.unqualifiedName(col.getClassDescriptor().getName()) : rd.getName()); return StringUtil.capitalise(generateSqlCompatibleName(colName)); } else if (version == 1) { return StringUtil.capitalise(generateSqlCompatibleName(col.getName())); } else { throw new IllegalArgumentException("Database version number " + version + " not recognised"); } }
DatabaseUtil.generateSqlCompatibleName(field); if (tableMaster.getReferenceDescriptorByName(field, true) != null) {
DatabaseUtil.generateSqlCompatibleName(field); if (tableMaster.getReferenceDescriptorByName(field, true) != null) {
public void testGetColumnName() throws Exception { FieldDescriptor attr = new AttributeDescriptor("attr1", "int"); assertEquals(DatabaseUtil.generateSqlCompatibleName("attr1"), DatabaseUtil.getColumnName(attr)); }
if (fromElement instanceof QueryClass) { QueryClass qc = (QueryClass) fromElement; String baseAlias = DatabaseUtil.generateSqlCompatibleName(q.getAliases().get(qc)); Set<Class<?>> classes = Util.decomposeClass(qc.getType()); List<ClassDescriptorAndAlias> aliases = new ArrayList<ClassDescriptorAndAlias>(); state.addToFrom("(" + generate((Query) fromElement, schema, state.getDb(), null, QUERY_SUBQUERY_FROM, bagTableNames) + ") AS " + DatabaseUtil.generateSqlCompatibleName(q.getAliases().get(fromElement))); state.setFieldToAlias(fromElement, new AlwaysMap<String, String>(DatabaseUtil .generateSqlCompatibleName((q.getAliases().get(fromElement))))); } else if (fromElement instanceof QueryClassBag) {
if (fromElement instanceof QueryClass) { QueryClass qc = (QueryClass) fromElement; String baseAlias = DatabaseUtil.generateSqlCompatibleName(q.getAliases().get(qc)); Set<Class<?>> classes = Util.decomposeClass(qc.getType()); List<ClassDescriptorAndAlias> aliases = new ArrayList<ClassDescriptorAndAlias>(); state.addToFrom("(" + generate((Query) fromElement, schema, state.getDb(), null, QUERY_SUBQUERY_FROM, bagTableNames) + ") AS " + DatabaseUtil.generateSqlCompatibleName(q.getAliases().get(fromElement))); state.setFieldToAlias(fromElement, new AlwaysMap<String, String>(DatabaseUtil .generateSqlCompatibleName((q.getAliases().get(fromElement))))); } else if (fromElement instanceof QueryClassBag) {