[hibernate-commits] Hibernate SVN: r20196 - in sandbox/trunk/new-metadata: src/main/java/org/hibernate/metadata/schema and 1 other directories.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Thu Aug 19 17:18:32 EDT 2010
Author: steve.ebersole at jboss.com
Date: 2010-08-19 17:18:31 -0400 (Thu, 19 Aug 2010)
New Revision: 20196
Added:
sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/IllegalNameException.java
Modified:
sandbox/trunk/new-metadata/
sandbox/trunk/new-metadata/build.gradle
sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/AbstractColumn.java
sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/AbstractValueContainer.java
sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Column.java
sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Datatype.java
sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/DerivedValue.java
sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Exportable.java
sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/ForeignKey.java
sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/InLineView.java
sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/ObjectName.java
sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/PrimaryKey.java
sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/SimpleValue.java
sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Table.java
sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/TableSpecification.java
sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Tuple.java
sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Value.java
sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/ValueContainer.java
sandbox/trunk/new-metadata/src/test/java/org/hibernate/metadata/schema/ObjectNameTests.java
Log:
improvements
Property changes on: sandbox/trunk/new-metadata
___________________________________________________________________
Name: svn:ignore
- target
build
local
*.ipr
*.iws
*.iml
.classpath
.project
.nbattrs
*.log
*.properties
.clover
.idea
+ target
build
local
*.ipr
*.iws
*.iml
.classpath
.project
.nbattrs
*.log
*.properties
.clover
.idea
.gradle
Modified: sandbox/trunk/new-metadata/build.gradle
===================================================================
--- sandbox/trunk/new-metadata/build.gradle 2010-08-19 20:22:48 UTC (rev 20195)
+++ sandbox/trunk/new-metadata/build.gradle 2010-08-19 21:18:31 UTC (rev 20196)
@@ -1,18 +1,38 @@
-usePlugin('java')
+buildscript {
+ dependencies {
+ classpath "org.gradle.plugins:gradle-idea-plugin:0.3"
+ }
+}
-defaultTasks 'classes'
-
repositories {
mavenCentral()
- mavenRepo name: "jboss", urls: "http://repository.jboss.org/maven2/"
- mavenRepo name: "jboss-snapshots", urls: "http://snapshots.jboss.org/maven2/"
+ mavenRepo name: "jboss", urls: "https://repository.jboss.org/nexus/content/groups/public/"
}
+apply plugin: 'org.gradle.idea'
+apply plugin: 'java'
+apply plugin: 'maven' // for install task as well as deploy dependencies
+
+defaultTasks 'build'
+
group = 'org.hibernate.sandbox'
version = '1.0.0-SNAPSHOT'
+// by default, compile to 1.5 compatibility
+targetCompatibility = "1.5"
+sourceCompatibility = "1.5"
+
+ideaModule {
+ downloadJavadoc = false
+ outputDir = sourceSets.main.classesDir
+ testOutputDir = sourceSets.test.classesDir
+ whenConfigured { module ->
+ module.dependencies*.exported = true
+ }
+}
+
dependencies {
- hibernateVersion = '3.5.0-Beta-2'
+ hibernateVersion = '3.5.3-Final'
slf4jVersion = '1.5.8'
jtaVersion = '1.1'
javassistVersion = '3.9.0.GA'
@@ -35,6 +55,3 @@
[group: "com.h2database", name: "h2", version: h2Version]
)
}
-
-targetCompatibility = "1.5"
-sourceCompatibility = "1.5"
Modified: sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/AbstractColumn.java
===================================================================
--- sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/AbstractColumn.java 2010-08-19 20:22:48 UTC (rev 20195)
+++ sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/AbstractColumn.java 2010-08-19 21:18:31 UTC (rev 20196)
@@ -27,25 +27,25 @@
import org.slf4j.LoggerFactory;
/**
- * Basic support for {@link Value} implementations.
+ * Basic support for {@link SimpleValue} implementations.
*
* @author Steve Ebersole
*/
public abstract class AbstractColumn implements SimpleValue {
private static final Logger log = LoggerFactory.getLogger( AbstractColumn.class );
- private final ValueContainer table;
+ private final ValueContainer container;
private Datatype datatype;
- protected AbstractColumn(ValueContainer table) {
- this.table = table;
+ protected AbstractColumn(ValueContainer container) {
+ this.container = container;
}
/**
* {@inheritDoc}
*/
public ValueContainer getValueContainer() {
- return table;
+ return container;
}
/**
@@ -59,7 +59,10 @@
* {@inheritDoc}
*/
public void setDatatype(Datatype datatype) {
- log.debug( "setting datatype for column " + toDebugString() + " : " + datatype.getTypeCode() );
+ log.debug( "setting datatype for column {} : {}", toLoggableString(), datatype );
+ if ( this.datatype != null && ! this.datatype.equals( datatype ) ) {
+ log.debug( "overriding previous datatype : {}", this.datatype );
+ }
this.datatype = datatype;
}
}
Modified: sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/AbstractValueContainer.java
===================================================================
--- sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/AbstractValueContainer.java 2010-08-19 20:22:48 UTC (rev 20195)
+++ sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/AbstractValueContainer.java 2010-08-19 21:18:31 UTC (rev 20196)
@@ -32,31 +32,30 @@
* @author Steve Ebersole
*/
public abstract class AbstractValueContainer implements ValueContainer {
- private final LinkedHashSet values = new LinkedHashSet();
+ private final LinkedHashSet<Value> values = new LinkedHashSet<Value>();
/**
* {@inheritDoc}
*/
- public void addValue(Value value) {
- values.add( value );
- }
-
- /**
- * {@inheritDoc}
- */
- public Iterator iterateValues() {
+ public Iterator<Value> iterateValues() {
return values.iterator();
}
public Column createColumn(String name) {
- return new Column( this, name );
+ final Column column = new Column( this, name );
+ values.add( column );
+ return column;
}
public DerivedValue createDerivedValue(String fragment) {
- return new DerivedValue( this );
+ final DerivedValue value = new DerivedValue( this, fragment );
+ values.add( value );
+ return value;
}
public Tuple createTuple(String name) {
- return new Tuple( this, name );
+ final Tuple tuple = new Tuple( this, name );
+ values.add( tuple );
+ return tuple;
}
}
Modified: sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Column.java
===================================================================
--- sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Column.java 2010-08-19 20:22:48 UTC (rev 20195)
+++ sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Column.java 2010-08-19 21:18:31 UTC (rev 20196)
@@ -43,7 +43,7 @@
/**
* {@inheritDoc}
*/
- public String toDebugString() {
- return getValueContainer().toDebugString() + '.' + getName();
+ public String toLoggableString() {
+ return getValueContainer().toLoggableString() + '.' + getName();
}
}
Modified: sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Datatype.java
===================================================================
--- sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Datatype.java 2010-08-19 20:22:48 UTC (rev 20195)
+++ sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Datatype.java 2010-08-19 21:18:31 UTC (rev 20196)
@@ -34,13 +34,22 @@
private final int typeCode;
private final String typeName;
private final Class javaType;
+ private final int hashCode;
public Datatype(int typeCode, String typeName, Class javaType) {
this.typeCode = typeCode;
this.typeName = typeName;
this.javaType = javaType;
+ this.hashCode = generateHashCode();
}
+ private int generateHashCode() {
+ int result = typeCode;
+ result = 31 * result + typeName.hashCode();
+ result = 31 * result + javaType.hashCode();
+ return result;
+ }
+
public int getTypeCode() {
return typeCode;
}
@@ -53,4 +62,30 @@
return javaType;
}
+ @Override
+ public boolean equals(Object o) {
+ if ( this == o ) {
+ return true;
+ }
+ if ( o == null || getClass() != o.getClass() ) {
+ return false;
+ }
+
+ Datatype datatype = (Datatype) o;
+
+ return typeCode == datatype.typeCode
+ && javaType.equals( datatype.javaType )
+ && typeName.equals( datatype.typeName );
+
+ }
+
+ @Override
+ public int hashCode() {
+ return hashCode;
+ }
+
+ @Override
+ public String toString() {
+ return super.toString() + "[code=" + typeCode + ", name=" + typeName + ", javaClass=" + javaType.getName() + "]";
+ }
}
Modified: sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/DerivedValue.java
===================================================================
--- sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/DerivedValue.java 2010-08-19 20:22:48 UTC (rev 20195)
+++ sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/DerivedValue.java 2010-08-19 21:18:31 UTC (rev 20196)
@@ -29,14 +29,21 @@
* @author Steve Ebersole
*/
public class DerivedValue extends AbstractColumn implements Value {
- public DerivedValue(ValueContainer table) {
+ private final String expression;
+
+ public DerivedValue(ValueContainer table, String expression) {
super( table );
+ this.expression = expression;
}
+ public String getExpression() {
+ return expression;
+ }
+
/**
* {@inheritDoc}
*/
- public String toDebugString() {
- return getValueContainer().toDebugString() + ".{derived-column}";
+ public String toLoggableString() {
+ return getValueContainer().toLoggableString() + ".{derived-column}";
}
}
Modified: sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Exportable.java
===================================================================
--- sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Exportable.java 2010-08-19 20:22:48 UTC (rev 20195)
+++ sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Exportable.java 2010-08-19 21:18:31 UTC (rev 20196)
@@ -31,7 +31,7 @@
*/
public interface Exportable {
/**
- * Get a uniqueing identifier to make sure we are not exporting the same database structure multiple times.
+ * Get a unique identifier to make sure we are not exporting the same database structure multiple times.
*
* @return The exporting identifier.
*/
Modified: sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/ForeignKey.java
===================================================================
--- sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/ForeignKey.java 2010-08-19 20:22:48 UTC (rev 20195)
+++ sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/ForeignKey.java 2010-08-19 21:18:31 UTC (rev 20196)
@@ -41,7 +41,7 @@
private final TableSpecification targetTable;
private final String name;
- private List<Column> sourceColumns = new ArrayList();
+ private List<Column> sourceColumns = new ArrayList<Column>();
private List<Column> targetColumns;
public ForeignKey(TableSpecification sourceTable, TableSpecification targetTable, String name) {
@@ -89,7 +89,7 @@
if ( targetColumns != null ) {
if ( log.isWarnEnabled() ) {
log.warn(
- "Attempt to map column [" + sourceColumn.toDebugString()
+ "Attempt to map column [" + sourceColumn.toLoggableString()
+ "] to no target column after explicit target column(s) named for FK [name="
+ getName() + "]"
);
@@ -100,12 +100,12 @@
if ( targetColumns == null ) {
if ( !sourceColumns.isEmpty() ) {
log.warn(
- "Value mapping mismatch as part of FK [table=" + getTable().toDebugString()
+ "Value mapping mismatch as part of FK [table=" + getTable().toLoggableString()
+ ", name=" + getName() + "] while adding source column ["
- + sourceColumn.toDebugString() + "]"
+ + sourceColumn.toLoggableString() + "]"
);
}
- targetColumns = new ArrayList();
+ targetColumns = new ArrayList<Column>();
}
targetColumns.add( targetColumn );
}
Added: sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/IllegalNameException.java
===================================================================
--- sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/IllegalNameException.java (rev 0)
+++ sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/IllegalNameException.java 2010-08-19 21:18:31 UTC (rev 20196)
@@ -0,0 +1,37 @@
+/*
+ * Hibernate, Relational Persistence for Idiomatic Java
+ *
+ * Copyright (c) 2010, Red Hat Inc. or third-party contributors as
+ * indicated by the @author tags or express copyright attribution
+ * statements applied by the authors. All third-party contributions are
+ * distributed under license by Red Hat Inc.
+ *
+ * This copyrighted material is made available to anyone wishing to use, modify,
+ * copy, or redistribute it subject to the terms and conditions of the GNU
+ * Lesser General Public License, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this distribution; if not, write to:
+ * Free Software Foundation, Inc.
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA 02110-1301 USA
+ */
+package org.hibernate.metadata.schema;
+
+import org.hibernate.HibernateException;
+
+/**
+ * Indicates an attempted use of a name that was deemed illegal
+ *
+ * @author Steve Ebersole
+ */
+public class IllegalNameException extends HibernateException {
+ public IllegalNameException(String s) {
+ super( s );
+ }
+}
Modified: sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/InLineView.java
===================================================================
--- sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/InLineView.java 2010-08-19 20:22:48 UTC (rev 20195)
+++ sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/InLineView.java 2010-08-19 21:18:31 UTC (rev 20196)
@@ -32,10 +32,10 @@
*
* @author Steve Ebersole
*/
-public class InLineView extends AbstractValueContainer implements ValueContainer {
+public class InLineView extends AbstractTableSpecification implements ValueContainer {
private final String select;
private final String uniqueValueQualifier;
- private Set synchronizedTableSpaces = java.util.Collections.EMPTY_SET;
+ private Set<ObjectName> synchronizedTableSpaces = java.util.Collections.emptySet();
public InLineView(String select, String uniqueValueQualifier) {
this.select = select;
@@ -46,22 +46,26 @@
return select;
}
- public String getUniqueValueQualifier() {
+ public String getLoggableQualifier() {
return uniqueValueQualifier;
}
- public void addSynchronizedTableSpace(String space) {
- if ( synchronizedTableSpaces == java.util.Collections.EMPTY_SET ) {
- synchronizedTableSpaces = new HashSet();
+ public void addSynchronizedTable(String tableName) {
+ addSynchronizedTable( new ObjectName( null, null, tableName ) );
+ }
+
+ public void addSynchronizedTable(ObjectName tableName) {
+ if ( synchronizedTableSpaces.isEmpty() ) {
+ synchronizedTableSpaces = new HashSet<ObjectName>();
}
- synchronizedTableSpaces.add( space );
+ synchronizedTableSpaces.add( tableName );
}
- public Set getSpaces() {
+ public Set<ObjectName> getSpaces() {
return synchronizedTableSpaces;
}
- public String toDebugString() {
+ public String toLoggableString() {
return "{inline-view}";
}
}
Modified: sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/ObjectName.java
===================================================================
--- sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/ObjectName.java 2010-08-19 20:22:48 UTC (rev 20195)
+++ sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/ObjectName.java 2010-08-19 21:18:31 UTC (rev 20196)
@@ -23,18 +23,85 @@
*/
package org.hibernate.metadata.schema;
+import org.hibernate.util.StringHelper;
+
/**
* Models the qualified name of a database object.
*
* @author Steve Ebersole
*/
public class ObjectName {
- private final String name;
- private final String schema;
- private final String catalog;
+ public static class Identifier {
+ private final String name;
+ private final boolean isQuoted;
+
+ public Identifier(String name, boolean quoted) {
+ if ( StringHelper.isEmpty( name ) ) {
+ throw new IllegalNameException( "Identifier text/name cannot be null" );
+ }
+ this.name = name;
+ isQuoted = quoted;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public boolean isQuoted() {
+ return isQuoted;
+ }
+
+ @Override
+ public String toString() {
+ return isQuoted
+ ? '`' + getName() + '`'
+ : getName();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if ( this == o ) {
+ return true;
+ }
+ if ( o == null || getClass() != o.getClass() ) {
+ return false;
+ }
+
+ Identifier that = (Identifier) o;
+
+ return isQuoted == that.isQuoted
+ && name.equals( that.name );
+ }
+
+ @Override
+ public int hashCode() {
+ return name.hashCode();
+ }
+ }
+
+ private final Identifier schema;
+ private final Identifier catalog;
+ private final Identifier name;
+
private final String identifier;
private final int hashCode;
+ public ObjectName(Identifier name) {
+ this( null, null, name );
+ }
+
+ public ObjectName(String schemaName, String catalogName, String name) {
+ this( toIdentifier( schemaName ), toIdentifier( catalogName ), toIdentifier( name ) );
+ }
+
+ public static Identifier toIdentifier(String name) {
+ if ( name == null ) {
+ return null;
+ }
+ final String trimmedName = name.trim();
+ return new Identifier( trimmedName, trimmedName.startsWith( "`" ) && trimmedName.endsWith( "`" ) );
+ }
+
/**
* Creates a qualified name reference.
*
@@ -42,20 +109,21 @@
* @param catalog The catalog in which the object is defined (optional)
* @param name The name (required)
*/
- public ObjectName(String schema, String catalog, String name) {
- if ( name == null || name.trim().length() == 0 ) {
- throw new IllegalArgumentException( "Object name must be specified" );
+ public ObjectName(Identifier schema, Identifier catalog, Identifier name) {
+ if ( name == null ) {
+ // Identifier cannot be constructed with an 'empty' name
+ throw new IllegalNameException( "Object name must be specified" );
}
this.name = name;
this.schema = schema;
this.catalog = catalog;
- StringBuffer buff = new StringBuffer( name );
+ StringBuilder buff = new StringBuilder( name.toString() );
if ( catalog != null ) {
- buff.insert( 0, catalog + '.' );
+ buff.insert( 0, catalog.toString() + '.' );
}
if ( schema != null ) {
- buff.insert( 0, schema + '.' );
+ buff.insert( 0, schema.toString() + '.' );
}
this.identifier = buff.toString();
@@ -65,15 +133,15 @@
this.hashCode = tmpHashCode;
}
- public String getSchema() {
+ public Identifier getSchema() {
return schema;
}
- public String getCatalog() {
+ public Identifier getCatalog() {
return catalog;
}
- public String getName() {
+ public Identifier getName() {
return name;
}
@@ -81,9 +149,7 @@
return identifier;
}
- /**
- * {@inheritDoc}
- */
+ @Override
public boolean equals(Object o) {
if (this == o) {
return true;
@@ -99,22 +165,19 @@
&& areEqual( schema, that.schema );
}
- private boolean areEqual(String one, String other) {
+ private boolean areEqual(Identifier one, Identifier other) {
return one == null
? other == null
: one.equals( other );
}
- /**
- * {@inheritDoc}
- */
+ @Override
public int hashCode() {
return hashCode;
}
- /**
- * {@inheritDoc}
- */
+
+ @Override
public String toString() {
return "ObjectName{" +
"name='" + name + '\'' +
Modified: sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/PrimaryKey.java
===================================================================
--- sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/PrimaryKey.java 2010-08-19 20:22:48 UTC (rev 20195)
+++ sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/PrimaryKey.java 2010-08-19 21:18:31 UTC (rev 20196)
@@ -23,7 +23,6 @@
*/
package org.hibernate.metadata.schema;
-
/**
* Models a table's primary key.
* <p/>
Modified: sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/SimpleValue.java
===================================================================
--- sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/SimpleValue.java 2010-08-19 20:22:48 UTC (rev 20195)
+++ sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/SimpleValue.java 2010-08-19 21:18:31 UTC (rev 20196)
@@ -24,7 +24,7 @@
package org.hibernate.metadata.schema;
/**
- * TODO : javadoc
+ * Models a basic or simple value. This is either a {@link Column} or {@link DerivedValue}
*
* @author Steve Ebersole
*/
@@ -39,7 +39,7 @@
/**
* Set the datatype of this value.
*
- * @param datatype
+ * @param datatype The value's datatype
*/
public void setDatatype(Datatype datatype);
}
Modified: sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Table.java
===================================================================
--- sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Table.java 2010-08-19 20:22:48 UTC (rev 20195)
+++ sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Table.java 2010-08-19 21:18:31 UTC (rev 20196)
@@ -31,9 +31,9 @@
* @author Gavin King
* @author Steve Ebersole
*/
-public class Table extends AbstractValueContainer implements ValueContainer, Exportable {
+public class Table extends AbstractTableSpecification implements ValueContainer, Exportable {
private final ObjectName name;
- private final Set spaces;
+ private final Set<ObjectName> spaces;
public Table(ObjectName name) {
this.name = name;
@@ -47,7 +47,7 @@
/**
* {@inheritDoc}
*/
- public String getUniqueValueQualifier() {
+ public String getLoggableQualifier() {
return getObjectName().getIdentifier();
}
@@ -61,14 +61,14 @@
/**
* {@inheritDoc}
*/
- public Set getSpaces() {
+ public Set<ObjectName> getSpaces() {
return spaces;
}
/**
* {@inheritDoc}
*/
- public String toDebugString() {
+ public String toLoggableString() {
return getObjectName().getIdentifier();
}
Modified: sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/TableSpecification.java
===================================================================
--- sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/TableSpecification.java 2010-08-19 20:22:48 UTC (rev 20195)
+++ sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/TableSpecification.java 2010-08-19 21:18:31 UTC (rev 20196)
@@ -43,5 +43,5 @@
*
* @return The spaces.
*/
- public Set getSpaces();
+ public Set<ObjectName> getSpaces();
}
Modified: sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Tuple.java
===================================================================
--- sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Tuple.java 2010-08-19 20:22:48 UTC (rev 20195)
+++ sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Tuple.java 2010-08-19 21:18:31 UTC (rev 20196)
@@ -23,8 +23,6 @@
*/
package org.hibernate.metadata.schema;
-import java.util.Iterator;
-
/**
* Models a compound value (a tuple or row-value-constructor is SQL terms).
* <p/>
@@ -51,13 +49,13 @@
return valueContainer;
}
- public String getUniqueValueQualifier() {
+ public String getLoggableQualifier() {
return name;
}
- public String toDebugString() {
- return getValueContainer().getUniqueValueQualifier() +
- '.' + getUniqueValueQualifier() +
+ public String toLoggableString() {
+ return getValueContainer().getLoggableQualifier() +
+ '.' + getLoggableQualifier() +
"{tuple}";
}
}
Modified: sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Value.java
===================================================================
--- sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Value.java 2010-08-19 20:22:48 UTC (rev 20195)
+++ sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/Value.java 2010-08-19 21:18:31 UTC (rev 20196)
@@ -24,8 +24,10 @@
package org.hibernate.metadata.schema;
/**
- * Models a value within a {@link ValueContainer}. This will generally be either a
- * {@link Column column} or a {@link DerivedValue derived value}.
+ * Models a value within a {@link ValueContainer}. This will generally be either a {@link Column column} or a
+ * {@link DerivedValue derived value}, but we also add the notion of {@link Tuple} at this level in the model
+ * because it maps more closely to the java model, because it better conveys intent and because adds richness to the
+ * model.
*
* @author Steve Ebersole
*/
@@ -37,5 +39,10 @@
*/
public ValueContainer getValueContainer();
- public String toDebugString();
+ /**
+ * Obtain the string representation of this value usable in log statements.
+ *
+ * @return The loggable representation
+ */
+ public String toLoggableString();
}
Modified: sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/ValueContainer.java
===================================================================
--- sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/ValueContainer.java 2010-08-19 20:22:48 UTC (rev 20195)
+++ sandbox/trunk/new-metadata/src/main/java/org/hibernate/metadata/schema/ValueContainer.java 2010-08-19 21:18:31 UTC (rev 20196)
@@ -24,7 +24,6 @@
package org.hibernate.metadata.schema;
import java.util.Iterator;
-import java.util.Set;
/**
* Contract for data containers (what the ANSI SQL spec calls "table specifications") to which we can map
@@ -33,37 +32,52 @@
* @author Steve Ebersole
*/
public interface ValueContainer {
-
/**
- * Adds a value definition to the container.
- *
- * @param value The value definition
- */
- public void addValue(Value value);
-
- /**
* Obtain an iterator over this containers current set of value definitions.
*
* @return Iterator over value definitions.
*/
- public Iterator iterateValues();
+ public Iterator<Value> iterateValues();
/**
* Get a unique identifier which can be used to qualify {@link Value values} belonging to
- * this container. Intended for use in logging.
+ * this container in logging.
*
* @return The qualifier
*/
- public String getUniqueValueQualifier();
+ public String getLoggableQualifier();
- public String toDebugString();
+ /**
+ * Obtain the string representation of this value usable in log statements.
+ *
+ * @return The loggable representation
+ */
+ public String toLoggableString();
-
- // value factory methods ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
+ /**
+ * Factory method for creating a {@link Column} associated with this container.
+ *
+ * @param name The column name
+ *
+ * @return The generated column
+ */
public Column createColumn(String name);
+ /**
+ * Factory method for creating a {@link DerivedValue} associated with this container.
+ *
+ * @param fragment The value expression
+ *
+ * @return The generated value.
+ */
public DerivedValue createDerivedValue(String fragment);
+ /**
+ * Factory method for creating a {@link Tuple} associated with this container.
+ *
+ * @param name The (logical) tuple name
+ *
+ * @return The generated tuple.
+ */
public Tuple createTuple(String name);
}
Modified: sandbox/trunk/new-metadata/src/test/java/org/hibernate/metadata/schema/ObjectNameTests.java
===================================================================
--- sandbox/trunk/new-metadata/src/test/java/org/hibernate/metadata/schema/ObjectNameTests.java 2010-08-19 20:22:48 UTC (rev 20195)
+++ sandbox/trunk/new-metadata/src/test/java/org/hibernate/metadata/schema/ObjectNameTests.java 2010-08-19 21:18:31 UTC (rev 20196)
@@ -33,17 +33,17 @@
public class ObjectNameTests extends TestCase {
public void testMissingName() {
try {
- new ObjectName( null, null, null );
+ new ObjectName( (String)null, null, null );
fail();
}
- catch ( IllegalArgumentException ignore ) {
+ catch ( IllegalNameException ignore ) {
}
try {
new ObjectName( "schema", "catalog", null );
fail();
}
- catch ( IllegalArgumentException ignore ) {
+ catch ( IllegalNameException ignore ) {
}
}
More information about the hibernate-commits
mailing list