Author: shawkins
Date: 2009-02-24 11:16:42 -0500 (Tue, 24 Feb 2009)
New Revision: 488
Added:
trunk/connector-api/src/main/java/com/metamatrix/connector/api/ConnectorIdentity.java
trunk/connector-api/src/main/java/com/metamatrix/connector/api/MappedUserIdentity.java
trunk/connector-api/src/main/java/com/metamatrix/connector/api/SingleIdentity.java
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/TestPerUserPool.java
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestMetadataObject.java
Removed:
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/MetadataID.java
trunk/connector-metadata/src/test/java/com/metamatrix/connector/metadata/internal/FakeRuntimeMetadata.java
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/MockCachingConnector.java
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/cache/MockDocumentCache.java
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xmlsource/FakeRuntimeMetadata.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/MetadataFactory.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/MetadataIDImpl.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ParameterIDImpl.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ProcedureIDImpl.java
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestMetadataID.java
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/api/Connection.java
trunk/connector-api/src/main/java/com/metamatrix/connector/api/Connector.java
trunk/connector-api/src/main/java/com/metamatrix/connector/api/ConnectorAnnotations.java
trunk/connector-api/src/main/java/com/metamatrix/connector/api/ExecutionContext.java
trunk/connector-api/src/main/java/com/metamatrix/connector/basic/BasicConnection.java
trunk/connector-api/src/main/java/com/metamatrix/connector/basic/BasicConnector.java
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IBulkInsert.java
trunk/connector-api/src/main/java/com/metamatrix/connector/language/ICompoundCriteria.java
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IElement.java
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IFrom.java
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IFunction.java
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IGroup.java
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IGroupBy.java
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IInCriteria.java
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IInsert.java
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IJoin.java
trunk/connector-api/src/main/java/com/metamatrix/connector/language/ILanguageFactory.java
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IMetadataReference.java
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IOrderBy.java
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IParameter.java
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IProcedure.java
trunk/connector-api/src/main/java/com/metamatrix/connector/language/ISelect.java
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/Element.java
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/Group.java
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/MetadataObject.java
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/Parameter.java
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/Procedure.java
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/RuntimeMetadata.java
trunk/connector-api/src/main/java/com/metamatrix/connector/visitor/util/SQLStringVisitor.java
trunk/connector-api/src/main/resources/com/metamatrix/data/i18n.properties
trunk/connector-metadata/src/main/java/com/metamatrix/connector/metadata/adapter/ObjectConnector.java
trunk/connector-metadata/src/main/java/com/metamatrix/connector/metadata/internal/ObjectProcedure.java
trunk/connector-metadata/src/main/java/com/metamatrix/connector/metadata/internal/ObjectQuery.java
trunk/connector-metadata/src/test/java/com/metamatrix/connector/metadata/internal/TestObjectQueryProcessor.java
trunk/connector-sdk/src/main/java/com/metamatrix/cdk/api/TranslationUtility.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/JDBCBaseExecution.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/JDBCConnector.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/JDBCProcedureExecution.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/JDBCSourceConnection.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/db2/DB2ConvertModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/db2/DB2SQLTranslator.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/derby/DerbyConvertModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/mysql/MySQLConvertModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/ConcatFunctionModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/DayWeekQuarterFunctionModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/ExtractFunctionModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/LeftOrRightFunctionModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/LocateFunctionModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/Log10FunctionModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/MonthOrDayNameFunctionModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/OracleConvertModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/OracleSQLTranslator.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/postgresql/DatePartFunctionModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/postgresql/ModifiedDatePartFunctionModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/postgresql/PostgreSQLConvertModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/sybase/ModFunctionModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/sybase/SybaseConvertModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/BasicFunctionModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/DropFunctionModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/SQLConversionVisitor.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/SubstringFunctionModifier.java
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/util/FunctionReplacementVisitor.java
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/db2/TestDB2ConvertModifier.java
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/derby/TestDerbyConvertModifier.java
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/extension/impl/TestDropFunctionModifier.java
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/extension/impl/TestEscapeSyntaxModifier.java
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestDayWeekQuarterFunctionModifier.java
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestExtractFunctionModifier.java
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestLeftOrRightFunctionModifier.java
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestLocateFunctionModifier.java
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestLog10FunctionModifier.java
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestMonthOrDayNameFunctionModifier.java
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestOracleConvertModifier.java
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestSubstringFunctionModifier.java
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/IQueryToLdapSearchParser.java
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPConnector.java
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPUpdateExecution.java
trunk/connectors/connector-ldap/src/test/java/com/metamatrix/connector/ldap/TestIQueryToLdapSearchParser.java
trunk/connectors/connector-loopback/src/main/java/com/metamatrix/connector/loopback/LoopbackConnection.java
trunk/connectors/connector-loopback/src/main/java/com/metamatrix/connector/loopback/LoopbackConnector.java
trunk/connectors/connector-loopback/src/test/java/com/metamatrix/connector/loopback/TestLoopbackExecution.java
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/Connector.java
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/UpdateExecutionImpl.java
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/CriteriaVisitor.java
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/InsertVisitor.java
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/SelectVisitor.java
trunk/connectors/connector-text/src/main/java/com/metamatrix/connector/text/TextConnector.java
trunk/connectors/connector-text/src/main/java/com/metamatrix/connector/text/TextSynchExecution.java
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xml/base/CriteriaDesc.java
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xml/base/LoggingConnector.java
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xml/base/ParameterDescriptor.java
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xml/base/QueryAnalyzer.java
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xmlsource/XMLSourceConnector.java
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xmlsource/file/FileExecution.java
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xmlsource/soap/SoapExecution.java
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/base/TestCriteriaDesc.java
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/base/TestOutputXPathDesc.java
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/base/TestParameterDescriptor.java
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/cache/TestRequestRecord.java
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/file/TestFileExecutor.java
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xmlsource/file/TestFileExecution.java
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xmlsource/soap/TestSoapExecution.java
trunk/connectors/sandbox/connector-exec/src/main/java/com/metamatrix/connector/exec/ExecConnection.java
trunk/connectors/sandbox/connector-exec/src/main/java/com/metamatrix/connector/exec/ExecConnector.java
trunk/connectors/sandbox/connector-exec/src/main/java/com/metamatrix/connector/exec/ExecVisitor.java
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/ObjectConnector.java
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/SourceConnectionFactory.java
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/extension/command/ObjectCommand.java
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/extension/command/ProcedureCommand.java
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/extension/source/BaseSourceConnectionFactory.java
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/util/ObjectConnectorUtil.java
trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/FilterFunctionModifier.java
trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/NearestNeighborFunctionModifier.java
trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/RelateFunctionModifier.java
trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/WithinDistanceFunctionModifier.java
trunk/connectors/sandbox/connector-yahoo/src/main/java/com/metamatrix/connector/yahoo/YahooConnector.java
trunk/connectors/sandbox/connector-yahoo/src/main/java/com/metamatrix/connector/yahoo/YahooExecution.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ConnectorManager.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ConnectorWorkItem.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ConnectorWrapper.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ExecutionContextImpl.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ProcedureBatchHandler.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/ElementImpl.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/FunctionImpl.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/GroupImpl.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/LanguageBridgeFactory.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/LanguageFactoryImpl.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/ParameterImpl.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/ProcedureImpl.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ElementImpl.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/GroupImpl.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/MetadataObjectImpl.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ParameterImpl.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ProcedureImpl.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/RuntimeMetadataImpl.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/TypeModelImpl.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/pooling/connector/ConnectionPool.java
trunk/engine/src/main/java/com/metamatrix/dqp/internal/pooling/connector/ConnectionWrapper.java
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/impl/FakeConnector.java
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/language/TestElementImpl.java
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/language/TestFunctionImpl.java
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/language/TstLanguageBridgeFactory.java
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/metadata/TestMetadataFactory.java
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/FakeSourceConnectionFactory.java
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/FakeUserIdentityConnectionFactory.java
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/TestConnectionPool.java
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/TestConnectionWrapper.java
trunk/engine/src/test/java/com/metamatrix/query/unittest/QueryMetadataInterfaceBuilder.java
trunk/test-integration/src/test/java/com/metamatrix/cdk/api/TestTranslationUtility.java
trunk/test-integration/src/test/java/com/metamatrix/connector/jdbc/extension/TestSQLConversionVisitor.java
trunk/test-integration/src/test/java/com/metamatrix/connector/jdbc/oracle/TestOracleSQLConversionVisitor.java
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/MockConnector.java
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestElement.java
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestGroup.java
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestParams.java
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestProcedure.java
trunk/test-integration/src/test/java/com/metamatrix/data/visitor/util/TestCollectorVisitor.java
trunk/test-integration/src/test/java/com/metamatrix/data/visitor/util/TestSQLStringVisitor.java
Log:
TEIID-164 TEIID-374 refactored connector metadata, removed collection setters from
connector api, moved pooling and identity knowlege onto base connector api
Modified: trunk/connector-api/src/main/java/com/metamatrix/connector/api/Connection.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/api/Connection.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/api/Connection.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,7 +22,6 @@
package com.metamatrix.connector.api;
-import com.metamatrix.connector.identity.PoolAwareConnection;
import com.metamatrix.connector.language.ICommand;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
@@ -63,6 +62,20 @@
* @return true if open, false if there is a source error.
*/
boolean isAlive();
-
+
+ /**
+ * Called by the pool when an existing connection is leased so that the underlying
+ * Connection may have it's identity switched to a different user.
+ * @param identity
+ * @throws ConnectorException
+ */
+ void setConnectorIdentity(ConnectorIdentity context)
+ throws ConnectorException;
+
+ /**
+ * Called by the pool to indicate that the connection was returned to the pool.
+ * The actual close call will be made when the pool wants to purge this connection.
+ */
+ void closeCalled();
}
Modified: trunk/connector-api/src/main/java/com/metamatrix/connector/api/Connector.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/api/Connector.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/api/Connector.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -68,5 +68,21 @@
* @return ConnectorCapabilities, may return null if the Connector provides User
scoped capabilities {@link Connection#getCapabilities()}
*/
ConnectorCapabilities getCapabilities();
+
+ /**
+ * Create an identity object based on a security context.
+ *
+ * If single identity is not supported then an exception should be thrown when a
+ * null context is supplied.
+ *
+ * Implementors of this class may use a different implementation of the
+ * {@link ConnectorIdentity} interface to similarly affect pooling.
+ *
+ * @param context The context provided by the Connector Manager
+ * @return The associated connector identity
+ * @throws ConnectorException If a null context is not accepted or an error occurs while
creating the identity.
+ */
+ ConnectorIdentity createIdentity(ExecutionContext context)
+ throws ConnectorException;
}
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/api/ConnectorAnnotations.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/api/ConnectorAnnotations.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/api/ConnectorAnnotations.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -27,7 +27,6 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
-import com.metamatrix.connector.identity.ConnectorIdentityFactory;
import com.metamatrix.connector.internal.ConnectorPropertyNames;
public class ConnectorAnnotations {
@@ -51,5 +50,13 @@
public @interface SynchronousWorkers {
boolean enabled() default true;
}
+
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ElementType.TYPE})
+ public @interface ConnectorConfiguration {
+ boolean userIdentityCapable() default false;
+ boolean useSynchronousWorkers() default true;
+ boolean useConnectionPooling() default true;
+ }
}
Copied:
trunk/connector-api/src/main/java/com/metamatrix/connector/api/ConnectorIdentity.java
(from rev 481,
trunk/connector-api/src/main/java/com/metamatrix/connector/identity/ConnectorIdentity.java)
===================================================================
--- trunk/connector-api/src/main/java/com/metamatrix/connector/api/ConnectorIdentity.java
(rev 0)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/api/ConnectorIdentity.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -0,0 +1,34 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+
+package com.metamatrix.connector.api;
+
+
+/**
+ * Represents the identity of a connection in the pool. Identities are
+ * used to determine whether two connections can be put in the same pool.
+ * Implementors must supply appropriate {@link java.lang.Object#equals(java.lang.Object)}
and
+ * {@link java.lang.Object#hashCode()} methods.
+ */
+public interface ConnectorIdentity {
+
+}
Property changes on:
trunk/connector-api/src/main/java/com/metamatrix/connector/api/ConnectorIdentity.java
___________________________________________________________________
Name: svn:mergeinfo
+
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/api/ExecutionContext.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/api/ExecutionContext.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/api/ExecutionContext.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -24,9 +24,6 @@
import java.io.Serializable;
-import com.metamatrix.connector.identity.ConnectorIdentity;
-import com.metamatrix.connector.identity.ConnectorIdentityFactory;
-import com.metamatrix.connector.identity.SingleIdentity;
/**
* The security context provides information about the user context in which
Copied:
trunk/connector-api/src/main/java/com/metamatrix/connector/api/MappedUserIdentity.java
(from rev 481,
trunk/connector-api/src/main/java/com/metamatrix/connector/identity/UserIdentity.java)
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/api/MappedUserIdentity.java
(rev 0)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/api/MappedUserIdentity.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -0,0 +1,81 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+
+package com.metamatrix.connector.api;
+
+
+/**
+ * This class represents a ConnectorIdentity keyed on a username with
+ * a mapped identity
+ */
+public class MappedUserIdentity implements ConnectorIdentity {
+ private String username;
+ private String mappedUser;
+ private String password;
+
+ /**
+ * Construct with a security context
+ * @param context The context
+ */
+ public MappedUserIdentity(String username, String mappedUser, String password){
+ this.username = username;
+ this.mappedUser = mappedUser;
+ this.password = password;
+ }
+
+ /**
+ * Implement equals based on the case-insensitive user name.
+ * @param obj Other identity object
+ * @return True if other object is a UserIdentity with the same user name
+ */
+ public boolean equals(Object obj){
+ if (this == obj) {
+ return true;
+ }
+
+ if (obj instanceof MappedUserIdentity) {
+ MappedUserIdentity that = (MappedUserIdentity)obj;
+ return username.equals(that.username);
+ }
+
+ return false;
+ }
+
+ /**
+ * Get hash code, based on user name
+ */
+ public int hashCode(){
+ return username.hashCode();
+ }
+
+ public String toString(){
+ return "UserIdentity " + username; //$NON-NLS-1$
+ }
+
+ public String getMappedUser() {
+ return mappedUser;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+}
Property changes on:
trunk/connector-api/src/main/java/com/metamatrix/connector/api/MappedUserIdentity.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/connector-api/src/main/java/com/metamatrix/connector/api/SingleIdentity.java
(from rev 481,
trunk/connector-api/src/main/java/com/metamatrix/connector/identity/SingleIdentity.java)
===================================================================
--- trunk/connector-api/src/main/java/com/metamatrix/connector/api/SingleIdentity.java
(rev 0)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/api/SingleIdentity.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+
+package com.metamatrix.connector.api;
+
+
+/**
+ * This class represents a single ConnectorIdentity. All the connections are treated the
same.
+ */
+public class SingleIdentity implements ConnectorIdentity {
+
+ public SingleIdentity(){
+ }
+
+ /**
+ * Return true for everything - all identities are identical.
+ */
+ public boolean equals(Object obj){
+ return obj instanceof SingleIdentity;
+ }
+
+ public String toString(){
+ return "SingleIdentity"; //$NON-NLS-1$
+ }
+
+ public int hashCode(){
+ return 0;
+ }
+}
Property changes on:
trunk/connector-api/src/main/java/com/metamatrix/connector/api/SingleIdentity.java
___________________________________________________________________
Name: svn:mergeinfo
+
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/basic/BasicConnection.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/basic/BasicConnection.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/basic/BasicConnection.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -25,12 +25,12 @@
import com.metamatrix.connector.api.Connection;
import com.metamatrix.connector.api.ConnectorCapabilities;
import com.metamatrix.connector.api.ConnectorException;
+import com.metamatrix.connector.api.ConnectorIdentity;
import com.metamatrix.connector.api.Execution;
import com.metamatrix.connector.api.ExecutionContext;
import com.metamatrix.connector.api.ProcedureExecution;
import com.metamatrix.connector.api.ResultSetExecution;
import com.metamatrix.connector.api.UpdateExecution;
-import com.metamatrix.connector.identity.ConnectorIdentity;
import com.metamatrix.connector.language.ICommand;
import com.metamatrix.connector.language.IProcedure;
import com.metamatrix.connector.language.IQueryCommand;
@@ -81,20 +81,12 @@
return null;
}
- /**
- * Called by the pool to indicate that the connection was returned to the pool.
- * The actual close call will be made when the pool wants to purge this connection.
- */
+ @Override
public void closeCalled() {
}
- /**
- * Called by the pool when an existing connection is leased so that the underlying
- * Connection may have it's identity switched to a different user.
- * @param identity
- * @throws ConnectorException
- */
+ @Override
public void setConnectorIdentity(ConnectorIdentity context)
throws ConnectorException {
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/basic/BasicConnector.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/basic/BasicConnector.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/basic/BasicConnector.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -1,7 +1,61 @@
package com.metamatrix.connector.basic;
+import com.metamatrix.connector.DataPlugin;
import com.metamatrix.connector.api.Connector;
+import com.metamatrix.connector.api.ConnectorException;
+import com.metamatrix.connector.api.ConnectorIdentity;
+import com.metamatrix.connector.api.CredentialMap;
+import com.metamatrix.connector.api.ExecutionContext;
+import com.metamatrix.connector.api.SingleIdentity;
+import com.metamatrix.connector.api.MappedUserIdentity;
public abstract class BasicConnector implements Connector {
+ private boolean useCredentialMap;
+ private boolean adminConnectionsAllowed = true;
+ private String connectorName;
+
+ /* (non-Javadoc)
+ * @see
com.metamatrix.connector.api.Connector#createIdentity(com.metamatrix.connector.api.ExecutionContext)
+ */
+ public ConnectorIdentity createIdentity(ExecutionContext context)
+ throws ConnectorException {
+ if (context == null) {
+ if (adminConnectionsAllowed) {
+ return new SingleIdentity();
+ }
+ throw new
ConnectorException(DataPlugin.Util.getString("UserIdentityFactory.single_identity_not_supported"));
//$NON-NLS-1$
+ }
+ Object payload = context.getTrustedPayload();
+ if (!(payload instanceof CredentialMap)) {
+ if (useCredentialMap) {
+ throw new
ConnectorException(DataPlugin.Util.getString("UserIdentityFactory.extraction_error"));
//$NON-NLS-1$
+ }
+ return new SingleIdentity();
+ }
+ CredentialMap credMap = (CredentialMap)payload;
+ String user = credMap.getUser(connectorName);
+ String password = credMap.getPassword(connectorName);
+ if (user == null || password == null) {
+ throw new ConnectorException("Payload missing credentials for " +
connectorName); //$NON-NLS-1$
+ }
+ return new MappedUserIdentity(context.getUser(), user, password);
+ }
+
+ public void setConnectorName(String connectorName) {
+ this.connectorName = connectorName;
+ }
+
+ public void setUseCredentialMap(boolean useCredentialMap) {
+ this.useCredentialMap = useCredentialMap;
+ }
+
+ public boolean areAdminConnectionsAllowed() {
+ return adminConnectionsAllowed;
+ }
+
+ public void setAdminConnectionsAllowed(boolean adminConnectionsAllowed) {
+ this.adminConnectionsAllowed = adminConnectionsAllowed;
+ }
+
}
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IBulkInsert.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IBulkInsert.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IBulkInsert.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -36,9 +36,4 @@
*/
List<List<?>> getRows();
- /**
- * Set the list of row values for this bulk insert
- * @return list; never null
- */
- void setRows(List<List<?>> rows);
}
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/language/ICompoundCriteria.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/language/ICompoundCriteria.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/language/ICompoundCriteria.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -56,10 +56,4 @@
*/
List<ICriteria> getCriteria();
- /**
- * Set list of ICriteria combined by this compound criteria.
- * @param criteria List of ICriteria
- */
- void setCriteria(List<ICriteria> criteria);
-
}
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IElement.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IElement.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IElement.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,11 +22,13 @@
package com.metamatrix.connector.language;
+import com.metamatrix.connector.metadata.runtime.Element;
+
/**
* Represents an element in the language. An example of an element
* would be a column reference in a SELECT clause.
*/
-public interface IElement extends IMetadataReference, IExpression {
+public interface IElement extends IMetadataReference<Element>, IExpression {
/**
* Gets the name of the element.
Modified: trunk/connector-api/src/main/java/com/metamatrix/connector/language/IFrom.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IFrom.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IFrom.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -35,10 +35,4 @@
*/
List<IFromItem> getItems();
- /**
- * Set a List of IFromItem in this FROM clause.
- * @param items List of IFromItem
- */
- void setItems(List<IFromItem> items);
-
}
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IFunction.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IFunction.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IFunction.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,8 @@
package com.metamatrix.connector.language;
+import java.util.List;
+
/**
* Represents a function in the language. A function has a name and 0..n
* Expressions that are parameters.
@@ -38,7 +40,7 @@
* Get the parameters used in this function.
* @return Array of IExpressions defining the parameters
*/
- IExpression[] getParameters();
+ List<IExpression> getParameters();
/**
* Set name of the function
@@ -46,10 +48,4 @@
*/
void setName(String name);
- /**
- * Set the parameters used in this function.
- * @param parameters Array of IExpressions defining the parameters
- */
- void setParameters(IExpression[] parameters);
-
}
Modified: trunk/connector-api/src/main/java/com/metamatrix/connector/language/IGroup.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IGroup.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IGroup.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,12 +22,14 @@
package com.metamatrix.connector.language;
+import com.metamatrix.connector.metadata.runtime.Group;
+
/**
* Represents a group in the language objects. An example of a group would
* be a table reference in the FROM clause. An IGroup may have a context name
* used in references to this group.
*/
-public interface IGroup extends IMetadataReference, IFromItem, ILanguageObject {
+public interface IGroup extends IMetadataReference<Group>, IFromItem,
ILanguageObject {
/**
* Get the name of the group as defined in the VDB. This is null if the
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IGroupBy.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IGroupBy.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IGroupBy.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -35,10 +35,4 @@
*/
List<IExpression> getElements();
- /**
- * Set list of IExpression that the GROUP BY should be grouped on.
- * @param elements List of IExpression
- */
- void setElements(List<IExpression> elements);
-
}
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IInCriteria.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IInCriteria.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IInCriteria.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -35,10 +35,4 @@
*/
List<IExpression> getRightExpressions();
- /**
- * Set List of IExpression in the set on the right side of the criteria.
- * @param expressions List of IExpression
- */
- void setRightExpressions(List<IExpression> expressions);
-
}
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IInsert.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IInsert.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IInsert.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -53,16 +53,4 @@
*/
void setGroup(IGroup group);
- /**
- * Set list of elements being inserted into
- * @param elements List of IElement
- */
- void setElements(List<IElement> elements);
-
- /**
- * Set list of values being inserted
- * @param values List of IExpression
- */
- void setValues(List<IExpression> values);
-
}
Modified: trunk/connector-api/src/main/java/com/metamatrix/connector/language/IJoin.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IJoin.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IJoin.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -90,9 +90,4 @@
*/
void setJoinType(JoinType type);
- /**
- * Set List of CompareCriteria specifying join criteria.
- * @param criteria List of Criteria
- */
- void setCriteria(List<? extends ICriteria> criteria);
}
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/language/ILanguageFactory.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/language/ILanguageFactory.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/language/ILanguageFactory.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -26,7 +26,10 @@
import com.metamatrix.connector.language.ICompoundCriteria.Operator;
import com.metamatrix.connector.language.IParameter.Direction;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
+import com.metamatrix.connector.metadata.runtime.Element;
+import com.metamatrix.connector.metadata.runtime.Group;
+import com.metamatrix.connector.metadata.runtime.Parameter;
+import com.metamatrix.connector.metadata.runtime.Procedure;
/**
* Factory for the construction of language objects that implement the language
interfaces.
@@ -61,7 +64,7 @@
* @param innerCriteria List of ICriteria, typically containing two criteria
* @return New ICompoundCriteria
*/
- ICompoundCriteria createCompoundCriteria(ICompoundCriteria.Operator operator,
List<ICriteria> innerCriteria);
+ ICompoundCriteria createCompoundCriteria(ICompoundCriteria.Operator operator,
List<? extends ICriteria> innerCriteria);
/**
* Create a new IDelete.
@@ -79,7 +82,7 @@
* @param type Data type
* @return New IElement
*/
- IElement createElement(String name, IGroup group, MetadataID metadataReference, Class
type);
+ IElement createElement(String name, IGroup group, Element metadataReference, Class
type);
/**
* Create new exists criteria.
@@ -93,7 +96,16 @@
* @param items List of IFromItem
* @return New IFrom
*/
- IFrom createFrom(List<IFromItem> items);
+ IFrom createFrom(List<? extends IFromItem> items);
+
+ /**
+ * Create new function
+ * @param functionName Name of the function
+ * @param args Arguments, should never be null
+ * @param type Data type returned
+ * @return New IFunction
+ */
+ IFunction createFunction(String functionName, IExpression[] args, Class type);
/**
* Create new function
@@ -102,7 +114,7 @@
* @param type Data type returned
* @return New IFunction
*/
- IFunction createFunction(String functionName, IExpression[] args, Class type);
+ IFunction createFunction(String functionName, List<? extends IExpression> args,
Class type);
/**
* Create new group.
@@ -111,14 +123,14 @@
* @param metadataReference Reference to metadata identifier
* @return New IGroup
*/
- IGroup createGroup(String context, String definition, MetadataID metadataReference);
+ IGroup createGroup(String context, String definition, Group metadataReference);
/**
* Create new group by.
* @param items List of IGroupByItem
* @return New IGroupBy
*/
- IGroupBy createGroupBy(List<IExpression> items);
+ IGroupBy createGroupBy(List<? extends IExpression> items);
/**
* Create new IN criteria
@@ -127,7 +139,7 @@
* @param isNegated True if NOT IN, false for IN
* @return New IInCriteria
*/
- IInCriteria createInCriteria(IExpression leftExpression, List<IExpression>
rightExpressions, boolean isNegated);
+ IInCriteria createInCriteria(IExpression leftExpression, List<? extends
IExpression> rightExpressions, boolean isNegated);
/**
* Create new inline view
@@ -144,7 +156,7 @@
* @param values List of IExpression (usually ILiteral)
* @return New IInsert
*/
- IInsert createInsert(IGroup group, List<IElement> columns,
List<IExpression> values);
+ IInsert createInsert(IGroup group, List<IElement> columns, List<? extends
IExpression> values);
/**
* Create new bulk insert command
@@ -153,7 +165,7 @@
* @param List of Lists containing the actual values
* @return New IBulkInsert
*/
- IBulkInsert createBulkInsert(IGroup group, List<IElement> columns,
List<List<Object>> rows);
+ IBulkInsert createBulkInsert(IGroup group, List<? extends IElement> columns,
List<List<Object>> rows);
/**
* Create new IS NULL criteria
@@ -171,7 +183,7 @@
* @param criteria List of ICriteria (considered to be AND'ed together)
* @return New IJoin
*/
- IJoin createJoin(IJoin.JoinType joinType, IFromItem leftItem, IFromItem rightItem,
List<ICriteria> criteria);
+ IJoin createJoin(IJoin.JoinType joinType, IFromItem leftItem, IFromItem rightItem,
List<? extends ICriteria> criteria);
/**
* Create new LIKE criteria
@@ -203,7 +215,7 @@
* @param items List of IOrderByItem
* @return New IOrderBy
*/
- IOrderBy createOrderBy(List<IOrderByItem> items);
+ IOrderBy createOrderBy(List<? extends IOrderByItem> items);
/**
* Create new ORDER BY item
@@ -223,7 +235,7 @@
* @param metadataReference Metadata identifier reference
* @return New IParameter
*/
- IParameter createParameter(int index, Direction direction, Object value, Class type,
MetadataID metadataReference);
+ IParameter createParameter(int index, Direction direction, Object value, Class type,
Parameter metadataReference);
/**
* Create new procedure
@@ -232,7 +244,7 @@
* @param metadataReference Metadata identifier reference
* @return New IProcedure
*/
- IProcedure createProcedure(String name, List<IParameter> parameters, MetadataID
metadataReference);
+ IProcedure createProcedure(String name, List<? extends IParameter> parameters,
Procedure metadataReference);
/**
* Create new query
@@ -263,7 +275,7 @@
* @param type Data type
* @return New ICaseExpression
*/
- ISearchedCaseExpression createSearchedCaseExpression(List<IExpression>
whenExpressions, List<IExpression> thenExpressions, IExpression elseExpression,
Class type);
+ ISearchedCaseExpression createSearchedCaseExpression(List<? extends ICriteria>
whenExpressions, List<? extends IExpression> thenExpressions, IExpression
elseExpression, Class type);
/**
* Create new SELECT clause
@@ -271,7 +283,7 @@
* @param selectSymbols List of ISelectSymbol
* @return New ISelect
*/
- ISelect createSelect(boolean isDistinct, List<ISelectSymbol> selectSymbols);
+ ISelect createSelect(boolean isDistinct, List<? extends ISelectSymbol>
selectSymbols);
/**
* Create new select symbol
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IMetadataReference.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IMetadataReference.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IMetadataReference.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,23 +22,14 @@
package com.metamatrix.connector.language;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
+import com.metamatrix.connector.metadata.runtime.MetadataObject;
/**
* This interface is used to mark language objects as having a
* reference to a MetadataID.
*/
-public interface IMetadataReference {
+public interface IMetadataReference<T extends MetadataObject> {
- /**
- * Return the MetadataID that is being referred to.
- * @return MetadataID
- */
- MetadataID getMetadataID();
+ T getMetadataObject();
- /**
- * Set the MetadataID that is being referred to.
- * @param metadataID MetadataID
- */
- void setMetadataID(MetadataID metadataID);
}
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IOrderBy.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IOrderBy.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IOrderBy.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -40,10 +40,4 @@
*/
List<IOrderByItem> getItems();
- /**
- * Set list of {@link IOrderByItem}s specifying the ordering of the results.
- * @param items List of IOrderByItem
- */
- void setItems(List<IOrderByItem> items);
-
}
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IParameter.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IParameter.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IParameter.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,10 +22,12 @@
package com.metamatrix.connector.language;
+import com.metamatrix.connector.metadata.runtime.Parameter;
+
/**
* Represents an execution parameter.
*/
-public interface IParameter extends ILanguageObject, IMetadataReference {
+public interface IParameter extends ILanguageObject, IMetadataReference<Parameter>
{
public enum Direction {
IN,
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IProcedure.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IProcedure.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/language/IProcedure.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -24,10 +24,12 @@
import java.util.List;
+import com.metamatrix.connector.metadata.runtime.Procedure;
+
/**
* Represents a procedural execution (such as a stored procedure).
*/
-public interface IProcedure extends ICommand, IMetadataReference {
+public interface IProcedure extends ICommand, IMetadataReference<Procedure> {
/**
* Gets the name of the procedure.
@@ -48,11 +50,4 @@
*/
void setProcedureName(String name);
- /**
- * Sets list of the IParameter objects associated with this execution.
- * The parameters describe inputs and outputs.
- * @param parameters List of IParameter
- */
- void setParameters(List<IParameter> parameters);
-
}
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/language/ISelect.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/language/ISelect.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/language/ISelect.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -42,12 +42,6 @@
boolean isDistinct();
/**
- * Set List of ISelectSymbol.
- * @param symbols List of ISelectSymbol
- */
- void setSelectSymbols(List<ISelectSymbol> symbols);
-
- /**
* Set whether the DISTINCT flag is used in this SELECT.
* @param distinct True if SELECT DISTINCT, false if SELECT ALL
*/
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/Element.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/Element.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/Element.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -98,5 +98,12 @@
* @return
* @throws ConnectorException
*/
- String getFormat() throws ConnectorException;
+ String getFormat() throws ConnectorException;
+
+ /**
+ * Get the parent
+ * @return Parent
+ */
+ Group getParent() throws ConnectorException;
+
}
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/Group.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/Group.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/Group.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,8 +22,15 @@
package com.metamatrix.connector.metadata.runtime;
+import java.util.List;
+
+import com.metamatrix.connector.api.ConnectorException;
+
/**
* Represents a group, such as a table, in the runtime metadata.
*/
public interface Group extends MetadataObject {
+
+ List<Element> getChildren() throws ConnectorException;
+
}
Deleted:
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/MetadataID.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/MetadataID.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/MetadataID.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -1,81 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-
-package com.metamatrix.connector.metadata.runtime;
-
-import java.util.List;
-
-import com.metamatrix.connector.api.ConnectorException;
-
-/**
- * Represents a runtime metadata identifier.
- */
-public interface MetadataID {
-
- public enum Type {
- TYPE_ELEMENT,
- TYPE_GROUP,
- TYPE_PARAMETER,
- TYPE_PROCEDURE
- }
- /**
- * Get the type of metadataID
- * @return ID type
- * @see #TYPE_ELEMENT
- * @see #TYPE_GROUP
- * @see #TYPE_PROCEDURE
- * @see #TYPE_PARAMETER
- */
- Type getType();
-
- /**
- * Get a list of child IDs from this ID. A group metadata ID will
- * return child element IDs. An element ID will return no child IDs.
- * A procedure ID will return the IDs of it's parameters.
- * @return List of MetadataID, which may be empty but never null
- */
- List<MetadataID> getChildIDs() throws ConnectorException;
-
- /**
- * Get the parent ID if one exists
- * @return Parent ID or null if none exists
- */
- MetadataID getParentID() throws ConnectorException;
-
- /**
- * Get the short name from the metadataID
- * @return String shortName
- */
- String getName();
-
- /**
- * Get the full name from the metadataID
- * @return String fullName
- */
- String getFullName();
-
- /**
- * Get the {@link MetadataObject} for this id
- * @return
- */
- MetadataObject getMetadataObject() throws ConnectorException;
-}
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/MetadataObject.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/MetadataObject.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/MetadataObject.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -32,12 +32,6 @@
public interface MetadataObject {
/**
- * Get the identifier for this object.
- * @return Unique identifier for the object
- */
- MetadataID getMetadataID();
-
- /**
* Get name in source for this object, as provided in the model
* @return Name in source
* @throws ConnectorException If an error occurs retrieving the data
@@ -53,4 +47,16 @@
* from runtime metadata
*/
Properties getProperties() throws ConnectorException;
+
+ /**
+ * Get the short name from the metadataID
+ * @return String shortName
+ */
+ String getName();
+
+ /**
+ * Get the full name from the metadataID
+ * @return String fullName
+ */
+ String getFullName();
}
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/Parameter.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/Parameter.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/Parameter.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,8 @@
package com.metamatrix.connector.metadata.runtime;
+import java.util.List;
+
import com.metamatrix.connector.api.ConnectorException;
/**
@@ -53,5 +55,12 @@
*/
int getDirection() throws ConnectorException;
+ /**
+ * Get the parent
+ * @return Parent
+ */
+ Procedure getParent() throws ConnectorException;
+ List<Element> getChildren() throws ConnectorException;
+
}
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/Procedure.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/Procedure.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/Procedure.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,9 +22,12 @@
package com.metamatrix.connector.metadata.runtime;
+import java.util.List;
+
/**
* Represents a procedure construct (such as a Stored Procedure).
*/
public interface Procedure extends MetadataObject{
+ List<Parameter> getChildren();
}
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/RuntimeMetadata.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/RuntimeMetadata.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/metadata/runtime/RuntimeMetadata.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -31,10 +31,24 @@
/**
* Look up an object by identifier
- * @param id The identifier
+ * @param fullName
* @return The object
*/
- MetadataObject getObject(MetadataID id) throws ConnectorException;
+ Group getGroup(String fullName) throws ConnectorException;
+
+ /**
+ * Look up an object by identifier
+ * @param fullName
+ * @return The object
+ */
+ Element getElement(String fullName) throws ConnectorException;
+
+ /**
+ * Look up an object by identifier
+ * @param fullName
+ * @return The object
+ */
+ Procedure getProcedure(String fullName) throws ConnectorException;
/**
* Gets the contents of a VDB resource in binary form.
Modified:
trunk/connector-api/src/main/java/com/metamatrix/connector/visitor/util/SQLStringVisitor.java
===================================================================
---
trunk/connector-api/src/main/java/com/metamatrix/connector/visitor/util/SQLStringVisitor.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-api/src/main/java/com/metamatrix/connector/visitor/util/SQLStringVisitor.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -70,7 +70,6 @@
import com.metamatrix.connector.language.ISubqueryInCriteria;
import com.metamatrix.connector.language.IUpdate;
import com.metamatrix.connector.language.IParameter.Direction;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.MetadataObject;
import com.metamatrix.connector.visitor.framework.AbstractLanguageVisitor;
import com.metamatrix.core.util.StringUtil;
@@ -93,19 +92,15 @@
* @param id the id of the group or element
* @return the name of that element or group as defined in the source
*/
- protected String getName(MetadataID id) {
+ protected String getName(MetadataObject object) {
try {
- MetadataObject obj = id.getMetadataObject();
- if (obj == null) {
- return id.getName();
- }
- String nameInSource = obj.getNameInSource();
+ String nameInSource = object.getNameInSource();
if(nameInSource != null && nameInSource.length() > 0) {
return nameInSource;
}
- return id.getName();
+ return object.getName();
} catch(ConnectorException e) {
- return id.getName();
+ return object.getName();
}
}
@@ -291,7 +286,7 @@
if(group.getDefinition() != null) {
groupName = group.getContext();
} else {
- MetadataID groupID = group.getMetadataID();
+ MetadataObject groupID = group.getMetadataObject();
if(groupID != null) {
groupName = getName(groupID);
} else {
@@ -301,7 +296,7 @@
}
String elemShortName = null;
- MetadataID elementID = obj.getMetadataID();
+ MetadataObject elementID = obj.getMetadataObject();
if(elementID != null) {
elemShortName = getName(elementID);
} else {
@@ -345,8 +340,8 @@
buffer.append(EXEC)
.append(SPACE);
- if(obj.getMetadataID() != null) {
- buffer.append(getName(obj.getMetadataID()));
+ if(obj.getMetadataObject() != null) {
+ buffer.append(getName(obj.getMetadataObject()));
} else {
buffer.append(obj.getProcedureName());
}
@@ -399,15 +394,15 @@
public void visit(IFunction obj) {
String name = obj.getName();
- IExpression[] args = obj.getParameters();
+ List<IExpression> args = obj.getParameters();
if(name.equalsIgnoreCase(CONVERT) || name.equalsIgnoreCase(CAST)) {
- Object typeValue = ((ILiteral)args[1]).getValue();
+ Object typeValue = ((ILiteral)args.get(1)).getValue();
buffer.append(name);
buffer.append(LPAREN);
- append(args[0]);
+ append(args.get(0));
if(name.equalsIgnoreCase(CONVERT)) {
buffer.append(COMMA);
@@ -423,9 +418,9 @@
buffer.append(LPAREN);
if(args != null) {
- for(int i=0; i<args.length; i++) {
- append(args[i]);
- if(i < (args.length-1)) {
+ for(int i=0; i<args.size(); i++) {
+ append(args.get(i));
+ if(i < (args.size()-1)) {
buffer.append(SPACE);
buffer.append(name);
buffer.append(SPACE);
@@ -438,13 +433,16 @@
buffer.append(name);
buffer.append(LPAREN);
- if(args != null && args.length > 0) {
- buffer.append(((ILiteral)args[0]).getValue());
+ if(args != null && args.size() > 0) {
+ buffer.append(((ILiteral)args.get(0)).getValue());
- for(int i=1; i<args.length; i++) {
- buffer.append(COMMA);
- buffer.append(SPACE);
- append(args[i]);
+ for(int i=1; i<args.size(); i++) {
+ append(args.get(i));
+ if(i < (args.size()-1)) {
+ buffer.append(SPACE);
+ buffer.append(name);
+ buffer.append(SPACE);
+ }
}
}
buffer.append(RPAREN);
@@ -462,7 +460,7 @@
* @see
com.metamatrix.data.visitor.LanguageObjectVisitor#visit(com.metamatrix.connector.language.IGroup)
*/
public void visit(IGroup obj) {
- MetadataID groupID = obj.getMetadataID();
+ MetadataObject groupID = obj.getMetadataObject();
if(groupID != null) {
buffer.append(getName(groupID));
} else {
Modified: trunk/connector-api/src/main/resources/com/metamatrix/data/i18n.properties
===================================================================
--- trunk/connector-api/src/main/resources/com/metamatrix/data/i18n.properties 2009-02-24
14:33:28 UTC (rev 487)
+++ trunk/connector-api/src/main/resources/com/metamatrix/data/i18n.properties 2009-02-24
16:16:42 UTC (rev 488)
@@ -59,4 +59,5 @@
ValueTranslator.no_tranfrom_found=To Suitable transform found to convert {0} type value
to {1}
unknown_object_type_to_tranfrom_xml=Unknown object type supplied to transform into
SQLXML.
-UserIdentityFactory.single_identity_not_supported=Single identity is not supported by the
UserIdentityFactory. A context is required.
\ No newline at end of file
+UserIdentityFactory.single_identity_not_supported=Single identity is not supported by the
UserIdentityFactory. A context is required.
+UserIdentityFactory.extraction_error=Unable to extract credentials from command payload
or trusted session payload for per-user connection.
\ No newline at end of file
Modified:
trunk/connector-metadata/src/main/java/com/metamatrix/connector/metadata/adapter/ObjectConnector.java
===================================================================
---
trunk/connector-metadata/src/main/java/com/metamatrix/connector/metadata/adapter/ObjectConnector.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-metadata/src/main/java/com/metamatrix/connector/metadata/adapter/ObjectConnector.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -23,17 +23,17 @@
package com.metamatrix.connector.metadata.adapter;
import com.metamatrix.connector.api.Connection;
-import com.metamatrix.connector.api.Connector;
import com.metamatrix.connector.api.ConnectorCapabilities;
import com.metamatrix.connector.api.ConnectorEnvironment;
import com.metamatrix.connector.api.ConnectorException;
import com.metamatrix.connector.api.ExecutionContext;
+import com.metamatrix.connector.basic.BasicConnector;
import com.metamatrix.connector.metadata.internal.IObjectSource;
/**
* Adapter to expose the object processing logic via the standard connector API.
*/
-public abstract class ObjectConnector implements Connector {
+public abstract class ObjectConnector extends BasicConnector {
private ConnectorEnvironment environment;
public ConnectorCapabilities getCapabilities() {
Modified:
trunk/connector-metadata/src/main/java/com/metamatrix/connector/metadata/internal/ObjectProcedure.java
===================================================================
---
trunk/connector-metadata/src/main/java/com/metamatrix/connector/metadata/internal/ObjectProcedure.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-metadata/src/main/java/com/metamatrix/connector/metadata/internal/ObjectProcedure.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -39,7 +39,6 @@
import com.metamatrix.connector.metadata.MetadataConnectorPlugin;
import com.metamatrix.connector.metadata.index.MetadataLiteralCriteria;
import com.metamatrix.connector.metadata.runtime.Element;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.MetadataObject;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
import com.metamatrix.core.MetaMatrixRuntimeException;
@@ -118,15 +117,14 @@
* @since 4.2
*/
private void initResultSet() throws ConnectorException {
- List columnMetadata = resultSetParameter.getMetadataID().getChildIDs();
+ List<Element> columnMetadata =
resultSetParameter.getMetadataObject().getChildren();
int size = columnMetadata.size();
columnNames = new String[size];
columnNamesInSource = new String[size];
columnTypes = new Class[size];
for(int i =0; i<size; i++ ){
- MetadataID mID = (MetadataID)columnMetadata.get(i);
- Element element = (Element) metadata.getObject(mID);
- columnNames[i] = element.getMetadataID().getFullName();
+ Element element = columnMetadata.get(i);
+ columnNames[i] = element.getFullName();
columnNamesInSource[i] = element.getNameInSource();
columnTypes[i] = element.getJavaType();
}
@@ -271,8 +269,7 @@
if(reference == null) {
return null;
}
- MetadataID id = reference.getMetadataID();
- MetadataObject obj = metadata.getObject(id);
+ MetadataObject obj = reference.getMetadataObject();
if (obj != null && obj.getNameInSource() != null) {
return obj.getNameInSource();
}
Modified:
trunk/connector-metadata/src/main/java/com/metamatrix/connector/metadata/internal/ObjectQuery.java
===================================================================
---
trunk/connector-metadata/src/main/java/com/metamatrix/connector/metadata/internal/ObjectQuery.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-metadata/src/main/java/com/metamatrix/connector/metadata/internal/ObjectQuery.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -39,7 +39,6 @@
import com.metamatrix.connector.language.ISelectSymbol;
import com.metamatrix.connector.metadata.MetadataConnectorPlugin;
import com.metamatrix.connector.metadata.runtime.Element;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.MetadataObject;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
import com.metamatrix.core.MetaMatrixRuntimeException;
@@ -169,19 +168,18 @@
if(expression instanceof IFunction) {
IFunction function = (IFunction) expression;
functionName = function.getName();
- IExpression[] expressions = function.getParameters();
- element = (IElement)expressions[0];
+ List<IExpression> expressions = function.getParameters();
+ element = (IElement)expressions.get(0);
} else if(expression instanceof IElement) {
element = (IElement)expression;
}
IMetadataReference reference = element;
- MetadataID id = reference.getMetadataID();
- MetadataObject obj = metadata.getObject(id);
+ MetadataObject obj = reference.getMetadataObject();
if (obj != null && obj.getNameInSource() != null) {
Element elementMetadata = (Element) obj;
columnTypes.add( elementMetadata.getJavaType() );
columnNamesInSource.add(obj.getNameInSource());
- columnNames.add(obj.getMetadataID().getFullName());
+ columnNames.add(obj.getFullName());
if(functionName == null) {
caseTypes.add(NO_CASE);
} else if(functionName.equalsIgnoreCase("UPPER") ||
functionName.equalsIgnoreCase("UCASE")) { //$NON-NLS-1$ //$NON-NLS-2$
@@ -194,8 +192,7 @@
private String getMetadataObjectName(Object element) throws ConnectorException {
IMetadataReference reference = (IMetadataReference) element;
- MetadataID id = reference.getMetadataID();
- MetadataObject obj = metadata.getObject(id);
+ MetadataObject obj = reference.getMetadataObject();
if (obj != null && obj.getNameInSource() != null) {
return obj.getNameInSource();
}
@@ -228,8 +225,8 @@
String functionName = null;
if(expression instanceof IFunction) {
IFunction function = (IFunction) expression;
- IExpression[] expressions = function.getParameters();
- literal = (ILiteral)expressions[0];
+ List<IExpression> expressions = function.getParameters();
+ literal = (ILiteral)expressions.get(0);
functionName = function.getName();
} else if(expression instanceof ILiteral) {
literal = (ILiteral) expression;
@@ -249,8 +246,8 @@
IElement element = null;
if(expression instanceof IFunction) {
IFunction function = (IFunction) expression;
- IExpression[] expressions = function.getParameters();
- element = (IElement)expressions[0];
+ List<IExpression> expressions = function.getParameters();
+ element = (IElement)expressions.get(0);
} else if(expression instanceof IElement) {
element = (IElement)expression;
}
Deleted:
trunk/connector-metadata/src/test/java/com/metamatrix/connector/metadata/internal/FakeRuntimeMetadata.java
===================================================================
---
trunk/connector-metadata/src/test/java/com/metamatrix/connector/metadata/internal/FakeRuntimeMetadata.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-metadata/src/test/java/com/metamatrix/connector/metadata/internal/FakeRuntimeMetadata.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -1,59 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-
-package com.metamatrix.connector.metadata.internal;
-
-import com.metamatrix.connector.api.ConnectorException;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
-import com.metamatrix.connector.metadata.runtime.MetadataObject;
-import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
-
-/**
- */
-public class FakeRuntimeMetadata implements RuntimeMetadata {
-
- /**
- *
- */
- public FakeRuntimeMetadata() {
- super();
- }
-
- /*
- * @see
com.metamatrix.data.metadata.runtime.RuntimeMetadata#getObject(com.metamatrix.data.metadata.runtime.MetadataID)
- */
- public MetadataObject getObject(MetadataID id) {
- return null;
- }
-
- public byte[] getBinaryVDBResource(String resourcePath) throws ConnectorException {
- return null;
- }
-
- public String getCharacterVDBResource(String resourcePath) throws ConnectorException
{
- return null;
- }
-
- public String[] getVDBResourcePaths() throws ConnectorException {
- return null;
- }
-}
Modified:
trunk/connector-metadata/src/test/java/com/metamatrix/connector/metadata/internal/TestObjectQueryProcessor.java
===================================================================
---
trunk/connector-metadata/src/test/java/com/metamatrix/connector/metadata/internal/TestObjectQueryProcessor.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-metadata/src/test/java/com/metamatrix/connector/metadata/internal/TestObjectQueryProcessor.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -36,7 +36,6 @@
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
import com.metamatrix.core.util.StringUtil;
import com.metamatrix.core.util.UnitTestUtil;
-import com.metamatrix.dqp.internal.datamgr.metadata.MetadataFactory;
import com.metamatrix.dqp.internal.datamgr.metadata.RuntimeMetadataImpl;
import com.metamatrix.metadata.runtime.FakeMetadataService;
import com.metamatrix.metadata.runtime.FakeQueryMetadata;
@@ -73,7 +72,7 @@
}
public static RuntimeMetadata getRuntimeMetadata() {
- return new RuntimeMetadataImpl(new
MetadataFactory(FakeQueryMetadata.getQueryMetadata()));
+ return new RuntimeMetadataImpl(FakeQueryMetadata.getQueryMetadata());
}
private void checkResults(String expected, String actual) {
Modified:
trunk/connector-sdk/src/main/java/com/metamatrix/cdk/api/TranslationUtility.java
===================================================================
---
trunk/connector-sdk/src/main/java/com/metamatrix/cdk/api/TranslationUtility.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connector-sdk/src/main/java/com/metamatrix/cdk/api/TranslationUtility.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -28,7 +28,6 @@
import com.metamatrix.cdk.CommandBuilder;
import com.metamatrix.connector.language.ICommand;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
-import com.metamatrix.dqp.internal.datamgr.metadata.MetadataFactory;
import com.metamatrix.dqp.internal.datamgr.metadata.RuntimeMetadataImpl;
import com.metamatrix.metadata.runtime.VDBMetadataFactory;
import com.metamatrix.query.metadata.QueryMetadataInterface;
@@ -89,6 +88,6 @@
* @return RuntimeMetadata for testing
*/
public RuntimeMetadata createRuntimeMetadata() {
- return new RuntimeMetadataImpl(new MetadataFactory(metadata));
+ return new RuntimeMetadataImpl(metadata);
}
}
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/JDBCBaseExecution.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/JDBCBaseExecution.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/JDBCBaseExecution.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -34,10 +34,10 @@
import com.metamatrix.common.util.PropertiesUtils;
import com.metamatrix.connector.api.ConnectorException;
+import com.metamatrix.connector.api.ConnectorIdentity;
import com.metamatrix.connector.api.ConnectorLogger;
import com.metamatrix.connector.api.ExecutionContext;
import com.metamatrix.connector.basic.BasicExecution;
-import com.metamatrix.connector.identity.ConnectorIdentity;
import com.metamatrix.connector.jdbc.translator.TranslatedCommand;
import com.metamatrix.connector.jdbc.translator.Translator;
import com.metamatrix.connector.language.ICommand;
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/JDBCConnector.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/JDBCConnector.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/JDBCConnector.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -37,19 +37,16 @@
import javax.sql.XADataSource;
import com.metamatrix.common.util.PropertiesUtils;
-import com.metamatrix.connector.DataPlugin;
import com.metamatrix.connector.api.Connection;
import com.metamatrix.connector.api.ConnectorCapabilities;
import com.metamatrix.connector.api.ConnectorEnvironment;
import com.metamatrix.connector.api.ConnectorException;
import com.metamatrix.connector.api.ConnectorLogger;
-import com.metamatrix.connector.api.CredentialMap;
import com.metamatrix.connector.api.ExecutionContext;
+import com.metamatrix.connector.api.SingleIdentity;
+import com.metamatrix.connector.api.MappedUserIdentity;
import com.metamatrix.connector.api.ConnectorAnnotations.ConnectionPooling;
-import com.metamatrix.connector.identity.ConnectorIdentity;
-import com.metamatrix.connector.identity.ConnectorIdentityFactory;
-import com.metamatrix.connector.identity.SingleIdentity;
-import com.metamatrix.connector.identity.UserIdentity;
+import com.metamatrix.connector.basic.BasicConnector;
import com.metamatrix.connector.internal.ConnectorPropertyNames;
import com.metamatrix.connector.jdbc.translator.Translator;
import com.metamatrix.connector.jdbc.xa.JDBCSourceXAConnection;
@@ -64,7 +61,7 @@
* JDBC implementation of Connector interface.
*/
@ConnectionPooling
-public class JDBCConnector implements XAConnector, ConnectorIdentityFactory {
+public class JDBCConnector extends BasicConnector implements XAConnector {
public static final String INVALID_AUTHORIZATION_SPECIFICATION_NO_SUBCLASS =
"28000"; //$NON-NLS-1$
@@ -95,48 +92,7 @@
private DataSource ds;
private XADataSource xaDs;
private int transIsoLevel = NO_ISOLATION_LEVEL_SET;
-
- private boolean useCredentialMap;
- private boolean adminConnectionsAllowed = true;
- private String connectorName;
-
- @Override
- public ConnectorIdentity createIdentity(ExecutionContext context)
- throws ConnectorException {
- if (context == null) {
- if (adminConnectionsAllowed) {
- return new SingleIdentity();
- }
- throw new
ConnectorException(DataPlugin.Util.getString("UserIdentityFactory.single_identity_not_supported"));
//$NON-NLS-1$
- }
- Object payload = context.getTrustedPayload();
- if (!(payload instanceof CredentialMap)) {
- if (useCredentialMap) {
- throw new
ConnectorException(JDBCPlugin.Util.getString("JDBCUserIdentityConnectionFactory.Unable_to_get_credentials"));
//$NON-NLS-1$
- }
- return new SingleIdentity();
- }
- CredentialMap credMap = (CredentialMap)payload;
- String user = credMap.getUser(connectorName);
- String password = credMap.getPassword(connectorName);
- if (user == null || password == null) {
- throw new ConnectorException("Payload missing credentials for " +
connectorName); //$NON-NLS-1$
- }
- return new UserIdentity(context.getUser(), user, password);
- }
-
- public void setConnectorName(String connectorName) {
- this.connectorName = connectorName;
- }
-
- public void setUseCredentialMap(boolean useCredentialMap) {
- this.useCredentialMap = useCredentialMap;
- }
-
- public void setAdminConnectionsAllowed(boolean adminConnectionsAllowed) {
- this.adminConnectionsAllowed = adminConnectionsAllowed;
- }
-
+
@Override
public void start(ConnectorEnvironment environment)
throws ConnectorException {
@@ -172,7 +128,7 @@
}
sqlTranslator.initialize(environment);
- if (this.adminConnectionsAllowed) {
+ if (areAdminConnectionsAllowed()) {
testConnection();
}
@@ -235,8 +191,8 @@
try {
if (context == null || context.getConnectorIdentity() instanceof SingleIdentity) {
conn = dataSource.getConnection();
- } else if (context.getConnectorIdentity() instanceof UserIdentity) {
- UserIdentity id = (UserIdentity)context.getConnectorIdentity();
+ } else if (context.getConnectorIdentity() instanceof MappedUserIdentity) {
+ MappedUserIdentity id = (MappedUserIdentity)context.getConnectorIdentity();
conn = dataSource.getConnection(id.getMappedUser(), id.getPassword());
}
setDefaultTransactionIsolationLevel(conn);
@@ -258,8 +214,8 @@
try {
if (context == null || context.getConnectorIdentity() instanceof SingleIdentity) {
conn = xaDataSource.getXAConnection();
- } else if (context.getConnectorIdentity() instanceof UserIdentity) {
- UserIdentity id = (UserIdentity)context.getConnectorIdentity();
+ } else if (context.getConnectorIdentity() instanceof MappedUserIdentity) {
+ MappedUserIdentity id = (MappedUserIdentity)context.getConnectorIdentity();
conn = xaDataSource.getXAConnection(id.getMappedUser(), id.getPassword());
}
java.sql.Connection c = conn.getConnection();
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/JDBCProcedureExecution.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/JDBCProcedureExecution.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/JDBCProcedureExecution.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -46,7 +46,6 @@
import com.metamatrix.connector.language.IProcedure;
import com.metamatrix.connector.language.IParameter.Direction;
import com.metamatrix.connector.metadata.runtime.Element;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
/**
@@ -124,15 +123,12 @@
}
if(resultSet != null){
- List columnMetadata = null;
- columnMetadata = resultSet.getMetadataID().getChildIDs();
+ List<Element> columnMetadata =
resultSet.getMetadataObject().getChildren();
int size = columnMetadata.size();
Class[] coulmnDTs = new Class[size];
for(int i =0; i<size; i++ ){
- MetadataID mID = (MetadataID)columnMetadata.get(i);
- Object mObj = metadata.getObject(mID);
- coulmnDTs[i] = ((Element)mObj).getJavaType();
+ coulmnDTs[i] = columnMetadata.get(i).getJavaType();
}
return coulmnDTs;
}
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/JDBCSourceConnection.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/JDBCSourceConnection.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/JDBCSourceConnection.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -35,7 +35,6 @@
import com.metamatrix.connector.api.ProcedureExecution;
import com.metamatrix.connector.api.ResultSetExecution;
import com.metamatrix.connector.api.UpdateExecution;
-import com.metamatrix.connector.basic.BasicConnection;
import com.metamatrix.connector.jdbc.translator.Translator;
import com.metamatrix.connector.language.ICommand;
import com.metamatrix.connector.language.IProcedure;
@@ -45,7 +44,7 @@
/**
*
*/
-public class JDBCSourceConnection extends BasicConnection {
+public class JDBCSourceConnection extends com.metamatrix.connector.basic.BasicConnection
{
protected java.sql.Connection physicalConnection;
protected ConnectorEnvironment environment;
private ConnectorLogger logger;
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/db2/DB2ConvertModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/db2/DB2ConvertModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/db2/DB2ConvertModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -23,6 +23,7 @@
package com.metamatrix.connector.jdbc.db2;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import com.metamatrix.connector.api.TypeFacility;
@@ -45,9 +46,9 @@
}
public IExpression modify(IFunction function) {
- IExpression[] args = function.getParameters();
- Class sourceType = args[0].getType();
- String targetTypeString = getTargetType(args[1]);
+ List<IExpression> args = function.getParameters();
+ Class sourceType = args.get(0).getType();
+ String targetTypeString = getTargetType(args.get(1));
Class targetType = TypeFacility.getDataTypeClass(targetTypeString);
IExpression returnExpr = null;
@@ -55,40 +56,40 @@
// targetType is always lower-case due to getTargetType implementation
if(targetType.equals(TypeFacility.RUNTIME_TYPES.STRING)) {
- returnExpr = convertToString(args[0], sourceType);
+ returnExpr = convertToString(args.get(0), sourceType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.TIMESTAMP)) {
- returnExpr = convertToTimestamp(args[0], sourceType);
+ returnExpr = convertToTimestamp(args.get(0), sourceType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.DATE)) {
- returnExpr = convertToDate(args[0], sourceType);
+ returnExpr = convertToDate(args.get(0), sourceType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.TIME)) {
- returnExpr = convertToTime(args[0], sourceType);
+ returnExpr = convertToTime(args.get(0), sourceType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.BOOLEAN) ||
targetType.equals(TypeFacility.RUNTIME_TYPES.BYTE) ||
targetType.equals(TypeFacility.RUNTIME_TYPES.SHORT)) {
- returnExpr = convertToSmallInt(args[0], sourceType, targetType);
+ returnExpr = convertToSmallInt(args.get(0), sourceType, targetType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.INTEGER)) {
- returnExpr = convertToInteger(args[0], sourceType);
+ returnExpr = convertToInteger(args.get(0), sourceType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.LONG) ||
targetType.equals(TypeFacility.RUNTIME_TYPES.BIG_INTEGER)) {
- returnExpr = convertToBigInt(args[0], sourceType);
+ returnExpr = convertToBigInt(args.get(0), sourceType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.FLOAT)) {
- returnExpr = convertToReal(args[0], sourceType);
+ returnExpr = convertToReal(args.get(0), sourceType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.DOUBLE)) {
- returnExpr = convertToDouble(args[0], sourceType);
+ returnExpr = convertToDouble(args.get(0), sourceType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.BIG_DECIMAL)) {
- returnExpr = convertToBigDecimal(args[0], sourceType);
+ returnExpr = convertToBigDecimal(args.get(0), sourceType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.CHAR)) {
- returnExpr = convertToChar(args[0], sourceType);
+ returnExpr = convertToChar(args.get(0), sourceType);
}
if(returnExpr != null) {
@@ -155,7 +156,7 @@
Class sourceType) {
if(sourceType.equals(TypeFacility.RUNTIME_TYPES.STRING)) {
ILiteral literalOne = this.langFactory.createLiteral(new Integer(1),
TypeFacility.RUNTIME_TYPES.INTEGER);
- return this.langFactory.createFunction("char", new IExpression[] {
expression, literalOne }, TypeFacility.RUNTIME_TYPES.CHAR); //$NON-NLS-1$
+ return this.langFactory.createFunction("char",
Arrays.asList(expression, literalOne), TypeFacility.RUNTIME_TYPES.CHAR); //$NON-NLS-1$
}
return null;
@@ -302,13 +303,13 @@
// BEFORE: convert(EXPR, timestamp)
// AFTER: timestamp(EXPR, '00:00:00')
ILiteral timeString = this.langFactory.createLiteral("00:00:00",
TypeFacility.RUNTIME_TYPES.STRING); //$NON-NLS-1$
- return this.langFactory.createFunction("timestamp", new
IExpression[] {expression, timeString}, TypeFacility.RUNTIME_TYPES.TIMESTAMP);
//$NON-NLS-1$
+ return this.langFactory.createFunction("timestamp",
Arrays.asList(expression, timeString), TypeFacility.RUNTIME_TYPES.TIMESTAMP);
//$NON-NLS-1$
} else if(sourceType.equals(TypeFacility.RUNTIME_TYPES.TIME)) {
// BEFORE: convert(EXPR, timestamp)
// AFTER: timestamp('1970-01-01', EXPR)
ILiteral dateString = this.langFactory.createLiteral("1970-01-01",
TypeFacility.RUNTIME_TYPES.STRING); //$NON-NLS-1$
- return this.langFactory.createFunction("timestamp", new
IExpression[] {dateString, expression}, TypeFacility.RUNTIME_TYPES.TIMESTAMP);
//$NON-NLS-1$
+ return this.langFactory.createFunction("timestamp",
Arrays.asList(dateString, expression), TypeFacility.RUNTIME_TYPES.TIMESTAMP);
//$NON-NLS-1$
}
return null;
@@ -325,7 +326,7 @@
String functionName,
Class outputType) {
return langFactory.createFunction(functionName,
- new IExpression[] { expression },
+ Arrays.asList(expression),
outputType);
}
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/db2/DB2SQLTranslator.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/db2/DB2SQLTranslator.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/db2/DB2SQLTranslator.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -24,8 +24,6 @@
*/
package com.metamatrix.connector.jdbc.db2;
-import java.util.Arrays;
-
import com.metamatrix.connector.api.ConnectorEnvironment;
import com.metamatrix.connector.api.ConnectorException;
import com.metamatrix.connector.api.ExecutionContext;
@@ -70,7 +68,7 @@
return;
}
ILiteral one = getLanguageFactory().createLiteral(1,
TypeFacility.RUNTIME_TYPES.INTEGER);
- obj.setCriteria(Arrays.asList(getLanguageFactory().createCompareCriteria(Operator.EQ,
one, one)));
+ obj.getCriteria().add(getLanguageFactory().createCompareCriteria(Operator.EQ, one,
one));
obj.setJoinType(JoinType.INNER_JOIN);
}
};
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/derby/DerbyConvertModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/derby/DerbyConvertModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/derby/DerbyConvertModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -23,6 +23,7 @@
package com.metamatrix.connector.jdbc.derby;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import com.metamatrix.connector.api.TypeFacility;
@@ -54,9 +55,9 @@
List parts = new ArrayList();
parts.add("cast("); //$NON-NLS-1$
- parts.add(function.getParameters()[0]);
+ parts.add(function.getParameters().get(0));
parts.add(" as "); //$NON-NLS-1$
- ILiteral type = (ILiteral) function.getParameters()[1];
+ ILiteral type = (ILiteral) function.getParameters().get(1);
parts.add(type.getValue());
parts.add(")"); //$NON-NLS-1$
@@ -64,9 +65,9 @@
}
public IExpression modify(IFunction function) {
- IExpression[] args = function.getParameters();
- Class sourceType = args[0].getType();
- String targetTypeString = getTargetType(args[1]);
+ List<IExpression> args = function.getParameters();
+ Class sourceType = args.get(0).getType();
+ String targetTypeString = getTargetType(args.get(1));
Class targetType = TypeFacility.getDataTypeClass(targetTypeString);
IExpression returnExpr = null;
@@ -74,40 +75,40 @@
// targetType is always lower-case due to getTargetType implementation
if(targetType.equals(TypeFacility.RUNTIME_TYPES.STRING)) {
- returnExpr = convertToString(args[0], sourceType);
+ returnExpr = convertToString(args.get(0), sourceType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.TIMESTAMP)) {
- returnExpr = convertToTimestamp(args[0], sourceType);
+ returnExpr = convertToTimestamp(args.get(0), sourceType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.DATE)) {
- returnExpr = convertToDate(args[0], sourceType);
+ returnExpr = convertToDate(args.get(0), sourceType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.TIME)) {
- returnExpr = convertToTime(args[0], sourceType);
+ returnExpr = convertToTime(args.get(0), sourceType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.BOOLEAN) ||
targetType.equals(TypeFacility.RUNTIME_TYPES.BYTE) ||
targetType.equals(TypeFacility.RUNTIME_TYPES.SHORT)) {
- returnExpr = convertToSmallInt(args[0], sourceType, targetType);
+ returnExpr = convertToSmallInt(args.get(0), sourceType, targetType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.INTEGER)) {
- returnExpr = convertToInteger(args[0], sourceType);
+ returnExpr = convertToInteger(args.get(0), sourceType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.LONG) ||
targetType.equals(TypeFacility.RUNTIME_TYPES.BIG_INTEGER)) {
- returnExpr = convertToBigInt(args[0], sourceType);
+ returnExpr = convertToBigInt(args.get(0), sourceType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.FLOAT)) {
- returnExpr = convertToFloat(args[0], sourceType);
+ returnExpr = convertToFloat(args.get(0), sourceType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.DOUBLE)) {
- returnExpr = convertToDouble(args[0], sourceType);
+ returnExpr = convertToDouble(args.get(0), sourceType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.BIG_DECIMAL)) {
- returnExpr = convertToBigDecimal(args[0], sourceType);
+ returnExpr = convertToBigDecimal(args.get(0), sourceType);
} else if(targetType.equals(TypeFacility.RUNTIME_TYPES.CHAR)) {
- returnExpr = convertToChar(args[0], sourceType);
+ returnExpr = convertToChar(args.get(0), sourceType);
}
if(returnExpr != null) {
@@ -174,7 +175,7 @@
Class sourceType) {
if(sourceType.equals(TypeFacility.RUNTIME_TYPES.STRING)) {
ILiteral literalOne = this.langFactory.createLiteral(new Integer(1),
TypeFacility.RUNTIME_TYPES.INTEGER);
- return this.langFactory.createFunction("char", new IExpression[] {
expression, literalOne }, TypeFacility.RUNTIME_TYPES.CHAR); //$NON-NLS-1$
+ return this.langFactory.createFunction("char", Arrays.asList(
expression, literalOne ), TypeFacility.RUNTIME_TYPES.CHAR); //$NON-NLS-1$
}
return null;
@@ -251,11 +252,11 @@
// BEFORE: convert(string_expr, float)
// AFTER: cast(cast(string_expr as decimal) as float)
IFunction inner = langFactory.createFunction("convert",
//$NON-NLS-1$
- new IExpression[] { expression,
langFactory.createLiteral("decimal", TypeFacility.RUNTIME_TYPES.STRING) },
//$NON-NLS-1$
+ Arrays.asList( expression, langFactory.createLiteral("decimal",
TypeFacility.RUNTIME_TYPES.STRING) ), //$NON-NLS-1$
TypeFacility.RUNTIME_TYPES.BIG_DECIMAL);
IFunction outer = langFactory.createFunction("convert",
//$NON-NLS-1$
- new IExpression[] { inner, langFactory.createLiteral("float",
TypeFacility.RUNTIME_TYPES.STRING) }, //$NON-NLS-1$
+ Arrays.asList( inner, langFactory.createLiteral("float",
TypeFacility.RUNTIME_TYPES.STRING) ), //$NON-NLS-1$
TypeFacility.RUNTIME_TYPES.FLOAT);
return outer;
@@ -266,7 +267,7 @@
// BEFORE: convert(num_expr, float)
// AFTER: cast(num_expr as float)
return langFactory.createFunction("convert", //$NON-NLS-1$
- new IExpression[] { expression,
langFactory.createLiteral("float", TypeFacility.RUNTIME_TYPES.STRING) },
//$NON-NLS-1$
+ Arrays.asList( expression, langFactory.createLiteral("float",
TypeFacility.RUNTIME_TYPES.STRING) ), //$NON-NLS-1$
TypeFacility.RUNTIME_TYPES.FLOAT);
}
@@ -280,11 +281,11 @@
// BEFORE: convert(string_expr, double)
// AFTER: cast(cast(string_expr as decimal) as double)
IFunction inner = langFactory.createFunction("convert",
//$NON-NLS-1$
- new IExpression[] { expression,
langFactory.createLiteral("decimal", TypeFacility.RUNTIME_TYPES.STRING) },
//$NON-NLS-1$
+ Arrays.asList( expression, langFactory.createLiteral("decimal",
TypeFacility.RUNTIME_TYPES.STRING) ), //$NON-NLS-1$
TypeFacility.RUNTIME_TYPES.BIG_DECIMAL);
return langFactory.createFunction("convert", //$NON-NLS-1$
- new IExpression[] { inner, langFactory.createLiteral("double",
TypeFacility.RUNTIME_TYPES.STRING) }, //$NON-NLS-1$
+ Arrays.asList( inner, langFactory.createLiteral("double",
TypeFacility.RUNTIME_TYPES.STRING) ), //$NON-NLS-1$
TypeFacility.RUNTIME_TYPES.DOUBLE);
}
@@ -298,7 +299,7 @@
// BEFORE: convert(string_expr, bigdecimal)
// AFTER: cast(string_expr as decimal)
return langFactory.createFunction("convert", //$NON-NLS-1$
- new IExpression[] { expression,
langFactory.createLiteral("decimal", TypeFacility.RUNTIME_TYPES.STRING) },
//$NON-NLS-1$
+ Arrays.asList( expression, langFactory.createLiteral("decimal",
TypeFacility.RUNTIME_TYPES.STRING) ), //$NON-NLS-1$
TypeFacility.RUNTIME_TYPES.BIG_DECIMAL);
}
@@ -340,13 +341,13 @@
// BEFORE: convert(EXPR, timestamp)
// AFTER: timestamp(EXPR, '00:00:00')
ILiteral timeString = this.langFactory.createLiteral("00:00:00",
TypeFacility.RUNTIME_TYPES.STRING); //$NON-NLS-1$
- return this.langFactory.createFunction("timestamp", new
IExpression[] {expression, timeString}, TypeFacility.RUNTIME_TYPES.TIMESTAMP);
//$NON-NLS-1$
+ return this.langFactory.createFunction("timestamp",
Arrays.asList(expression, timeString), TypeFacility.RUNTIME_TYPES.TIMESTAMP);
//$NON-NLS-1$
} else if(sourceType.equals(TypeFacility.RUNTIME_TYPES.TIME)) {
// BEFORE: convert(EXPR, timestamp)
// AFTER: timestamp(EXPR, '1970-01-01', EXPR)
ILiteral dateString = this.langFactory.createLiteral("1970-01-01",
TypeFacility.RUNTIME_TYPES.STRING); //$NON-NLS-1$
- return this.langFactory.createFunction("timestamp", new
IExpression[] {dateString, expression}, TypeFacility.RUNTIME_TYPES.TIMESTAMP);
//$NON-NLS-1$
+ return this.langFactory.createFunction("timestamp",
Arrays.asList(dateString, expression), TypeFacility.RUNTIME_TYPES.TIMESTAMP);
//$NON-NLS-1$
}
return null;
@@ -363,7 +364,7 @@
String functionName,
Class outputType) {
return langFactory.createFunction(functionName,
- new IExpression[] { expression },
+ Arrays.asList( expression ),
outputType);
}
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/mysql/MySQLConvertModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/mysql/MySQLConvertModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/mysql/MySQLConvertModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -27,6 +27,8 @@
import com.metamatrix.connector.jdbc.translator.BasicFunctionModifier;
import com.metamatrix.connector.jdbc.translator.DropFunctionModifier;
+import com.metamatrix.connector.language.ICompareCriteria;
+import com.metamatrix.connector.language.ICriteria;
import com.metamatrix.connector.language.IExpression;
import com.metamatrix.connector.language.IFunction;
import com.metamatrix.connector.language.ILanguageFactory;
@@ -52,17 +54,17 @@
}
public IExpression modify(IFunction function) {
- IExpression[] args = function.getParameters();
+ List<IExpression> args = function.getParameters();
- if (args[0] != null && args[0] instanceof ILiteral &&
((ILiteral)args[0]).getValue() == null ) {
- if (args[1] != null && args[1] instanceof ILiteral) {
+ if (args.get(0) != null && args.get(0) instanceof ILiteral &&
((ILiteral)args.get(0)).getValue() == null ) {
+ if (args.get(1) != null && args.get(1) instanceof ILiteral) {
// This is a convert(null, ...) or cast(null as ...)
return DROP_MODIFIER.modify(function);
}
}
- if (args[1] != null && args[1] instanceof ILiteral) {
- String target = ((String)((ILiteral)args[1]).getValue()).toLowerCase();
+ if (args.get(1) != null && args.get(1) instanceof ILiteral) {
+ String target = ((String)((ILiteral)args.get(1)).getValue()).toLowerCase();
if (target.equals("string")) { //$NON-NLS-1$
return convertToString(function);
} else if (target.equals("byte") || //$NON-NLS-1$
@@ -77,11 +79,11 @@
target.equals("bigdecimal")) { //$NON-NLS-1$
return convertToNumeric(function);
} else if (target.equals("date")) { //$NON-NLS-1$
- return convertToDateTime("DATE", args[0], java.sql.Date.class);
//$NON-NLS-1$
+ return convertToDateTime("DATE", args.get(0),
java.sql.Date.class); //$NON-NLS-1$
} else if (target.equals("time")) { //$NON-NLS-1$
- return convertToDateTime("TIME", args[0], java.sql.Time.class);
//$NON-NLS-1$
+ return convertToDateTime("TIME", args.get(0),
java.sql.Time.class); //$NON-NLS-1$
} else if (target.equals("timestamp")) { //$NON-NLS-1$
- return convertToDateTime("TIMESTAMP", args[0],
java.sql.Timestamp.class); //$NON-NLS-1$
+ return convertToDateTime("TIMESTAMP", args.get(0),
java.sql.Timestamp.class); //$NON-NLS-1$
} else if (target.equals("char")) { //$NON-NLS-1$
return convertToNativeType(function, "CHAR (1)");
//$NON-NLS-1$
} else if (target.equals("boolean")) { //$NON-NLS-1$
@@ -96,8 +98,8 @@
switch(srcCode) {
case BOOLEAN:
// convert(booleanSrc, string) --> CASE WHEN booleanSrc THEN
'1' ELSE '0' END
- List when = Arrays.asList(langFactory.createCompareCriteria(Operator.EQ,
function.getParameters()[0], langFactory.createLiteral(Boolean.TRUE, Boolean.class)));
- List then = Arrays.asList(new IExpression[]
{langFactory.createLiteral("1", String.class)}); //$NON-NLS-1$
+ List<ICompareCriteria> when =
Arrays.asList(langFactory.createCompareCriteria(Operator.EQ,
function.getParameters().get(0), langFactory.createLiteral(Boolean.TRUE,
Boolean.class)));
+ List<ILiteral> then =
Arrays.asList(langFactory.createLiteral("1", String.class)); //$NON-NLS-1$
IExpression elseExpr = langFactory.createLiteral("0",
String.class); //$NON-NLS-1$
return langFactory.createSearchedCaseExpression(when, then, elseExpr,
String.class);
case BYTE:
@@ -125,10 +127,9 @@
}
private IExpression convertToNativeType(IFunction function, String targetType) {
- IExpression[] args = function.getParameters();
+ List<IExpression> args = function.getParameters();
function.setName("convert"); //$NON-NLS-1$
- args[1] = langFactory.createLiteral(targetType, String.class);
- function.setParameters(args);
+ args.set(1, langFactory.createLiteral(targetType, String.class));
return function;
}
@@ -141,14 +142,14 @@
private IExpression convertToNumeric(IFunction function) {
// convert(x, float/double/bigdecimal) --> (x + 0.0)
return langFactory.createFunction("+", //$NON-NLS-1$
- new IExpression[]
{function.getParameters()[0],
-
langFactory.createLiteral(new Double(0.0), Double.class)},
+ Arrays.asList(function.getParameters().get(0),
+
langFactory.createLiteral(new Double(0.0), Double.class)),
Double.class);
}
private IExpression convertToDateTime(String functionName, IExpression value, Class
targetType) {
return langFactory.createFunction(functionName,
- new IExpression[] {value},
+ Arrays.asList(value),
targetType);
}
@@ -158,8 +159,8 @@
case STRING:
// convert(src, boolean) --> CASE src WHEN 'true' THEN 1 ELSE
0 END
// convert(booleanSrc, string) --> CASE WHEN booleanSrc THEN
'1' ELSE '0' END
- List when = Arrays.asList(langFactory.createCompareCriteria(Operator.EQ,
function.getParameters()[0], langFactory.createLiteral("true", String.class)));
- List then = Arrays.asList(new IExpression[]
{langFactory.createLiteral(Integer.valueOf(1), Integer.class)}); //$NON-NLS-1$
+ List<ICompareCriteria> when =
Arrays.asList(langFactory.createCompareCriteria(Operator.EQ,
function.getParameters().get(0), langFactory.createLiteral("true",
String.class)));
+ List<ILiteral> then =
Arrays.asList(langFactory.createLiteral(Integer.valueOf(1), Integer.class));
//$NON-NLS-1$
IExpression elseExpr = langFactory.createLiteral(Integer.valueOf(0),
Integer.class); //$NON-NLS-1$
return langFactory.createSearchedCaseExpression(when, then, elseExpr,
String.class);
default:
@@ -169,16 +170,15 @@
private IFunction convertDateTimeToString(IFunction function, String format) {
// convert (date, string) --> date_format(date, format)
- IExpression[] args = function.getParameters();
+ List<IExpression> args = function.getParameters();
function.setName("date_format"); //$NON-NLS-1$
- args[1] = langFactory.createLiteral(format, String.class);
- function.setParameters(args);
+ args.set(1, langFactory.createLiteral(format, String.class));
return function;
}
private int getSrcCode(IFunction function) {
- IExpression[] args = function.getParameters();
- Class srcType = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class srcType = args.get(0).getType();
return ((Integer) typeMap.get(srcType)).intValue();
}
}
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/ConcatFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/ConcatFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/ConcatFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -26,6 +26,7 @@
import java.util.Arrays;
import java.util.List;
+import com.metamatrix.connector.api.SourceSystemFunctions;
import com.metamatrix.connector.api.TypeFacility;
import com.metamatrix.connector.jdbc.translator.BasicFunctionModifier;
import com.metamatrix.connector.language.ICriteria;
@@ -58,8 +59,8 @@
*/
public IExpression modify(IFunction function) {
List when = new ArrayList();
- IExpression a = function.getParameters()[0];
- IExpression b = function.getParameters()[1];
+ IExpression a = function.getParameters().get(0);
+ IExpression b = function.getParameters().get(1);
List crits = new ArrayList();
ILiteral nullValue = langFactory.createLiteral(null,
TypeFacility.RUNTIME_TYPES.STRING);
@@ -95,8 +96,8 @@
}
if (expr instanceof IFunction) {
IFunction function = (IFunction)expr;
- if (function.getName().equalsIgnoreCase("NVL") ||
function.getName().equalsIgnoreCase("IFNULL")) { //$NON-NLS-1$ //$NON-NLS-2$
- return isNotNull(function.getParameters()[1]);
+ if (function.getName().equalsIgnoreCase("NVL") ||
function.getName().equalsIgnoreCase(SourceSystemFunctions.IFNULL)) { //$NON-NLS-1$
+ return isNotNull(function.getParameters().get(0));
}
}
return false;
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/DayWeekQuarterFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/DayWeekQuarterFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/DayWeekQuarterFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,9 @@
package com.metamatrix.connector.jdbc.oracle;
+import java.util.Arrays;
+import java.util.List;
+
import com.metamatrix.connector.jdbc.translator.BasicFunctionModifier;
import com.metamatrix.connector.jdbc.translator.FunctionModifier;
import com.metamatrix.connector.language.*;
@@ -47,16 +50,16 @@
* @see
com.metamatrix.connector.jdbc.extension.FunctionModifier#modify(com.metamatrix.data.language.IFunction)
*/
public IExpression modify(IFunction function) {
- IExpression[] args = function.getParameters();
+ List<IExpression> args = function.getParameters();
IFunction inner = langFactory.createFunction("TO_CHAR", //$NON-NLS-1$
- new IExpression[] {
- args[0],
- langFactory.createLiteral(format, String.class)},
+ Arrays.asList(
+ args.get(0),
+ langFactory.createLiteral(format, String.class)),
String.class);
IFunction outer = langFactory.createFunction("TO_NUMBER",
//$NON-NLS-1$
- new IExpression[] {inner},
+ Arrays.asList(inner),
Integer.class);
return outer;
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/ExtractFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/ExtractFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/ExtractFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -45,7 +45,7 @@
public List translate(IFunction function) {
StringBuffer buffer = new StringBuffer();
- IExpression[] args = function.getParameters();
+ List<IExpression> args = function.getParameters();
List objs = new ArrayList();
buffer.append("EXTRACT("); //$NON-NLS-1$
@@ -54,7 +54,7 @@
buffer.append("FROM"); //$NON-NLS-1$
buffer.append(SPACE);
- buffer.append(args[0]);
+ buffer.append(args.get(0));
buffer.append(")"); //$NON-NLS-1$
objs.add(buffer.toString());
return objs;
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/LeftOrRightFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/LeftOrRightFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/LeftOrRightFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,9 @@
package com.metamatrix.connector.jdbc.oracle;
+import java.util.Arrays;
+import java.util.List;
+
import com.metamatrix.connector.api.TypeFacility;
import com.metamatrix.connector.jdbc.translator.BasicFunctionModifier;
import com.metamatrix.connector.jdbc.translator.FunctionModifier;
@@ -42,25 +45,25 @@
* @see
com.metamatrix.connector.jdbc.extension.FunctionModifier#modify(com.metamatrix.data.language.IFunction)
*/
public IExpression modify(IFunction function) {
- IExpression[] args = function.getParameters();
+ List<IExpression> args = function.getParameters();
IFunction func = null;
if (function.getName().equalsIgnoreCase("left")) { //$NON-NLS-1$
func = langFactory.createFunction("SUBSTR", //$NON-NLS-1$
- new IExpression[] {
- args[0],
+ Arrays.asList(
+ args.get(0),
langFactory.createLiteral(Integer.valueOf(1),
TypeFacility.RUNTIME_TYPES.INTEGER),
- args[1]},
+ args.get(1)),
String.class);
} else if (function.getName().equalsIgnoreCase("right")) {
//$NON-NLS-1$
IFunction negIndex = langFactory.createFunction("*",
//$NON-NLS-1$
- new IExpression[] {langFactory.createLiteral(Integer.valueOf(-1),
TypeFacility.RUNTIME_TYPES.INTEGER), args[1]},
+ Arrays.asList(langFactory.createLiteral(Integer.valueOf(-1),
TypeFacility.RUNTIME_TYPES.INTEGER), args.get(1)),
Integer.class);
func = langFactory.createFunction("SUBSTR", //$NON-NLS-1$
- new IExpression[] {
- args[0],
- negIndex},
+ Arrays.asList(
+ args.get(0),
+ negIndex),
String.class);
}
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/LocateFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/LocateFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/LocateFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,9 +22,15 @@
package com.metamatrix.connector.jdbc.oracle;
+import java.util.Arrays;
+import java.util.List;
+
import com.metamatrix.connector.jdbc.translator.BasicFunctionModifier;
import com.metamatrix.connector.jdbc.translator.FunctionModifier;
-import com.metamatrix.connector.language.*;
+import com.metamatrix.connector.language.IExpression;
+import com.metamatrix.connector.language.IFunction;
+import com.metamatrix.connector.language.ILanguageFactory;
+import com.metamatrix.connector.language.ILiteral;
/**
* Modify the locate function to use the Oracle instr function.
@@ -45,33 +51,28 @@
* @see
com.metamatrix.connector.jdbc.extension.FunctionModifier#modify(com.metamatrix.data.language.IFunction)
*/
public IExpression modify(IFunction function) {
- IExpression[] args = function.getParameters();
- IExpression[] instrArgs = new IExpression[args.length];
- instrArgs[0] = args[1];
- instrArgs[1] = args[0];
-
- if(args.length == 3) {
- if(args[2] instanceof ILiteral) {
- ILiteral indexConst = (ILiteral)args[2];
- if(indexConst.getValue() == null) {
- instrArgs[2] = args[2];
- } else {
+ function.setName("instr"); //$NON-NLS-1$
+ List<IExpression> args = function.getParameters();
+ IExpression expr = args.get(0);
+ args.set(0, args.get(1));
+ args.set(1, expr);
+ if(args.size() == 3) {
+ if(args.get(2) instanceof ILiteral) {
+ ILiteral indexConst = (ILiteral)args.get(2);
+ if(indexConst.getValue() != null) {
// Just modify the constant
- Integer index = (Integer) ((ILiteral)args[2]).getValue();
- instrArgs[2] = langFactory.createLiteral(new
Integer(index.intValue()+1), Integer.class);
+ Integer index = (Integer) indexConst.getValue();
+ args.set(2, langFactory.createLiteral(new
Integer(index.intValue()+1), Integer.class));
}
} else {
// Make plus function since this involves an element or function
IFunction plusFunction = langFactory.createFunction("+",
//$NON-NLS-1$
- new IExpression[] { args[2], langFactory.createLiteral(new
Integer(1), Integer.class) },
+ Arrays.asList( args.get(2), langFactory.createLiteral(new Integer(1),
Integer.class) ),
Integer.class);
- instrArgs[2] = plusFunction;
+ args.set(2, plusFunction);
}
- }
-
- IFunction instrFunction = langFactory.createFunction("instr",
instrArgs, Integer.class); //$NON-NLS-1$
-
- return instrFunction;
+ }
+ return function;
}
}
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/Log10FunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/Log10FunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/Log10FunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,8 @@
package com.metamatrix.connector.jdbc.oracle;
+import java.util.List;
+
import com.metamatrix.connector.jdbc.translator.BasicFunctionModifier;
import com.metamatrix.connector.jdbc.translator.FunctionModifier;
import com.metamatrix.connector.language.*;
@@ -37,12 +39,9 @@
public IExpression modify(IFunction function) {
function.setName("log"); //$NON-NLS-1$
- IExpression[] args = function.getParameters();
- IExpression[] newArgs = new IExpression[args.length+1];
- newArgs[1] = args[0];
- newArgs[0] = languageFactory.createLiteral(new Integer(10), Integer.class);
- function.setParameters(newArgs);
-
+ List<IExpression> args = function.getParameters();
+ args.add(args.get(0));
+ args.set(0, languageFactory.createLiteral(new Integer(10), Integer.class));
return function;
}
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/MonthOrDayNameFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/MonthOrDayNameFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/MonthOrDayNameFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,9 +22,14 @@
package com.metamatrix.connector.jdbc.oracle;
+import java.util.Arrays;
+import java.util.List;
+
import com.metamatrix.connector.jdbc.translator.BasicFunctionModifier;
import com.metamatrix.connector.jdbc.translator.FunctionModifier;
-import com.metamatrix.connector.language.*;
+import com.metamatrix.connector.language.IExpression;
+import com.metamatrix.connector.language.IFunction;
+import com.metamatrix.connector.language.ILanguageFactory;
/**
* Convert the MONTHNAME etc. function into an equivalent Oracle function.
@@ -43,17 +48,17 @@
* @see
com.metamatrix.connector.jdbc.extension.FunctionModifier#modify(com.metamatrix.data.language.IFunction)
*/
public IExpression modify(IFunction function) {
- IExpression[] args = function.getParameters();
+ List<IExpression> args = function.getParameters();
IFunction func = langFactory.createFunction("TO_CHAR", //$NON-NLS-1$
- new IExpression[] {
- args[0],
- langFactory.createLiteral(format, String.class)},
+ Arrays.asList(
+ args.get(0),
+ langFactory.createLiteral(format, String.class)),
String.class);
// For some reason, these values have trailing spaces
IFunction trimFunc = langFactory.createFunction("RTRIM",
//$NON-NLS-1$
- new IExpression[] { func }, String.class);
+ Arrays.asList( func ), String.class);
return trimFunc;
}
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/OracleConvertModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/OracleConvertModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/OracleConvertModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,7 @@
package com.metamatrix.connector.jdbc.oracle;
+import java.util.Arrays;
import java.util.List;
import com.metamatrix.connector.api.ConnectorLogger;
@@ -53,10 +54,10 @@
}
public IExpression modify(IFunction function) {
- IExpression[] args = function.getParameters();
+ List<IExpression> args = function.getParameters();
IExpression modified = null;
- String target = ((String)((ILiteral)args[1]).getValue()).toLowerCase();
+ String target = ((String)((ILiteral)args.get(1)).getValue()).toLowerCase();
if (target.equals("string")) { //$NON-NLS-1$
modified = convertToString(function);
} else if (target.equals("short")) { //$NON-NLS-1$
@@ -93,20 +94,20 @@
private IExpression convertToDate(IFunction function) {
IExpression convert = null;
- IExpression[] args = function.getParameters();
- Class srcType = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class srcType = args.get(0).getType();
int srcCode = getSrcCode(srcType);
switch(srcCode) {
case STRING:
// convert(STRING, date) --> to_date(STRING, format)
String format = "YYYY-MM-DD"; //$NON-NLS-1$
- convert = dateTypeHelper("to_date", new IExpression[] {args[0],
//$NON-NLS-1$
- langFactory.createLiteral(format, String.class)},
java.sql.Date.class);
+ convert = dateTypeHelper("to_date", Arrays.asList(args.get(0),
//$NON-NLS-1$
+ langFactory.createLiteral(format, String.class)),
java.sql.Date.class);
break;
case TIMESTAMP:
// convert(TSELEMENT, date) --> trunc(TSELEMENT)
- convert = dateTypeHelper("trunc", new IExpression[] {args[0]},
java.sql.Date.class); //$NON-NLS-1$
+ convert = dateTypeHelper("trunc", Arrays.asList(args.get(0)),
java.sql.Date.class); //$NON-NLS-1$
break;
default:
convert = DROP_MODIFIER.modify(function);
@@ -123,8 +124,8 @@
*/
private IExpression convertToTime(IFunction function) {
IExpression convert = null;
- IExpression[] args = function.getParameters();
- Class srcType = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class srcType = args.get(0).getType();
String format = "YYYY-MM-DD HH24:MI:SS"; //$NON-NLS-1$
int srcCode = getSrcCode(srcType);
@@ -132,20 +133,20 @@
case STRING:
//convert(STRING, time) --> to_date('1970-01-01 ' ||
to_char(timevalue, 'HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS')
IFunction inner0 = langFactory.createFunction("to_char",
//$NON-NLS-1$
- new IExpression[] {
- args[0],
- langFactory.createLiteral("HH24:MI:SS", String.class)},
//$NON-NLS-1$
+ Arrays.asList(
+ args.get(0),
+ langFactory.createLiteral("HH24:MI:SS", String.class)),
//$NON-NLS-1$
String.class);
IExpression prependedPart0 = langFactory.createFunction("||",
//$NON-NLS-1$
- new IExpression[] {
+ Arrays.asList(
langFactory.createLiteral("1970-01-01 ", String.class),
//$NON-NLS-1$
- inner0},
+ inner0),
String.class);
convert = langFactory.createFunction("to_date", //$NON-NLS-1$
- new IExpression[] {prependedPart0,
- langFactory.createLiteral(format, String.class)},
+ Arrays.asList(prependedPart0,
+ langFactory.createLiteral(format, String.class)),
java.sql.Time.class);
break;
case TIMESTAMP:
@@ -153,20 +154,20 @@
// --> to_date(('1970-01-01 ' || to_char(timestampvalue,
'HH24:MI:SS'))),
// 'YYYY-MM-DD HH24:MI:SS')
IFunction inner = langFactory.createFunction("to_char",
//$NON-NLS-1$
- new IExpression[] {
- args[0],
- langFactory.createLiteral("HH24:MI:SS", String.class)},
//$NON-NLS-1$
+ Arrays.asList(
+ args.get(0),
+ langFactory.createLiteral("HH24:MI:SS", String.class)),
//$NON-NLS-1$
String.class);
IExpression prependedPart = langFactory.createFunction("||",
//$NON-NLS-1$
- new IExpression[] {
+ Arrays.asList(
langFactory.createLiteral("1970-01-01 ", String.class),
//$NON-NLS-1$
- inner},
+ inner),
String.class);
convert = langFactory.createFunction("to_date", //$NON-NLS-1$
- new IExpression[] {prependedPart,
- langFactory.createLiteral(format, String.class)},
+ Arrays.asList(prependedPart,
+ langFactory.createLiteral(format, String.class)),
java.sql.Time.class);
break;
default:
@@ -179,20 +180,20 @@
private IExpression convertToTimestamp(IFunction function) {
IExpression convert = null;
- IExpression[] args = function.getParameters();
- Class srcType = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class srcType = args.get(0).getType();
int srcCode = getSrcCode(srcType);
switch(srcCode) {
case STRING:
// convert(STRING, timestamp) --> to_date(timestampvalue,
'YYYY-MM-DD HH24:MI:SS.FF')))
String format = "YYYY-MM-DD HH24:MI:SS.FF"; //$NON-NLS-1$
- convert = dateTypeHelper("to_timestamp", new IExpression[]
{args[0], //$NON-NLS-1$
- langFactory.createLiteral(format, String.class)},
java.sql.Timestamp.class);
+ convert = dateTypeHelper("to_timestamp",
Arrays.asList(args.get(0), //$NON-NLS-1$
+ langFactory.createLiteral(format, String.class)),
java.sql.Timestamp.class);
break;
case TIME:
case DATE:
- convert = dateTypeHelper("cast", new IExpression[] {args[0],
//$NON-NLS-1$
- langFactory.createLiteral("timestamp", String.class)},
java.sql.Timestamp.class); //$NON-NLS-1$
+ convert = dateTypeHelper("cast", Arrays.asList(args.get(0),
//$NON-NLS-1$
+ langFactory.createLiteral("timestamp", String.class)),
java.sql.Timestamp.class); //$NON-NLS-1$
break;
default:
convert = DROP_MODIFIER.modify(function);
@@ -212,18 +213,18 @@
private IExpression convertToString(IFunction function) {
IExpression convert = null;
- IExpression[] args = function.getParameters();
+ List<IExpression> args = function.getParameters();
String format = null;
int srcCode = getSrcCode(function);
switch(srcCode) { // convert(input, string) --> to_char(input)
case BOOLEAN:
- convert = langFactory.createFunction("decode", new
IExpression[] //$NON-NLS-1$
- { args[0],
+ convert = langFactory.createFunction("decode", Arrays.asList(
//$NON-NLS-1$
+ args.get(0),
langFactory.createLiteral(new Integer(0), Integer.class),
langFactory.createLiteral("false", String.class),
//$NON-NLS-1$
langFactory.createLiteral(new Integer(1), Integer.class),
- langFactory.createLiteral("true", String.class) },
//$NON-NLS-1$
+ langFactory.createLiteral("true", String.class) ),
//$NON-NLS-1$
String.class);
break;
@@ -235,19 +236,19 @@
case FLOAT:
case DOUBLE:
case BIGDECIMAL:
- convert = createStringFunction(args[0]);
+ convert = createStringFunction(args.get(0));
break;
// convert(input, string) --> to_char(input, format)
case DATE:
format = "YYYY-MM-DD"; //$NON-NLS-1$
- convert = createStringFunction(args[0], format);
+ convert = createStringFunction(args.get(0), format);
break;
case TIME:
format = "HH24:MI:SS"; //$NON-NLS-1$
- convert = createStringFunction(args[0], format);
+ convert = createStringFunction(args.get(0), format);
break;
case TIMESTAMP:
- convert = createStringFunction(args[0], "YYYY-MM-DD
HH24:MI:SS.FF"); //$NON-NLS-1$
+ convert = createStringFunction(args.get(0), "YYYY-MM-DD
HH24:MI:SS.FF"); //$NON-NLS-1$
break;
default:
convert = DROP_MODIFIER.modify(function);
@@ -446,7 +447,7 @@
return convert;
}
- private IFunction dateTypeHelper(String functionName, IExpression[] args, Class
target) {
+ private IFunction dateTypeHelper(String functionName, List<IExpression> args,
Class target) {
IFunction convert = langFactory.createFunction(functionName,
args, target);
return convert;
@@ -454,50 +455,48 @@
private IFunction booleanHelper(IFunction function) {
// using decode(value, 'true', 1, 'false', 0)
- IExpression[] args = function.getParameters();
+ List<IExpression> args = function.getParameters();
- IExpression[] modified = new IExpression[] {
- args[0],
- langFactory.createLiteral("true", String.class), //$NON-NLS-1$
- langFactory.createLiteral(new Byte((byte)1), Byte.class),
- langFactory.createLiteral("false", String.class), //$NON-NLS-1$
- langFactory.createLiteral(new Byte((byte)0), Byte.class)
- };
-
return langFactory.createFunction("decode", //$NON-NLS-1$
- modified, java.lang.Boolean.class);
+ Arrays.asList(
+ args.get(0),
+ langFactory.createLiteral("true", String.class),
//$NON-NLS-1$
+ langFactory.createLiteral(new Byte((byte)1), Byte.class),
+ langFactory.createLiteral("false", String.class),
//$NON-NLS-1$
+ langFactory.createLiteral(new Byte((byte)0), Byte.class)
+ ), java.lang.Boolean.class);
}
private IExpression stringSrcHelper(IFunction function) {
IExpression convert = null;
- IExpression[] args = function.getParameters();
+ List<IExpression> args = function.getParameters();
// switch the target type
String functionName = "to_number"; //$NON-NLS-1$
int targetCode = getTargetCode(function.getType());
switch(targetCode) {
case BYTE:
- convert = createFunction(functionName, args[0], Byte.class);
+ convert = createFunction(functionName, args.get(0), Byte.class);
break;
case SHORT:
- convert = createFunction(functionName, args[0], Short.class);
+ convert = createFunction(functionName, args.get(0), Short.class);
break;
case INTEGER:
- convert = createFunction(functionName, args[0], Integer.class);
+ convert = createFunction(functionName, args.get(0), Integer.class);
break;
case LONG:
- convert = createFunction(functionName, args[0], Long.class);
+ convert = createFunction(functionName, args.get(0), Long.class);
break;
case BIGINTEGER:
- convert = createFunction(functionName, args[0],
java.math.BigInteger.class);
+ convert = createFunction(functionName, args.get(0),
java.math.BigInteger.class);
break;
case FLOAT:
- convert = createFunction(functionName, args[0], Float.class);
+ convert = createFunction(functionName, args.get(0), Float.class);
break;
case DOUBLE:
- convert = createFunction(functionName, args[0], Double.class);
+ convert = createFunction(functionName, args.get(0), Double.class);
break;
case BIGDECIMAL:
- convert = createFunction(functionName, args[0],
java.math.BigDecimal.class);
+ convert = createFunction(functionName, args.get(0),
java.math.BigDecimal.class);
break;
default:
convert = DROP_MODIFIER.modify(function);
@@ -508,26 +507,26 @@
private IFunction createFunction(String functionName, IExpression args0, Class
targetClass) {
IFunction created = langFactory.createFunction(functionName,
- new IExpression[] {args0}, targetClass);
+ Arrays.asList(args0), targetClass);
return created;
}
private IFunction createStringFunction(IExpression args0, String format) {
IFunction created = langFactory.createFunction("to_char", //$NON-NLS-1$
- new IExpression[] {args0, langFactory.createLiteral(format, String.class)},
+ Arrays.asList(args0, langFactory.createLiteral(format, String.class)),
String.class);
return created;
}
private IFunction createStringFunction(IExpression args) {
IFunction created = langFactory.createFunction("to_char", //$NON-NLS-1$
- new IExpression[] { args }, String.class);
+ Arrays.asList( args ), String.class);
return created;
}
private int getSrcCode(IFunction function) {
- IExpression[] args = function.getParameters();
- Class srcType = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class srcType = args.get(0).getType();
return ((Integer) typeMap.get(srcType)).intValue();
}
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/OracleSQLTranslator.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/OracleSQLTranslator.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/oracle/OracleSQLTranslator.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -46,7 +46,6 @@
import com.metamatrix.connector.language.ILimit;
import com.metamatrix.connector.language.ISetQuery.Operation;
import com.metamatrix.connector.metadata.runtime.Element;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.visitor.util.SQLReservedWords;
/**
@@ -99,7 +98,7 @@
* then pull the Sequence name out of the name in source of the column.
*/
IInsert insert = (IInsert)command;
- List<MetadataID> allElements =
insert.getGroup().getMetadataID().getChildIDs();
+ List<Element> allElements =
insert.getGroup().getMetadataObject().getChildren();
if (allElements.size() == insert.getValues().size()) {
return command;
}
@@ -107,8 +106,7 @@
int index = 0;
List<IElement> elements = insert.getElements();
- for (MetadataID metadataID : allElements) {
- Element element = (Element)metadataID.getMetadataObject();
+ for (Element element : allElements) {
if (!element.isAutoIncremented()) {
continue;
}
@@ -119,7 +117,7 @@
}
boolean found = false;
while (index < elements.size()) {
- if (metadataID.equals(elements.get(index).getMetadataID())) {
+ if (element.equals(elements.get(index).getMetadataObject())) {
found = true;
break;
}
@@ -140,7 +138,7 @@
IGroup sequenceGroup =
this.getLanguageFactory().createGroup(sequenceGroupName, null, null);
IElement sequenceElement =
this.getLanguageFactory().createElement(sequenceElementName, sequenceGroup, null,
element.getJavaType());
- insert.getElements().add(index,
this.getLanguageFactory().createElement(element.getMetadataID().getName(),
insert.getGroup(), metadataID, element.getJavaType()));
+ insert.getElements().add(index,
this.getLanguageFactory().createElement(element.getName(), insert.getGroup(), element,
element.getJavaType()));
insert.getValues().add(index, sequenceElement);
}
return command;
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/postgresql/DatePartFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/postgresql/DatePartFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/postgresql/DatePartFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,8 @@
package com.metamatrix.connector.jdbc.postgresql;
+import java.util.Arrays;
+
import com.metamatrix.connector.jdbc.translator.BasicFunctionModifier;
import com.metamatrix.connector.language.IExpression;
import com.metamatrix.connector.language.IFunction;
@@ -43,7 +45,7 @@
public IExpression modify(IFunction function) {
return factory.createFunction("date_part", //$NON-NLS-1$
- new IExpression[] {factory.createLiteral(part,
String.class), function.getParameters()[0]},
+ Arrays.asList(factory.createLiteral(part,
String.class), function.getParameters().get(0)),
Integer.class);
}
}
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/postgresql/ModifiedDatePartFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/postgresql/ModifiedDatePartFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/postgresql/ModifiedDatePartFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,8 @@
package com.metamatrix.connector.jdbc.postgresql;
+import java.util.Arrays;
+
import com.metamatrix.connector.language.IExpression;
import com.metamatrix.connector.language.IFunction;
import com.metamatrix.connector.language.ILanguageFactory;
@@ -44,7 +46,7 @@
public IExpression modify(IFunction function) {
IExpression expr = super.modify(function);
return factory.createFunction(modifier,
- new IExpression[] {expr,
factory.createLiteral(arg, arg.getClass())},
+ Arrays.asList(expr, factory.createLiteral(arg,
arg.getClass())),
arg.getClass());
}
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/postgresql/PostgreSQLConvertModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/postgresql/PostgreSQLConvertModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/postgresql/PostgreSQLConvertModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -51,33 +51,33 @@
}
public IExpression modify(IFunction function) {
- IExpression[] args = function.getParameters();
+ List<IExpression> args = function.getParameters();
- if (args[0] != null && args[0] instanceof ILiteral &&
((ILiteral)args[0]).getValue() == null ) {
- if (args[1] != null && args[1] instanceof ILiteral) {
+ if (args.get(0) != null && args.get(0) instanceof ILiteral &&
((ILiteral)args.get(0)).getValue() == null ) {
+ if (args.get(1) != null && args.get(1) instanceof ILiteral) {
// This is a convert(null, ...) or cast(null as ...)
return DROP_MODIFIER.modify(function);
}
}
- if (args[1] != null && args[1] instanceof ILiteral) {
- String target = ((String)((ILiteral)args[1]).getValue()).toLowerCase();
+ if (args.get(1) != null && args.get(1) instanceof ILiteral) {
+ String target = ((String)((ILiteral)args.get(1)).getValue()).toLowerCase();
if (target.equals("string")) { //$NON-NLS-1$
return convertToString(function);
} else if (target.equals("short")) { //$NON-NLS-1$
- return createCastFunction(args[0], "smallint", Short.class);
//$NON-NLS-1$
+ return createCastFunction(args.get(0), "smallint",
Short.class); //$NON-NLS-1$
} else if (target.equals("integer")) { //$NON-NLS-1$
- return createCastFunction(args[0], "integer", Integer.class);
//$NON-NLS-1$
+ return createCastFunction(args.get(0), "integer",
Integer.class); //$NON-NLS-1$
} else if (target.equals("long")) { //$NON-NLS-1$
- return createCastFunction(args[0], "bigint", Long.class);
//$NON-NLS-1$
+ return createCastFunction(args.get(0), "bigint", Long.class);
//$NON-NLS-1$
} else if (target.equals("biginteger")) { //$NON-NLS-1$
- return createCastFunction(args[0], "numeric",
BigInteger.class); //$NON-NLS-1$
+ return createCastFunction(args.get(0), "numeric",
BigInteger.class); //$NON-NLS-1$
} else if (target.equals("float")) { //$NON-NLS-1$
- return createCastFunction(args[0], "real", Float.class);
//$NON-NLS-1$
+ return createCastFunction(args.get(0), "real", Float.class);
//$NON-NLS-1$
} else if (target.equals("double")) { //$NON-NLS-1$
- return createCastFunction(args[0], "float8", Double.class);
//$NON-NLS-1$
+ return createCastFunction(args.get(0), "float8", Double.class);
//$NON-NLS-1$
} else if (target.equals("bigdecimal")) { //$NON-NLS-1$
- return createCastFunction(args[0], "decimal",
BigDecimal.class); //$NON-NLS-1$
+ return createCastFunction(args.get(0), "decimal",
BigDecimal.class); //$NON-NLS-1$
} else if (target.equals("date")) { //$NON-NLS-1$
return convertToDate(function);
} else if (target.equals("time")) { //$NON-NLS-1$
@@ -85,44 +85,44 @@
} else if (target.equals("timestamp")) { //$NON-NLS-1$
return convertToTimestamp(function);
} else if (target.equals("char")) { //$NON-NLS-1$
- return createCastFunction(args[0], "varchar", String.class);
//$NON-NLS-1$
+ return createCastFunction(args.get(0), "varchar",
String.class); //$NON-NLS-1$
} else if (target.equals("boolean")) { //$NON-NLS-1$
- return createCastFunction(args[0], "boolean", Boolean.class);
//$NON-NLS-1$
+ return createCastFunction(args.get(0), "boolean",
Boolean.class); //$NON-NLS-1$
} else if (target.equals("byte")) { //$NON-NLS-1$
- return createCastFunction(args[0], "smallint", Byte.class);
//$NON-NLS-1$
+ return createCastFunction(args.get(0), "smallint", Byte.class);
//$NON-NLS-1$
}
}
return DROP_MODIFIER.modify(function);
}
private IExpression convertToDate(IFunction function) {
- IExpression[] args = function.getParameters();
+ List<IExpression> args = function.getParameters();
int srcCode = getSrcCode(function);
switch(srcCode) {
case STRING:
- return createConversionFunction("to_date", args[0],
"YYYY-MM-DD", java.sql.Date.class); //$NON-NLS-1$//$NON-NLS-2$
+ return createConversionFunction("to_date", args.get(0),
"YYYY-MM-DD", java.sql.Date.class); //$NON-NLS-1$//$NON-NLS-2$
case TIMESTAMP:
- return createCastFunction(args[0], "date",
java.sql.Date.class); //$NON-NLS-1$
+ return createCastFunction(args.get(0), "date",
java.sql.Date.class); //$NON-NLS-1$
default:
return DROP_MODIFIER.modify(function);
}
}
private IExpression convertToTime(IFunction function) {
- IExpression[] args = function.getParameters();
+ List<IExpression> args = function.getParameters();
int srcCode = getSrcCode(function);
switch(srcCode) {
case STRING:
//convert(STRING, time) --> to_timestamp('1970-01-01 ' ||
timevalue, 'YYYY-MM-DD HH24:MI:SS')
IExpression prependedPart0 = langFactory.createFunction("||",
//$NON-NLS-1$
- new
IExpression[] {langFactory.createLiteral("1970-01-01 ", String.class), args[0]},
//$NON-NLS-1$
+
Arrays.asList(langFactory.createLiteral("1970-01-01 ", String.class),
args.get(0)), //$NON-NLS-1$
String.class);
return createConversionFunction("to_timestamp", prependedPart0,
"YYYY-MM-DD HH24:MI:SS", java.sql.Time.class); //$NON-NLS-1$ //$NON-NLS-2$
case TIMESTAMP:
- return createCastFunction(args[0], "time",
java.sql.Time.class); //$NON-NLS-1$
+ return createCastFunction(args.get(0), "time",
java.sql.Time.class); //$NON-NLS-1$
default:
return DROP_MODIFIER.modify(function);
}
@@ -134,16 +134,16 @@
* @return IFunction
*/
private IExpression convertToTimestamp(IFunction function) {
- IExpression[] args = function.getParameters();
+ List<IExpression> args = function.getParameters();
int srcCode = getSrcCode(function);
switch(srcCode) {
case STRING:
// convert(STRING, timestamp) --> to_date(timestampvalue,
'YYYY-MM-DD HH24:MI:SS'))) from smalla
- return createConversionFunction("to_timestamp", args[0],
"YYYY-MM-DD HH24:MI:SS.UF", java.sql.Timestamp.class); //$NON-NLS-1$
//$NON-NLS-2$
+ return createConversionFunction("to_timestamp", args.get(0),
"YYYY-MM-DD HH24:MI:SS.UF", java.sql.Timestamp.class); //$NON-NLS-1$
//$NON-NLS-2$
case TIME:
case DATE:
// convert(DATE, timestamp) --> to_date(to_char(DATE, 'YYYY-MM-DD
HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS')
- IFunction inner = createStringFunction(args[0], "YYYY-MM-DD
HH24:MI:SS"); //$NON-NLS-1$
+ IFunction inner = createStringFunction(args.get(0), "YYYY-MM-DD
HH24:MI:SS"); //$NON-NLS-1$
return createConversionFunction("to_timestamp", inner,
"YYYY-MM-DD HH24:MI:SS", java.sql.Timestamp.class); //$NON-NLS-1$ //$NON-NLS-2$
default:
@@ -152,14 +152,14 @@
}
private IExpression convertToString(IFunction function) {
- IExpression[] args = function.getParameters();
+ List<IExpression> args = function.getParameters();
int srcCode = getSrcCode(function);
switch(srcCode) {
case BOOLEAN:
// convert(booleanSrc, string) --> CASE WHEN booleanSrc THEN
'1' ELSE '0' END
- List when = Arrays.asList(langFactory.createCompareCriteria(Operator.EQ,
function.getParameters()[0], langFactory.createLiteral(Boolean.TRUE, Boolean.class)));
- List then = Arrays.asList(new IExpression[]
{langFactory.createLiteral("1", String.class)}); //$NON-NLS-1$
+ List when = Arrays.asList(langFactory.createCompareCriteria(Operator.EQ,
function.getParameters().get(0), langFactory.createLiteral(Boolean.TRUE,
Boolean.class)));
+ List then = Arrays.asList(langFactory.createLiteral("1",
String.class)); //$NON-NLS-1$
IExpression elseExpr = langFactory.createLiteral("0",
String.class); //$NON-NLS-1$
return langFactory.createSearchedCaseExpression(when, then, elseExpr,
String.class);
case BYTE:
@@ -171,14 +171,14 @@
case DOUBLE:
case BIGDECIMAL:
// convert(src, string) --> cast (src AS varchar)
- return createCastFunction(args[0], "varchar", String.class);
//$NON-NLS-1$
+ return createCastFunction(args.get(0), "varchar",
String.class); //$NON-NLS-1$
// convert(input, string) --> to_char(input, format)
case DATE:
- return createStringFunction(args[0], "YYYY-MM-DD");
//$NON-NLS-1$
+ return createStringFunction(args.get(0), "YYYY-MM-DD");
//$NON-NLS-1$
case TIME:
- return createStringFunction(args[0], "HH24:MI:SS");
//$NON-NLS-1$
+ return createStringFunction(args.get(0), "HH24:MI:SS");
//$NON-NLS-1$
case TIMESTAMP:
- return createStringFunction(args[0], "YYYY-MM-DD
HH24:MI:SS.US"); //$NON-NLS-1$
+ return createStringFunction(args.get(0), "YYYY-MM-DD
HH24:MI:SS.US"); //$NON-NLS-1$
default:
return DROP_MODIFIER.modify(function);
}
@@ -193,12 +193,12 @@
}
private IFunction createConversionFunction(String functionName, IExpression value,
String target, Class targetClass) {
- return langFactory.createFunction(functionName, new IExpression[] {value,
langFactory.createLiteral(target, String.class)}, targetClass);
+ return langFactory.createFunction(functionName, Arrays.asList(value,
langFactory.createLiteral(target, String.class)), targetClass);
}
private int getSrcCode(IFunction function) {
- IExpression[] args = function.getParameters();
- Class srcType = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class srcType = args.get(0).getType();
return ((Integer) typeMap.get(srcType)).intValue();
}
}
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/sybase/ModFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/sybase/ModFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/sybase/ModFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,8 @@
package com.metamatrix.connector.jdbc.sybase;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import com.metamatrix.connector.api.TypeFacility.RUNTIME_TYPES;
@@ -41,26 +43,21 @@
@Override
public IExpression modify(IFunction function) {
- IExpression[] expressions = function.getParameters();
- if (RUNTIME_TYPES.INTEGER.equals(expressions[0].getType())) {
+ List<IExpression> expressions = function.getParameters();
+ if (RUNTIME_TYPES.INTEGER.equals(expressions.get(0).getType())) {
return super.modify(function);
}
//x % y => x - floor(x / y) * y
- IExpression[] divideArgs = new IExpression[2];
- System.arraycopy(expressions, 0, divideArgs, 0, 2);
- IFunction divide = langFactory.createFunction("/", divideArgs,
divideArgs[0].getType()); //$NON-NLS-1$
+ IFunction divide = langFactory.createFunction("/", new
ArrayList<IExpression>(expressions), expressions.get(0).getType()); //$NON-NLS-1$
- IFunction floor = langFactory.createFunction("floor", new IExpression[]
{divide}, divide.getType()); //$NON-NLS-1$
+ IFunction floor = langFactory.createFunction("floor", Arrays.asList(divide),
divide.getType()); //$NON-NLS-1$
- IExpression[] multArgs = new IExpression[] {
- floor, expressions[1]
- };
- IFunction mult = langFactory.createFunction("*", multArgs,
multArgs[1].getType()); //$NON-NLS-1$
+ List<IExpression> multArgs = Arrays.asList(floor, expressions.get(1));
+ IFunction mult = langFactory.createFunction("*", multArgs,
multArgs.get(1).getType()); //$NON-NLS-1$
+
+ List<IExpression> minusArgs = Arrays.asList(expressions.get(0), mult);
- IExpression[] minusArgs = new IExpression[] {
- expressions[0], mult
- };
- return langFactory.createFunction("-", minusArgs, minusArgs[0].getType());
//$NON-NLS-1$
+ return langFactory.createFunction("-", minusArgs,
minusArgs.get(0).getType()); //$NON-NLS-1$
}
@Override
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/sybase/SybaseConvertModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/sybase/SybaseConvertModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/sybase/SybaseConvertModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -23,12 +23,16 @@
package com.metamatrix.connector.jdbc.sybase;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import com.metamatrix.connector.jdbc.translator.BasicFunctionModifier;
import com.metamatrix.connector.jdbc.translator.DropFunctionModifier;
import com.metamatrix.connector.jdbc.translator.FunctionModifier;
-import com.metamatrix.connector.language.*;
+import com.metamatrix.connector.language.IExpression;
+import com.metamatrix.connector.language.IFunction;
+import com.metamatrix.connector.language.ILanguageFactory;
+import com.metamatrix.connector.language.ILiteral;
/**
*/
@@ -47,11 +51,11 @@
}
public IExpression modify(IFunction function) {
- IExpression[] args = function.getParameters();
+ List<IExpression> args = function.getParameters();
IExpression modified = null;
- if (args[1] != null && args[1] instanceof ILiteral) {
- String target = ((String)((ILiteral)args[1]).getValue()).toLowerCase();
+ if (args.get(1) != null && args.get(1) instanceof ILiteral) {
+ String target = ((String)((ILiteral)args.get(1)).getValue()).toLowerCase();
if (target.equals("string")) { //$NON-NLS-1$
modified = convertToString(function);
} else if (target.equals("short")) { //$NON-NLS-1$
@@ -96,17 +100,17 @@
List parts = new ArrayList();
parts.add("convert("); //$NON-NLS-1$
- IExpression[] args = function.getParameters();
+ List<IExpression> args = function.getParameters();
- if(args != null && args.length > 0) {
- ILiteral type = (ILiteral) args[0];
+ if(args != null && args.size() > 0) {
+ ILiteral type = (ILiteral) args.get(0);
String typeStr = type.getValue().toString();
parts.add(typeStr);
- for(int i=1; i<args.length; i++) {
+ for(int i=1; i<args.size(); i++) {
parts.add(", "); //$NON-NLS-1$
- parts.add(args[i]);
+ parts.add(args.get(i));
}
}
parts.add(")"); //$NON-NLS-1$
@@ -115,8 +119,8 @@
private IExpression convertToBoolean(IFunction function) {
IExpression convert = null;
- IExpression[] args = function.getParameters();
- Class src = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class src = args.get(0).getType();
int srcCode = getSrcCode(src);
switch(srcCode) {
@@ -130,7 +134,7 @@
case FLOAT:
case DOUBLE:
case BIGDECIMAL:
- convert = createFunction(args[0], "bit", Boolean.class);
//$NON-NLS-1$
+ convert = createFunction(args.get(0), "bit", Boolean.class);
//$NON-NLS-1$
break;
default:
convert = DROP_MODIFIER.modify(function);
@@ -142,8 +146,8 @@
private IExpression convertToByte(IFunction function) {
IExpression convert = null;
- IExpression[] args = function.getParameters();
- Class src = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class src = args.get(0).getType();
int srcCode = getSrcCode(src);
switch(srcCode) {
@@ -156,7 +160,7 @@
case FLOAT:
case DOUBLE:
case BIGDECIMAL:
- convert = createFunction(args[0], "tinyint", String.class);
//$NON-NLS-1$
+ convert = createFunction(args.get(0), "tinyint", String.class);
//$NON-NLS-1$
break;
default:
convert = DROP_MODIFIER.modify(function);
@@ -168,8 +172,8 @@
private IExpression convertToString(IFunction function) {
IExpression convert = null;
- IExpression[] args = function.getParameters();
- Class src = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class src = args.get(0).getType();
int srcCode = getSrcCode(src);
switch(srcCode) {
@@ -183,17 +187,17 @@
case FLOAT:
case DOUBLE:
case BIGDECIMAL:
- convert = createFunction(args[0], "varchar", String.class);
//$NON-NLS-1$
+ convert = createFunction(args.get(0), "varchar", String.class);
//$NON-NLS-1$
break;
case DATE: // convert(date, string) --> convert(varchar, date, 112)
//TODO: what is the best format 111/110/101?
- convert = createFunction(args[0], 101, String.class);
+ convert = createFunction(args.get(0), 101, String.class);
break;
case TIME: // convert(time, string) --> convert(varchar, time, 108)
- convert = createFunction(args[0], 108, String.class);
+ convert = createFunction(args.get(0), 108, String.class);
break;
case TIMESTAMP: // convert(time, string) --> convert(varchar, timestamp,
109)
- convert = createFunction(args[0], 109, String.class);
+ convert = createFunction(args.get(0), 109, String.class);
break;
default:
convert = DROP_MODIFIER.modify(function);
@@ -205,8 +209,8 @@
private IExpression convertToShort(IFunction function) {
IExpression convert = null;
- IExpression[] args = function.getParameters();
- Class src = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class src = args.get(0).getType();
int srcCode = getSrcCode(src);
switch(srcCode) {
@@ -219,7 +223,7 @@
case FLOAT:
case DOUBLE:
case BIGDECIMAL:
- convert = createFunction(args[0], "smallint", Short.class);
//$NON-NLS-1$
+ convert = createFunction(args.get(0), "smallint", Short.class);
//$NON-NLS-1$
break;
default:
convert = DROP_MODIFIER.modify(function);
@@ -231,8 +235,8 @@
private IExpression convertToInteger(IFunction function) {
IExpression convert = null;
- IExpression[] args = function.getParameters();
- Class src = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class src = args.get(0).getType();
int srcCode = getSrcCode(src);
switch(srcCode) {
@@ -245,7 +249,7 @@
case FLOAT:
case DOUBLE:
case BIGDECIMAL:
- convert = createFunction(args[0], "int", Integer.class);
//$NON-NLS-1$
+ convert = createFunction(args.get(0), "int", Integer.class);
//$NON-NLS-1$
break;
default:
convert = DROP_MODIFIER.modify(function);
@@ -257,8 +261,8 @@
private IExpression convertToLong(IFunction function) {
IExpression convert = null;
- IExpression[] args = function.getParameters();
- Class src = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class src = args.get(0).getType();
int srcCode = getSrcCode(src);
switch(srcCode) {
@@ -271,7 +275,7 @@
case FLOAT:
case DOUBLE:
case BIGDECIMAL:
- convert = createFunction(args[0], "numeric", Long.class);
//$NON-NLS-1$
+ convert = createFunction(args.get(0), "numeric", Long.class);
//$NON-NLS-1$
break;
default:
convert = DROP_MODIFIER.modify(function);
@@ -283,8 +287,8 @@
private IExpression convertToBigInteger(IFunction function) {
IExpression convert = null;
- IExpression[] args = function.getParameters();
- Class src = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class src = args.get(0).getType();
int srcCode = getSrcCode(src);
switch(srcCode) {
@@ -297,7 +301,7 @@
case FLOAT:
case DOUBLE:
case BIGDECIMAL:
- convert = createFunction(args[0], "numeric",
java.math.BigInteger.class); //$NON-NLS-1$
+ convert = createFunction(args.get(0), "numeric",
java.math.BigInteger.class); //$NON-NLS-1$
break;
default:
convert = DROP_MODIFIER.modify(function);
@@ -309,8 +313,8 @@
private IExpression convertToFloat(IFunction function) {
IExpression convert = null;
- IExpression[] args = function.getParameters();
- Class src = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class src = args.get(0).getType();
int srcCode = getSrcCode(src);
switch(srcCode) {
@@ -323,7 +327,7 @@
case BIGINTEGER:
case DOUBLE:
case BIGDECIMAL:
- convert = createFunction(args[0], "real", Float.class);
//$NON-NLS-1$
+ convert = createFunction(args.get(0), "real", Float.class);
//$NON-NLS-1$
break;
default:
convert = DROP_MODIFIER.modify(function);
@@ -335,8 +339,8 @@
private IExpression convertToDouble(IFunction function) {
IExpression convert = null;
- IExpression[] args = function.getParameters();
- Class src = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class src = args.get(0).getType();
int srcCode = getSrcCode(src);
switch(srcCode) {
@@ -349,7 +353,7 @@
case BIGINTEGER:
case FLOAT:
case BIGDECIMAL:
- convert = createFunction(args[0], "float", Double.class);
//$NON-NLS-1$
+ convert = createFunction(args.get(0), "float", Double.class);
//$NON-NLS-1$
break;
default:
convert = DROP_MODIFIER.modify(function);
@@ -361,8 +365,8 @@
private IExpression convertToBigDecimal(IFunction function) {
IExpression convert = null;
- IExpression[] args = function.getParameters();
- Class src = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class src = args.get(0).getType();
int srcCode = getSrcCode(src);
switch(srcCode) {
@@ -375,7 +379,7 @@
case BIGINTEGER:
case FLOAT:
case DOUBLE:
- convert = createFunction(args[0], "float",
java.math.BigDecimal.class); //$NON-NLS-1$
+ convert = createFunction(args.get(0), "float",
java.math.BigDecimal.class); //$NON-NLS-1$
break;
default:
convert = DROP_MODIFIER.modify(function);
@@ -386,36 +390,36 @@
}
private IExpression convertToChar(IFunction function) {
- IExpression[] args = function.getParameters();
- return createFunction(args[0], "char", Character.class); //$NON-NLS-1$
+ List<IExpression> args = function.getParameters();
+ return createFunction(args.get(0), "char", Character.class);
//$NON-NLS-1$
}
private IExpression convertToDate(IFunction function) {
IExpression convert = null;
- IExpression[] args = function.getParameters();
- Class srcType = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class srcType = args.get(0).getType();
int srcCode = getSrcCode(srcType);
switch(srcCode) {
case STRING:
// convert(STRING, date) --> convert(datetime, STRING)
- convert = createFunction(args[0], "datetime",
java.sql.Date.class); //$NON-NLS-1$
+ convert = createFunction(args.get(0), "datetime",
java.sql.Date.class); //$NON-NLS-1$
break;
case TIMESTAMP:
// convert(TIMESTAMP, date) --> convert(datetime, convert(varchar,
TIMESTAMP, 1/101))
// Build inner convert
IFunction innerConvert = langFactory.createFunction("convert",
//$NON-NLS-1$
- new IExpression[] {
+ Arrays.asList(
langFactory.createLiteral("varchar", String.class),
//$NON-NLS-1$
- args[0],
- langFactory.createLiteral(new Integer(109), Integer.class) },
+ args.get(0),
+ langFactory.createLiteral(new Integer(109), Integer.class) ),
String.class);
// Build outer convert
convert = langFactory.createFunction("convert", //$NON-NLS-1$
- new IExpression[] {
+ Arrays.asList(
langFactory.createLiteral("datetime", String.class),
//$NON-NLS-1$
- innerConvert },
+ innerConvert ),
java.sql.Timestamp.class);
break;
@@ -429,30 +433,30 @@
private IExpression convertToTime(IFunction function) {
IExpression convert = null;
- IExpression[] args = function.getParameters();
- Class srcType = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class srcType = args.get(0).getType();
int srcCode = getSrcCode(srcType);
switch(srcCode) {
case STRING:
//convert(STRING, time) --> convert(datetime, STRING)
- convert = createFunction(args[0], "datetime",
java.sql.Time.class); //$NON-NLS-1$
+ convert = createFunction(args.get(0), "datetime",
java.sql.Time.class); //$NON-NLS-1$
break;
case TIMESTAMP:
// convert(TIMESTAMP, time) --> convert(datetime, convert(varchar,
TIMESTAMP, 108/8)
// Build inner convert
IFunction innerConvert = langFactory.createFunction("convert",
//$NON-NLS-1$
- new IExpression[] {
+ Arrays.asList(
langFactory.createLiteral("varchar", String.class),
//$NON-NLS-1$
- args[0],
- langFactory.createLiteral(new Integer(108), Integer.class) },
+ args.get(0),
+ langFactory.createLiteral(new Integer(108), Integer.class) ),
String.class);
// Build outer convert
convert = langFactory.createFunction("convert", //$NON-NLS-1$
- new IExpression[] {
+ Arrays.asList(
langFactory.createLiteral("datetime", String.class),
//$NON-NLS-1$
- innerConvert },
+ innerConvert ),
java.sql.Time.class);
break;
@@ -466,15 +470,15 @@
private IExpression convertToTimestamp(IFunction function) {
IExpression convert = null;
- IExpression[] args = function.getParameters();
- Class srcType = args[0].getType();
+ List<IExpression> args = function.getParameters();
+ Class srcType = args.get(0).getType();
int srcCode = getSrcCode(srcType);
switch(srcCode) {
case STRING:
case TIME:
case DATE:
// convert(DATE/TIME/STRING, timestamp) --> convert(datetime, DATE)
- convert = createFunction(args[0], "datetime",
java.sql.Timestamp.class); //$NON-NLS-1$
+ convert = createFunction(args.get(0), "datetime",
java.sql.Timestamp.class); //$NON-NLS-1$
break;
default:
convert = DROP_MODIFIER.modify(function);
@@ -486,18 +490,18 @@
private IFunction createFunction(IExpression args0, String targetType, Class
targetClass) {
IFunction created = langFactory.createFunction("convert",
//$NON-NLS-1$
- new IExpression[] {
+ Arrays.asList(
langFactory.createLiteral(targetType, String.class),
- args0},
+ args0),
targetClass);
return created;
}
private IFunction createFunction(IExpression args0, int formatNumber, Class
targetClass) {
IFunction created = langFactory.createFunction("convert",
//$NON-NLS-1$
- new IExpression[] { langFactory.createLiteral("varchar",
String.class), //$NON-NLS-1$
+ Arrays.asList( langFactory.createLiteral("varchar", String.class),
//$NON-NLS-1$
args0,
- langFactory.createLiteral(new Integer(formatNumber), Integer.class) },
+ langFactory.createLiteral(new Integer(formatNumber), Integer.class) ),
targetClass);
return created;
}
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/BasicFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/BasicFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/BasicFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -98,13 +98,13 @@
List objs = new ArrayList();
objs.add(function.getName());
objs.add("("); //$NON-NLS-1$
- IExpression[] params = function.getParameters();
- if(params.length > 0) {
- objs.add(params[0]);
- if(params.length > 1) {
- for(int i=1; i<params.length; i++) {
+ List<IExpression> params = function.getParameters();
+ if(params.size() > 0) {
+ objs.add(params.get(0));
+ if(params.size() > 1) {
+ for(int i=1; i<params.size(); i++) {
objs.add(", "); //$NON-NLS-1$
- objs.add(params[i]);
+ objs.add(params.get(i));
}
}
}
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/DropFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/DropFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/DropFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,8 @@
package com.metamatrix.connector.jdbc.translator;
+import java.util.List;
+
import com.metamatrix.connector.jdbc.JDBCPlugin;
import com.metamatrix.connector.language.*;
@@ -40,11 +42,11 @@
}
public IExpression modify(IFunction function) {
- IExpression[] args = function.getParameters();
- if(args.length <= replaceIndex) {
+ List<IExpression> args = function.getParameters();
+ if(args.size() <= replaceIndex) {
throw new
IllegalArgumentException(JDBCPlugin.Util.getString("DropFunctionModifier.DropFunctionModifier_can_only_be_used_on_functions_with___1")
+ function); //$NON-NLS-1$
}
- return args[replaceIndex];
+ return args.get(replaceIndex);
}
}
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/SQLConversionVisitor.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/SQLConversionVisitor.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/SQLConversionVisitor.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -246,7 +246,7 @@
}
prepareCallBuffer.append(" call ");//$NON-NLS-1$
- prepareCallBuffer.append(exec.getMetadataID() != null ?
getName(exec.getMetadataID()) : exec.getProcedureName());
+ prepareCallBuffer.append(exec.getMetadataObject() != null ?
getName(exec.getMetadataObject()) : exec.getProcedureName());
prepareCallBuffer.append("("); //$NON-NLS-1$
int numberOfParameters = 0;
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/SubstringFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/SubstringFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/translator/SubstringFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,9 @@
package com.metamatrix.connector.jdbc.translator;
+import java.util.Arrays;
+import java.util.List;
+
import com.metamatrix.connector.language.IExpression;
import com.metamatrix.connector.language.IFunction;
import com.metamatrix.connector.language.ILanguageFactory;
@@ -43,20 +46,11 @@
* @see
com.metamatrix.connector.jdbc.translator.FunctionModifier#modify(com.metamatrix.query.sql.symbol.Function)
*/
public IExpression modify(IFunction function) {
- IExpression[] args = function.getParameters();
- IExpression[] newArgs = new IExpression[3];
- function.setParameters(newArgs);
-
- newArgs[0] = args[0];
- newArgs[1] = args[1];
+ List<IExpression> args = function.getParameters();
- if(args.length == 2) {
- newArgs[2] = languageFactory.createFunction(length_function, new
IExpression[] { args[0] }, Integer.class);
- } else {
- newArgs[2] = args[2];
- }
-
- function.setParameters(newArgs);
+ if(args.size() == 2) {
+ args.add(languageFactory.createFunction(length_function,
Arrays.asList(args.get(0)), Integer.class));
+ }
return function;
}
Modified:
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/util/FunctionReplacementVisitor.java
===================================================================
---
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/util/FunctionReplacementVisitor.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/main/java/com/metamatrix/connector/jdbc/util/FunctionReplacementVisitor.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,7 +22,6 @@
package com.metamatrix.connector.jdbc.util;
-import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -84,12 +83,10 @@
*/
public void visit(IFunction obj) {
super.visit(obj);
- IExpression[] args = obj.getParameters();
- IExpression[] newArgs = new IExpression[args.length];
- for(int i=0; i<args.length; i++) {
- newArgs[i] = replaceFunction(args[i]);
+ List<IExpression> args = obj.getParameters();
+ for(int i=0; i<args.size(); i++) {
+ args.set(i, replaceFunction(args.get(i)));
}
- obj.setParameters(newArgs);
}
/**
@@ -98,14 +95,12 @@
*/
public void visit(IGroupBy obj) {
super.visit(obj);
- List expressions = obj.getElements();
+ List<IExpression> expressions = obj.getElements();
for (int i=0; i<expressions.size(); i++) {
IExpression expression = (IExpression)expressions.get(i);
expressions.set(i, replaceFunction(expression));
}
-
- obj.setElements(expressions);
}
/*
@@ -114,14 +109,12 @@
public void visit(IInCriteria obj) {
super.visit(obj);
obj.setLeftExpression(replaceFunction(obj.getLeftExpression()));
- List rightExprs = obj.getRightExpressions();
- List newRightExprs = new ArrayList(rightExprs.size());
+ List<IExpression> rightExprs = obj.getRightExpressions();
for(int i=0; i<rightExprs.size(); i++) {
IExpression expr = (IExpression) rightExprs.get(i);
- newRightExprs.add(replaceFunction(expr));
+ rightExprs.set(i, replaceFunction(expr));
}
- obj.setRightExpressions(newRightExprs);
}
/**
@@ -129,14 +122,12 @@
*/
public void visit(IInsert obj) {
super.visit(obj);
- List values = obj.getValues();
- List newValues = new ArrayList(values.size());
+ List<IExpression> values = obj.getValues();
for(int i=0; i<values.size(); i++) {
IExpression expr = (IExpression) values.get(i);
- newValues.add(replaceFunction(expr));
+ values.set(i, replaceFunction(expr));
}
- obj.setValues(newValues);
}
/*
Modified:
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/db2/TestDB2ConvertModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/db2/TestDB2ConvertModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/db2/TestDB2ConvertModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -25,6 +25,7 @@
import java.math.BigDecimal;
import java.math.BigInteger;
import java.sql.Timestamp;
+import java.util.Arrays;
import java.util.Properties;
import junit.framework.TestCase;
@@ -64,9 +65,9 @@
public void helpTest(IExpression srcExpression, String tgtType, String
expectedExpression) throws Exception {
IFunction func = LANG_FACTORY.createFunction("convert", //$NON-NLS-1$
- new IExpression[] {
+ Arrays.asList(
srcExpression,
- LANG_FACTORY.createLiteral(tgtType, String.class)},
+ LANG_FACTORY.createLiteral(tgtType, String.class)),
TypeFacility.getDataTypeClass(tgtType));
DB2ConvertModifier mod = new DB2ConvertModifier(LANG_FACTORY);
Modified:
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/derby/TestDerbyConvertModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/derby/TestDerbyConvertModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/derby/TestDerbyConvertModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -25,6 +25,7 @@
import java.math.BigDecimal;
import java.math.BigInteger;
import java.sql.Timestamp;
+import java.util.Arrays;
import java.util.Properties;
import junit.framework.TestCase;
@@ -64,9 +65,9 @@
public void helpTest(IExpression srcExpression, String tgtType, String
expectedExpression) throws Exception {
IFunction func = LANG_FACTORY.createFunction("convert", //$NON-NLS-1$
- new IExpression[] {
+ Arrays.asList(
srcExpression,
- LANG_FACTORY.createLiteral(tgtType, String.class)},
+ LANG_FACTORY.createLiteral(tgtType, String.class)),
TypeFacility.getDataTypeClass(tgtType));
DerbyConvertModifier mod = new DerbyConvertModifier(LANG_FACTORY);
Modified:
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/extension/impl/TestDropFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/extension/impl/TestDropFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/extension/impl/TestDropFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,8 @@
package com.metamatrix.connector.jdbc.extension.impl;
+import java.util.Arrays;
+
import junit.framework.TestCase;
import com.metamatrix.cdk.CommandBuilder;
@@ -47,7 +49,7 @@
ILiteral arg1 = CommandBuilder.getLanuageFactory().createLiteral(new Integer(5),
Integer.class);
ILiteral arg2 =
CommandBuilder.getLanuageFactory().createLiteral("string",
String.class);//$NON-NLS-1$
- IFunction func =
CommandBuilder.getLanuageFactory().createFunction("convert", new IExpression[] {
arg1, arg2}, Integer.class); //$NON-NLS-1$
+ IFunction func =
CommandBuilder.getLanuageFactory().createFunction("convert", Arrays.asList(arg1,
arg2), Integer.class); //$NON-NLS-1$
IExpression output = mod.modify(func);
assertEquals("Did not get expected function after using drop modifier",
arg1, output); //$NON-NLS-1$
@@ -64,7 +66,7 @@
ILiteral arg1 =
CommandBuilder.getLanuageFactory().createLiteral("string",
String.class);//$NON-NLS-1$
ILiteral arg2 = CommandBuilder.getLanuageFactory().createLiteral(new Integer(5),
Integer.class);
- IFunction func =
CommandBuilder.getLanuageFactory().createFunction("convert", new IExpression[] {
arg1, arg2}, Integer.class); //$NON-NLS-1$
+ IFunction func =
CommandBuilder.getLanuageFactory().createFunction("convert", Arrays.asList(arg1,
arg2), Integer.class); //$NON-NLS-1$
IExpression output = mod.modify(func);
assertEquals("Did not get expected function after using drop modifier",
arg2, output); //$NON-NLS-1$
Modified:
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/extension/impl/TestEscapeSyntaxModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/extension/impl/TestEscapeSyntaxModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/extension/impl/TestEscapeSyntaxModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -29,7 +29,6 @@
import com.metamatrix.cdk.CommandBuilder;
import com.metamatrix.connector.jdbc.translator.EscapeSyntaxModifier;
-import com.metamatrix.connector.language.IExpression;
import com.metamatrix.connector.language.IFunction;
import com.metamatrix.connector.language.ILiteral;
@@ -50,7 +49,7 @@
ILiteral arg1 =
CommandBuilder.getLanuageFactory().createLiteral("arg1", String.class);
//$NON-NLS-1$
ILiteral arg2 =
CommandBuilder.getLanuageFactory().createLiteral("arg2",
String.class);//$NON-NLS-1$
- IFunction func =
CommandBuilder.getLanuageFactory().createFunction("concat", new IExpression[] {
arg1, arg2}, Integer.class); //$NON-NLS-1$
+ IFunction func =
CommandBuilder.getLanuageFactory().createFunction("concat", Arrays.asList( arg1,
arg2), Integer.class); //$NON-NLS-1$
func = (IFunction) mod.modify(func);
List parts = mod.translate(func);
Modified:
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestDayWeekQuarterFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestDayWeekQuarterFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestDayWeekQuarterFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -23,6 +23,7 @@
package com.metamatrix.connector.jdbc.oracle;
import java.sql.Timestamp;
+import java.util.Arrays;
import java.util.Properties;
import junit.framework.TestCase;
@@ -52,7 +53,7 @@
public IExpression helpTestMod(ILiteral c, String format, String expectedStr) throws
Exception {
IFunction func = LANG_FACTORY.createFunction("dayweekquarter",
//$NON-NLS-1$
- new IExpression[] { c },
+ Arrays.asList(c),
String.class);
DayWeekQuarterFunctionModifier mod = new DayWeekQuarterFunctionModifier
(LANG_FACTORY, format);
Modified:
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestExtractFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestExtractFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestExtractFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -23,6 +23,7 @@
package com.metamatrix.connector.jdbc.oracle;
import java.sql.Timestamp;
+import java.util.Arrays;
import java.util.Properties;
import junit.framework.TestCase;
@@ -55,7 +56,7 @@
public IExpression helpTestMod(IExpression c, String expectedStr, String target)
throws Exception {
IFunction func = LANG_FACTORY.createFunction(target,
- new IExpression[] { c },
+ Arrays.asList(c),
Integer.class);
ExtractFunctionModifier mod = new ExtractFunctionModifier (target);
Modified:
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestLeftOrRightFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestLeftOrRightFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestLeftOrRightFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,7 @@
package com.metamatrix.connector.jdbc.oracle;
+import java.util.Arrays;
import java.util.Properties;
import junit.framework.TestCase;
@@ -50,7 +51,7 @@
public IExpression helpTestMod(ILiteral c, ILiteral d, String target, String
expectedStr) throws Exception {
IFunction func = LANG_FACTORY.createFunction(target,
- new IExpression[] { c, d },
+ Arrays.asList( c, d ),
String.class);
LeftOrRightFunctionModifier mod = new LeftOrRightFunctionModifier
(LANG_FACTORY);
Modified:
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestLocateFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestLocateFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestLocateFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,7 @@
package com.metamatrix.connector.jdbc.oracle;
+import java.util.Arrays;
import java.util.Properties;
import junit.framework.TestCase;
@@ -49,7 +50,7 @@
public IExpression helpTestMod(IExpression[] args, String expectedStr) throws
Exception {
IFunction func = LANG_FACTORY.createFunction("hour", //$NON-NLS-1$
- args,
+ Arrays.asList(args),
Integer.class);
LocateFunctionModifier mod = new LocateFunctionModifier(LANG_FACTORY);
Modified:
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestLog10FunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestLog10FunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestLog10FunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,9 @@
package com.metamatrix.connector.jdbc.oracle;
+import java.util.Arrays;
+import java.util.List;
+
import junit.framework.TestCase;
import com.metamatrix.cdk.CommandBuilder;
@@ -44,7 +47,7 @@
public void testModifier() {
ILiteral arg = CommandBuilder.getLanuageFactory().createLiteral(new Double(5.2),
Double.class);
- IFunction func =
CommandBuilder.getLanuageFactory().createFunction("log10", new IExpression[]
{arg}, Double.class); //$NON-NLS-1$
+ IFunction func =
CommandBuilder.getLanuageFactory().createFunction("log10", Arrays.asList(arg),
Double.class); //$NON-NLS-1$
Log10FunctionModifier modifier = new
Log10FunctionModifier(CommandBuilder.getLanuageFactory());
IExpression outExpr = modifier.modify(func);
@@ -55,12 +58,12 @@
assertEquals("log", outFunc.getName()); //$NON-NLS-1$
assertEquals(func.getType(), outFunc.getType());
- IExpression[] outArgs = func.getParameters();
- assertEquals(2, outArgs.length);
- assertEquals(arg, outArgs[1]);
+ List<IExpression> outArgs = func.getParameters();
+ assertEquals(2, outArgs.size());
+ assertEquals(arg, outArgs.get(1));
- assertTrue(outArgs[1] instanceof ILiteral);
- ILiteral newArg = (ILiteral) outArgs[0];
+ assertTrue(outArgs.get(1) instanceof ILiteral);
+ ILiteral newArg = (ILiteral) outArgs.get(0);
assertEquals(Integer.class, newArg.getType());
assertEquals(new Integer(10), newArg.getValue());
Modified:
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestMonthOrDayNameFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestMonthOrDayNameFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestMonthOrDayNameFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -23,6 +23,7 @@
package com.metamatrix.connector.jdbc.oracle;
import java.sql.Timestamp;
+import java.util.Arrays;
import java.util.Properties;
import junit.framework.TestCase;
@@ -52,7 +53,7 @@
public IExpression helpTestMod(ILiteral c, String format, String expectedStr) throws
Exception {
IFunction func =
LANG_FACTORY.createFunction(format.toLowerCase()+"name", //
"monthname" //$NON-NLS-1$
- new IExpression[] { c },
+ Arrays.asList( c ),
String.class);
MonthOrDayNameFunctionModifier mod = new MonthOrDayNameFunctionModifier
(LANG_FACTORY, format);
Modified:
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestOracleConvertModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestOracleConvertModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestOracleConvertModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -25,6 +25,7 @@
import java.math.BigDecimal;
import java.math.BigInteger;
import java.sql.Timestamp;
+import java.util.Arrays;
import java.util.Properties;
import junit.framework.TestCase;
@@ -64,9 +65,9 @@
public void helpTest(IExpression srcExpression, String tgtType, String
expectedExpression) throws Exception {
IFunction func = LANG_FACTORY.createFunction("convert", //$NON-NLS-1$
- new IExpression[] {
+ Arrays.asList(
srcExpression,
- LANG_FACTORY.createLiteral(tgtType, String.class)},
+ LANG_FACTORY.createLiteral(tgtType, String.class)),
TypeFacility.getDataTypeClass(tgtType));
OracleConvertModifier mod = new OracleConvertModifier(LANG_FACTORY, null);
Modified:
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestSubstringFunctionModifier.java
===================================================================
---
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestSubstringFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/oracle/TestSubstringFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,7 @@
package com.metamatrix.connector.jdbc.oracle;
+import java.util.Arrays;
import java.util.Properties;
import junit.framework.TestCase;
@@ -52,7 +53,7 @@
public IExpression helpTestMod(IExpression[] args, String expectedStr) throws
Exception {
IFunction func = LANG_FACTORY.createFunction("substring",
//$NON-NLS-1$
- args, TypeFacility.RUNTIME_TYPES.STRING);
+ Arrays.asList(args), TypeFacility.RUNTIME_TYPES.STRING);
OracleSQLTranslator trans = new OracleSQLTranslator();
trans.initialize(EnvironmentUtility.createEnvironment(new Properties(), false));
Modified:
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/IQueryToLdapSearchParser.java
===================================================================
---
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/IQueryToLdapSearchParser.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/IQueryToLdapSearchParser.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -75,7 +75,6 @@
import com.metamatrix.connector.language.ICompareCriteria.Operator;
import com.metamatrix.connector.metadata.runtime.Element;
import com.metamatrix.connector.metadata.runtime.Group;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
/**
@@ -240,7 +239,7 @@
// TODO: Re-use the getExpressionString method if possible, rather than
// rewriting the same code twice.
if(fromItem instanceof IGroup) {
- Group group = (Group) rm.getObject(((IGroup)fromItem).getMetadataID());
+ Group group = ((IGroup)fromItem).getMetadataObject();
nameInSource = group.getNameInSource();
// if NameInSource is null set it to an empty
// string instead so we can safely call split on it
@@ -277,13 +276,12 @@
private String getRestrictToNamedClass(IFromItem fromItem) throws ConnectorException {
String nameInSource;
String namedClass = null;
- MetadataID mdIDGroup;
if(fromItem instanceof IGroup) {
// Here we use slightly different logic than in
// getContextNameFromFromItem so it is easier to get
// the group name later if needed
- mdIDGroup = ((IGroup)fromItem).getMetadataID();
- nameInSource = rm.getObject(mdIDGroup).getNameInSource();
+ Group mdIDGroup = ((IGroup)fromItem).getMetadataObject();
+ nameInSource = mdIDGroup.getNameInSource();
// groupName = mdIDGroup.getName();
// if NameInSource is null set it to an empty
// string instead so we can safely call split on it
@@ -319,7 +317,7 @@
// TODO: Re-use the getExpressionString method if possible, rather than
// rewriting the same code twice.
if(fromItem instanceof IGroup) {
- Group group = (Group) rm.getObject(((IGroup)fromItem).getMetadataID());
+ Group group = ((IGroup)fromItem).getMetadataObject();
String nameInSource = group.getNameInSource();
// if NameInSource is null set it to an empty
// string instead so we can safely call split on it
@@ -384,8 +382,8 @@
// GHH 20080326 - changed around the IElement handling here
// - the rest of this method is unchanged
if(e instanceof IElement) {
- MetadataID mdIDElement = ((IElement)e).getMetadataID();
- expressionName = rm.getObject(mdIDElement).getNameInSource();
+ Element mdIDElement = ((IElement)e).getMetadataObject();
+ expressionName = mdIDElement.getNameInSource();
if(expressionName == null || expressionName.equals("")) { //$NON-NLS-1$
expressionName = mdIDElement.getName();
}
@@ -597,10 +595,9 @@
// code from another custom connector.
public String getNameFromElement(Element e) throws ConnectorException {
String ldapAttributeName = null;
- MetadataID mdIDElement = e.getMetadataID();
- ldapAttributeName = rm.getObject(mdIDElement).getNameInSource();
+ ldapAttributeName = e.getNameInSource();
if (ldapAttributeName == null || ldapAttributeName.equals("")) {
//$NON-NLS-1$
- ldapAttributeName = mdIDElement.getName();
+ ldapAttributeName = e.getName();
// If name in source is not set, then fall back to the column name.
}
return ldapAttributeName;
@@ -653,8 +650,7 @@
*/
private Element getElementFromSymbol(ISelectSymbol symbol) throws ConnectorException
{
IElement expr = (IElement) symbol.getExpression();
- MetadataID elementID = expr.getMetadataID();
- return (Element) rm.getObject(elementID);
+ return expr.getMetadataObject();
}
Modified:
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPConnector.java
===================================================================
---
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPConnector.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPConnector.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -24,18 +24,18 @@
import java.util.Properties;
import com.metamatrix.connector.api.Connection;
-import com.metamatrix.connector.api.Connector;
import com.metamatrix.connector.api.ConnectorCapabilities;
import com.metamatrix.connector.api.ConnectorEnvironment;
import com.metamatrix.connector.api.ConnectorException;
import com.metamatrix.connector.api.ConnectorLogger;
import com.metamatrix.connector.api.ExecutionContext;
+import com.metamatrix.connector.basic.BasicConnector;
/**
* LDAPConnector. This is responsible for initializing
* a connection factory, and obtaining connections to LDAP.
*/
-public class LDAPConnector implements Connector {
+public class LDAPConnector extends BasicConnector {
private ConnectorEnvironment env;
private ConnectorLogger logger;
private Properties props;
@@ -59,7 +59,7 @@
/**
* (non-Javadoc)
- * @see
com.metamatrix.connector.api.Connector#initialize(com.metamatrix.connector.api.ConnectorEnvironment)
+ * @see
com.metamatrix.connector.basic.BasicConnector#initialize(com.metamatrix.connector.api.ConnectorEnvironment)
*/
@Override
public void start(ConnectorEnvironment env) throws ConnectorException {
Modified:
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPUpdateExecution.java
===================================================================
---
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPUpdateExecution.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPUpdateExecution.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -50,7 +50,6 @@
import com.metamatrix.connector.language.ISetClause;
import com.metamatrix.connector.language.IUpdate;
import com.metamatrix.connector.language.ICompareCriteria.Operator;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.MetadataObject;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
@@ -405,20 +404,13 @@
if (elementNameDirect == null) {
} else {
}
- MetadataID mdIDElement = e.getMetadataID();
- if (mdIDElement == null) {
- return ""; //$NON-NLS-1$
- }
- if (rm == null) {
- return ""; //$NON-NLS-1$
- }
- MetadataObject mdObject = rm.getObject(mdIDElement);
+ MetadataObject mdObject = e.getMetadataObject();
if (mdObject == null) {
return ""; //$NON-NLS-1$
}
ldapAttributeName = mdObject.getNameInSource();
if(ldapAttributeName == null || ldapAttributeName.equals("")) {
//$NON-NLS-1$
- ldapAttributeName = mdIDElement.getName();
+ ldapAttributeName = mdObject.getName();
// If name in source is not set, then fall back to the column name.
}
return ldapAttributeName;
Modified:
trunk/connectors/connector-ldap/src/test/java/com/metamatrix/connector/ldap/TestIQueryToLdapSearchParser.java
===================================================================
---
trunk/connectors/connector-ldap/src/test/java/com/metamatrix/connector/ldap/TestIQueryToLdapSearchParser.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-ldap/src/test/java/com/metamatrix/connector/ldap/TestIQueryToLdapSearchParser.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -40,7 +40,7 @@
import com.metamatrix.connector.language.ICommand;
import com.metamatrix.connector.language.IQuery;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
-import com.metamatrix.dqp.internal.datamgr.metadata.MetadataFactory;
+import com.metamatrix.dqp.internal.datamgr.metadata.RuntimeMetadataImpl;
import com.metamatrix.query.metadata.QueryMetadataInterface;
import com.metamatrix.query.unittest.FakeMetadataFacade;
import com.metamatrix.query.unittest.FakeMetadataFactory;
@@ -203,7 +203,7 @@
private LDAPSearchDetails helpGetSearchDetails(String queryString) throws
ConnectorException {
ConnectorLogger logger = new SysLogger(false);
QueryMetadataInterface metadata = exampleLdap();
- RuntimeMetadata rm = new MetadataFactory(metadata).getRuntimeMetadata();
+ RuntimeMetadata rm = new RuntimeMetadataImpl(metadata);
Properties props = new Properties();
IQueryToLdapSearchParser searchParser = new
IQueryToLdapSearchParser(logger,rm,props);
Modified:
trunk/connectors/connector-loopback/src/main/java/com/metamatrix/connector/loopback/LoopbackConnection.java
===================================================================
---
trunk/connectors/connector-loopback/src/main/java/com/metamatrix/connector/loopback/LoopbackConnection.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-loopback/src/main/java/com/metamatrix/connector/loopback/LoopbackConnection.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,7 +22,10 @@
package com.metamatrix.connector.loopback;
-import com.metamatrix.connector.api.*;
+import com.metamatrix.connector.api.ConnectorEnvironment;
+import com.metamatrix.connector.api.ConnectorException;
+import com.metamatrix.connector.api.Execution;
+import com.metamatrix.connector.api.ExecutionContext;
import com.metamatrix.connector.basic.BasicConnection;
import com.metamatrix.connector.language.ICommand;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
Modified:
trunk/connectors/connector-loopback/src/main/java/com/metamatrix/connector/loopback/LoopbackConnector.java
===================================================================
---
trunk/connectors/connector-loopback/src/main/java/com/metamatrix/connector/loopback/LoopbackConnector.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-loopback/src/main/java/com/metamatrix/connector/loopback/LoopbackConnector.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -23,11 +23,12 @@
package com.metamatrix.connector.loopback;
import com.metamatrix.connector.api.*;
+import com.metamatrix.connector.basic.BasicConnector;
/**
* Starting point for the Loopback connector.
*/
-public class LoopbackConnector implements Connector {
+public class LoopbackConnector extends BasicConnector {
private ConnectorEnvironment env;
Modified:
trunk/connectors/connector-loopback/src/test/java/com/metamatrix/connector/loopback/TestLoopbackExecution.java
===================================================================
---
trunk/connectors/connector-loopback/src/test/java/com/metamatrix/connector/loopback/TestLoopbackExecution.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-loopback/src/test/java/com/metamatrix/connector/loopback/TestLoopbackExecution.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -38,7 +38,6 @@
public TestLoopbackExecution(String name) {
super(name);
- System.setProperty("metamatrix.config.none", "true");
}
public Properties exampleProperties(int waitTime, int rowCount) {
Modified:
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/Connector.java
===================================================================
---
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/Connector.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/Connector.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -34,19 +34,14 @@
import com.metamatrix.connector.api.CredentialMap;
import com.metamatrix.connector.api.ExecutionContext;
import com.metamatrix.connector.api.ConnectorAnnotations.ConnectionPooling;
-import com.metamatrix.connector.identity.ConnectorIdentity;
-import com.metamatrix.connector.identity.ConnectorIdentityFactory;
-import com.metamatrix.connector.identity.SingleIdentityFactory;
-import com.metamatrix.connector.identity.UserIdentityFactory;
import com.metamatrix.connector.salesforce.connection.SalesforceConnection;
@ConnectionPooling
-public class Connector implements com.metamatrix.connector.api.Connector,
ConnectorIdentityFactory {
+public class Connector extends com.metamatrix.connector.basic.BasicConnector {
private ConnectorLogger logger;
private ConnectorEnvironment connectorEnv;
- private ConnectorIdentityFactory connectorIdentityFactory;
private ConnectorState state;
private boolean singleIdentity;
private String username;
@@ -102,20 +97,18 @@
//validate that both are empty or both have values
if(null == username && null == password) {
- } else if ((null == username || username.equals("")) && (null !=
password || !password.equals("")) ||
- ((null == password || password.equals("")) && (null != username ||
!username.equals("")))) {
+ } else if ((null == username || username.equals("")) && (null !=
password && !password.equals("")) ||
+ ((null == password || password.equals("")) && (null != username
&& !username.equals("")))) {
String msg =
Messages.getString("SalesforceSourceConnectionFactory.Invalid.username.password.pair");
env.getLogger().logError(msg);
throw new ConnectorException(msg);
- } else if(null != username || !username.equals("")) {
+ } else if(null != username && !username.equals("")) {
singleIdentity = true;
this.password = password;
this.username = username;
- }
- if (singleIdentity) {
- this.connectorIdentityFactory = new SingleIdentityFactory();
} else {
- this.connectorIdentityFactory = new UserIdentityFactory();
+ this.setAdminConnectionsAllowed(false);
+ this.setUseCredentialMap(true);
}
String capabilitiesClass =
env.getProperties().getProperty("ConnectorCapabilities",
SalesforceCapabilities.class.getName());
@@ -167,12 +160,6 @@
public ConnectorState getState() {
return state;
}
-
- @Override
- public ConnectorIdentity createIdentity(ExecutionContext context)
- throws ConnectorException {
- return this.connectorIdentityFactory.createIdentity(context);
- }
@Override
public ConnectorCapabilities getCapabilities() {
Modified:
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/UpdateExecutionImpl.java
===================================================================
---
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/UpdateExecutionImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/UpdateExecutionImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -51,8 +51,7 @@
List<MessageElement> elements = new ArrayList<MessageElement>();
for (ISetClause clause : update.getChanges().getClauses()) {
IElement element = clause.getSymbol();
- Element column = (Element) parent.getMetadata().getObject(
- element.getMetadataID());
+ Element column = element.getMetadataObject();
String val = ((ILiteral) clause.getValue())
.toString();
MessageElement messageElem = new MessageElement(new QName(
Modified:
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/CriteriaVisitor.java
===================================================================
---
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/CriteriaVisitor.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/CriteriaVisitor.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -40,7 +40,6 @@
import com.metamatrix.connector.language.ICompareCriteria.Operator;
import com.metamatrix.connector.metadata.runtime.Element;
import com.metamatrix.connector.metadata.runtime.Group;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
import com.metamatrix.connector.salesforce.Messages;
import com.metamatrix.connector.salesforce.Util;
@@ -158,13 +157,13 @@
}
private void generateMultiSelect(IFunction func, String funcName) throws
ConnectorException {
- IExpression[] expressions = func.getParameters();
+ List<IExpression> expressions = func.getParameters();
validateFunction(expressions);
- IExpression columnExpression = expressions[0];
- Element column =
(Element)metadata.getObject(((IElement)columnExpression).getMetadataID());
+ IExpression columnExpression = expressions.get(0);
+ Element column = ((IElement)columnExpression).getMetadataObject();
StringBuffer criterion = new StringBuffer();
criterion.append(column.getNameInSource()).append(SPACE).append(funcName);
- addFunctionParams((ILiteral)expressions[1], criterion);
+ addFunctionParams((ILiteral)expressions.get(1), criterion);
criteriaList.add(criterion.toString());
}
@@ -195,15 +194,14 @@
criteriaList.add(result.toString());
}
- private void validateFunction(IExpression[] expressions) throws ConnectorException {
- if(expressions.length != 2) {
+ private void validateFunction(List<IExpression> expressions) throws
ConnectorException {
+ if(expressions.size() != 2) {
throw new
ConnectorException(Messages.getString("CriteriaVisitor.invalid.arg.count"));
}
- IExpression columnExpression = expressions[0];
- if(!(expressions[0] instanceof IElement)) {
+ if(!(expressions.get(0) instanceof IElement)) {
throw new
ConnectorException(Messages.getString("CriteriaVisitor.function.not.column.arg"));
}
- if(!(expressions[1] instanceof ILiteral)) {
+ if(!(expressions.get(1) instanceof ILiteral)) {
throw new
ConnectorException(Messages.getString("CriteriaVisitor.function.not.literal.arg"));
}
}
@@ -233,7 +231,7 @@
parseFunction((IFunction)lExpr);
} else {
IElement left = (IElement) lExpr;
- Element column = (Element) metadata.getObject(left.getMetadataID());
+ Element column = left.getMetadataObject();
String columnName = column.getNameInSource();
StringBuffer queryString = new StringBuffer();
queryString.append(columnName).append(SPACE);
@@ -268,8 +266,7 @@
queryString.append(' ');
queryString.append("IN");
queryString.append('(');
- Element column = (Element) metadata.getObject(
- ((IElement)criteria.getLeftExpression()).getMetadataID());
+ Element column = ((IElement)criteria.getLeftExpression()).getMetadataObject();
boolean timeColumn = isTimeColumn(column);
boolean first = true;
Iterator iter = criteria.getRightExpressions().iterator();
@@ -299,8 +296,7 @@
String result;
if (expr instanceof IElement) {
IElement element = (IElement) expr;
- Element element2 = (Element) metadata.getObject(element
- .getMetadataID());
+ Element element2 = element.getMetadataObject();
result = element2.getNameInSource();
} else if (expr instanceof ILiteral) {
ILiteral literal = (ILiteral) expr;
@@ -314,8 +310,7 @@
}
protected void loadColumnMetadata(IGroup group) throws ConnectorException {
- MetadataID id = group.getMetadataID();
- table = (Group) metadata.getObject(id);
+ table = group.getMetadataObject();
String supportsQuery = (String) table.getProperties().get(
"Supports Query");
if (!Util.convertStringToBoolean(supportsQuery)) {
@@ -325,13 +320,10 @@
+ Messages
.getString("CriteriaVisitor.query.not.supported"));
}
- List<MetadataID> columnIds = table.getMetadataID().getChildIDs();
- Iterator<MetadataID> iter = columnIds.iterator();
- while (iter.hasNext()) {
- MetadataID columnID = (MetadataID) iter.next();
- Element element = (Element) metadata.getObject(columnID);
- String name = columnID.getParentID().getName() + '.'
- + columnID.getName();
+ List<Element> columnIds = table.getChildren();
+ for (Element element : columnIds) {
+ String name = table.getName() + '.'
+ + element.getName();
columnElementsByName.put(name, element);
}
}
@@ -340,9 +332,7 @@
throws ConnectorException {
boolean result = false;
if (expression instanceof IElement) {
- MetadataID elementID = (MetadataID) ((IElement) expression)
- .getMetadataID();
- Element element = (Element) metadata.getObject(elementID);
+ Element element = ((IElement) expression).getMetadataObject();
String nameInSource = element.getNameInSource();
if (nameInSource.equalsIgnoreCase("id")) {
result = true;
@@ -355,9 +345,7 @@
throws ConnectorException {
boolean result = false;
if (expression instanceof IElement) {
- MetadataID elementID = (MetadataID) ((IElement) expression)
- .getMetadataID();
- Element element = (Element) metadata.getObject(elementID);
+ Element element = ((IElement) expression).getMetadataObject();
String nativeType = element.getNativeType();
if (nativeType.equalsIgnoreCase("multipicklist") ||
nativeType.equalsIgnoreCase("restrictedmultiselectpicklist")) {
Modified:
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/InsertVisitor.java
===================================================================
---
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/InsertVisitor.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/InsertVisitor.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -59,7 +59,7 @@
for(int i = 0; i < columns.size(); i++) {
IElement element = columns.get(i);
- Element column = (Element)metadata.getObject(element.getMetadataID());
+ Element column = element.getMetadataObject();
Object value = values.get(i);
String val;
if(value instanceof ILiteral) {
Modified:
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/SelectVisitor.java
===================================================================
---
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/SelectVisitor.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-salesforce/src/main/java/com/metamatrix/connector/salesforce/execution/visitors/SelectVisitor.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -35,7 +35,6 @@
import com.metamatrix.connector.language.ISelect;
import com.metamatrix.connector.language.ISelectSymbol;
import com.metamatrix.connector.metadata.runtime.Element;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
import com.metamatrix.connector.salesforce.Messages;
import com.metamatrix.connector.salesforce.Util;
@@ -80,9 +79,7 @@
// get the name in source
IExpression expression = symbol.getExpression();
if (expression instanceof IElement) {
- MetadataID elementID = (MetadataID) ((IElement) expression)
- .getMetadataID();
- Element element = (Element) metadata.getObject(elementID);
+ Element element = ((IElement) expression).getMetadataObject();
selectSymbolIndexToElement.put(index, element);
selectSymbolNameToIndex .put(element.getNameInSource(), index);
String nameInSource = element.getNameInSource();
Modified:
trunk/connectors/connector-text/src/main/java/com/metamatrix/connector/text/TextConnector.java
===================================================================
---
trunk/connectors/connector-text/src/main/java/com/metamatrix/connector/text/TextConnector.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-text/src/main/java/com/metamatrix/connector/text/TextConnector.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -35,17 +35,17 @@
import java.util.Properties;
import com.metamatrix.connector.api.Connection;
-import com.metamatrix.connector.api.Connector;
import com.metamatrix.connector.api.ConnectorCapabilities;
import com.metamatrix.connector.api.ConnectorEnvironment;
import com.metamatrix.connector.api.ConnectorException;
import com.metamatrix.connector.api.ConnectorLogger;
import com.metamatrix.connector.api.ExecutionContext;
+import com.metamatrix.connector.basic.BasicConnector;
/**
* Implementation of text connector.
*/
-public class TextConnector implements Connector {
+public class TextConnector extends BasicConnector {
private ConnectorLogger logger;
private ConnectorEnvironment env;
Modified:
trunk/connectors/connector-text/src/main/java/com/metamatrix/connector/text/TextSynchExecution.java
===================================================================
---
trunk/connectors/connector-text/src/main/java/com/metamatrix/connector/text/TextSynchExecution.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-text/src/main/java/com/metamatrix/connector/text/TextSynchExecution.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -49,11 +49,9 @@
import com.metamatrix.connector.language.IFrom;
import com.metamatrix.connector.language.IGroup;
import com.metamatrix.connector.language.IQuery;
-import com.metamatrix.connector.language.ISelect;
import com.metamatrix.connector.language.ISelectSymbol;
import com.metamatrix.connector.metadata.runtime.Element;
import com.metamatrix.connector.metadata.runtime.Group;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
import com.metamatrix.core.util.StringUtil;
@@ -399,7 +397,7 @@
* attempt to create the request as we may need
* column names from the header row.
*/
- String groupName = group.getMetadataID().getFullName();
+ String groupName = group.getMetadataObject().getFullName();
Map metadataMap = metadataProps;
groupProps = (Properties) metadataMap.get(groupName.toUpperCase());
@@ -412,11 +410,11 @@
Object[] params = new Object[] { groupName, ex.getMessage() };
throw new ConnectorException(ex,
TextPlugin.Util.getString("TextSynchExecution.Unable_get_Reader", params));
//$NON-NLS-1$
}
- List elementIDs = group.getMetadataID().getChildIDs();
- numModeledColumns = elementIDs.size();
- int[] colWidthArray = new int[elementIDs.size()];
+ List<Element> elements = group.getMetadataObject().getChildren();
+ numModeledColumns = elements.size();
+ int[] colWidthArray = new int[elements.size()];
for (int i = 0; i < colWidthArray.length; i++) {
- Element element = (Element)rm.getObject((MetadataID)elementIDs.get(i));
+ Element element = elements.get(i);
colWidthArray[getColumn(element)] = element.getLength();
}
for (int i = 0; i < colWidthArray.length; i++) {
@@ -462,12 +460,10 @@
IFrom from = ((IQuery) cmd).getFrom();
List groups = from.getItems();
IGroup symbol = (IGroup) groups.get(0);
- Group group = (Group) rm.getObject(symbol.getMetadataID());
+ Group group = symbol.getMetadataObject();
-
+ String groupName = group.getFullName();
- String groupName = group.getMetadataID().getFullName();
-
Map metadataMap = (Map) response;
Properties connProps = (Properties)
metadataMap.get(TextPropertyNames.CONNECTOR_PROPERTIES);
@@ -607,8 +603,7 @@
*/
private Element getElementFromSymbol(ISelectSymbol symbol) throws ConnectorException
{
IElement expr = (IElement) symbol.getExpression();
- MetadataID elementID = expr.getMetadataID();
- return (Element) rm.getObject(elementID);
+ return expr.getMetadataObject();
}
/**
@@ -636,16 +631,16 @@
} catch(NumberFormatException e) {
// Name In Source was not numeric, so look for a column with a heading matching
Name In Source
if ( colStr == null ) {
- colStr = elem.getMetadataID().getName();
+ colStr = elem.getName();
}
if ( headerRow == null ) getCurrentReader();
if ( headerRow != null ) {
for ( int i = 0; i < headerRow.size(); i++ ) {
if ( colStr.compareToIgnoreCase((String)headerRow.get(i) )==0) return i;
}
- throw new
ConnectorException(TextPlugin.Util.getString("TextSynchExecution.Column_not_found_in_header_row",
new Object[] {colStr, elem.getMetadataID().getFullName() } )); //$NON-NLS-1$
+ throw new
ConnectorException(TextPlugin.Util.getString("TextSynchExecution.Column_not_found_in_header_row",
new Object[] {colStr, elem.getFullName() } )); //$NON-NLS-1$
}
- throw new
ConnectorException(TextPlugin.Util.getString("TextSynchExecution.Invalid_column_number",
new Object[] {colStr, elem.getMetadataID().getFullName() } ) ); //$NON-NLS-1$
+ throw new
ConnectorException(TextPlugin.Util.getString("TextSynchExecution.Invalid_column_number",
new Object[] {colStr, elem.getFullName() } ) ); //$NON-NLS-1$
}
}
Modified:
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xml/base/CriteriaDesc.java
===================================================================
---
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xml/base/CriteriaDesc.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xml/base/CriteriaDesc.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -138,7 +138,7 @@
} else if (findIsRequired(element)) {
throw new ConnectorException(
Messages.getString("CriteriaDesc.value.not.found.for.param") //$NON-NLS-1$
- + element.getMetadataID().getName());
+ + element.getName());
}
}
@@ -369,7 +369,7 @@
//Thsi should be much more bulletproof and more easily supported
private static ArrayList parseCriteriaToValues(Element element, IQuery query) throws
ConnectorException {
- String fullName = element.getMetadataID().getFullName().trim().toUpperCase();
+ String fullName = element.getFullName().trim().toUpperCase();
ArrayList parmPair = new ArrayList();
if (element.getSearchability() == Element.SEARCHABLE
|| element.getSearchability() == Element.SEARCHABLE_COMPARE) {
Modified:
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xml/base/LoggingConnector.java
===================================================================
---
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xml/base/LoggingConnector.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xml/base/LoggingConnector.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -25,6 +25,7 @@
import com.metamatrix.connector.api.ConnectorEnvironment;
import com.metamatrix.connector.api.ConnectorException;
import com.metamatrix.connector.api.ConnectorLogger;
+import com.metamatrix.connector.basic.BasicConnector;
import com.metamatrix.connector.xml.XMLConnectorState;
/**
@@ -33,7 +34,7 @@
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
-public abstract class LoggingConnector implements StatefulConnector {
+public abstract class LoggingConnector extends BasicConnector implements
StatefulConnector {
private static ConnectorLogger m_logger;
private ConnectorEnvironment m_environment;
Modified:
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xml/base/ParameterDescriptor.java
===================================================================
---
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xml/base/ParameterDescriptor.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xml/base/ParameterDescriptor.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -51,7 +51,7 @@
if(getElement().getNameInSource() != null) {
setColumnName(getElement().getNameInSource());
} else {
- setColumnName(getElement().getMetadataID().getName().trim());
+ setColumnName(getElement().getName().trim());
}
String nis = getElement().getNameInSource();
if (nis != null) {
Modified:
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xml/base/QueryAnalyzer.java
===================================================================
---
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xml/base/QueryAnalyzer.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xml/base/QueryAnalyzer.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -41,7 +41,6 @@
import com.metamatrix.connector.language.ISelectSymbol;
import com.metamatrix.connector.metadata.runtime.Element;
import com.metamatrix.connector.metadata.runtime.Group;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
import com.metamatrix.connector.xml.IQueryPreprocessor;
@@ -122,8 +121,7 @@
List fromItems = from.getItems();
//better be only one
IGroup group = (IGroup) fromItems.get(0);
- MetadataID id = group.getMetadataID();
- m_table = (Group) m_metadata.getObject(id);
+ m_table = (Group) group.getMetadataObject();
m_info.setTableXPath(m_table.getNameInSource());
}
@@ -149,9 +147,7 @@
if (expr instanceof ILiteral) {
xpath = new OutputXPathDesc((ILiteral) expr);
} else if (expr instanceof IElement) {
- MetadataID elementID = (MetadataID) ((IElement) expr)
- .getMetadataID();
- Element element = (Element) m_metadata.getObject(elementID);
+ Element element = ((IElement)expr).getMetadataObject();
xpath = new OutputXPathDesc(element);
}
if (xpath != null) {
@@ -175,19 +171,13 @@
// containing names, element (metadata), and equivilence value, or all
// set values
- MetadataID groupID = m_table.getMetadataID();
- List elementList = groupID.getChildIDs();
-
ArrayList params = new ArrayList();
ArrayList crits = new ArrayList();
ArrayList responses = new ArrayList();
ArrayList locations = new ArrayList();
//Iterate through each field in the table
- Iterator elementListIterator = elementList.iterator();
- while (elementListIterator.hasNext()) {
- MetadataID elementID = (MetadataID) elementListIterator.next();
- Element element = (Element) m_metadata.getObject(elementID);
+ for (Element element : m_table.getChildren()) {
CriteriaDesc criteria = CriteriaDesc.getCriteriaDescForColumn(
element, m_query);
if (criteria != null) {
Modified:
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xmlsource/XMLSourceConnector.java
===================================================================
---
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xmlsource/XMLSourceConnector.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xmlsource/XMLSourceConnector.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -29,13 +29,14 @@
import com.metamatrix.connector.api.ConnectorException;
import com.metamatrix.connector.api.ExecutionContext;
import com.metamatrix.connector.api.ConnectorAnnotations.ConnectionPooling;
+import com.metamatrix.connector.basic.BasicConnector;
/**
* XML Source connector, will give provide a XML document as source to
* Metamatrix engine.
*/
@ConnectionPooling
-public class XMLSourceConnector implements Connector {
+public class XMLSourceConnector extends BasicConnector {
private ConnectorEnvironment env;
private XMLConnectionFacory connFactory;
Modified:
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xmlsource/file/FileExecution.java
===================================================================
---
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xmlsource/file/FileExecution.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xmlsource/file/FileExecution.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -76,7 +76,7 @@
public void execute() throws ConnectorException {
// look for the name of the file to return in the metadata, "Name in
Source" property
- MetadataObject metaObject = this.metadata.getObject(procedure.getMetadataID());
+ MetadataObject metaObject = procedure.getMetadataObject();
String fileName = metaObject.getNameInSource();
// if the source procedure name is not supplied then throw an exception
Modified:
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xmlsource/soap/SoapExecution.java
===================================================================
---
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xmlsource/soap/SoapExecution.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-xml/src/main/java/com/metamatrix/connector/xmlsource/soap/SoapExecution.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -74,7 +74,7 @@
ArrayList argsList = new ArrayList();
// look for the name of the Service to return in the metadata, "Name in
Source" property
- MetadataObject metaObject = this.metadata.getObject(procedure.getMetadataID());
+ MetadataObject metaObject = procedure.getMetadataObject();
String sourceProcedureName = metaObject.getNameInSource();
// if the source procedure name is not supplied then throw an exception
Deleted:
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/MockCachingConnector.java
===================================================================
---
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/MockCachingConnector.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/MockCachingConnector.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -1,95 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-
-
-package com.metamatrix.connector.xml;
-
-import com.metamatrix.connector.api.Connection;
-import com.metamatrix.connector.api.ConnectorCapabilities;
-import com.metamatrix.connector.api.ConnectorEnvironment;
-import com.metamatrix.connector.api.ConnectorException;
-import com.metamatrix.connector.api.ConnectorLogger;
-import com.metamatrix.connector.api.ExecutionContext;
-import com.metamatrix.connector.xml.cache.IDocumentCache;
-import com.metamatrix.connector.xml.cache.MockDocumentCache;
-
-public class MockCachingConnector implements CachingConnector {
-
- IDocumentCache mockCache = new MockDocumentCache();
-
- public void createCacheObjectRecord(String requestID, String partID, String executionID,
String sourceRequestID, String cacheKey) throws ConnectorException {
- // TODO Auto-generated method stub
- }
-
- public void deleteCacheItems(String requestIdentifier, String partIdentifier, String
executionIdentifier) {
- // TODO Auto-generated method stub
- }
-
- public IDocumentCache getCache() {
- return mockCache;
- }
-
- public IDocumentCache getStatementCache() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public ConnectorEnvironment getEnvironment() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public ConnectorLogger getLogger() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public XMLConnectorState getState() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public Connection getConnection(ExecutionContext arg0) throws ConnectorException {
- // TODO Auto-generated method stub
- return null;
- }
-
- public void stop() {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public ConnectorCapabilities getCapabilities() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public void start(ConnectorEnvironment environment)
- throws ConnectorException {
- // TODO Auto-generated method stub
-
- }
-
-
-}
Modified:
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/base/TestCriteriaDesc.java
===================================================================
---
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/base/TestCriteriaDesc.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/base/TestCriteriaDesc.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -43,7 +43,6 @@
import com.metamatrix.connector.language.LanguageUtil;
import com.metamatrix.connector.metadata.runtime.Element;
import com.metamatrix.connector.metadata.runtime.Group;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
/**
@@ -77,85 +76,56 @@
System.setProperty("metamatrix.config.none", "true");
}
- public void testGetCriteriaDescForColumn() {
+ public void testGetCriteriaDescForColumn() throws Exception {
//case 1: values provided
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select RequiredDefaultedParam from CriteriaDescTable where
RequiredDefaultedParam in ('foo')";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertNotNull("CriteriaDesc is null", desc);
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
-
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select RequiredDefaultedParam from CriteriaDescTable where
RequiredDefaultedParam in ('foo')";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertNotNull("CriteriaDesc is null", desc);
}
- public void testGetCriteriaDescForColumnDefaultedValue() {
+ public void testGetCriteriaDescForColumnDefaultedValue() throws Exception {
//case 2: param, required, defaulted
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select RequiredDefaultedParam from
CriteriaDescTable";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertNotNull("CriteriaDesc is null", desc);
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select RequiredDefaultedParam from CriteriaDescTable";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertNotNull("CriteriaDesc is null", desc);
}
- public void testGetCriteriaDescForColumnNoCriteria() {
+ public void testGetCriteriaDescForColumnNoCriteria() throws Exception {
//case 3: param, not required, not defaulted, not allowed empty
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select OptionalNotAllowedEmptyParam from
CriteriaDescTable";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertNull("CriteriaDesc is not null", desc);
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select OptionalNotAllowedEmptyParam from
CriteriaDescTable";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertNull("CriteriaDesc is not null", desc);
}
- public void testGetCriteriaDescForColumnAllowEmpty() {
+ public void testGetCriteriaDescForColumnAllowEmpty() throws Exception {
//case 4: param, not required, not defaulted, allowed empty
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select OptionalAllowedEmptyParam from
CriteriaDescTable";
- final int colLocation = 0;
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertNotNull("CriteriaDesc is null", desc);
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select OptionalAllowedEmptyParam from CriteriaDescTable";
+ final int colLocation = 0;
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertNotNull("CriteriaDesc is null", desc);
}
public void testGetCriteriaDescForColumnError() {
@@ -167,98 +137,66 @@
final int colLocation = 0;
ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
+ Element elem = ((IElement) expr).getMetadataObject();
CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
fail("exception not thrown");
} catch (ConnectorException ce) {
- assertNotNull(ce);
}
}
- public void testGetCriteriaDescForColumnNotParam() {
+ public void testGetCriteriaDescForColumnNotParam() throws Exception {
//case 6: not a param
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select OutputColumn from CriteriaDescTable";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertNull("CriteriaDesc is not null", desc);
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select OutputColumn from CriteriaDescTable";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertNull("CriteriaDesc is not null", desc);
}
- public void testGetCriteriaDescForColumnCompare() {
+ public void testGetCriteriaDescForColumnCompare() throws Exception {
//case 7: compare criteria
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select RequiredDefaultedParam from CriteriaDescTable where
RequiredDefaultedParam = 'foo'";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertNotNull("CriteriaDesc is null", desc);
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
-
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select RequiredDefaultedParam from CriteriaDescTable where
RequiredDefaultedParam = 'foo'";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertNotNull("CriteriaDesc is null", desc);
}
- public void testGetCriteriaDescForColumnMultiElement() {
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select MultiElementParam from CriteriaDescTable where
MultiElementParam in ('foo','bar')";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- String multiplicityStr = elem.getProperties().getProperty(
- CriteriaDesc.PARM_HAS_MULTIPLE_VALUES_COLUMN_PROPERTY_NAME);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertNotNull("CriteriaDesc is null", desc);
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ public void testGetCriteriaDescForColumnMultiElement() throws Exception {
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select MultiElementParam from CriteriaDescTable where
MultiElementParam in ('foo','bar')";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ String multiplicityStr = elem.getProperties().getProperty(
+ CriteriaDesc.PARM_HAS_MULTIPLE_VALUES_COLUMN_PROPERTY_NAME);
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertNotNull("CriteriaDesc is null", desc);
}
- public void testGetCriteriaDescForColumnDelimited() {
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select DelimitedParam from CriteriaDescTable where
DelimitedParam in ('foo','bar')";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- String multiplicityStr = elem.getProperties().getProperty(
- CriteriaDesc.PARM_HAS_MULTIPLE_VALUES_COLUMN_PROPERTY_NAME);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertNotNull("CriteriaDesc is null", desc);
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ public void testGetCriteriaDescForColumnDelimited() throws Exception {
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select DelimitedParam from CriteriaDescTable where
DelimitedParam in ('foo','bar')";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ String multiplicityStr = elem.getProperties().getProperty(
+ CriteriaDesc.PARM_HAS_MULTIPLE_VALUES_COLUMN_PROPERTY_NAME);
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertNotNull("CriteriaDesc is null", desc);
}
public void testGetCriteriaDescForColumnLikeSearchable() {
@@ -269,37 +207,26 @@
final int colLocation = 0;
ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
+ Element elem = ((IElement) expr).getMetadataObject();
String multiplicityStr = elem.getProperties().getProperty(
CriteriaDesc.PARM_HAS_MULTIPLE_VALUES_COLUMN_PROPERTY_NAME);
CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
fail("should not be able to handle default value");
} catch (ConnectorException ce) {
- assertTrue(true);
}
}
- public void testGetCriteriaDescForColumnUnlikeSearchable() {
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select UnlikeSearchableParam from CriteriaDescTable where
UnlikeSearchableParam in ('foo')";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- String multiplicityStr = elem.getProperties().getProperty(
- CriteriaDesc.PARM_HAS_MULTIPLE_VALUES_COLUMN_PROPERTY_NAME);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertNotNull("could not create CriteriaDesc", desc);
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ public void testGetCriteriaDescForColumnUnlikeSearchable() throws Exception {
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select UnlikeSearchableParam from CriteriaDescTable where
UnlikeSearchableParam in ('foo')";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ String multiplicityStr = elem.getProperties().getProperty(
+ CriteriaDesc.PARM_HAS_MULTIPLE_VALUES_COLUMN_PROPERTY_NAME);
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
}
public void testGetCriteriaDescForColumnUnsearchable() {
@@ -310,235 +237,151 @@
final int colLocation = 0;
ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
+ Element elem = ((IElement) expr).getMetadataObject();
String multiplicityStr = elem.getProperties().getProperty(
CriteriaDesc.PARM_HAS_MULTIPLE_VALUES_COLUMN_PROPERTY_NAME);
CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
fail("should not be able to handle default value");
} catch (ConnectorException ce) {
- assertTrue(true);
}
}
- public void testGetCriteriaDescForColumnLike() {
+ public void testGetCriteriaDescForColumnLike() throws Exception {
//case 1: values provided
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select RequiredDefaultedParam from CriteriaDescTable where
RequiredDefaultedParam like 'foo'";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertNotNull("CriteriaDesc is null", desc);
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
-
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select RequiredDefaultedParam from CriteriaDescTable where
RequiredDefaultedParam like 'foo'";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertNotNull("CriteriaDesc is null", desc);
}
- public void testGetCriteriaDescForColumnNotEquals() {
+ public void testGetCriteriaDescForColumnNotEquals() throws Exception {
//case 1: values provided
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select RequiredDefaultedParam from CriteriaDescTable where
RequiredDefaultedParam != 'foo'";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertNotNull("CriteriaDesc is null", desc);
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
-
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select RequiredDefaultedParam from CriteriaDescTable where
RequiredDefaultedParam != 'foo'";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertNotNull("CriteriaDesc is null", desc);
}
- public void testGetCriteriaDescForColumnLiteral() {
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select RequiredDefaultedParam from CriteriaDescTable where
concat(RequiredDefaultedParam, 'bar') in('foo')";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertNotNull("CriteriaDesc is null", desc);
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
-
+ public void testGetCriteriaDescForColumnLiteral() throws Exception {
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select RequiredDefaultedParam from CriteriaDescTable where
concat(RequiredDefaultedParam, 'bar') in('foo')";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertNotNull("CriteriaDesc is null", desc);
}
- public void testGetCriteriaDescForColumnNameMatchFailure() {
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select RequiredDefaultedParam from CriteriaDescTable where
AttributeParam in('foo')";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertNotNull("CriteriaDesc is null", desc);
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
-
+ public void testGetCriteriaDescForColumnNameMatchFailure() throws Exception {
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select RequiredDefaultedParam from CriteriaDescTable where
AttributeParam in('foo')";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertNotNull("CriteriaDesc is null", desc);
}
- public void testGetCriteriaDescForColumnLeftLiteral() {
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select RequiredDefaultedParam from CriteriaDescTable "
- + "where concat('bar', 'foo') = concat('bar',
RequiredDefaultedParam)";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertNotNull("CriteriaDesc is null", desc);
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ public void testGetCriteriaDescForColumnLeftLiteral() throws Exception {
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select RequiredDefaultedParam from CriteriaDescTable "
+ + "where concat('bar', 'foo') = concat('bar',
RequiredDefaultedParam)";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertNotNull("CriteriaDesc is null", desc);
}
- public void testGetCriteriaDescForColumnTwoElements() {
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select RequiredDefaultedParam from CriteriaDescTable where
OutputColumn = RequiredDefaultedParam";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertNotNull("CriteriaDesc is null", desc);
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ public void testGetCriteriaDescForColumnTwoElements() throws Exception {
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select RequiredDefaultedParam from CriteriaDescTable where
OutputColumn = RequiredDefaultedParam";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertNotNull("CriteriaDesc is null", desc);
}
- public void testGetCriteriaDescForColumnLeftElementEqualsLiteral() {
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select RequiredDefaultedParam from CriteriaDescTable where
AttributeParam = 'foo'";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertNotNull("CriteriaDesc is null", desc);
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ public void testGetCriteriaDescForColumnLeftElementEqualsLiteral() throws Exception {
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select RequiredDefaultedParam from CriteriaDescTable where
AttributeParam = 'foo'";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertNotNull("CriteriaDesc is null", desc);
}
- public void testGetCriteriaDescForColumnLeftElementEqualsNonLiteral() {
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select RequiredDefaultedParam from CriteriaDescTable
where"
- + " RequiredDefaultedParam = concat('foo', OutputColumn)";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertNotNull("CriteriaDesc is null", desc);
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ public void testGetCriteriaDescForColumnLeftElementEqualsNonLiteral() throws
Exception {
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select RequiredDefaultedParam from CriteriaDescTable
where"
+ + " RequiredDefaultedParam = concat('foo', OutputColumn)";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertNotNull("CriteriaDesc is null", desc);
}
- public void testGetInputXPathNoXpath() {
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select BadNoInputXpath from CriteriaDescTable where
BadNoInputXpath in ('foo')";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertEquals(desc.getColumnName(), desc.getInputXpath());
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ public void testGetInputXPathNoXpath() throws Exception {
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select BadNoInputXpath from CriteriaDescTable where
BadNoInputXpath in ('foo')";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertEquals(desc.getColumnName(), desc.getInputXpath());
}
- public void testGetInputXPathEmptyXpath() {
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select BadEmptyInputXPath from CriteriaDescTable where
BadEmptyInputXPath in ('foo')";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertEquals(desc.getColumnName(), desc.getInputXpath());
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ public void testGetInputXPathEmptyXpath() throws Exception {
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select BadEmptyInputXPath from CriteriaDescTable where
BadEmptyInputXPath in ('foo')";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertEquals(desc.getColumnName(), desc.getInputXpath());
}
- public void testGetDataAttributeNameEmptyName() {
- try {
- assertNotNull("vdb path is null", vdbPath);
- String query = "select BadNoDataAttributeName from CriteriaDescTable where
BadNoDataAttributeName in ('foo')";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertEquals("", desc.getDataAttributeName());
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ public void testGetDataAttributeNameEmptyName() throws Exception {
+ assertNotNull("vdb path is null", vdbPath);
+ String query = "select BadNoDataAttributeName from CriteriaDescTable where
BadNoDataAttributeName in ('foo')";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertEquals("", desc.getDataAttributeName());
}
@@ -697,98 +540,65 @@
}
}
- public void testGetCurrentIndexValueEnumerated() {
+ public void testGetCurrentIndexValueEnumerated() throws Exception {
String query = "select DelimitedParam from CriteriaDescTable where
DelimitedParam in ('foo', 'bar')";
IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
final int colLocation = 0;
- try {
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata = ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertEquals("There should be two values" , 2,
desc.getNumberOfValues());
- assertEquals("foo", desc.getCurrentIndexValue());
- desc.incrementIndex();
- assertEquals("bar", desc.getCurrentIndexValue());
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertEquals("There should be two values" , 2,
desc.getNumberOfValues());
+ assertEquals("foo", desc.getCurrentIndexValue());
+ desc.incrementIndex();
+ assertEquals("bar", desc.getCurrentIndexValue());
}
- public void testIncrementIndexEnumerated() {
+ public void testIncrementIndexEnumerated() throws Exception {
String query = "select DelimitedParam from CriteriaDescTable where
DelimitedParam in ('foo', 'bar')";
IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
final int colLocation = 0;
- try {
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata = ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
- assertTrue("We should be able to increment this CriteriaDesc",
desc.incrementIndex());
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ RuntimeMetadata metadata = ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
+ Element elem = ((IElement) expr).getMetadataObject();
+ CriteriaDesc desc = CriteriaDesc.getCriteriaDescForColumn(elem, iquery);
+ assertTrue("We should be able to increment this CriteriaDesc",
desc.incrementIndex());
}
- public void testGetCurrentIndexValueNoValue() {
- try {
- final String query = "select OptionalAllowedEmptyParam from
CriteriaDescTable";
- Element elem = getElement(query);
- ArrayList list = new ArrayList();
- CriteriaDesc desc = new CriteriaDesc(elem, list);
- assertEquals("", desc.getCurrentIndexValue());
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ public void testGetCurrentIndexValueNoValue() throws Exception {
+ final String query = "select OptionalAllowedEmptyParam from
CriteriaDescTable";
+ Element elem = getElement(query);
+ ArrayList list = new ArrayList();
+ CriteriaDesc desc = new CriteriaDesc(elem, list);
+ assertEquals("", desc.getCurrentIndexValue());
}
- public void testGetCurrentIndexValueNoValueNotEmpty() {
- try {
- final String query = "select OptionalNotAllowedEmptyParam from
CriteriaDescTable";
- Element elem = getElement(query);
- ArrayList list = new ArrayList();
- CriteriaDesc desc = new CriteriaDesc(elem, list);
- assertNull(desc.getCurrentIndexValue());
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ public void testGetCurrentIndexValueNoValueNotEmpty() throws Exception {
+ final String query = "select OptionalNotAllowedEmptyParam from
CriteriaDescTable";
+ Element elem = getElement(query);
+ ArrayList list = new ArrayList();
+ CriteriaDesc desc = new CriteriaDesc(elem, list);
+ assertNull(desc.getCurrentIndexValue());
}
- public void testIncrementIndex() {
- try {
- final String value2 = "value2";
- String query = "select MultiCol from MultiTable where MultiCol in
('" + VALUE + "', '" + value2 + "')";
- Element elem = getElement(query);
- ArrayList list = new ArrayList();
- list.add(VALUE);
- list.add(value2);
- CriteriaDesc desc = new CriteriaDesc(elem, list);
- assertEquals(VALUE, desc.getCurrentIndexValue());
- assertTrue("index increment failed", desc.incrementIndex());
- assertEquals(value2, desc.getCurrentIndexValue());
- assertFalse("index went beyond number of values",
desc.incrementIndex());
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ public void testIncrementIndex() throws Exception {
+ final String value2 = "value2";
+ String query = "select MultiCol from MultiTable where MultiCol in
('" + VALUE + "', '" + value2 + "')";
+ Element elem = getElement(query);
+ ArrayList list = new ArrayList();
+ list.add(VALUE);
+ list.add(value2);
+ CriteriaDesc desc = new CriteriaDesc(elem, list);
+ assertEquals(VALUE, desc.getCurrentIndexValue());
+ assertTrue("index increment failed", desc.incrementIndex());
+ assertEquals(value2, desc.getCurrentIndexValue());
+ assertFalse("index went beyond number of values",
desc.incrementIndex());
}
- public void testResetIndex() {
- try {
- CriteriaDesc desc = createCriteriaDesc(QUERY);
- desc.resetIndex();
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ public void testResetIndex() throws Exception {
+ CriteriaDesc desc = createCriteriaDesc(QUERY);
+ desc.resetIndex();
}
public void testNameMatch() {
@@ -882,26 +692,11 @@
private Element getElement(String query, int colLocation)
throws ConnectorException {
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
IExpression expr = symbol.getExpression();
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
+ Element elem = ((IElement) expr).getMetadataObject();
return elem;
}
- private Group getTable(String query) throws ConnectorException {
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- ISelect select = iquery.getSelect();
- List elems = select.getSelectSymbols();
- IFrom from = iquery.getFrom();
- List fromItems = from.getItems();
- //better be only one
- IGroup group = (IGroup) fromItems.get(0);
- MetadataID id = group.getMetadataID();
- return (Group) metadata.getObject(id);
- }
-
}
Modified:
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/base/TestOutputXPathDesc.java
===================================================================
---
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/base/TestOutputXPathDesc.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/base/TestOutputXPathDesc.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -37,8 +37,6 @@
import com.metamatrix.connector.language.ISelectSymbol;
import com.metamatrix.connector.language.LanguageUtil;
import com.metamatrix.connector.metadata.runtime.Element;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
-import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
/**
* created by JChoate on Jun 27, 2005
@@ -74,71 +72,50 @@
/*
* Class under test for void OutputXPathDesc(Element)
*/
- public void testOutputXPathDescElement() {
-
+ public void testOutputXPathDescElement() throws Exception {
IQuery query = ProxyObjectFactory.getDefaultIQuery(vdbPath, QUERY);
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
ISelect select = query.getSelect();
List symbols = select.getSelectSymbols();
ISelectSymbol selectSymbol = (ISelectSymbol) symbols.get(0);
IExpression expr = selectSymbol.getExpression();
- Element element = null;
- try {
- if (expr instanceof IElement) {
- MetadataID elementID = ((IElement) expr).getMetadataID();
- element = (Element) metadata.getObject(elementID);
- } else {
- fail("select symbols is not an element");
- }
- OutputXPathDesc desc = new OutputXPathDesc(element);
- assertNull(desc.getCurrentValue());
- assertNotNull(desc.getDataType());;
- } catch (ConnectorException ex) {
- ex.printStackTrace();
- fail(ex.getMessage());
- }
-
+ assertTrue(expr instanceof IElement);
+ Element element = ((IElement) expr).getMetadataObject();
+ OutputXPathDesc desc = new OutputXPathDesc(element);
+ assertNull(desc.getCurrentValue());
+ assertNotNull(desc.getDataType());;
}
- public void testOutputXPathDescParam() {
- try {
- String query = "select RequiredDefaultedParam from CriteriaDescTable where
RequiredDefaultedParam in ('foo')";
- IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
- final int colLocation = 0;
- ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
- IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- OutputXPathDesc desc = new OutputXPathDesc(elem);
- assertNotNull("OutputXPathDesc is null", desc);
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ public void testOutputXPathDescParam() throws Exception {
+ String query = "select RequiredDefaultedParam from CriteriaDescTable where
RequiredDefaultedParam in ('foo')";
+ IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
+ final int colLocation = 0;
+ ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
+ IExpression expr = symbol.getExpression();
+ assertTrue(expr instanceof IElement);
+ Element element = ((IElement) expr).getMetadataObject();
+ OutputXPathDesc desc = new OutputXPathDesc(element);
+ assertNotNull("OutputXPathDesc is null", desc);
}
- public void testOutputXPathDescNoXPath() {
+ public void testOutputXPathDescNoXPath() throws Exception {
try {
String query = "select OutputColumnNoXPath from CriteriaDescTable";
IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
final int colLocation = 0;
ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
IExpression expr = symbol.getExpression();
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
- MetadataID elementID = ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
- OutputXPathDesc desc = new OutputXPathDesc(elem);
+ assertTrue(expr instanceof IElement);
+ Element element = ((IElement) expr).getMetadataObject();
+ OutputXPathDesc desc = new OutputXPathDesc(element);
fail("should not be able to create OuputXPathDesc with no XPath");
} catch (ConnectorException ce) {
- assertNotNull(ce);
}
}
/*
* Class under test for void OutputXPathDesc(ILiteral)
*/
- public void testOutputXPathDescILiteral() {
+ public void testOutputXPathDescILiteral() throws Exception {
String strLiteral = "MetaMatrix";
String strQuery = "Select Company_id from Company where Company_id =
'" + strLiteral + "'";
IQuery query = ProxyObjectFactory.getDefaultIQuery(vdbPath, strQuery);
@@ -146,18 +123,13 @@
List criteriaList = LanguageUtil.separateCriteriaByAnd(crits);
ICompareCriteria compCriteria = (ICompareCriteria) criteriaList.get(0);
ILiteral literal = (ILiteral) compCriteria.getRightExpression();
- try {
- OutputXPathDesc desc = new OutputXPathDesc(literal);
- assertNotNull(desc);
- assertEquals(strLiteral, desc.getCurrentValue().toString());
- assertEquals(strLiteral.getClass(), desc.getDataType());
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ OutputXPathDesc desc = new OutputXPathDesc(literal);
+ assertNotNull(desc);
+ assertEquals(strLiteral, desc.getCurrentValue().toString());
+ assertEquals(strLiteral.getClass(), desc.getDataType());
}
- public void testOutputXPathDescILiteralNullValue() {
+ public void testOutputXPathDescILiteralNullValue() throws Exception {
String strLiteral = "MetaMatrix";
String strQuery = "Select Company_id from Company where Company_id =
'" + strLiteral + "'";
IQuery query = ProxyObjectFactory.getDefaultIQuery(vdbPath, strQuery);
@@ -166,64 +138,37 @@
ICompareCriteria compCriteria = (ICompareCriteria) criteriaList.get(0);
ILiteral literal = (ILiteral) compCriteria.getRightExpression();
literal.setValue(null);
- try {
- OutputXPathDesc desc = new OutputXPathDesc(literal);
- assertNotNull(desc);
- assertNull(desc.getCurrentValue());
- assertEquals(strLiteral.getClass(), desc.getDataType());
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ OutputXPathDesc desc = new OutputXPathDesc(literal);
+ assertNotNull(desc);
+ assertNull(desc.getCurrentValue());
+ assertEquals(strLiteral.getClass(), desc.getDataType());
}
- public void testSetAndGetCurrentValue() {
+ public void testSetAndGetCurrentValue() throws Exception {
IQuery query = ProxyObjectFactory.getDefaultIQuery(vdbPath, QUERY);
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
ISelect select = query.getSelect();
List symbols = select.getSelectSymbols();
ISelectSymbol selectSymbol = (ISelectSymbol) symbols.get(0);
IExpression expr = selectSymbol.getExpression();
- Element element = null;
- try {
- if (expr instanceof IElement) {
- MetadataID elementID = ((IElement) expr).getMetadataID();
- element = (Element) metadata.getObject(elementID);
- } else {
- fail("select symbols is not an element");
- }
- OutputXPathDesc desc = new OutputXPathDesc(element);
- String myVal = "myValue";
- desc.setCurrentValue(myVal);
- assertEquals(myVal, desc.getCurrentValue());
- } catch (ConnectorException ex) {
- ex.printStackTrace();
- fail(ex.getMessage());
- }
+ assertTrue(expr instanceof IElement);
+ Element element = ((IElement) expr).getMetadataObject();
+ OutputXPathDesc desc = new OutputXPathDesc(element);
+ String myVal = "myValue";
+ desc.setCurrentValue(myVal);
+ assertEquals(myVal, desc.getCurrentValue());
}
- public void testGetDataType() {
+ public void testGetDataType() throws Exception {
IQuery query = ProxyObjectFactory.getDefaultIQuery(vdbPath, QUERY);
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
ISelect select = query.getSelect();
List symbols = select.getSelectSymbols();
ISelectSymbol selectSymbol = (ISelectSymbol) symbols.get(0);
IExpression expr = selectSymbol.getExpression();
- Element element = null;
- try {
- if (expr instanceof IElement) {
- MetadataID elementID = ((IElement) expr).getMetadataID();
- element = (Element) metadata.getObject(elementID);
- } else {
- fail("select symbols is not an element");
- }
- OutputXPathDesc desc = new OutputXPathDesc(element);
- assertNotNull(desc.getDataType());
- assertEquals(String.class, desc.getDataType());
- } catch (ConnectorException ex) {
- ex.printStackTrace();
- fail(ex.getMessage());
- }
+ assertTrue(expr instanceof IElement);
+ Element element = ((IElement) expr).getMetadataObject();
+ OutputXPathDesc desc = new OutputXPathDesc(element);
+ assertNotNull(desc.getDataType());
+ assertEquals(String.class, desc.getDataType());
}
}
Modified:
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/base/TestParameterDescriptor.java
===================================================================
---
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/base/TestParameterDescriptor.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/base/TestParameterDescriptor.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -33,8 +33,6 @@
import com.metamatrix.connector.language.ISelect;
import com.metamatrix.connector.language.ISelectSymbol;
import com.metamatrix.connector.metadata.runtime.Element;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
-import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
/**
* created by JChoate on Jun 27, 2005
@@ -70,76 +68,43 @@
/*
* Class under test for void ParameterDescriptor(Element)
*/
- public void testParameterDescriptorElement() {
+ public void testParameterDescriptorElement() throws Exception {
IQuery query = ProxyObjectFactory.getDefaultIQuery(vdbPath, QUERY);
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
ISelect select = query.getSelect();
List symbols = select.getSelectSymbols();
ISelectSymbol selectSymbol = (ISelectSymbol) symbols.get(0);
IExpression expr = selectSymbol.getExpression();
- Element element = null;
- try {
- if (expr instanceof IElement) {
- MetadataID elementID = ((IElement) expr).getMetadataID();
- element = (Element) metadata.getObject(elementID);
- } else {
- fail("select symbols is not an element");
- }
- ParameterDescriptor desc = new ParameterDescriptorImpl(element);
- assertNotNull(desc);
- } catch (ConnectorException ex) {
- ex.printStackTrace();
- fail(ex.getMessage());
- }
+ assertTrue(expr instanceof IElement);
+ Element element = ((IElement) expr).getMetadataObject();
+ ParameterDescriptor desc = new ParameterDescriptorImpl(element);
+ assertNotNull(desc);
}
- public void testParameterDescriptorElementParameter() {
+ public void testParameterDescriptorElementParameter() throws Exception {
IQuery query = ProxyObjectFactory.getDefaultIQuery(vdbPath, "select
RequiredDefaultedParam from CriteriaDescTable");
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
ISelect select = query.getSelect();
List symbols = select.getSelectSymbols();
ISelectSymbol selectSymbol = (ISelectSymbol) symbols.get(0);
IExpression expr = selectSymbol.getExpression();
- Element element = null;
- try {
- if (expr instanceof IElement) {
- MetadataID elementID = ((IElement) expr).getMetadataID();
- element = (Element) metadata.getObject(elementID);
- } else {
- fail("select symbols is not an element");
- }
- ParameterDescriptor desc = new ParameterDescriptorImpl(element);
- assertNotNull(desc);
- } catch (ConnectorException ex) {
- ex.printStackTrace();
- fail(ex.getMessage());
- }
+ assertTrue(expr instanceof IElement);
+ Element element = ((IElement) expr).getMetadataObject();
+ ParameterDescriptor desc = new ParameterDescriptorImpl(element);
+ assertNotNull(desc);
}
- public void testParameterDescriptorElementSpaceXPath() {
+ public void testParameterDescriptorElementSpaceXPath() throws Exception {
IQuery query = ProxyObjectFactory.getDefaultIQuery(vdbPath, "select
OutputColumnSpaceXPath from CriteriaDescTable");
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
ISelect select = query.getSelect();
List symbols = select.getSelectSymbols();
ISelectSymbol selectSymbol = (ISelectSymbol) symbols.get(0);
IExpression expr = selectSymbol.getExpression();
- Element element = null;
- try {
- if (expr instanceof IElement) {
- MetadataID elementID = ((IElement) expr).getMetadataID();
- element = (Element) metadata.getObject(elementID);
- } else {
- fail("select symbols is not an element");
- }
- ParameterDescriptor desc = new ParameterDescriptorImpl(element);
- assertNotNull(desc);
- } catch (ConnectorException ex) {
- ex.printStackTrace();
- fail(ex.getMessage());
- }
+ assertTrue(expr instanceof IElement);
+ Element element = ((IElement) expr).getMetadataObject();
+ ParameterDescriptor desc = new ParameterDescriptorImpl(element);
+ assertNotNull(desc);
}
/*
@@ -153,116 +118,80 @@
assertNull(desc.getColumnName());
}
- public void testSetGetXPath() {
+ public void testSetGetXPath() throws Exception {
ParameterDescriptor desc = getParameterDescriptor();
String xpath = "/foo";
desc.setXPath(xpath);
assertEquals(xpath, desc.getXPath());
}
- public void testSetIsParameter() {
+ public void testSetIsParameter() throws Exception {
ParameterDescriptor desc = getParameterDescriptor();
boolean is = !desc.isParameter();
desc.setIsParameter(is);
assertEquals(is, desc.isParameter());
}
- public void testSetGetColumnName() {
+ public void testSetGetColumnName() throws Exception {
ParameterDescriptor desc = getParameterDescriptor();
String name = "myColumn";
desc.setColumnName(name);
assertEquals(name, desc.getColumnName());
}
- public void testSetGetColumnNumber() {
+ public void testSetGetColumnNumber() throws Exception {
ParameterDescriptor desc = getParameterDescriptor();
int number = desc.getColumnNumber() + 1;
desc.setColumnNumber(number);
assertEquals(number, desc.getColumnNumber());
}
- public void testGetElement() {
+ public void testGetElement() throws Exception {
IQuery query = ProxyObjectFactory.getDefaultIQuery(vdbPath, QUERY);
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
ISelect select = query.getSelect();
List symbols = select.getSelectSymbols();
ISelectSymbol selectSymbol = (ISelectSymbol) symbols.get(0);
IExpression expr = selectSymbol.getExpression();
- Element element = null;
- try {
- if (expr instanceof IElement) {
- MetadataID elementID = ((IElement) expr).getMetadataID();
- element = (Element) metadata.getObject(elementID);
- } else {
- fail("select symbols is not an element");
- }
- ParameterDescriptor desc = new ParameterDescriptorImpl(element);
- assertEquals(element, desc.getElement());
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ assertTrue(expr instanceof IElement);
+ Element element = ((IElement) expr).getMetadataObject();
+ ParameterDescriptor desc = new ParameterDescriptorImpl(element);
+ assertEquals(element, desc.getElement());
}
- public void testTestForParam() {
+ public void testTestForParam() throws Exception {
String trueQuery = "select EmptyCol from EmptyTable where EmptyCol =
'foo'";
String falseQuery = "select Company_id from Company";
- RuntimeMetadata metadata = ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
IQuery query = ProxyObjectFactory.getDefaultIQuery(vdbPath, trueQuery);
ISelect select = query.getSelect();
List symbols = select.getSelectSymbols();
ISelectSymbol selectSymbol = (ISelectSymbol) symbols.get(0);
IExpression expr = selectSymbol.getExpression();
- Element element = null;
- try {
- MetadataID elementID = ((IElement) expr).getMetadataID();
- element = (Element) metadata.getObject(elementID);
- assertTrue(ParameterDescriptor.testForParam(element));
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ assertTrue(expr instanceof IElement);
+ Element element = ((IElement) expr).getMetadataObject();
+ assertTrue(ParameterDescriptor.testForParam(element));
query = ProxyObjectFactory.getDefaultIQuery(vdbPath, falseQuery);
select = query.getSelect();
symbols = select.getSelectSymbols();
selectSymbol = (ISelectSymbol) symbols.get(0);
expr = selectSymbol.getExpression();
- element = null;
- try {
- MetadataID elementID = ((IElement) expr).getMetadataID();
- element = (Element) metadata.getObject(elementID);
- assertFalse(ParameterDescriptor.testForParam(element));
- } catch (ConnectorException ce) {
- ce.printStackTrace();
- fail(ce.getMessage());
- }
+ assertTrue(expr instanceof IElement);
+ element = ((IElement) expr).getMetadataObject();
+ assertFalse(ParameterDescriptor.testForParam(element));
}
- private ParameterDescriptor getParameterDescriptor() {
+ private ParameterDescriptor getParameterDescriptor() throws Exception {
IQuery query = ProxyObjectFactory.getDefaultIQuery(vdbPath, QUERY);
- RuntimeMetadata metadata =
ProxyObjectFactory.getDefaultRuntimeMetadata(vdbPath);
ISelect select = query.getSelect();
List symbols = select.getSelectSymbols();
ISelectSymbol selectSymbol = (ISelectSymbol) symbols.get(0);
IExpression expr = selectSymbol.getExpression();
- Element element = null;
- try {
- if (expr instanceof IElement) {
- MetadataID elementID = ((IElement) expr).getMetadataID();
- element = (Element) metadata.getObject(elementID);
- } else {
- fail("select symbols is not an element");
- }
- ParameterDescriptor desc = new ParameterDescriptorImpl(element);
- assertNotNull(desc);
- return desc;
- } catch (ConnectorException ex) {
- ex.printStackTrace();
- fail(ex.getMessage());
- return null;
- }
+ assertTrue(expr instanceof IElement);
+ Element element = ((IElement) expr).getMetadataObject();
+ ParameterDescriptor desc = new ParameterDescriptorImpl(element);
+ assertNotNull(desc);
+ return desc;
}
private class ParameterDescriptorImpl extends ParameterDescriptor {
Deleted:
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/cache/MockDocumentCache.java
===================================================================
---
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/cache/MockDocumentCache.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/cache/MockDocumentCache.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -1,53 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-
-
-package com.metamatrix.connector.xml.cache;
-
-public class MockDocumentCache implements IDocumentCache {
-
- public void addToCache(String cacheKey, Object obj, int size, String id) {
- // TODO Auto-generated method stub
-
- }
-
- public void clearCache() {
- // TODO Auto-generated method stub
-
- }
-
- public Object fetchObject(String id, String requestID) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public void release(String cacheKey, String id) {
- // TODO Auto-generated method stub
-
- }
-
- public void shutdownCleaner() {
- // TODO Auto-generated method stub
-
- }
-
-}
Modified:
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/cache/TestRequestRecord.java
===================================================================
---
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/cache/TestRequestRecord.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/cache/TestRequestRecord.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -24,24 +24,21 @@
import junit.framework.TestCase;
+import org.mockito.Mockito;
+
import com.metamatrix.cdk.api.SysLogger;
import com.metamatrix.connector.api.ConnectorLogger;
import com.metamatrix.connector.xml.CachingConnector;
-import com.metamatrix.connector.xml.MockCachingConnector;
public class TestRequestRecord extends TestCase {
ConnectorLogger logger = new SysLogger(false);
- CachingConnector mockConnector = new MockCachingConnector();
+ CachingConnector mockConnector = Mockito.mock(CachingConnector.class);
- protected void setUp() throws Exception {
- super.setUp();
+ public TestRequestRecord() {
+ Mockito.stub(mockConnector.getCache()).toReturn(Mockito.mock(IDocumentCache.class));
}
-
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
+
public void testRequestRecord() {
RequestRecord testRecord;
try {
Modified:
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/file/TestFileExecutor.java
===================================================================
---
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/file/TestFileExecutor.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xml/file/TestFileExecutor.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -38,7 +38,6 @@
import com.metamatrix.connector.language.IQuery;
import com.metamatrix.connector.language.ISelectSymbol;
import com.metamatrix.connector.metadata.runtime.Element;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
import com.metamatrix.connector.xml.MockXMLExecution;
import com.metamatrix.connector.xml.base.ExecutionInfo;
@@ -300,8 +299,7 @@
IQuery iquery = ProxyObjectFactory.getDefaultIQuery(vdbPath, query);
ISelectSymbol symbol = (ISelectSymbol)
iquery.getSelect().getSelectSymbols().get(colLocation);
IExpression expr = symbol.getExpression();
- MetadataID elementID = (MetadataID) ((IElement) expr).getMetadataID();
- Element elem = (Element) metadata.getObject(elementID);
+ Element elem = ((IElement) expr).getMetadataObject();
return elem;
}
Deleted:
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xmlsource/FakeRuntimeMetadata.java
===================================================================
---
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xmlsource/FakeRuntimeMetadata.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xmlsource/FakeRuntimeMetadata.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -1,61 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-
-package com.metamatrix.connector.xmlsource;
-
-import java.util.Properties;
-
-import com.metamatrix.connector.api.ConnectorException;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
-import com.metamatrix.connector.metadata.runtime.MetadataObject;
-import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
-
-public class FakeRuntimeMetadata implements RuntimeMetadata {
- String fileName;
-
- public FakeRuntimeMetadata(String fileName) {
- this.fileName = fileName;
- }
-
- public MetadataObject getObject(MetadataID id) throws ConnectorException {
- return new MetadataObject() {
- public MetadataID getMetadataID() {
- return null;
- }
- public String getNameInSource() throws ConnectorException {
- return fileName;
- }
- public Properties getProperties() throws ConnectorException {
- return null;
- }
- };
- }
- public byte[] getBinaryVDBResource(String resourcePath) throws ConnectorException {
- return null;
- }
- public String getCharacterVDBResource(String resourcePath) throws ConnectorException
{
- return null;
- }
- public String[] getVDBResourcePaths() throws ConnectorException {
- return null;
- }
-}
\ No newline at end of file
Modified:
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xmlsource/file/TestFileExecution.java
===================================================================
---
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xmlsource/file/TestFileExecution.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xmlsource/file/TestFileExecution.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -30,6 +30,8 @@
import junit.framework.TestCase;
+import org.mockito.Mockito;
+
import com.metamatrix.cdk.api.EnvironmentUtility;
import com.metamatrix.connector.api.ConnectorEnvironment;
import com.metamatrix.connector.api.ConnectorException;
@@ -37,8 +39,8 @@
import com.metamatrix.connector.language.IParameter;
import com.metamatrix.connector.language.IProcedure;
import com.metamatrix.connector.language.IParameter.Direction;
+import com.metamatrix.connector.metadata.runtime.Procedure;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
-import com.metamatrix.connector.xmlsource.FakeRuntimeMetadata;
import com.metamatrix.core.util.UnitTestUtil;
@@ -55,10 +57,10 @@
try {
FileConnection conn = new FileConnection(env);
assertTrue(conn.isConnected());
- RuntimeMetadata metadata = new
FakeRuntimeMetadata("BookCollection.xml"); //$NON-NLS-1$
+ RuntimeMetadata metadata = Mockito.mock(RuntimeMetadata.class);
ILanguageFactory fact = env.getLanguageFactory();
- IProcedure procedure = fact.createProcedure("GetXMLFile", null,
null); //$NON-NLS-1$
+ IProcedure procedure = fact.createProcedure("GetXMLFile", null,
createMockProcedureMetadata("BookCollection.xml")); //$NON-NLS-1$
FileExecution exec = (FileExecution)conn.createExecution(procedure,
EnvironmentUtility.createExecutionContext("100", "100"), metadata);
//$NON-NLS-1$ //$NON-NLS-2$
@@ -97,9 +99,9 @@
try {
FileConnection conn = new FileConnection(env);
assertTrue(conn.isConnected());
- RuntimeMetadata metadata = new FakeRuntimeMetadata("nofile.xml");
//$NON-NLS-1$
+ RuntimeMetadata metadata = Mockito.mock(RuntimeMetadata.class);
ILanguageFactory fact = env.getLanguageFactory();
- FileExecution exec =
(FileExecution)conn.createExecution(fact.createProcedure("GetXMLFile", null,
null), EnvironmentUtility.createExecutionContext("100", "100"),
metadata); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ FileExecution exec =
(FileExecution)conn.createExecution(fact.createProcedure("GetXMLFile", null,
createMockProcedureMetadata("nofile.xml")),
EnvironmentUtility.createExecutionContext("100", "100"), metadata);
//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
exec.execute();
@@ -120,4 +122,14 @@
reader.close();
return fileContents.toString();
}
+
+ public static Procedure createMockProcedureMetadata(String nameInSource) {
+ Procedure rm = Mockito.mock(Procedure.class);
+ try {
+ Mockito.stub(rm.getNameInSource()).toReturn(nameInSource);
+ } catch (ConnectorException e) {
+ throw new RuntimeException(e);
+ }
+ return rm;
+ }
}
Modified:
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xmlsource/soap/TestSoapExecution.java
===================================================================
---
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xmlsource/soap/TestSoapExecution.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/connector-xml/src/test/java/com/metamatrix/connector/xmlsource/soap/TestSoapExecution.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -33,6 +33,8 @@
import junit.framework.TestCase;
import junit.framework.TestSuite;
+import org.mockito.Mockito;
+
import com.metamatrix.cdk.api.EnvironmentUtility;
import com.metamatrix.cdk.api.SysLogger;
import com.metamatrix.connector.api.ConnectorEnvironment;
@@ -42,7 +44,7 @@
import com.metamatrix.connector.language.IProcedure;
import com.metamatrix.connector.language.IParameter.Direction;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
-import com.metamatrix.connector.xmlsource.FakeRuntimeMetadata;
+import com.metamatrix.connector.xmlsource.file.TestFileExecution;
import com.metamatrix.connector.xmlsource.soap.service.WebServiceServer;
import com.metamatrix.core.util.UnitTestUtil;
@@ -542,7 +544,7 @@
ConnectorEnvironment env = EnvironmentUtility.createEnvironment(props, new
SysLogger(false));
SoapConnection conn = new SoapConnection(env);
- RuntimeMetadata metadata = new FakeRuntimeMetadata(procName);
+ RuntimeMetadata metadata = Mockito.mock(RuntimeMetadata.class);
ILanguageFactory fact = env.getLanguageFactory();
List parameters = new ArrayList();
if (args != null && args.length > 0) {
@@ -551,7 +553,7 @@
parameters.add(param);
}
}
- IProcedure procedure = fact.createProcedure("AnyNAME", parameters,
null); //$NON-NLS-1$
+ IProcedure procedure = fact.createProcedure("AnyNAME", parameters,
TestFileExecution.createMockProcedureMetadata(procName)); //$NON-NLS-1$
ProcedureExecution exec = (ProcedureExecution)conn.createExecution(procedure,
EnvironmentUtility.createExecutionContext("100", "100"), metadata);
//$NON-NLS-1$ //$NON-NLS-2$
exec.execute();
Modified:
trunk/connectors/sandbox/connector-exec/src/main/java/com/metamatrix/connector/exec/ExecConnection.java
===================================================================
---
trunk/connectors/sandbox/connector-exec/src/main/java/com/metamatrix/connector/exec/ExecConnection.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/sandbox/connector-exec/src/main/java/com/metamatrix/connector/exec/ExecConnection.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -23,7 +23,6 @@
package com.metamatrix.connector.exec;
import java.util.List;
-import com.metamatrix.connector.api.ConnectorCapabilities;
import com.metamatrix.connector.api.ConnectorEnvironment;
import com.metamatrix.connector.api.ConnectorException;
import com.metamatrix.connector.api.ConnectorLogger;
Modified:
trunk/connectors/sandbox/connector-exec/src/main/java/com/metamatrix/connector/exec/ExecConnector.java
===================================================================
---
trunk/connectors/sandbox/connector-exec/src/main/java/com/metamatrix/connector/exec/ExecConnector.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/sandbox/connector-exec/src/main/java/com/metamatrix/connector/exec/ExecConnector.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -32,18 +32,18 @@
import com.metamatrix.common.extensionmodule.ExtensionModuleManager;
import com.metamatrix.common.extensionmodule.exception.ExtensionModuleNotFoundException;
import com.metamatrix.connector.api.Connection;
-import com.metamatrix.connector.api.Connector;
import com.metamatrix.connector.api.ConnectorCapabilities;
import com.metamatrix.connector.api.ConnectorEnvironment;
import com.metamatrix.connector.api.ConnectorException;
import com.metamatrix.connector.api.ConnectorLogger;
import com.metamatrix.connector.api.ExecutionContext;
+import com.metamatrix.connector.basic.BasicConnector;
import com.metamatrix.core.util.ObjectConverterUtil;
/**
* Implementation of text connector.
*/
-public class ExecConnector implements Connector {
+public class ExecConnector extends BasicConnector {
private ConnectorLogger logger;
private ConnectorEnvironment env;
Modified:
trunk/connectors/sandbox/connector-exec/src/main/java/com/metamatrix/connector/exec/ExecVisitor.java
===================================================================
---
trunk/connectors/sandbox/connector-exec/src/main/java/com/metamatrix/connector/exec/ExecVisitor.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/sandbox/connector-exec/src/main/java/com/metamatrix/connector/exec/ExecVisitor.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -82,11 +82,11 @@
if (whereValue != null) {
- whereClause.put(symbol.getMetadataID().getName(), whereValue);
+ whereClause.put(symbol.getMetadataObject().getName(), whereValue);
// System.out.println("SYMBOL: " + symbol.getMetadataID().getName()
+ " value: " + whereValue );//$NON-NLS-1$ //$NON-NLS-2$
} else {
- this.exception = new
ConnectorException(ExecPlugin.Util.getString("SoapVisitor.No_where_value_found",
symbol.getMetadataID().getName())); //$NON-NLS-1$
+ this.exception = new
ConnectorException(ExecPlugin.Util.getString("SoapVisitor.No_where_value_found",
symbol.getMetadataObject().getName())); //$NON-NLS-1$
}
Modified:
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/ObjectConnector.java
===================================================================
---
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/ObjectConnector.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/ObjectConnector.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -23,20 +23,19 @@
package com.metamatrix.connector.object;
import com.metamatrix.connector.api.Connection;
-import com.metamatrix.connector.api.Connector;
import com.metamatrix.connector.api.ConnectorCapabilities;
import com.metamatrix.connector.api.ConnectorEnvironment;
import com.metamatrix.connector.api.ConnectorException;
+import com.metamatrix.connector.api.ConnectorIdentity;
import com.metamatrix.connector.api.ConnectorLogger;
import com.metamatrix.connector.api.ExecutionContext;
-import com.metamatrix.connector.identity.ConnectorIdentity;
-import com.metamatrix.connector.identity.ConnectorIdentityFactory;
+import com.metamatrix.connector.basic.BasicConnector;
import com.metamatrix.connector.object.util.ObjectConnectorUtil;
/**
* Implmentation of the connector interface.
*/
-public class ObjectConnector implements Connector, ConnectorIdentityFactory {
+public class ObjectConnector extends BasicConnector {
private ConnectorLogger logger;
private ConnectorEnvironment env;
Modified:
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/SourceConnectionFactory.java
===================================================================
---
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/SourceConnectionFactory.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/SourceConnectionFactory.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -3,9 +3,9 @@
import com.metamatrix.connector.api.Connection;
import com.metamatrix.connector.api.ConnectorEnvironment;
import com.metamatrix.connector.api.ConnectorException;
+import com.metamatrix.connector.api.ConnectorIdentity;
import com.metamatrix.connector.api.ExecutionContext;
-import com.metamatrix.connector.identity.ConnectorIdentity;
-import com.metamatrix.connector.identity.SingleIdentity;
+import com.metamatrix.connector.api.SingleIdentity;
public interface SourceConnectionFactory {
Modified:
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/extension/command/ObjectCommand.java
===================================================================
---
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/extension/command/ObjectCommand.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/extension/command/ObjectCommand.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -25,7 +25,7 @@
import com.metamatrix.connector.api.ConnectorException;
import com.metamatrix.connector.language.ICommand;
import com.metamatrix.connector.language.IMetadataReference;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
+import com.metamatrix.connector.metadata.runtime.MetadataObject;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
import com.metamatrix.connector.object.extension.IObjectCommand;
import com.metamatrix.connector.object.util.ObjectConnectorUtil;
@@ -78,7 +78,7 @@
protected String determineName(IMetadataReference reference) throws
ConnectorException {
String nis = getMetadataObjectNameInSource(reference);
if (nis == null || nis.length() == 0) {
- MetadataID id = reference.getMetadataID();
+ MetadataObject id = reference.getMetadataObject();
return id.getName();
}
return nis;
Modified:
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/extension/command/ProcedureCommand.java
===================================================================
---
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/extension/command/ProcedureCommand.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/extension/command/ProcedureCommand.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -34,7 +34,6 @@
import com.metamatrix.connector.language.IProcedure;
import com.metamatrix.connector.language.IParameter.Direction;
import com.metamatrix.connector.metadata.runtime.Element;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
import com.metamatrix.connector.object.ObjectPlugin;
import com.metamatrix.connector.object.util.ObjectConnectorUtil;
@@ -145,7 +144,7 @@
}
public static final String getMethodName(final RuntimeMetadata metadata, final
IProcedure procedure) throws ConnectorException {
- String procName=procedure.getMetadataID().getName();
+ String procName=procedure.getMetadataObject().getName();
String procNameInSource =
ObjectConnectorUtil.getMetadataObjectNameInSource(metadata, procedure, procedure);
@@ -157,7 +156,7 @@
protected void initParameters() throws ConnectorException {
- this.procName=this.procedure.getMetadataID().getName();
+ this.procName=this.procedure.getMetadataObject().getName();
this.procNameInSource = getMetadataObjectNameInSource(procedure);
@@ -187,20 +186,19 @@
* @since 4.2
*/
protected void initResultSet() throws ConnectorException {
- List columnMetadata = resultSetParameter.getMetadataID().getChildIDs();
+ List<Element> columnMetadata =
resultSetParameter.getMetadataObject().getChildren();
int size = columnMetadata.size();
columnNames = new String[size];
columnNamesInSource = new String[size];
columnTypes = new Class[size];
for(int i =0; i<size; i++ ){
- MetadataID mID = (MetadataID)columnMetadata.get(i);
- Element element = (Element) this.getMetadata().getObject(mID);
+ Element element = (Element) columnMetadata.get(i);
if (element.getNameInSource() != null &&
element.getNameInSource().length() > 0) {
columnNamesInSource[i] = element.getNameInSource();
} else {
columnNamesInSource[i] = null;
}
- columnNames[i] = element.getMetadataID().getName();
+ columnNames[i] = element.getName();
columnTypes[i] = element.getJavaType();
hasResults=true;
@@ -212,7 +210,7 @@
columnTypes = new Class[1];
columnNamesInSource = new String[1];
- columnNames[0] = resultSetParameter.getMetadataID().getName();
+ columnNames[0] = resultSetParameter.getMetadataObject().getName();
columnTypes[0] = resultSetParameter.getType();
columnNamesInSource[0] = this.getMetadataObjectNameInSource(resultSetParameter);
Modified:
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/extension/source/BaseSourceConnectionFactory.java
===================================================================
---
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/extension/source/BaseSourceConnectionFactory.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/extension/source/BaseSourceConnectionFactory.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -27,9 +27,9 @@
import com.metamatrix.connector.api.Connection;
import com.metamatrix.connector.api.ConnectorEnvironment;
import com.metamatrix.connector.api.ConnectorException;
+import com.metamatrix.connector.api.ConnectorIdentity;
import com.metamatrix.connector.api.ExecutionContext;
-import com.metamatrix.connector.identity.ConnectorIdentity;
-import com.metamatrix.connector.identity.SingleIdentity;
+import com.metamatrix.connector.api.SingleIdentity;
import com.metamatrix.connector.object.ObjectConnection;
import com.metamatrix.connector.object.SourceConnectionFactory;
import com.metamatrix.connector.object.extension.IObjectSource;
@@ -60,7 +60,7 @@
/**
- * @see
com.metamatrix.data.pool.SourceConnectionFactory#createConnection(com.metamatrix.connector.identity.ConnectorIdentity)
+ * @see
com.metamatrix.data.pool.SourceConnectionFactory#createConnection(com.metamatrix.connector.api.ConnectorIdentity)
* @since 4.3
*/
public final Connection createConnection(ConnectorIdentity id) throws
ConnectorException {
Modified:
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/util/ObjectConnectorUtil.java
===================================================================
---
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/util/ObjectConnectorUtil.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/sandbox/connector-object/src/main/java/com/metamatrix/connector/object/util/ObjectConnectorUtil.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -29,7 +29,6 @@
import com.metamatrix.connector.api.ConnectorException;
import com.metamatrix.connector.language.ICommand;
import com.metamatrix.connector.language.IMetadataReference;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.MetadataObject;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
import com.metamatrix.connector.object.ObjectPlugin;
@@ -51,8 +50,7 @@
if(reference == null) {
return null;
}
- MetadataID id = reference.getMetadataID();
- MetadataObject obj = metadata.getObject(id);
+ MetadataObject obj = reference.getMetadataObject();
if (obj != null) {
if (obj.getNameInSource() != null) {
return obj.getNameInSource();
Modified:
trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/FilterFunctionModifier.java
===================================================================
---
trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/FilterFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/FilterFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -44,14 +44,14 @@
List objs = new ArrayList();
objs.add("SDO_FILTER"); //$NON-NLS-1$
objs.add("("); //$NON-NLS-1$
- IExpression[] params = function.getParameters();
- if (params.length == 3) {
- addParamWithConversion(objs, params[0]);
+ List<IExpression> params = function.getParameters();
+ if (params.size() == 3) {
+ addParamWithConversion(objs, params.get(0));
objs.add(", "); //comma between parms //$NON-NLS-1$
- addParamWithConversion(objs, params[1]);
+ addParamWithConversion(objs, params.get(1));
objs.add(", "); //$NON-NLS-1$
- objs.add(params[2]);
+ objs.add(params.get(2));
} else {
return super.translate(function);
}
Modified:
trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/NearestNeighborFunctionModifier.java
===================================================================
---
trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/NearestNeighborFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/NearestNeighborFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -44,17 +44,17 @@
List objs = new ArrayList();
objs.add("SDO_NN"); // recast name from sdoNN to SDO_NN //$NON-NLS-1$
objs.add("("); //$NON-NLS-1$
- IExpression[] params = function.getParameters();
- if (params.length >= 3) {
- addParamWithConversion(objs, params[0]);
+ List<IExpression> params = function.getParameters();
+ if (params.size() >= 3) {
+ addParamWithConversion(objs, params.get(0));
objs.add(", "); //comma between parms //$NON-NLS-1$
- addParamWithConversion(objs, params[1]);
+ addParamWithConversion(objs, params.get(1));
objs.add(", "); //$NON-NLS-1$
- objs.add(params[2]);
- if (params.length == 4) {
+ objs.add(params.get(2));
+ if (params.size() == 4) {
objs.add(", "); //$NON-NLS-1$
- objs.add(params[3]);
+ objs.add(params.get(3));
}
} else {
return super.translate(function);
Modified:
trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/RelateFunctionModifier.java
===================================================================
---
trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/RelateFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/RelateFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -47,16 +47,16 @@
List objs = new ArrayList();
objs.add("SDO_RELATE"); // recast name from sdoRelate to SDO_RELATE
//$NON-NLS-1$
objs.add("("); //$NON-NLS-1$
- IExpression[] params = function.getParameters();
+ List<IExpression> params = function.getParameters();
//if it doesn't have 3 parms, it is not a version of SDO_RELATE which
// we are prepared to translate
- if (params.length == 3) {
- addParamWithConversion(objs, params[0]);
+ if (params.size() == 3) {
+ addParamWithConversion(objs, params.get(0));
objs.add(", "); //comma between parms //$NON-NLS-1$
- addParamWithConversion(objs, params[1]);
+ addParamWithConversion(objs, params.get(1));
objs.add(", "); //$NON-NLS-1$
- addParamWithConversion(objs, params[2]);
+ addParamWithConversion(objs, params.get(2));
} else {
return super.translate(function);
}
Modified:
trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/WithinDistanceFunctionModifier.java
===================================================================
---
trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/WithinDistanceFunctionModifier.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/sandbox/connector-oracle-spatial/src/main/java/com/metamatrix/connector/jdbc/oracle/spatial/WithinDistanceFunctionModifier.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -44,16 +44,16 @@
List objs = new ArrayList();
objs.add("SDO_WITHIN_DISTANCE"); // recast name from sdoNN to SDO_NN
//$NON-NLS-1$
objs.add("("); //$NON-NLS-1$
- IExpression[] params = function.getParameters();
+ List<IExpression> params = function.getParameters();
//if it doesn't have 3 parms, it is not a version of SDO_RELATE which
// we are prepared to translate
- if (params.length == 3) {
- addParamWithConversion(objs, params[0]);
+ if (params.size() == 3) {
+ addParamWithConversion(objs, params.get(0));
objs.add(", "); //comma between parms //$NON-NLS-1$
- addParamWithConversion(objs, params[1]);
+ addParamWithConversion(objs, params.get(1));
objs.add(", "); //$NON-NLS-1$
- objs.add(params[2]);
+ objs.add(params.get(2));
} else {
return super.translate(function);
}
Modified:
trunk/connectors/sandbox/connector-yahoo/src/main/java/com/metamatrix/connector/yahoo/YahooConnector.java
===================================================================
---
trunk/connectors/sandbox/connector-yahoo/src/main/java/com/metamatrix/connector/yahoo/YahooConnector.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/sandbox/connector-yahoo/src/main/java/com/metamatrix/connector/yahoo/YahooConnector.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -23,8 +23,9 @@
package com.metamatrix.connector.yahoo;
import com.metamatrix.connector.api.*;
+import com.metamatrix.connector.basic.BasicConnector;
-public class YahooConnector implements Connector {
+public class YahooConnector extends BasicConnector {
private ConnectorEnvironment env;
Modified:
trunk/connectors/sandbox/connector-yahoo/src/main/java/com/metamatrix/connector/yahoo/YahooExecution.java
===================================================================
---
trunk/connectors/sandbox/connector-yahoo/src/main/java/com/metamatrix/connector/yahoo/YahooExecution.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/connectors/sandbox/connector-yahoo/src/main/java/com/metamatrix/connector/yahoo/YahooExecution.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -52,7 +52,6 @@
import com.metamatrix.connector.language.ISelect;
import com.metamatrix.connector.language.ISelectSymbol;
import com.metamatrix.connector.metadata.runtime.Element;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
/**
@@ -255,8 +254,7 @@
ISelectSymbol symbol = (ISelectSymbol) iter.next();
IExpression expr = symbol.getExpression();
if(expr instanceof IElement) {
- MetadataID id = ((IElement)expr).getMetadataID();
- Element element = (Element) metadata.getObject(id);
+ Element element = ((IElement)expr).getMetadataObject();
cols[i] = element.getPosition();
} else {
throw new
ConnectorException(YahooPlugin.Util.getString("YahooExecution.Invalid_select_symbol",
expr)); //$NON-NLS-1$
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ConnectorManager.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ConnectorManager.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ConnectorManager.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -89,7 +89,7 @@
import com.metamatrix.query.sql.lang.Command;
/**
- * The <code>ConnectorManager</code> manages a {@link
com.metamatrix.connector.api.Connector Connector}
+ * The <code>ConnectorManager</code> manages a {@link
com.metamatrix.connector.basic.BasicConnector Connector}
* and its associated workers' state.
*/
public class ConnectorManager implements ApplicationService {
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ConnectorWorkItem.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ConnectorWorkItem.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ConnectorWorkItem.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -48,7 +48,6 @@
import com.metamatrix.core.util.Assertion;
import com.metamatrix.dqp.DQPPlugin;
import com.metamatrix.dqp.internal.datamgr.language.LanguageBridgeFactory;
-import com.metamatrix.dqp.internal.datamgr.metadata.MetadataFactory;
import com.metamatrix.dqp.internal.datamgr.metadata.RuntimeMetadataImpl;
import com.metamatrix.dqp.internal.process.AbstractWorkItem;
import com.metamatrix.dqp.internal.process.DQPWorkContext;
@@ -288,7 +287,7 @@
LanguageBridgeFactory factory = new LanguageBridgeFactory(queryMetadata);
this.translatedCommand = factory.translate(command);
- RuntimeMetadata rmd = new RuntimeMetadataImpl(new
MetadataFactory(queryMetadata));
+ RuntimeMetadata rmd = new RuntimeMetadataImpl(queryMetadata);
// Create the execution based on mode
final Execution exec = connection.createExecution(this.translatedCommand,
this.securityContext, rmd);
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ConnectorWrapper.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ConnectorWrapper.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ConnectorWrapper.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -27,10 +27,8 @@
import com.metamatrix.connector.api.ConnectorCapabilities;
import com.metamatrix.connector.api.ConnectorEnvironment;
import com.metamatrix.connector.api.ConnectorException;
+import com.metamatrix.connector.api.ConnectorIdentity;
import com.metamatrix.connector.api.ExecutionContext;
-import com.metamatrix.connector.identity.ConnectorIdentity;
-import com.metamatrix.connector.identity.ConnectorIdentityFactory;
-import com.metamatrix.connector.identity.SingleIdentity;
import com.metamatrix.connector.xa.api.TransactionContext;
import com.metamatrix.connector.xa.api.XAConnection;
import com.metamatrix.connector.xa.api.XAConnector;
@@ -38,7 +36,7 @@
/**
* ConnectorWrapper adds default behavior to the wrapped connector.
*/
-public class ConnectorWrapper implements XAConnector, ConnectorIdentityFactory {
+public class ConnectorWrapper implements XAConnector {
private Connector actualConnector;
@@ -113,10 +111,7 @@
@Override
public ConnectorIdentity createIdentity(ExecutionContext context)
throws ConnectorException {
- if (actualConnector instanceof ConnectorIdentityFactory) {
- return ((ConnectorIdentityFactory)actualConnector).createIdentity(context);
- }
- return new SingleIdentity();
+ return actualConnector.createIdentity(context);
}
public boolean supportsSingleIdentity() {
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ExecutionContextImpl.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ExecutionContextImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ExecutionContextImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -28,8 +28,8 @@
import java.util.List;
import com.metamatrix.common.buffer.impl.BufferConfig;
+import com.metamatrix.connector.api.ConnectorIdentity;
import com.metamatrix.connector.api.ExecutionContext;
-import com.metamatrix.connector.identity.ConnectorIdentity;
import com.metamatrix.core.util.HashCodeUtil;
/**
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ProcedureBatchHandler.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ProcedureBatchHandler.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/impl/ProcedureBatchHandler.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -55,7 +55,7 @@
while(iter.hasNext()){
IParameter param = (IParameter)iter.next();
if (param.getDirection() == Direction.RESULT_SET) {
- resultSetCols = param.getMetadataID().getChildIDs().size();
+ resultSetCols = param.getMetadataObject().getChildren().size();
} else if(param.getDirection() == Direction.RETURN ||
param.getDirection() == Direction.OUT || param.getDirection() == Direction.INOUT){
paramCols += 1;
}
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/ElementImpl.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/ElementImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/ElementImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -24,20 +24,20 @@
import com.metamatrix.connector.language.IElement;
import com.metamatrix.connector.language.IGroup;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
+import com.metamatrix.connector.metadata.runtime.Element;
import com.metamatrix.connector.visitor.framework.LanguageObjectVisitor;
public class ElementImpl extends BaseLanguageObject implements IElement {
private IGroup group;
private String name;
- private MetadataID metadataID;
+ private Element metadataObject;
private Class type;
- public ElementImpl(IGroup group, String name, MetadataID metadataID, Class type) {
+ public ElementImpl(IGroup group, String name, Element metadataObject, Class type) {
this.group = group;
this.name = name;
- this.metadataID = metadataID;
+ this.metadataObject = metadataObject;
this.type = type;
}
@@ -55,17 +55,15 @@
return group;
}
- /**
- * @see com.metamatrix.connector.language.IMetadataReference#getMetadataID()
- */
- public MetadataID getMetadataID() {
- return metadataID;
+ @Override
+ public Element getMetadataObject() {
+ return this.metadataObject;
}
- public void setMetadataID(MetadataID id){
- this.metadataID = id;
- }
-
+ public void setMetadataObject(Element metadataObject) {
+ this.metadataObject = metadataObject;
+ }
+
/**
* @see
com.metamatrix.connector.language.ILanguageObject#acceptVisitor(com.metamatrix.data.visitor.LanguageObjectVisitor)
*/
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/FunctionImpl.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/FunctionImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/FunctionImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,9 @@
package com.metamatrix.dqp.internal.datamgr.language;
+import java.util.ArrayList;
+import java.util.List;
+
import com.metamatrix.connector.language.IExpression;
import com.metamatrix.connector.language.IFunction;
import com.metamatrix.connector.visitor.framework.LanguageObjectVisitor;
@@ -29,12 +32,16 @@
public class FunctionImpl extends BaseLanguageObject implements IFunction {
private String name;
- private IExpression[] parameters;
+ private List<IExpression> parameters;
private Class type;
- public FunctionImpl(String name, IExpression[] params, Class type) {
+ public FunctionImpl(String name, List<? extends IExpression> params, Class
type) {
this.name = name;
- this.parameters = params;
+ if (params == null) {
+ this.parameters = new ArrayList<IExpression>(0);
+ } else {
+ this.parameters = new ArrayList<IExpression>(params);
+ }
this.type = type;
}
@@ -48,7 +55,7 @@
/**
* @see com.metamatrix.connector.language.IFunction#getParameters()
*/
- public IExpression[] getParameters() {
+ public List<IExpression> getParameters() {
return parameters;
}
@@ -67,13 +74,6 @@
}
/*
- * @see
com.metamatrix.data.language.IFunction#setParameters(com.metamatrix.data.language.IExpression[])
- */
- public void setParameters(IExpression[] parameters) {
- this.parameters = parameters;
- }
-
- /*
* @see com.metamatrix.data.language.IExpression#getType()
*/
public Class getType() {
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/GroupImpl.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/GroupImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/GroupImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -23,20 +23,21 @@
package com.metamatrix.dqp.internal.datamgr.language;
import com.metamatrix.connector.language.IGroup;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
+import com.metamatrix.connector.metadata.runtime.Group;
import com.metamatrix.connector.visitor.framework.LanguageObjectVisitor;
import com.metamatrix.core.util.HashCodeUtil;
+import com.metamatrix.metadata.runtime.api.MetadataID;
public class GroupImpl extends BaseLanguageObject implements IGroup {
private String context;
private String definition;
- private MetadataID metadataID;
+ private Group metadataObject;
- public GroupImpl(String context, String definition, MetadataID id) {
+ public GroupImpl(String context, String definition, Group group) {
this.context = context;
this.definition = definition;
- this.metadataID = id;
+ this.metadataObject = group;
}
/**
@@ -53,16 +54,14 @@
return this.definition;
}
- /**
- * @see com.metamatrix.connector.language.IMetadataReference#getMetadataID()
- */
- public MetadataID getMetadataID() {
- return metadataID;
+ @Override
+ public Group getMetadataObject() {
+ return this.metadataObject;
}
-
- public void setMetadataID(MetadataID id){
- this.metadataID = id;
- }
+
+ public void setMetadataObject(Group metadataObject) {
+ this.metadataObject = metadataObject;
+ }
/**
* @see
com.metamatrix.connector.language.ILanguageObject#acceptVisitor(com.metamatrix.data.visitor.LanguageObjectVisitor)
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/LanguageBridgeFactory.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/LanguageBridgeFactory.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/LanguageBridgeFactory.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -27,8 +27,8 @@
import java.util.List;
import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.query.QueryMetadataException;
import com.metamatrix.common.log.LogManager;
+import com.metamatrix.connector.api.ConnectorException;
import com.metamatrix.connector.language.IAggregate;
import com.metamatrix.connector.language.IBatchedUpdates;
import com.metamatrix.connector.language.ICommand;
@@ -69,11 +69,10 @@
import com.metamatrix.connector.language.ICompareCriteria.Operator;
import com.metamatrix.connector.language.IParameter.Direction;
import com.metamatrix.connector.language.ISubqueryCompareCriteria.Quantifier;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
-import com.metamatrix.connector.metadata.runtime.MetadataID.Type;
+import com.metamatrix.connector.metadata.runtime.Parameter;
+import com.metamatrix.connector.metadata.runtime.Procedure;
import com.metamatrix.dqp.DQPPlugin;
-import com.metamatrix.dqp.internal.datamgr.metadata.MetadataFactory;
-import com.metamatrix.dqp.internal.datamgr.metadata.ProcedureIDImpl;
+import com.metamatrix.dqp.internal.datamgr.metadata.RuntimeMetadataImpl;
import com.metamatrix.dqp.message.ParameterInfo;
import com.metamatrix.dqp.util.LogConstants;
import com.metamatrix.query.metadata.QueryMetadataInterface;
@@ -126,11 +125,11 @@
import com.metamatrix.query.sql.symbol.SingleElementSymbol;
public class LanguageBridgeFactory {
- private MetadataFactory metadataFactory = null;
+ private RuntimeMetadataImpl metadataFactory = null;
public LanguageBridgeFactory(QueryMetadataInterface metadata) {
if (metadata != null) {
- metadataFactory = new MetadataFactory(metadata);
+ metadataFactory = new RuntimeMetadataImpl(metadata);
}
}
@@ -489,11 +488,10 @@
IFunction translate(Function function) throws MetaMatrixComponentException {
Expression [] args = function.getArgs();
- IExpression [] params = null;
+ List<IExpression> params = new ArrayList<IExpression>(args.length);
if (args != null) {
- params = new IExpression[args.length];
for (int i = 0; i < args.length; i++) {
- params[i] = translate(args[i]);
+ params.add(translate(args[i]));
}
}
return new FunctionImpl(function.getName(), params, function.getType());
@@ -542,19 +540,14 @@
ElementImpl element = null;
element = new ElementImpl(translate(symbol.getGroupSymbol()),
symbol.getOutputName(), null, symbol.getType());
- if (element.getGroup().getMetadataID() == null) {
+ if (element.getGroup().getMetadataObject() == null) {
return element;
}
Object mid = symbol.getMetadataID();
if(! (mid instanceof TempMetadataID)) {
- try {
- element.setMetadataID(metadataFactory.createMetadataID(mid,
Type.TYPE_ELEMENT));
- } catch(QueryMetadataException e) {
- LogManager.logWarning(LogConstants.CTX_CONNECTOR, e,
DQPPlugin.Util.getString("LanguageBridgeFactory.Unable_to_set_the_metadata_ID_for_element_{0}._10",
symbol.getName())); //$NON-NLS-1$
- throw new MetaMatrixComponentException(e);
- }
+ element.setMetadataObject(metadataFactory.getElement(mid));
}
return element;
}
@@ -627,26 +620,25 @@
/* Execute */
IProcedure translate(StoredProcedure sp) throws MetaMatrixComponentException {
- ProcedureIDImpl metadataID = null;
+ Procedure proc = null;
if(sp.getProcedureID() != null) {
try {
- metadataID = (ProcedureIDImpl)
metadataFactory.createProcedureID(sp.getProcedureID());
- } catch(Exception e) {
- LogManager.logWarning(LogConstants.CTX_CONNECTOR, e,
DQPPlugin.Util.getString("LanguageBridgeFactory.Unable_to_set_the_metadata_ID_for_element_{0}._10",
sp.getProcedureName())); //$NON-NLS-1$
+ proc = this.metadataFactory.getProcedure(sp.getGroup().getName());
+ } catch(ConnectorException e) {
throw new MetaMatrixComponentException(e);
}
}
List parameters = sp.getParameters();
- List translatedParameters = new ArrayList();
+ List<IParameter> translatedParameters = new ArrayList<IParameter>();
for (Iterator i = parameters.iterator(); i.hasNext();) {
- translatedParameters.add(translate((SPParameter)i.next(), metadataID));
+ translatedParameters.add(translate((SPParameter)i.next(), proc));
}
- return new ProcedureImpl(sp.getProcedureName(), translatedParameters,
metadataID);
+ return new ProcedureImpl(sp.getProcedureName(), translatedParameters, proc);
}
- IParameter translate(SPParameter param, ProcedureIDImpl procID) throws
MetaMatrixComponentException {
+ IParameter translate(SPParameter param, Procedure parent) throws
MetaMatrixComponentException {
Direction direction = Direction.IN;
switch(param.getParameterType()) {
case ParameterInfo.IN:
@@ -666,19 +658,8 @@
break;
}
- try {
- MetadataID metadataID = null;
- if(direction == Direction.RESULT_SET) {
- metadataID = metadataFactory.createResultSetID(procID,
param.getMetadataID(), param.getResultSetIDs());
- return new ParameterImpl(param.getIndex(), direction, param.getValue(),
param.getClassType(), metadataID);
-
- }
- metadataID = metadataFactory.createParameterID(procID,
param.getMetadataID());
- return new ParameterImpl(param.getIndex(), direction, param.getValue(),
param.getClassType(), metadataID);
- } catch(QueryMetadataException e) {
- throw new MetaMatrixComponentException(e);
- }
-
+ Parameter metadataParam = metadataFactory.getParameter(param, parent);
+ return new ParameterImpl(param.getIndex(), direction, param.getValue(),
param.getClassType(), metadataParam);
}
IGroup translate(GroupSymbol symbol) throws MetaMatrixComponentException {
@@ -687,7 +668,7 @@
return group;
}
try {
- group.setMetadataID(metadataFactory.createMetadataID(symbol.getMetadataID(),
Type.TYPE_GROUP));
+ group.setMetadataObject(metadataFactory.getGroup(symbol.getMetadataID()));
} catch(Exception e) {
LogManager.logWarning(LogConstants.CTX_CONNECTOR, e,
DQPPlugin.Util.getString("LanguageBridgeFactory.Unable_to_set_the_metadata_ID_for_group_{0}._11",
symbol.getName())); //$NON-NLS-1$
throw new MetaMatrixComponentException(e);
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/LanguageFactoryImpl.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/LanguageFactoryImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/LanguageFactoryImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,10 +22,53 @@
package com.metamatrix.dqp.internal.datamgr.language;
+import java.util.Arrays;
import java.util.List;
-import com.metamatrix.connector.language.*;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
+import com.metamatrix.connector.language.IAggregate;
+import com.metamatrix.connector.language.IBulkInsert;
+import com.metamatrix.connector.language.ICompareCriteria;
+import com.metamatrix.connector.language.ICompoundCriteria;
+import com.metamatrix.connector.language.ICriteria;
+import com.metamatrix.connector.language.IDelete;
+import com.metamatrix.connector.language.IElement;
+import com.metamatrix.connector.language.IExistsCriteria;
+import com.metamatrix.connector.language.IExpression;
+import com.metamatrix.connector.language.IFrom;
+import com.metamatrix.connector.language.IFromItem;
+import com.metamatrix.connector.language.IFunction;
+import com.metamatrix.connector.language.IGroup;
+import com.metamatrix.connector.language.IGroupBy;
+import com.metamatrix.connector.language.IInCriteria;
+import com.metamatrix.connector.language.IInlineView;
+import com.metamatrix.connector.language.IInsert;
+import com.metamatrix.connector.language.IIsNullCriteria;
+import com.metamatrix.connector.language.IJoin;
+import com.metamatrix.connector.language.ILanguageFactory;
+import com.metamatrix.connector.language.ILikeCriteria;
+import com.metamatrix.connector.language.ILimit;
+import com.metamatrix.connector.language.ILiteral;
+import com.metamatrix.connector.language.INotCriteria;
+import com.metamatrix.connector.language.IOrderBy;
+import com.metamatrix.connector.language.IOrderByItem;
+import com.metamatrix.connector.language.IParameter;
+import com.metamatrix.connector.language.IProcedure;
+import com.metamatrix.connector.language.IQuery;
+import com.metamatrix.connector.language.IQueryCommand;
+import com.metamatrix.connector.language.IScalarSubquery;
+import com.metamatrix.connector.language.ISearchedCaseExpression;
+import com.metamatrix.connector.language.ISelect;
+import com.metamatrix.connector.language.ISelectSymbol;
+import com.metamatrix.connector.language.ISetClause;
+import com.metamatrix.connector.language.ISetClauseList;
+import com.metamatrix.connector.language.ISetQuery;
+import com.metamatrix.connector.language.ISubqueryCompareCriteria;
+import com.metamatrix.connector.language.ISubqueryInCriteria;
+import com.metamatrix.connector.language.IUpdate;
+import com.metamatrix.connector.metadata.runtime.Element;
+import com.metamatrix.connector.metadata.runtime.Group;
+import com.metamatrix.connector.metadata.runtime.Parameter;
+import com.metamatrix.connector.metadata.runtime.Procedure;
/**
*/
@@ -72,7 +115,7 @@
/*
* @see com.metamatrix.data.language.ILanguageFactory#createElement(java.lang.String,
com.metamatrix.data.language.IGroup, com.metamatrix.data.metadata.runtime.MetadataID)
*/
- public IElement createElement(String name, IGroup group, MetadataID
metadataReference, Class type) {
+ public IElement createElement(String name, IGroup group, Element metadataReference,
Class type) {
return new ElementImpl(group, name, metadataReference, type);
}
@@ -89,18 +132,24 @@
public IFrom createFrom(List items) {
return new FromImpl(items);
}
+
+ @Override
+ public IFunction createFunction(String functionName, IExpression[] args,
+ Class type) {
+ return new FunctionImpl(functionName, Arrays.asList(args), type);
+ }
/*
* @see
com.metamatrix.data.language.ILanguageFactory#createFunction(java.lang.String,
com.metamatrix.data.language.IExpression[], java.lang.Class)
*/
- public IFunction createFunction(String functionName, IExpression[] args, Class type)
{
+ public IFunction createFunction(String functionName, List<? extends
IExpression> args, Class type) {
return new FunctionImpl(functionName, args, type);
}
/*
* @see com.metamatrix.data.language.ILanguageFactory#createGroup(java.lang.String,
java.lang.String, com.metamatrix.data.metadata.runtime.MetadataID)
*/
- public IGroup createGroup(String context, String definition, MetadataID
metadataReference) {
+ public IGroup createGroup(String context, String definition, Group metadataReference)
{
return new GroupImpl(context, definition, metadataReference);
}
@@ -188,14 +237,14 @@
/*
* @see com.metamatrix.data.language.ILanguageFactory#createParameter(int, int,
java.lang.Object, java.lang.Class)
*/
- public IParameter createParameter(int index, IParameter.Direction direction, Object
value, Class type, MetadataID metadataReference) {
+ public IParameter createParameter(int index, IParameter.Direction direction, Object
value, Class type, Parameter metadataReference) {
return new ParameterImpl(index, direction, value, type, metadataReference);
}
/*
* @see
com.metamatrix.data.language.ILanguageFactory#createProcedure(java.lang.String,
java.util.List, com.metamatrix.data.metadata.runtime.MetadataID)
*/
- public IProcedure createProcedure(String name, List parameters, MetadataID
metadataReference) {
+ public IProcedure createProcedure(String name, List parameters, Procedure
metadataReference) {
return new ProcedureImpl(name, parameters, metadataReference);
}
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/ParameterImpl.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/ParameterImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/ParameterImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -23,7 +23,7 @@
package com.metamatrix.dqp.internal.datamgr.language;
import com.metamatrix.connector.language.IParameter;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
+import com.metamatrix.connector.metadata.runtime.Parameter;
import com.metamatrix.connector.visitor.framework.LanguageObjectVisitor;
public class ParameterImpl extends BaseLanguageObject implements IParameter {
@@ -33,14 +33,14 @@
private Object value;
private boolean valueSpecified;
private Class type;
- private MetadataID metadataID;
+ private Parameter metadataObject;
- public ParameterImpl(int index, Direction direction, Object value, Class type,
MetadataID metadataID) {
+ public ParameterImpl(int index, Direction direction, Object value, Class type,
Parameter metadataObject) {
setIndex(index);
setDirection(direction);
setValue(value);
setType(type);
- setMetadataID(metadataID);
+ this.metadataObject = metadataObject;
}
/**
@@ -109,16 +109,14 @@
}
}
- public MetadataID getMetadataID() {
- return this.metadataID;
+ @Override
+ public Parameter getMetadataObject() {
+ return this.metadataObject;
}
- /*
- * @see
com.metamatrix.data.language.IMetadataReference#setMetadataID(com.metamatrix.data.metadata.runtime.MetadataID)
- */
- public void setMetadataID(MetadataID metadataID) {
- this.metadataID = metadataID;
- }
+ public void setMetadataObject(Parameter metadataObject) {
+ this.metadataObject = metadataObject;
+ }
/**
* @see com.metamatrix.connector.language.IParameter#getValueSpecified()
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/ProcedureImpl.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/ProcedureImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/language/ProcedureImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -24,20 +24,21 @@
import java.util.List;
+import com.metamatrix.connector.language.IParameter;
import com.metamatrix.connector.language.IProcedure;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
+import com.metamatrix.connector.metadata.runtime.Procedure;
import com.metamatrix.connector.visitor.framework.LanguageObjectVisitor;
public class ProcedureImpl extends BaseLanguageObject implements IProcedure {
private String name;
- private List parameters;
- private MetadataID metadataID;
+ private List<IParameter> parameters;
+ private Procedure metadataObject;
- public ProcedureImpl(String name, List parameters, MetadataID metadataID) {
+ public ProcedureImpl(String name, List<IParameter> parameters, Procedure
metadataObject) {
this.name = name;
this.parameters = parameters;
- this.metadataID = metadataID;
+ this.metadataObject = metadataObject;
}
/**
@@ -50,7 +51,7 @@
/**
* @see com.metamatrix.data.language.IExecute#getVariableValues()
*/
- public List getParameters() {
+ public List<IParameter> getParameters() {
return parameters;
}
@@ -71,22 +72,17 @@
/*
* @see com.metamatrix.data.language.IExecute#setParameters(java.util.List)
*/
- public void setParameters(List parameters) {
+ public void setParameters(List<IParameter> parameters) {
this.parameters = parameters;
}
- /*
- * @see com.metamatrix.data.language.IMetadataReference#getMetadataID()
- */
- public MetadataID getMetadataID() {
- return this.metadataID;
+ @Override
+ public Procedure getMetadataObject() {
+ return this.metadataObject;
}
- /*
- * @see
com.metamatrix.data.language.IMetadataReference#setMetadataID(com.metamatrix.data.metadata.runtime.MetadataID)
- */
- public void setMetadataID(MetadataID metadataID) {
- this.metadataID = metadataID;
+ public void setMetadataObject(Procedure metadataID) {
+ this.metadataObject = metadataID;
}
public boolean equals(Object obj) {
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ElementImpl.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ElementImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ElementImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -29,14 +29,15 @@
import com.metamatrix.common.types.DataTypeManager;
import com.metamatrix.connector.api.ConnectorException;
import com.metamatrix.connector.metadata.runtime.Element;
+import com.metamatrix.connector.metadata.runtime.Group;
import com.metamatrix.query.metadata.SupportConstants;
/**
*/
public class ElementImpl extends TypeModelImpl implements Element {
- ElementImpl(MetadataIDImpl metadataID){
- super(metadataID);
+ ElementImpl(Object actualID, RuntimeMetadataImpl factory){
+ super(actualID, factory);
}
public Class getJavaType() throws ConnectorException {
@@ -140,5 +141,18 @@
} catch(MetaMatrixComponentException e) {
throw new ConnectorException(e);
}
+ }
+
+ @Override
+ public Group getParent() throws ConnectorException {
+ Object groupId;
+ try {
+ groupId = this.getMetadata().getGroupIDForElementID(getActualID());
+ } catch (QueryMetadataException e) {
+ throw new ConnectorException(e);
+ } catch (MetaMatrixComponentException e) {
+ throw new ConnectorException(e);
+ }
+ return new GroupImpl(groupId, getFactory());
}
}
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/GroupImpl.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/GroupImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/GroupImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -24,12 +24,36 @@
*/
package com.metamatrix.dqp.internal.datamgr.metadata;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.metamatrix.api.exception.MetaMatrixComponentException;
+import com.metamatrix.api.exception.query.QueryMetadataException;
+import com.metamatrix.connector.api.ConnectorException;
+import com.metamatrix.connector.metadata.runtime.Element;
import com.metamatrix.connector.metadata.runtime.Group;
/**
*/
public class GroupImpl extends MetadataObjectImpl implements Group {
- GroupImpl(MetadataIDImpl metadataID){
- super(metadataID);
+
+ GroupImpl(Object actualID, RuntimeMetadataImpl factory){
+ super(actualID, factory);
}
+
+ @Override
+ public List<Element> getChildren() throws ConnectorException {
+ try {
+ List elementIds = getMetadata().getElementIDsInGroupID(getActualID());
+ List<Element> result = new ArrayList<Element>(elementIds.size());
+ for (Object elementId : elementIds) {
+ result.add(new ElementImpl(elementId, getFactory()));
+ }
+ return result;
+ } catch (QueryMetadataException e) {
+ throw new ConnectorException(e);
+ } catch (MetaMatrixComponentException e) {
+ throw new ConnectorException(e);
+ }
+ }
}
Deleted:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/MetadataFactory.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/MetadataFactory.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/MetadataFactory.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -1,149 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-
-/*
- */
-package com.metamatrix.dqp.internal.datamgr.metadata;
-
-import java.util.List;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.query.QueryMetadataException;
-import com.metamatrix.connector.api.ConnectorException;
-import com.metamatrix.connector.metadata.runtime.*;
-import com.metamatrix.connector.metadata.runtime.MetadataID.Type;
-import com.metamatrix.core.util.ArgCheck;
-import com.metamatrix.query.metadata.QueryMetadataInterface;
-import com.metamatrix.query.metadata.StoredProcedureInfo;
-
-/**
- */
-public class MetadataFactory {
- private QueryMetadataInterface metadata;
- private RuntimeMetadataImpl runtimeMetadata;
-
- public MetadataFactory (QueryMetadataInterface metadata){
- ArgCheck.isNotNull(metadata);
- this.metadata = metadata;
- this.runtimeMetadata = new RuntimeMetadataImpl(this);
- }
-
- public RuntimeMetadataImpl getRuntimeMetadata(){
- return this.runtimeMetadata;
- }
-
- /**
- * Method for creating group and element MetadataIDs. It will not return an id for
virtual groups.
- * @param metadataID Object from QueryMetadataInterface representing group or element
identifier
- * @param type Either TYPE_ELEMENT or TYPE_GROUP
- * @return MetadataID
- * @throws QueryMetadataException
- * @throws MetaMatrixComponentException
- */
- public MetadataID createMetadataID(Object metadataID, Type type) throws
QueryMetadataException, MetaMatrixComponentException{
- if (type == Type.TYPE_GROUP && metadata.isVirtualGroup(metadataID)) {
- return null;
- }
- MetadataIDImpl id = new MetadataIDImpl(metadataID, getRuntimeMetadata());
- id.setType(type);
- return id;
- }
-
- /**
- * Method for creating procedure MetadataIDs.
- * @param procedureID Procedure ID
- * @return Parameter ID
- * @throws QueryMetadataException
- * @throws MetaMatrixComponentException
- */
- public MetadataID createProcedureID(Object metadataID) throws QueryMetadataException,
MetaMatrixComponentException{
- String procName = metadata.getFullName(metadataID);
- StoredProcedureInfo info = metadata.getStoredProcedureInfoForProcedure(procName);
- MetadataIDImpl id = new ProcedureIDImpl(metadataID, info, this);
- id.setType(Type.TYPE_PROCEDURE);
- return id;
- }
-
- /**
- * Special factory method for creating parameter MetadataIDs based on a procedure
MetadataID.
- * @param procedureID Procedure ID
- * @return Parameter ID
- * @throws QueryMetadataException
- * @throws MetaMatrixComponentException
- */
- public MetadataID createParameterID(ProcedureIDImpl procedureID, Object metadataID)
throws QueryMetadataException, MetaMatrixComponentException{
- ParameterIDImpl id = new ParameterIDImpl(metadataID, procedureID,
getRuntimeMetadata());
- id.setType(Type.TYPE_PARAMETER);
- return id;
- }
-
- /**
- * Special factory method for creating result set MetadataIDs based on a procedure
MetadataID.
- * @param procedureID Procedure ID
- * @return Parameter ID
- * @throws QueryMetadataException
- * @throws MetaMatrixComponentException
- */
- public MetadataID createResultSetID(ProcedureIDImpl procedureID, Object metadataID,
List resultSetColumns) throws QueryMetadataException, MetaMatrixComponentException{
- ParameterIDImpl id = new ParameterIDImpl(metadataID, procedureID,
getRuntimeMetadata(), resultSetColumns);
- id.setType(Type.TYPE_PARAMETER);
- return id;
- }
-
- public MetadataObject createMetadataObject(MetadataID id) throws
QueryMetadataException, MetaMatrixComponentException, ConnectorException {
- Type type = id.getType();
- MetadataIDImpl idImpl = (MetadataIDImpl) id;
- MetadataObject mObj = null;
- if(type == Type.TYPE_GROUP){
- mObj = new GroupImpl(idImpl);
-
- } else if(type == Type.TYPE_ELEMENT){
- mObj = new ElementImpl(idImpl);
-
- } else if(type == Type.TYPE_PROCEDURE){
- mObj = new ProcedureImpl(idImpl);
-
- } else if(type == Type.TYPE_PARAMETER) {
- mObj = new ParameterImpl(idImpl);
-
- } else{
- //throw exception
- }
- return mObj;
- }
-
- public byte[] getBinaryVDBResource(String resourcePath) throws
MetaMatrixComponentException, QueryMetadataException {
- return metadata.getBinaryVDBResource(resourcePath);
- }
-
- public String getCharacterVDBResource(String resourcePath) throws
MetaMatrixComponentException, QueryMetadataException {
- return metadata.getCharacterVDBResource(resourcePath);
- }
-
- public String[] getVDBResourcePaths() throws MetaMatrixComponentException,
QueryMetadataException {
- return metadata.getVDBResourcePaths();
- }
-
- public QueryMetadataInterface getMetadata() {
- return metadata;
- }
-}
Deleted:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/MetadataIDImpl.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/MetadataIDImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/MetadataIDImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -1,155 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-
-/*
- */
-package com.metamatrix.dqp.internal.datamgr.metadata;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.query.QueryMetadataException;
-import com.metamatrix.connector.api.ConnectorException;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
-import com.metamatrix.connector.metadata.runtime.MetadataObject;
-
-/**
- */
-public class MetadataIDImpl implements MetadataID {
- private Type type;
- private Object actualMetadataID;
- private String fullName;
- private RuntimeMetadataImpl metadata;
-
- MetadataIDImpl(Object actualMetadataID, RuntimeMetadataImpl metadata) throws
MetaMatrixComponentException {
- this.actualMetadataID = actualMetadataID;
- this.metadata = metadata;
-
- if (actualMetadataID != null) {
- try {
- fullName = metadata.getMetadata().getFullName(actualMetadataID);
- } catch (QueryMetadataException ex) {
- throw new MetaMatrixComponentException(ex, ex.getMessage());
- }
- }
- }
-
- RuntimeMetadataImpl getMetadata() {
- return this.metadata;
- }
-
- public Type getType() {
- return type;
- }
-
- public List getChildIDs() throws ConnectorException {
- if(type == Type.TYPE_GROUP && actualMetadataID != null){
- try {
- List children =
metadata.getMetadata().getElementIDsInGroupID(actualMetadataID);
- List childIDs = new ArrayList(children.size());
- Iterator iter = children.iterator();
- while(iter.hasNext()){
- MetadataIDImpl id = new MetadataIDImpl(iter.next(), metadata);
- id.setType(Type.TYPE_ELEMENT);
- childIDs.add(id);
- }
- return childIDs;
- } catch(QueryMetadataException e) {
- throw new ConnectorException(e);
- } catch(MetaMatrixComponentException e) {
- throw new ConnectorException(e);
- }
- }
- return Collections.EMPTY_LIST;
- }
-
- public MetadataID getParentID() throws ConnectorException {
- if(type == Type.TYPE_ELEMENT && actualMetadataID != null) {
- try {
- MetadataIDImpl id = new
MetadataIDImpl(metadata.getMetadata().getGroupIDForElementID(actualMetadataID),
metadata);
- id.setType(Type.TYPE_GROUP);
- return id;
- } catch(QueryMetadataException e) {
- throw new ConnectorException(e);
- } catch(MetaMatrixComponentException e) {
- throw new ConnectorException(e);
- }
-
- }
- return null;
- }
-
- public boolean equals(Object obj){
- if (this == obj) {
- return true;
- }
-
- if (this.getClass().isInstance(obj)) {
- MetadataIDImpl that = (MetadataIDImpl)obj;
- return this.actualMetadataID.equals(that.actualMetadataID);
- }
-
- return false;
- }
-
- public int hashCode(){
- return actualMetadataID.hashCode();
- }
-
- void setType(Type type){
- this.type = type;
- }
-
- Object getActualMetadataID(){
- return this.actualMetadataID;
- }
-
- public String getFullName() {
- return this.fullName;
- }
-
- /**
- * Get shortName from the metadataID.
- * @return string of shortName
- */
- public String getName() {
- String shortName = null;
- String fullName = getFullName();
- if (fullName != null && fullName.trim().length() != 0) {
- int index = fullName.lastIndexOf("."); //$NON-NLS-1$
- if(index != -1){
- shortName = fullName.substring(index + 1);
- }else{
- shortName = fullName;
- }
- }
- return shortName;
- }
-
- @Override
- public MetadataObject getMetadataObject() throws ConnectorException {
- return this.metadata.getObject(this);
- }
-}
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/MetadataObjectImpl.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/MetadataObjectImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/MetadataObjectImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -29,30 +29,40 @@
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.api.exception.query.QueryMetadataException;
import com.metamatrix.connector.api.ConnectorException;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.MetadataObject;
+import com.metamatrix.core.MetaMatrixRuntimeException;
import com.metamatrix.query.metadata.QueryMetadataInterface;
/**
*/
public abstract class MetadataObjectImpl implements MetadataObject {
- private MetadataIDImpl metadataID;
+ private Object actualID;
+ private RuntimeMetadataImpl factory;
+ private String fullName;
- MetadataObjectImpl(MetadataIDImpl metadataID){
- this.metadataID = metadataID;
+ MetadataObjectImpl(Object actualID, RuntimeMetadataImpl factory){
+ this.actualID = actualID;
+ this.factory = factory;
+ try {
+ this.fullName = getMetadata().getFullName(actualID);
+ } catch (QueryMetadataException e) {
+ throw new MetaMatrixRuntimeException(e);
+ } catch (MetaMatrixComponentException e) {
+ throw new MetaMatrixRuntimeException(e);
+ }
}
- public MetadataID getMetadataID() {
- return metadataID;
- }
-
Object getActualID() {
- return metadataID.getActualMetadataID();
+ return actualID;
}
QueryMetadataInterface getMetadata() {
- return metadataID.getMetadata().getMetadata();
+ return factory.getMetadata();
}
+
+ RuntimeMetadataImpl getFactory() {
+ return factory;
+ }
public String getNameInSource() throws ConnectorException {
try {
@@ -81,14 +91,25 @@
if (this.getClass().isInstance(obj)) {
MetadataObjectImpl that = (MetadataObjectImpl)obj;
- return this.metadataID.equals(that.metadataID);
+ return this.actualID.equals(that.actualID);
}
return false;
}
public int hashCode(){
- return metadataID.hashCode();
+ return actualID.hashCode();
}
+
+ @Override
+ public String getName() {
+ int index = fullName.lastIndexOf("."); //$NON-NLS-1$
+ return fullName.substring(index + 1);
+ }
+
+ @Override
+ public String getFullName() {
+ return fullName;
+ }
}
Deleted:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ParameterIDImpl.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ParameterIDImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ParameterIDImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -1,82 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-
-package com.metamatrix.dqp.internal.datamgr.metadata;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.connector.api.ConnectorException;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
-
-/**
- */
-public class ParameterIDImpl extends MetadataIDImpl {
-
- private ProcedureIDImpl procID;
- private List resultSetColumns;
-
- public ParameterIDImpl(Object actualMetadataID, ProcedureIDImpl procedureID,
RuntimeMetadataImpl metadata)
- throws MetaMatrixComponentException {
- super(actualMetadataID, metadata);
-
- this.procID = procedureID;
- }
-
- public ParameterIDImpl(Object actualMetadataID, ProcedureIDImpl procedureID,
RuntimeMetadataImpl metadata, List resultSetColumns)
- throws MetaMatrixComponentException {
- super(actualMetadataID, metadata);
-
- this.procID = procedureID;
- this.resultSetColumns = resultSetColumns;
- }
-
- public MetadataID getParentID() {
- return procID;
- }
-
- public boolean isResultSet() {
- return (this.resultSetColumns != null);
- }
-
- public List getChildIDs() throws ConnectorException {
- if(resultSetColumns != null && resultSetColumns.size() > 0) {
- try {
- List childIDs = new ArrayList(resultSetColumns.size());
- Iterator iter = resultSetColumns.iterator();
- while(iter.hasNext()){
- Object colID = iter.next();
- MetadataIDImpl id = new MetadataIDImpl(colID, getMetadata());
- id.setType(Type.TYPE_ELEMENT);
- childIDs.add(id);
- }
- return childIDs;
- } catch(MetaMatrixComponentException e) {
- throw new ConnectorException(e);
- }
- }
- return Collections.EMPTY_LIST;
- }
-}
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ParameterImpl.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ParameterImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ParameterImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,8 @@
package com.metamatrix.dqp.internal.datamgr.metadata;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import com.metamatrix.api.exception.MetaMatrixComponentException;
@@ -29,9 +31,9 @@
import com.metamatrix.connector.api.ConnectorException;
import com.metamatrix.connector.metadata.runtime.Element;
import com.metamatrix.connector.metadata.runtime.Parameter;
+import com.metamatrix.connector.metadata.runtime.Procedure;
import com.metamatrix.dqp.DQPPlugin;
import com.metamatrix.dqp.message.ParameterInfo;
-import com.metamatrix.query.metadata.StoredProcedureInfo;
import com.metamatrix.query.metadata.SupportConstants;
import com.metamatrix.query.sql.lang.SPParameter;
@@ -40,27 +42,18 @@
public class ParameterImpl extends TypeModelImpl implements Parameter {
private SPParameter param;
+ private Procedure parent;
/**
* @param metadataID
*/
- ParameterImpl(MetadataIDImpl metadataID) {
- super(metadataID);
+ ParameterImpl(RuntimeMetadataImpl factory, SPParameter param, Procedure parent) {
+ super(param.getMetadataID(), factory);
+ this.parent = parent;
+ this.param = param;
}
private SPParameter getParameterInfo() throws ConnectorException {
- if(param == null) {
- ParameterIDImpl paramID = (ParameterIDImpl) getMetadataID();
- StoredProcedureInfo procInfo =
((ProcedureIDImpl)paramID.getParentID()).getProcedureInfo();
- List params = procInfo.getParameters();
- for(int i=0; i<params.size(); i++) {
- SPParameter aParam = (SPParameter) params.get(i);
- if(aParam.getMetadataID().equals(paramID.getActualMetadataID())) {
- this.param = aParam;
- break;
- }
- }
- }
return param;
}
@@ -118,6 +111,21 @@
}
}
+ @Override
+ public List<Element> getChildren() throws ConnectorException {
+ if (param.getParameterType() == SPParameter.RESULT_SET) {
+ List<Element> result = new
ArrayList<Element>(param.getResultSetIDs().size());
+ for (Object elementId : param.getResultSetIDs()) {
+ result.add(new ElementImpl(elementId, getFactory()));
+ }
+ return result;
+ }
+ return Collections.emptyList();
+ }
+ @Override
+ public Procedure getParent() throws ConnectorException {
+ return parent;
+ }
}
Deleted:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ProcedureIDImpl.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ProcedureIDImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ProcedureIDImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -1,84 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-
-package com.metamatrix.dqp.internal.datamgr.metadata;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.query.QueryMetadataException;
-import com.metamatrix.connector.api.ConnectorException;
-import com.metamatrix.dqp.message.ParameterInfo;
-import com.metamatrix.query.metadata.StoredProcedureInfo;
-import com.metamatrix.query.sql.lang.SPParameter;
-
-/**
- */
-public class ProcedureIDImpl extends MetadataIDImpl {
-
- private StoredProcedureInfo procInfo;
- private MetadataFactory factory;
-
- /**
- * @param actualMetadataID
- * @param metadata
- * @throws MetaMatrixComponentException
- */
- public ProcedureIDImpl(Object actualMetadataID, StoredProcedureInfo procInfo,
MetadataFactory factory)
- throws MetaMatrixComponentException {
-
- super(actualMetadataID, factory.getRuntimeMetadata());
- this.procInfo = procInfo;
- this.factory = factory;
- }
-
- StoredProcedureInfo getProcedureInfo() {
- return this.procInfo;
- }
-
- /*
- * @see com.metamatrix.data.metadata.runtime.MetadataID#getChildIDs()
- */
- public List getChildIDs() throws ConnectorException {
- try {
- List parameters = procInfo.getParameters();
- List childIDs = new ArrayList(parameters.size());
- Iterator iter = parameters.iterator();
- while(iter.hasNext()){
- SPParameter param = (SPParameter) iter.next();
- if(param.getParameterType() == ParameterInfo.RESULT_SET) {
- childIDs.add(factory.createResultSetID(this, param.getMetadataID(),
param.getResultSetIDs()));
- } else {
- childIDs.add(factory.createParameterID(this,
param.getMetadataID()));
- }
- }
- return childIDs;
- } catch(QueryMetadataException e) {
- throw new ConnectorException(e);
- } catch(MetaMatrixComponentException e) {
- throw new ConnectorException(e);
- }
- }
-
-}
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ProcedureImpl.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ProcedureImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/ProcedureImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -24,15 +24,32 @@
*/
package com.metamatrix.dqp.internal.datamgr.metadata;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.metamatrix.connector.metadata.runtime.Parameter;
import com.metamatrix.connector.metadata.runtime.Procedure;
+import com.metamatrix.query.metadata.StoredProcedureInfo;
+import com.metamatrix.query.sql.lang.SPParameter;
/**
*/
public class ProcedureImpl extends MetadataObjectImpl implements Procedure {
+
+ private StoredProcedureInfo procInfo;
- ProcedureImpl(MetadataIDImpl metadataID){
- super(metadataID);
+ ProcedureImpl(RuntimeMetadataImpl factory, StoredProcedureInfo procInfo){
+ super(procInfo.getProcedureID(), factory);
+ this.procInfo = procInfo;
}
+ @Override
+ public List<Parameter> getChildren() {
+ List<Parameter> result = new
ArrayList<Parameter>(procInfo.getParameters().size());
+ for (SPParameter param : procInfo.getParameters()) {
+ result.add(new ParameterImpl(getFactory(), param, this));
+ }
+ return result;
+ }
}
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/RuntimeMetadataImpl.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/RuntimeMetadataImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/RuntimeMetadataImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -28,31 +28,79 @@
import com.metamatrix.api.exception.query.QueryMetadataException;
import com.metamatrix.connector.api.ConnectorException;
import com.metamatrix.connector.metadata.runtime.*;
+import com.metamatrix.core.util.ArgCheck;
import com.metamatrix.query.metadata.QueryMetadataInterface;
+import com.metamatrix.query.metadata.StoredProcedureInfo;
+import com.metamatrix.query.sql.lang.SPParameter;
/**
*/
public class RuntimeMetadataImpl implements RuntimeMetadata {
- private MetadataFactory factory;
+ private QueryMetadataInterface metadata;
- public RuntimeMetadataImpl(MetadataFactory factory){
- this.factory = factory;
+ public RuntimeMetadataImpl(QueryMetadataInterface metadata){
+ ArgCheck.isNotNull(metadata);
+ this.metadata = metadata;
}
- public MetadataObject getObject(MetadataID id) throws ConnectorException {
+ @Override
+ public Element getElement(String fullName) throws ConnectorException {
+ try {
+ Object elementId = metadata.getElementID(fullName);
+ return new ElementImpl(elementId, this);
+ } catch (QueryMetadataException e) {
+ throw new ConnectorException(e);
+ } catch (MetaMatrixComponentException e) {
+ throw new ConnectorException(e);
+ }
+ }
+
+ public ElementImpl getElement(Object elementId) {
+ return new ElementImpl(elementId, this);
+ }
+
+ @Override
+ public Group getGroup(String fullName) throws ConnectorException {
+ try {
+ Object groupId = metadata.getGroupID(fullName);
+ return getGroup(groupId);
+ } catch (QueryMetadataException e) {
+ throw new ConnectorException(e);
+ } catch (MetaMatrixComponentException e) {
+ throw new ConnectorException(e);
+ }
+ }
- try {
- return factory.createMetadataObject(id);
- } catch (QueryMetadataException e) {
- throw new ConnectorException(e);
- } catch (MetaMatrixComponentException e) {
- throw new ConnectorException(e);
- }
+ public GroupImpl getGroup(Object groupId) throws QueryMetadataException,
MetaMatrixComponentException {
+ if (!metadata.isVirtualGroup(groupId)) {
+ return new GroupImpl(groupId, this);
+ }
+ return null;
+ }
+
+ @Override
+ public Procedure getProcedure(String fullName) throws ConnectorException {
+ try {
+ StoredProcedureInfo sp = metadata.getStoredProcedureInfoForProcedure(fullName);
+ return getProcedure(sp);
+ } catch (QueryMetadataException e) {
+ throw new ConnectorException(e);
+ } catch (MetaMatrixComponentException e) {
+ throw new ConnectorException(e);
+ }
}
+ public Procedure getProcedure(StoredProcedureInfo sp) {
+ return new ProcedureImpl(this, sp);
+ }
+
+ public Parameter getParameter(SPParameter param, Procedure parent) {
+ return new ParameterImpl(this, param, parent);
+ }
+
public byte[] getBinaryVDBResource(String resourcePath) throws ConnectorException {
try {
- return factory.getBinaryVDBResource(resourcePath);
+ return metadata.getBinaryVDBResource(resourcePath);
} catch (QueryMetadataException e) {
throw new ConnectorException(e);
} catch (MetaMatrixComponentException e) {
@@ -62,7 +110,7 @@
public String getCharacterVDBResource(String resourcePath) throws ConnectorException
{
try {
- return factory.getCharacterVDBResource(resourcePath);
+ return metadata.getCharacterVDBResource(resourcePath);
} catch (QueryMetadataException e) {
throw new ConnectorException(e);
} catch (MetaMatrixComponentException e) {
@@ -72,7 +120,7 @@
public String[] getVDBResourcePaths() throws ConnectorException {
try {
- return factory.getVDBResourcePaths();
+ return metadata.getVDBResourcePaths();
} catch (QueryMetadataException e) {
throw new ConnectorException(e);
} catch (MetaMatrixComponentException e) {
@@ -81,7 +129,7 @@
}
QueryMetadataInterface getMetadata() {
- return this.factory.getMetadata();
+ return metadata;
}
}
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/TypeModelImpl.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/TypeModelImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/datamgr/metadata/TypeModelImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -37,11 +37,10 @@
TypeModel {
/**
- * @param metadataID
* @since 4.3
*/
- public TypeModelImpl(MetadataIDImpl metadataID) {
- super(metadataID);
+ public TypeModelImpl(Object actualID, RuntimeMetadataImpl factory) {
+ super(actualID, factory);
}
public int getNullability() throws ConnectorException {
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/pooling/connector/ConnectionPool.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/pooling/connector/ConnectionPool.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/pooling/connector/ConnectionPool.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -42,10 +42,9 @@
import com.metamatrix.connector.DataPlugin;
import com.metamatrix.connector.api.Connection;
import com.metamatrix.connector.api.ConnectorException;
+import com.metamatrix.connector.api.ConnectorIdentity;
import com.metamatrix.connector.api.ExecutionContext;
-import com.metamatrix.connector.identity.ConnectorIdentity;
-import com.metamatrix.connector.identity.PoolAwareConnection;
-import com.metamatrix.connector.identity.SingleIdentity;
+import com.metamatrix.connector.api.SingleIdentity;
import com.metamatrix.connector.xa.api.TransactionContext;
import com.metamatrix.connector.xa.api.XAConnector;
import com.metamatrix.core.log.MessageLevel;
@@ -455,7 +454,7 @@
}
//for testing purpose
- final List<ConnectionWrapper> getUsedConnections(PoolAwareConnection
connection) {
+ final List<ConnectionWrapper> getUsedConnections(Connection connection) {
ConnectorIdentity id = null;
ConnectionsForId connLists = null;
synchronized (this.lock) {
@@ -471,7 +470,7 @@
}
//for testing purpose
- final List<ConnectionWrapper> getUnusedConnections(PoolAwareConnection
connection) {
+ final List<ConnectionWrapper> getUnusedConnections(Connection connection) {
ConnectorIdentity id = null;
ConnectionsForId connLists = null;
synchronized (this.lock) {
Modified:
trunk/engine/src/main/java/com/metamatrix/dqp/internal/pooling/connector/ConnectionWrapper.java
===================================================================
---
trunk/engine/src/main/java/com/metamatrix/dqp/internal/pooling/connector/ConnectionWrapper.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/main/java/com/metamatrix/dqp/internal/pooling/connector/ConnectionWrapper.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -27,15 +27,14 @@
import com.metamatrix.connector.api.Connection;
import com.metamatrix.connector.api.ConnectorCapabilities;
import com.metamatrix.connector.api.ConnectorException;
+import com.metamatrix.connector.api.ConnectorIdentity;
import com.metamatrix.connector.api.Execution;
import com.metamatrix.connector.api.ExecutionContext;
-import com.metamatrix.connector.identity.ConnectorIdentity;
-import com.metamatrix.connector.identity.PoolAwareConnection;
import com.metamatrix.connector.language.ICommand;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
import com.metamatrix.connector.xa.api.XAConnection;
-public class ConnectionWrapper implements PoolAwareConnection, XAConnection {
+public class ConnectionWrapper implements XAConnection {
private Connection connection;
private long timeReturnedToPool = System.currentTimeMillis();
@@ -128,9 +127,7 @@
@Override
public void closeCalled() {
- if (this.connection instanceof PoolAwareConnection) {
- ((PoolAwareConnection)this.connection).closeCalled();
- }
+ this.connection.closeCalled();
}
public void setTestInterval(long testInterval) {
@@ -140,9 +137,7 @@
@Override
public void setConnectorIdentity(ConnectorIdentity context)
throws ConnectorException {
- if (this.connection instanceof PoolAwareConnection) {
- ((PoolAwareConnection)this.connection).setConnectorIdentity(context);
- }
+ this.connection.setConnectorIdentity(context);
}
}
Modified:
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/impl/FakeConnector.java
===================================================================
---
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/impl/FakeConnector.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/impl/FakeConnector.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -30,7 +30,6 @@
import junit.framework.Assert;
import com.metamatrix.connector.api.Connection;
-import com.metamatrix.connector.api.Connector;
import com.metamatrix.connector.api.ConnectorCapabilities;
import com.metamatrix.connector.api.ConnectorEnvironment;
import com.metamatrix.connector.api.ConnectorException;
@@ -40,6 +39,7 @@
import com.metamatrix.connector.api.ResultSetExecution;
import com.metamatrix.connector.api.UpdateExecution;
import com.metamatrix.connector.basic.BasicConnection;
+import com.metamatrix.connector.basic.BasicConnector;
import com.metamatrix.connector.basic.BasicConnectorCapabilities;
import com.metamatrix.connector.basic.BasicExecution;
import com.metamatrix.connector.language.ICommand;
@@ -49,7 +49,7 @@
import com.metamatrix.connector.xa.api.XAConnection;
import com.metamatrix.connector.xa.api.XAConnector;
-public class FakeConnector implements Connector, XAConnector {
+public class FakeConnector extends BasicConnector implements XAConnector {
private static final int RESULT_SIZE = 5;
private boolean executeBlocks;
@@ -73,10 +73,10 @@
@Override
public XAConnection getXAConnection(ExecutionContext executionContext,
TransactionContext transactionContext) throws ConnectorException {
- return new FakeXAConnection();
+ return new FakeConnection();
}
- private class FakeConnection extends BasicConnection {
+ private class FakeConnection extends BasicConnection implements XAConnection {
public boolean released = false;
public Execution createExecution(ICommand command, ExecutionContext
executionContext, RuntimeMetadata metadata) throws ConnectorException {
return new FakeBlockingExecution(executionContext);
@@ -88,15 +88,6 @@
Assert.assertFalse("The connection should not be released more than
once", released); //$NON-NLS-1$
released = true;
}
- }
-
- private final class FakeXAConnection extends FakeConnection implements XAConnection
{
- public boolean released = false;
-
- public void close() {
- Assert.assertFalse("The connection should not be released more than
once", released); //$NON-NLS-1$
- released = true;
- }
@Override
public XAResource getXAResource() throws ConnectorException {
return null;
Modified:
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/language/TestElementImpl.java
===================================================================
---
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/language/TestElementImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/language/TestElementImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -27,8 +27,7 @@
import com.metamatrix.common.types.DataTypeManager;
import com.metamatrix.connector.language.IElement;
import com.metamatrix.connector.language.IGroup;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
-import com.metamatrix.connector.metadata.runtime.MetadataID.Type;
+import com.metamatrix.connector.metadata.runtime.Element;
import com.metamatrix.dqp.internal.datamgr.metadata.TestMetadataFactory;
import com.metamatrix.query.sql.symbol.ElementSymbol;
import com.metamatrix.query.unittest.FakeMetadataObject;
@@ -96,7 +95,7 @@
public void testGetMetadataID() throws Exception {
FakeMetadataObject group = TestMetadataFactory.createGroup("pm1.g1",
null); //$NON-NLS-1$
FakeMetadataObject metadataID = TestMetadataFactory.createElement("e",
group, DataTypeManager.DefaultDataTypes.STRING, 0); //$NON-NLS-1$
- assertNotNull(example("pm1.g1", "e",
metadataID).getMetadataID()); //$NON-NLS-1$ //$NON-NLS-2$
+ assertNotNull(example("pm1.g1", "e",
metadataID).getMetadataObject()); //$NON-NLS-1$ //$NON-NLS-2$
}
public void testGetType() throws Exception {
@@ -107,10 +106,10 @@
public void testSetMetadataID() throws Exception {
Object metadataID =
TstLanguageBridgeFactory.metadata.getElementID("pm1.g1.e1"); //$NON-NLS-1$
ElementImpl element = example("pm1.g1", "e1", metadataID);
//$NON-NLS-1$ //$NON-NLS-2$
- MetadataID connID =
TstLanguageBridgeFactory.metadataFactory.createMetadataID(metadataID, Type.TYPE_ELEMENT);
- element.setMetadataID(connID);
- assertNotNull(element.getMetadataID());
- assertEquals(connID, element.getMetadataID());
+ Element elem = TstLanguageBridgeFactory.metadataFactory.getElement(metadataID);
+ element.setMetadataObject(elem);
+ assertNotNull(element.getMetadataObject());
+ assertEquals(elem, element.getMetadataObject());
}
public void helpTestEquals(IElement e1, IElement e2, boolean equal) {
Modified:
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/language/TestFunctionImpl.java
===================================================================
---
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/language/TestFunctionImpl.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/language/TestFunctionImpl.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,6 +22,8 @@
package com.metamatrix.dqp.internal.datamgr.language;
+import java.util.List;
+
import com.metamatrix.connector.language.IExpression;
import com.metamatrix.query.sql.symbol.Constant;
import com.metamatrix.query.sql.symbol.Expression;
@@ -56,11 +58,11 @@
}
public void testGetParameters() throws Exception {
- IExpression[] params = example("testFunction").getParameters();
//$NON-NLS-1$
+ List<IExpression> params =
example("testFunction").getParameters(); //$NON-NLS-1$
assertNotNull(params);
- assertEquals(2, params.length);
- for (int i = 0; i < params.length; i++) {
- assertNotNull(params[i]);
+ assertEquals(2, params.size());
+ for (int i = 0; i < params.size(); i++) {
+ assertNotNull(params.get(i));
}
}
Modified:
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/language/TstLanguageBridgeFactory.java
===================================================================
---
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/language/TstLanguageBridgeFactory.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/language/TstLanguageBridgeFactory.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,14 +22,14 @@
package com.metamatrix.dqp.internal.datamgr.language;
-import com.metamatrix.dqp.internal.datamgr.metadata.MetadataFactory;
+import com.metamatrix.dqp.internal.datamgr.metadata.RuntimeMetadataImpl;
import com.metamatrix.query.unittest.FakeMetadataFacade;
import com.metamatrix.query.unittest.FakeMetadataFactory;
public class TstLanguageBridgeFactory {
public static final FakeMetadataFacade metadata = FakeMetadataFactory.example1();
- public static final MetadataFactory metadataFactory = new MetadataFactory(metadata);
+ public static final RuntimeMetadataImpl metadataFactory = new
RuntimeMetadataImpl(metadata);
public static final LanguageBridgeFactory factory = new
LanguageBridgeFactory(metadata);
}
Modified:
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/metadata/TestMetadataFactory.java
===================================================================
---
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/metadata/TestMetadataFactory.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/test/java/com/metamatrix/dqp/internal/datamgr/metadata/TestMetadataFactory.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -30,14 +30,12 @@
import junit.framework.TestCase;
import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
-import com.metamatrix.connector.metadata.runtime.MetadataID.Type;
import com.metamatrix.query.unittest.FakeMetadataFacade;
import com.metamatrix.query.unittest.FakeMetadataObject;
import com.metamatrix.query.unittest.FakeMetadataStore;
public class TestMetadataFactory extends TestCase {
- private MetadataFactory metadataFactory;
+ private RuntimeMetadataImpl metadataFactory;
private FakeMetadataObject pm1g1;
private FakeMetadataObject pm1g1e1;
@@ -54,7 +52,7 @@
pm1g1e1 = (FakeMetadataObject)pm1g1e.get(0);
store.addObject(pm1g1);
store.addObjects(pm1g1e);
- metadataFactory = new MetadataFactory(new FakeMetadataFacade(store));
+ metadataFactory = new RuntimeMetadataImpl(new FakeMetadataFacade(store));
}
@@ -105,88 +103,50 @@
//tests
- public void testCreateMetadataID(){
- try{
- //test create MetadataID for Group
- MetadataIDImpl gID = (MetadataIDImpl)metadataFactory.createMetadataID(pm1g1,
Type.TYPE_GROUP);
- assertEquals(gID.getActualMetadataID(), pm1g1);
-
assertEquals(((MetadataIDImpl)gID.getChildIDs().get(0)).getActualMetadataID(), pm1g1e1);
-
- //test create MetadataID for Element
- MetadataIDImpl eID =
(MetadataIDImpl)metadataFactory.createMetadataID(pm1g1e1, Type.TYPE_ELEMENT);
- assertEquals(eID.getActualMetadataID(), pm1g1e1);
- assertEquals(((MetadataIDImpl)eID.getParentID()).getActualMetadataID(),
pm1g1);
- }catch(Exception e){
- e.printStackTrace();
- fail(e.getMessage());
- }
+ public void testCreateMetadataID() throws Exception {
+ //test create MetadataID for Group
+ GroupImpl gID = metadataFactory.getGroup(pm1g1);
+ assertEquals(gID.getActualID(), pm1g1);
+ assertEquals(((ElementImpl)gID.getChildren().get(0)).getActualID(), pm1g1e1);
+
+ //test create MetadataID for Element
+ ElementImpl eID = metadataFactory.getElement(pm1g1e1);
+ assertEquals(eID.getActualID(), pm1g1e1);
+ assertEquals(((GroupImpl)eID.getParent()).getActualID(), pm1g1);
}
- public void testRuntimeMetadata(){
- try{
- RuntimeMetadata runtimeMetadata = metadataFactory.getRuntimeMetadata();
- MetadataIDImpl gID = (MetadataIDImpl)metadataFactory.createMetadataID(pm1g1,
Type.TYPE_GROUP);
- GroupImpl group = (GroupImpl)runtimeMetadata.getObject(gID);
- assertEquals(group.getNameInSource(), "g1"); //$NON-NLS-1$
- assertEquals(((MetadataIDImpl)group.getMetadataID()).getActualMetadataID(),
pm1g1);
+ public void testRuntimeMetadata() throws Exception {
+ GroupImpl group = metadataFactory.getGroup(pm1g1);
+ assertEquals(group.getNameInSource(), "g1"); //$NON-NLS-1$
+ assertEquals(group.getActualID(), pm1g1);
- MetadataIDImpl eID =
(MetadataIDImpl)metadataFactory.createMetadataID(pm1g1e1, Type.TYPE_ELEMENT);
- ElementImpl element = (ElementImpl)runtimeMetadata.getObject(eID);
- assertEquals(element.getLength(), 100);
- assertEquals(element.getJavaType(),
DataTypeManager.DefaultDataClasses.STRING);
- assertEquals(element.getNameInSource(), "e1"); //$NON-NLS-1$
- assertEquals(((MetadataIDImpl)element.getMetadataID()).getActualMetadataID(),
pm1g1e1);
- }catch(Exception e){
- e.printStackTrace();
- fail(e.getMessage());
- }
+ ElementImpl element = metadataFactory.getElement(pm1g1e1);
+ assertEquals(element.getLength(), 100);
+ assertEquals(element.getJavaType(), DataTypeManager.DefaultDataClasses.STRING);
+ assertEquals(element.getNameInSource(), "e1"); //$NON-NLS-1$
+ assertEquals(element.getActualID(), pm1g1e1);
}
- public void testGetVDBResourcePaths() {
+ public void testGetVDBResourcePaths() throws Exception {
String[] expectedPaths = new String[] {"my/resource/path"};
//$NON-NLS-1$
- try {
- RuntimeMetadata runtimeMetadata = metadataFactory.getRuntimeMetadata();
- String[] mfPaths = metadataFactory.getVDBResourcePaths();
- String[] rtmdPaths = runtimeMetadata.getVDBResourcePaths();
- assertEquals(expectedPaths.length, mfPaths.length);
- assertEquals(expectedPaths.length, rtmdPaths.length);
- for (int i = 0; i < expectedPaths.length; i++) {
- assertEquals(expectedPaths[i], mfPaths[i]);
- assertEquals(expectedPaths[i], rtmdPaths[i]);
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
+ String[] mfPaths = metadataFactory.getVDBResourcePaths();
+ assertEquals(expectedPaths.length, mfPaths.length);
+ for (int i = 0; i < expectedPaths.length; i++) {
+ assertEquals(expectedPaths[i], mfPaths[i]);
}
}
- public void testGetBinaryVDBResource() {
- try {
- RuntimeMetadata runtimeMetadata = metadataFactory.getRuntimeMetadata();
- byte[] expectedBytes = "ResourceContents".getBytes();
//$NON-NLS-1$
- byte[] mfBytes = metadataFactory.getBinaryVDBResource(null);
- byte[] rtmdBytes = runtimeMetadata.getBinaryVDBResource(null);
- assertEquals(expectedBytes.length, mfBytes.length);
- assertEquals(expectedBytes.length, rtmdBytes.length);
- for (int i = 0; i < expectedBytes.length; i++) {
- assertEquals("Byte at index " + i + " differs from
expected content", expectedBytes[i], mfBytes[i]); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Byte at index " + i + " differs from
expected content", expectedBytes[i], rtmdBytes[i]); //$NON-NLS-1$ //$NON-NLS-2$
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
+ public void testGetBinaryVDBResource() throws Exception {
+ byte[] expectedBytes = "ResourceContents".getBytes(); //$NON-NLS-1$
+ byte[] mfBytes = metadataFactory.getBinaryVDBResource(null);
+ assertEquals(expectedBytes.length, mfBytes.length);
+ for (int i = 0; i < expectedBytes.length; i++) {
+ assertEquals("Byte at index " + i + " differs from expected
content", expectedBytes[i], mfBytes[i]); //$NON-NLS-1$ //$NON-NLS-2$
}
}
- public void testGetCharacterVDBResource() {
- try {
- RuntimeMetadata runtimeMetadata = metadataFactory.getRuntimeMetadata();
- assertEquals("ResourceContents",
metadataFactory.getCharacterVDBResource(null)); //$NON-NLS-1$
- assertEquals("ResourceContents",
runtimeMetadata.getCharacterVDBResource(null)); //$NON-NLS-1$
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
+ public void testGetCharacterVDBResource() throws Exception {
+ assertEquals("ResourceContents",
metadataFactory.getCharacterVDBResource(null)); //$NON-NLS-1$
}
}
Modified:
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/FakeSourceConnectionFactory.java
===================================================================
---
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/FakeSourceConnectionFactory.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/FakeSourceConnectionFactory.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -25,19 +25,19 @@
package com.metamatrix.dqp.internal.pooling.connector;
import com.metamatrix.connector.api.Connection;
-import com.metamatrix.connector.api.Connector;
import com.metamatrix.connector.api.ConnectorCapabilities;
import com.metamatrix.connector.api.ConnectorEnvironment;
import com.metamatrix.connector.api.ConnectorException;
import com.metamatrix.connector.api.Execution;
import com.metamatrix.connector.api.ExecutionContext;
import com.metamatrix.connector.basic.BasicConnection;
+import com.metamatrix.connector.basic.BasicConnector;
import com.metamatrix.connector.language.ICommand;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
/**
*/
-public class FakeSourceConnectionFactory implements Connector {
+public class FakeSourceConnectionFactory extends BasicConnector {
static int connCnt;
static boolean alive = true;
Modified:
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/FakeUserIdentityConnectionFactory.java
===================================================================
---
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/FakeUserIdentityConnectionFactory.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/FakeUserIdentityConnectionFactory.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -25,14 +25,13 @@
package com.metamatrix.dqp.internal.pooling.connector;
import com.metamatrix.connector.api.ConnectorException;
+import com.metamatrix.connector.api.ConnectorIdentity;
import com.metamatrix.connector.api.ExecutionContext;
-import com.metamatrix.connector.identity.ConnectorIdentity;
-import com.metamatrix.connector.identity.ConnectorIdentityFactory;
-import com.metamatrix.connector.identity.UserIdentity;
+import com.metamatrix.connector.api.MappedUserIdentity;
/**
*/
-public class FakeUserIdentityConnectionFactory extends FakeSourceConnectionFactory
implements ConnectorIdentityFactory {
+public class FakeUserIdentityConnectionFactory extends FakeSourceConnectionFactory {
/*
* @see
com.metamatrix.data.pool.SourceConnectionFactory#createIdentity(com.metamatrix.data.SecurityContext)
@@ -42,7 +41,7 @@
return null;
}
//use user name for now
- return new UserIdentity(context.getUser(), null, null);
+ return new MappedUserIdentity(context.getUser(), null, null);
}
}
Modified:
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/TestConnectionPool.java
===================================================================
---
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/TestConnectionPool.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/TestConnectionPool.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -29,7 +29,7 @@
import junit.framework.TestCase;
import com.metamatrix.connector.api.ExecutionContext;
-import com.metamatrix.connector.identity.UserIdentity;
+import com.metamatrix.connector.api.MappedUserIdentity;
import com.metamatrix.dqp.internal.datamgr.impl.ConnectorWrapper;
import com.metamatrix.dqp.internal.datamgr.impl.ExecutionContextImpl;
@@ -69,7 +69,7 @@
public static ExecutionContext createContext(final String user, boolean userIdentity)
{
ExecutionContextImpl context = new ExecutionContextImpl(null, null, user, null,
null, null, null, null, null, null, false);
if (userIdentity) {
- context.setConnectorIdentity(new UserIdentity(context.getUser(), null, null));
+ context.setConnectorIdentity(new MappedUserIdentity(context.getUser(), null,
null));
}
return context;
}
Modified:
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/TestConnectionWrapper.java
===================================================================
---
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/TestConnectionWrapper.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/TestConnectionWrapper.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -26,13 +26,12 @@
import org.mockito.Mockito;
-import com.metamatrix.connector.api.Connection;
-import com.metamatrix.connector.identity.PoolAwareConnection;
+import com.metamatrix.connector.basic.BasicConnection;
public class TestConnectionWrapper extends TestCase {
public void testIdleTime() throws Exception {
- ConnectionWrapper wrapper = new ConnectionWrapper(Mockito.mock(Connection.class),
Mockito.mock(ConnectionPool.class), 1);
+ ConnectionWrapper wrapper = new ConnectionWrapper(Mockito.mock(BasicConnection.class),
Mockito.mock(ConnectionPool.class), 1);
long time = wrapper.getTimeReturnedToPool();
Thread.sleep(5);
wrapper.close();
@@ -40,7 +39,7 @@
}
public void testIsAliveTestInterval() throws Exception {
- PoolAwareConnection connection = Mockito.mock(PoolAwareConnection.class);
+ BasicConnection connection = Mockito.mock(BasicConnection.class);
Mockito.stub(connection.isAlive()).toReturn(Boolean.TRUE);
ConnectionWrapper wrapper = new ConnectionWrapper(connection,
Mockito.mock(ConnectionPool.class), 1);
wrapper.setTestInterval(-1); //trigger an actual call.
Copied:
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/TestPerUserPool.java
(from rev 486,
trunk/connectors/connector-jdbc/src/test/java/com/metamatrix/connector/jdbc/userpool/TestPerUserPool.java)
===================================================================
---
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/TestPerUserPool.java
(rev 0)
+++
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/TestPerUserPool.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -0,0 +1,141 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+
+package com.metamatrix.dqp.internal.pooling.connector;
+
+import java.io.Serializable;
+import java.util.Properties;
+
+import junit.framework.TestCase;
+
+import org.mockito.Mockito;
+
+import com.metamatrix.common.application.ApplicationEnvironment;
+import com.metamatrix.connector.api.Connection;
+import com.metamatrix.connector.api.Connector;
+import com.metamatrix.connector.api.ConnectorCapabilities;
+import com.metamatrix.connector.api.ConnectorEnvironment;
+import com.metamatrix.connector.api.ConnectorException;
+import com.metamatrix.connector.api.ConnectorLogger;
+import com.metamatrix.connector.api.CredentialMap;
+import com.metamatrix.connector.api.ExecutionContext;
+import com.metamatrix.connector.api.MappedUserIdentity;
+import com.metamatrix.connector.basic.BasicConnector;
+import com.metamatrix.connector.internal.ConnectorPropertyNames;
+import com.metamatrix.dqp.internal.datamgr.impl.ConnectorEnvironmentImpl;
+import com.metamatrix.dqp.internal.datamgr.impl.ExecutionContextImpl;
+
+/**
+ */
+public class TestPerUserPool extends TestCase {
+
+ public TestPerUserPool(String name) {
+ super(name);
+ }
+
+ private Connector getTestConnector(ConnectorEnvironment env) throws
ConnectorException {
+ BasicConnector con = new BasicConnector() {
+
+ @Override
+ public ConnectorCapabilities getCapabilities() {
+ return null;
+ }
+
+ @Override
+ public Connection getConnection(ExecutionContext context)
+ throws ConnectorException {
+ assertTrue(context.getConnectorIdentity() instanceof MappedUserIdentity);
+ return null;
+ }
+
+ @Override
+ public void start(ConnectorEnvironment environment)
+ throws ConnectorException {
+
+ }
+
+ @Override
+ public void stop() {
+
+ }
+
+ };
+ con.setUseCredentialMap(true);
+ con.setAdminConnectionsAllowed(false);
+ con.setConnectorName("oracle system");
+ con.start(env);
+ return con;
+ }
+
+ public void testWrongCredentials() throws Exception {
+ ConnectorEnvironment env = initConnectorEnvironment();
+ Connector factory = getTestConnector(env);
+ try {
+ ExecutionContext ctx = createSecurityContext("pw1", false,
factory); //$NON-NLS-1$
+ factory.getConnection(ctx);
+ fail("expected failure"); //$NON-NLS-1$
+ } catch (ConnectorException e) {
+ assertEquals("Unable to extract credentials from command payload or trusted
session payload for per-user connection.", e.getMessage()); //$NON-NLS-1$
+ }
+ }
+
+ private ConnectorEnvironment initConnectorEnvironment() throws Exception {
+ final Properties connProps = new Properties();
+ connProps.put(ConnectorPropertyNames.CONNECTOR_BINDING_NAME, "oracle
system"); //$NON-NLS-1$
+ return new ConnectorEnvironmentImpl(connProps,
Mockito.mock(ConnectorLogger.class), new ApplicationEnvironment());
+ }
+
+ private ExecutionContext createSecurityContext(String credentialsStr, boolean useMap,
Connector factory) throws Exception {
+ Serializable credentials = credentialsStr;
+ if (useMap) {
+ credentials = CredentialMap.parseCredentials(credentialsStr);
+ }
+
+ // session payload
+ ExecutionContextImpl impl = new ExecutionContextImpl(null, null, null,
credentials, null, null, null, null, null, null, false);
+ impl.setConnectorIdentity(factory.createIdentity(impl));
+ return impl;
+ }
+
+ public void testCredentialMapInSessionPayload() throws Exception {
+ ConnectorEnvironment env = initConnectorEnvironment();
+ Connector factory = getTestConnector(env);
+ ExecutionContext ctx = createSecurityContext("(system=oracle
system,user=bqt2,password=mm)", true, factory); //$NON-NLS-1$
+ factory.getConnection(ctx);
+ }
+
+ public void testCredentialMapMissingSystem() throws Exception {
+ ConnectorEnvironment env = initConnectorEnvironment();
+ Connector factory = getTestConnector(env);
+
+ // Set system to "x" instead of "oracle system" which will
cause no credentials to be found
+ try {
+ ExecutionContext ctx =
createSecurityContext("(system=x,user=bqt2,password=mm)", true, factory);
//$NON-NLS-1$
+ factory.getConnection(ctx);
+ fail("Expected exception when creating connection with missing system
credentials"); //$NON-NLS-1$
+ } catch(Exception e) {
+ // expected
+ assertEquals("Payload missing credentials for oracle system",
e.getMessage()); //$NON-NLS-1$
+ }
+ }
+
+}
Property changes on:
trunk/engine/src/test/java/com/metamatrix/dqp/internal/pooling/connector/TestPerUserPool.java
___________________________________________________________________
Name: svn:mergeinfo
+
Modified:
trunk/engine/src/test/java/com/metamatrix/query/unittest/QueryMetadataInterfaceBuilder.java
===================================================================
---
trunk/engine/src/test/java/com/metamatrix/query/unittest/QueryMetadataInterfaceBuilder.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/engine/src/test/java/com/metamatrix/query/unittest/QueryMetadataInterfaceBuilder.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -31,7 +31,6 @@
import com.metamatrix.common.types.DataTypeManager;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
import com.metamatrix.core.MetaMatrixRuntimeException;
-import com.metamatrix.dqp.internal.datamgr.metadata.MetadataFactory;
import com.metamatrix.dqp.internal.datamgr.metadata.RuntimeMetadataImpl;
import com.metamatrix.dqp.message.ParameterInfo;
import com.metamatrix.query.metadata.QueryMetadataInterface;
@@ -172,7 +171,7 @@
}
public RuntimeMetadata getRuntimeMetadata(){
- return new RuntimeMetadataImpl(new MetadataFactory(getQueryMetadata()));
+ return new RuntimeMetadataImpl(getQueryMetadata());
}
private FakeMetadataObject createPhysicalModel(String name) {
Modified:
trunk/test-integration/src/test/java/com/metamatrix/cdk/api/TestTranslationUtility.java
===================================================================
---
trunk/test-integration/src/test/java/com/metamatrix/cdk/api/TestTranslationUtility.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/test-integration/src/test/java/com/metamatrix/cdk/api/TestTranslationUtility.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -27,7 +27,6 @@
import com.metamatrix.connector.language.ICommand;
import com.metamatrix.connector.language.IGroup;
import com.metamatrix.connector.language.IQuery;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.MetadataObject;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
import com.metamatrix.core.util.UnitTestUtil;
@@ -87,11 +86,10 @@
// Translate command to get some ids
IQuery query = (IQuery) util.parseCommand("select * from
partssupplier.parts"); //$NON-NLS-1$
IGroup group = (IGroup) query.getFrom().getItems().get(0);
- MetadataID mid = group.getMetadataID();
+ MetadataObject mid = group.getMetadataObject();
assertEquals("PartsSupplier.PARTSSUPPLIER.PARTS", mid.getFullName());
//$NON-NLS-1$
// Use RMD to get stuff
- MetadataObject groupObj = rmd.getObject(mid);
- assertEquals("PARTS", groupObj.getNameInSource()); //$NON-NLS-1$
+ assertEquals("PARTS", mid.getNameInSource()); //$NON-NLS-1$
}
}
Modified:
trunk/test-integration/src/test/java/com/metamatrix/connector/jdbc/extension/TestSQLConversionVisitor.java
===================================================================
---
trunk/test-integration/src/test/java/com/metamatrix/connector/jdbc/extension/TestSQLConversionVisitor.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/test-integration/src/test/java/com/metamatrix/connector/jdbc/extension/TestSQLConversionVisitor.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -113,7 +113,7 @@
throw new RuntimeException(e);
}
}
- public static final RuntimeMetadata metadata =
TstLanguageBridgeFactory.metadataFactory.getRuntimeMetadata();
+ public static final RuntimeMetadata metadata =
TstLanguageBridgeFactory.metadataFactory;
private String getStringWithContext(ILanguageObject obj) throws ConnectorException {
Properties props = new Properties();
Modified:
trunk/test-integration/src/test/java/com/metamatrix/connector/jdbc/oracle/TestOracleSQLConversionVisitor.java
===================================================================
---
trunk/test-integration/src/test/java/com/metamatrix/connector/jdbc/oracle/TestOracleSQLConversionVisitor.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/test-integration/src/test/java/com/metamatrix/connector/jdbc/oracle/TestOracleSQLConversionVisitor.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -43,7 +43,6 @@
import com.metamatrix.dqp.internal.datamgr.impl.ConnectorEnvironmentImpl;
import com.metamatrix.dqp.internal.datamgr.impl.ExecutionContextImpl;
import com.metamatrix.dqp.internal.datamgr.impl.FakeExecutionContextImpl;
-import com.metamatrix.dqp.internal.datamgr.metadata.MetadataFactory;
import com.metamatrix.dqp.internal.datamgr.metadata.RuntimeMetadataImpl;
import com.metamatrix.query.metadata.QueryMetadataInterface;
import com.metamatrix.query.unittest.FakeMetadataFacade;
@@ -106,7 +105,7 @@
// Convert from sql to objects
CommandBuilder commandBuilder = new CommandBuilder(metadata);
ICommand obj = commandBuilder.getCommand(input);
- RuntimeMetadata runtimeMetadata = new RuntimeMetadataImpl(new
MetadataFactory(metadata));
+ RuntimeMetadata runtimeMetadata = new RuntimeMetadataImpl(metadata);
this.helpTestVisitor(obj, runtimeMetadata, modifiers, context, dbmsTimeZone,
expectedOutput);
}
Modified:
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/MockConnector.java
===================================================================
---
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/MockConnector.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/MockConnector.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -7,7 +7,6 @@
import org.mockito.Mockito;
import com.metamatrix.connector.api.Connection;
-import com.metamatrix.connector.api.Connector;
import com.metamatrix.connector.api.ConnectorCapabilities;
import com.metamatrix.connector.api.ConnectorEnvironment;
import com.metamatrix.connector.api.ConnectorException;
@@ -15,6 +14,7 @@
import com.metamatrix.connector.api.ProcedureExecution;
import com.metamatrix.connector.api.ResultSetExecution;
import com.metamatrix.connector.basic.BasicConnection;
+import com.metamatrix.connector.basic.BasicConnector;
import com.metamatrix.connector.basic.BasicConnectorCapabilities;
import com.metamatrix.connector.language.IElement;
import com.metamatrix.connector.language.IGroup;
@@ -25,7 +25,7 @@
import com.metamatrix.connector.metadata.runtime.MetadataObject;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
-public class MockConnector implements Connector {
+public class MockConnector extends BasicConnector {
@Override
public ConnectorCapabilities getCapabilities() {
@@ -47,7 +47,7 @@
Properties props = new Properties();
props.setProperty("customBehaviour", "SkipExecute");//$NON-NLS-1$
//$NON-NLS-2$
- MetadataObject metaObject = metadata.getObject(procedure.getMetadataID());
+ MetadataObject metaObject = procedure.getMetadataObject();
TestCase.assertEquals("AnyModel.ProcedureB",procedure.getProcedureName());
//$NON-NLS-1$
TestCase.assertEquals("PROC", metaObject.getNameInSource());
//$NON-NLS-1$
@@ -64,13 +64,13 @@
Properties groupProps = new Properties();
groupProps.setProperty("customName",
"CustomTableA");//$NON-NLS-1$ //$NON-NLS-2$
IGroup group = (IGroup)query.getProjectedQuery().getFrom().getItems().get(0);
- MetadataObject groupMD = metadata.getObject(group.getMetadataID());
+ MetadataObject groupMD = group.getMetadataObject();
TestCase.assertEquals(groupProps, groupMD.getProperties());
ISelectSymbol symbl =
(ISelectSymbol)query.getProjectedQuery().getSelect().getSelectSymbols().get(0);
IElement element = (IElement)symbl.getExpression();
- Element elementMD = (Element)metadata.getObject(element.getMetadataID());
+ Element elementMD = element.getMetadataObject();
Properties elementProps = new Properties();
elementProps.setProperty("customPosition", "11");//$NON-NLS-1$
//$NON-NLS-2$
@@ -98,7 +98,7 @@
ISelectSymbol symbl2 =
(ISelectSymbol)query.getProjectedQuery().getSelect().getSelectSymbols().get(1);
IElement element2 = (IElement)symbl2.getExpression();
- Element elementMD2 = (Element)metadata.getObject(element2.getMetadataID());
+ Element elementMD2 = element2.getMetadataObject();
Properties elementProps2 = new Properties();
elementProps2.setProperty("customPosition", "12");//$NON-NLS-1$
//$NON-NLS-2$
Modified:
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestElement.java
===================================================================
---
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestElement.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestElement.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -31,7 +31,6 @@
import com.metamatrix.connector.language.IQuery;
import com.metamatrix.connector.language.ISelectSymbol;
import com.metamatrix.connector.metadata.runtime.Element;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.core.util.UnitTestUtil;
/**
@@ -59,8 +58,7 @@
IQuery query = (IQuery) transUtil.parseCommand("SELECT " + elementName
+ " FROM " + groupName); //$NON-NLS-1$ //$NON-NLS-2$
ISelectSymbol symbol = (ISelectSymbol)
query.getSelect().getSelectSymbols().get(0);
IElement element = (IElement) symbol.getExpression();
- MetadataID metadataID = element.getMetadataID();
- return (Element) transUtil.createRuntimeMetadata().getObject(metadataID);
+ return element.getMetadataObject();
}
public void helpTestElement(String fullGroupName, String elementShortName,
TranslationUtility transUtil,
Modified:
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestGroup.java
===================================================================
---
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestGroup.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestGroup.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -30,7 +30,6 @@
import com.metamatrix.connector.language.IGroup;
import com.metamatrix.connector.language.IQuery;
import com.metamatrix.connector.metadata.runtime.Group;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.core.util.UnitTestUtil;
/**
@@ -60,8 +59,7 @@
public Group getGroup(String groupName, TranslationUtility transUtil) throws
Exception {
IQuery query = (IQuery) transUtil.parseCommand("SELECT 1 FROM " +
groupName); //$NON-NLS-1$
IGroup group = (IGroup) query.getFrom().getItems().get(0);
- MetadataID metadataID = group.getMetadataID();
- return (Group) transUtil.createRuntimeMetadata().getObject(metadataID);
+ return group.getMetadataObject();
}
public void helpTestGroup(String fullGroupName, String nameInSource, Properties
expectedProps, TranslationUtility transUtil) throws Exception {
Deleted:
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestMetadataID.java
===================================================================
---
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestMetadataID.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestMetadataID.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -1,188 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library 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 library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-
-package com.metamatrix.data.metadata.runtime;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import com.metamatrix.cdk.api.TranslationUtility;
-import com.metamatrix.connector.language.IElement;
-import com.metamatrix.connector.language.IGroup;
-import com.metamatrix.connector.language.IProcedure;
-import com.metamatrix.connector.language.IQuery;
-import com.metamatrix.connector.language.ISelectSymbol;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
-import com.metamatrix.connector.metadata.runtime.MetadataID.Type;
-import com.metamatrix.core.util.UnitTestUtil;
-
-/**
- */
-public class TestMetadataID extends TestCase {
-
- private static TranslationUtility CONNECTOR_METADATA_UTILITY =
createTranslationUtility(getTestVDBName());
-
- /**
- * Constructor for TestMetadataID.
- * @param name
- */
- public TestMetadataID(String name) {
- super(name);
- }
-
- private static String getTestVDBName() {
- return UnitTestUtil.getTestDataPath() + "/ConnectorMetadata.vdb";
//$NON-NLS-1$
- }
-
- public static TranslationUtility createTranslationUtility(String vdbName) {
- return new TranslationUtility(vdbName);
- }
-
-
- // ################ TEST GROUP METADATAID ######################
-
- public MetadataID getGroupID(String groupName, TranslationUtility transUtil) {
- IQuery query = (IQuery) transUtil.parseCommand("SELECT 1 FROM " +
groupName); //$NON-NLS-1$
- IGroup group = (IGroup) query.getFrom().getItems().get(0);
- return group.getMetadataID();
- }
-
- public void helpTestGroupID(String fullGroupName, String shortGroupName, int
elementCount, TranslationUtility transUtil) throws Exception {
- MetadataID groupID = getGroupID(fullGroupName, transUtil);
- assertEquals(fullGroupName, groupID.getFullName());
- assertEquals(shortGroupName, groupID.getName());
- assertEquals(Type.TYPE_GROUP, groupID.getType());
- assertNull(groupID.getParentID());
-
- // Check children
- List children = groupID.getChildIDs();
- assertEquals(elementCount, children.size());
- Iterator childIter = children.iterator();
- while(childIter.hasNext()) {
- MetadataID childID = (MetadataID) childIter.next();
- assertEquals(Type.TYPE_ELEMENT, childID.getType());
- assertEquals(groupID, childID.getParentID());
- assertTrue(childID.getFullName().startsWith(groupID.getFullName()));
- }
- }
-
- public void testGroupID() throws Exception {
- helpTestGroupID("ConnectorMetadata.TestTable", "TestTable",
7, CONNECTOR_METADATA_UTILITY);//$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public void testGroupID_longName() throws Exception {
- helpTestGroupID("ConnectorMetadata.TestCatalog.TestSchema.TestTable2",
"TestTable2", 1, CONNECTOR_METADATA_UTILITY);//$NON-NLS-1$ //$NON-NLS-2$
- }
-
- // ################ TEST ELEMENT METADATAID ######################
-
- public MetadataID getElementID(String groupName, String elementName,
TranslationUtility transUtil) {
- IQuery query = (IQuery) transUtil.parseCommand("SELECT " + elementName
+ " FROM " + groupName); //$NON-NLS-1$ //$NON-NLS-2$
- ISelectSymbol symbol = (ISelectSymbol)
query.getSelect().getSelectSymbols().get(0);
- IElement element = (IElement) symbol.getExpression();
- return element.getMetadataID();
- }
-
- public void helpTestElementID(String groupName, String elementName,
TranslationUtility transUtil) throws Exception {
- MetadataID elementID = getElementID(groupName, elementName, transUtil);
- assertEquals(Type.TYPE_ELEMENT, elementID.getType());
- assertEquals(groupName + "." + elementName, elementID.getFullName());
//$NON-NLS-1$
- assertEquals(elementName, elementID.getName());
- assertEquals(Collections.EMPTY_LIST, elementID.getChildIDs());
- assertNotNull(elementID.getParentID());
- assertEquals(groupName, elementID.getParentID().getFullName());
- }
-
- public void testElementID() throws Exception {
- helpTestElementID("ConnectorMetadata.TestTable",
"TestNameInSource", CONNECTOR_METADATA_UTILITY);//$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public void testElementID_longName() throws Exception {
-
helpTestElementID("ConnectorMetadata.TestCatalog.TestSchema.TestTable2",
"TestCol", CONNECTOR_METADATA_UTILITY);//$NON-NLS-1$ //$NON-NLS-2$
- }
-
- // ################ TEST PROCEDURE AND PARAMETER METADATAID ######################
-
- public MetadataID getProcedureID(String procName, int inputParamCount,
TranslationUtility transUtil) {
- StringBuffer sql = new StringBuffer("EXEC "); //$NON-NLS-1$
- sql.append(procName);
- sql.append("("); //$NON-NLS-1$
- for(int i=0; i<inputParamCount; i++) {
- sql.append("null"); //$NON-NLS-1$
- if(i<(inputParamCount-1)) {
- sql.append(", "); //$NON-NLS-1$
- }
- }
- sql.append(")"); //$NON-NLS-1$
-
- IProcedure proc = (IProcedure) transUtil.parseCommand(sql.toString());
- return proc.getMetadataID();
- }
-
- public void helpTestProcedureID(String procName, String shortName, int
inputParamCount, String[] paramNames, TranslationUtility transUtil) throws Exception {
- MetadataID procID = getProcedureID(procName, inputParamCount, transUtil);
- assertEquals(Type.TYPE_PROCEDURE, procID.getType());
- assertEquals(procName, procID.getFullName()); //$NON-NLS-1$
- assertNull(procID.getParentID());
- assertEquals(shortName, procID.getName());
-
- // Check children
- List children = procID.getChildIDs();
- assertEquals(paramNames.length, children.size());
- Set actualParamNames = new HashSet();
- Iterator childIter = children.iterator();
- while(childIter.hasNext()) {
- MetadataID childID = (MetadataID) childIter.next();
- assertEquals(Type.TYPE_PARAMETER, childID.getType());
- assertEquals(procID, childID.getParentID());
- assertTrue(childID.getFullName().startsWith(procID.getFullName()));
-
- actualParamNames.add(childID.getName());
- }
-
- // Compare actual with expected param names
- Set expectedParamNames = new HashSet(Arrays.asList(paramNames));
- assertEquals(expectedParamNames, actualParamNames);
- }
-
- public void testProcedureID() throws Exception {
- String[] paramNames = new String[] { "InParam", "OutParam",
"InOutParam", "ReturnParam" }; //$NON-NLS-1$ //$NON-NLS-2$
//$NON-NLS-3$//$NON-NLS-4$
- helpTestProcedureID("ConnectorMetadata.TestProc1",
"TestProc1", 2, paramNames, CONNECTOR_METADATA_UTILITY); //$NON-NLS-1$
//$NON-NLS-2$
- }
-
- public void testProcedureID_resultSet() throws Exception {
- String[] paramNames = new String[] { "Param1", "RSParam" };
//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$//$NON-NLS-4$
- helpTestProcedureID("ConnectorMetadata.TestProc2",
"TestProc2", 1, paramNames, CONNECTOR_METADATA_UTILITY); //$NON-NLS-1$
//$NON-NLS-2$
- }
-
- public void testProcedureID_longName() throws Exception {
-
helpTestProcedureID("ConnectorMetadata.TestCatalog.TestSchema.TestProc",
"TestProc", 0, new String[0], CONNECTOR_METADATA_UTILITY); //$NON-NLS-1$
//$NON-NLS-2$
- }
-
-
-}
Copied:
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestMetadataObject.java
(from rev 480,
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestMetadataID.java)
===================================================================
---
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestMetadataObject.java
(rev 0)
+++
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestMetadataObject.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -0,0 +1,175 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+
+package com.metamatrix.data.metadata.runtime;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import junit.framework.TestCase;
+
+import com.metamatrix.cdk.api.TranslationUtility;
+import com.metamatrix.connector.language.IElement;
+import com.metamatrix.connector.language.IGroup;
+import com.metamatrix.connector.language.IProcedure;
+import com.metamatrix.connector.language.IQuery;
+import com.metamatrix.connector.language.ISelectSymbol;
+import com.metamatrix.connector.metadata.runtime.Element;
+import com.metamatrix.connector.metadata.runtime.Group;
+import com.metamatrix.connector.metadata.runtime.Parameter;
+import com.metamatrix.connector.metadata.runtime.Procedure;
+import com.metamatrix.core.util.UnitTestUtil;
+
+/**
+ */
+public class TestMetadataObject extends TestCase {
+
+ private static TranslationUtility CONNECTOR_METADATA_UTILITY =
createTranslationUtility(getTestVDBName());
+
+ /**
+ * Constructor for TestMetadataID.
+ * @param name
+ */
+ public TestMetadataObject(String name) {
+ super(name);
+ }
+
+ private static String getTestVDBName() {
+ return UnitTestUtil.getTestDataPath() + "/ConnectorMetadata.vdb";
//$NON-NLS-1$
+ }
+
+ public static TranslationUtility createTranslationUtility(String vdbName) {
+ return new TranslationUtility(vdbName);
+ }
+
+
+ // ################ TEST GROUP METADATAID ######################
+
+ public Group getGroupID(String groupName, TranslationUtility transUtil) {
+ IQuery query = (IQuery) transUtil.parseCommand("SELECT 1 FROM " +
groupName); //$NON-NLS-1$
+ IGroup group = (IGroup) query.getFrom().getItems().get(0);
+ return group.getMetadataObject();
+ }
+
+ public void helpTestGroupID(String fullGroupName, String shortGroupName, int
elementCount, TranslationUtility transUtil) throws Exception {
+ Group groupID = getGroupID(fullGroupName, transUtil);
+ assertEquals(fullGroupName, groupID.getFullName());
+ assertEquals(shortGroupName, groupID.getName());
+
+ // Check children
+ List<Element> children = groupID.getChildren();
+ assertEquals(elementCount, children.size());
+ for (Element element : children) {
+ assertEquals(groupID, element.getParent());
+ assertTrue(element.getFullName().startsWith(groupID.getFullName()));
+ }
+ }
+
+ public void testGroupID() throws Exception {
+ helpTestGroupID("ConnectorMetadata.TestTable", "TestTable",
7, CONNECTOR_METADATA_UTILITY);//$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public void testGroupID_longName() throws Exception {
+ helpTestGroupID("ConnectorMetadata.TestCatalog.TestSchema.TestTable2",
"TestTable2", 1, CONNECTOR_METADATA_UTILITY);//$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ // ################ TEST ELEMENT METADATAID ######################
+
+ public Element getElementID(String groupName, String elementName, TranslationUtility
transUtil) {
+ IQuery query = (IQuery) transUtil.parseCommand("SELECT " + elementName
+ " FROM " + groupName); //$NON-NLS-1$ //$NON-NLS-2$
+ ISelectSymbol symbol = (ISelectSymbol)
query.getSelect().getSelectSymbols().get(0);
+ IElement element = (IElement) symbol.getExpression();
+ return element.getMetadataObject();
+ }
+
+ public void helpTestElementID(String groupName, String elementName,
TranslationUtility transUtil) throws Exception {
+ Element elementID = getElementID(groupName, elementName, transUtil);
+ assertEquals(groupName + "." + elementName, elementID.getFullName());
//$NON-NLS-1$
+ assertEquals(elementName, elementID.getName());
+ assertNotNull(elementID.getParent());
+ assertEquals(groupName, elementID.getParent().getFullName());
+ }
+
+ public void testElementID() throws Exception {
+ helpTestElementID("ConnectorMetadata.TestTable",
"TestNameInSource", CONNECTOR_METADATA_UTILITY);//$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public void testElementID_longName() throws Exception {
+
helpTestElementID("ConnectorMetadata.TestCatalog.TestSchema.TestTable2",
"TestCol", CONNECTOR_METADATA_UTILITY);//$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ // ################ TEST PROCEDURE AND PARAMETER METADATAID ######################
+
+ public Procedure getProcedureID(String procName, int inputParamCount,
TranslationUtility transUtil) {
+ StringBuffer sql = new StringBuffer("EXEC "); //$NON-NLS-1$
+ sql.append(procName);
+ sql.append("("); //$NON-NLS-1$
+ for(int i=0; i<inputParamCount; i++) {
+ sql.append("null"); //$NON-NLS-1$
+ if(i<(inputParamCount-1)) {
+ sql.append(", "); //$NON-NLS-1$
+ }
+ }
+ sql.append(")"); //$NON-NLS-1$
+
+ IProcedure proc = (IProcedure) transUtil.parseCommand(sql.toString());
+ return proc.getMetadataObject();
+ }
+
+ public void helpTestProcedureID(String procName, String shortName, int
inputParamCount, String[] paramNames, TranslationUtility transUtil) throws Exception {
+ Procedure procID = getProcedureID(procName, inputParamCount, transUtil);
+ assertEquals(procName, procID.getFullName()); //$NON-NLS-1$
+ assertEquals(shortName, procID.getName());
+
+ // Check children
+ List<Parameter> children = procID.getChildren();
+ assertEquals(paramNames.length, children.size());
+ Set actualParamNames = new HashSet();
+ for (Parameter childID : children) {
+ assertEquals(procID, childID.getParent());
+ assertTrue(childID.getFullName().startsWith(procID.getFullName()));
+ actualParamNames.add(childID.getName());
+ }
+
+ // Compare actual with expected param names
+ Set expectedParamNames = new HashSet(Arrays.asList(paramNames));
+ assertEquals(expectedParamNames, actualParamNames);
+ }
+
+ public void testProcedureID() throws Exception {
+ String[] paramNames = new String[] { "InParam", "OutParam",
"InOutParam", "ReturnParam" }; //$NON-NLS-1$ //$NON-NLS-2$
//$NON-NLS-3$//$NON-NLS-4$
+ helpTestProcedureID("ConnectorMetadata.TestProc1",
"TestProc1", 2, paramNames, CONNECTOR_METADATA_UTILITY); //$NON-NLS-1$
//$NON-NLS-2$
+ }
+
+ public void testProcedureID_resultSet() throws Exception {
+ String[] paramNames = new String[] { "Param1", "RSParam" };
//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$//$NON-NLS-4$
+ helpTestProcedureID("ConnectorMetadata.TestProc2",
"TestProc2", 1, paramNames, CONNECTOR_METADATA_UTILITY); //$NON-NLS-1$
//$NON-NLS-2$
+ }
+
+ public void testProcedureID_longName() throws Exception {
+
helpTestProcedureID("ConnectorMetadata.TestCatalog.TestSchema.TestProc",
"TestProc", 0, new String[0], CONNECTOR_METADATA_UTILITY); //$NON-NLS-1$
//$NON-NLS-2$
+ }
+
+
+}
Property changes on:
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestMetadataObject.java
___________________________________________________________________
Name: svn:mergeinfo
+
Modified:
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestParams.java
===================================================================
---
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestParams.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestParams.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -32,10 +32,8 @@
import com.metamatrix.connector.language.IParameter;
import com.metamatrix.connector.language.IProcedure;
import com.metamatrix.connector.language.IParameter.Direction;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.Parameter;
import com.metamatrix.connector.metadata.runtime.TypeModel;
-import com.metamatrix.connector.metadata.runtime.MetadataID.Type;
import com.metamatrix.core.util.UnitTestUtil;
@@ -88,10 +86,9 @@
int precision,
int scale,
TranslationUtility transUtil, String modeledType, String
modeledBaseType, String modeledPrimitiveType) throws Exception {
- MetadataID metadataID = param.getMetadataID();
- Parameter p =
(Parameter)transUtil.createRuntimeMetadata().getObject(metadataID);
- assertEquals(name, metadataID.getName());
- assertEquals(fullName, metadataID.getFullName());
+ Parameter p = param.getMetadataObject();
+ assertEquals(name, p.getName());
+ assertEquals(fullName, p.getFullName());
assertEquals(index, param.getIndex());
assertEquals(direction, param.getDirection());
assertEquals(nameInSource, p.getNameInSource());
@@ -104,7 +101,6 @@
assertEquals(scale, p.getScale());
assertEquals(null, param.getValue());
assertEquals(false, param.getValueSpecified());
- assertEquals(Type.TYPE_PARAMETER, metadataID.getType());
//System.out.println("\n" + p.getModeledType() + "\n" +
p.getModeledBaseType() + "\n" + p.getModeledPrimitiveType());
Modified:
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestProcedure.java
===================================================================
---
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestProcedure.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/test-integration/src/test/java/com/metamatrix/data/metadata/runtime/TestProcedure.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -22,8 +22,6 @@
package com.metamatrix.data.metadata.runtime;
-import java.util.Collection;
-import java.util.Iterator;
import java.util.List;
import java.util.Properties;
@@ -32,11 +30,9 @@
import com.metamatrix.cdk.api.TranslationUtility;
import com.metamatrix.connector.language.IProcedure;
import com.metamatrix.connector.metadata.runtime.Element;
-import com.metamatrix.connector.metadata.runtime.MetadataID;
import com.metamatrix.connector.metadata.runtime.Parameter;
import com.metamatrix.connector.metadata.runtime.Procedure;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
-import com.metamatrix.connector.metadata.runtime.MetadataID.Type;
import com.metamatrix.core.util.UnitTestUtil;
/**
@@ -71,8 +67,7 @@
}
sql.append(")"); //$NON-NLS-1$
IProcedure proc = (IProcedure) transUtil.parseCommand(sql.toString());
//$NON-NLS-1$
- MetadataID metadataID = proc.getMetadataID();
- return (Procedure) transUtil.createRuntimeMetadata().getObject(metadataID);
+ return proc.getMetadataObject();
}
public void testProcedure1() throws Exception {
@@ -84,13 +79,9 @@
int[] index = new int[] { 1, 2, 3, 4 };
Class[] type = new Class[] { Integer.class, Long.class, Short.class,
java.sql.Date.class };
- MetadataID procID = proc.getMetadataID();
- Collection paramIDs = procID.getChildIDs();
- Iterator paramIter = paramIDs.iterator();
- for(int i=0; paramIter.hasNext(); i++) {
- MetadataID paramID = (MetadataID) paramIter.next();
- Parameter param = (Parameter)
CONNECTOR_METADATA_UTILITY.createRuntimeMetadata().getObject(paramID);
-
+ List<Parameter> params = proc.getChildren();
+ for (int i = 0; i < params.size(); i++) {
+ Parameter param = params.get(i);
assertEquals(nameInSource[i], param.getNameInSource());
assertEquals(direction[i], param.getDirection());
assertEquals(index[i], param.getIndex());
@@ -109,42 +100,32 @@
int[] index = new int[] { 1, 2 };
Class[] type = new Class[] { String.class, java.sql.ResultSet.class };
- MetadataID procID = proc.getMetadataID();
- Collection paramIDs = procID.getChildIDs();
- Iterator paramIter = paramIDs.iterator();
- MetadataID paramID = null;
- for(int i=0; paramIter.hasNext(); i++) {
- paramID = (MetadataID) paramIter.next();
- Parameter param = (Parameter) rmd.getObject(paramID);
-
+ List<Parameter> params = proc.getChildren();
+ for (int i = 0; i < params.size(); i++) {
+ Parameter param = params.get(i);
assertEquals(nameInSource[i], param.getNameInSource());
assertEquals(direction[i], param.getDirection());
assertEquals(index[i], param.getIndex());
assertEquals(type[i], param.getJavaType());
}
- // Check last param is a result set
- List rsCols = paramID.getChildIDs();
-
+ Parameter param = params.get(1);
+ List<Element> rsCols = param.getChildren();
// Check first column of result set
assertEquals(2, rsCols.size());
- MetadataID elemID = (MetadataID) rsCols.get(0);
+ Element elemID = rsCols.get(0);
assertEquals("RSCol1", elemID.getName()); //$NON-NLS-1$
assertEquals("ConnectorMetadata.TestProc2.RSParam.RSCol1",
elemID.getFullName()); //$NON-NLS-1$
- assertEquals(Type.TYPE_ELEMENT, elemID.getType());
- Element e1 = (Element) rmd.getObject(elemID);
- assertEquals("Result set column name in source", e1.getNameInSource());
//$NON-NLS-1$
- assertEquals(java.sql.Timestamp.class, e1.getJavaType());
- assertEquals(0, e1.getPosition());
+ assertEquals("Result set column name in source",
elemID.getNameInSource()); //$NON-NLS-1$
+ assertEquals(java.sql.Timestamp.class, elemID.getJavaType());
+ assertEquals(0, elemID.getPosition());
- MetadataID elemID2 = (MetadataID) rsCols.get(1);
+ Element elemID2 = rsCols.get(1);
assertEquals("RSCol2", elemID2.getName()); //$NON-NLS-1$
assertEquals("ConnectorMetadata.TestProc2.RSParam.RSCol2",
elemID2.getFullName()); //$NON-NLS-1$
- assertEquals(Type.TYPE_ELEMENT, elemID2.getType());
- Element e2 = (Element) rmd.getObject(elemID2);
- assertEquals(null, e2.getNameInSource()); //$NON-NLS-1$
- assertEquals(String.class, e2.getJavaType());
- assertEquals(1, e2.getPosition());
+ assertEquals(null, elemID2.getNameInSource()); //$NON-NLS-1$
+ assertEquals(String.class, elemID2.getJavaType());
+ assertEquals(1, elemID2.getPosition());
Properties props = new Properties();
props.put("ColProp", "defaultvalue"); //$NON-NLS-1$
//$NON-NLS-2$
Modified:
trunk/test-integration/src/test/java/com/metamatrix/data/visitor/util/TestCollectorVisitor.java
===================================================================
---
trunk/test-integration/src/test/java/com/metamatrix/data/visitor/util/TestCollectorVisitor.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/test-integration/src/test/java/com/metamatrix/data/visitor/util/TestCollectorVisitor.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -70,7 +70,7 @@
GroupImpl g = new GroupImpl("g1", null, null); //$NON-NLS-1$
List symbols = new ArrayList();
symbols.add(new ElementImpl(g, "e1", null, String.class));
//$NON-NLS-1$
- IFunction function = new FunctionImpl("length", new IExpression[] { new
ElementImpl(g, "e2", null, String.class) }, Integer.class); //$NON-NLS-1$
//$NON-NLS-2$
+ IFunction function = new FunctionImpl("length", Arrays.asList(new
ElementImpl(g, "e2", null, String.class)), Integer.class); //$NON-NLS-1$
//$NON-NLS-2$
symbols.add(function);
SelectImpl s = new SelectImpl(symbols, false);
List groups = new ArrayList();
Modified:
trunk/test-integration/src/test/java/com/metamatrix/data/visitor/util/TestSQLStringVisitor.java
===================================================================
---
trunk/test-integration/src/test/java/com/metamatrix/data/visitor/util/TestSQLStringVisitor.java 2009-02-24
14:33:28 UTC (rev 487)
+++
trunk/test-integration/src/test/java/com/metamatrix/data/visitor/util/TestSQLStringVisitor.java 2009-02-24
16:16:42 UTC (rev 488)
@@ -25,6 +25,8 @@
import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;
+import java.util.Arrays;
+import java.util.List;
import junit.framework.TestCase;
@@ -35,7 +37,6 @@
import com.metamatrix.connector.language.IGroup;
import com.metamatrix.connector.language.ILanguageObject;
import com.metamatrix.connector.metadata.runtime.RuntimeMetadata;
-import com.metamatrix.connector.metadata.runtime.MetadataID.Type;
import com.metamatrix.connector.visitor.util.SQLStringVisitor;
import com.metamatrix.dqp.internal.datamgr.language.AggregateImpl;
import com.metamatrix.dqp.internal.datamgr.language.ElementImpl;
@@ -70,7 +71,6 @@
import com.metamatrix.dqp.internal.datamgr.language.TestSubqueryInCriteriaImpl;
import com.metamatrix.dqp.internal.datamgr.language.TestUpdateImpl;
import com.metamatrix.dqp.internal.datamgr.language.TstLanguageBridgeFactory;
-import com.metamatrix.dqp.internal.datamgr.metadata.MetadataFactory;
import com.metamatrix.dqp.internal.datamgr.metadata.RuntimeMetadataImpl;
import com.metamatrix.query.metadata.QueryMetadataInterface;
import com.metamatrix.query.sql.ReservedWords;
@@ -83,7 +83,7 @@
public class TestSQLStringVisitor extends TestCase {
- public static final RuntimeMetadata metadata =
TstLanguageBridgeFactory.metadataFactory.getRuntimeMetadata();
+ public static final RuntimeMetadata metadata =
TstLanguageBridgeFactory.metadataFactory;
/**
@@ -103,8 +103,8 @@
}
/** create fake BQT metadata to test this case, name in source is important */
- private RuntimeMetadata exampleRuntimeMetadata(QueryMetadataInterface metadata) {
- return new RuntimeMetadataImpl(new MetadataFactory(metadata));
+ private RuntimeMetadataImpl exampleRuntimeMetadata(QueryMetadataInterface metadata) {
+ return new RuntimeMetadataImpl(metadata);
}
/** create fake BQT metadata to test this case, name in source is important */
@@ -215,18 +215,12 @@
public void testVisitConvertFunctionOracleStyleWithNIS() throws Exception {
FakeMetadataFacade facade = new FakeMetadataFacade(exampleMetadataStore());
- RuntimeMetadata metadata = exampleRuntimeMetadata(facade);
- MetadataFactory metadataFactory = new MetadataFactory(facade);
+ RuntimeMetadataImpl metadata = exampleRuntimeMetadata(facade);
- IExpression [] params = null;
- params = new IExpression[2];
- IGroup g = new GroupImpl("SmallA", null,
metadataFactory.createMetadataID(facade.getStore().findObject("BQT1.SmallA",
FakeMetadataObject.GROUP), Type.TYPE_GROUP)); //$NON-NLS-1$
- IElement e = new ElementImpl(g, "DoubleNum",
metadataFactory.createMetadataID(facade.getStore().findObject("DoubleNum",
FakeMetadataObject.ELEMENT), Type.TYPE_ELEMENT), Double.class); //$NON-NLS-1$
//$NON-NLS-2$
- params[0] = e;
- params[1] = new LiteralImpl("integer", String.class); //$NON-NLS-1$
-
+ IGroup g = new GroupImpl("SmallA", null,
metadata.getGroup("BQT1.SmallA")); //$NON-NLS-1$
+ IElement e = new ElementImpl(g, "DoubleNum",
metadata.getElement("DoubleNum"), Double.class); //$NON-NLS-1$ //$NON-NLS-2$
+ List<? extends IExpression> params = Arrays.asList(e, new
LiteralImpl("integer", String.class)); //$NON-NLS-1$
-
final String expected = "convert(SmallishA.doublishNum, integer)";
//$NON-NLS-1$
IFunction test = new FunctionImpl("convert", params, Integer.class);
//$NON-NLS-1$
@@ -236,10 +230,7 @@
public void testVisitConvertFunctionOracleStyle() throws Exception {
String expected = "convert(columnA, integer)"; //$NON-NLS-1$
- IExpression [] params = null;
- params = new IExpression[2];
- params[0] = new ElementImpl(null, "columnA", null, String.class);
//$NON-NLS-1$
- params[1] = new LiteralImpl("integer", String.class); //$NON-NLS-1$
+ List<? extends IExpression> params = Arrays.asList(new ElementImpl(null,
"columnA", null, String.class), new LiteralImpl("integer",
String.class));
IFunction test = new FunctionImpl("convert", params, Integer.class);
//$NON-NLS-1$
assertEquals(expected, getString(test));