teiid SVN: r2116 - in trunk: connector-api/src/main/java/org/teiid/connector/metadata/runtime and 35 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-05-11 17:47:57 -0400 (Tue, 11 May 2010)
New Revision: 2116
Removed:
trunk/engine/src/main/java/com/metamatrix/api/exception/query/
trunk/engine/src/main/java/com/metamatrix/cache/Cache.java
trunk/engine/src/main/java/com/metamatrix/cache/CacheConfiguration.java
trunk/engine/src/main/java/com/metamatrix/cache/CacheFactory.java
trunk/engine/src/main/java/com/metamatrix/cache/CacheListener.java
trunk/engine/src/main/java/com/metamatrix/common/buffer/BatchManager.java
trunk/engine/src/main/java/com/metamatrix/common/buffer/BlockedException.java
trunk/engine/src/main/java/com/metamatrix/common/buffer/BufferManager.java
trunk/engine/src/main/java/com/metamatrix/common/buffer/FileStore.java
trunk/engine/src/main/java/com/metamatrix/common/buffer/IndexedTupleSource.java
trunk/engine/src/main/java/com/metamatrix/common/buffer/StorageManager.java
trunk/engine/src/main/java/com/metamatrix/common/buffer/TupleBatch.java
trunk/engine/src/main/java/com/metamatrix/common/buffer/TupleBuffer.java
trunk/engine/src/main/java/com/metamatrix/common/buffer/TupleSource.java
trunk/engine/src/main/java/com/metamatrix/common/buffer/impl/
trunk/engine/src/main/java/com/metamatrix/dqp/DQPPlugin.java
trunk/engine/src/main/java/com/metamatrix/dqp/message/
trunk/engine/src/main/java/com/metamatrix/dqp/service/
trunk/engine/src/main/java/com/metamatrix/internal/core/xml/
trunk/engine/src/main/java/com/metamatrix/query/QueryPlugin.java
trunk/engine/src/main/java/com/metamatrix/query/analysis/
trunk/engine/src/main/java/com/metamatrix/query/eval/
trunk/engine/src/main/java/com/metamatrix/query/execution/
trunk/engine/src/main/java/com/metamatrix/query/function/FunctionDescriptor.java
trunk/engine/src/main/java/com/metamatrix/query/function/FunctionForm.java
trunk/engine/src/main/java/com/metamatrix/query/function/FunctionLibrary.java
trunk/engine/src/main/java/com/metamatrix/query/function/FunctionMetadataSource.java
trunk/engine/src/main/java/com/metamatrix/query/function/FunctionMethods.java
trunk/engine/src/main/java/com/metamatrix/query/function/FunctionTree.java
trunk/engine/src/main/java/com/metamatrix/query/function/SystemFunctionManager.java
trunk/engine/src/main/java/com/metamatrix/query/function/UDFSource.java
trunk/engine/src/main/java/com/metamatrix/query/function/aggregate/
trunk/engine/src/main/java/com/metamatrix/query/function/metadata/
trunk/engine/src/main/java/com/metamatrix/query/function/source/
trunk/engine/src/main/java/com/metamatrix/query/mapping/relational/
trunk/engine/src/main/java/com/metamatrix/query/mapping/xml/
trunk/engine/src/main/java/com/metamatrix/query/metadata/
trunk/engine/src/main/java/com/metamatrix/query/optimizer/CommandPlanner.java
trunk/engine/src/main/java/com/metamatrix/query/optimizer/QueryOptimizer.java
trunk/engine/src/main/java/com/metamatrix/query/optimizer/batch/
trunk/engine/src/main/java/com/metamatrix/query/optimizer/capabilities/
trunk/engine/src/main/java/com/metamatrix/query/optimizer/proc/
trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/AliasGenerator.java
trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/OptimizerRule.java
trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/PlanHints.java
trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/PlanToProcessConverter.java
trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/RelationalPlanner.java
trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/RuleStack.java
trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/plantree/
trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/
trunk/engine/src/main/java/com/metamatrix/query/optimizer/xml/
trunk/engine/src/main/java/com/metamatrix/query/optimizer/xquery/
trunk/engine/src/main/java/com/metamatrix/query/parser/
trunk/engine/src/main/java/com/metamatrix/query/processor/BatchCollector.java
trunk/engine/src/main/java/com/metamatrix/query/processor/BatchIterator.java
trunk/engine/src/main/java/com/metamatrix/query/processor/CollectionTupleSource.java
trunk/engine/src/main/java/com/metamatrix/query/processor/ProcessorDataManager.java
trunk/engine/src/main/java/com/metamatrix/query/processor/ProcessorPlan.java
trunk/engine/src/main/java/com/metamatrix/query/processor/QueryProcessor.java
trunk/engine/src/main/java/com/metamatrix/query/processor/TempTableDataManager.java
trunk/engine/src/main/java/com/metamatrix/query/processor/batch/
trunk/engine/src/main/java/com/metamatrix/query/processor/proc/
trunk/engine/src/main/java/com/metamatrix/query/processor/program/
trunk/engine/src/main/java/com/metamatrix/query/processor/relational/
trunk/engine/src/main/java/com/metamatrix/query/processor/xml/
trunk/engine/src/main/java/com/metamatrix/query/processor/xquery/
trunk/engine/src/main/java/com/metamatrix/query/report/
trunk/engine/src/main/java/com/metamatrix/query/resolver/CommandResolver.java
trunk/engine/src/main/java/com/metamatrix/query/resolver/ProcedureContainerResolver.java
trunk/engine/src/main/java/com/metamatrix/query/resolver/QueryResolver.java
trunk/engine/src/main/java/com/metamatrix/query/resolver/VariableResolver.java
trunk/engine/src/main/java/com/metamatrix/query/resolver/command/
trunk/engine/src/main/java/com/metamatrix/query/resolver/util/
trunk/engine/src/main/java/com/metamatrix/query/rewriter/
trunk/engine/src/main/java/com/metamatrix/query/sql/LanguageObject.java
trunk/engine/src/main/java/com/metamatrix/query/sql/LanguageVisitor.java
trunk/engine/src/main/java/com/metamatrix/query/sql/ProcedureReservedWords.java
trunk/engine/src/main/java/com/metamatrix/query/sql/lang/
trunk/engine/src/main/java/com/metamatrix/query/sql/navigator/
trunk/engine/src/main/java/com/metamatrix/query/sql/proc/
trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/
trunk/engine/src/main/java/com/metamatrix/query/sql/util/
trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/
trunk/engine/src/main/java/com/metamatrix/query/tempdata/
trunk/engine/src/main/java/com/metamatrix/query/util/
trunk/engine/src/main/java/com/metamatrix/query/validator/
Modified:
trunk/connector-api/src/main/java/org/teiid/connector/DataPlugin.java
trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/AbstractMetadataRecord.java
trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataFactory.java
trunk/connector-api/src/main/java/org/teiid/connector/visitor/util/SQLStringVisitor.java
trunk/connector-api/src/main/java/org/teiid/resource/adapter/BasicExecutionFactory.java
trunk/connector-api/src/main/java/org/teiid/resource/cci/DataNotAvailableException.java
trunk/connector-api/src/main/java/org/teiid/resource/cci/TypeFacility.java
trunk/connector-api/src/main/java/org/teiid/resource/spi/BasicManagedConnectionFactory.java
trunk/connectors/connector-ldap/src/main/java/org/teiid/resource/cci/ldap/LDAPPlugin.java
trunk/connectors/connector-salesforce/src/main/java/org/teiid/resource/cci/salesforce/SalesForceManagedConnectionFactory.java
trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/FileConnectionImpl.java
trunk/connectors/sandbox/translator-yahoo/src/main/java/org/teiid/resource/adapter/yahoo/YahooPlugin.java
trunk/connectors/translator-jdbc/src/main/java/org/teiid/resource/adapter/jdbc/JDBCExecutionFactory.java
trunk/connectors/translator-jdbc/src/main/java/org/teiid/resource/adapter/jdbc/JDBCMetdataProcessor.java
trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCPlugin.java
trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/Translator.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/resource/adapter/jdbc/FakeConnection.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/resource/adapter/jdbc/TranslationHelper.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestEscapeSyntaxModifier.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestExtractFunctionModifier.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/db2/TestDB2ConvertModifier.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/db2/TestDB2SqlTranslator.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestDayWeekQuarterFunctionModifier.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestMonthOrDayNameFunctionModifier.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleConvertModifier.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/sqlserver/TestSqlServerConversionVisitor.java
trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/sybase/TestSybaseConvertModifier.java
trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPPlugin.java
trunk/connectors/translator-ldap/src/test/java/org/teiid/resource/adapter/ldap/TestIQueryToLdapSearchParser.java
trunk/connectors/translator-salesforce/src/main/java/org/teiid/resource/adapter/salesforce/MetadataProcessor.java
trunk/connectors/translator-salesforce/src/main/java/org/teiid/resource/adapter/salesforce/SalesForcePlugin.java
trunk/connectors/translator-salesforce/src/test/java/org/teiid/resource/adapter/salesforce/execution/visitors/TestVisitors.java
trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextConnectionImpl.java
trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextPlugin.java
trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestMultiFileTextSynchExecution.java
trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextConnector.java
trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextSynchExecution.java
trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/Util.java
Log:
TEIID-918 changing package to org.teiid and removing metamatrix from class names
Modified: trunk/connector-api/src/main/java/org/teiid/connector/DataPlugin.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/DataPlugin.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connector-api/src/main/java/org/teiid/connector/DataPlugin.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -23,8 +23,9 @@
package org.teiid.connector;
import java.util.ResourceBundle;
-import com.metamatrix.core.BundleUtil;
+import org.teiid.core.BundleUtil;
+
public class DataPlugin { // extends Plugin {
public static final String PLUGIN_ID = "org.teiid.connector" ; //$NON-NLS-1$
Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/AbstractMetadataRecord.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/AbstractMetadataRecord.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/AbstractMetadataRecord.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -28,8 +28,9 @@
import java.util.Map;
import java.util.concurrent.atomic.AtomicLong;
-import com.metamatrix.core.util.EquivalenceUtil;
+import org.teiid.core.util.EquivalenceUtil;
+
/**
* AbstractMetadataRecord
*/
Modified: trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataFactory.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataFactory.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connector-api/src/main/java/org/teiid/connector/metadata/runtime/MetadataFactory.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -29,10 +29,10 @@
import java.util.Properties;
import org.teiid.connector.DataPlugin;
+import org.teiid.core.id.UUIDFactory;
import org.teiid.resource.ConnectorException;
import org.teiid.resource.cci.TypeFacility;
-import com.metamatrix.core.id.UUIDFactory;
/**
* Allows connectors to build metadata for use by the engine.
Modified: trunk/connector-api/src/main/java/org/teiid/connector/visitor/util/SQLStringVisitor.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/visitor/util/SQLStringVisitor.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connector-api/src/main/java/org/teiid/connector/visitor/util/SQLStringVisitor.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -72,9 +72,9 @@
import org.teiid.connector.language.SortSpecification.Ordering;
import org.teiid.connector.metadata.runtime.AbstractMetadataRecord;
import org.teiid.connector.visitor.framework.AbstractLanguageVisitor;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.util.StringUtil;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.core.util.StringUtil;
/**
* Creates a SQL string for a LanguageObject subtree. Instances of this class
Modified: trunk/connector-api/src/main/java/org/teiid/resource/adapter/BasicExecutionFactory.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/resource/adapter/BasicExecutionFactory.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connector-api/src/main/java/org/teiid/resource/adapter/BasicExecutionFactory.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -12,6 +12,9 @@
import org.teiid.connector.language.LanguageFactory;
import org.teiid.connector.language.QueryExpression;
import org.teiid.connector.metadata.runtime.RuntimeMetadata;
+import org.teiid.core.TeiidException;
+import org.teiid.core.util.ReflectionHelper;
+import org.teiid.core.util.StringUtil;
import org.teiid.resource.ConnectorException;
import org.teiid.resource.cci.ConnectorCapabilities;
import org.teiid.resource.cci.Execution;
@@ -23,9 +26,6 @@
import org.teiid.resource.cci.UpdateExecution;
import org.teiid.resource.spi.BasicManagedConnectionFactory;
-import com.metamatrix.core.MetaMatrixCoreException;
-import com.metamatrix.core.util.ReflectionHelper;
-import com.metamatrix.core.util.StringUtil;
public class BasicExecutionFactory implements ExecutionFactory {
@@ -122,7 +122,7 @@
return expectedType.cast(defaultClass.newInstance());
}
return expectedType.cast(ReflectionHelper.create(className, ctorObjs, Thread.currentThread().getContextClassLoader()));
- } catch (MetaMatrixCoreException e) {
+ } catch (TeiidException e) {
throw new ConnectorException(e);
} catch (IllegalAccessException e) {
throw new ConnectorException(e);
Modified: trunk/connector-api/src/main/java/org/teiid/resource/cci/DataNotAvailableException.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/resource/cci/DataNotAvailableException.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connector-api/src/main/java/org/teiid/resource/cci/DataNotAvailableException.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -21,13 +21,13 @@
*/
package org.teiid.resource.cci;
-import com.metamatrix.core.MetaMatrixRuntimeException;
+import org.teiid.core.TeiidRuntimeException;
/**
* Used by asynch connectors to indicate data is not available
* and results should be polled for after the given delay.
*/
-public class DataNotAvailableException extends MetaMatrixRuntimeException {
+public class DataNotAvailableException extends TeiidRuntimeException {
private static final long serialVersionUID = 5569111182915674334L;
Modified: trunk/connector-api/src/main/java/org/teiid/resource/cci/TypeFacility.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/resource/cci/TypeFacility.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connector-api/src/main/java/org/teiid/resource/cci/TypeFacility.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -26,10 +26,11 @@
import java.util.Date;
import java.util.TimeZone;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.JDBCSQLTypeInfo;
-import com.metamatrix.common.util.TimestampWithTimezone;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.JDBCSQLTypeInfo;
+import org.teiid.core.util.TimestampWithTimezone;
+
/**
*/
public class TypeFacility {
Modified: trunk/connector-api/src/main/java/org/teiid/resource/spi/BasicManagedConnectionFactory.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/resource/spi/BasicManagedConnectionFactory.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connector-api/src/main/java/org/teiid/resource/spi/BasicManagedConnectionFactory.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -36,10 +36,10 @@
import javax.resource.spi.ValidatingManagedConnectionFactory;
import javax.security.auth.Subject;
+import org.teiid.core.TeiidException;
+import org.teiid.core.util.ReflectionHelper;
import org.teiid.resource.ConnectorException;
-import com.metamatrix.core.MetaMatrixCoreException;
-import com.metamatrix.core.util.ReflectionHelper;
public abstract class BasicManagedConnectionFactory implements ManagedConnectionFactory, ResourceAdapterAssociation, ValidatingManagedConnectionFactory {
@@ -95,7 +95,7 @@
return expectedType.cast(defaultClass.newInstance());
}
return expectedType.cast(ReflectionHelper.create(className, ctorObjs, Thread.currentThread().getContextClassLoader()));
- } catch (MetaMatrixCoreException e) {
+ } catch (TeiidException e) {
throw new ConnectorException(e);
} catch (IllegalAccessException e) {
throw new ConnectorException(e);
Modified: trunk/connectors/connector-ldap/src/main/java/org/teiid/resource/cci/ldap/LDAPPlugin.java
===================================================================
--- trunk/connectors/connector-ldap/src/main/java/org/teiid/resource/cci/ldap/LDAPPlugin.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/connector-ldap/src/main/java/org/teiid/resource/cci/ldap/LDAPPlugin.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -23,8 +23,9 @@
import java.util.ResourceBundle;
-import com.metamatrix.core.BundleUtil;
+import org.teiid.core.BundleUtil;
+
/**
* LDAPPlugin
*/
Modified: trunk/connectors/connector-salesforce/src/main/java/org/teiid/resource/cci/salesforce/SalesForceManagedConnectionFactory.java
===================================================================
--- trunk/connectors/connector-salesforce/src/main/java/org/teiid/resource/cci/salesforce/SalesForceManagedConnectionFactory.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/connector-salesforce/src/main/java/org/teiid/resource/cci/salesforce/SalesForceManagedConnectionFactory.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -26,10 +26,10 @@
import javax.resource.ResourceException;
+import org.teiid.core.TeiidRuntimeException;
import org.teiid.resource.spi.BasicConnectionFactory;
import org.teiid.resource.spi.BasicManagedConnectionFactory;
-import com.metamatrix.core.MetaMatrixRuntimeException;
public class SalesForceManagedConnectionFactory extends BasicManagedConnectionFactory {
private static final long serialVersionUID = 5298591275313314698L;
@@ -47,7 +47,7 @@
}
public void setUsername(String username) {
if (username.trim().length() == 0) {
- throw new MetaMatrixRuntimeException("Name can not be null");
+ throw new TeiidRuntimeException("Name can not be null");
}
this.username = username;
}
@@ -71,7 +71,7 @@
try {
this.URL = new URL(uRL);
} catch (MalformedURLException e) {
- throw new MetaMatrixRuntimeException("URL Supplied is not valid URL"+ e.getMessage());
+ throw new TeiidRuntimeException("URL Supplied is not valid URL"+ e.getMessage());
}
}
Modified: trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/FileConnectionImpl.java
===================================================================
--- trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/FileConnectionImpl.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/FileConnectionImpl.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -26,10 +26,10 @@
import javax.resource.ResourceException;
+import org.teiid.core.util.FileUtils;
import org.teiid.resource.adapter.FileConnection;
import org.teiid.resource.spi.BasicConnection;
-import com.metamatrix.core.util.FileUtils;
/**
* TODO: consider using VFS
Modified: trunk/connectors/sandbox/translator-yahoo/src/main/java/org/teiid/resource/adapter/yahoo/YahooPlugin.java
===================================================================
--- trunk/connectors/sandbox/translator-yahoo/src/main/java/org/teiid/resource/adapter/yahoo/YahooPlugin.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/sandbox/translator-yahoo/src/main/java/org/teiid/resource/adapter/yahoo/YahooPlugin.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -23,9 +23,10 @@
package org.teiid.resource.adapter.yahoo;
import java.util.ResourceBundle;
-import com.metamatrix.core.BundleUtil;
+import org.teiid.core.BundleUtil;
+
public class YahooPlugin {
public static final String PLUGIN_ID = "org.teiid.resource.adapter.yahoo" ; //$NON-NLS-1$
public static final BundleUtil Util = new BundleUtil(PLUGIN_ID,PLUGIN_ID + ".i18n", ResourceBundle.getBundle(PLUGIN_ID + ".i18n")); //$NON-NLS-1$ //$NON-NLS-2$
Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/resource/adapter/jdbc/JDBCExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/resource/adapter/jdbc/JDBCExecutionFactory.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/resource/adapter/jdbc/JDBCExecutionFactory.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -32,6 +32,10 @@
import org.teiid.connector.language.QueryExpression;
import org.teiid.connector.metadata.runtime.MetadataFactory;
import org.teiid.connector.metadata.runtime.RuntimeMetadata;
+import org.teiid.core.TeiidException;
+import org.teiid.core.util.PropertiesUtils;
+import org.teiid.core.util.ReflectionHelper;
+import org.teiid.core.util.StringUtil;
import org.teiid.resource.ConnectorException;
import org.teiid.resource.adapter.BasicExecutionFactory;
import org.teiid.resource.cci.ConnectorCapabilities;
@@ -43,10 +47,6 @@
import org.teiid.resource.cci.UpdateExecution;
import org.teiid.translator.jdbc.Translator;
-import com.metamatrix.common.util.PropertiesUtils;
-import com.metamatrix.core.MetaMatrixCoreException;
-import com.metamatrix.core.util.ReflectionHelper;
-import com.metamatrix.core.util.StringUtil;
/**
* JDBC implementation of Connector interface.
@@ -78,7 +78,7 @@
this.sqlTranslator = (Translator)ReflectionHelper.create(className, null, Thread.currentThread().getContextClassLoader());
}
sqlTranslator.initialize(this);
- } catch (MetaMatrixCoreException e) {
+ } catch (TeiidException e) {
throw new ConnectorException(e);
}
}
Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/resource/adapter/jdbc/JDBCMetdataProcessor.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/resource/adapter/jdbc/JDBCMetdataProcessor.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/resource/adapter/jdbc/JDBCMetdataProcessor.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -42,12 +42,12 @@
import org.teiid.connector.metadata.runtime.Table;
import org.teiid.connector.metadata.runtime.BaseColumn.NullType;
import org.teiid.connector.metadata.runtime.ProcedureParameter.Type;
+import org.teiid.core.util.StringUtil;
import org.teiid.logging.LogManager;
import org.teiid.resource.ConnectorException;
import org.teiid.resource.cci.TypeFacility;
import org.teiid.translator.jdbc.JDBCPlugin;
-import com.metamatrix.core.util.StringUtil;
/**
* Reads from {@link DatabaseMetaData} and creates metadata through the {@link MetadataFactory}.
Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCPlugin.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCPlugin.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCPlugin.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -25,9 +25,10 @@
package org.teiid.translator.jdbc;
import java.util.ResourceBundle;
-import com.metamatrix.core.BundleUtil;
+import org.teiid.core.BundleUtil;
+
public class JDBCPlugin {
public static final String PLUGIN_ID = "org.teiid.translator.jdbc" ; //$NON-NLS-1$
Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/Translator.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/Translator.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/Translator.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -52,6 +52,7 @@
import org.teiid.connector.language.Literal;
import org.teiid.connector.language.SetQuery;
import org.teiid.connector.language.Argument.Direction;
+import org.teiid.core.util.ReflectionHelper;
import org.teiid.logging.LogConstants;
import org.teiid.logging.LogManager;
import org.teiid.resource.ConnectorException;
@@ -62,7 +63,6 @@
import org.teiid.resource.cci.SourceSystemFunctions;
import org.teiid.resource.cci.TypeFacility;
-import com.metamatrix.core.util.ReflectionHelper;
/**
* Base class for creating source SQL queries and retrieving results.
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/resource/adapter/jdbc/FakeConnection.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/resource/adapter/jdbc/FakeConnection.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/resource/adapter/jdbc/FakeConnection.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -25,8 +25,9 @@
import java.sql.SQLException;
import java.sql.Statement;
-import com.metamatrix.core.util.SimpleMock;
+import org.teiid.core.util.SimpleMock;
+
/**
* FakeConnection for unit testing
*/
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/resource/adapter/jdbc/TranslationHelper.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/resource/adapter/jdbc/TranslationHelper.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/resource/adapter/jdbc/TranslationHelper.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -31,6 +31,9 @@
import org.mockito.Mockito;
import org.teiid.connector.language.Command;
+import org.teiid.core.TeiidRuntimeException;
+import org.teiid.query.function.metadata.FunctionMetadataReader;
+import org.teiid.query.function.metadata.FunctionMethod;
import org.teiid.resource.ConnectorException;
import org.teiid.resource.cci.ExecutionContext;
import org.teiid.translator.jdbc.TranslatedCommand;
@@ -38,9 +41,6 @@
import com.metamatrix.cdk.api.TranslationUtility;
import com.metamatrix.cdk.unittest.FakeTranslationFactory;
-import com.metamatrix.core.MetaMatrixRuntimeException;
-import com.metamatrix.query.function.metadata.FunctionMetadataReader;
-import com.metamatrix.query.function.metadata.FunctionMethod;
public class TranslationHelper {
@@ -66,7 +66,7 @@
Collection <FunctionMethod> methods = FunctionMetadataReader.loadFunctionMethods(TranslationHelper.class.getResource(udf).openStream());
util.setUDF(methods);
} catch (IOException e) {
- throw new MetaMatrixRuntimeException("failed to load UDF"); //$NON-NLS-1$
+ throw new TeiidRuntimeException("failed to load UDF"); //$NON-NLS-1$
}
}
return util.parseCommand(sql);
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestEscapeSyntaxModifier.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestEscapeSyntaxModifier.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestEscapeSyntaxModifier.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -26,15 +26,15 @@
import java.util.Arrays;
import java.util.List;
+import org.teiid.cdk.CommandBuilder;
import org.teiid.connector.language.Function;
import org.teiid.connector.language.Literal;
import org.teiid.connector.language.SQLReservedWords;
+import org.teiid.query.unittest.TimestampUtil;
import org.teiid.translator.jdbc.EscapeSyntaxModifier;
import junit.framework.TestCase;
-import com.metamatrix.cdk.CommandBuilder;
-import com.metamatrix.query.unittest.TimestampUtil;
/**
*/
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestExtractFunctionModifier.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestExtractFunctionModifier.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/TestExtractFunctionModifier.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -33,6 +33,7 @@
import org.teiid.connector.language.LanguageFactory;
import org.teiid.connector.language.Literal;
import org.teiid.connector.language.NamedTable;
+import org.teiid.query.unittest.TimestampUtil;
import org.teiid.resource.adapter.jdbc.JDBCExecutionFactory;
import org.teiid.resource.cci.SourceSystemFunctions;
import org.teiid.resource.cci.TypeFacility;
@@ -40,7 +41,6 @@
import org.teiid.translator.jdbc.SQLConversionVisitor;
import org.teiid.translator.jdbc.Translator;
-import com.metamatrix.query.unittest.TimestampUtil;
/**
*/
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/db2/TestDB2ConvertModifier.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/db2/TestDB2ConvertModifier.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/db2/TestDB2ConvertModifier.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -32,12 +32,12 @@
import org.teiid.connector.language.Expression;
import org.teiid.connector.language.Function;
import org.teiid.connector.language.LanguageFactory;
+import org.teiid.query.unittest.TimestampUtil;
import org.teiid.resource.adapter.jdbc.JDBCExecutionFactory;
import org.teiid.resource.cci.TypeFacility;
import org.teiid.translator.jdbc.SQLConversionVisitor;
import org.teiid.translator.jdbc.db2.DB2SQLTranslator;
-import com.metamatrix.query.unittest.TimestampUtil;
/**
*/
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/db2/TestDB2SqlTranslator.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/db2/TestDB2SqlTranslator.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/db2/TestDB2SqlTranslator.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -28,6 +28,7 @@
import org.junit.Test;
import org.mockito.Mockito;
import org.teiid.connector.language.Command;
+import org.teiid.core.util.UnitTestUtil;
import org.teiid.resource.ConnectorException;
import org.teiid.resource.adapter.jdbc.JDBCExecutionFactory;
import org.teiid.resource.adapter.jdbc.TranslationHelper;
@@ -37,7 +38,6 @@
import com.metamatrix.cdk.api.TranslationUtility;
import com.metamatrix.cdk.unittest.FakeTranslationFactory;
-import com.metamatrix.core.util.UnitTestUtil;
/**
*/
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestDayWeekQuarterFunctionModifier.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestDayWeekQuarterFunctionModifier.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestDayWeekQuarterFunctionModifier.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -30,12 +30,12 @@
import org.teiid.connector.language.Function;
import org.teiid.connector.language.LanguageFactory;
import org.teiid.connector.language.Literal;
+import org.teiid.query.unittest.TimestampUtil;
import org.teiid.resource.adapter.jdbc.JDBCExecutionFactory;
import org.teiid.resource.cci.SourceSystemFunctions;
import org.teiid.translator.jdbc.SQLConversionVisitor;
import org.teiid.translator.jdbc.oracle.OracleSQLTranslator;
-import com.metamatrix.query.unittest.TimestampUtil;
/**
*/
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestMonthOrDayNameFunctionModifier.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestMonthOrDayNameFunctionModifier.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestMonthOrDayNameFunctionModifier.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -30,11 +30,11 @@
import org.teiid.connector.language.Function;
import org.teiid.connector.language.LanguageFactory;
import org.teiid.connector.language.Literal;
+import org.teiid.query.unittest.TimestampUtil;
import org.teiid.resource.adapter.jdbc.JDBCExecutionFactory;
import org.teiid.translator.jdbc.SQLConversionVisitor;
import org.teiid.translator.jdbc.oracle.OracleSQLTranslator;
-import com.metamatrix.query.unittest.TimestampUtil;
/**
*/
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleConvertModifier.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleConvertModifier.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleConvertModifier.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -34,13 +34,13 @@
import org.teiid.connector.language.Expression;
import org.teiid.connector.language.Function;
import org.teiid.connector.language.LanguageFactory;
+import org.teiid.query.unittest.TimestampUtil;
import org.teiid.resource.adapter.jdbc.JDBCExecutionFactory;
import org.teiid.resource.cci.TypeFacility;
import org.teiid.translator.jdbc.SQLConversionVisitor;
import org.teiid.translator.jdbc.Translator;
import org.teiid.translator.jdbc.oracle.OracleSQLTranslator;
-import com.metamatrix.query.unittest.TimestampUtil;
/**
*/
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/oracle/TestOracleTranslator.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -28,15 +28,21 @@
import org.junit.Before;
import org.junit.Test;
+import org.teiid.cdk.CommandBuilder;
import org.teiid.connector.language.Command;
import org.teiid.connector.metadata.runtime.Column;
import org.teiid.connector.metadata.runtime.MetadataStore;
import org.teiid.connector.metadata.runtime.Schema;
import org.teiid.connector.metadata.runtime.Table;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.util.UnitTestUtil;
import org.teiid.dqp.internal.datamgr.impl.ExecutionContextImpl;
import org.teiid.dqp.internal.datamgr.impl.FakeExecutionContextImpl;
import org.teiid.metadata.CompositeMetadataStore;
import org.teiid.metadata.TransformationMetadata;
+import org.teiid.query.metadata.QueryMetadataInterface;
+import org.teiid.query.unittest.FakeMetadataFactory;
+import org.teiid.query.unittest.RealMetadataFactory;
import org.teiid.resource.ConnectorException;
import org.teiid.resource.adapter.jdbc.JDBCExecutionFactory;
import org.teiid.resource.adapter.jdbc.TranslationHelper;
@@ -45,13 +51,7 @@
import org.teiid.translator.jdbc.Translator;
import org.teiid.translator.jdbc.oracle.OracleSQLTranslator;
-import com.metamatrix.cdk.CommandBuilder;
import com.metamatrix.cdk.api.TranslationUtility;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.core.util.UnitTestUtil;
-import com.metamatrix.query.metadata.QueryMetadataInterface;
-import com.metamatrix.query.unittest.FakeMetadataFactory;
-import com.metamatrix.query.unittest.RealMetadataFactory;
public class TestOracleTranslator {
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/sqlserver/TestSqlServerConversionVisitor.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/sqlserver/TestSqlServerConversionVisitor.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/sqlserver/TestSqlServerConversionVisitor.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -31,17 +31,17 @@
import org.teiid.connector.metadata.runtime.MetadataStore;
import org.teiid.connector.metadata.runtime.Schema;
import org.teiid.connector.metadata.runtime.Table;
+import org.teiid.core.types.DataTypeManager;
import org.teiid.metadata.CompositeMetadataStore;
import org.teiid.metadata.TransformationMetadata;
+import org.teiid.query.metadata.QueryMetadataInterface;
+import org.teiid.query.unittest.RealMetadataFactory;
import org.teiid.resource.ConnectorException;
import org.teiid.resource.adapter.jdbc.JDBCExecutionFactory;
import org.teiid.resource.adapter.jdbc.TranslationHelper;
import org.teiid.translator.jdbc.sqlserver.SQLServerSQLTranslator;
import com.metamatrix.cdk.api.TranslationUtility;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.query.metadata.QueryMetadataInterface;
-import com.metamatrix.query.unittest.RealMetadataFactory;
/**
*/
Modified: trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/sybase/TestSybaseConvertModifier.java
===================================================================
--- trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/sybase/TestSybaseConvertModifier.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-jdbc/src/test/java/org/teiid/translator/jdbc/sybase/TestSybaseConvertModifier.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -34,13 +34,13 @@
import org.teiid.connector.language.Function;
import org.teiid.connector.language.LanguageFactory;
import org.teiid.connector.language.Literal;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.query.unittest.TimestampUtil;
import org.teiid.resource.ConnectorException;
import org.teiid.resource.adapter.jdbc.JDBCExecutionFactory;
import org.teiid.translator.jdbc.SQLConversionVisitor;
import org.teiid.translator.jdbc.sybase.SybaseSQLTranslator;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.query.unittest.TimestampUtil;
/**
*/
Modified: trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPPlugin.java
===================================================================
--- trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPPlugin.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPPlugin.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -23,8 +23,9 @@
import java.util.ResourceBundle;
-import com.metamatrix.core.BundleUtil;
+import org.teiid.core.BundleUtil;
+
/**
* LDAPPlugin
*/
Modified: trunk/connectors/translator-ldap/src/test/java/org/teiid/resource/adapter/ldap/TestIQueryToLdapSearchParser.java
===================================================================
--- trunk/connectors/translator-ldap/src/test/java/org/teiid/resource/adapter/ldap/TestIQueryToLdapSearchParser.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-ldap/src/test/java/org/teiid/resource/adapter/ldap/TestIQueryToLdapSearchParser.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -33,6 +33,7 @@
import junit.framework.TestCase;
+import org.teiid.cdk.CommandBuilder;
import org.teiid.connector.language.Command;
import org.teiid.connector.language.Select;
import org.teiid.connector.metadata.runtime.Column;
@@ -41,18 +42,17 @@
import org.teiid.connector.metadata.runtime.Schema;
import org.teiid.connector.metadata.runtime.Table;
import org.teiid.connector.metadata.runtime.Column.SearchType;
+import org.teiid.core.types.DataTypeManager;
import org.teiid.dqp.internal.datamgr.metadata.RuntimeMetadataImpl;
import org.teiid.metadata.CompositeMetadataStore;
import org.teiid.metadata.TransformationMetadata;
+import org.teiid.query.metadata.QueryMetadataInterface;
+import org.teiid.query.unittest.RealMetadataFactory;
import org.teiid.resource.ConnectorException;
import org.teiid.resource.adapter.ldap.IQueryToLdapSearchParser;
import org.teiid.resource.adapter.ldap.LDAPExecutionFactory;
import org.teiid.resource.adapter.ldap.LDAPSearchDetails;
-import com.metamatrix.cdk.CommandBuilder;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.query.metadata.QueryMetadataInterface;
-import com.metamatrix.query.unittest.RealMetadataFactory;
/**
* Test IQueryToLdapSearchParser.
Modified: trunk/connectors/translator-salesforce/src/main/java/org/teiid/resource/adapter/salesforce/MetadataProcessor.java
===================================================================
--- trunk/connectors/translator-salesforce/src/main/java/org/teiid/resource/adapter/salesforce/MetadataProcessor.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-salesforce/src/main/java/org/teiid/resource/adapter/salesforce/MetadataProcessor.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -12,11 +12,11 @@
import org.teiid.connector.metadata.runtime.Table;
import org.teiid.connector.metadata.runtime.BaseColumn.NullType;
import org.teiid.connector.metadata.runtime.Column.SearchType;
+import org.teiid.core.types.DataTypeManager;
import org.teiid.logging.LogConstants;
import org.teiid.logging.LogManager;
import org.teiid.resource.ConnectorException;
-import com.metamatrix.common.types.DataTypeManager;
import com.sforce.soap.partner.ChildRelationship;
import com.sforce.soap.partner.DescribeGlobalResult;
import com.sforce.soap.partner.DescribeGlobalSObjectResult;
Modified: trunk/connectors/translator-salesforce/src/main/java/org/teiid/resource/adapter/salesforce/SalesForcePlugin.java
===================================================================
--- trunk/connectors/translator-salesforce/src/main/java/org/teiid/resource/adapter/salesforce/SalesForcePlugin.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-salesforce/src/main/java/org/teiid/resource/adapter/salesforce/SalesForcePlugin.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -23,8 +23,9 @@
import java.util.ResourceBundle;
-import com.metamatrix.core.BundleUtil;
+import org.teiid.core.BundleUtil;
+
/**
* For logging purposes
*/
Modified: trunk/connectors/translator-salesforce/src/test/java/org/teiid/resource/adapter/salesforce/execution/visitors/TestVisitors.java
===================================================================
--- trunk/connectors/translator-salesforce/src/test/java/org/teiid/resource/adapter/salesforce/execution/visitors/TestVisitors.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-salesforce/src/test/java/org/teiid/resource/adapter/salesforce/execution/visitors/TestVisitors.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -33,15 +33,15 @@
import org.teiid.connector.metadata.runtime.Schema;
import org.teiid.connector.metadata.runtime.Table;
import org.teiid.connector.metadata.runtime.Column.SearchType;
+import org.teiid.core.types.DataTypeManager;
import org.teiid.metadata.CompositeMetadataStore;
import org.teiid.metadata.TransformationMetadata;
+import org.teiid.query.metadata.QueryMetadataInterface;
+import org.teiid.query.unittest.RealMetadataFactory;
import org.teiid.resource.adapter.salesforce.execution.visitors.JoinQueryVisitor;
import org.teiid.resource.adapter.salesforce.execution.visitors.SelectVisitor;
import com.metamatrix.cdk.api.TranslationUtility;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.query.metadata.QueryMetadataInterface;
-import com.metamatrix.query.unittest.RealMetadataFactory;
public class TestVisitors {
Modified: trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextConnectionImpl.java
===================================================================
--- trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextConnectionImpl.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextConnectionImpl.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -38,12 +38,12 @@
import java.util.Map;
import java.util.Properties;
+import org.teiid.core.util.StringUtil;
import org.teiid.logging.LogConstants;
import org.teiid.logging.LogManager;
import org.teiid.resource.ConnectorException;
import org.teiid.resource.adapter.FileConnection;
-import com.metamatrix.core.util.StringUtil;
/**
Modified: trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextPlugin.java
===================================================================
--- trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextPlugin.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextPlugin.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -23,8 +23,9 @@
package org.teiid.resource.adapter.text;
import java.util.ResourceBundle;
-import com.metamatrix.core.BundleUtil;
+import org.teiid.core.BundleUtil;
+
public class TextPlugin {
public static final String PLUGIN_ID = "org.teiid.resource.adapter.text" ; //$NON-NLS-1$
Modified: trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestMultiFileTextSynchExecution.java
===================================================================
--- trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestMultiFileTextSynchExecution.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestMultiFileTextSynchExecution.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -29,10 +29,10 @@
import junit.framework.TestCase;
+import org.teiid.query.unittest.TimestampUtil;
import org.teiid.resource.ConnectorException;
import com.metamatrix.cdk.api.ConnectorHost;
-import com.metamatrix.query.unittest.TimestampUtil;
public class TestMultiFileTextSynchExecution extends TestCase {
private static final String BAD_COUNT_FILE = "MultiParts/columCntMissMatchOption/testMultiDescriptorDelimited.txt"; //$NON-NLS-1$
Modified: trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextConnector.java
===================================================================
--- trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextConnector.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextConnector.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -32,9 +32,9 @@
import org.teiid.connector.metadata.runtime.Datatype;
import org.teiid.connector.metadata.runtime.MetadataFactory;
import org.teiid.connector.metadata.runtime.Table;
+import org.teiid.core.types.DataTypeManager;
import org.teiid.resource.cci.MetadataProvider;
-import com.metamatrix.common.types.DataTypeManager;
/**
*/
Modified: trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextSynchExecution.java
===================================================================
--- trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextSynchExecution.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextSynchExecution.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -25,10 +25,11 @@
import java.util.ArrayList;
import java.util.List;
+import org.teiid.query.unittest.TimestampUtil;
+
import junit.framework.TestCase;
import com.metamatrix.cdk.api.ConnectorHost;
-import com.metamatrix.query.unittest.TimestampUtil;
/**
* TODO: test cancel
Modified: trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/Util.java
===================================================================
--- trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/Util.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/Util.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -36,17 +36,17 @@
import org.teiid.connector.metadata.runtime.MetadataStore;
import org.teiid.connector.metadata.runtime.Schema;
import org.teiid.connector.metadata.runtime.Table;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.util.FileUtils;
+import org.teiid.core.util.UnitTestUtil;
import org.teiid.metadata.CompositeMetadataStore;
import org.teiid.metadata.TransformationMetadata;
+import org.teiid.query.metadata.QueryMetadataInterface;
+import org.teiid.query.unittest.RealMetadataFactory;
import org.teiid.resource.adapter.FileConnection;
import com.metamatrix.cdk.api.ConnectorHost;
import com.metamatrix.cdk.api.TranslationUtility;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.core.util.FileUtils;
-import com.metamatrix.core.util.UnitTestUtil;
-import com.metamatrix.query.metadata.QueryMetadataInterface;
-import com.metamatrix.query.unittest.RealMetadataFactory;
@SuppressWarnings("nls")
public class Util {
Deleted: trunk/engine/src/main/java/com/metamatrix/cache/Cache.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/cache/Cache.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/cache/Cache.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,160 +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.cache;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-
-
-/**
- * Abstraction over cache providers
- */
-public interface Cache<K, V> {
-
- public enum Type { REGISTRY("Registry"), //$NON-NLS-1$
- SESSION("Session"), //$NON-NLS-1$
- SESSION_MONITOR("Session-Monitor"), //$NON-NLS-1$
- AUTHORIZATION_POLICY("Authorization-Policy"), //$NON-NLS-1$
- AUTHORIZATION_PRINCIPAL("Auhtorization-Principal"), //$NON-NLS-1$
- RESULTSET("ResultSet"), //$NON-NLS-1$
- VDBMETADATA("VdbMetadata"), //$NON-NLS-1$
- VDBMODELS("VdbModels"), //$NON-NLS-1$
- SCOPED_CACHE("Scoped-Cache"); //$NON-NLS-1$
-
- private String location;
-
- Type(String location){
- this.location = location;
- }
-
- public String location() {
- return this.location;
- }
- }
-
- /**
- * Retrieves the value for the given Key
- *
- * @param key key under which value is to be retrieved.
- * @return returns data held under specified key in cache
- */
- V get(K key);
-
- /**
- * Associates the specified value with the specified key this cache.
- * If the cache previously contained a mapping for this key, the old value is replaced by the specified value.
- *
- * @param key key with which the specified value is to be associated.
- * @param value value to be associated with the specified key.
- * @return previous value associated with specified key, or <code>null</code> if there was no mapping for key.
- * A <code>null</code> return can also indicate that the key previously associated <code>null</code> with the specified key,
- * if the implementation supports null values.
- */
- V put(K key, V value);
-
- /**
- * Removes the value for this key from a Cache.
- * Returns the value to which the Key previously associated , or
- * <code>null</code> if the Key contained no mapping.
- *
- * @param key key whose mapping is to be removed
- * @return previous value associated with specified Node's key
- */
- V remove(K key);
-
- /**
- * Size of the cache
- * @return number of items in this cache
- */
- int size();
-
-
- /**
- * Returns a {@link Set} containing the data in this Cache
- *
- * @return a {@link Set} containing the data in this Cache. If there is no data,
- * an empty {@link Set} is returned. The {@link Set} returned is always immutable.
- */
- Set<K> keySet();
-
- /**
- * Removes all the keys and their values from the Cache
- */
- void clear();
-
- /**
- * Listener to get the updates on this Cache
- * @param listener
- */
- void addListener(CacheListener listener);
-
- /**
- * Remove Listener to stop the updates on this Cache
- * @param listener
- */
- void removeListener();
-
- /**
- * Returns a {@link Collection} containing the data in this Cache
- *
- * @return a {@link Collection} containing the data in this Cache. If there is no data,
- * an empty {@link Collection} is returned.
- */
- Collection<V> values();
-
-
- /**
- * Add a child node to the current cache node
- * @param name - name of the child
- * @return Cache instance.
- */
- Cache addChild(String name);
-
- /**
- * Get the child cache node from the current node
- * @param name
- * @return null if not found
- */
- Cache getChild(String name);
-
- /**
- * Destroys the child from the current node; no-op if node not found
- * @param name
- * @return true if removed; false otherwise
- */
- boolean removeChild(String name);
-
-
- /**
- * Get child nodes under this cache node. If none found empty set is returned
- * @return
- */
- List<Cache> getChildren();
-
- /**
- * Name of the cache node
- * @return
- */
- String getName();
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/cache/CacheConfiguration.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/cache/CacheConfiguration.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/cache/CacheConfiguration.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,56 +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.cache;
-
-public class CacheConfiguration {
-
- public static CacheConfiguration DEFAULT = new CacheConfiguration(Policy.LRU, 60*60, 100); // 1 hours with 100 nodes.
-
- public enum Policy {
- LRU, // Least Recently Used
- FIFO, // First in First Out
- LFU; // Least frequently Used
- }
-
- private Policy policy;
- private int maxage;
- private int maxnodes;
-
- public CacheConfiguration(Policy policy, int maxAgeInSeconds, int maxNodes) {
- this.policy = policy;
- this.maxage = maxAgeInSeconds;
- this.maxnodes = maxNodes;
- }
-
- public Policy getPolicy() {
- return this.policy;
- }
-
- public int getMaxAgeInSeconds(){
- return maxage;
- }
-
- public int getMaxNodes() {
- return this.maxnodes;
- }
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/cache/CacheFactory.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/cache/CacheFactory.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/cache/CacheFactory.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,39 +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.cache;
-
-public interface CacheFactory {
-
- /**
- * Create / Get the cache for the give type use
- * @param type cache type
- * @param config configuration setup for the cache
- * @return
- */
- <K,V> Cache<K, V> get(Cache.Type type, CacheConfiguration config);
-
- /**
- * Destroy the cache factory and any caches underneath.
- */
- void destroy();
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/cache/CacheListener.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/cache/CacheListener.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/cache/CacheListener.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,30 +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.cache;
-
-/**
- * Listener for the cache events like add,update delete
- */
-public interface CacheListener {
- void cacheChanged();
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/common/buffer/BatchManager.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/common/buffer/BatchManager.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/common/buffer/BatchManager.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,41 +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.common.buffer;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-
-public interface BatchManager {
-
- public interface ManagedBatch {
-
- TupleBatch getBatch(boolean cache, String[] types) throws MetaMatrixComponentException;
-
- void remove();
-
- }
-
- ManagedBatch createManagedBatch(TupleBatch batch) throws MetaMatrixComponentException;
-
- void remove();
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/common/buffer/BlockedException.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/common/buffer/BlockedException.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/common/buffer/BlockedException.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,43 +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.common.buffer;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-
-/**
- * This exception is thrown if the buffer manager blocks waiting on input during
- * processing. This is an indication that more data will be available, but is
- * not currently available.
- */
-public class BlockedException extends MetaMatrixComponentException {
-
- public static final BlockedException INSTANCE = new BlockedException();
-
- /**
- * No-arg costructor required by Externalizable semantics
- */
- public BlockedException() {
- super();
- }
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/common/buffer/BufferManager.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/common/buffer/BufferManager.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/common/buffer/BufferManager.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,116 +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.common.buffer;
-
-import java.util.List;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-
-/**
- * The buffer manager controls how memory is used and how data flows through
- * the system. It uses {@link StorageManager storage managers}
- * to retrieve data, store data, and
- * transfer data. The buffer manager has algorithms that tell it when and
- * how to store data. The buffer manager should also be aware of memory
- * management issues.
- */
-public interface BufferManager extends StorageManager {
-
- public enum TupleSourceType {
- /**
- * Indicates that a tuple source is use during query processing as a
- * temporary results.
- */
- PROCESSOR,
- /**
- * Indicates that a tuple source represents a query's final results.
- */
- FINAL
- }
-
- public enum BufferReserveMode {
- WAIT,
- FORCE,
- NO_WAIT
- }
-
- public static int DEFAULT_CONNECTOR_BATCH_SIZE = 1024;
- public static int DEFAULT_PROCESSOR_BATCH_SIZE = 512;
- public static int DEFAULT_MAX_PROCESSING_BATCHES = 128;
-
- /**
- * This is the maximum number of batch columns used for processing.
- * See {@link #reserveBuffers(int, boolean)}
- */
- public static int DEFAULT_RESERVE_BUFFERS = 16384;
-
- /**
- * Get the batch size to use during query processing.
- * @return Batch size (# of rows)
- */
- int getProcessorBatchSize();
-
- /**
- * Get the batch size to use when reading data from a connector.
- * @return Batch size (# of rows)
- */
- int getConnectorBatchSize();
-
- TupleBuffer createTupleBuffer(List elements, String groupName, TupleSourceType tupleSourceType)
- throws MetaMatrixComponentException;
-
- /**
- * Return the maximum number of batches that can be temporarily held potentially
- * across even a blocked exception.
- * @return
- */
- int getMaxProcessingBatchColumns();
-
- /**
- * Creates a new {@link FileStore}. See {@link FileStore#setCleanupReference(Object)} to
- * automatically cleanup the underlying resources.
- * @param name
- * @return
- */
- FileStore createFileStore(String name);
-
- /**
- * Reserve up to count buffers for use.
- * @param count
- * @param mode
- * @return
- */
- int reserveBuffers(int count, BufferReserveMode mode);
-
- /**
- * Releases the buffers reserved by a call to {@link BufferManager#reserveBuffers(int, boolean)}
- * @param count
- */
- void releaseBuffers(int count);
-
- /**
- * Get the size estimate for the given schema.
- */
- int getSchemaSize(List elements);
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/common/buffer/FileStore.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/common/buffer/FileStore.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/common/buffer/FileStore.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,244 +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.common.buffer;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.lang.ref.PhantomReference;
-import java.lang.ref.ReferenceQueue;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.IdentityHashMap;
-import java.util.Set;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-
-public abstract class FileStore {
-
- private static ReferenceQueue<Object> QUEUE = new ReferenceQueue<Object>();
- private static final Set<PhantomReference<Object>> REFERENCES = Collections.newSetFromMap(new IdentityHashMap<PhantomReference<Object>, Boolean>());
-
- /**
- * A customized buffered stream with an exposed buffer
- */
- public final class FileStoreOutputStream extends OutputStream {
-
- private byte[] buffer;
- private int count;
- private boolean bytesWritten;
-
- public FileStoreOutputStream(int size) {
- this.buffer = new byte[size];
- }
-
- @Override
- public void write(int b) throws IOException {
- write(new byte[b], 0, 1);
- }
-
- @Override
- public void write(byte[] b, int off, int len) throws IOException {
- if (len > buffer.length) {
- flushBuffer();
- writeDirect(b, off, len);
- return;
- }
- int bufferedLength = Math.min(len, buffer.length - count);
- if (count < buffer.length) {
- System.arraycopy(b, off, buffer, count, bufferedLength);
- count += bufferedLength;
- if (bufferedLength == len) {
- return;
- }
- }
- flushBuffer();
- System.arraycopy(b, off + bufferedLength, buffer, count, len - bufferedLength);
- count += len - bufferedLength;
- }
-
- private void writeDirect(byte[] b, int off, int len) throws IOException {
- try {
- FileStore.this.write(b, off, len);
- bytesWritten = true;
- } catch (MetaMatrixComponentException e) {
- throw new IOException(e);
- }
- }
-
- public void flushBuffer() throws IOException {
- if (count > 0) {
- writeDirect(buffer, 0, count);
- count = 0;
- }
- }
-
- public boolean bytesWritten() {
- return bytesWritten;
- }
-
- public byte toByteArray()[] {
- return Arrays.copyOf(buffer, count);
- }
-
- @Override
- public void close() throws IOException {
- if (bytesWritten) {
- flushBuffer();
- }
- }
-
- }
-
- static class CleanupReference extends PhantomReference<Object> {
-
- private FileStore store;
-
- public CleanupReference(Object referent, FileStore store) {
- super(referent, QUEUE);
- this.store = store;
- }
-
- public void cleanup() {
- try {
- this.store.remove();
- } finally {
- this.clear();
- }
- }
- }
-
- private boolean removed;
- private long len;
-
- public void setCleanupReference(Object o) {
- REFERENCES.add(new CleanupReference(o, this));
- for (int i = 0; i < 10; i++) {
- CleanupReference ref = (CleanupReference)QUEUE.poll();
- if (ref == null) {
- break;
- }
- ref.cleanup();
- REFERENCES.remove(ref);
- }
- }
-
- public synchronized long getLength() {
- return len;
- }
-
- public int read(long fileOffset, byte[] b, int offSet, int length)
- throws MetaMatrixComponentException {
- if (removed) {
- throw new MetaMatrixComponentException("already removed"); //$NON-NLS-1$
- }
- return readDirect(fileOffset, b, offSet, length);
- }
-
- protected abstract int readDirect(long fileOffset, byte[] b, int offSet, int length)
- throws MetaMatrixComponentException;
-
- public void readFully(long fileOffset, byte[] b, int offSet, int length) throws MetaMatrixComponentException {
- int n = 0;
- do {
- int count = this.read(fileOffset + n, b, offSet + n, length - n);
- if (count < 0) {
- throw new MetaMatrixComponentException("not enough bytes available"); //$NON-NLS-1$
- }
- n += count;
- } while (n < length);
- }
-
- public void write(byte[] bytes) throws MetaMatrixComponentException {
- write(bytes, 0, bytes.length);
- }
-
- public synchronized long write(byte[] bytes, int offset, int length) throws MetaMatrixComponentException {
- if (removed) {
- throw new MetaMatrixComponentException("already removed"); //$NON-NLS-1$
- }
- writeDirect(bytes, offset, length);
- long result = len;
- len += length;
- return result;
- }
-
- protected abstract void writeDirect(byte[] bytes, int offset, int length) throws MetaMatrixComponentException;
-
- public void remove() {
- if (!this.removed) {
- this.removed = true;
- this.removeDirect();
- }
- }
-
- protected abstract void removeDirect();
-
- public InputStream createInputStream(final long start) {
- return new InputStream() {
- private long offset = start;
-
- @Override
- public int read() throws IOException {
- throw new UnsupportedOperationException("buffered reading must be used"); //$NON-NLS-1$
- }
-
- @Override
- public int read(byte[] b, int off, int len) throws IOException {
- try {
- int bytes = FileStore.this.read(offset, b, off, len);
- if (bytes != -1) {
- this.offset += bytes;
- }
- return bytes;
- } catch (MetaMatrixComponentException e) {
- throw new IOException(e);
- }
- }
- };
- }
-
- public OutputStream createOutputStream() {
- return new OutputStream() {
-
- @Override
- public void write(int b) throws IOException {
- throw new UnsupportedOperationException("buffered reading must be used"); //$NON-NLS-1$
- }
-
- @Override
- public void write(byte[] b, int off, int len) throws IOException {
- try {
- FileStore.this.write(b, off, len);
- } catch (MetaMatrixComponentException e) {
- throw new IOException(e);
- }
- }
- };
- }
-
- public FileStoreOutputStream createOutputStream(int maxMemorySize) {
- return new FileStoreOutputStream(maxMemorySize);
- }
-
-}
\ No newline at end of file
Deleted: trunk/engine/src/main/java/com/metamatrix/common/buffer/IndexedTupleSource.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/common/buffer/IndexedTupleSource.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/common/buffer/IndexedTupleSource.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,60 +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.common.buffer;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-
-public interface IndexedTupleSource extends TupleSource {
-
- /**
- * @return true if there are more tuples
- * @throws MetaMatrixComponentException
- * @throws MetaMatrixProcessingException
- */
- boolean hasNext() throws MetaMatrixComponentException, MetaMatrixProcessingException;
-
- /**
- * Save the current position that can be restored with a call to {@link #reset()}
- */
- void mark();
-
- /**
- * Restore the previous mark and set the mark back to the first position.
- */
- void reset();
-
- /**
- * Set the tuple source position
- * @param position
- */
- void setPosition(int position);
-
- /**
- * Get the current position. The position is 1 based and reports the position of the
- * tuple that will be retrieved with a call to {@link TupleSource#nextTuple()}
- * @return
- */
- int getCurrentIndex();
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/common/buffer/StorageManager.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/common/buffer/StorageManager.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/common/buffer/StorageManager.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,33 +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.common.buffer;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-
-public interface StorageManager {
-
- void initialize() throws MetaMatrixComponentException;
-
- FileStore createFileStore(String name);
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/common/buffer/TupleBatch.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/common/buffer/TupleBatch.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/common/buffer/TupleBatch.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,184 +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.common.buffer;
-
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.util.List;
-
-import org.teiid.client.BatchSerializer;
-
-
-/**
- * Represents a set of indexed tuples. The {@link #getBeginRow beginning row}
- * is the first row contained in this batch; if it equals "1" then it is the
- * first row of the tuple source, otherwise this is a batch of intermediate
- * tuples. The {@link #getEndRow ending row} is the last row contained in
- * this tuple batch; it is equal to the beginning row plus the
- * {@link #getRowCount number of rows} contained in this batch, minus one.
- * This object is immutable and Serializable;
- */
-public class TupleBatch implements Externalizable {
-
- private static final long serialVersionUID = 6304443387337336957L;
-
- private int rowOffset;
- private List[] tuples;
-
- // Optional state
- private boolean terminationFlag = false;
-
- /**
- * Contains ordered data types of each of the columns in the batch. Although it is not serialized,
- * this array is a serialization aid and must be set before serialization and deserialization using
- * the setDataTypes method.
- */
- private transient String[] types;
-
- /** Required to honor Externalizable contract */
- public TupleBatch() {
- }
-
- /**
- * Constructor
- * @param beginRow indicates the row of the tuple source which is the
- * first row contained in this batch
- * @param tuples array of List objects, each of which is
- * a single tuple
- */
- public TupleBatch(int beginRow, List[] tuples) {
- this.rowOffset = beginRow;
- this.tuples = tuples;
- }
-
- /**
- * Constructor
- * @param beginRow indicates the row of the tuple source which is the
- * first row contained in this batch
- * @param listOfTupleLists List containing List objects, each of which is
- * a single tuple
- */
- public TupleBatch(int beginRow, List listOfTupleLists) {
- this.rowOffset = beginRow;
- this.tuples = (List[]) listOfTupleLists.toArray(new List[listOfTupleLists.size()]);
- }
-
- /**
- * Return the number of the first row of the tuple source that is
- * contained in this batch (one-based).
- * @return the first row contained in this tuple batch
- */
- public int getBeginRow() {
- return rowOffset;
- }
-
- /**
- * Return number of the last row of the tuple source that is contained in
- * this batch (one-based).
- * @return the last row contained in this tuple batch
- */
- public int getEndRow() {
- return rowOffset + tuples.length - 1;
- }
-
- /**
- * Return the number of rows contained in this tuple batch
- * @return the number of rows contained in this tuple batch
- */
- public int getRowCount() {
- return tuples.length;
- }
-
- /**
- * Return the tuple at the given index (one-based).
- * @return the tuple at the given index
- */
- public List getTuple(int rowIndex) {
- return tuples[rowIndex-rowOffset];
- }
-
- /**
- * Get all tuples
- * @return All tuples
- */
- public List[] getAllTuples() {
- return tuples;
- }
-
- /**
- * Check whether this batch is the last in a series of batches.
- * @return True if this batch is last
- */
- public boolean getTerminationFlag() {
- return this.terminationFlag;
- }
-
- /**
- * Set whether this batch is the last in a series of batches.
- * @param terminationFlag True if last
- */
- public void setTerminationFlag(boolean terminationFlag) {
- this.terminationFlag = terminationFlag;
- }
-
- public String[] getDataTypes() {
- return types;
- }
-
- public void setDataTypes(String[] types) {
- this.types = types;
- }
-
- public boolean containsRow(int row) {
- return rowOffset <= row && getEndRow() >= row;
- }
-
- /**
- * Return a String describing this object
- * @param String representation of this TupleBatch
- */
- public String toString() {
- StringBuffer s = new StringBuffer();
- s.append("TupleBatch; beginning row="); //$NON-NLS-1$
- s.append(rowOffset);
- s.append(", number of rows="); //$NON-NLS-1$
- s.append(tuples.length);
- s.append(", lastBatch="); //$NON-NLS-1$
- s.append(this.terminationFlag);
- return s.toString();
- }
-
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- rowOffset = in.readInt();
- terminationFlag = in.readBoolean();
- tuples = BatchSerializer.readBatch(in, types);
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeInt(rowOffset);
- out.writeBoolean(terminationFlag);
- BatchSerializer.writeBatch(out, types, tuples);
- }
-}
-
Deleted: trunk/engine/src/main/java/com/metamatrix/common/buffer/TupleBuffer.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/common/buffer/TupleBuffer.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/common/buffer/TupleBuffer.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,415 +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.common.buffer;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Map;
-import java.util.TreeMap;
-import java.util.concurrent.atomic.AtomicLong;
-
-import org.teiid.logging.LogConstants;
-import org.teiid.logging.LogManager;
-import org.teiid.logging.MessageLevel;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.Streamable;
-import com.metamatrix.core.util.Assertion;
-import com.metamatrix.dqp.DQPPlugin;
-import com.metamatrix.query.sql.symbol.Expression;
-
-public class TupleBuffer {
-
- class TupleSourceImpl implements IndexedTupleSource {
- private int currentRow = 1;
- private int mark = 1;
- private List<?> currentTuple;
- private TupleBatch batch;
-
- @Override
- public int getCurrentIndex() {
- return this.currentRow;
- }
-
- @Override
- public List getSchema(){
- return schema;
- }
-
- @Override
- public List<?> nextTuple()
- throws MetaMatrixComponentException{
- List<?> result = null;
- if (currentTuple != null){
- result = currentTuple;
- currentTuple = null;
- } else {
- result = getCurrentTuple();
- }
- if (result != null) {
- currentRow++;
- }
- return result;
- }
-
- private List<?> getCurrentTuple() throws MetaMatrixComponentException,
- BlockedException {
- if (currentRow <= rowCount) {
- //if (forwardOnly) {
- if (batch == null || !batch.containsRow(currentRow)) {
- batch = getBatch(currentRow);
- }
- return batch.getTuple(currentRow);
- //}
- //TODO: determine if we should directly hold a soft reference here
- //return getRow(currentRow);
- }
- batch = null;
- if(isFinal) {
- return null;
- }
- throw BlockedException.INSTANCE;
- }
-
- @Override
- public void closeSource() {
- batch = null;
- mark = 1;
- reset();
- }
-
- @Override
- public boolean hasNext() throws MetaMatrixComponentException {
- if (this.currentTuple != null) {
- return true;
- }
-
- this.currentTuple = getCurrentTuple();
- return this.currentTuple != null;
- }
-
- @Override
- public void reset() {
- this.setPosition(mark);
- this.mark = 1;
- }
-
- @Override
- public void mark() {
- this.mark = currentRow;
- }
-
- @Override
- public void setPosition(int position) {
- if (this.currentRow != position) {
- this.currentRow = position;
- this.currentTuple = null;
- }
- }
-
- @Override
- public int available() {
- return rowCount - currentRow + 1;
- }
- }
-
- /**
- * Gets the data type names for each of the input expressions, in order.
- * @param expressions List of Expressions
- * @return
- * @since 4.2
- */
- public static String[] getTypeNames(List expressions) {
- if (expressions == null) {
- return null;
- }
- String[] types = new String[expressions.size()];
- for (ListIterator i = expressions.listIterator(); i.hasNext();) {
- Expression expr = (Expression)i.next();
- types[i.previousIndex()] = DataTypeManager.getDataTypeName(expr.getType());
- }
- return types;
- }
-
- private static final AtomicLong LOB_ID = new AtomicLong();
-
- //construction state
- private BatchManager manager;
- private String tupleSourceID;
- private List<?> schema;
- private String[] types;
- private int batchSize;
-
- private int rowCount;
- private boolean isFinal;
- private TreeMap<Integer, BatchManager.ManagedBatch> batches = new TreeMap<Integer, BatchManager.ManagedBatch>();
- private ArrayList<List<?>> batchBuffer;
- private boolean removed;
- private boolean forwardOnly;
-
- //lob management
- private Map<String, Streamable<?>> lobReferences; //references to contained lobs
- private boolean lobs = true;
-
- public TupleBuffer(BatchManager manager, String id, List<?> schema, int batchSize) {
- this.manager = manager;
- this.tupleSourceID = id;
- this.schema = schema;
- this.types = getTypeNames(schema);
- this.batchSize = batchSize;
- if (types != null) {
- int i = 0;
- for (i = 0; i < types.length; i++) {
- if (DataTypeManager.isLOB(types[i]) || types[i] == DataTypeManager.DefaultDataTypes.OBJECT) {
- break;
- }
- }
- if (i == types.length) {
- lobs = false;
- }
- }
- }
-
- public void addTuple(List<?> tuple) throws MetaMatrixComponentException {
- if (lobs) {
- correctLobReferences(new List[] {tuple});
- }
- this.rowCount++;
- if (batchBuffer == null) {
- batchBuffer = new ArrayList<List<?>>(batchSize/4);
- }
- batchBuffer.add(tuple);
- if (batchBuffer.size() == batchSize) {
- saveBatch(false, false);
- }
- }
-
- /**
- * Adds the given batch preserving row offsets.
- * @param batch
- * @throws MetaMatrixComponentException
- */
- public void addTupleBatch(TupleBatch batch, boolean save) throws MetaMatrixComponentException {
- setRowCount(batch.getBeginRow() - 1);
- if (save) {
- for (List<?> tuple : batch.getAllTuples()) {
- addTuple(tuple);
- }
- }
- }
-
- public void setRowCount(int rowCount)
- throws MetaMatrixComponentException {
- assert this.rowCount <= rowCount;
- if (this.rowCount != rowCount) {
- saveBatch(false, true);
- this.rowCount = rowCount;
- }
- }
-
- public void purge() {
- if (this.batchBuffer != null) {
- this.batchBuffer.clear();
- }
- for (BatchManager.ManagedBatch batch : this.batches.values()) {
- batch.remove();
- }
- this.batches.clear();
- }
-
- /**
- * Force the persistence of any rows held in memory.
- * @throws MetaMatrixComponentException
- */
- public void saveBatch() throws MetaMatrixComponentException {
- this.saveBatch(false, false);
- }
-
- void saveBatch(boolean finalBatch, boolean force) throws MetaMatrixComponentException {
- Assertion.assertTrue(!this.isRemoved());
- if (batchBuffer == null || batchBuffer.isEmpty() || (!force && batchBuffer.size() < Math.max(1, batchSize / 32))) {
- return;
- }
- TupleBatch writeBatch = new TupleBatch(rowCount - batchBuffer.size() + 1, batchBuffer);
- if (finalBatch) {
- writeBatch.setTerminationFlag(true);
- }
- writeBatch.setDataTypes(types);
- BatchManager.ManagedBatch mbatch = manager.createManagedBatch(writeBatch);
- this.batches.put(writeBatch.getBeginRow(), mbatch);
- batchBuffer = null;
- }
-
- public void close() throws MetaMatrixComponentException {
- saveBatch(true, false);
- this.isFinal = true;
- }
-
- /**
- * Get the batch containing the given row.
- * NOTE: the returned batch may be empty or may begin with a row other
- * than the one specified.
- * @param row
- * @return
- * @throws MetaMatrixComponentException
- */
- public TupleBatch getBatch(int row) throws MetaMatrixComponentException {
- TupleBatch result = null;
- if (row > rowCount) {
- result = new TupleBatch(rowCount + 1, new List[] {});
- } else if (this.batchBuffer != null && row > rowCount - this.batchBuffer.size()) {
- result = new TupleBatch(rowCount - this.batchBuffer.size() + 1, batchBuffer);
- if (forwardOnly) {
- this.batchBuffer = null;
- }
- } else {
- if (this.batchBuffer != null && !this.batchBuffer.isEmpty()) {
- //this is just a sanity check to ensure we're not holding too many
- //hard references to batches.
- saveBatch(isFinal, false);
- }
- Map.Entry<Integer, BatchManager.ManagedBatch> entry = batches.floorEntry(row);
- Assertion.isNotNull(entry);
- BatchManager.ManagedBatch batch = entry.getValue();
- result = batch.getBatch(!forwardOnly, types);
- if (lobs && result.getDataTypes() == null) {
- correctLobReferences(result.getAllTuples());
- }
- result.setDataTypes(types);
- if (forwardOnly) {
- batches.remove(entry.getKey());
- }
- }
- if (isFinal && result.getEndRow() == rowCount) {
- result.setTerminationFlag(true);
- }
- return result;
- }
-
- public void remove() {
- if (!removed) {
- if (LogManager.isMessageToBeRecorded(LogConstants.CTX_BUFFER_MGR, MessageLevel.DETAIL)) {
- LogManager.logDetail(LogConstants.CTX_BUFFER_MGR, "Removing TupleBuffer:", this.tupleSourceID); //$NON-NLS-1$
- }
- this.batchBuffer = null;
- purge();
- this.manager.remove();
- removed = true;
- }
- }
-
- public int getRowCount() {
- return rowCount;
- }
-
- public boolean isFinal() {
- return isFinal;
- }
-
- public void setFinal(boolean isFinal) {
- this.isFinal = isFinal;
- }
-
- public List<?> getSchema() {
- return schema;
- }
-
- public int getBatchSize() {
- return batchSize;
- }
-
- public void setBatchSize(int batchSize) {
- this.batchSize = batchSize;
- }
-
- public Streamable<?> getLobReference(String id) throws MetaMatrixComponentException {
- Streamable<?> lob = null;
- if (this.lobReferences != null) {
- lob = this.lobReferences.get(id);
- }
- if (lob == null) {
- throw new MetaMatrixComponentException(DQPPlugin.Util.getString("ProcessWorker.wrongdata")); //$NON-NLS-1$
- }
- return lob;
- }
-
- /**
- * If a tuple batch is being added with Lobs, then references to
- * the lobs will be held on the {@link TupleSourceInfo}
- * @param batch
- * @throws MetaMatrixComponentException
- */
- @SuppressWarnings("unchecked")
- private void correctLobReferences(List[] rows) throws MetaMatrixComponentException {
- int columns = schema.size();
- // walk through the results and find all the lobs
- for (int row = 0; row < rows.length; row++) {
- for (int col = 0; col < columns; col++) {
- Object anObj = rows[row].get(col);
-
- if (!(anObj instanceof Streamable<?>)) {
- continue;
- }
- Streamable lob = (Streamable)anObj;
- String id = lob.getReferenceStreamId();
- if (id == null) {
- id = String.valueOf(LOB_ID.getAndIncrement());
- lob.setReferenceStreamId(id);
- }
- if (this.lobReferences == null) {
- this.lobReferences = Collections.synchronizedMap(new HashMap<String, Streamable<?>>());
- }
- this.lobReferences.put(id, lob);
- if (lob.getReference() == null) {
- lob.setReference(getLobReference(lob.getReferenceStreamId()).getReference());
- }
- }
- }
- }
-
- public void setForwardOnly(boolean forwardOnly) {
- this.forwardOnly = forwardOnly;
- }
-
- /**
- * Create a new iterator for this buffer
- * @return
- */
- public IndexedTupleSource createIndexedTupleSource() {
- return new TupleSourceImpl();
- }
-
- @Override
- public String toString() {
- return this.tupleSourceID;
- }
-
- public boolean isRemoved() {
- return removed;
- }
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/common/buffer/TupleSource.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/common/buffer/TupleSource.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/common/buffer/TupleSource.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,66 +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.common.buffer;
-
-import java.util.List;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.query.sql.symbol.SingleElementSymbol;
-
-/**
- * <p>A cursored source of tuples. The implementation will likely be closely
- * bound to a {@link BufferManager} implementation - it will work with it
- * to use {@link TupleBatch TupleBatches} behind the scenes.</p>
- */
-public interface TupleSource {
-
- /**
- * Returns the List of ElementSymbol describing the Tuple Source
- * @return the List of elements describing the Tuple Source
- */
- List<SingleElementSymbol> getSchema();
-
- /**
- * Returns the next tuple
- * @return the next tuple (a List object), or <code>null</code> if
- * there are no more tuples.
- * @throws MetaMatrixComponentException indicating a non-business
- * exception such as a communication exception, or other such
- * nondeterministic exception
- */
- List<?> nextTuple()
- throws MetaMatrixComponentException, MetaMatrixProcessingException;
-
- /**
- * Closes the Tuple Source.
- */
- void closeSource();
-
- /**
- * Returns an estimate of the number of rows that can be read without blocking.
- * @return
- */
- int available();
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/dqp/DQPPlugin.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/dqp/DQPPlugin.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/dqp/DQPPlugin.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,38 +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;
-
-import java.util.ResourceBundle;
-
-import com.metamatrix.core.BundleUtil;
-
-/**
- * DQPPlugin
- */
-public class DQPPlugin {
-
- public static final String PLUGIN_ID = "com.metamatrix.dqp" ; //$NON-NLS-1$
- public static final BundleUtil Util = new BundleUtil(PLUGIN_ID,
- PLUGIN_ID + ".i18n", ResourceBundle.getBundle(PLUGIN_ID + ".i18n")); //$NON-NLS-1$ //$NON-NLS-2$
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/QueryPlugin.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/QueryPlugin.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/QueryPlugin.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,43 +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.query;
-
-import java.util.ResourceBundle;
-import com.metamatrix.core.BundleUtil;
-
-/**
- * QueryPlugin
- * <p>
- * Used here in <code>query</code> to have access to the new logging framework for <code>LogManager</code>.
- * </p>
- */
-public class QueryPlugin { // extends Plugin {
-
- /**
- * The plug-in identifier of this plugin (value <code>"com.metamatrix.common"</code>).
- */
- public static final String PLUGIN_ID = "com.metamatrix.query"; //$NON-NLS-1$
-
- public static final BundleUtil Util = new BundleUtil(PLUGIN_ID,
- PLUGIN_ID + ".i18n", ResourceBundle.getBundle(PLUGIN_ID + ".i18n")); //$NON-NLS-1$ //$NON-NLS-2$
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/function/FunctionDescriptor.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/function/FunctionDescriptor.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/function/FunctionDescriptor.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,278 +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.query.function;
-
-import java.io.Serializable;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Arrays;
-
-import com.metamatrix.api.exception.query.FunctionExecutionException;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.common.util.PropertiesUtils;
-import com.metamatrix.core.MetaMatrixRuntimeException;
-import com.metamatrix.core.util.Assertion;
-import com.metamatrix.core.util.HashCodeUtil;
-import com.metamatrix.query.QueryPlugin;
-import com.metamatrix.query.function.metadata.FunctionMethod;
-import com.metamatrix.query.util.CommandContext;
-import com.metamatrix.query.util.ErrorMessageKeys;
-
-/**
- * The FunctionDescriptor describes a particular function instance enough
- * that the function library can retrieve a function instance based on the
- * descriptor.
- */
-public class FunctionDescriptor implements Serializable, Cloneable {
-
- private static final boolean ALLOW_NAN_INFINITY = PropertiesUtils.getBooleanProperty(System.getProperties(), "org.teiid.allowNanInfinity", false); //$NON-NLS-1$
-
- private String name;
- private int pushdown;
- private Class[] types;
- private Class returnType;
- private int hash;
- private boolean requiresContext;
- private boolean nullDependent;
- private int deterministic;
-
- // This is transient as it would be useless to invoke this method in
- // a different VM. This function descriptor can be used to look up
- // the real VM descriptor for execution.
- private transient Method invocationMethod;
-
- FunctionDescriptor() {
- }
-
- /**
- * Construct a function descriptor with all the info
- * @param name Name of function
- * @param types Types of the arguments
- * @param returnType Type of the return
- * @param invocationMethod Reflection method used to invoke the function
- * @param requiresContext during execution requires command context to be pushed into method as first argument
- */
- FunctionDescriptor(String name, int pushdown, Class[] types, Class returnType, Method invocationMethod, boolean requiresContext, boolean nullDependent, int deterministic) {
- Assertion.isNotNull(name);
- Assertion.isNotNull(types);
- Assertion.isNotNull(returnType);
-
- this.name = name;
- this.pushdown = pushdown;
- this.types = types;
- this.returnType = returnType;
- this.invocationMethod = invocationMethod;
- this.requiresContext = requiresContext;
- this.nullDependent = nullDependent;
- this.deterministic = deterministic;
-
- // Compute hash code
- hash = HashCodeUtil.hashCode(0, name);
- for(int i=0; i<types.length; i++) {
- hash = HashCodeUtil.hashCode(hash, types[i]);
- }
- }
-
- public String getName() {
- return this.name;
- }
-
- public int getPushdown() {
- return this.pushdown;
- }
-
- void setPushdown(int pushdown) {
- this.pushdown = pushdown;
- }
-
- public Class[] getTypes() {
- return this.types;
- }
-
- public Class getReturnType() {
- return this.returnType;
- }
-
- Method getInvocationMethod() {
- return this.invocationMethod;
- }
-
- public boolean requiresContext() {
- return this.requiresContext;
- }
-
- public int hashCode() {
- return this.hash;
- }
-
- public boolean equals(Object obj) {
- if(obj == this) {
- return true;
- }
-
- if(obj == null || !(obj instanceof FunctionDescriptor)) {
- return false;
- }
- FunctionDescriptor other = (FunctionDescriptor) obj;
-
- // Compare names
- if(! this.getName().equals(other.getName())) {
- return false;
- }
-
- // Compare arg types
- Class[] thisTypes = this.getTypes();
- Class[] otherTypes = other.getTypes();
- if(thisTypes.length != otherTypes.length) {
- return false;
- }
- for(int i=0; i<thisTypes.length; i++) {
- if(! thisTypes[i].equals(otherTypes[i])) {
- return false;
- }
- }
-
- if (this.nullDependent != other.isNullDependent()) {
- return false;
- }
-
- if (this.deterministic != other.deterministic) {
- return false;
- }
-
- // Must be a match
- return true;
- }
-
- public String toString() {
- StringBuffer str = new StringBuffer(this.name);
- str.append("("); //$NON-NLS-1$
- for(int i=0; i<types.length; i++) {
- if(types[i] != null) {
- str.append(types[i].getName());
- } else {
- str.append("null"); //$NON-NLS-1$
- }
- if(i<(types.length-1)) {
- str.append(", "); //$NON-NLS-1$
- }
- }
- str.append(") : "); //$NON-NLS-1$
- if(returnType == null) {
- str.append("null"); //$NON-NLS-1$
- } else {
- str.append(returnType.getName());
- }
- return str.toString();
- }
-
- public boolean isNullDependent() {
- return nullDependent;
- }
-
- public int getDeterministic() {
- return deterministic;
- }
-
- void setDeterministic(int deterministic) {
- this.deterministic = deterministic;
- }
-
- public Object clone() {
- try {
- return super.clone();
- } catch (CloneNotSupportedException e) {
- throw new MetaMatrixRuntimeException(e);
- }
- }
-
- void setReturnType(Class returnType) {
- this.returnType = returnType;
- }
-
-
- /**
- * Invoke the function described in the function descriptor, using the
- * values provided. Return the result of the function.
- * @param fd Function descriptor describing the name and types of the arguments
- * @param values Values that should match 1-to-1 with the types described in the
- * function descriptor
- * @return Result of invoking the function
- */
- public Object invokeFunction(Object[] values) throws FunctionExecutionException {
-
- if (!isNullDependent()) {
- for (int i = 0; i < values.length; i++) {
- if (values[i] == null) {
- return null;
- }
- }
- }
-
- // If descriptor is missing invokable method, find this VM's descriptor
- // give name and types from fd
- Method method = getInvocationMethod();
- if(method == null) {
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0002, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0002, getName()));
- }
-
- if (getDeterministic() >= FunctionMethod.SESSION_DETERMINISTIC && values.length > 0 && values[0] instanceof CommandContext) {
- CommandContext cc = (CommandContext)values[0];
- cc.setSessionFunctionEvaluated(true);
- }
-
- // Invoke the method and return the result
- try {
- if (method.isVarArgs()) {
- int i = method.getParameterTypes().length;
- Object[] newValues = Arrays.copyOf(values, i);
- newValues[i - 1] = Arrays.copyOfRange(values, i - 1, values.length);
- values = newValues;
- }
- Object result = method.invoke(null, values);
- if (!ALLOW_NAN_INFINITY) {
- if (result instanceof Double) {
- Double floatVal = (Double)result;
- if (Double.isInfinite(floatVal) || Double.isNaN(floatVal)) {
- throw new FunctionExecutionException(new ArithmeticException("Infinite or invalid result"), ErrorMessageKeys.FUNCTION_0003, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0003, getName())); //$NON-NLS-1$
- }
- } else if (result instanceof Float) {
- Float floatVal = (Float)result;
- if (Float.isInfinite(floatVal) || Float.isNaN(floatVal)) {
- throw new FunctionExecutionException(new ArithmeticException("Infinite or invalid result"), ErrorMessageKeys.FUNCTION_0003, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0003, getName())); //$NON-NLS-1$
- }
- }
- }
- result = DataTypeManager.convertToRuntimeType(result);
- result = DataTypeManager.transformValue(result, getReturnType());
- return result;
- } catch(InvocationTargetException e) {
- throw new FunctionExecutionException(e.getTargetException(), ErrorMessageKeys.FUNCTION_0003, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0003, getName()));
- } catch(IllegalAccessException e) {
- throw new FunctionExecutionException(e, ErrorMessageKeys.FUNCTION_0004, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0004, method.toString()));
- } catch (TransformationException e) {
- throw new FunctionExecutionException(e, e.getMessage());
- }
- }
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/function/FunctionForm.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/function/FunctionForm.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/function/FunctionForm.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,282 +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.query.function;
-
-import java.io.Serializable;
-import java.util.*;
-
-import org.teiid.connector.language.SQLReservedWords;
-
-import com.metamatrix.core.util.Assertion;
-import com.metamatrix.core.util.HashCodeUtil;
-import com.metamatrix.query.function.metadata.*;
-
-/**
- * The FunctionForm class represents a particular form of a function signature.
- * It is different from the FunctionMethod class because it ignores type
- * information and instead differentiates function signatures based on their
- * function name and the names of the arguments.
- */
-public class FunctionForm implements Serializable, Comparable {
-
- private String name;
- private String description;
- private String category;
- private List inputParamNames;
- private List inputParamDescs;
- private String outputParamName;
- private String outputParamDesc;
-
- /**
- * Construct a function form by pulling all info from a FunctionMethod. Because
- * a FunctionForm is only created from a <b>validated</b> method, we can assume
- * many things, such as that function name, type, category are non-null.
- * @param method FunctionMethod to build form from
- */
- public FunctionForm(FunctionMethod method) {
- Assertion.isNotNull(method);
-
- // Get function stuff
- this.name = method.getName().toUpperCase();
- this.description = method.getDescription();
- this.category = method.getCategory().toUpperCase();
-
- // Get input parameter stuff
- FunctionParameter[] inputParams = method.getInputParameters();
- if(inputParams == null) {
- inputParamNames = new ArrayList(0);
- inputParamDescs = new ArrayList(0);
- } else {
- inputParamNames = new ArrayList(inputParams.length);
- inputParamDescs = new ArrayList(inputParams.length);
-
- for(int i=0; i<inputParams.length; i++) {
- inputParamNames.add(inputParams[i].getName().toUpperCase());
- inputParamDescs.add(inputParams[i].getDescription());
- }
- }
-
- // Get output parameter stuff
- FunctionParameter outParam = method.getOutputParameter();
- this.outputParamName = outParam.getName().toUpperCase();
- this.outputParamDesc = outParam.getDescription();
- }
-
- /**
- * Get name of function.
- * @return Name
- */
- public String getName() {
- return this.name;
- }
-
- /**
- * Get description of function.
- * @return Description
- */
- public String getDescription() {
- return this.description;
- }
-
- /**
- * Get category.
- * @return Category
- */
- public String getCategory() {
- return this.category;
- }
-
- /**
- * Get list of argument names.
- * @return List of argument names ({@link java.lang.String})
- */
- public List getArgNames() {
- return this.inputParamNames;
- }
-
- /**
- * Get argument name at index.
- * @param index Index to use
- * @return Argument name at index
- */
- public String getArgName(int index) {
- return (String) this.inputParamNames.get(index);
- }
-
- /**
- * Get list of argument descriptions.
- * @return List of argument descriptions ({@link java.lang.String})
- */
- public List getArgDescriptions() {
- return this.inputParamDescs;
- }
-
- /**
- * Get argument description at index.
- * @param index Index to use
- * @return Argument description at index
- */
- public String getArgDescription(int index) {
- return (String) this.inputParamDescs.get(index);
- }
-
- /**
- * Get name of return parameter
- * @return Name of return parameter
- */
- public String getReturnName() {
- return this.outputParamName;
- }
-
- /**
- * Get description of return parameter
- * @return Description of return parameter
- */
- public String getReturnDescription() {
- return this.outputParamDesc;
- }
-
- /**
- * Get display string for this function form
- * @return Display version of this function form
- */
- public String getDisplayString() {
- StringBuffer str = new StringBuffer();
-
- if(name.equalsIgnoreCase(FunctionLibrary.CAST)) {
- str.append(name);
- str.append("("); //$NON-NLS-1$
- str.append(inputParamNames.get(0));
- if(name.equalsIgnoreCase(FunctionLibrary.CONVERT) || name.equalsIgnoreCase(FunctionLibrary.CAST)) {
- str.append(", "); //$NON-NLS-1$
- } else {
- str.append(" "); //$NON-NLS-1$
- str.append(SQLReservedWords.AS);
- str.append(" "); //$NON-NLS-1$
- }
- str.append(inputParamNames.get(1));
- str.append(")"); //$NON-NLS-1$
-
- } else if(name.equals("+") || name.equals("-") || name.equals("*") || name.equals("/") || name.equals("||")) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
- str.append("("); //$NON-NLS-1$
- str.append(inputParamNames.get(0));
- str.append(name);
- str.append(inputParamNames.get(1));
- str.append(")"); //$NON-NLS-1$
- } else {
- str.append(name);
- str.append("("); //$NON-NLS-1$
-
- if(inputParamNames.size() > 0) {
- Iterator iter = inputParamNames.iterator();
- str.append(iter.next());
- while(iter.hasNext()) {
- str.append(", "); //$NON-NLS-1$
- str.append(iter.next());
- }
- }
-
- str.append(")"); //$NON-NLS-1$
- }
-
- return str.toString();
- }
-
- /**
- * String representation of the function form for debugging purposes.
- * @return String representation
- */
- public String toString() {
- return this.getDisplayString();
- }
-
- /**
- * Return hash code based on the name and input parameter names
- * @return Hash code
- */
- public int hashCode() {
- return HashCodeUtil.hashCode(name.hashCode(), inputParamNames.hashCode());
- }
-
- /**
- * Compare this function form with another based on the name and
- * argument names.
- * @param obj Other object
- */
- public boolean equals(Object obj) {
- if(obj == this) {
- return true;
- } else if(obj == null || !(obj instanceof FunctionForm)) {
- return false;
- } else {
- FunctionForm other = (FunctionForm) obj;
- return other.getName().equals(getName()) &&
- other.getArgNames().equals(getArgNames());
- }
- }
-
- /**
- * Implements Comparable interface so that this object can be compared to
- * other FunctionForm objects and ordered alphabetically.
- * @param obj Other object
- * @return 1 if other > this, 0 if other == this, -1 if other < this
- */
- public int compareTo(Object obj) {
- if(obj == this) {
- return 0;
- } else if(obj == null) {
- // Should never happen, but sort nulls low
- return -1;
- } else {
- // may throw ClassCastException - this is expected for compareTo()
- FunctionForm other = (FunctionForm) obj;
-
- int compare = this.getName().compareTo( other.getName() );
- if(compare != 0) {
- return compare;
- }
-
- // Look further into arg names to compare as names are ==
- List otherArgs = other.getArgNames();
- List myArgs = this.getArgNames();
-
- // Compare # of args first
- if(myArgs.size() < otherArgs.size()) {
- return -1;
- } else if(myArgs.size() > otherArgs.size()) {
- return 1;
- } // else continue
-
- // Same # of args
- for(int i=0; i < myArgs.size(); i++) {
- compare = ((String)myArgs.get(i)).compareTo( ((String)otherArgs.get(i)) );
- if(compare != 0) {
- return compare;
- }
- }
-
- // Same
- return 0;
- }
- }
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/function/FunctionLibrary.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/function/FunctionLibrary.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/function/FunctionLibrary.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,337 +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.query.function;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-
-import com.metamatrix.api.exception.query.InvalidFunctionException;
-import com.metamatrix.api.exception.query.QueryResolverException;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.query.function.metadata.FunctionMethod;
-import com.metamatrix.query.function.metadata.FunctionParameter;
-import com.metamatrix.query.sql.symbol.Expression;
-import com.metamatrix.query.sql.symbol.Function;
-
-
-/**
- * The function library is the primary way for the system to find out what
- * functions are available, resolve function signatures, and invoke system
- * and user-defined functions.
- */
-public class FunctionLibrary {
-
- // Special type conversion functions
- public static final String CONVERT = "convert"; //$NON-NLS-1$
- public static final String CAST = "cast"; //$NON-NLS-1$
-
- // Special lookup function
- public static final String LOOKUP = "lookup"; //$NON-NLS-1$
-
- // Special user function
- public static final String USER = "user"; //$NON-NLS-1$
- // Special environment variable lookup function
- public static final String ENV = "env"; //$NON-NLS-1$
-
- // Special pseudo-functions only for XML queries
- public static final String CONTEXT = "context"; //$NON-NLS-1$
- public static final String ROWLIMIT = "rowlimit"; //$NON-NLS-1$
- public static final String ROWLIMITEXCEPTION = "rowlimitexception"; //$NON-NLS-1$
-
- // Misc.
- public static final String DECODESTRING = "decodestring"; //$NON-NLS-1$
- public static final String DECODEINTEGER = "decodeinteger"; //$NON-NLS-1$
- public static final String COMMAND_PAYLOAD = "commandpayload"; //$NON-NLS-1$
-
- public static final String CONCAT = "CONCAT"; //$NON-NLS-1$
- public static final String CONCAT2 = "CONCAT2"; //$NON-NLS-1$
- public static final String CONCAT_OPERATOR = "||"; //$NON-NLS-1$
- public static final String SUBSTRING = "substring"; //$NON-NLS-1$
- public static final String NVL = "NVL"; //$NON-NLS-1$
- public static final String IFNULL = "IFNULL"; //$NON-NLS-1$
-
- public static final String FROM_UNIXTIME = "from_unixtime"; //$NON-NLS-1$
- public static final String TIMESTAMPADD = "timestampadd"; //$NON-NLS-1$
-
- public static final String PARSETIME = "parsetime"; //$NON-NLS-1$
- public static final String PARSEDATE = "parsedate"; //$NON-NLS-1$
- public static final String FORMATTIME = "formattime"; //$NON-NLS-1$
- public static final String FORMATDATE = "formatdate"; //$NON-NLS-1$
-
- public static final String NULLIF = "nullif"; //$NON-NLS-1$
- public static final String COALESCE = "coalesce"; //$NON-NLS-1$
-
- public static final String SPACE = "space"; //$NON-NLS-1$
-
- public static final String XMLFOREST = "XMLFOREST"; //$NON-NLS-1$
- public static final String XMLATTRIBUTES = "XMLATTRIBUTES"; //$NON-NLS-1$
- public static final String XMLNAMESPACES = "XMLNAMESPACES"; //$NON-NLS-1$
- public static final String XMLELEMENT = "XMLELEMENT"; //$NON-NLS-1$
-
- // Function tree for system functions (never reloaded)
- private FunctionTree systemFunctions;
-
- // Function tree for user-defined functions
- private FunctionTree userFunctions;
-
- /**
- * Construct the function library. This should be called only once by the
- * FunctionLibraryManager.
- */
- public FunctionLibrary(FunctionTree systemFuncs, FunctionTree userFuncs) {
- systemFunctions = systemFuncs;
- userFunctions = userFuncs;
- }
-
- /**
- * Get all function categories, sorted in alphabetical order
- * @return List of function category names, sorted in alphabetical order
- */
- public List getFunctionCategories() {
- // Remove category duplicates
- HashSet categories = new HashSet();
- categories.addAll( systemFunctions.getCategories() );
- categories.addAll( userFunctions.getCategories() );
-
- // Sort alphabetically
- ArrayList categoryList = new ArrayList(categories);
- Collections.sort(categoryList);
- return categoryList;
- }
-
- /**
- * Get all function forms in a category, sorted by name, then # of args, then names of args.
- * @param category Category name
- * @return List of {@link FunctionForm}s in a category
- */
- public List getFunctionForms(String category) {
- List forms = new ArrayList();
- forms.addAll(systemFunctions.getFunctionForms(category));
- forms.addAll(userFunctions.getFunctionForms(category));
-
- // Sort alphabetically
- Collections.sort(forms);
- return forms;
- }
-
- /**
- * Find function form based on function name and # of arguments.
- * @param name Function name
- * @param numArgs Number of arguments
- * @return Corresponding form or null if not found
- */
- public FunctionForm findFunctionForm(String name, int numArgs) {
- FunctionForm form = systemFunctions.findFunctionForm(name, numArgs);
- if(form == null) {
- form = userFunctions.findFunctionForm(name, numArgs);
- }
- return form;
- }
-
- /**
- * Find a function descriptor given a name and the types of the arguments.
- * This method matches based on case-insensitive function name and
- * an exact match of the number and types of parameter arguments.
- * @param name Name of the function to resolve
- * @param types Array of classes representing the types
- * @return Descriptor if found, null if not found
- */
- public FunctionDescriptor findFunction(String name, Class[] types) {
- // First look in system functions
- FunctionDescriptor descriptor = systemFunctions.getFunction(name, types);
-
- // If that fails, check the user defined functions
- if(descriptor == null) {
- descriptor = userFunctions.getFunction(name, types);
- }
-
- return descriptor;
- }
-
- /**
- * Get the conversions that are needed to call the named function with arguments
- * of the given type. In the case of an exact match, the list will contain all nulls.
- * In other cases the list will contain one or more non-null values where the value
- * is a conversion function that can be used to convert to the proper types for
- * executing the function.
- * @param name Name of function
- * @param returnType
- * @param types Existing types passed to the function
- * @return Null if no conversion could be found, otherwise an array of conversions
- * to apply to each argument. The list should match 1-to-1 with the parameters.
- * Parameters that do not need a conversion are null; parameters that do are
- * FunctionDescriptors.
- * @throws QueryResolverException
- */
- public FunctionDescriptor[] determineNecessaryConversions(String name, Class<?> returnType, Class<?>[] types, boolean hasUnknownType) {
- // Check for no args - no conversion necessary
- if(types.length == 0) {
- return new FunctionDescriptor[0];
- }
-
- // Construct results array
- FunctionDescriptor[] results = null;
-
- //First find existing functions with same name and same number of parameters
- final Collection<FunctionMethod> functionMethods = new LinkedList<FunctionMethod>();
- functionMethods.addAll( this.systemFunctions.findFunctionMethods(name , types.length) );
- functionMethods.addAll( this.userFunctions.findFunctionMethods(name , types.length) );
-
- //Score each match, reject any where types can not be converted implicitly
- //Score of current method (lower score means better match with less converts
- //Current best score (lower score is best. Higher score results in more implicit conversions
- int bestScore = Integer.MAX_VALUE;
- boolean ambiguous = false;
-
- for (FunctionMethod nextMethod : functionMethods) {
- int currentScore = 0;
- final FunctionParameter[] methodTypes = nextMethod.getInputParameters();
- //Holder for current signature with converts where required
- FunctionDescriptor[] currentSignature = new FunctionDescriptor[types.length];
-
- //Iterate over the parameters adding conversions where required or failing when
- //no implicit conversion is possible
- int i = 0;
- for(; i < types.length; i++) {
- //treat all varags as the same type
- final String tmpTypeName = methodTypes[Math.min(i, methodTypes.length - 1)].getType();
- Class<?> targetType = DataTypeManager.getDataTypeClass(tmpTypeName);
-
- Class<?> sourceType = types[i];
- if (sourceType == null) {
- FunctionDescriptor fd = findTypedConversionFunction(DataTypeManager.DefaultDataClasses.NULL, targetType);
- currentSignature[i] = fd;
- currentScore++;
- continue;
- }
-
- try {
- FunctionDescriptor fd = getConvertFunctionDescriptor(sourceType, targetType);
- if (fd != null) {
- currentScore++;
- currentSignature[i] = fd;
- }
- } catch (InvalidFunctionException e) {
- break;
- }
- }
-
- //If the method is valid match and it is the current best score, capture those values as current best match
- if (i != types.length || currentScore > bestScore) {
- continue;
- }
-
- if (hasUnknownType) {
- if (returnType != null) {
- try {
- FunctionDescriptor fd = getConvertFunctionDescriptor(DataTypeManager.getDataTypeClass(nextMethod.getOutputParameter().getType()), returnType);
- if (fd != null) {
- currentScore++;
- }
- } catch (InvalidFunctionException e) {
- //there still may be a common type, but use any other valid conversion over this one
- currentScore += (types.length + 1);
- }
- }
- ambiguous = currentScore == bestScore;
- }
-
- if (currentScore < bestScore) {
-
- if (currentScore == 0) {
- //this must be an exact match
- return currentSignature;
- }
-
- bestScore = currentScore;
- results = currentSignature;
- }
- }
-
- if (ambiguous) {
- return null;
- }
-
- return results;
- }
-
- private FunctionDescriptor getConvertFunctionDescriptor(Class<?> sourceType, Class<?> targetType) throws InvalidFunctionException {
- final String sourceTypeName = DataTypeManager.getDataTypeName(sourceType);
- final String targetTypeName = DataTypeManager.getDataTypeName(targetType);
- //If exact match no conversion necessary
- if(sourceTypeName.equals(targetTypeName)) {
- return null;
- }
- //Else see if an implicit conversion is possible.
- if(!DataTypeManager.isImplicitConversion(sourceTypeName, targetTypeName)){
- throw new InvalidFunctionException();
- }
- //Else no conversion is available and the current method is not a valid match
- final FunctionDescriptor fd = findTypedConversionFunction(sourceType, targetType);
- if(fd == null) {
- throw new InvalidFunctionException();
- }
- return fd;
- }
-
- /**
- * Find conversion function and set return type to proper type.
- * @param sourceType The source type class
- * @param targetType The target type class
- * @return A CONVERT function descriptor or null if not possible
- */
- public FunctionDescriptor findTypedConversionFunction(Class sourceType, Class targetType) {
- FunctionDescriptor fd = findFunction(CONVERT, new Class[] {sourceType, DataTypeManager.DefaultDataClasses.STRING});
- if (fd != null) {
- return copyFunctionChangeReturnType(fd, targetType);
- }
- return null;
- }
-
- /**
- * Return a copy of the given FunctionDescriptor with the sepcified return type.
- * @param fd FunctionDescriptor to be copied.
- * @param returnType The return type to apply to the copied FunctionDescriptor.
- * @return The copy of FunctionDescriptor.
- */
- public FunctionDescriptor copyFunctionChangeReturnType(FunctionDescriptor fd, Class returnType) {
- if(fd != null) {
- FunctionDescriptor fdImpl = fd;
- FunctionDescriptor copy = (FunctionDescriptor)fdImpl.clone();
- copy.setReturnType(returnType);
- return copy;
- }
- return fd;
- }
-
- public static boolean isConvert(Function function) {
- Expression[] args = function.getArgs();
- String funcName = function.getName().toLowerCase();
-
- return args.length == 2 && (funcName.equalsIgnoreCase(FunctionLibrary.CONVERT) || funcName.equalsIgnoreCase(FunctionLibrary.CAST));
- }
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/function/FunctionMetadataSource.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/function/FunctionMetadataSource.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/function/FunctionMetadataSource.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,55 +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.query.function;
-
-import java.util.Collection;
-
-import com.metamatrix.query.function.metadata.FunctionMethod;
-
-/**
- * A FunctionMetadataSource represents a source of function metadata for
- * the function library. A FunctionMetadataSource needs to know how to
- * return a collection of all the function signatures it knows about.
- */
-public interface FunctionMetadataSource {
-
- /**
- * This method requests that the source return all
- * {@link com.metamatrix.query.function.FunctionMethod}s
- * the source knows about. This can occur in several situations -
- * on initial registration with the FunctionLibraryManager, on a
- * general reload, etc. This may be called multiple times and should
- * always return the newest information available.
- * @return Collection of FunctionMethod objects
- */
- Collection<FunctionMethod> getFunctionMethods();
-
- /**
- * This method determines where the invocation classes specified in the
- * function metadata are actually retrieved from.
- * @param className Name of class
- * @return Class reference
- * @throws ClassNotFoundException If class could not be found
- */
- Class getInvocationClass(String className) throws ClassNotFoundException;
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/function/FunctionMethods.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/function/FunctionMethods.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/function/FunctionMethods.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,1249 +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.query.function;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.sql.Time;
-import java.sql.Timestamp;
-import java.text.DateFormat;
-import java.text.DecimalFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.Properties;
-import java.util.TimeZone;
-
-import org.teiid.connector.language.SQLReservedWords;
-
-import com.metamatrix.api.exception.query.ExpressionEvaluationException;
-import com.metamatrix.api.exception.query.FunctionExecutionException;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.common.util.TimestampWithTimezone;
-import com.metamatrix.query.QueryPlugin;
-import com.metamatrix.query.util.CommandContext;
-import com.metamatrix.query.util.ErrorMessageKeys;
-
-public final class FunctionMethods {
-
- // ================== Function = plus =====================
-
- public static int plus(int x, int y) {
- return x + y;
- }
-
- public static long plus(long x, long y) {
- return x + y;
- }
-
- public static float plus(float x, float y) {
- return x + y;
- }
-
- public static double plus(double x, double y) {
- return x + y;
- }
-
- public static Object plus(BigInteger x, BigInteger y) {
- return x.add(y);
- }
-
- public static Object plus(BigDecimal x, BigDecimal y) {
- return x.add(y);
- }
-
- // ================== Function = minus =====================
-
- public static int minus(int x, int y) {
- return x - y;
- }
-
- public static long minus(long x, long y) {
- return x - y;
- }
-
- public static float minus(float x, float y) {
- return x - y;
- }
-
- public static double minus(double x, double y) {
- return x - y;
- }
-
- public static Object minus(BigInteger x, BigInteger y) {
- return x.subtract(y);
- }
-
- public static Object minus(BigDecimal x, BigDecimal y) {
- return x.subtract(y);
- }
-
- // ================== Function = multiply =====================
-
- public static int multiply(int x, int y) {
- return x * y;
- }
-
- public static long multiply(long x, long y) {
- return x * y;
- }
-
- public static float multiply(float x, float y) {
- return x * y;
- }
-
- public static double multiply(double x, double y) {
- return x * y;
- }
-
- public static Object multiply(BigInteger x, BigInteger y) {
- return x.multiply(y);
- }
-
- public static Object multiply(BigDecimal x, BigDecimal y) {
- return x.multiply(y);
- }
-
- // ================== Function = divide =====================
-
- public static int divide(int x, int y) {
- return x / y;
- }
-
- public static long divide(long x, long y) {
- return x / y;
- }
-
- public static float divide(float x, float y) {
- return x / y;
- }
-
- public static double divide(double x, double y) {
- return x / y;
- }
-
- public static Object divide(BigInteger x, BigInteger y) {
- return x.divide(y);
- }
-
- public static Object divide(BigDecimal x, BigDecimal y) {
- return x.divide(y, BigDecimal.ROUND_HALF_UP);
- }
-
- // ================== Function = abs =====================
-
- public static int abs(int x) {
- return Math.abs(x);
- }
-
- public static long abs(long x) {
- return Math.abs(x);
- }
-
- public static float abs(float x) {
- return Math.abs(x);
- }
-
- public static double abs(double x) {
- return Math.abs(x);
- }
-
- public static Object abs(BigInteger x) {
- return x.abs();
- }
-
- public static Object abs(BigDecimal x) {
- return x.abs();
- }
-
- // ================== Function = ceiling =====================
-
- public static Object ceiling(Number x) {
- return new Double(Math.ceil(x.doubleValue()));
- }
-
- // ================== Function = exp =====================
-
- public static Object exp(Number x) {
- return new Double(Math.exp(x.doubleValue()));
- }
-
- // ================== Function = floor =====================
-
- public static Object floor(Number x) {
- return new Double(Math.floor(x.doubleValue()));
- }
-
- // ================== Function = log =====================
-
- public static Object log(Number x) {
- return new Double(Math.log(x.doubleValue()));
- }
-
- // ================== Function = log10 =====================
-
- private static final double log10baseE = Math.log(10);
-
- public static Object log10(Number x) {
- return new Double( Math.log(x.doubleValue()) / log10baseE);
- }
-
- // ================== Function = rand=====================
-
- public static Object rand(CommandContext context, Object seed) throws FunctionExecutionException {
- if(context != null) {
- if(seed == null) {
- return new Double(context.getNextRand());
- } else if(seed instanceof Integer) {
- return new Double(context.getNextRand(((Integer)seed).longValue()));
- }
- }
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0069, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0069, "rand", seed)); //$NON-NLS-1$
- }
-
- public static Object rand(CommandContext context) throws FunctionExecutionException {
- if(context != null) {
- return new Double(context.getNextRand());
- }
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0069, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0069, "rand")); //$NON-NLS-1$
- }
-
- // ================== Function = mod =====================
-
- public static int mod(int x, int y) {
- return x % y;
- }
-
- public static long mod(long x, long y) {
- return x % y;
- }
-
- public static float mod(float x, float y) {
- return x % y;
- }
-
- public static double mod(double x, double y) {
- return x % y;
- }
-
- public static Object mod(BigInteger x, BigInteger y) {
- return x.remainder(y);
- }
-
- public static Object mod(BigDecimal x, BigDecimal y) {
- return x.remainder(y);
- }
-
- // ================== Function = power =====================
-
- public static double power(double x, double y) {
- return Math.pow(x, y);
- }
-
- public static BigInteger power(BigInteger x, int y) {
- return x.pow(y);
- }
-
- public static BigDecimal power(BigDecimal x, int y) {
- return x.pow(y);
- }
-
- public static int round(int number, int places) {
- if(places < 0){
- return round(new BigDecimal(number), places).intValue();
- }
- return number;
- }
-
- public static float round(float number, int places) {
- return round(new BigDecimal(number), places).floatValue();
- }
-
- public static double round(double number, int places) {
- return round(new BigDecimal(number), places).doubleValue();
- }
-
- public static BigDecimal round(BigDecimal bigDecimalNumber, int places) {
- int scale = bigDecimalNumber.scale();
- if (scale <= places) {
- return bigDecimalNumber;
- }
- bigDecimalNumber = bigDecimalNumber.setScale(places,BigDecimal.ROUND_HALF_UP);
- return bigDecimalNumber.setScale(scale,BigDecimal.ROUND_HALF_UP);
- }
-
- // ================== Function = sign =====================
-
- public static Object sign(int x) {
- return Integer.signum(x);
- }
-
- public static Object sign(long x) {
- return Long.signum(x);
- }
-
- public static Object sign(float x) {
- return Math.signum(x);
- }
-
- public static Object sign(double x) {
- return Math.signum(x);
- }
-
- public static Object sign(BigInteger x) {
- return new Integer(x.signum());
- }
-
- public static Object sign(BigDecimal x) {
- return new Integer(x.signum());
- }
-
- // ================== Function = sqrt =====================
-
-
- public static Object sqrt(Number x) {
- return new Double( Math.sqrt(x.doubleValue()));
- }
-
- // ================== Function = currentDate =====================
-
- public static Object currentDate() {
- return TimestampWithTimezone.createDate(new Date());
- }
-
- // ================== Function = currentTime =====================
-
- public static Object currentTime() {
- return TimestampWithTimezone.createTime(new Date());
- }
-
- // ================== Function = currentTimestamp =====================
-
- public static Object currentTimestamp() {
- return new Timestamp(System.currentTimeMillis());
- }
-
- // ================== Helper for a bunch of date functions =====================
-
- private static int getField(java.util.Date date, int field) {
- Calendar cal = TimestampWithTimezone.getCalendar();
- cal.setTime(date);
-
- return cal.get(field);
- }
-
- // ================== Function = dayname =====================
-
- static final String[] dayNames = new String[] {
- "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
-
- public static Object dayName(Date x) {
- return dayNames[getField(x, Calendar.DAY_OF_WEEK) - 1];
- }
-
- // ================== Function = dayofmonth =====================
-
- public static Object dayOfMonth(Date x) {
- return Integer.valueOf(getField(x, Calendar.DATE));
- }
-
- // ================== Function = dayofweek =====================
-
- public static Object dayOfWeek(Date x) {
- return Integer.valueOf(getField(x, Calendar.DAY_OF_WEEK));
- }
-
- // ================== Function = dayofyear =====================
-
- public static Object dayOfYear(Date x) {
- return Integer.valueOf(getField(x, Calendar.DAY_OF_YEAR));
- }
-
- // ================== Function = hour =====================
-
- public static Object hour(Date x) {
- return Integer.valueOf(getField(x, Calendar.HOUR_OF_DAY));
- }
-
- // ================== Function = minute =====================
-
- public static Object minute(Date x) {
- return Integer.valueOf(getField(x, Calendar.MINUTE));
- }
-
- // ================== Function = month =====================
-
- public static Object month(Date x) {
- return Integer.valueOf(getField(x, Calendar.MONTH)+1);
- }
-
- // ================== Function = monthname =====================
-
- static final String[] monthNames = new String[] {
- "January", "February", "March", "April", "May", "June", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
- "July", "August", "September", "October", "November", "December" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-
- public static Object monthName(Date x) {
- return monthNames[getField(x, Calendar.MONTH)];
- }
-
- // ================== Function = second =====================
-
- public static Object second(Date x) {
- return Integer.valueOf(getField(x, Calendar.SECOND));
- }
-
- // ================== Function = week =====================
-
- public static Object week(Date x) {
- return Integer.valueOf(getField(x, Calendar.WEEK_OF_YEAR));
- }
-
- // ================== Function = year =====================
-
- public static Object year(Date x) {
- return Integer.valueOf(getField(x, Calendar.YEAR));
- }
-
- // ================== Function = quarter =====================
-
- public static Object quarter(Date date)
- throws FunctionExecutionException {
- int month = getField(date, Calendar.MONTH);
-
- if (month > 11) {
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0066, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0066,
- new Object[] {"quarter", date.getClass().getName()})); //$NON-NLS-1$
- }
- return Integer.valueOf(month/3 + 1);
- }
-
- // ================== Function = timestampadd =====================
-
- public static Object timestampAdd(String intervalType, Integer count, Timestamp timestamp) {
- Calendar cal = TimestampWithTimezone.getCalendar();
-
- int nanos = timestamp.getNanos();
- cal.setTime(timestamp);
-
- // case of interval = 1, fractional seconds (nanos), don't go to branches of addField()
- if (intervalType.equalsIgnoreCase(SQLReservedWords.SQL_TSI_FRAC_SECOND)) {
- int countValue = count.intValue();
- nanos += countValue;
-
- // Handle the case of nanos > 999,999,999 and increase the second.
- // Since the count number is an interger, so the maximum is definite,
- // and nanos/999,999,999 can at most be added to second
- if ( nanos > 999999999) {
- int addSecond = nanos / 999999999;
- int leftNanos = nanos % 999999999;
- cal.add(Calendar.SECOND, addSecond);
-
- Timestamp ts = new Timestamp(cal.getTime().getTime());
- ts.setNanos(leftNanos);
- return ts;
- }
- // nanos <= 999,999,999
- Timestamp ts = new Timestamp(cal.getTime().getTime());
- ts.setNanos(nanos);
- return ts;
- }
- // for interval from 2 to 9
- addField(intervalType, count, cal);
- Timestamp ts = new Timestamp(cal.getTime().getTime());
-
- //rectify returned timestamp with original nanos
- ts.setNanos(nanos);
- return ts;
- }
-
- /** Helper method for timestampAdd method
- * @param interval Integer
- * @param count Integer
- * @param cal Calendar instance
- */
- private static void addField(String interval, Integer count, Calendar cal) {
- int countValue = count.intValue();
-
- if(interval.equalsIgnoreCase(SQLReservedWords.SQL_TSI_FRAC_SECOND)) {
- //nano seconds - should never get into this branch
- } else if(interval.equalsIgnoreCase(SQLReservedWords.SQL_TSI_SECOND)) {
- cal.add(Calendar.SECOND, countValue);
- } else if(interval.equalsIgnoreCase(SQLReservedWords.SQL_TSI_MINUTE)) {
- cal.add(Calendar.MINUTE, countValue);
- } else if(interval.equalsIgnoreCase(SQLReservedWords.SQL_TSI_HOUR)) {
- cal.add(Calendar.HOUR_OF_DAY, countValue);
- } else if(interval.equalsIgnoreCase(SQLReservedWords.SQL_TSI_DAY)) {
- cal.add(Calendar.DAY_OF_YEAR, countValue);
- } else if(interval.equalsIgnoreCase(SQLReservedWords.SQL_TSI_WEEK)) {
- cal.add(Calendar.WEEK_OF_YEAR, countValue);
- } else if(interval.equalsIgnoreCase(SQLReservedWords.SQL_TSI_MONTH)) {
- cal.add(Calendar.MONTH, countValue);
- } else if(interval.equalsIgnoreCase(SQLReservedWords.SQL_TSI_QUARTER)) {
- cal.add(Calendar.MONTH, countValue*3);
- } else if(interval.equalsIgnoreCase(SQLReservedWords.SQL_TSI_YEAR)) {
- cal.add(Calendar.YEAR, countValue);
- }
- }
-
- // ================== Function = timestampdiff =====================
-
- /**
- * This method truncates (ignores) figures
- * @param interval
- * @param timestamp1
- * @param timestamp2
- * @return
- * @throws FunctionExecutionException
- */
- public static Object timestampDiff(String intervalType, Timestamp ts1Obj, Timestamp ts2Obj) {
- long ts1 = ts1Obj.getTime() / 1000 * 1000000000 + ts1Obj.getNanos();
- long ts2 = ts2Obj.getTime() / 1000 * 1000000000 + ts2Obj.getNanos();
-
- long tsDiff = ts2 - ts1;
-
- long count = 0;
- if(intervalType.equalsIgnoreCase(SQLReservedWords.SQL_TSI_FRAC_SECOND)) {
- count = tsDiff;
- } else {
- tsDiff = tsDiff / 1000000; //convert to milliseconds
- if(intervalType.equalsIgnoreCase(SQLReservedWords.SQL_TSI_SECOND)) {
- count = tsDiff / 1000;
- } else if(intervalType.equalsIgnoreCase(SQLReservedWords.SQL_TSI_MINUTE)) {
- count = (tsDiff / 1000) / 60;
- } else if(intervalType.equalsIgnoreCase(SQLReservedWords.SQL_TSI_HOUR)) {
- count = (tsDiff / 1000) / (60*60);
- } else if(intervalType.equalsIgnoreCase(SQLReservedWords.SQL_TSI_DAY)) {
- count = (tsDiff / 1000) / (60*60*24);
- } else if(intervalType.equalsIgnoreCase(SQLReservedWords.SQL_TSI_WEEK)) {
- count = (tsDiff / 1000) / (60*60*24*7);
- } else if(intervalType.equalsIgnoreCase(SQLReservedWords.SQL_TSI_MONTH)) {
- count = (tsDiff / 1000) / (60*60*24*30);
- } else if(intervalType.equalsIgnoreCase(SQLReservedWords.SQL_TSI_QUARTER)) {
- count = (tsDiff / 1000) / (60*60*24*91);
- } else if(intervalType.equalsIgnoreCase(SQLReservedWords.SQL_TSI_YEAR)) {
- count = (tsDiff / 1000) / (60*60*24*365);
- }
- }
- return new Long(count);
- }
-
- // ================== Function = timestampcreate =====================
-
- /**
- * This method truncates (ignores) figures
- * @param interval
- * @param timestamp1
- * @param timestamp2
- * @return
- * @throws FunctionExecutionException
- */
- public static Object timestampCreate(java.sql.Date date, Time time) {
- Calendar tsCal = TimestampWithTimezone.getCalendar();
- tsCal.setTime(time);
- int hour = tsCal.get(Calendar.HOUR_OF_DAY);
- int minute = tsCal.get(Calendar.MINUTE);
- int second = tsCal.get(Calendar.SECOND);
-
- tsCal.setTime(date);
-
- tsCal.set(Calendar.HOUR_OF_DAY, hour);
- tsCal.set(Calendar.MINUTE, minute);
- tsCal.set(Calendar.SECOND, second);
-
- return new Timestamp(tsCal.getTime().getTime());
- }
-
- // ================== Function = length =====================
-
- public static Object length(String str) {
- return new Integer(str.length());
- }
-
- // ================== Function = concat =====================
-
- public static Object concat(String str1, String str2) {
- return str1 + str2;
- }
-
- // ================== Function = substring =====================
-
- public static Object substring(String string, Integer startVal, Integer lengthVal) {
- if (startVal < 0) {
- startVal = string.length() + startVal;
- } else if (startVal > 0){
- startVal--; // Adjust to 1-based
- }
-
- if(startVal < 0 || startVal >= string.length()) {
- return null;
- }
-
- if(lengthVal < 0) {
- return null;
- }
-
- int endVal = Math.min(startVal+lengthVal, string.length());
-
- return string.substring(startVal, endVal);
- }
-
- public static Object substring(String string, Integer start) {
- int startVal = start.intValue();
- return substring(string, startVal, string.length());
- }
-
- // ================== Function = left =====================
-
- public static Object left(String string, Integer count)
- throws FunctionExecutionException {
- int countValue = count.intValue();
- if(countValue < 0) {
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0017, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0017, countValue));
- }
- if(string.length() < countValue) {
- return string;
- }
- return string.substring(0, countValue);
- }
-
- // ================== Function = right =====================
-
- public static Object right(String string, Integer count)
- throws FunctionExecutionException {
- int countValue = count.intValue();
- if(countValue < 0) {
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0017, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0017, countValue));
- } else if(string.length() < countValue) {
- return string;
- } else {
- return string.substring(string.length() - countValue);
- }
- }
-
- // ================== Function = lowercase =====================
-
- public static Object lowerCase(String str) {
- return str.toLowerCase();
- }
-
- // ================== Function = uppercase =====================
-
- public static Object upperCase(String str) {
- return str.toUpperCase();
- }
-
- // ================== Function = locate =====================
-
- public static Object locate(String sub, String str) {
- return locate(sub, str, 1);
- }
-
- /**
- * TODO: The treatment of negative start indexes is inconsistent here.
- * We're treating the null value like Derby, but not throwing an
- * exception if the value is less than 1 (less than 0 in DB2).
- */
- public static Object locate(String sub, String str, Integer start) {
- if(str == null || sub == null) {
- return null;
- }
- if (start == null) {
- start = 1;
- }
- return new Integer(str.indexOf(sub, start.intValue() - 1) + 1);
- }
-
- // ================== Function = lefttrim =====================
-
- private static final char SPACE = ' ';
-
- public static Object leftTrim(String string) {
- for(int i=0; i<string.length(); i++) {
- if(string.charAt(i) != SPACE) {
- // end of trim, return what's left
- return string.substring(i);
- }
- }
-
- // All spaces, so trim it all
- return ""; //$NON-NLS-1$
- }
-
- // ================== Function = righttrim =====================
-
- public static Object rightTrim(String string) {
- for(int i=string.length()-1; i>=0; i--) {
- if(string.charAt(i) != SPACE) {
- // end of trim, return what's left
- return string.substring(0, i+1);
- }
- }
-
- // All spaces, so trim it all
- return ""; //$NON-NLS-1$
- }
-
- // ================== Function = replace =====================
-
- public static Object replace(String string, String subString, String replaceString) {
- // Check some simple cases that require no work
- if(subString.length() > string.length() || string.length() == 0 || subString.length() == 0) {
- return string;
- }
-
- StringBuffer result = new StringBuffer();
- int index = 0;
-
- while(true) {
- int newIndex = string.indexOf(subString, index);
- if(newIndex < 0) {
- // No more replacement sections, grab from old index to end of string
- result.append( string.substring(index) );
-
- // Break out of loop
- break;
-
- }
- // Matched the substring at newIndex
-
- // First append section from old index to new
- result.append( string.substring( index, newIndex) );
-
- // Then append replacement section for sub
- result.append( replaceString );
-
- // Then move the index counter forward
- index = newIndex + subString.length();
- }
-
- return result.toString();
- }
-
- // ================== Function = insert =====================
-
- public static Object insert(String string1, Integer start, Integer length, String str2)
- throws FunctionExecutionException {
- int startValue = start.intValue();
- int len = length.intValue();
-
- // Check some invalid cases
- if(startValue < 1 || (startValue-1) > string1.length()) {
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0061, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0061, start, string1));
- } else if (len < 0) {
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0062, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0062, len));
- } else if (string1.length() == 0 && (startValue > 1 || len >0) ) {
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0063, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0063));
- }
-
- StringBuffer result = new StringBuffer();
- result.append(string1.substring(0, startValue-1));
- int endValue = startValue + len - 1;
-
- // str2.length() = 0 is a valid case
- if (endValue > string1.length()) {
- result.append(str2);
- } else {
- result.append(str2);
- result.append(string1.substring( endValue ));
- }
-
- return result.toString();
- }
-
- // ================== Function = repeat =====================
- public static Object repeat(String str, Integer count) {
- int repeatCount = count.intValue();
- StringBuffer result = new StringBuffer();
-
- for (int i = 0; i < repeatCount && result.length() <= DataTypeManager.MAX_STRING_LENGTH; i++) {
- result.append(str);
- }
- return result.toString();
- }
-
- // ================== Function = ascii =====================
-
- public static Integer ascii(String ch) {
- if(ch.length() == 0) {
- return null;
- }
- return (int)ch.charAt(0);
- }
-
- public static Integer ascii(Character ch) {
- return (int)ch.charValue();
- }
-
- // ================== Function = chr =====================
-
- public static Object chr(int intValue) {
- return new Character((char) intValue);
- }
-
- // ================== Function = initCap =====================
-
- public static Object initCap(String s) {
- StringBuffer cap = new StringBuffer();
-
- boolean checkCap = true;
- for(int i=0; i<s.length(); i++) {
- char c = s.charAt(i);
-
- // Decide whether to upper case
- if(checkCap) {
- cap.append(Character.toUpperCase(c));
- } else {
- cap.append(Character.toLowerCase(c));
- }
-
- // Reset flag for next character
- checkCap = Character.isWhitespace(c);
- }
- return cap.toString();
- }
-
- // ================== Function = lpad =====================
-
- public static Object lpad(String inputString, Integer padLength, String padStr)
- throws FunctionExecutionException {
-
- return pad(inputString, padLength, padStr, true);
- }
-
- public static Object pad(String str, Integer padLength, String padStr, boolean left)
- throws FunctionExecutionException {
- int length = padLength.intValue();
- if(length < 1) {
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0025, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0025));
- }
- if(length < str.length()) {
- return str.substring(0, length);
- }
- if(length > DataTypeManager.MAX_STRING_LENGTH) {
- length = DataTypeManager.MAX_STRING_LENGTH;
- }
- // Get pad character
- if(padStr.length() == 0) {
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0027, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0027));
- }
- // Pad string
- StringBuffer outStr = new StringBuffer(str);
- while(outStr.length() < length) {
- if (left) {
- outStr.insert(0, padStr);
- } else {
- outStr.append(padStr);
- }
- }
- if (left) {
- return outStr.substring(outStr.length() - length);
- }
- return outStr.substring(0, length);
- }
-
-
- public static final String SPACE_CHAR = " "; //$NON-NLS-1$
-
- public static Object lpad(String inputString, Integer padLength)
- throws FunctionExecutionException {
-
- return lpad(inputString, padLength, SPACE_CHAR);
- }
-
- // ================== Function = rpad =====================
-
- public static Object rpad(String inputString, Integer padLength, String padStr)
- throws FunctionExecutionException {
-
- return pad(inputString, padLength, padStr, false);
- }
-
- public static Object rpad(String inputString, Integer padLength)
- throws FunctionExecutionException {
-
- return rpad(inputString, padLength, SPACE_CHAR);
- }
-
- // ================== Function = translate =====================
-
- public static Object translate(String str, String in, String out)
- throws FunctionExecutionException {
- if(in.length() != out.length()) {
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0031, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0031));
- }
-
- if(in.length() == 0 || str.length() == 0) {
- return str;
- }
-
- StringBuffer translated = new StringBuffer(str.length());
- for(int i=0; i<str.length(); i++) {
- char c = str.charAt(i);
- boolean matched = false;
- for(int j=0; j<in.length(); j++) {
- char inChar = in.charAt(j);
- if(c == inChar) {
- translated.append(out.charAt(j));
- matched = true;
- break;
- }
- }
- if(! matched) {
- translated.append(c);
- }
- }
- return translated.toString();
- }
-
- // ================== Function = convert =====================
-
- @SuppressWarnings("unchecked")
- public static Object convert(Object src, String type)
- throws FunctionExecutionException {
- try {
- return DataTypeManager.transformValue(src, DataTypeManager.getDataTypeClass(type));
- } catch(TransformationException e) {
- throw new FunctionExecutionException(e, ErrorMessageKeys.FUNCTION_0033, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0033, new Object[]{src, DataTypeManager.getDataTypeName(src.getClass()), type}));
- }
- }
-
- // ================== Function = context and rowlimit =====================
-
- /**
- * This function should never actually be called - it is here solely so the
- * xml context function can be resolved properly. The actual function is
- * implemented in the XML planner.
- * @param context The context to apply the criteria in
- * @param expression The expression on the left side of the criteria
- * @return Same as expression
- */
- public static Object context(Object context, Object expression)
- throws FunctionExecutionException {
-
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0035, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0035));
- }
-
- /**
- * This pseudo-function should never actually be called - it is here solely so the
- * xml rowlimit function can be resolved properly. The actual functionality is
- * implemented in the XML planner/processor.
- * @param expression The expression on the left side of the criteria, an xml node
- * @return doesn't really return anything; this pseudo-function is used to control
- * the number of rows returned from a mapping class.
- */
- public static Object rowlimit(Object expression)
- throws FunctionExecutionException {
-
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0035a, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0035a));
- }
-
- /**
- * This pseudo-function should never actually be called - it is here solely so the
- * xml rowlimitexception function can be resolved properly. The actual functionality is
- * implemented in the XML planner/processor.
- * @param expression The expression on the left side of the criteria, an xml node
- * @return doesn't really return anything; this pseudo-function is used to control
- * the number of rows returned from a mapping class.
- */
- public static Object rowlimitexception(Object expression)
- throws FunctionExecutionException {
-
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0035a, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0035a));
- }
-
- // ================== Function = lookup =====================
-
- /**
- * This function should never actually be called - it is here solely so the
- * lookup function can be resolved properly. The actual function is
- * implemented in the ExpresionEvaluator
- * @param context The context to apply the criteria in
- * @param expression The expression on the left side of the criteria
- * @return Same as expression
- */
- public static Object lookup(Object codeTable, Object returnElement, Object keyElement, Object keyValue) {
-
- throw new UnsupportedOperationException("This method should never be called."); //$NON-NLS-1$
- }
-
- // ================== Function = nvl =====================
-
- public static Object ifnull(Object value, Object ifNullValue) {
- return coalesce(value, ifNullValue);
- }
-
- public static Object coalesce(Object value, Object value1, Object... other) {
- if (value != null) {
- return value;
- }
- if (value1 != null) {
- return value1;
- }
- for (Object object : other) {
- if (object != null) {
- return object;
- }
- }
- return null;
- }
-
- // ================== Format date/time/timestamp TO String ==================
- public static String format(Date date, String format)
- throws FunctionExecutionException {
- try {
- SimpleDateFormat sdf = new SimpleDateFormat(format);
- return sdf.format(date);
- } catch (IllegalArgumentException iae) {
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0042, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0042 ,
- iae.getMessage()));
- }
- }
-
- // ================== Parse String TO date/time/timestamp ==================
- private static Date parseDateHelper(String date, String format)
- throws FunctionExecutionException {
- DateFormat df = new SimpleDateFormat(format);
- try {
- return df.parse(date);
- } catch (ParseException e) {
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0043, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0043 ,
- date, format));
- }
- }
-
- public static Timestamp parseTimestamp(String timestamp, String format)
- throws FunctionExecutionException {
- return new Timestamp(parseDateHelper(timestamp, format).getTime());
- }
-
- // ================== Format number TO String ==================
- public static String format(Number number, String format)
- throws FunctionExecutionException {
- try {
- DecimalFormat df = new DecimalFormat(format);
- return df.format(number);
- } catch (IllegalArgumentException iae) {
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0042, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0042 ,
- iae.getMessage()));
- }
- }
-
- // ================== Parse String TO numbers ==================
- public static Object parseInteger(String number, String format)
- throws FunctionExecutionException {
- Number intNum = parseNumberHelper(number, format);
- return new Integer(intNum.intValue());
- }
-
- public static Object parseLong(String number, String format)
- throws FunctionExecutionException {
- Number longNum = parseNumberHelper(number, format);
- return new Long(longNum.longValue());
- }
-
- public static Object parseDouble(String number, String format)
- throws FunctionExecutionException {
- Number doubleNum = parseNumberHelper(number, format);
- return new Double(doubleNum.doubleValue());
- }
-
- public static Object parseFloat(String number, String format)
- throws FunctionExecutionException {
- Number longNum = parseNumberHelper(number, format);
- return new Float(longNum.floatValue());
- }
-
- public static Object parseBigInteger(String number, String format)
- throws FunctionExecutionException {
- Number bigIntegerNum = parseNumberHelper(number, format);
- return new BigInteger(bigIntegerNum.toString());
- }
-
- public static Object parseBigDecimal(String number, String format)
- throws FunctionExecutionException {
- Number bigDecimalNum = parseNumberHelper(number, format);
- return new BigDecimal(bigDecimalNum.toString());
- }
-
- // ============== Helper Function for format/parse numbers ==================
-
- private static Number parseNumberHelper(String number, String format)
- throws FunctionExecutionException {
- DecimalFormat df= new DecimalFormat(format);
- try {
- return df.parse(number);
- } catch (ParseException e) {
- throw new FunctionExecutionException(ErrorMessageKeys.FUNCTION_0043, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0043 ,
- number,format));
- }
- }
-
- // ================== Function - ACOS =====================
- public static Object acos(Number number) {
- return new Double(Math.acos(number.doubleValue()));
- }
-
- // ================== Function - ASIN =====================
- public static Object asin(Number number) {
- return new Double(Math.asin(number.doubleValue()));
- }
-
- // ================== Function - ATAN =====================
- public static Object atan(Number number) {
- return new Double(Math.atan(number.doubleValue()));
- }
-
- // ================== Function - ATAN2 =====================
- public static Object atan2(Number number1, Number number2) {
- return new Double(Math.atan2(number1.doubleValue(), number2.doubleValue()));
- }
-
- // ================== Function - COS =====================
- public static Object cos(Number number) {
- return new Double(Math.cos(number.doubleValue()));
- }
-
- // ================== Function - COT =====================
- public static Object cot(Number number) {
- return new Double(1/Math.tan(number.doubleValue()));
- }
-
- // ================== Function - DEGREES =====================
- public static Object degrees(Number number) {
- return new Double(Math.toDegrees(number.doubleValue()));
- }
-
- // ================== Function - PI =====================
- public static Object pi() {
- return new Double(Math.PI);
- }
-
- // ================== Function - RADIANS =====================
- public static Object radians(Number number) {
- return new Double(Math.toRadians(number.doubleValue()));
- }
-
- // ================== Function - SIN =====================
- public static Object sin(Number number) {
- return new Double(Math.sin(number.doubleValue()));
- }
-
- // ================== Function - TAN =====================
- public static Object tan(Number number) {
- return new Double(Math.tan(number.doubleValue()));
- }
-
- // ================== Function - BITAND =====================
- public static Object bitand(int x, int y) {
- return x & y;
- }
-
- // ================== Function - BITOR =====================
- public static Object bitor(int x, int y) {
- return x | y;
- }
-
- // ================== Function - BITXOR =====================
- public static Object bitxor(int x, int y) {
- return x ^ y;
- }
-
- // ================== Function - BITNOT =====================
- public static int bitnot(int x) {
- return x ^ 0xFFFFFFFF;
- }
-
- // ================= Function - USER ========================
- public static Object user(CommandContext context) {
- return context.getUserName();
- }
-
- // ================= Function - COMMANDPAYLOAD ========================
- public static Object commandPayload(CommandContext context) {
- Serializable payload = context.getCommandPayload();
- if(payload == null) {
- return null;
- }
- // 0-arg form - just return payload as a string if it exists
- return payload.toString();
- }
-
- public static Object commandPayload(CommandContext context, String param)
- throws ExpressionEvaluationException, FunctionExecutionException{
- Serializable payload = context.getCommandPayload();
- if(payload == null) {
- return null;
- }
-
- // 1-arg form - assume payload is a Properties object
- if(payload instanceof Properties) {
- return ((Properties)payload).getProperty(param);
- }
- // Payload was bad
- throw new ExpressionEvaluationException(QueryPlugin.Util.getString("ExpressionEvaluator.Expected_props_for_payload_function", "commandPayload", payload.getClass().getName())); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- // ================= Function - ENV ========================
- public static Object env(CommandContext context, String propertyName) {
- // All context property keys must be lowercase - we lowercase the incoming key here to match regardless of case
- String propertyNameNocase = propertyName.toLowerCase();
- Properties envProps = context.getEnvironmentProperties();
- if(envProps != null && envProps.containsKey(propertyNameNocase)) {
- return envProps.getProperty(propertyNameNocase);
- }
- String value = System.getProperty(propertyName);
- if (value == null) {
- value = System.getProperty(propertyNameNocase);
- }
- return value;
- }
-
- // ================= Function - MODIFYTIMEZONE ========================
-
- public static Object modifyTimeZone(Timestamp value, String originalTimezoneString, String targetTimezoneString) {
- TimeZone originalTimeZone = TimeZone.getTimeZone(originalTimezoneString);
- TimeZone dbmsTimeZone = TimeZone.getTimeZone(targetTimezoneString);
-
- // Check that the dbms time zone is really different than the local time zone
- if (originalTimeZone.equals(dbmsTimeZone)) {
- return value;
- }
-
- Calendar cal = Calendar.getInstance(dbmsTimeZone);
-
- return TimestampWithTimezone.createTimestamp(value, originalTimeZone, cal);
- }
-
- public static Object modifyTimeZone(CommandContext context, Timestamp value, String targetTimezoneString) {
- TimeZone dbmsTimeZone = TimeZone.getTimeZone(targetTimezoneString);
-
- Calendar cal = Calendar.getInstance(dbmsTimeZone);
-
- return TimestampWithTimezone.createTimestamp(value, context.getServerTimeZone(), cal);
- }
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/function/FunctionTree.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/function/FunctionTree.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/function/FunctionTree.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,415 +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.query.function;
-
-import java.lang.reflect.Array;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.teiid.logging.LogConstants;
-import org.teiid.logging.LogManager;
-
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.core.MetaMatrixRuntimeException;
-import com.metamatrix.core.util.Assertion;
-import com.metamatrix.core.util.ReflectionHelper;
-import com.metamatrix.query.QueryPlugin;
-import com.metamatrix.query.function.metadata.FunctionCategoryConstants;
-import com.metamatrix.query.function.metadata.FunctionMethod;
-import com.metamatrix.query.function.metadata.FunctionParameter;
-import com.metamatrix.query.util.CommandContext;
-import com.metamatrix.query.util.ErrorMessageKeys;
-
-/**
- * Data structure used to store function signature information. There are multiple uses
- * of this signature information so there are multiple data structures within the FunctionTree
- * for handling each. One type of information is the function metadata required by users of
- * this class for data driving GUIs or function selection. The other type of information is that
- * needed to quickly find and/or invoke the functions at execution time. In general all methods
- * are concerned with function metadata EXCEPT {@link #getFunction} which is used to find a function
- * for execution.
- */
-public class FunctionTree {
-
- // Constant used to look up the special descriptor key in a node map
- private static final Integer DESCRIPTOR_KEY = new Integer(-1);
-
- private Map<String, Set<String>> categories = new HashMap<String, Set<String>>();
-
- private Map<String, List<FunctionMethod>> functionsByName = new HashMap<String, List<FunctionMethod>>();
-
- private Set<FunctionMethod> allFunctions = new HashSet<FunctionMethod>();
-
- /**
- * Function lookup and invocation use: Function name (uppercase) to Map (recursive tree)
- */
- private Map treeRoot = new HashMap();
-
- /**
- * Construct a new tree with the given source of function metadata.
- * @param source The metadata source
- */
- public FunctionTree(FunctionMetadataSource source) {
- // Load data structures
- addSource(source);
- }
-
- /**
- * Construct a new tree with the given collection of sources.
- * @param sources The collection of function metadata sources ({@link com.metamatrix.query.function.FunctionMetadataSource})
- */
- FunctionTree(Collection sources) {
- // Load data structures
- addSources(sources);
- }
-
- /**
- * Add a collection of functions to the data structures.
- * @param sources The function metadata sources ({@link com.metamatrix.query.function.FunctionMetadataSource})
- */
- private void addSources(Collection sources) {
- if(sources == null) {
- return;
- }
-
- Iterator sourceIter = sources.iterator();
- while(sourceIter.hasNext()) {
- Object sourceObj = sourceIter.next();
- if(sourceObj instanceof FunctionMetadataSource) {
- addSource((FunctionMetadataSource) sourceObj);
- } else {
- Assertion.failed(QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0044, sourceObj.getClass().getName()));
- }
- }
- }
-
- /**
- * Add all functions from a metadata source to the data structures.
- * @param source The source of the functions
- */
- private void addSource(FunctionMetadataSource source) {
- if(source == null) {
- return;
- }
-
- Collection functions = source.getFunctionMethods();
- if(functions != null) {
- Iterator functionIter = functions.iterator();
- while(functionIter.hasNext()) {
- Object functionObj = functionIter.next();
- if(! (functionObj instanceof FunctionMethod)) {
- Assertion.failed(QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0045, functionObj.getClass().getName()));
- }
- FunctionMethod method = (FunctionMethod) functionObj;
-
- if (!containsIndistinguishableFunction(method)){
- // Store method metadata for retrieval
- addMetadata(method);
-
- // Add to tree
- addFunction(source, method);
- } else {
- LogManager.logWarning(LogConstants.CTX_FUNCTION_TREE, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0046, new Object[]{method}));
- }
- }
- }
- }
-
- // ---------------------- FUNCTION SELECTION USE METHODS ----------------------
-
- /*
- * Per defect 4612 -
- * Because of the fix for defect 4264, it is possible in the modeler to
- * define two functions with different implementations, but having the
- * same name (using the "alias") and the same parameter types, making the
- * two FunctionMethod objects indistinguishable by their equals method.
- * This method will check if any indistinguishable functions are already
- * present in this FunctionTree. If so, it will be logged and any
- * newer indistinguishable functions will just not be added.
- */
- private boolean containsIndistinguishableFunction(FunctionMethod method){
- return allFunctions.contains(method);
- }
-
- /**
- * Store the method in the function metadata.
- * @param method The function metadata for a particular method signature
- */
- private void addMetadata(FunctionMethod method) {
- String categoryKey = method.getCategory();
- if (categoryKey == null) {
- method.setCategory(FunctionCategoryConstants.MISCELLANEOUS);
- categoryKey = FunctionCategoryConstants.MISCELLANEOUS;
- }
- categoryKey = categoryKey.toUpperCase();
- String nameKey = method.getName().toUpperCase();
-
- // Look up function map (create if necessary)
- Set<String> functions = categories.get(categoryKey);
- if (functions == null) {
- functions = new HashSet<String>();
- categories.put(categoryKey, functions);
- }
-
- // Look up function in function map
- functions.add(nameKey);
-
- // Add method to list by function name
- List<FunctionMethod> knownMethods = functionsByName.get(nameKey);
- if(knownMethods == null) {
- knownMethods = new ArrayList<FunctionMethod>();
- functionsByName.put(nameKey, knownMethods);
- }
- knownMethods.add(method);
- allFunctions.add(method);
- }
-
- /**
- * Get collection of category names.
- * @return Category names
- */
- Collection<String> getCategories() {
- return categories.keySet();
- }
-
- /**
- * Get collection of function forms in a category
- * @param category Category to get (case-insensitive)
- * @return Collection of {@link FunctionForm}s
- */
- Collection<FunctionForm> getFunctionForms(String category) {
- Set<FunctionForm> functionForms = new HashSet<FunctionForm>();
-
- Set<String> functions = categories.get(category.toUpperCase());
- if(functions != null) {
- for (String functionName : functions) {
- for (FunctionMethod functionMethod : this.functionsByName.get(functionName)) {
- functionForms.add(new FunctionForm(functionMethod));
- }
- }
- }
-
- return functionForms;
- }
-
- /**
- * Find function form based on function name and # of arguments.
- * @param name Function name, case insensitive
- * @param args Number of arguments
- * @return Corresponding form or null if not found
- */
- FunctionForm findFunctionForm(String name, int args) {
- List<FunctionMethod> results = findFunctionMethods(name, args);
- if (results.size() > 0) {
- return new FunctionForm(results.get(0));
- }
- return null;
- }
-
- /**
- * Find all function methods with the given name and arg length
- * @param name Function name, case insensitive
- * @param args Number of arguments
- * @return Corresponding form or null if not found
- */
- List<FunctionMethod> findFunctionMethods(String name, int args) {
- final List<FunctionMethod> allMatches = new ArrayList<FunctionMethod>();
- List<FunctionMethod> methods = functionsByName.get(name.toUpperCase());
- if(methods == null || methods.size() == 0) {
- return allMatches;
- }
-
- for (FunctionMethod functionMethod : methods) {
- if(functionMethod.getInputParameterCount() == args || functionMethod.isVarArgs() && args >= functionMethod.getInputParameterCount() - 1) {
- allMatches.add(functionMethod);
- }
- }
-
- return allMatches;
- }
-
- // ---------------------- FUNCTION INVOCATION USE METHODS ----------------------
-
- /**
- * Store the method for function resolution and invocation.
- * @param source The function metadata source, which knows how to obtain the invocation class
- * @param method The function metadata for a particular method signature
- */
- private void addFunction(FunctionMetadataSource source, FunctionMethod method) {
- // Get method name
- String methodName = method.getName();
-
- // Get input types for path
- FunctionParameter[] inputParams = method.getInputParameters();
- List<Class> inputTypes = new LinkedList<Class>();
- if(inputParams != null) {
- for(int i=0; i<inputParams.length; i++) {
- String typeName = inputParams[i].getType();
- inputTypes.add(DataTypeManager.getDataTypeClass(typeName));
- }
- }
- Class[] types = inputTypes.toArray(new Class[inputTypes.size()]);
-
- if (method.isVarArgs()) {
- inputTypes.set(inputTypes.size() - 1, Array.newInstance(inputTypes.get(inputTypes.size() - 1), 0).getClass());
- }
-
- // Get return type
- FunctionParameter outputParam = method.getOutputParameter();
- Class outputType = null;
- if(outputParam != null) {
- outputType = DataTypeManager.getDataTypeClass(outputParam.getType());
- }
-
- Method invocationMethod = null;
- boolean requiresContext = false;
- // Defect 20007 - Ignore the invocation method if pushdown is not required.
- if (method.getPushdown() == FunctionMethod.CAN_PUSHDOWN || method.getPushdown() == FunctionMethod.CANNOT_PUSHDOWN) {
- try {
- Class methodClass = source.getInvocationClass(method.getInvocationClass());
- ReflectionHelper helper = new ReflectionHelper(methodClass);
- try {
- invocationMethod = helper.findBestMethodWithSignature(method.getInvocationMethod(), inputTypes);
- } catch (NoSuchMethodException e) {
- inputTypes.add(0, CommandContext.class);
- invocationMethod = helper.findBestMethodWithSignature(method.getInvocationMethod(), inputTypes);
- requiresContext = true;
- }
- } catch (ClassNotFoundException e) {
- // Failed to load class, so can't load method - this will fail at invocation time.
- // We don't fail here because this situation can occur in the modeler, which does
- // not have the function jar files. The modeler never invokes, so this isn't a
- // problem.
- } catch (Exception e) {
- throw new MetaMatrixRuntimeException(e, ErrorMessageKeys.FUNCTION_0047, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0047, new Object[]{method.getInvocationClass(), invocationMethod, inputTypes}));
- }
- if(invocationMethod != null && !FunctionTree.isValidMethod(invocationMethod)) {
- throw new MetaMatrixRuntimeException(ErrorMessageKeys.FUNCTION_0047, QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0047, new Object[]{method.getInvocationClass(), invocationMethod, inputTypes}));
- }
- } else {
- inputTypes.add(0, CommandContext.class);
- }
-
- FunctionDescriptor descriptor = new FunctionDescriptor(method.getName(), method.getPushdown(), types, outputType, invocationMethod, requiresContext, method.isNullDependent(), method.getDeterministic());
- // Store this path in the function tree
- Map node = treeRoot;
- Object[] path = buildPath(methodName, types);
- for(int pathIndex = 0; pathIndex < path.length; pathIndex++) {
- Object pathPart = path[pathIndex];
- Map children = (Map) node.get(pathPart);
- if(children == null) {
- children = new HashMap();
- node.put(pathPart, children);
- }
- if (method.isVarArgs() && pathIndex == path.length - 1) {
- node.put(DESCRIPTOR_KEY, descriptor);
- }
- node = children;
- }
-
- if (method.isVarArgs()) {
- node.put(types[types.length - 1], node);
- }
- // Store the leaf descriptor in the tree
- node.put(DESCRIPTOR_KEY, descriptor);
- }
-
- /**
- * Validate a method looked up by reflection. The method should have a non-void return type
- * and be a public static method.
- * @param method Method to validate
- * @return True if valid
- */
- static boolean isValidMethod(Method method) {
- // Check return type is non void
- Class methodReturn = method.getReturnType();
- if(methodReturn.equals(Void.TYPE)) {
- return false;
- }
-
- // Check that method is public
- int modifiers = method.getModifiers();
- if(! Modifier.isPublic(modifiers)) {
- return false;
- }
-
- // Check that method is static
- if(! Modifier.isStatic(modifiers)) {
- return false;
- }
-
- return true;
- }
-
- /**
- * Look up a function descriptor by signature in the tree. If none is
- * found, null is returned.
- * @param name Name of the function, case is not important
- * @param argTypes Types of each argument in the function
- * @return Descriptor which can be used to invoke the function
- */
- FunctionDescriptor getFunction(String name, Class[] argTypes) {
- // Build search path
- Object[] path = buildPath(name, argTypes);
-
- // Walk path in tree
- Map node = treeRoot;
- for(int i=0; i<path.length; i++) {
- node = (Map)node.get(path[i]);
- if (node == null) {
- return null;
- }
- }
-
- // Look for key at the end
- if(node.containsKey(DESCRIPTOR_KEY)) {
- // This is the end - return descriptor
- return (FunctionDescriptor) node.get(DESCRIPTOR_KEY);
- }
- // No descriptor at this location in tree
- return null;
- }
-
- /**
- * Build the path in the function storage tree. The path for a function consists
- * of it's name (uppercased) and each of the argument classes.
- * @param name Name of function
- * @param argTypes Types of each arguments
- * @return Path in function storage tree
- */
- private Object[] buildPath(String name, Class[] argTypes) {
- Object[] path = new Object[argTypes.length + 1];
- path[0] = name.toUpperCase();
- System.arraycopy(argTypes, 0, path, 1, argTypes.length);
- return path;
- }
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/function/SystemFunctionManager.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/function/SystemFunctionManager.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/function/SystemFunctionManager.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,71 +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.query.function;
-
-import java.util.Collection;
-import java.util.Collections;
-
-import com.metamatrix.query.QueryPlugin;
-import com.metamatrix.query.function.metadata.FunctionMetadataValidator;
-import com.metamatrix.query.function.source.SystemSource;
-import com.metamatrix.query.report.ActivityReport;
-import com.metamatrix.query.util.ErrorMessageKeys;
-
-public class SystemFunctionManager {
-
- private static FunctionTree systemFunctionTree;
-
- static {
- // Create the system source and add it to the source list
- SystemSource systemSource = new SystemSource();
-
- // Validate the system source - should never fail
- ActivityReport report = new ActivityReport("Function Validation"); //$NON-NLS-1$
- validateSource(systemSource, report);
- if(report.hasItems()) {
- // Should never happen as SystemSource doesn't change
- System.err.println(QueryPlugin.Util.getString(ErrorMessageKeys.FUNCTION_0005, report));
- }
-
- systemFunctionTree = new FunctionTree(systemSource);
- }
-
-
- public static FunctionTree getSystemFunctions() {
- return systemFunctionTree;
- }
-
- public static FunctionLibrary getSystemFunctionLibrary() {
- return new FunctionLibrary(systemFunctionTree, new FunctionTree(new UDFSource(Collections.EMPTY_LIST)));
- }
-
- /**
- * Validate all function metadata in the source with the FunctionMetadataValidator. Add
- * any problems to the specified report.
- * @param source Source of function metadata
- * @param report Report to update with any problems
- */
- private static void validateSource(FunctionMetadataSource source, ActivityReport report) {
- Collection functionMethods = source.getFunctionMethods();
- FunctionMetadataValidator.validateFunctionMethods(functionMethods,report);
- }
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/function/UDFSource.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/function/UDFSource.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/function/UDFSource.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,45 +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.query.function;
-
-import java.util.Collection;
-
-import com.metamatrix.query.function.metadata.FunctionMethod;
-
-
-public class UDFSource implements FunctionMetadataSource {
-
- private Collection <FunctionMethod> methods = null;
-
- public UDFSource(Collection <FunctionMethod> methods) {
- this.methods = methods;
- }
-
- public Collection getFunctionMethods() {
- return this.methods;
- }
-
- public Class getInvocationClass(String className) throws ClassNotFoundException {
- return Class.forName(className);
- }
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/optimizer/CommandPlanner.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/CommandPlanner.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/CommandPlanner.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -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.query.optimizer;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.query.QueryMetadataException;
-import com.metamatrix.api.exception.query.QueryPlannerException;
-import com.metamatrix.core.id.IDGenerator;
-import com.metamatrix.query.analysis.AnalysisRecord;
-import com.metamatrix.query.metadata.QueryMetadataInterface;
-import com.metamatrix.query.optimizer.capabilities.CapabilitiesFinder;
-import com.metamatrix.query.processor.ProcessorPlan;
-import com.metamatrix.query.sql.lang.Command;
-import com.metamatrix.query.util.CommandContext;
-
-/**
- * <p>The common interface of all planners which take a user's command
- * object and produce a
- * {@link com.metamatrix.query.processor.ProcessorPlan ProcessorPlan}
- * object, which is a plan for executing the query.</p>
- */
-public interface CommandPlanner {
-
- /**
- * Allows the planner a chance to optimize the canonical plan(s) stored in
- * the CommandTreeNode tree. This method should be called in a bottom-up
- * manner; from leaf nodes up to the root node.
- * @param command TODO
- * @param metadata source of metadata
- * @param capFinder Class usable to find the connector capabilities for a particular model
- * @param context
- * @param debug whether or not to generate verbose debug output during planning
- * @return ProcessorPlan implementation specific to the CommandPlanner
- * @throws QueryPlannerException indicating a problem in planning
- * @throws QueryMetadataException indicating an exception in accessing the metadata
- * @throws MetaMatrixComponentException indicating an unexpected exception
- */
- ProcessorPlan optimize(Command command, IDGenerator idGenerator, QueryMetadataInterface metadata, CapabilitiesFinder capFinder, AnalysisRecord analysisRecord, CommandContext context)
- throws QueryPlannerException, QueryMetadataException, MetaMatrixComponentException;
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/optimizer/QueryOptimizer.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/QueryOptimizer.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/QueryOptimizer.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,126 +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.query.optimizer;
-
-import java.util.Map;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.query.QueryMetadataException;
-import com.metamatrix.api.exception.query.QueryPlannerException;
-import com.metamatrix.api.exception.query.QueryResolverException;
-import com.metamatrix.core.MetaMatrixRuntimeException;
-import com.metamatrix.core.id.IDGenerator;
-import com.metamatrix.core.id.IntegerIDFactory;
-import com.metamatrix.query.analysis.AnalysisRecord;
-import com.metamatrix.query.metadata.QueryMetadataInterface;
-import com.metamatrix.query.metadata.TempMetadataAdapter;
-import com.metamatrix.query.metadata.TempMetadataStore;
-import com.metamatrix.query.optimizer.batch.BatchedUpdatePlanner;
-import com.metamatrix.query.optimizer.capabilities.CapabilitiesFinder;
-import com.metamatrix.query.optimizer.proc.ProcedurePlanner;
-import com.metamatrix.query.optimizer.relational.RelationalPlanner;
-import com.metamatrix.query.optimizer.xml.XMLPlanner;
-import com.metamatrix.query.optimizer.xquery.XQueryPlanner;
-import com.metamatrix.query.processor.ProcessorPlan;
-import com.metamatrix.query.resolver.QueryResolver;
-import com.metamatrix.query.sql.lang.Command;
-import com.metamatrix.query.sql.lang.Query;
-import com.metamatrix.query.util.CommandContext;
-
-/**
- * <p>This Class produces a ProcessorPlan object (a plan for query execution) from a
- * user's command and a source of metadata.</p>
- *
- * <p>The user's Command object may in fact be a tree of commands and subcommands.
- * This component is architected to defer to the proper
- * {@link CommandPlanner CommandPlanner} implementation to plan each Command in the
- * tree.</p>
- */
-public class QueryOptimizer {
-
- private static final CommandPlanner XML_PLANNER = new XMLPlanner();
- private static final CommandPlanner PROCEDURE_PLANNER = new ProcedurePlanner();
- private static final CommandPlanner XQUERY_PLANNER = new XQueryPlanner();
- private static final CommandPlanner BATCHED_UPDATE_PLANNER = new BatchedUpdatePlanner();
-
- // Can't construct
- private QueryOptimizer() {}
-
- public static ProcessorPlan optimizePlan(Command command, QueryMetadataInterface metadata, IDGenerator idGenerator, CapabilitiesFinder capFinder, AnalysisRecord analysisRecord, CommandContext context)
- throws QueryPlannerException, QueryMetadataException, MetaMatrixComponentException {
-
- if (analysisRecord == null) {
- analysisRecord = new AnalysisRecord(false, false);
- }
-
- if (context == null) {
- context = new CommandContext();
- }
-
- boolean debug = analysisRecord.recordDebug();
-
- Map tempMetadata = command.getTemporaryMetadata();
- metadata = new TempMetadataAdapter(metadata, new TempMetadataStore(tempMetadata));
-
- // Create an ID generator that can be used for all plans to generate unique data node IDs
- if(idGenerator == null) {
- idGenerator = new IDGenerator();
- idGenerator.setDefaultFactory(new IntegerIDFactory());
- }
-
- if(debug) {
- analysisRecord.println("\n----------------------------------------------------------------------------"); //$NON-NLS-1$
- analysisRecord.println("OPTIMIZE: \n" + command); //$NON-NLS-1$
- }
-
- ProcessorPlan result = null;
-
- if (command.getType() == Command.TYPE_UPDATE_PROCEDURE){
- result = PROCEDURE_PLANNER.optimize(command, idGenerator, metadata, capFinder, analysisRecord, context);
- } else if (command.getType() == Command.TYPE_XQUERY){
- result = XQUERY_PLANNER.optimize(command, idGenerator, metadata, capFinder, analysisRecord, context);
- } else if (command.getType() == Command.TYPE_BATCHED_UPDATE){
- result = BATCHED_UPDATE_PLANNER.optimize(command, idGenerator, metadata, capFinder, analysisRecord, context);
- } else {
- try {
- if (command.getType() == Command.TYPE_QUERY && command instanceof Query && QueryResolver.isXMLQuery((Query)command, metadata)) {
- result = XML_PLANNER.optimize(command, idGenerator, metadata, capFinder, analysisRecord, context);
- } else {
- result = new RelationalPlanner().optimize(command, idGenerator, metadata, capFinder, analysisRecord, context);
- }
- } catch (QueryResolverException e) {
- throw new MetaMatrixRuntimeException(e);
- }
- }
-
- if(debug) {
- analysisRecord.println("\n----------------------------------------------------------------------------"); //$NON-NLS-1$
- analysisRecord.println("OPTIMIZATION COMPLETE:"); //$NON-NLS-1$
- analysisRecord.println("PROCESSOR PLAN:\n" + result); //$NON-NLS-1$
- analysisRecord.println("============================================================================"); //$NON-NLS-1$
- }
-
- return result;
- }
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/AliasGenerator.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/AliasGenerator.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/AliasGenerator.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,370 +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.query.optimizer.relational;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import com.metamatrix.query.metadata.TempMetadataID;
-import com.metamatrix.query.sql.LanguageVisitor;
-import com.metamatrix.query.sql.lang.ExistsCriteria;
-import com.metamatrix.query.sql.lang.OrderBy;
-import com.metamatrix.query.sql.lang.OrderByItem;
-import com.metamatrix.query.sql.lang.Query;
-import com.metamatrix.query.sql.lang.Select;
-import com.metamatrix.query.sql.lang.SetQuery;
-import com.metamatrix.query.sql.lang.SubqueryCompareCriteria;
-import com.metamatrix.query.sql.lang.SubqueryFromClause;
-import com.metamatrix.query.sql.lang.SubquerySetCriteria;
-import com.metamatrix.query.sql.lang.UnaryFromClause;
-import com.metamatrix.query.sql.navigator.PreOrderNavigator;
-import com.metamatrix.query.sql.symbol.AliasSymbol;
-import com.metamatrix.query.sql.symbol.ElementSymbol;
-import com.metamatrix.query.sql.symbol.Expression;
-import com.metamatrix.query.sql.symbol.ExpressionSymbol;
-import com.metamatrix.query.sql.symbol.GroupSymbol;
-import com.metamatrix.query.sql.symbol.Reference;
-import com.metamatrix.query.sql.symbol.ScalarSubquery;
-import com.metamatrix.query.sql.symbol.SingleElementSymbol;
-import com.metamatrix.query.sql.util.SymbolMap;
-
-/**
- * Adds safe (generated) aliases to the source command
- *
- * The structure is a little convoluted:
- * AliasGenerator - structure navigator, alters the command by adding alias symbols
- * NamingVisitor - changes the output names of Element and Group symbols
- * SQLNamingContext - a hierarchical context for tracking Element and Group names
- */
-public class AliasGenerator extends PreOrderNavigator {
-
- private static class NamingVisitor extends LanguageVisitor {
-
- private class SQLNamingContext {
- SQLNamingContext parent;
-
- Map<String, Map<String, String>> elementMap = new HashMap<String, Map<String, String>>();
- Map<String, String> groupNames = new HashMap<String, String>();
- Map<SingleElementSymbol, String> currentSymbols;
-
- boolean aliasColumns = false;
-
- public SQLNamingContext(SQLNamingContext parent) {
- this.parent = parent;
- }
-
- public String getElementName(SingleElementSymbol symbol, boolean renameGroup) {
- String name = null;
- if (currentSymbols != null) {
- name = currentSymbols.get(symbol);
- if (name != null) {
- if (renameGroup && symbol instanceof ElementSymbol) {
- renameGroup(((ElementSymbol)symbol).getGroupSymbol());
- }
- return name;
- }
- }
- if (!(symbol instanceof ElementSymbol)) {
- return null;
- }
- ElementSymbol element = (ElementSymbol)symbol;
- Map<String, String> elements = this.elementMap.get(element.getGroupSymbol().getCanonicalName());
- if (elements != null) {
- name = elements.get(element.getShortCanonicalName());
- if (name != null) {
- if (renameGroup) {
- renameGroup(element.getGroupSymbol());
- }
- return name;
- }
- }
- if (parent != null) {
- name = parent.getElementName(symbol, renameGroup);
- if (name != null) {
- return name;
- }
- }
- if (renameGroup) {
- renameGroup(element.getGroupSymbol());
- }
- return null;
- }
-
- public void renameGroup(GroupSymbol obj) {
- if (aliasGroups) {
- String definition = obj.getNonCorrelationName();
- String newAlias = getGroupName(obj.getCanonicalName());
- if (newAlias == null) {
- return;
- }
- obj.setOutputName(newAlias);
- obj.setOutputDefinition(definition);
- } else if(obj.getDefinition() != null) {
- obj.setOutputName(obj.getDefinition());
- obj.setOutputDefinition(null);
- }
- }
-
- private String getGroupName(String group) {
- String groupName = groupNames.get(group);
- if (groupName == null) {
- if (parent == null) {
- return null;
- }
- return parent.getGroupName(group);
- }
- return groupName;
- }
- }
-
- private SQLNamingContext namingContext = new SQLNamingContext(null);
- boolean aliasGroups;
-
- public NamingVisitor(boolean aliasGroups) {
- this.aliasGroups = aliasGroups;
- }
-
- /**
- * @see com.metamatrix.query.sql.LanguageVisitor#visit(com.metamatrix.query.sql.symbol.ElementSymbol)
- */
- @Override
- public void visit(ElementSymbol obj) {
- GroupSymbol group = obj.getGroupSymbol();
- if(group == null) {
- return;
- }
- String newName = namingContext.getElementName(obj, true);
-
- if (newName == null) {
- newName = ElementSymbol.getShortName(obj.getOutputName());
- }
-
- obj.setOutputName(group.getOutputName() + ElementSymbol.SEPARATOR + newName);
- obj.setDisplayMode(ElementSymbol.DisplayMode.OUTPUT_NAME);
- }
-
- /**
- * @see com.metamatrix.query.sql.LanguageVisitor#visit(com.metamatrix.query.sql.symbol.GroupSymbol)
- */
- @Override
- public void visit(GroupSymbol obj) {
- this.namingContext.renameGroup(obj);
- }
-
- public void createChildNamingContext(boolean aliasColumns) {
- this.namingContext = new SQLNamingContext(this.namingContext);
- this.namingContext.aliasColumns = aliasColumns;
- }
-
- public void removeChildNamingContext() {
- this.namingContext = this.namingContext.parent;
- }
-
- }
-
- private NamingVisitor visitor;
- private int groupIndex = 0;
- private int viewIndex = 0;
-
- public AliasGenerator(boolean aliasGroups) {
- super(new NamingVisitor(aliasGroups));
- this.visitor = (NamingVisitor)this.getVisitor();
- }
-
- /**
- * visit the branches other than the first with individual naming contexts
- * Aliases are being added in all cases, even though they may only be needed in the order by case.
- * Adding the same alias to all branches ensures cross db support (db2 in particular)
- */
- public void visit(SetQuery obj) {
- visitor.createChildNamingContext(true);
- visitNode(obj.getRightQuery());
- visitor.removeChildNamingContext();
- visitor.namingContext.aliasColumns = true;
- visitNode(obj.getLeftQuery());
- visitNode(obj.getOrderBy());
- }
-
- public void visit(Select obj) {
- List selectSymbols = obj.getSymbols();
- HashMap<SingleElementSymbol, String> symbols = new HashMap<SingleElementSymbol, String>(selectSymbols.size());
- for (int i = 0; i < selectSymbols.size(); i++) {
- SingleElementSymbol symbol = (SingleElementSymbol)selectSymbols.get(i);
-
- String newAlias = "c_" + i; //$NON-NLS-1$
-
- boolean needsAlias = true;
-
- Expression expr = SymbolMap.getExpression(symbol);
-
- SingleElementSymbol newSymbol = symbol;
-
- if (!(expr instanceof SingleElementSymbol)) {
- newSymbol = new ExpressionSymbol(newSymbol.getShortName(), expr);
- } else if (expr instanceof ElementSymbol) {
- if (!needsAlias(newAlias, (ElementSymbol)expr)) {
- needsAlias = false;
- ((ElementSymbol)expr).setOutputName(newAlias);
- }
- newSymbol = (ElementSymbol)expr;
- } else {
- newSymbol = (SingleElementSymbol)expr;
- }
-
- symbols.put(symbol, newAlias);
- if (visitor.namingContext.aliasColumns && needsAlias) {
- newSymbol = new AliasSymbol(symbol.getShortName(), newSymbol);
- newSymbol.setOutputName(newAlias);
- }
- selectSymbols.set(i, newSymbol);
- }
-
- super.visit(obj);
- visitor.namingContext.currentSymbols = symbols;
- }
-
- private boolean needsAlias(String newAlias,
- ElementSymbol symbol) {
- return !(symbol.getMetadataID() instanceof TempMetadataID) || !newAlias.equalsIgnoreCase(visitor.namingContext.getElementName(symbol, false));
- }
-
- /**
- * visit the query in definition order
- */
- public void visit(Query obj) {
- if (obj.getOrderBy() != null || obj.getLimit() != null) {
- visitor.namingContext.aliasColumns = true;
- }
- visitNode(obj.getFrom());
- visitNode(obj.getCriteria());
- visitNode(obj.getGroupBy());
- visitNode(obj.getHaving());
- visitNode(obj.getSelect());
- visitNode(obj.getOrderBy());
- }
-
- public void visit(SubqueryFromClause obj) {
- visitor.createChildNamingContext(true);
- obj.getCommand().acceptVisitor(this);
- Map<String, String> viewGroup = new HashMap<String, String>();
- for (Entry<SingleElementSymbol, String> entry : visitor.namingContext.currentSymbols.entrySet()) {
- viewGroup.put(entry.getKey().getShortCanonicalName(), entry.getValue());
- }
- visitor.namingContext.parent.elementMap.put(obj.getName().toUpperCase(), viewGroup);
- visitor.removeChildNamingContext();
- obj.getGroupSymbol().setOutputName(recontextGroup(obj.getGroupSymbol(), true));
- }
-
- @Override
- public void visit(UnaryFromClause obj) {
- if (visitor.aliasGroups) {
- GroupSymbol symbol = obj.getGroup();
- recontextGroup(symbol, false);
- }
- super.visit(obj);
- }
-
- /**
- * @param symbol
- */
- private String recontextGroup(GroupSymbol symbol, boolean virtual) {
- String newAlias = null;
- if (virtual) {
- newAlias = "v_" + viewIndex++; //$NON-NLS-1$
- } else {
- newAlias = "g_" + groupIndex++; //$NON-NLS-1$
- }
- visitor.namingContext.groupNames.put(symbol.getName().toUpperCase(), newAlias);
- return newAlias;
- }
-
- public void visit(ScalarSubquery obj) {
- visitor.createChildNamingContext(false);
- visitNode(obj.getCommand());
- visitor.removeChildNamingContext();
- }
-
- public void visit(SubqueryCompareCriteria obj) {
- visitNode(obj.getLeftExpression());
- visitor.createChildNamingContext(false);
- visitNode(obj.getCommand());
- visitor.removeChildNamingContext();
- }
-
- public void visit(SubquerySetCriteria obj) {
- visitNode(obj.getExpression());
- visitor.createChildNamingContext(false);
- visitNode(obj.getCommand());
- visitor.removeChildNamingContext();
- }
-
- public void visit(ExistsCriteria obj) {
- visitor.createChildNamingContext(false);
- visitNode(obj.getCommand());
- visitor.removeChildNamingContext();
- }
-
- public void visit(OrderBy obj) {
- //add/correct aliases if necessary
- for (int i = 0; i < obj.getVariableCount(); i++) {
- OrderByItem item = obj.getOrderByItems().get(i);
- SingleElementSymbol element = item.getSymbol();
- if (item.isUnrelated()) {
- visitNode(element);
- continue;
- }
- String name = visitor.namingContext.getElementName(element, false);
- if (name != null) {
- boolean needsAlias = true;
-
- Expression expr = SymbolMap.getExpression(element);
-
- if (!(expr instanceof SingleElementSymbol)) {
- expr = new ExpressionSymbol(element.getShortName(), expr);
- } else if (expr instanceof ElementSymbol) {
- needsAlias = needsAlias(name, (ElementSymbol)expr);
- }
-
- if (needsAlias) {
- element = new AliasSymbol(element.getShortName(), (SingleElementSymbol)expr);
- obj.getOrderByItems().get(i).setSymbol(element);
- }
- element.setOutputName(name);
- }
-
- visitNode(element);
-
- if (name != null && element instanceof ElementSymbol) {
- element.setOutputName(SingleElementSymbol.getShortName(element.getOutputName()));
- }
- }
- }
-
- public void visit(Reference obj) {
- //we need to follow references to correct correlated variables
- visitNode(obj.getExpression());
- }
-
-}
\ No newline at end of file
Deleted: trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/OptimizerRule.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/OptimizerRule.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/OptimizerRule.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,38 +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.query.optimizer.relational;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.query.*;
-import com.metamatrix.query.optimizer.capabilities.CapabilitiesFinder;
-import com.metamatrix.query.optimizer.relational.plantree.PlanNode;
-import com.metamatrix.query.util.CommandContext;
-import com.metamatrix.query.analysis.AnalysisRecord;
-import com.metamatrix.query.metadata.*;
-
-public interface OptimizerRule {
-
- PlanNode execute(PlanNode plan, QueryMetadataInterface metadata, CapabilitiesFinder capabilitiesFinder, RuleStack rules, AnalysisRecord analysisRecord, CommandContext context)
- throws QueryPlannerException, QueryMetadataException, MetaMatrixComponentException;
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/PlanHints.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/PlanHints.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/PlanHints.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,54 +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.query.optimizer.relational;
-
-
-public final class PlanHints {
-
- // This flag indicates that the plan has a criteria somewhere
- public boolean hasCriteria = false;
-
- // This flag indicates that the plan has a join somewhere
- public boolean hasJoin = false;
-
- // This flag indicates that the plan has a virtual group somewhere
- public boolean hasVirtualGroups = false;
-
- // flag indicates that the plan has a union somewhere
- public boolean hasSetQuery = false;
-
- // flag indicating that the plan has a grouping node somewhere
- public boolean hasAggregates = false;
-
- public boolean hasLimit = false;
-
- public boolean hasOptionalJoin = false;
-
- public boolean hasRelationalProc = false;
-
- public PlanHints() { }
-
- public String toString(){
- return "PlanHints"; //$NON-NLS-1$
- }
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/PlanToProcessConverter.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/PlanToProcessConverter.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/PlanToProcessConverter.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,487 +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.query.optimizer.relational;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.query.QueryMetadataException;
-import com.metamatrix.api.exception.query.QueryPlannerException;
-import com.metamatrix.core.CoreConstants;
-import com.metamatrix.core.id.IDGenerator;
-import com.metamatrix.core.id.IntegerID;
-import com.metamatrix.core.id.IntegerIDFactory;
-import com.metamatrix.core.util.Assertion;
-import com.metamatrix.query.analysis.AnalysisRecord;
-import com.metamatrix.query.execution.QueryExecPlugin;
-import com.metamatrix.query.metadata.QueryMetadataInterface;
-import com.metamatrix.query.metadata.TempMetadataID;
-import com.metamatrix.query.optimizer.capabilities.CapabilitiesFinder;
-import com.metamatrix.query.optimizer.capabilities.SourceCapabilities;
-import com.metamatrix.query.optimizer.capabilities.SourceCapabilities.Capability;
-import com.metamatrix.query.optimizer.relational.plantree.NodeConstants;
-import com.metamatrix.query.optimizer.relational.plantree.PlanNode;
-import com.metamatrix.query.optimizer.relational.plantree.NodeConstants.Info;
-import com.metamatrix.query.optimizer.relational.rules.CapabilitiesUtil;
-import com.metamatrix.query.processor.ProcessorPlan;
-import com.metamatrix.query.processor.relational.AccessNode;
-import com.metamatrix.query.processor.relational.DependentAccessNode;
-import com.metamatrix.query.processor.relational.DependentProcedureAccessNode;
-import com.metamatrix.query.processor.relational.DependentProcedureExecutionNode;
-import com.metamatrix.query.processor.relational.GroupingNode;
-import com.metamatrix.query.processor.relational.InsertPlanExecutionNode;
-import com.metamatrix.query.processor.relational.JoinNode;
-import com.metamatrix.query.processor.relational.LimitNode;
-import com.metamatrix.query.processor.relational.MergeJoinStrategy;
-import com.metamatrix.query.processor.relational.NestedLoopJoinStrategy;
-import com.metamatrix.query.processor.relational.NullNode;
-import com.metamatrix.query.processor.relational.PartitionedSortJoin;
-import com.metamatrix.query.processor.relational.PlanExecutionNode;
-import com.metamatrix.query.processor.relational.ProjectIntoNode;
-import com.metamatrix.query.processor.relational.ProjectNode;
-import com.metamatrix.query.processor.relational.RelationalNode;
-import com.metamatrix.query.processor.relational.RelationalPlan;
-import com.metamatrix.query.processor.relational.SelectNode;
-import com.metamatrix.query.processor.relational.SortNode;
-import com.metamatrix.query.processor.relational.UnionAllNode;
-import com.metamatrix.query.processor.relational.JoinNode.JoinStrategyType;
-import com.metamatrix.query.processor.relational.MergeJoinStrategy.SortOption;
-import com.metamatrix.query.processor.relational.SortUtility.Mode;
-import com.metamatrix.query.resolver.util.ResolverUtil;
-import com.metamatrix.query.sql.lang.Command;
-import com.metamatrix.query.sql.lang.Criteria;
-import com.metamatrix.query.sql.lang.Insert;
-import com.metamatrix.query.sql.lang.JoinType;
-import com.metamatrix.query.sql.lang.OrderBy;
-import com.metamatrix.query.sql.lang.Query;
-import com.metamatrix.query.sql.lang.StoredProcedure;
-import com.metamatrix.query.sql.lang.SetQuery.Operation;
-import com.metamatrix.query.sql.symbol.ElementSymbol;
-import com.metamatrix.query.sql.symbol.Expression;
-import com.metamatrix.query.sql.symbol.GroupSymbol;
-import com.metamatrix.query.sql.util.SymbolMap;
-import com.metamatrix.query.sql.visitor.EvaluatableVisitor;
-import com.metamatrix.query.sql.visitor.GroupCollectorVisitor;
-import com.metamatrix.query.util.ErrorMessageKeys;
-
-public class PlanToProcessConverter {
- protected QueryMetadataInterface metadata;
- private IDGenerator idGenerator;
- private AnalysisRecord analysisRecord;
- private CapabilitiesFinder capFinder;
-
- public PlanToProcessConverter(QueryMetadataInterface metadata, IDGenerator idGenerator, AnalysisRecord analysisRecord, CapabilitiesFinder capFinder) {
- this.metadata = metadata;
- this.idGenerator = idGenerator;
- this.analysisRecord = analysisRecord;
- this.capFinder = capFinder;
- }
-
- public RelationalPlan convert(PlanNode planNode)
- throws QueryPlannerException, MetaMatrixComponentException {
-
- boolean debug = analysisRecord.recordDebug();
- if(debug) {
- analysisRecord.println("\n============================================================================"); //$NON-NLS-1$
- analysisRecord.println("CONVERTING PLAN TREE TO PROCESS TREE"); //$NON-NLS-1$
- }
-
- // Convert plan tree nodes into process tree nodes
- RelationalNode processNode = convertPlan(planNode);
- if(debug) {
- analysisRecord.println("\nPROCESS PLAN = \n" + processNode); //$NON-NLS-1$
- analysisRecord.println("============================================================================"); //$NON-NLS-1$
- }
-
- RelationalPlan processPlan = new RelationalPlan(processNode);
- return processPlan;
-
- }
-
- private RelationalNode convertPlan(PlanNode planNode)
- throws QueryPlannerException, MetaMatrixComponentException {
-
- // Convert current node in planTree
- RelationalNode convertedNode = convertNode(planNode);
-
- if(convertedNode == null) {
- Assertion.assertTrue(planNode.getChildCount() == 1);
- return convertPlan(planNode.getFirstChild());
- }
-
- RelationalNode nextParent = convertedNode;
-
- // convertedNode may be the head of 1 or more nodes - go to end of chain
- while(nextParent.getChildren()[0] != null) {
- nextParent = nextParent.getChildren()[0];
- }
-
- // Call convertPlan recursively on children
- for (PlanNode childNode : planNode.getChildren()) {
- nextParent.addChild(convertPlan(childNode));
- }
-
- // Return root of tree for top node
- return convertedNode;
- }
-
- protected int getID() {
- IntegerIDFactory intFactory = (IntegerIDFactory) idGenerator.getDefaultFactory();
- return ((IntegerID) intFactory.create()).getValue();
- }
-
- protected RelationalNode convertNode(PlanNode node)
- throws QueryPlannerException, MetaMatrixComponentException {
-
- RelationalNode processNode = null;
-
- switch(node.getType()) {
- case NodeConstants.Types.PROJECT:
- GroupSymbol intoGroup = (GroupSymbol) node.getProperty(NodeConstants.Info.INTO_GROUP);
- if(intoGroup != null) {
- try {
- Insert insert = (Insert)node.getFirstChild().getProperty(Info.VIRTUAL_COMMAND);
- List<ElementSymbol> allIntoElements = insert.getVariables();
-
- Object groupID = intoGroup.getMetadataID();
- Object modelID = metadata.getModelID(groupID);
- String modelName = metadata.getFullName(modelID);
- if (metadata.isVirtualGroup(groupID)) {
- InsertPlanExecutionNode ipen = new InsertPlanExecutionNode(getID(), metadata);
- ipen.setProcessorPlan((ProcessorPlan)node.getFirstChild().getProperty(Info.PROCESSOR_PLAN));
- ipen.setReferences(insert.getValues());
- processNode = ipen;
- } else {
- ProjectIntoNode pinode = new ProjectIntoNode(getID());
- pinode.setIntoGroup(intoGroup);
- pinode.setIntoElements(allIntoElements);
- pinode.setModelName(modelName);
- processNode = pinode;
- if (!metadata.isTemporaryTable(groupID)) {
- SourceCapabilities caps = capFinder.findCapabilities(modelName);
- pinode.setDoBatching(caps.supportsCapability(Capability.BATCHED_UPDATES));
- pinode.setDoBulkInsert(caps.supportsCapability(Capability.BULK_UPDATE));
- } else {
- pinode.setDoBulkInsert(true);
- }
- }
- } catch(QueryMetadataException e) {
- throw new MetaMatrixComponentException(e);
- }
-
- } else {
- List symbols = (List) node.getProperty(NodeConstants.Info.PROJECT_COLS);
-
- ProjectNode pnode = new ProjectNode(getID());
- pnode.setSelectSymbols(symbols);
- processNode = pnode;
- }
- break;
-
- case NodeConstants.Types.JOIN:
- JoinType jtype = (JoinType) node.getProperty(NodeConstants.Info.JOIN_TYPE);
- JoinStrategyType stype = (JoinStrategyType) node.getProperty(NodeConstants.Info.JOIN_STRATEGY);
-
- JoinNode jnode = new JoinNode(getID());
- jnode.setJoinType(jtype);
- jnode.setLeftDistinct(node.hasBooleanProperty(NodeConstants.Info.IS_LEFT_DISTINCT));
- jnode.setRightDistinct(node.hasBooleanProperty(NodeConstants.Info.IS_RIGHT_DISTINCT));
- List joinCrits = (List) node.getProperty(NodeConstants.Info.JOIN_CRITERIA);
- String depValueSource = (String) node.getProperty(NodeConstants.Info.DEPENDENT_VALUE_SOURCE);
- SortOption leftSort = (SortOption)node.getProperty(NodeConstants.Info.SORT_LEFT);
- if(stype.equals(JoinStrategyType.MERGE) || stype.equals(JoinStrategyType.PARTITIONED_SORT)) {
- MergeJoinStrategy mjStrategy = null;
- if (stype.equals(JoinStrategyType.PARTITIONED_SORT)) {
- mjStrategy = new PartitionedSortJoin(leftSort, (SortOption)node.getProperty(NodeConstants.Info.SORT_RIGHT));
- } else {
- mjStrategy = new MergeJoinStrategy(leftSort, (SortOption)node.getProperty(NodeConstants.Info.SORT_RIGHT), false);
- }
- jnode.setJoinStrategy(mjStrategy);
- List leftExpressions = (List) node.getProperty(NodeConstants.Info.LEFT_EXPRESSIONS);
- List rightExpressions = (List) node.getProperty(NodeConstants.Info.RIGHT_EXPRESSIONS);
- jnode.setJoinExpressions(leftExpressions, rightExpressions);
- joinCrits = (List) node.getProperty(NodeConstants.Info.NON_EQUI_JOIN_CRITERIA);
- } else {
- NestedLoopJoinStrategy nljStrategy = new NestedLoopJoinStrategy();
- jnode.setJoinStrategy(nljStrategy);
- }
- Criteria joinCrit = Criteria.combineCriteria(joinCrits);
- jnode.setJoinCriteria(joinCrit);
-
- processNode = jnode;
-
- jnode.setDependentValueSource(depValueSource);
-
- break;
-
- case NodeConstants.Types.ACCESS:
- ProcessorPlan plan = (ProcessorPlan) node.getProperty(NodeConstants.Info.PROCESSOR_PLAN);
- if(plan != null) {
-
- PlanExecutionNode peNode = null;
-
- Criteria crit = (Criteria)node.getProperty(NodeConstants.Info.PROCEDURE_CRITERIA);
-
- if (crit != null) {
- List references = (List)node.getProperty(NodeConstants.Info.PROCEDURE_INPUTS);
- List defaults = (List)node.getProperty(NodeConstants.Info.PROCEDURE_DEFAULTS);
-
- peNode = new DependentProcedureExecutionNode(getID(), crit, references, defaults);
- } else {
- peNode = new PlanExecutionNode(getID());
- }
-
- peNode.setProcessorPlan(plan);
- processNode = peNode;
-
- } else {
- AccessNode aNode = null;
- Command command = (Command) node.getProperty(NodeConstants.Info.ATOMIC_REQUEST);
- Object modelID = node.getProperty(NodeConstants.Info.MODEL_ID);
-
- if(node.hasBooleanProperty(NodeConstants.Info.IS_DEPENDENT_SET)) {
- if (command instanceof StoredProcedure) {
- List references = (List)node.getProperty(NodeConstants.Info.PROCEDURE_INPUTS);
- List defaults = (List)node.getProperty(NodeConstants.Info.PROCEDURE_DEFAULTS);
- Criteria crit = (Criteria)node.getProperty(NodeConstants.Info.PROCEDURE_CRITERIA);
-
- DependentProcedureAccessNode depAccessNode = new DependentProcedureAccessNode(getID(), crit, references, defaults);
- processNode = depAccessNode;
- aNode = depAccessNode;
- } else {
- //create dependent access node
- DependentAccessNode depAccessNode = new DependentAccessNode(getID());
-
- if(modelID != null){
- depAccessNode.setMaxSetSize(CapabilitiesUtil.getMaxInCriteriaSize(modelID, metadata, capFinder));
- }
- processNode = depAccessNode;
- aNode = depAccessNode;
- }
- aNode.setShouldEvaluateExpressions(true);
- } else {
-
- // create access node
- aNode = new AccessNode(getID());
- processNode = aNode;
-
- //-- special handling for temp tables. currently they cannot perform projection
- try {
- if (command instanceof Query) {
- processNode = correctProjectionInternalTables(node, aNode, (Query)command);
- }
- } catch (QueryMetadataException err) {
- throw new MetaMatrixComponentException(err);
- }
- aNode.setShouldEvaluateExpressions(EvaluatableVisitor.needsProcessingEvaluation(command));
- }
-
- try {
- command = (Command)command.clone();
- command.acceptVisitor(new AliasGenerator(modelID != null && CapabilitiesUtil.supportsGroupAliases(modelID, metadata, capFinder)));
- } catch (QueryMetadataException err) {
- throw new MetaMatrixComponentException(err);
- }
- aNode.setCommand(command);
- aNode.setModelName(getRoutingName(node));
- }
- break;
-
- case NodeConstants.Types.SELECT:
-
- Criteria crit = (Criteria) node.getProperty(NodeConstants.Info.SELECT_CRITERIA);
-
- SelectNode selnode = new SelectNode(getID());
- selnode.setCriteria(crit);
- processNode = selnode;
-
- break;
-
- case NodeConstants.Types.SORT:
- case NodeConstants.Types.DUP_REMOVE:
- SortNode sortNode = new SortNode(getID());
- OrderBy orderBy = (OrderBy) node.getProperty(NodeConstants.Info.SORT_ORDER);
- if (orderBy != null) {
- sortNode.setSortElements(orderBy.getSortKeys(), orderBy.getTypes());
- }
- if (node.getType() == NodeConstants.Types.DUP_REMOVE) {
- sortNode.setMode(Mode.DUP_REMOVE);
- } else if (node.hasBooleanProperty(NodeConstants.Info.IS_DUP_REMOVAL)) {
- sortNode.setMode(Mode.DUP_REMOVE_SORT);
- }
-
- processNode = sortNode;
- break;
- case NodeConstants.Types.GROUP:
- GroupingNode gnode = new GroupingNode(getID());
- gnode.setGroupingElements( (List) node.getProperty(NodeConstants.Info.GROUP_COLS) );
- gnode.setRemoveDuplicates(node.hasBooleanProperty(NodeConstants.Info.IS_DUP_REMOVAL));
- processNode = gnode;
- break;
-
- case NodeConstants.Types.SOURCE:
- SymbolMap symbolMap = (SymbolMap) node.getProperty(NodeConstants.Info.SYMBOL_MAP);
- if(symbolMap != null) {
- PlanNode child = node.getLastChild();
-
- if (node.getParent().getType() != NodeConstants.Types.PROJECT || node.getParent().getProperty(NodeConstants.Info.INTO_GROUP) == null) {
- if (child.getType() == NodeConstants.Types.PROJECT) {
- //update the project cols based upon the original output
- child.setProperty(NodeConstants.Info.PROJECT_COLS, child.getProperty(NodeConstants.Info.OUTPUT_COLS));
- }
- child.setProperty(NodeConstants.Info.OUTPUT_COLS, node.getProperty(NodeConstants.Info.OUTPUT_COLS));
- }
- }
-
- return null;
-
- case NodeConstants.Types.SET_OP:
- Operation setOp = (Operation) node.getProperty(NodeConstants.Info.SET_OPERATION);
- boolean useAll = ((Boolean) node.getProperty(NodeConstants.Info.USE_ALL)).booleanValue();
- if(setOp == Operation.UNION) {
- RelationalNode unionAllNode = new UnionAllNode(getID());
-
- if(useAll) {
- processNode = unionAllNode;
- } else {
- SortNode sNode = new SortNode(getID());
- boolean onlyDupRemoval = node.hasBooleanProperty(NodeConstants.Info.IS_DUP_REMOVAL);
- sNode.setMode(onlyDupRemoval?Mode.DUP_REMOVE:Mode.DUP_REMOVE_SORT);
- processNode = sNode;
-
- unionAllNode.setElements( (List) node.getProperty(NodeConstants.Info.OUTPUT_COLS) );
- processNode.addChild(unionAllNode);
- }
- } else {
- JoinNode joinAsSet = new JoinNode(getID());
- joinAsSet.setJoinStrategy(new MergeJoinStrategy(SortOption.SORT_DISTINCT, SortOption.SORT_DISTINCT, true));
- List leftExpressions = (List) node.getFirstChild().getProperty(NodeConstants.Info.OUTPUT_COLS);
- List rightExpressions = (List) node.getLastChild().getProperty(NodeConstants.Info.OUTPUT_COLS);
- joinAsSet.setJoinType(setOp == Operation.EXCEPT ? JoinType.JOIN_ANTI_SEMI : JoinType.JOIN_SEMI);
- joinAsSet.setJoinExpressions(leftExpressions, rightExpressions);
- processNode = joinAsSet;
- }
-
- break;
-
- case NodeConstants.Types.TUPLE_LIMIT:
- Expression rowLimit = (Expression)node.getProperty(NodeConstants.Info.MAX_TUPLE_LIMIT);
- Expression offset = (Expression)node.getProperty(NodeConstants.Info.OFFSET_TUPLE_COUNT);
- processNode = new LimitNode(getID(), rowLimit, offset);
- break;
-
- case NodeConstants.Types.NULL:
- processNode = new NullNode(getID());
- break;
-
- default:
- throw new QueryPlannerException(QueryExecPlugin.Util.getString(ErrorMessageKeys.OPTIMIZER_0007, NodeConstants.getNodeTypeString(node.getType())));
- }
-
- if(processNode != null) {
- processNode = prepareToAdd(node, processNode);
- }
-
- return processNode;
- }
-
- private RelationalNode correctProjectionInternalTables(PlanNode node,
- AccessNode aNode, Query query) throws QueryMetadataException,
- MetaMatrixComponentException {
- if (node.getGroups().size() != 1) {
- return aNode;
- }
- GroupSymbol group = node.getGroups().iterator().next();
- if (!group.isTempTable() && !CoreConstants.SYSTEM_MODEL.equals(metadata.getFullName(metadata.getModelID(group.getMetadataID())))) {
- return aNode;
- }
- List projectSymbols = (List) node.getProperty(NodeConstants.Info.OUTPUT_COLS);
- List<ElementSymbol> acutalColumns = ResolverUtil.resolveElementsInGroup(group, metadata);
- if (projectSymbols.equals(acutalColumns)) {
- return aNode;
- }
- node.setProperty(NodeConstants.Info.OUTPUT_COLS, acutalColumns);
- if (node.getParent() != null && node.getParent().getType() == NodeConstants.Types.PROJECT) {
- //if the parent is already a project, just correcting the output cols is enough
- return aNode;
- }
- ProjectNode pnode = new ProjectNode(getID());
-
- pnode.setSelectSymbols(projectSymbols);
- //if the following cast fails it means that we have a dependent temp table - that is not yet possible
- aNode = (AccessNode)prepareToAdd(node, aNode);
- node.setProperty(NodeConstants.Info.OUTPUT_COLS, projectSymbols);
- pnode.addChild(aNode);
- return pnode;
- }
-
- private RelationalNode prepareToAdd(PlanNode node,
- RelationalNode processNode) {
- // Set the output elements from the plan node
- List cols = (List) node.getProperty(NodeConstants.Info.OUTPUT_COLS);
-
- processNode.setElements(cols);
-
- // Set the Cost Estimates
- Number estimateNodeCardinality = (Number) node.getProperty(NodeConstants.Info.EST_CARDINALITY);
- processNode.setEstimateNodeCardinality(estimateNodeCardinality);
- Number estimateNodeSetSize = (Number) node.getProperty(NodeConstants.Info.EST_SET_SIZE);
- processNode.setEstimateNodeSetSize(estimateNodeSetSize);
- Number estimateDepAccessCardinality = (Number) node.getProperty(NodeConstants.Info.EST_DEP_CARDINALITY);
- processNode.setEstimateDepAccessCardinality(estimateDepAccessCardinality);
- Number estimateDepJoinCost = (Number) node.getProperty(NodeConstants.Info.EST_DEP_JOIN_COST);
- processNode.setEstimateDepJoinCost(estimateDepJoinCost);
- Number estimateJoinCost = (Number) node.getProperty(NodeConstants.Info.EST_JOIN_COST);
- processNode.setEstimateJoinCost(estimateJoinCost);
-
- return processNode;
- }
-
- private String getRoutingName(PlanNode node)
- throws QueryPlannerException, MetaMatrixComponentException {
-
- // Look up connector binding name
- try {
- Object modelID = node.getProperty(NodeConstants.Info.MODEL_ID);
- if(modelID == null || modelID instanceof TempMetadataID) {
- Command command = (Command) node.getProperty(NodeConstants.Info.ATOMIC_REQUEST);
- if(command instanceof StoredProcedure){
- modelID = ((StoredProcedure)command).getModelID();
- }else{
- Collection groups = GroupCollectorVisitor.getGroups(command, true);
- Iterator groupIter = groups.iterator();
- GroupSymbol group = (GroupSymbol) groupIter.next();
-
- modelID = metadata.getModelID(group.getMetadataID());
- }
- }
- String cbName = metadata.getFullName(modelID);
- return cbName;
- } catch(QueryMetadataException e) {
- throw new QueryPlannerException(e, QueryExecPlugin.Util.getString(ErrorMessageKeys.OPTIMIZER_0009));
- }
- }
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/RelationalPlanner.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/RelationalPlanner.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/RelationalPlanner.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,970 +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.query.optimizer.relational;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.teiid.client.plan.Annotation;
-import org.teiid.client.plan.Annotation.Priority;
-import org.teiid.dqp.internal.process.Request;
-import org.teiid.logging.LogConstants;
-import org.teiid.logging.LogManager;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.api.exception.query.QueryMetadataException;
-import com.metamatrix.api.exception.query.QueryParserException;
-import com.metamatrix.api.exception.query.QueryPlannerException;
-import com.metamatrix.api.exception.query.QueryResolverException;
-import com.metamatrix.core.id.IDGenerator;
-import com.metamatrix.query.QueryPlugin;
-import com.metamatrix.query.analysis.AnalysisRecord;
-import com.metamatrix.query.execution.QueryExecPlugin;
-import com.metamatrix.query.mapping.relational.QueryNode;
-import com.metamatrix.query.metadata.QueryMetadataInterface;
-import com.metamatrix.query.metadata.TempMetadataAdapter;
-import com.metamatrix.query.metadata.TempMetadataID;
-import com.metamatrix.query.optimizer.CommandPlanner;
-import com.metamatrix.query.optimizer.QueryOptimizer;
-import com.metamatrix.query.optimizer.capabilities.CapabilitiesFinder;
-import com.metamatrix.query.optimizer.relational.plantree.NodeConstants;
-import com.metamatrix.query.optimizer.relational.plantree.NodeEditor;
-import com.metamatrix.query.optimizer.relational.plantree.NodeFactory;
-import com.metamatrix.query.optimizer.relational.plantree.PlanNode;
-import com.metamatrix.query.optimizer.relational.plantree.NodeConstants.Info;
-import com.metamatrix.query.optimizer.relational.rules.RuleConstants;
-import com.metamatrix.query.parser.QueryParser;
-import com.metamatrix.query.processor.ProcessorPlan;
-import com.metamatrix.query.processor.relational.RelationalPlan;
-import com.metamatrix.query.processor.relational.JoinNode.JoinStrategyType;
-import com.metamatrix.query.resolver.QueryResolver;
-import com.metamatrix.query.resolver.util.BindVariableVisitor;
-import com.metamatrix.query.rewriter.QueryRewriter;
-import com.metamatrix.query.sql.LanguageObject.Util;
-import com.metamatrix.query.sql.lang.Command;
-import com.metamatrix.query.sql.lang.Criteria;
-import com.metamatrix.query.sql.lang.From;
-import com.metamatrix.query.sql.lang.FromClause;
-import com.metamatrix.query.sql.lang.GroupBy;
-import com.metamatrix.query.sql.lang.Insert;
-import com.metamatrix.query.sql.lang.JoinPredicate;
-import com.metamatrix.query.sql.lang.JoinType;
-import com.metamatrix.query.sql.lang.Limit;
-import com.metamatrix.query.sql.lang.Option;
-import com.metamatrix.query.sql.lang.OrderBy;
-import com.metamatrix.query.sql.lang.ProcedureContainer;
-import com.metamatrix.query.sql.lang.Query;
-import com.metamatrix.query.sql.lang.QueryCommand;
-import com.metamatrix.query.sql.lang.Select;
-import com.metamatrix.query.sql.lang.SetQuery;
-import com.metamatrix.query.sql.lang.StoredProcedure;
-import com.metamatrix.query.sql.lang.SubqueryContainer;
-import com.metamatrix.query.sql.lang.SubqueryFromClause;
-import com.metamatrix.query.sql.lang.UnaryFromClause;
-import com.metamatrix.query.sql.proc.CreateUpdateProcedureCommand;
-import com.metamatrix.query.sql.symbol.GroupSymbol;
-import com.metamatrix.query.sql.symbol.Reference;
-import com.metamatrix.query.sql.symbol.SingleElementSymbol;
-import com.metamatrix.query.sql.util.SymbolMap;
-import com.metamatrix.query.sql.visitor.AggregateSymbolCollectorVisitor;
-import com.metamatrix.query.sql.visitor.CorrelatedReferenceCollectorVisitor;
-import com.metamatrix.query.sql.visitor.GroupCollectorVisitor;
-import com.metamatrix.query.sql.visitor.GroupsUsedByElementsVisitor;
-import com.metamatrix.query.sql.visitor.ValueIteratorProviderCollectorVisitor;
-import com.metamatrix.query.util.CommandContext;
-import com.metamatrix.query.util.ErrorMessageKeys;
-import com.metamatrix.query.validator.ValidationVisitor;
-
-/**
- * This class generates a relational plan for query execution. The output of
- * this class is a {@link com.metamatrix.query.optimizer.relational.plantree.PlanNode PlanNode}
- * object - this object then becomes the input to
- * {@link PlanToProcessConverter PlanToProcessConverter}
- * to produce a
- * {@link com.metamatrix.query.processor.relational.RelationalPlan RelationalPlan}.
- */
-public class RelationalPlanner implements CommandPlanner {
-
- private AnalysisRecord analysisRecord;
- private Command parentCommand;
- private IDGenerator idGenerator;
- private CommandContext context;
- private CapabilitiesFinder capFinder;
- private QueryMetadataInterface metadata;
- private PlanHints hints = new PlanHints();
- private Option option;
-
- /**
- * @see com.metamatrix.query.optimizer.CommandPlanner#optimize(com.metamatrix.query.optimizer.CommandTreeNode, java.util.Map, com.metamatrix.query.metadata.QueryMetadataInterface, boolean)
- */
- public ProcessorPlan optimize(
- Command command,
- IDGenerator idGenerator,
- QueryMetadataInterface metadata,
- CapabilitiesFinder capFinder,
- AnalysisRecord analysisRecord, CommandContext context)
- throws
- QueryPlannerException,
- QueryMetadataException,
- MetaMatrixComponentException {
- initialize(command, idGenerator, metadata, capFinder, analysisRecord, context);
-
- boolean debug = analysisRecord.recordDebug();
- if(debug) {
- analysisRecord.println("\n----------------------------------------------------------------------------"); //$NON-NLS-1$
- analysisRecord.println("GENERATE CANONICAL: \n" + command); //$NON-NLS-1$
- }
- PlanNode plan;
- try {
- plan = generatePlan(command);
- } catch (MetaMatrixProcessingException e) {
- throw new QueryPlannerException(e, e.getMessage());
- }
-
- if(debug) {
- analysisRecord.println("\nCANONICAL PLAN: \n" + plan); //$NON-NLS-1$
- }
-
- // Connect ProcessorPlan to SubqueryContainer (if any) of SELECT or PROJECT nodes
- connectSubqueryContainers(plan); //TODO: merge with node creation
-
- // Set top column information on top node
- List<SingleElementSymbol> topCols = Util.deepClone(command.getProjectedSymbols(), SingleElementSymbol.class);
-
- // Build rule set based on hints
- RuleStack rules = RelationalPlanner.buildRules(hints);
-
- // Run rule-based optimizer
- plan = executeRules(rules, plan);
-
- PlanToProcessConverter planToProcessConverter = null;
- if (context != null) {
- planToProcessConverter = context.getPlanToProcessConverter();
- }
- if (planToProcessConverter == null) {
- planToProcessConverter = new PlanToProcessConverter(metadata, idGenerator, analysisRecord, capFinder);
- }
-
- RelationalPlan result = planToProcessConverter.convert(plan);
-
- result.setOutputElements(topCols);
-
- return result;
- }
-
- public void initialize(Command command, IDGenerator idGenerator,
- QueryMetadataInterface metadata, CapabilitiesFinder capFinder,
- AnalysisRecord analysisRecord, CommandContext context) {
- this.parentCommand = command;
- this.idGenerator = idGenerator;
- this.metadata = metadata;
- this.capFinder = capFinder;
- this.analysisRecord = analysisRecord;
- this.context = context;
- }
-
- private void connectSubqueryContainers(PlanNode plan) throws QueryPlannerException, QueryMetadataException, MetaMatrixComponentException {
- Set<GroupSymbol> groupSymbols = getGroupSymbols(plan);
-
- for (PlanNode node : NodeEditor.findAllNodes(plan, NodeConstants.Types.PROJECT | NodeConstants.Types.SELECT | NodeConstants.Types.JOIN)) {
- List<SubqueryContainer> subqueryContainers = node.getSubqueryContainers();
- if (subqueryContainers.isEmpty()){
- continue;
- }
- Set<GroupSymbol> localGroupSymbols = groupSymbols;
- if (node.getType() == NodeConstants.Types.JOIN) {
- localGroupSymbols = getGroupSymbols(node);
- }
- for (SubqueryContainer container : subqueryContainers) {
- ArrayList<Reference> correlatedReferences = new ArrayList<Reference>();
- Command subCommand = container.getCommand();
- ProcessorPlan procPlan = QueryOptimizer.optimizePlan(subCommand, metadata, idGenerator, capFinder, analysisRecord, context);
- subCommand.setProcessorPlan(procPlan);
- CorrelatedReferenceCollectorVisitor.collectReferences(subCommand, localGroupSymbols, correlatedReferences);
- if (!correlatedReferences.isEmpty()) {
- SymbolMap map = new SymbolMap();
- for (Reference reference : correlatedReferences) {
- map.addMapping(reference.getExpression(), reference.getExpression());
- }
- subCommand.setCorrelatedReferences(map);
- }
- }
- node.addGroups(GroupsUsedByElementsVisitor.getGroups(node.getCorrelatedReferenceElements()));
- }
- }
-
- private static Set<GroupSymbol> getGroupSymbols(PlanNode plan) {
- Set<GroupSymbol> groupSymbols = new HashSet<GroupSymbol>();
- for (PlanNode source : NodeEditor.findAllNodes(plan, NodeConstants.Types.SOURCE)) {
- groupSymbols.addAll(source.getGroups());
- }
- return groupSymbols;
- }
-
- /**
- * Distribute and "make (not) dependent" hints specified in the query into the
- * fully resolved query plan. This is done after virtual group resolution so
- * that all groups in the plan are known. The hint is attached to all SOURCE
- * nodes for each group that should be made dependent/not dependent.
- * @param groups List of groups (Strings) to be made dependent
- * @param plan The canonical plan
- */
- private void distributeDependentHints(Collection<String> groups, PlanNode plan, QueryMetadataInterface metadata, NodeConstants.Info hintProperty)
- throws QueryMetadataException, MetaMatrixComponentException {
-
- if(groups == null || groups.isEmpty()) {
- return;
- }
- // Get all source nodes
- List<PlanNode> nodes = NodeEditor.findAllNodes(plan, NodeConstants.Types.SOURCE);
-
- // Walk through each dependent group hint and
- // attach to the correct source node
- for (String groupName : groups) {
- // Walk through nodes and apply hint to all that match group name
- boolean appliedHint = applyHint(nodes, groupName, hintProperty);
-
- if(! appliedHint) {
- //check if it is partial group name
- Collection groupNames = metadata.getGroupsForPartialName(groupName);
- if(groupNames.size() == 1) {
- groupName = (String)groupNames.iterator().next();
- appliedHint = applyHint(nodes, groupName, hintProperty);
- }
-
- if(! appliedHint) {
- String msg = QueryExecPlugin.Util.getString(ErrorMessageKeys.OPTIMIZER_0010, groupName);
- if (this.analysisRecord.recordAnnotations()) {
- this.analysisRecord.addAnnotation(new Annotation(Annotation.HINTS, msg, "ignoring hint", Priority.MEDIUM)); //$NON-NLS-1$
- }
- }
- }
- }
- }
-
- private static boolean applyHint(List<PlanNode> nodes, String groupName, NodeConstants.Info hintProperty) {
- boolean appliedHint = false;
- for (PlanNode node : nodes) {
- GroupSymbol nodeGroup = node.getGroups().iterator().next();
-
- String sDefinition = nodeGroup.getDefinition();
-
- if (nodeGroup.getName().equalsIgnoreCase(groupName)
- || (sDefinition != null && sDefinition.equalsIgnoreCase(groupName)) ) {
- node.setProperty(hintProperty, Boolean.TRUE);
- appliedHint = true;
- }
- }
- return appliedHint;
- }
-
- public static RuleStack buildRules(PlanHints hints) {
- RuleStack rules = new RuleStack();
-
- rules.push(RuleConstants.COLLAPSE_SOURCE);
-
- rules.push(RuleConstants.PLAN_SORTS);
-
- if(hints.hasJoin) {
- rules.push(RuleConstants.IMPLEMENT_JOIN_STRATEGY);
- }
-
- rules.push(RuleConstants.ASSIGN_OUTPUT_ELEMENTS);
-
- rules.push(RuleConstants.CALCULATE_COST);
-
- if (hints.hasLimit) {
- rules.push(RuleConstants.PUSH_LIMIT);
- }
- if (hints.hasJoin || hints.hasCriteria) {
- rules.push(RuleConstants.MERGE_CRITERIA);
- }
- if (hints.hasRelationalProc) {
- rules.push(RuleConstants.PLAN_PROCEDURES);
- }
- if(hints.hasJoin) {
- rules.push(RuleConstants.CHOOSE_DEPENDENT);
- }
- if(hints.hasAggregates) {
- rules.push(RuleConstants.PUSH_AGGREGATES);
- }
- if(hints.hasJoin) {
- rules.push(RuleConstants.CHOOSE_JOIN_STRATEGY);
- rules.push(RuleConstants.RAISE_ACCESS);
- //after planning the joins, let the criteria be pushed back into place
- rules.push(RuleConstants.PUSH_SELECT_CRITERIA);
- rules.push(RuleConstants.PLAN_JOINS);
- }
- rules.push(RuleConstants.RAISE_ACCESS);
- if (hints.hasSetQuery) {
- rules.push(RuleConstants.PLAN_UNIONS);
- }
- if(hints.hasCriteria || hints.hasJoin) {
- //after copy criteria, it is no longer necessary to have phantom criteria nodes, so do some cleaning
- rules.push(RuleConstants.CLEAN_CRITERIA);
- }
- if(hints.hasJoin) {
- rules.push(RuleConstants.COPY_CRITERIA);
- rules.push(RuleConstants.PUSH_NON_JOIN_CRITERIA);
- }
- if(hints.hasVirtualGroups) {
- rules.push(RuleConstants.MERGE_VIRTUAL);
- }
- if(hints.hasCriteria) {
- rules.push(RuleConstants.PUSH_SELECT_CRITERIA);
- }
- if (hints.hasJoin && hints.hasOptionalJoin) {
- rules.push(RuleConstants.REMOVE_OPTIONAL_JOINS);
- }
- rules.push(RuleConstants.PLACE_ACCESS);
- return rules;
- }
-
- private PlanNode executeRules(RuleStack rules, PlanNode plan)
- throws QueryPlannerException, QueryMetadataException, MetaMatrixComponentException {
-
- boolean debug = analysisRecord.recordDebug();
- while(! rules.isEmpty()) {
- if(debug) {
- analysisRecord.println("\n============================================================================"); //$NON-NLS-1$
- }
-
- OptimizerRule rule = rules.pop();
- if(debug) {
- analysisRecord.println("EXECUTING " + rule); //$NON-NLS-1$
- }
-
- plan = rule.execute(plan, metadata, capFinder, rules, analysisRecord, context);
- if(debug) {
- analysisRecord.println("\nAFTER: \n" + plan); //$NON-NLS-1$
- }
- }
- return plan;
- }
-
- public PlanNode generatePlan(Command cmd) throws MetaMatrixComponentException, MetaMatrixProcessingException {
- //cascade the option clause nocache
- Option savedOption = option;
- option = cmd.getOption();
- if (option == null) {
- if (savedOption != null) {
- option = savedOption;
- }
- } else if (savedOption != null && savedOption.isNoCache()) { //merge no cache settings
- if (savedOption.getNoCacheGroups() == null || savedOption.getNoCacheGroups().isEmpty()) {
- if (option.getNoCacheGroups() != null) {
- option.getNoCacheGroups().clear(); // full no cache
- }
- } else if (option.getNoCacheGroups() != null && !option.getNoCacheGroups().isEmpty()) {
- for (String noCache : savedOption.getNoCacheGroups()) {
- option.addNoCacheGroup(noCache); // only groups
- }
- }
- option.setNoCache(true);
- }
-
- PlanNode result = null;
- switch (cmd.getType()) {
- case Command.TYPE_QUERY:
- result = createQueryPlan((QueryCommand)cmd);
- break;
- case Command.TYPE_INSERT:
- case Command.TYPE_UPDATE:
- case Command.TYPE_DELETE:
- case Command.TYPE_CREATE:
- case Command.TYPE_DROP:
- result = createUpdatePlan(cmd);
- break;
- case Command.TYPE_STORED_PROCEDURE:
- result = createStoredProcedurePlan((StoredProcedure)cmd);
- break;
- default:
- throw new AssertionError("Invalid command type"); //$NON-NLS-1$
- }
- // Distribute make dependent hints as necessary
- if (cmd.getOption() != null) {
- if(cmd.getOption().getDependentGroups() != null) {
- distributeDependentHints(cmd.getOption().getDependentGroups(), result, metadata, NodeConstants.Info.MAKE_DEP);
- }
- if (cmd.getOption().getNotDependentGroups() != null) {
- distributeDependentHints(cmd.getOption().getNotDependentGroups(), result, metadata, NodeConstants.Info.MAKE_NOT_DEP);
- }
- }
- this.option = savedOption;
- return result;
- }
-
- PlanNode createUpdatePlan(Command command) throws MetaMatrixComponentException, MetaMatrixProcessingException {
- // Create top project node - define output columns for stored query / procedure
- PlanNode projectNode = NodeFactory.getNewNode(NodeConstants.Types.PROJECT);
-
- Collection<GroupSymbol> groups = GroupCollectorVisitor.getGroups(command, false);
- projectNode.addGroups(groups);
-
- // Set output columns
- List<SingleElementSymbol> cols = command.getProjectedSymbols();
- projectNode.setProperty(NodeConstants.Info.PROJECT_COLS, cols);
-
- // Define source of data for stored query / procedure
- PlanNode sourceNode = NodeFactory.getNewNode(NodeConstants.Types.SOURCE);
- sourceNode.setProperty(NodeConstants.Info.ATOMIC_REQUEST, command);
- sourceNode.setProperty(NodeConstants.Info.VIRTUAL_COMMAND, command);
- if (command instanceof ProcedureContainer) {
- ProcedureContainer container = (ProcedureContainer)command;
- addNestedProcedure(sourceNode, container);
- }
- sourceNode.addGroups(groups);
-
- attachLast(projectNode, sourceNode);
-
- //for INTO query, attach source and project nodes
- if(command instanceof Insert){
- Insert insert = (Insert)command;
- if (insert.getQueryExpression() != null) {
- PlanNode plan = generatePlan(insert.getQueryExpression());
- attachLast(sourceNode, plan);
- mergeTempMetadata(insert.getQueryExpression(), insert);
- projectNode.setProperty(NodeConstants.Info.INTO_GROUP, insert.getGroup());
- }
- }
-
- return projectNode;
- }
-
- private void addNestedProcedure(PlanNode sourceNode,
- ProcedureContainer container) throws MetaMatrixComponentException,
- QueryMetadataException, MetaMatrixProcessingException {
- //plan any subqueries in criteria/parameters/values
- for (SubqueryContainer subqueryContainer : ValueIteratorProviderCollectorVisitor.getValueIteratorProviders(container)) {
- ProcessorPlan plan = QueryOptimizer.optimizePlan(subqueryContainer.getCommand(), metadata, null, capFinder, analysisRecord, context);
- subqueryContainer.getCommand().setProcessorPlan(plan);
- }
-
- String cacheString = "transformation/" + container.getClass().getSimpleName(); //$NON-NLS-1$
- Command c = (Command)metadata.getFromMetadataCache(container.getGroup().getMetadataID(), cacheString);
- if (c == null) {
- c = QueryResolver.expandCommand(container, metadata, analysisRecord);
- if (c != null) {
- Request.validateWithVisitor(new ValidationVisitor(), metadata, c);
- metadata.addToMetadataCache(container.getGroup().getMetadataID(), cacheString, c.clone());
- }
- } else {
- c = (Command)c.clone();
- if (c instanceof CreateUpdateProcedureCommand) {
- ((CreateUpdateProcedureCommand)c).setUserCommand(container);
- }
- }
- if (c != null) {
- c = QueryRewriter.rewrite(c, metadata, context);
- addNestedCommand(sourceNode, container.getGroup(), container, c, false);
- }
- }
-
- PlanNode createStoredProcedurePlan(StoredProcedure storedProc) throws QueryMetadataException, MetaMatrixComponentException, MetaMatrixProcessingException {
- // Create top project node - define output columns for stored query / procedure
- PlanNode projectNode = NodeFactory.getNewNode(NodeConstants.Types.PROJECT);
-
- // Set output columns
- List cols = storedProc.getProjectedSymbols();
- projectNode.setProperty(NodeConstants.Info.PROJECT_COLS, cols);
-
- // Define source of data for stored query / procedure
- PlanNode sourceNode = NodeFactory.getNewNode(NodeConstants.Types.SOURCE);
- sourceNode.setProperty(NodeConstants.Info.VIRTUAL_COMMAND, storedProc);
- addNestedProcedure(sourceNode, storedProc);
-
- hints.hasRelationalProc |= storedProc.isProcedureRelational();
-
- // Set group on source node
- sourceNode.addGroup(storedProc.getGroup());
-
- attachLast(projectNode, sourceNode);
-
- return projectNode;
- }
-
- PlanNode createQueryPlan(QueryCommand command)
- throws MetaMatrixComponentException, MetaMatrixProcessingException {
- // Build canonical plan
- PlanNode node = null;
- if(command instanceof Query) {
- node = createQueryPlan((Query) command);
- } else {
- hints.hasSetQuery = true;
- SetQuery query = (SetQuery)command;
- PlanNode leftPlan = createQueryPlan( query.getLeftQuery());
- PlanNode rightPlan = createQueryPlan( query.getRightQuery());
-
- node = NodeFactory.getNewNode(NodeConstants.Types.SET_OP);
- node.setProperty(NodeConstants.Info.SET_OPERATION, query.getOperation());
- node.setProperty(NodeConstants.Info.USE_ALL, query.isAll());
-
- attachLast(node, leftPlan);
- attachLast(node, rightPlan);
- }
-
- if(command.getOrderBy() != null) {
- node = attachSorting(node, command.getOrderBy());
- }
-
- if (command.getLimit() != null) {
- node = attachTupleLimit(node, command.getLimit(), hints);
- }
-
- return node;
- }
-
- private PlanNode createQueryPlan(Query query)
- throws QueryMetadataException, MetaMatrixComponentException, MetaMatrixProcessingException {
-
- PlanNode plan = null;
-
- if(query.getFrom() != null){
- FromClause fromClause = mergeClauseTrees(query.getFrom());
-
- PlanNode dummyRoot = new PlanNode();
-
- buildTree(fromClause, dummyRoot);
-
- plan = dummyRoot.getFirstChild();
-
- hints.hasJoin |= plan.getType() == NodeConstants.Types.JOIN;
-
- // Attach criteria on top
- if(query.getCriteria() != null) {
- plan = attachCriteria(plan, query.getCriteria(), false);
- hints.hasCriteria = true;
- }
-
- // Attach grouping node on top
- if(query.getGroupBy() != null || query.getHaving() != null || !AggregateSymbolCollectorVisitor.getAggregates(query.getSelect(), false).isEmpty()) {
- plan = attachGrouping(plan, query, hints);
- }
-
- // Attach having criteria node on top
- if(query.getHaving() != null) {
- plan = attachCriteria(plan, query.getHaving(), true);
- hints.hasCriteria = true;
- }
-
- }
-
- // Attach project on top
- plan = attachProject(plan, query.getSelect());
-
- // Attach dup removal on top
- if(query.getSelect().isDistinct()) {
- plan = attachDupRemoval(plan);
- }
-
- return plan;
- }
-
- /**
- * Merges the from clause into a single join predicate if there are more than 1 from clauses
- */
- private static FromClause mergeClauseTrees(From from) {
- List clauses = from.getClauses();
-
- while (clauses.size() > 1) {
- FromClause first = (FromClause)from.getClauses().remove(0);
- FromClause second = (FromClause)from.getClauses().remove(0);
- JoinPredicate jp = new JoinPredicate(first, second, JoinType.JOIN_CROSS);
- clauses.add(0, jp);
- }
-
- return (FromClause)clauses.get(0);
- }
-
- /**
- * Build a join plan based on the structure in a clause. These structures should be
- * essentially the same tree, but with different objects and details.
- * @param clause Clause to build tree from
- * @param parent Parent node to attach join node structure to
- * @param sourceMap Map of group to source node, used for connecting children to join plan
- * @param markJoinsInternal Flag saying whether joins built in this method should be marked
- * as internal
- * @throws MetaMatrixComponentException
- * @throws QueryMetadataException
- * @throws MetaMatrixProcessingException
- */
- void buildTree(FromClause clause, PlanNode parent)
- throws QueryMetadataException, MetaMatrixComponentException, MetaMatrixProcessingException {
-
- PlanNode node = null;
-
- if(clause instanceof UnaryFromClause) {
- // No join required
- UnaryFromClause ufc = (UnaryFromClause)clause;
- GroupSymbol group = ufc.getGroup();
- if (metadata.isVirtualGroup(group.getMetadataID())) {
- hints.hasVirtualGroups = true;
- }
- Command nestedCommand = ufc.getExpandedCommand();
- if (nestedCommand == null && !group.isTempGroupSymbol() && !group.isProcedure()
- && (!(group.getMetadataID() instanceof TempMetadataID) || metadata.getVirtualPlan(group.getMetadataID()) != null)
- && (metadata.isVirtualGroup(group.getMetadataID()))) {
- //must be a view layer
- nestedCommand = resolveVirtualGroup(group);
- }
- node = NodeFactory.getNewNode(NodeConstants.Types.SOURCE);
- node.addGroup(group);
- if (nestedCommand != null) {
- addNestedCommand(node, group, nestedCommand, nestedCommand, true);
- }
- parent.addLastChild(node);
- } else if(clause instanceof JoinPredicate) {
- JoinPredicate jp = (JoinPredicate) clause;
-
- // Set up new join node corresponding to this join predicate
- node = NodeFactory.getNewNode(NodeConstants.Types.JOIN);
- node.setProperty(NodeConstants.Info.JOIN_TYPE, jp.getJoinType());
- node.setProperty(NodeConstants.Info.JOIN_STRATEGY, JoinStrategyType.NESTED_LOOP);
- node.setProperty(NodeConstants.Info.JOIN_CRITERIA, jp.getJoinCriteria());
-
- if (jp.getJoinType() == JoinType.JOIN_LEFT_OUTER) {
- hints.hasOptionalJoin = true;
- }
-
- // Attach join node to parent
- parent.addLastChild(node);
-
- // Handle each child
- FromClause[] clauses = new FromClause[] {jp.getLeftClause(), jp.getRightClause()};
- for(int i=0; i<2; i++) {
- buildTree(clauses[i], node);
-
- // Add groups to joinNode
- for (PlanNode child : node.getChildren()) {
- node.addGroups(child.getGroups());
- }
- }
- } else if (clause instanceof SubqueryFromClause) {
- SubqueryFromClause sfc = (SubqueryFromClause)clause;
- GroupSymbol group = sfc.getGroupSymbol();
- Command nestedCommand = sfc.getCommand();
- node = NodeFactory.getNewNode(NodeConstants.Types.SOURCE);
- node.addGroup(group);
- addNestedCommand(node, group, nestedCommand, nestedCommand, true);
- hints.hasVirtualGroups = true;
- parent.addLastChild(node);
- }
-
- if (clause.isOptional()) {
- node.setProperty(NodeConstants.Info.IS_OPTIONAL, Boolean.TRUE);
- hints.hasOptionalJoin = true;
- }
-
- if (clause.isMakeDep()) {
- node.setProperty(NodeConstants.Info.MAKE_DEP, Boolean.TRUE);
- } else if (clause.isMakeNotDep()) {
- node.setProperty(NodeConstants.Info.MAKE_NOT_DEP, Boolean.TRUE);
- }
- }
-
- private void addNestedCommand(PlanNode node,
- GroupSymbol group, Command nestedCommand, Command toPlan, boolean merge) throws MetaMatrixComponentException, QueryMetadataException, MetaMatrixProcessingException {
- if (nestedCommand instanceof QueryCommand) {
- //remove unnecessary order by
- QueryCommand queryCommand = (QueryCommand)nestedCommand;
- if (queryCommand.getLimit() == null) {
- queryCommand.setOrderBy(null);
- }
- }
- node.setProperty(NodeConstants.Info.NESTED_COMMAND, nestedCommand);
-
- if (merge && nestedCommand instanceof Query && QueryResolver.isXMLQuery((Query)nestedCommand, metadata)) {
- merge = false;
- }
-
- if (merge) {
- mergeTempMetadata(nestedCommand, parentCommand);
- PlanNode childRoot = generatePlan(nestedCommand);
- node.addFirstChild(childRoot);
- List<SingleElementSymbol> projectCols = nestedCommand.getProjectedSymbols();
- node.setProperty(NodeConstants.Info.SYMBOL_MAP, SymbolMap.createSymbolMap(group, projectCols, metadata));
- } else {
- QueryMetadataInterface actualMetadata = metadata;
- if (actualMetadata instanceof TempMetadataAdapter) {
- actualMetadata = ((TempMetadataAdapter)metadata).getMetadata();
- }
- ProcessorPlan plan = QueryOptimizer.optimizePlan(toPlan, actualMetadata, null, capFinder, analysisRecord, context);
- node.setProperty(NodeConstants.Info.PROCESSOR_PLAN, plan);
- }
- }
-
- /**
- * Attach all criteria above the join nodes. The optimizer will push these
- * criteria down to the appropriate source.
- * @param plan Existing plan, which joins all source groups
- * @param criteria Criteria from query
- * @return Updated tree
- */
- private static PlanNode attachCriteria(PlanNode plan, Criteria criteria, boolean isHaving) {
- List<Criteria> crits = Criteria.separateCriteriaByAnd(criteria);
-
- for (Criteria crit : crits) {
- PlanNode critNode = createSelectNode(crit, isHaving);
- attachLast(critNode, plan);
- plan = critNode;
- }
-
- return plan;
- }
-
- public static PlanNode createSelectNode(final Criteria crit, boolean isHaving) {
- PlanNode critNode = NodeFactory.getNewNode(NodeConstants.Types.SELECT);
- critNode.setProperty(NodeConstants.Info.SELECT_CRITERIA, crit);
- if (isHaving && !AggregateSymbolCollectorVisitor.getAggregates(crit, false).isEmpty()) {
- critNode.setProperty(NodeConstants.Info.IS_HAVING, Boolean.TRUE);
- }
- // Add groups to crit node
- critNode.addGroups(GroupsUsedByElementsVisitor.getGroups(crit));
- critNode.addGroups(GroupsUsedByElementsVisitor.getGroups(critNode.getCorrelatedReferenceElements()));
- return critNode;
- }
-
- /**
- * Attach a grouping node at top of tree.
- * @param plan Existing plan
- * @param groupBy Group by clause, which may be null
- * @return Updated plan
- */
- private static PlanNode attachGrouping(PlanNode plan, Query query, PlanHints hints) {
- PlanNode groupNode = NodeFactory.getNewNode(NodeConstants.Types.GROUP);
-
- GroupBy groupBy = query.getGroupBy();
- if(groupBy != null) {
- groupNode.setProperty(NodeConstants.Info.GROUP_COLS, groupBy.getSymbols());
- groupNode.addGroups(GroupsUsedByElementsVisitor.getGroups(groupBy));
- }
-
- attachLast(groupNode, plan);
-
- // Mark in hints
- hints.hasAggregates = true;
-
- return groupNode;
- }
-
- /**
- * Attach SORT node at top of tree. The SORT may be pushed down to a source (or sources)
- * if possible by the optimizer.
- * @param plan Existing plan
- * @param orderBy Sort description from the query
- * @return Updated plan
- */
- private static PlanNode attachSorting(PlanNode plan, OrderBy orderBy) {
- PlanNode sortNode = NodeFactory.getNewNode(NodeConstants.Types.SORT);
-
- sortNode.setProperty(NodeConstants.Info.SORT_ORDER, orderBy);
- if (orderBy.hasUnrelated()) {
- sortNode.setProperty(Info.UNRELATED_SORT, true);
- }
- sortNode.addGroups(GroupsUsedByElementsVisitor.getGroups(orderBy));
-
- attachLast(sortNode, plan);
- return sortNode;
- }
-
- private static PlanNode attachTupleLimit(PlanNode plan, Limit limit, PlanHints hints) {
- hints.hasLimit = true;
- PlanNode limitNode = NodeFactory.getNewNode(NodeConstants.Types.TUPLE_LIMIT);
-
- boolean attach = false;
- if (limit.getOffset() != null) {
- limitNode.setProperty(NodeConstants.Info.OFFSET_TUPLE_COUNT, limit.getOffset());
- attach = true;
- }
- if (limit.getRowLimit() != null) {
- limitNode.setProperty(NodeConstants.Info.MAX_TUPLE_LIMIT, limit.getRowLimit());
- attach = true;
- }
- if (attach) {
- attachLast(limitNode, plan);
- plan = limitNode;
- }
- return plan;
- }
-
- /**
- * Attach DUP_REMOVE node at top of tree. The DUP_REMOVE may be pushed down
- * to a source (or sources) if possible by the optimizer.
- * @param plan Existing plan
- * @return Updated plan
- */
- private static PlanNode attachDupRemoval(PlanNode plan) {
- PlanNode dupNode = NodeFactory.getNewNode(NodeConstants.Types.DUP_REMOVE);
- attachLast(dupNode, plan);
- return dupNode;
- }
-
- private static PlanNode attachProject(PlanNode plan, Select select) {
- PlanNode projectNode = NodeFactory.getNewNode(NodeConstants.Types.PROJECT);
- projectNode.setProperty(NodeConstants.Info.PROJECT_COLS, select.getProjectedSymbols());
-
- // Set groups
- projectNode.addGroups(GroupsUsedByElementsVisitor.getGroups(select));
-
- attachLast(projectNode, plan);
- return projectNode;
- }
-
- static final void attachLast(PlanNode parent, PlanNode child) {
- if(child != null) {
- parent.addLastChild(child);
- }
- }
-
- /**
- * Adds temp metadata (if any) of child command to temp metadata
- * (if any) of parent command.
- * @param childCommand
- * @param parentCommand
- */
- static void mergeTempMetadata(
- Command childCommand,
- Command parentCommand) {
- Map childTempMetadata = childCommand.getTemporaryMetadata();
- if (childTempMetadata != null && !childTempMetadata.isEmpty()){
- // Add to parent temp metadata
- Map parentTempMetadata = parentCommand.getTemporaryMetadata();
- if (parentTempMetadata == null){
- parentCommand.setTemporaryMetadata(new HashMap(childTempMetadata));
- } else {
- parentTempMetadata.putAll(childTempMetadata);
- }
- }
- }
-
- private Command resolveVirtualGroup(GroupSymbol virtualGroup)
- throws QueryMetadataException, MetaMatrixComponentException, MetaMatrixProcessingException {
-
- QueryNode qnode = null;
-
- Object metadataID = virtualGroup.getMetadataID();
- boolean noCache = false;
- boolean isMaterializedGroup = metadata.hasMaterialization(metadataID);
- String cacheString = "select"; //$NON-NLS-1$
- if( isMaterializedGroup) {
- noCache = isNoCacheGroup(metadata, metadataID, option);
- if(noCache){
- //not use cache
- qnode = metadata.getVirtualPlan(metadataID);
- String matTableName = metadata.getFullName(metadata.getMaterialization(metadataID));
- recordMaterializationTableAnnotation(virtualGroup, analysisRecord, matTableName, "SimpleQueryResolver.materialized_table_not_used"); //$NON-NLS-1$
- }else{
- // Default query for a materialized group - go to cached table
- String groupName = metadata.getFullName(metadataID);
- String matTableName = metadata.getFullName(metadata.getMaterialization(metadataID));
- qnode = new QueryNode(groupName, "SELECT * FROM " + matTableName); //$NON-NLS-1$
- cacheString = "matview"; //$NON-NLS-1$
- recordMaterializationTableAnnotation(virtualGroup, analysisRecord, matTableName, "SimpleQueryResolver.Query_was_redirected_to_Mat_table"); //$NON-NLS-1$
- }
- } else {
- // Not a materialized view - query the primary transformation
- qnode = metadata.getVirtualPlan(metadataID);
- }
-
- Command result = (Command)metadata.getFromMetadataCache(virtualGroup.getMetadataID(), "transformation/" + cacheString); //$NON-NLS-1$
- if (result != null) {
- result = (Command)result.clone();
- } else {
- //parse, resolve, validate
- result = convertToSubquery(qnode, metadata);
- QueryResolver.resolveCommand(result, Collections.EMPTY_MAP, metadata, analysisRecord);
- Request.validateWithVisitor(new ValidationVisitor(), metadata, result);
- metadata.addToMetadataCache(virtualGroup.getMetadataID(), "transformation/" + cacheString, result.clone()); //$NON-NLS-1$
- }
- return QueryRewriter.rewrite(result, metadata, context);
- }
-
- public static boolean isNoCacheGroup(QueryMetadataInterface metadata,
- Object metadataID,
- Option option) throws QueryMetadataException,
- MetaMatrixComponentException {
- if(option == null || !option.isNoCache()){
- return false;
- }
- if(option.getNoCacheGroups() == null || option.getNoCacheGroups().isEmpty()){
- //only OPTION NOCACHE, no group specified
- return true;
- }
- for (String groupName : option.getNoCacheGroups()) {
- try {
- Object noCacheGroupID = metadata.getGroupID(groupName);
- if(metadataID.equals(noCacheGroupID)){
- return true;
- }
- } catch (QueryMetadataException e) {
- //log that an unknown groups was used in the no cache
- LogManager.logWarning(LogConstants.CTX_QUERY_RESOLVER, e, QueryPlugin.Util.getString("SimpleQueryResolver.unknown_group_in_nocache", groupName)); //$NON-NLS-1$
- }
- }
- return false;
- }
-
- private static void recordMaterializationTableAnnotation(GroupSymbol virtualGroup,
- AnalysisRecord analysis,
- String matTableName, String msg) {
- if ( analysis.recordAnnotations() ) {
- Object[] params = new Object[] {virtualGroup, matTableName};
- Annotation annotation = new Annotation(Annotation.MATERIALIZED_VIEW,
- QueryPlugin.Util.getString(msg, params),
- null,
- Priority.LOW);
- analysis.addAnnotation(annotation);
- }
- }
-
- private static Command convertToSubquery(QueryNode qnode, QueryMetadataInterface metadata)
- throws QueryResolverException, MetaMatrixComponentException {
-
- // Parse this node's command
- Command command = qnode.getCommand();
-
- if (command == null) {
- try {
- command = QueryParser.getQueryParser().parseCommand(qnode.getQuery());
- } catch(QueryParserException e) {
- throw new QueryResolverException(e, ErrorMessageKeys.RESOLVER_0011, QueryPlugin.Util.getString(ErrorMessageKeys.RESOLVER_0011, qnode.getGroupName()));
- }
-
- //Handle bindings and references
- List bindings = qnode.getBindings();
- if (bindings != null){
- BindVariableVisitor.bindReferences(command, bindings, metadata);
- }
- }
-
- return command;
- }
-
-}
\ No newline at end of file
Deleted: trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/RuleStack.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/RuleStack.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/RuleStack.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,67 +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.query.optimizer.relational;
-
-import java.util.LinkedList;
-
-public class RuleStack {
-
- private LinkedList<OptimizerRule> rules = new LinkedList<OptimizerRule>();
-
- public void push(OptimizerRule rule) {
- rules.addFirst(rule);
- }
-
- public void addLast(OptimizerRule rule) {
- rules.addLast(rule);
- }
-
- public OptimizerRule pop() {
- if(rules.isEmpty()) {
- return null;
- }
- return rules.removeFirst();
- }
-
- public boolean isEmpty() {
- return rules.isEmpty();
- }
-
- public int size() {
- return rules.size();
- }
-
- /**
- * Remove all occurrences of this rule in the stack
- * @param rule The rule to remove
- * @since 4.2
- */
- public void remove(OptimizerRule rule) {
- while(rules.remove(rule)) {}
- }
-
- public boolean contains(OptimizerRule rule) {
- return rules.contains(rule);
- }
-
-}
\ No newline at end of file
Deleted: trunk/engine/src/main/java/com/metamatrix/query/processor/BatchCollector.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/processor/BatchCollector.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/processor/BatchCollector.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,111 +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.query.processor;
-
-import java.util.List;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.common.buffer.BlockedException;
-import com.metamatrix.common.buffer.TupleBatch;
-import com.metamatrix.common.buffer.TupleBuffer;
-
-public class BatchCollector {
-
- public interface BatchProducer {
- /**
- * Get a batch of results or possibly an Exception.
- * @return Batch of results
- * @throws BlockedException indicating next batch is not available yet
- * @throws MetaMatrixComponentException for non-business rule exception
- * @throws MetaMatrixProcessingException for business rule exception, related
- * to user input or modeling
- */
- TupleBatch nextBatch() throws BlockedException, MetaMatrixComponentException, MetaMatrixProcessingException;
-
- /**
- * Get list of resolved elements describing output columns for this plan.
- * @return List of SingleElementSymbol
- */
- List getOutputElements();
- }
-
- public interface BatchHandler {
- boolean batchProduced(TupleBatch batch) throws MetaMatrixProcessingException, MetaMatrixComponentException;
- }
-
- private BatchProducer sourceNode;
- private BatchHandler batchHandler;
-
- private boolean done = false;
- private TupleBuffer buffer;
-
- public BatchCollector(BatchProducer sourceNode, TupleBuffer buffer) {
- this.sourceNode = sourceNode;
- this.buffer = buffer;
- }
-
- public TupleBuffer collectTuples() throws MetaMatrixComponentException, MetaMatrixProcessingException {
- TupleBatch batch = null;
- while(!done) {
- batch = sourceNode.nextBatch();
-
- flushBatch(batch);
-
- // Check for termination condition
- if(batch.getTerminationFlag()) {
- done = true;
- buffer.close();
- break;
- }
- }
- return buffer;
- }
-
- public TupleBuffer getTupleBuffer() {
- return buffer;
- }
-
- /**
- * Flush the batch by giving it to the buffer manager.
- */
- private void flushBatch(TupleBatch batch) throws MetaMatrixComponentException, MetaMatrixProcessingException {
- boolean add = true;
- if (this.batchHandler != null && (batch.getRowCount() > 0 || batch.getTerminationFlag())) {
- add = this.batchHandler.batchProduced(batch);
- }
- // Add batch
- if(batch.getRowCount() > 0 || batch.getTerminationFlag()) {
- buffer.addTupleBatch(batch, add);
- }
- }
-
- public void setBatchHandler(BatchHandler batchHandler) {
- this.batchHandler = batchHandler;
- }
-
- public int getRowCount() {
- return buffer.getRowCount();
- }
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/processor/BatchIterator.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/processor/BatchIterator.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/processor/BatchIterator.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,190 +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.query.processor;
-
-import java.util.List;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.common.buffer.IndexedTupleSource;
-import com.metamatrix.common.buffer.TupleBatch;
-import com.metamatrix.common.buffer.TupleBuffer;
-import com.metamatrix.query.processor.BatchCollector.BatchProducer;
-import com.metamatrix.query.sql.symbol.SingleElementSymbol;
-
-/**
- * A BatchIterator provides an iterator interface to a {@link BatchProducer}.
- * By setting {@link #setBuffer(TupleBuffer)},
- * the iterator can copy on read into a {@link TupleBuffer} for repeated reading.
- *
- * Note that the saveOnMark buffering only lasts until the next mark is set.
- */
-public class BatchIterator implements IndexedTupleSource {
-
- private final BatchProducer source;
- private boolean saveOnMark;
- private TupleBuffer buffer;
- private IndexedTupleSource bufferedTs;
-
- public BatchIterator(BatchProducer source) {
- this.source = source;
- }
-
- private boolean done;
- private int currentRow = 1;
- private TupleBatch currentBatch;
- private List currentTuple;
- private int bufferedIndex;
- private boolean mark;
-
- @Override
- public boolean hasNext() throws MetaMatrixComponentException,
- MetaMatrixProcessingException {
-
- if (done && this.bufferedTs == null) {
- return false;
- }
- while (currentTuple == null) {
- if (currentBatch == null) {
- if (this.bufferedTs != null) {
- if (this.currentRow <= this.bufferedIndex) {
- this.bufferedTs.setPosition(currentRow++);
- this.currentTuple = this.bufferedTs.nextTuple();
- return true;
- }
- if (done) {
- return false;
- }
- }
- currentBatch = this.source.nextBatch();
- if (buffer != null && !saveOnMark) {
- buffer.addTupleBatch(currentBatch, true);
- bufferedIndex = currentBatch.getEndRow();
- }
- }
-
- if (currentBatch.containsRow(currentRow)) {
- this.currentTuple = currentBatch.getTuple(currentRow++);
- } else {
- done = currentBatch.getTerminationFlag();
- currentBatch = null;
- if (done) {
- return false;
- }
- }
- }
- return true;
- }
-
- public void setBuffer(TupleBuffer buffer, boolean saveOnMark) {
- this.buffer = buffer;
- this.bufferedTs = this.buffer.createIndexedTupleSource();
- this.saveOnMark = saveOnMark;
- }
-
- @Override
- public void closeSource() {
- if (this.buffer != null) {
- this.buffer.remove();
- this.buffer = null;
- }
- }
-
- @Override
- public List<SingleElementSymbol> getSchema() {
- return source.getOutputElements();
- }
-
- @Override
- public List<?> nextTuple() throws MetaMatrixComponentException,
- MetaMatrixProcessingException {
- if (currentTuple == null && !hasNext()) {
- return null;
- }
- List result = currentTuple;
- currentTuple = null;
- if (mark && saveOnMark && this.currentRow - 1 > this.buffer.getRowCount()) {
- this.buffer.setRowCount(this.currentRow - 2);
- this.buffer.addTuple(result);
- this.bufferedIndex = this.currentRow - 1;
- }
- return result;
- }
-
- public void reset() {
- if (this.bufferedTs != null) {
- mark = false;
- this.bufferedTs.reset();
- if (this.currentRow != this.bufferedTs.getCurrentIndex()) {
- this.currentRow = this.bufferedTs.getCurrentIndex();
- this.currentTuple = null;
- }
- return;
- }
- throw new UnsupportedOperationException();
- }
-
- public void mark() {
- if (this.bufferedTs != null) {
- this.bufferedTs.mark();
- if (saveOnMark && this.currentRow > this.bufferedIndex) {
- this.buffer.purge();
- this.bufferedIndex = 0;
- }
- }
- mark = true;
- }
-
- @Override
- public int getCurrentIndex() {
- return currentRow;
- }
-
- public void setPosition(int position) {
- if (this.bufferedTs != null) {
- this.bufferedTs.setPosition(position);
- this.currentRow = position;
- }
- if (this.currentBatch == null && position < this.currentRow) {
- throw new UnsupportedOperationException("Backwards positioning is not allowed"); //$NON-NLS-1$
- }
- this.currentRow = position;
- this.currentTuple = null;
- if (this.currentBatch == null || !this.currentBatch.containsRow(position)) {
- this.currentBatch = null;
- }
- }
-
- @Override
- public int available() {
- if (this.currentRow <= this.bufferedIndex) {
- this.bufferedTs.setPosition(this.currentRow);
- return this.bufferedTs.available();
- }
- if (currentBatch != null) {
- return currentBatch.getEndRow() - currentRow + 1;
- }
- return 0;
- }
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/processor/CollectionTupleSource.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/processor/CollectionTupleSource.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/processor/CollectionTupleSource.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,78 +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.query.processor;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-import com.metamatrix.common.buffer.TupleSource;
-import com.metamatrix.query.sql.lang.Command;
-import com.metamatrix.query.sql.symbol.SingleElementSymbol;
-
-public class CollectionTupleSource implements TupleSource {
-
- private Iterator<? extends List<?>> tuples;
- private List<SingleElementSymbol> schema;
-
- public static CollectionTupleSource createUpdateCountTupleSource(int count) {
- return new CollectionTupleSource(Arrays.asList(Arrays.asList(count)).iterator(), Command.getUpdateCommandSymbol());
- }
-
- public static CollectionTupleSource createNullTupleSource(List<SingleElementSymbol> schema) {
- return new CollectionTupleSource(new ArrayList<List<Object>>(0).iterator(), schema);
- }
-
- public CollectionTupleSource(Iterator<? extends List<?>> tuples,
- List<SingleElementSymbol> schema) {
- this.tuples = tuples;
- this.schema = schema;
- }
-
- @Override
- public List<?> nextTuple() {
- if (tuples.hasNext()) {
- return tuples.next();
- }
- return null;
- }
-
- @Override
- public List<SingleElementSymbol> getSchema() {
- return schema;
- }
-
- @Override
- public void closeSource() {
-
- }
-
- @Override
- public int available() {
- if (tuples.hasNext()) {
- return 1;
- }
- return 0;
- }
-}
\ No newline at end of file
Deleted: trunk/engine/src/main/java/com/metamatrix/query/processor/ProcessorDataManager.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/processor/ProcessorDataManager.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/processor/ProcessorDataManager.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,51 +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.query.processor;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.common.buffer.BlockedException;
-import com.metamatrix.common.buffer.TupleSource;
-import com.metamatrix.query.sql.lang.Command;
-import com.metamatrix.query.util.CommandContext;
-
-public interface ProcessorDataManager {
-
- TupleSource registerRequest(Object processorId, Command command, String modelName, String connectorBindingId, int nodeID)
- throws MetaMatrixComponentException, MetaMatrixProcessingException;
-
- /**
- * Lookup a value from a cached code table. If the code table is not loaded, it will be
- * loaded on the first query. Code tables should be cached based on a combination of
- * the codeTableName, returnElementName, and keyElementName. If the table is not loaded,
- * a request will be made and the method should throw a BlockedException.
- */
- Object lookupCodeValue(CommandContext context,
- String codeTableName,
- String returnElementName,
- String keyElementName,
- Object keyValue) throws BlockedException,
- MetaMatrixComponentException, MetaMatrixProcessingException;
-
- void clearCodeTables();
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/processor/ProcessorPlan.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/processor/ProcessorPlan.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/processor/ProcessorPlan.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,166 +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.query.processor;
-
-import static com.metamatrix.query.analysis.AnalysisRecord.*;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.teiid.client.plan.PlanNode;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.MetaMatrixException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.common.buffer.BlockedException;
-import com.metamatrix.common.buffer.BufferManager;
-import com.metamatrix.common.buffer.TupleBatch;
-import com.metamatrix.query.analysis.AnalysisRecord;
-import com.metamatrix.query.processor.BatchCollector.BatchProducer;
-import com.metamatrix.query.util.CommandContext;
-
-/**
- * <p>This class represents a processor plan. It is generic in that it
- * abstracts the interface to the plan by the processor, meaning that the
- * actual implementation of the plan or the types of processing done by the
- * plan is not important to the processor.</p>
- * <p>All the implementations of this interface need to implement {@link #clone}
- * method. The plan is only clonable in the pre or post-processing stage, not
- * during the processing state (things like program state, result sets, etc).
- * It's only safe to clone in between query processings. In other words, it's
- * only safe to call {@link #clone} before the call to {@link #open} or after
- * the call to {@link #close}.
- * </p>
- */
-public abstract class ProcessorPlan implements Cloneable, BatchProducer {
-
- private List warnings = null;
-
- private CommandContext context;
-
- /**
- * Initialize the plan with some required pieces of data for making
- * queries. The data manager is used to make queries and the processorID
- * must be passed with the request so the data manager can find the
- * processor again.
- *
- * @param context Process execution context
- * @param dataMgr Data manager reference
- * @param bufferMgr Buffer manager reference
- */
- public abstract void initialize(CommandContext context, ProcessorDataManager dataMgr, BufferManager bufferMgr);
-
- /**
- * Get all warnings found while processing this plan. These warnings may
- * be detected throughout the plan lifetime, which means new ones may arrive
- * at any time. This method returns all current warnings and clears
- * the current warnings list. The warnings are in order they were detected.
- * @return Current list of warnings, never null
- */
- public List getAndClearWarnings() {
- if (warnings == null) {
- return null;
- }
- List copied = warnings;
- warnings = null;
- return copied;
- }
-
- protected void addWarning(MetaMatrixException warning) {
- if (warnings == null) {
- warnings = new ArrayList(1);
- }
- warnings.add(warning);
- }
-
- /**
- * Reset a plan so that it can be processed again.
- */
- public void reset() {
- this.warnings = null;
- }
-
- /**
- * Get list of resolved elements describing output columns for this plan.
- * @return List of SingleElementSymbol
- */
- public abstract List getOutputElements();
-
- /**
- * Get the processor context, which can be modified.
- * @return context object
- */
- public CommandContext getContext() {
- return context;
- }
-
- public void setContext(CommandContext context) {
- this.context = context;
- }
-
- /**
- * Open the plan for processing.
- * @throws MetaMatrixComponentException
- */
- public abstract void open() throws MetaMatrixComponentException, MetaMatrixProcessingException;
-
- /**
- * Get a batch of results or possibly an Exception.
- * @return Batch of results
- * @throws BlockedException indicating next batch is not available yet
- * @throws MetaMatrixComponentException for non-business rule exception
- * @throws MetaMatrixProcessingException for business rule exception, related
- * to user input or modeling
- */
- public abstract TupleBatch nextBatch() throws BlockedException, MetaMatrixComponentException, MetaMatrixProcessingException;
-
- /**
- * Close the plan after processing.
- * @throws MetaMatrixComponentException
- */
- public abstract void close() throws MetaMatrixComponentException;
-
- /**
- * Return a safe clone of the ProcessorPlan. A ProcessorPlan may only be
- * safely cloned in between processings. That is, it is only safe to clone
- * a plan before it is {@link #open opened} or after it is {@link #close
- * closed}.
- * @return safe clone of this ProcessorPlan, as long as it is not open for
- * processing
- */
- public abstract ProcessorPlan clone();
-
- public boolean requiresTransaction(boolean transactionalReads) {
- return transactionalReads;
- }
-
- /**
- * @see com.metamatrix.query.processor.Describable#getDescriptionProperties()
- */
- public PlanNode getDescriptionProperties() {
- PlanNode props = new PlanNode(this.getClass().getSimpleName());
- props.addProperty(PROP_OUTPUT_COLS, AnalysisRecord.getOutputColumnProperties(getOutputElements()));
- return props;
- }
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/processor/QueryProcessor.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/processor/QueryProcessor.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/processor/QueryProcessor.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,233 +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.query.processor;
-
-import java.util.List;
-
-import org.teiid.logging.LogConstants;
-import org.teiid.logging.LogManager;
-import org.teiid.logging.MessageLevel;
-import org.teiid.resource.cci.DataNotAvailableException;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.MetaMatrixException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.common.buffer.BlockedException;
-import com.metamatrix.common.buffer.BufferManager;
-import com.metamatrix.common.buffer.TupleBatch;
-import com.metamatrix.common.buffer.BufferManager.BufferReserveMode;
-import com.metamatrix.common.buffer.BufferManager.TupleSourceType;
-import com.metamatrix.core.MetaMatrixRuntimeException;
-import com.metamatrix.core.util.Assertion;
-import com.metamatrix.query.execution.QueryExecPlugin;
-import com.metamatrix.query.processor.BatchCollector.BatchProducer;
-import com.metamatrix.query.util.CommandContext;
-
-public class QueryProcessor implements BatchProducer {
-
- public static class ExpiredTimeSliceException extends MetaMatrixRuntimeException {
-
- }
-
- private static ExpiredTimeSliceException EXPIRED_TIME_SLICE = new ExpiredTimeSliceException();
-
- public interface ProcessorFactory {
- QueryProcessor createQueryProcessor(String query, String recursionGroup, CommandContext commandContext) throws MetaMatrixProcessingException, MetaMatrixComponentException;
- }
-
- private CommandContext context;
- private ProcessorDataManager dataMgr;
- private BufferManager bufferMgr;
- private ProcessorPlan processPlan;
- private boolean initialized = false;
- private int reserved;
- /** Flag that marks whether the request has been canceled. */
- private volatile boolean requestCanceled = false;
- private static final int DEFAULT_WAIT = 50;
- private boolean processorClosed = false;
-
- private boolean nonBlocking = false;
-
- /**
- * Construct a processor with all necessary information to process.
- * @param plan The plan to process
- * @param context The context that this plan is being processed in
- * @param bufferMgr The buffer manager that provides access to tuple sources
- * @param dataMgr The data manager that provides access to get data
- * @throws MetaMatrixComponentException
- */
- public QueryProcessor(ProcessorPlan plan, CommandContext context, BufferManager bufferMgr, ProcessorDataManager dataMgr) throws MetaMatrixComponentException {
- this.context = context;
- this.dataMgr = dataMgr;
- this.processPlan = plan;
- this.bufferMgr = bufferMgr;
- // Add data manager to all nodes in tree
- this.processPlan.initialize(context, this.dataMgr, bufferMgr);
- }
-
- public CommandContext getContext() {
- return context;
- }
-
- public Object getProcessID() {
- return this.context.getProcessorID();
- }
-
- public ProcessorPlan getProcessorPlan() {
- return this.processPlan;
- }
-
- public TupleBatch nextBatch()
- throws BlockedException, MetaMatrixProcessingException, MetaMatrixComponentException {
-
- while (true) {
- long wait = DEFAULT_WAIT;
- try {
- return nextBatchDirect();
- } catch (ExpiredTimeSliceException e) {
- if (!nonBlocking) {
- throw e;
- }
- continue;
- } catch (DataNotAvailableException e) {
- if (!nonBlocking) {
- throw e;
- }
- wait = e.getRetryDelay();
- } catch (BlockedException e) {
- if (!nonBlocking) {
- throw e;
- }
- }
- try {
- Thread.sleep(wait);
- } catch (InterruptedException err) {
- throw new MetaMatrixComponentException(err);
- }
- }
- }
-
- private TupleBatch nextBatchDirect()
- throws BlockedException, MetaMatrixProcessingException, MetaMatrixComponentException {
-
- boolean done = false;
- TupleBatch result = null;
-
- try {
- // initialize if necessary
- if(! initialized) {
- if (reserved == 0) {
- reserved = this.bufferMgr.reserveBuffers(this.bufferMgr.getSchemaSize(this.getOutputElements()), BufferReserveMode.FORCE);
- }
- // Open the top node for reading
- processPlan.open();
- initialized = true;
- }
-
- long currentTime = System.currentTimeMillis();
- Assertion.assertTrue(!processorClosed);
- while(currentTime < context.getTimeSliceEnd()) {
- if (requestCanceled) {
- throw new MetaMatrixProcessingException(QueryExecPlugin.Util.getString("QueryProcessor.request_cancelled", getProcessID())); //$NON-NLS-1$
- }
- if (currentTime > context.getTimeoutEnd()) {
- throw new MetaMatrixProcessingException("Query timed out"); //$NON-NLS-1$
- }
- result = processPlan.nextBatch();
-
- if(result.getTerminationFlag()) {
- done = true;
- break;
- }
-
- if (result.getRowCount() > 0) {
- break;
- }
-
- }
- } catch (BlockedException e) {
- throw e;
- } catch (MetaMatrixException e) {
- closeProcessing();
- if (e instanceof MetaMatrixProcessingException) {
- throw (MetaMatrixProcessingException)e;
- }
- if (e instanceof MetaMatrixComponentException) {
- throw (MetaMatrixComponentException)e;
- }
- throw new MetaMatrixComponentException(e);
- }
- if(done) {
- closeProcessing();
- }
- if (result == null) {
- throw EXPIRED_TIME_SLICE;
- }
- return result;
- }
-
-
- /**
- * Close processing and clean everything up. Should only be called by the same thread that called process.
- */
- public void closeProcessing() {
- if (processorClosed) {
- return;
- }
- if (LogManager.isMessageToBeRecorded(LogConstants.CTX_DQP, MessageLevel.DETAIL)) {
- LogManager.logDetail(LogConstants.CTX_DQP, "QueryProcessor: closing processor"); //$NON-NLS-1$
- }
- this.bufferMgr.releaseBuffers(reserved);
- reserved = 0;
- processorClosed = true;
- try {
- processPlan.close();
- } catch (MetaMatrixComponentException e1){
- LogManager.logDetail(LogConstants.CTX_DQP, e1, "Error closing processor"); //$NON-NLS-1$
- }
- }
-
- @Override
- public List getOutputElements() {
- return this.processPlan.getOutputElements();
- }
-
- public List<Exception> getAndClearWarnings() {
- return this.processPlan.getAndClearWarnings();
- }
-
- /**
- * Asynch shutdown of the QueryProcessor, which may trigger exceptions in the processing thread
- */
- public void requestCanceled() {
- this.requestCanceled = true;
- }
-
- public BatchCollector createBatchCollector() throws MetaMatrixComponentException {
- return new BatchCollector(this, this.bufferMgr.createTupleBuffer(this.processPlan.getOutputElements(), context.getConnectionID(), TupleSourceType.PROCESSOR));
- }
-
- public void setNonBlocking(boolean nonBlocking) {
- this.nonBlocking = nonBlocking;
- }
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/processor/TempTableDataManager.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/processor/TempTableDataManager.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/processor/TempTableDataManager.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,97 +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.query.processor;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.common.buffer.BlockedException;
-import com.metamatrix.common.buffer.TupleSource;
-import com.metamatrix.query.sql.lang.Command;
-import com.metamatrix.query.tempdata.TempTableStore;
-import com.metamatrix.query.util.CommandContext;
-
-/**
- * This proxy ProcessorDataManager is used during XML query processing to handle temporary groups
- * in the document model. Temp groups are materialized during processing, and their tuple sources
- * are cached, so this proxy shortcuts the need to go to the DataTierManager and immediately
- * returns the tuple source (synchronously) if a temp group's source is what's being requested.
- */
-public class TempTableDataManager implements ProcessorDataManager {
-
- private ProcessorDataManager processorDataManager;
- private TempTableStore tempTableStore;
-
- /**
- * Constructor takes the "real" ProcessorDataManager that this object will be a proxy to,
- * and will pass most calls through to transparently. Only when a request is registered for
- * a temp group will this proxy do it's thing. A ProcessorEnvironment is needed to to
- * access cached information about temp groups
- * @param processorDataManager the real ProcessorDataManager that this object is a proxy to
- * @param env a ProcessorEnvironment implementation
- */
- public TempTableDataManager(ProcessorDataManager processorDataManager, TempTableStore tempTableStore){
- this.processorDataManager = processorDataManager;
- this.tempTableStore = tempTableStore;
- }
-
- /**
- * This is the magic method. If the command is selecting from a temporary group, that
- * temporary groups tuple source (which is cached in the ProcessorEnvironment) will
- * be retrieved and immediately (synchronously) delivered to the QueryProcessor.
- * If a temp group is <i>not</i> being selected from, then this request will be
- * passed through to the underlying ProcessorDataManager.
- * @throws MetaMatrixProcessingException
- */
- public TupleSource registerRequest(
- Object processorID,
- Command command,
- String modelName,
- String connectorBindingId, int nodeID)
- throws MetaMatrixComponentException, MetaMatrixProcessingException {
-
- if(tempTableStore != null) {
- TupleSource result = tempTableStore.registerRequest(command);
- if (result != null) {
- return result;
- }
- }
- return this.processorDataManager.registerRequest(processorID, command, modelName, connectorBindingId, nodeID);
- }
-
- public Object lookupCodeValue(
- CommandContext context,
- String codeTableName,
- String returnElementName,
- String keyElementName,
- Object keyValue)
- throws BlockedException, MetaMatrixComponentException, MetaMatrixProcessingException {
-
- return this.processorDataManager.lookupCodeValue(context, codeTableName, returnElementName, keyElementName, keyValue);
- }
-
- @Override
- public void clearCodeTables() {
- this.processorDataManager.clearCodeTables();
- }
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/resolver/CommandResolver.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/resolver/CommandResolver.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/resolver/CommandResolver.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,52 +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.query.resolver;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.query.QueryMetadataException;
-import com.metamatrix.api.exception.query.QueryResolverException;
-import com.metamatrix.query.analysis.AnalysisRecord;
-import com.metamatrix.query.metadata.TempMetadataAdapter;
-import com.metamatrix.query.sql.lang.Command;
-
-/**
- * This is the interface that is implemented for each type of command, telling how
- * to resolve that command.
- */
-public interface CommandResolver {
-
- /**
- * Resolve the command using the metadata.
- * @param command The command to resolve
- * @param metadata Metadata
- * @param analysis
- * @param resolveNullLiterals true if the resolver should consider replacing null literals with more appropriate types
- * @return the TempMetadataStore containing the metadata defined by this command
- * @throws QueryMetadataException If there is a metadata problem
- * @throws QueryResolverException If the query cannot be resolved
- * @throws MetaMatrixComponentException If there is an internal error
- */
- void resolveCommand(Command command, TempMetadataAdapter metadata, AnalysisRecord analysis, boolean resolveNullLiterals)
- throws QueryMetadataException, QueryResolverException, MetaMatrixComponentException;
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/resolver/ProcedureContainerResolver.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/resolver/ProcedureContainerResolver.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/resolver/ProcedureContainerResolver.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,236 +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.query.resolver;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.query.QueryMetadataException;
-import com.metamatrix.api.exception.query.QueryParserException;
-import com.metamatrix.api.exception.query.QueryResolverException;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.query.QueryPlugin;
-import com.metamatrix.query.analysis.AnalysisRecord;
-import com.metamatrix.query.metadata.QueryMetadataInterface;
-import com.metamatrix.query.metadata.TempMetadataAdapter;
-import com.metamatrix.query.metadata.TempMetadataID;
-import com.metamatrix.query.metadata.TempMetadataStore;
-import com.metamatrix.query.parser.QueryParser;
-import com.metamatrix.query.resolver.util.ResolverUtil;
-import com.metamatrix.query.sql.ProcedureReservedWords;
-import com.metamatrix.query.sql.lang.Command;
-import com.metamatrix.query.sql.lang.GroupContext;
-import com.metamatrix.query.sql.lang.ProcedureContainer;
-import com.metamatrix.query.sql.proc.CreateUpdateProcedureCommand;
-import com.metamatrix.query.sql.symbol.ElementSymbol;
-import com.metamatrix.query.sql.symbol.GroupSymbol;
-import com.metamatrix.query.util.ErrorMessageKeys;
-
-public abstract class ProcedureContainerResolver implements CommandResolver {
-
- public abstract void resolveProceduralCommand(Command command,
- TempMetadataAdapter metadata,
- AnalysisRecord analysis) throws QueryMetadataException,
- QueryResolverException,
- MetaMatrixComponentException;
-
- /**
- * Expand a command by finding and attaching all subcommands to the command. If
- * some initial resolution must be done for this to be accomplished, that is ok,
- * but it should be kept to a minimum.
- * @param command The command to expand
- * @param useMetadataCommands True if resolver should use metadata commands to completely resolve
- * @param metadata Metadata access
- * @param analysis The analysis record that will be filled in if doing annotation.
- *
- * @throws QueryMetadataException If there is a metadata problem
- * @throws QueryResolverException If the query cannot be resolved
- * @throws MetaMatrixComponentException If there is an internal error
- */
- public Command expandCommand(ProcedureContainer procCommand, QueryMetadataInterface metadata, AnalysisRecord analysis)
- throws QueryMetadataException, QueryResolverException, MetaMatrixComponentException {
-
- // Resolve group so we can tell whether it is an update procedure
- GroupSymbol group = procCommand.getGroup();
-
- Command subCommand = null;
-
- String plan = getPlan(metadata, procCommand);
-
- if (plan == null) {
- return null;
- }
-
- QueryParser parser = QueryParser.getQueryParser();
- try {
- subCommand = parser.parseCommand(plan);
- } catch(QueryParserException e) {
- throw new QueryResolverException(e, ErrorMessageKeys.RESOLVER_0045, QueryPlugin.Util.getString(ErrorMessageKeys.RESOLVER_0045, group));
- }
-
- if(subCommand instanceof CreateUpdateProcedureCommand){
- CreateUpdateProcedureCommand cupCommand = (CreateUpdateProcedureCommand)subCommand;
- //if the subcommand is virtual stored procedure, it must have the same
- //projected symbol as its parent.
- if(!cupCommand.isUpdateProcedure()){
- cupCommand.setProjectedSymbols(procCommand.getProjectedSymbols());
- }
-
- cupCommand.setVirtualGroup(procCommand.getGroup());
- cupCommand.setUserCommand(procCommand);
- }
-
- //find the childMetadata using a clean metadata store
- TempMetadataStore childMetadata = new TempMetadataStore();
- QueryMetadataInterface resolveMetadata = new TempMetadataAdapter(metadata, childMetadata);
-
- GroupContext externalGroups = findChildCommandMetadata(procCommand, childMetadata, resolveMetadata);
-
- QueryResolver.setChildMetadata(subCommand, childMetadata.getData(), externalGroups);
-
- QueryResolver.resolveCommand(subCommand, Collections.EMPTY_MAP, metadata, analysis);
-
- return subCommand;
- }
-
- /**
- * For a given resolver, this returns the unparsed command.
- *
- * @param metadata
- * @param group
- * @return
- * @throws MetaMatrixComponentException
- * @throws QueryMetadataException
- */
- protected abstract String getPlan(QueryMetadataInterface metadata,
- GroupSymbol group) throws MetaMatrixComponentException,
- QueryMetadataException;
-
- /**
- * Find all metadata defined by this command for it's children. This metadata should be collected
- * in the childMetadata object. Typical uses of this are for stored queries that define parameter
- * variables valid in subcommands. only used for inserts, updates, and deletes
- * @param metadata Metadata access
- * @param command The command to find metadata on
- * @param childMetadata The store to collect child metadata in
- * @throws QueryMetadataException If there is a metadata problem
- * @throws QueryResolverException If the query cannot be resolved
- * @throws MetaMatrixComponentException If there is an internal error
- */
- public GroupContext findChildCommandMetadata(ProcedureContainer container, TempMetadataStore discoveredMetadata, QueryMetadataInterface metadata)
- throws QueryMetadataException, QueryResolverException, MetaMatrixComponentException {
- // get the group on the delete statement
- GroupSymbol group = container.getGroup();
- // proceed further if it is a virtual group
-
- return createChildMetadata(discoveredMetadata, metadata, group);
- }
-
- static GroupContext createChildMetadata(
- TempMetadataStore discoveredMetadata,
- QueryMetadataInterface metadata, GroupSymbol group)
- throws QueryMetadataException, MetaMatrixComponentException {
- GroupContext externalGroups = new GroupContext();
-
- //Look up elements for the virtual group
- List<ElementSymbol> elements = ResolverUtil.resolveElementsInGroup(group, metadata);
-
- // Create the INPUT variables
- List<ElementSymbol> inputElments = new ArrayList<ElementSymbol>(elements.size());
- for(int i=0; i<elements.size(); i++) {
- ElementSymbol virtualElmnt = elements.get(i);
- ElementSymbol inputElement = (ElementSymbol)virtualElmnt.clone();
- inputElments.add(inputElement);
- }
-
- addScalarGroup(ProcedureReservedWords.INPUT, discoveredMetadata, externalGroups, inputElments);
- addScalarGroup(ProcedureReservedWords.INPUTS, discoveredMetadata, externalGroups, inputElments);
-
- // Switch type to be boolean for all CHANGING variables
- List<ElementSymbol> changingElements = new ArrayList<ElementSymbol>(elements.size());
- for(int i=0; i<elements.size(); i++) {
- ElementSymbol virtualElmnt = elements.get(i);
- ElementSymbol changeElement = (ElementSymbol)virtualElmnt.clone();
- changeElement.setType(DataTypeManager.DefaultDataClasses.BOOLEAN);
- changingElements.add(changeElement);
- }
-
- addScalarGroup(ProcedureReservedWords.CHANGING, discoveredMetadata, externalGroups, changingElements);
- return externalGroups;
- }
-
- /**
- * @see com.metamatrix.query.resolver.CommandResolver#resolveCommand(com.metamatrix.query.sql.lang.Command, com.metamatrix.query.metadata.TempMetadataAdapter, com.metamatrix.query.analysis.AnalysisRecord, boolean)
- */
- public void resolveCommand(Command command, TempMetadataAdapter metadata, AnalysisRecord analysis, boolean resolveNullLiterals)
- throws QueryMetadataException, QueryResolverException, MetaMatrixComponentException {
-
- ProcedureContainer procCommand = (ProcedureContainer)command;
-
- resolveGroup(metadata, procCommand);
-
- resolveProceduralCommand(procCommand, metadata, analysis);
-
- getPlan(metadata, procCommand);
- }
-
- private String getPlan(QueryMetadataInterface metadata, ProcedureContainer procCommand)
- throws MetaMatrixComponentException, QueryMetadataException,
- QueryResolverException {
- if(!procCommand.getGroup().isTempGroupSymbol() && metadata.isVirtualGroup(procCommand.getGroup().getMetadataID())) {
- String plan = getPlan(metadata, procCommand.getGroup());
-
- if(plan == null) {
- throw new QueryResolverException(ErrorMessageKeys.RESOLVER_0009, QueryPlugin.Util.getString(ErrorMessageKeys.RESOLVER_0009, procCommand.getGroup(), procCommand.getClass().getSimpleName()));
- }
- return plan;
- }
- return null;
- }
-
- /**
- * @param metadata
- * @param procCommand
- * @throws MetaMatrixComponentException
- * @throws QueryResolverException
- */
- protected void resolveGroup(TempMetadataAdapter metadata,
- ProcedureContainer procCommand) throws MetaMatrixComponentException,
- QueryResolverException {
- // Resolve group so we can tell whether it is an update procedure
- GroupSymbol group = procCommand.getGroup();
- ResolverUtil.resolveGroup(group, metadata);
- }
-
- public static GroupSymbol addScalarGroup(String name, TempMetadataStore metadata, GroupContext externalGroups, List symbols) {
- GroupSymbol variables = new GroupSymbol(name);
- externalGroups.addGroup(variables);
- TempMetadataID tid = metadata.addTempGroup(name, symbols);
- tid.setScalarGroup(true);
- variables.setMetadataID(tid);
- return variables;
- }
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/resolver/QueryResolver.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/resolver/QueryResolver.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/resolver/QueryResolver.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,298 +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.query.resolver;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.teiid.logging.LogManager;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.query.QueryMetadataException;
-import com.metamatrix.api.exception.query.QueryResolverException;
-import com.metamatrix.query.analysis.AnalysisRecord;
-import com.metamatrix.query.metadata.QueryMetadataInterface;
-import com.metamatrix.query.metadata.TempMetadataAdapter;
-import com.metamatrix.query.metadata.TempMetadataID;
-import com.metamatrix.query.metadata.TempMetadataStore;
-import com.metamatrix.query.resolver.command.BatchedUpdateResolver;
-import com.metamatrix.query.resolver.command.DeleteResolver;
-import com.metamatrix.query.resolver.command.DynamicCommandResolver;
-import com.metamatrix.query.resolver.command.ExecResolver;
-import com.metamatrix.query.resolver.command.InsertResolver;
-import com.metamatrix.query.resolver.command.SetQueryResolver;
-import com.metamatrix.query.resolver.command.SimpleQueryResolver;
-import com.metamatrix.query.resolver.command.TempTableResolver;
-import com.metamatrix.query.resolver.command.UpdateProcedureResolver;
-import com.metamatrix.query.resolver.command.UpdateResolver;
-import com.metamatrix.query.resolver.command.XMLQueryResolver;
-import com.metamatrix.query.resolver.command.XQueryResolver;
-import com.metamatrix.query.resolver.util.ResolverUtil;
-import com.metamatrix.query.resolver.util.ResolverVisitor;
-import com.metamatrix.query.sql.lang.Command;
-import com.metamatrix.query.sql.lang.Criteria;
-import com.metamatrix.query.sql.lang.From;
-import com.metamatrix.query.sql.lang.FromClause;
-import com.metamatrix.query.sql.lang.GroupContext;
-import com.metamatrix.query.sql.lang.ProcedureContainer;
-import com.metamatrix.query.sql.lang.Query;
-import com.metamatrix.query.sql.lang.UnaryFromClause;
-import com.metamatrix.query.sql.symbol.GroupSymbol;
-
-/**
- * <P>The QueryResolver is used between Parsing and QueryValidation. The SQL queries,
- * inserts, updates and deletes are parsed and converted into objects. The language
- * objects have variable names which resolved to fully qualified names using metadata
- * information. The resolver is also used in transforming the values in language
- * objects to their variable types defined in metadata.
- */
-public class QueryResolver {
-
- private static final CommandResolver SIMPLE_QUERY_RESOLVER = new SimpleQueryResolver();
- private static final CommandResolver SET_QUERY_RESOLVER = new SetQueryResolver();
- private static final CommandResolver XML_QUERY_RESOLVER = new XMLQueryResolver();
- private static final CommandResolver EXEC_RESOLVER = new ExecResolver();
- private static final CommandResolver INSERT_RESOLVER = new InsertResolver();
- private static final CommandResolver UPDATE_RESOLVER = new UpdateResolver();
- private static final CommandResolver DELETE_RESOLVER = new DeleteResolver();
- private static final CommandResolver UPDATE_PROCEDURE_RESOLVER = new UpdateProcedureResolver();
- private static final CommandResolver X_QUERY_RESOLVER = new XQueryResolver();
- private static final CommandResolver BATCHED_UPDATE_RESOLVER = new BatchedUpdateResolver();
- private static final CommandResolver DYNAMIC_COMMAND_RESOLVER = new DynamicCommandResolver();
- private static final CommandResolver TEMP_TABLE_RESOLVER = new TempTableResolver();
-
- public static Command expandCommand(ProcedureContainer proc, QueryMetadataInterface metadata, AnalysisRecord analysisRecord) throws QueryResolverException, QueryMetadataException, MetaMatrixComponentException {
- ProcedureContainerResolver cr = (ProcedureContainerResolver)chooseResolver(proc, metadata);
- return cr.expandCommand(proc, metadata, analysisRecord);
- }
-
- /**
- * This implements an algorithm to resolve all the symbols created by the parser into real metadata IDs
- * @param command Command the SQL command we are running (Select, Update, Insert, Delete)
- * @param metadata QueryMetadataInterface the metadata
- * @param analysis The analysis record which can be used to add anotations and debug information.
- */
- public static void resolveCommand(Command command, QueryMetadataInterface metadata, AnalysisRecord analysis)
- throws QueryResolverException, MetaMatrixComponentException {
-
- resolveCommand(command, Collections.EMPTY_MAP, metadata, analysis);
- }
-
- /**
- * This implements an algorithm to resolve all the symbols created by the parser into real metadata IDs
- * @param command Command the SQL command we are running (Select, Update, Insert, Delete)
- * @param metadata QueryMetadataInterface the metadata
- */
- public static void resolveCommand(Command command, QueryMetadataInterface metadata)
- throws QueryResolverException, MetaMatrixComponentException {
-
- resolveCommand(command, Collections.EMPTY_MAP, metadata, AnalysisRecord.createNonRecordingRecord());
- }
-
- /**
- * This implements an algorithm to resolve all the symbols created by the parser into real metadata IDs
- * @param externalMetadata Map of GroupSymbol to a List of ElementSymbol that identifies
- * valid external groups that can be resolved against. Any elements resolved against external
- * groups will be treated as variables
- * @param metadata QueryMetadataInterface the metadata
- * @param analysis The analysis record which can be used to add anotations and debug information.
- * @param command Command the SQL command we are running (Select, Update, Insert, Delete)
- */
- public static TempMetadataStore resolveCommand(Command currentCommand, Map externalMetadata, QueryMetadataInterface metadata,
- AnalysisRecord analysis)
- throws QueryResolverException, MetaMatrixComponentException {
- return resolveCommand(currentCommand, externalMetadata, metadata, analysis, true);
- }
-
- public static TempMetadataStore resolveCommand(Command currentCommand, Map externalMetadata, QueryMetadataInterface metadata,
- AnalysisRecord analysis, boolean resolveNullLiterals)
- throws QueryResolverException, MetaMatrixComponentException {
-
- LogManager.logTrace(org.teiid.logging.LogConstants.CTX_QUERY_RESOLVER, new Object[]{"Resolving command", currentCommand}); //$NON-NLS-1$
-
- TempMetadataAdapter resolverMetadata = null;
- try {
- TempMetadataStore rootExternalStore = new TempMetadataStore();
- if(externalMetadata != null) {
- for(Iterator iter = externalMetadata.entrySet().iterator(); iter.hasNext();) {
- Map.Entry entry = (Map.Entry)iter.next();
- GroupSymbol group = (GroupSymbol) entry.getKey();
- List elements = (List) entry.getValue();
- rootExternalStore.addTempGroup(group.getName(), elements);
- currentCommand.addExternalGroupToContext(group);
- }
- }
- Map tempMetadata = currentCommand.getTemporaryMetadata();
- if(tempMetadata == null) {
- currentCommand.setTemporaryMetadata(new HashMap(rootExternalStore.getData()));
- } else {
- tempMetadata.putAll(rootExternalStore.getData());
- }
-
- TempMetadataStore discoveredMetadata = new TempMetadataStore(currentCommand.getTemporaryMetadata());
-
- resolverMetadata = new TempMetadataAdapter(metadata, discoveredMetadata);
-
- // Resolve external groups for command
- Collection externalGroups = currentCommand.getAllExternalGroups();
- Iterator extIter = externalGroups.iterator();
- while(extIter.hasNext()) {
- GroupSymbol extGroup = (GroupSymbol) extIter.next();
- Object metadataID = extGroup.getMetadataID();
- //make sure that the group is resolved and that it is pointing to the appropriate temp group
- if (metadataID == null || (!(extGroup.getMetadataID() instanceof TempMetadataID) && discoveredMetadata.getTempGroupID(extGroup.getName()) != null)) {
- metadataID = resolverMetadata.getGroupID(extGroup.getName());
- extGroup.setMetadataID(metadataID);
- }
- }
-
- CommandResolver resolver = chooseResolver(currentCommand, resolverMetadata);
-
- // Resolve this command
- resolver.resolveCommand(currentCommand, resolverMetadata, analysis, resolveNullLiterals);
- } catch(QueryMetadataException e) {
- throw new QueryResolverException(e, e.getMessage());
- }
-
- // Flag that this command has been resolved.
- currentCommand.setIsResolved(true);
-
- return resolverMetadata.getMetadataStore();
- }
-
- /**
- * Method chooseResolver.
- * @param command
- * @param metadata
- * @return CommandResolver
- */
- private static CommandResolver chooseResolver(Command command, QueryMetadataInterface metadata)
- throws QueryResolverException, QueryMetadataException, MetaMatrixComponentException {
-
- switch(command.getType()) {
- case Command.TYPE_QUERY:
- if(command instanceof Query) {
- if(isXMLQuery((Query)command, metadata)) {
- return XML_QUERY_RESOLVER;
- }
- return SIMPLE_QUERY_RESOLVER;
- }
- return SET_QUERY_RESOLVER;
- case Command.TYPE_INSERT: return INSERT_RESOLVER;
- case Command.TYPE_UPDATE: return UPDATE_RESOLVER;
- case Command.TYPE_DELETE: return DELETE_RESOLVER;
- case Command.TYPE_STORED_PROCEDURE: return EXEC_RESOLVER;
- case Command.TYPE_UPDATE_PROCEDURE: return UPDATE_PROCEDURE_RESOLVER;
- case Command.TYPE_XQUERY: return X_QUERY_RESOLVER;
- case Command.TYPE_BATCHED_UPDATE: return BATCHED_UPDATE_RESOLVER;
- case Command.TYPE_DYNAMIC: return DYNAMIC_COMMAND_RESOLVER;
- case Command.TYPE_CREATE: return TEMP_TABLE_RESOLVER;
- case Command.TYPE_DROP: return TEMP_TABLE_RESOLVER;
- default:
- throw new AssertionError("Unknown command type"); //$NON-NLS-1$
- }
- }
-
- /**
- * Check to verify if the query would return XML results.
- * @param query the query to check
- * @param metadata QueryMetadataInterface the metadata
- */
- public static boolean isXMLQuery(Query query, QueryMetadataInterface metadata)
- throws MetaMatrixComponentException, QueryMetadataException, QueryResolverException {
-
- // Check first group
- From from = query.getFrom();
- if(from == null){
- //select with no from
- return false;
- }
-
- if (from.getClauses().size() != 1) {
- return false;
- }
-
- FromClause clause = (FromClause)from.getClauses().get(0);
-
- if (!(clause instanceof UnaryFromClause)) {
- return false;
- }
-
- GroupSymbol symbol = ((UnaryFromClause)clause).getGroup();
-
- ResolverUtil.resolveGroup(symbol, metadata);
-
- if (symbol.isProcedure()) {
- return false;
- }
-
- Object groupID = ((UnaryFromClause)clause).getGroup().getMetadataID();
-
- return metadata.isXMLGroup(groupID);
- }
-
- /**
- * Resolve just a criteria. The criteria will be modified so nothing is returned.
- * @param criteria Criteria to resolve
- * @param metadata Metadata implementation
- */
- public static void resolveCriteria(Criteria criteria, QueryMetadataInterface metadata)
- throws QueryResolverException, QueryMetadataException, MetaMatrixComponentException {
-
- ResolverVisitor.resolveLanguageObject(criteria, metadata);
- }
-
- public static void setChildMetadata(Command subCommand, Command parent) {
- Map childMetadataMap = parent.getTemporaryMetadata();
- GroupContext parentContext = parent.getExternalGroupContexts();
-
- setChildMetadata(subCommand, childMetadataMap, parentContext);
- }
-
- public static void setChildMetadata(Command subCommand, Map parentTempMetadata, GroupContext parentContext) {
- Map tempMetadata = subCommand.getTemporaryMetadata();
- if(tempMetadata == null) {
- subCommand.setTemporaryMetadata(new HashMap(parentTempMetadata));
- } else {
- tempMetadata.putAll(parentTempMetadata);
- }
-
- subCommand.setExternalGroupContexts(parentContext);
- }
-
- public static Map getVariableValues(Command command, QueryMetadataInterface metadata) throws QueryMetadataException, QueryResolverException, MetaMatrixComponentException {
-
- CommandResolver resolver = chooseResolver(command, metadata);
-
- if (resolver instanceof VariableResolver) {
- return ((VariableResolver)resolver).getVariableValues(command, metadata);
- }
-
- return Collections.EMPTY_MAP;
- }
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/resolver/VariableResolver.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/resolver/VariableResolver.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/resolver/VariableResolver.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,37 +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.query.resolver;
-
-import java.util.Map;
-
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.query.QueryMetadataException;
-import com.metamatrix.api.exception.query.QueryResolverException;
-import com.metamatrix.query.metadata.QueryMetadataInterface;
-import com.metamatrix.query.sql.lang.Command;
-
-public interface VariableResolver {
-
- Map getVariableValues(Command command, QueryMetadataInterface metadata) throws QueryMetadataException, QueryResolverException, MetaMatrixComponentException;
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/sql/LanguageObject.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/LanguageObject.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/LanguageObject.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -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.query.sql;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * This is the primary interface for all language objects. It extends a few
- * key interfaces and adds some additional methods to allow the {@link LanguageVisitor}
- * to work.
- */
-public interface LanguageObject extends Serializable, Cloneable {
-
- /**
- * Method for accepting a visitor. It is the responsibility of the
- * language object to call back on the visitor.
- * @param visitor Visitor being used
- */
- void acceptVisitor(LanguageVisitor visitor);
-
- /**
- * Implement clone to make objects cloneable.
- * @return Deep clone of this object
- */
- Object clone();
-
- public static class Util {
-
- public static <S extends LanguageObject, T extends S> ArrayList<S> deepClone(List<T> collection, Class<S> type) {
- ArrayList<S> result = new ArrayList<S>(collection.size());
- for (LanguageObject obj : collection) {
- result.add(type.cast(obj.clone()));
- }
- return result;
- }
-
- }
-
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/sql/LanguageVisitor.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/LanguageVisitor.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/LanguageVisitor.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -1,133 +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.query.sql;
-
-import com.metamatrix.query.sql.lang.*;
-import com.metamatrix.query.sql.symbol.*;
-import com.metamatrix.query.sql.proc.*;
-
-/**
- * <p>The LanguageVisitor can be used to visit a LanguageObject as if it were a tree
- * and perform some action on some or all of the language objects that are visited.
- * The LanguageVisitor is extended to create a concrete visitor and some or all of
- * the public visit methods should be overridden to provide the visitor functionality.
- * These public visit methods SHOULD NOT be called directly.</p>
- */
-public abstract class LanguageVisitor {
-
- private boolean abort = false;
-
- public void setAbort(boolean abort) {
- this.abort = abort;
- }
-
- public final boolean shouldAbort() {
- return abort;
- }
-
- // Visitor methods for language objects
- public void visit(BatchedUpdateCommand obj) {}
- public void visit(BetweenCriteria obj) {}
- public void visit(CaseExpression obj) {}
- public void visit(CompareCriteria obj) {}
- public void visit(CompoundCriteria obj) {}
- public void visit(Delete obj) {
- visit((ProcedureContainer)obj);
- }
- public void visit(ExistsCriteria obj) {}
- public void visit(From obj) {}
- public void visit(GroupBy obj) {}
- public void visit(Insert obj) {
- visit((ProcedureContainer)obj);
- }
- public void visit(IsNullCriteria obj) {}
- public void visit(JoinPredicate obj) {}
- public void visit(JoinType obj) {}
- public void visit(Limit obj) {}
- public void visit(MatchCriteria obj) {}
- public void visit(NotCriteria obj) {}
- public void visit(Option obj) {}
- public void visit(OrderBy obj) {}
- public void visit(Query obj) {}
- public void visit(SearchedCaseExpression obj) {}
- public void visit(Select obj) {}
- public void visit(SetCriteria obj) {}
- public void visit(SetQuery obj) {}
- public void visit(StoredProcedure obj) {
- visit((ProcedureContainer)obj);
- }
- public void visit(SubqueryCompareCriteria obj) {}
- public void visit(SubqueryFromClause obj) {}
- public void visit(SubquerySetCriteria obj) {}
- public void visit(UnaryFromClause obj) {}
- public void visit(Update obj) {
- visit((ProcedureContainer)obj);
- }
- public void visit(Into obj) {}
- public void visit(XQuery obj) {}
- public void visit(DependentSetCriteria obj) {}
- public void visit(Create obj) {}
- public void visit(Drop obj) {}
-
- // Visitor methods for symbol objects
- public void visit(AggregateSymbol obj) {}
- public void visit(AliasSymbol obj) {}
- public void visit(AllInGroupSymbol obj) {}
- public void visit(AllSymbol obj) {}
- public void visit(Constant obj) {}
- public void visit(ElementSymbol obj) {}
- public void visit(ExpressionSymbol obj) {}
- public void visit(Function obj) {}
- public void visit(GroupSymbol obj) {}
- public void visit(Reference obj) {}
- public void visit(ScalarSubquery obj) {}
-
- // Visitor methods for procedure language objects
- public void visit(AssignmentStatement obj) {}
- public void visit(Block obj) {}
- public void visit(CommandStatement obj) {}
- public void visit(CreateUpdateProcedureCommand obj) {}
- public void visit(CriteriaSelector obj) {}
- public void visit(DeclareStatement obj) {
- visit((AssignmentStatement)obj);
- }
- public void visit(HasCriteria obj) {}
- public void visit(IfStatement obj) {}
- public void visit(RaiseErrorStatement obj) {
- visit((AssignmentStatement)obj);
- }
- public void visit(TranslateCriteria obj) {}
- public void visit(BreakStatement obj) {}
- public void visit(ContinueStatement obj) {}
- public void visit(WhileStatement obj) {}
- public void visit(LoopStatement obj) {}
- public void visit(DynamicCommand obj) {}
- public void visit(ProcedureContainer obj) {}
- public void visit(SetClauseList obj) {}
- public void visit(SetClause obj) {}
- public void visit(OrderByItem obj) {}
- public void visit(XMLElement obj) {}
- public void visit(XMLAttributes obj) {}
- public void visit(XMLForest obj) {}
- public void visit(XMLNamespaces obj) {}
-}
Deleted: trunk/engine/src/main/java/com/metamatrix/query/sql/ProcedureReservedWords.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/ProcedureReservedWords.java 2010-05-11 21:39:07 UTC (rev 2115)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/ProcedureReservedWords.java 2010-05-11 21:47:57 UTC (rev 2116)
@@ -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.query.sql;
-
-import java.lang.reflect.Field;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.teiid.connector.language.SQLReservedWords;
-
-/**
- * Special variable names in stored procedure language.
- */
-public class ProcedureReservedWords {
-
- @Deprecated
- public static final String INPUT = SQLReservedWords.INPUT;
-
- public static final String INPUTS = "INPUTS"; //$NON-NLS-1$
-
- public static final String ROWS_UPDATED = "ROWS_UPDATED"; //$NON-NLS-1$
-
- public static final String CHANGING = "CHANGING"; //$NON-NLS-1$
-
- public static final String VARIABLES = "VARIABLES"; //$NON-NLS-1$
-
- public static final String DVARS = "DVARS"; //$NON-NLS-1$
-
- /**
- * Set of CAPITALIZED reserved words for checking whether a string is a reserved word.
- */
- private static final Set<String> RESERVED_WORDS = new HashSet<String>();
-
- // Initialize RESERVED_WORDS set - This is a poor man's enum. To much legacy code expects the constants to be Strings.
- static {
- Field[] fields = SQLReservedWords.class.getDeclaredFields();
- for (Field field : fields) {
- if (field.getType() == String.class) {
- try {
- RESERVED_WORDS.add((String)field.get(null));
- } catch (Exception e) {
- }
- }
- }
- }
-
- /** Can't construct */
- private ProcedureReservedWords() {}
-
- /**
- * Check whether a string is a procedure reserved word.
- * @param str String to check
- * @return True if procedure reserved word, false if not or null
- */
- public static final boolean isProcedureReservedWord(String str) {
- if (str == null) {
- return false;
- }
- return RESERVED_WORDS.contains(str.toUpperCase());
- }
-}
15 years, 11 months
teiid SVN: r2115 - in trunk/common-core/src: main/java/com/metamatrix/api and 37 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-05-11 17:39:07 -0400 (Tue, 11 May 2010)
New Revision: 2115
Added:
trunk/common-core/src/main/java/org/
trunk/common-core/src/main/java/org/teiid/
trunk/common-core/src/main/java/org/teiid/core/
trunk/common-core/src/main/java/org/teiid/core/BundleUtil.java
trunk/common-core/src/main/java/org/teiid/core/ComponentNotFoundException.java
trunk/common-core/src/main/java/org/teiid/core/CoreConstants.java
trunk/common-core/src/main/java/org/teiid/core/CorePlugin.java
trunk/common-core/src/main/java/org/teiid/core/ErrorMessageKeys.java
trunk/common-core/src/main/java/org/teiid/core/TeiidComponentException.java
trunk/common-core/src/main/java/org/teiid/core/TeiidException.java
trunk/common-core/src/main/java/org/teiid/core/TeiidProcessingException.java
trunk/common-core/src/main/java/org/teiid/core/TeiidRuntimeException.java
trunk/common-core/src/main/java/org/teiid/core/crypto/
trunk/common-core/src/main/java/org/teiid/core/id/
trunk/common-core/src/main/java/org/teiid/core/types/
trunk/common-core/src/main/java/org/teiid/core/types/BaseLob.java
trunk/common-core/src/main/java/org/teiid/core/types/BlobImpl.java
trunk/common-core/src/main/java/org/teiid/core/types/BlobType.java
trunk/common-core/src/main/java/org/teiid/core/types/ClobImpl.java
trunk/common-core/src/main/java/org/teiid/core/types/ClobType.java
trunk/common-core/src/main/java/org/teiid/core/types/DataTypeManager.java
trunk/common-core/src/main/java/org/teiid/core/types/InputStreamFactory.java
trunk/common-core/src/main/java/org/teiid/core/types/JDBCSQLTypeInfo.java
trunk/common-core/src/main/java/org/teiid/core/types/LobSearchUtil.java
trunk/common-core/src/main/java/org/teiid/core/types/NullType.java
trunk/common-core/src/main/java/org/teiid/core/types/SQLXMLImpl.java
trunk/common-core/src/main/java/org/teiid/core/types/Sequencable.java
trunk/common-core/src/main/java/org/teiid/core/types/SourceTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/StandardXMLTranslator.java
trunk/common-core/src/main/java/org/teiid/core/types/Streamable.java
trunk/common-core/src/main/java/org/teiid/core/types/Transform.java
trunk/common-core/src/main/java/org/teiid/core/types/TransformationException.java
trunk/common-core/src/main/java/org/teiid/core/types/XMLTranslator.java
trunk/common-core/src/main/java/org/teiid/core/types/XMLType.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/
trunk/common-core/src/main/java/org/teiid/core/util/
trunk/common-core/src/main/java/org/teiid/core/util/ApplicationInfo.java
trunk/common-core/src/main/java/org/teiid/core/util/ExceptionUtil.java
trunk/common-core/src/main/java/org/teiid/core/util/PasswordMaskUtil.java
trunk/common-core/src/main/java/org/teiid/core/util/PropertiesUtils.java
trunk/common-core/src/main/java/org/teiid/core/util/ReaderInputStream.java
trunk/common-core/src/main/java/org/teiid/core/util/SqlUtil.java
trunk/common-core/src/main/java/org/teiid/core/util/TimestampWithTimezone.java
trunk/common-core/src/main/resources/org/
trunk/common-core/src/main/resources/org/teiid/
trunk/common-core/src/main/resources/org/teiid/core/crypto/
trunk/common-core/src/main/resources/org/teiid/core/crypto/dh.properties
trunk/common-core/src/main/resources/org/teiid/core/util/
trunk/common-core/src/main/resources/org/teiid/core/util/application.properties
trunk/common-core/src/test/java/org/
trunk/common-core/src/test/java/org/teiid/
trunk/common-core/src/test/java/org/teiid/api/
trunk/common-core/src/test/java/org/teiid/api/exception/
trunk/common-core/src/test/java/org/teiid/common/
trunk/common-core/src/test/java/org/teiid/common/util/
trunk/common-core/src/test/java/org/teiid/core/
trunk/common-core/src/test/java/org/teiid/core/TestMetaMatrixException.java
trunk/common-core/src/test/java/org/teiid/core/TestMetaMatrixRuntimeException.java
trunk/common-core/src/test/java/org/teiid/core/crypto/
trunk/common-core/src/test/java/org/teiid/core/id/
trunk/common-core/src/test/java/org/teiid/core/types/
trunk/common-core/src/test/java/org/teiid/core/types/TestBlobValue.java
trunk/common-core/src/test/java/org/teiid/core/types/TestClobValue.java
trunk/common-core/src/test/java/org/teiid/core/types/TestDataTypeManager.java
trunk/common-core/src/test/java/org/teiid/core/types/TestSQLXMLImpl.java
trunk/common-core/src/test/java/org/teiid/core/types/TestXMLStreamSourceTranslator.java
trunk/common-core/src/test/java/org/teiid/core/types/TestXMLValue.java
trunk/common-core/src/test/java/org/teiid/core/types/basic/
trunk/common-core/src/test/java/org/teiid/core/util/
trunk/common-core/src/test/java/org/teiid/core/util/FakeInputStream.java
trunk/common-core/src/test/java/org/teiid/core/util/TestPropertiesUtils.java
trunk/common-core/src/test/java/org/teiid/core/util/TestReaderInputStream.java
trunk/common-core/src/test/java/org/teiid/core/util/TestSqlUtil.java
trunk/common-core/src/test/java/org/teiid/core/util/TestTimestampWithTimezone.java
trunk/common-core/src/test/java/org/teiid/query/
trunk/common-core/src/test/java/org/teiid/query/unittest/
Removed:
trunk/common-core/src/main/java/com/metamatrix/api/exception/
trunk/common-core/src/main/java/com/metamatrix/common/types/BaseLob.java
trunk/common-core/src/main/java/com/metamatrix/common/types/BlobImpl.java
trunk/common-core/src/main/java/com/metamatrix/common/types/BlobType.java
trunk/common-core/src/main/java/com/metamatrix/common/types/ClobImpl.java
trunk/common-core/src/main/java/com/metamatrix/common/types/ClobType.java
trunk/common-core/src/main/java/com/metamatrix/common/types/DataTypeManager.java
trunk/common-core/src/main/java/com/metamatrix/common/types/InputStreamFactory.java
trunk/common-core/src/main/java/com/metamatrix/common/types/JDBCSQLTypeInfo.java
trunk/common-core/src/main/java/com/metamatrix/common/types/LobSearchUtil.java
trunk/common-core/src/main/java/com/metamatrix/common/types/NullType.java
trunk/common-core/src/main/java/com/metamatrix/common/types/SQLXMLImpl.java
trunk/common-core/src/main/java/com/metamatrix/common/types/Sequencable.java
trunk/common-core/src/main/java/com/metamatrix/common/types/SourceTransform.java
trunk/common-core/src/main/java/com/metamatrix/common/types/StandardXMLTranslator.java
trunk/common-core/src/main/java/com/metamatrix/common/types/Streamable.java
trunk/common-core/src/main/java/com/metamatrix/common/types/Transform.java
trunk/common-core/src/main/java/com/metamatrix/common/types/TransformationException.java
trunk/common-core/src/main/java/com/metamatrix/common/types/XMLTranslator.java
trunk/common-core/src/main/java/com/metamatrix/common/types/XMLType.java
trunk/common-core/src/main/java/com/metamatrix/common/types/basic/
trunk/common-core/src/main/java/com/metamatrix/common/util/ApplicationInfo.java
trunk/common-core/src/main/java/com/metamatrix/common/util/PasswordMaskUtil.java
trunk/common-core/src/main/java/com/metamatrix/common/util/PropertiesUtils.java
trunk/common-core/src/main/java/com/metamatrix/common/util/ReaderInputStream.java
trunk/common-core/src/main/java/com/metamatrix/common/util/SqlUtil.java
trunk/common-core/src/main/java/com/metamatrix/common/util/TimestampWithTimezone.java
trunk/common-core/src/main/java/com/metamatrix/common/util/crypto/
trunk/common-core/src/main/java/com/metamatrix/core/BundleUtil.java
trunk/common-core/src/main/java/com/metamatrix/core/CoreConstants.java
trunk/common-core/src/main/java/com/metamatrix/core/CorePlugin.java
trunk/common-core/src/main/java/com/metamatrix/core/ErrorMessageKeys.java
trunk/common-core/src/main/java/com/metamatrix/core/MetaMatrixCoreException.java
trunk/common-core/src/main/java/com/metamatrix/core/MetaMatrixRuntimeException.java
trunk/common-core/src/main/java/com/metamatrix/core/id/
trunk/common-core/src/main/java/com/metamatrix/core/util/
trunk/common-core/src/main/java/com/metamatrix/core/vdb/
trunk/common-core/src/main/java/org/teiid/core/util/MetaMatrixExceptionUtil.java
trunk/common-core/src/main/resources/com/
trunk/common-core/src/main/resources/org/metamatrix/
trunk/common-core/src/main/resources/org/teiid/common/util/
trunk/common-core/src/test/java/com/metamatrix/api/exception/
trunk/common-core/src/test/java/com/metamatrix/common/types/TestBlobValue.java
trunk/common-core/src/test/java/com/metamatrix/common/types/TestClobValue.java
trunk/common-core/src/test/java/com/metamatrix/common/types/TestDataTypeManager.java
trunk/common-core/src/test/java/com/metamatrix/common/types/TestSQLXMLImpl.java
trunk/common-core/src/test/java/com/metamatrix/common/types/TestXMLStreamSourceTranslator.java
trunk/common-core/src/test/java/com/metamatrix/common/types/TestXMLValue.java
trunk/common-core/src/test/java/com/metamatrix/common/types/basic/
trunk/common-core/src/test/java/com/metamatrix/common/util/FakeInputStream.java
trunk/common-core/src/test/java/com/metamatrix/common/util/TestPropertiesUtils.java
trunk/common-core/src/test/java/com/metamatrix/common/util/TestReaderInputStream.java
trunk/common-core/src/test/java/com/metamatrix/common/util/TestSqlUtil.java
trunk/common-core/src/test/java/com/metamatrix/common/util/TestTimestampWithTimezone.java
trunk/common-core/src/test/java/com/metamatrix/common/util/crypto/
trunk/common-core/src/test/java/com/metamatrix/core/id/
trunk/common-core/src/test/java/com/metamatrix/core/util/
trunk/common-core/src/test/java/com/metamatrix/query/unittest/
trunk/common-core/src/test/java/org/teiid/api/exception/TestExceptionHolder.java
trunk/common-core/src/test/java/org/teiid/api/exception/TestMetaMatrixException.java
trunk/common-core/src/test/java/org/teiid/api/exception/TestMetaMatrixRuntimeException.java
trunk/common-core/src/test/resources/test.jar
Modified:
trunk/common-core/src/main/java/org/teiid/core/crypto/BasicCryptor.java
trunk/common-core/src/main/java/org/teiid/core/crypto/CryptoException.java
trunk/common-core/src/main/java/org/teiid/core/crypto/Cryptor.java
trunk/common-core/src/main/java/org/teiid/core/crypto/DhKeyGenerator.java
trunk/common-core/src/main/java/org/teiid/core/crypto/NullCryptor.java
trunk/common-core/src/main/java/org/teiid/core/crypto/SymmetricCryptor.java
trunk/common-core/src/main/java/org/teiid/core/id/IDGenerator.java
trunk/common-core/src/main/java/org/teiid/core/id/IntegerID.java
trunk/common-core/src/main/java/org/teiid/core/id/IntegerIDFactory.java
trunk/common-core/src/main/java/org/teiid/core/id/InvalidIDException.java
trunk/common-core/src/main/java/org/teiid/core/id/LongID.java
trunk/common-core/src/main/java/org/teiid/core/id/LongIDFactory.java
trunk/common-core/src/main/java/org/teiid/core/id/ObjectID.java
trunk/common-core/src/main/java/org/teiid/core/id/ObjectIDFactory.java
trunk/common-core/src/main/java/org/teiid/core/id/ParsedObjectID.java
trunk/common-core/src/main/java/org/teiid/core/id/StringID.java
trunk/common-core/src/main/java/org/teiid/core/id/StringIDFactory.java
trunk/common-core/src/main/java/org/teiid/core/id/UUID.java
trunk/common-core/src/main/java/org/teiid/core/id/UUIDFactory.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/AnyToObjectTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/AnyToStringTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/BigDecimalToBigIntegerTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/BigIntegerToBigDecimalTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/BooleanToNumberTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/ClobToSQLXMLTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/ClobToStringTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/DateToTimestampTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/FixedNumberToBigDecimalTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/FixedNumberToBigIntegerTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/FloatingNumberToBigDecimalTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/FloatingNumberToBigIntegerTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/NullToAnyTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToBooleanTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToByteTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToDoubleTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToFloatTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToIntegerTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToLongTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToShortTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/ObjectToAnyTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/SQLXMLToClobTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/SQLXMLToStringTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToBigDecimalTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToBigIntegerTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToBooleanTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToByteTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToCharacterTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToClobTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToDateTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToDoubleTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToFloatTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToIntegerTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToLongTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToSQLXMLTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToShortTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToTimeTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToTimestampTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/TimeToTimestampTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/TimestampToDateTransform.java
trunk/common-core/src/main/java/org/teiid/core/types/basic/TimestampToTimeTransform.java
trunk/common-core/src/main/java/org/teiid/core/util/AccessibleByteArrayOutputStream.java
trunk/common-core/src/main/java/org/teiid/core/util/ArgCheck.java
trunk/common-core/src/main/java/org/teiid/core/util/Assertion.java
trunk/common-core/src/main/java/org/teiid/core/util/Base64.java
trunk/common-core/src/main/java/org/teiid/core/util/EquivalenceUtil.java
trunk/common-core/src/main/java/org/teiid/core/util/ExternalizeUtil.java
trunk/common-core/src/main/java/org/teiid/core/util/FileUtil.java
trunk/common-core/src/main/java/org/teiid/core/util/FileUtils.java
trunk/common-core/src/main/java/org/teiid/core/util/HashCodeUtil.java
trunk/common-core/src/main/java/org/teiid/core/util/LRUCache.java
trunk/common-core/src/main/java/org/teiid/core/util/MixinProxy.java
trunk/common-core/src/main/java/org/teiid/core/util/NamedThreadFactory.java
trunk/common-core/src/main/java/org/teiid/core/util/ObjectConverterUtil.java
trunk/common-core/src/main/java/org/teiid/core/util/ObjectInputStreamWithClassloader.java
trunk/common-core/src/main/java/org/teiid/core/util/ReflectionHelper.java
trunk/common-core/src/main/java/org/teiid/core/util/StringUtil.java
trunk/common-core/src/test/java/org/teiid/core/crypto/TestDhKeyGenerator.java
trunk/common-core/src/test/java/org/teiid/core/crypto/TestEncryptDecrypt.java
trunk/common-core/src/test/java/org/teiid/core/id/TestIDGenerator.java
trunk/common-core/src/test/java/org/teiid/core/id/TestParsedObjectID.java
trunk/common-core/src/test/java/org/teiid/core/id/TestParsingObjectIDs.java
trunk/common-core/src/test/java/org/teiid/core/id/TestUUID.java
trunk/common-core/src/test/java/org/teiid/core/id/TestUUIDFactory.java
trunk/common-core/src/test/java/org/teiid/core/id/TestUUIDFactoryWithoutCreation.java
trunk/common-core/src/test/java/org/teiid/core/types/basic/TestStringToXmlTransform.java
trunk/common-core/src/test/java/org/teiid/core/types/basic/TestTransforms.java
trunk/common-core/src/test/java/org/teiid/core/util/SimpleMock.java
trunk/common-core/src/test/java/org/teiid/core/util/TestAssertion.java
trunk/common-core/src/test/java/org/teiid/core/util/TestEquivalenceUtil.java
trunk/common-core/src/test/java/org/teiid/core/util/TestExternalizeUtil.java
trunk/common-core/src/test/java/org/teiid/core/util/TestFileUtil.java
trunk/common-core/src/test/java/org/teiid/core/util/TestFileUtils.java
trunk/common-core/src/test/java/org/teiid/core/util/TestMetaMatrixExceptionUtil.java
trunk/common-core/src/test/java/org/teiid/core/util/TestReflectionHelper.java
trunk/common-core/src/test/java/org/teiid/core/util/TestStringUtil.java
trunk/common-core/src/test/java/org/teiid/core/util/UnitTestUtil.java
trunk/common-core/src/test/java/org/teiid/query/unittest/TimestampUtil.java
Log:
TEIID-918 changing package to org.teiid and removing metamatrix from class names
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/BaseLob.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/BaseLob.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/BaseLob.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,81 +0,0 @@
-package com.metamatrix.common.types;
-
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.io.Reader;
-import java.sql.SQLException;
-
-import com.metamatrix.common.types.InputStreamFactory.StreamFactoryReference;
-
-public class BaseLob implements Externalizable, StreamFactoryReference {
-
- private static final long serialVersionUID = -1586959324208959519L;
- private InputStreamFactory streamFactory;
-
- public BaseLob() {
-
- }
-
- protected BaseLob(InputStreamFactory streamFactory) {
- this.streamFactory = streamFactory;
- }
-
- public void setStreamFactory(InputStreamFactory streamFactory) {
- this.streamFactory = streamFactory;
- }
-
- public InputStreamFactory getStreamFactory() throws SQLException {
- if (this.streamFactory == null) {
- throw new SQLException("Already freed"); //$NON-NLS-1$
- }
- return streamFactory;
- }
-
- public void free() throws SQLException {
- if (this.streamFactory != null) {
- try {
- this.streamFactory.free();
- this.streamFactory = null;
- } catch (IOException e) {
- SQLException ex = new SQLException(e.getMessage());
- ex.initCause(e);
- throw ex;
- }
- }
- }
-
- public Reader getCharacterStream() throws SQLException {
- try {
- return this.getStreamFactory().getCharacterStream();
- } catch (IOException e) {
- SQLException ex = new SQLException(e.getMessage());
- ex.initCause(e);
- throw ex;
- }
- }
-
- public InputStream getBinaryStream() throws SQLException {
- try {
- return this.getStreamFactory().getInputStream();
- } catch (IOException e) {
- SQLException ex = new SQLException(e.getMessage());
- ex.initCause(e);
- throw ex;
- }
- }
-
- @Override
- public void readExternal(ObjectInput in) throws IOException,
- ClassNotFoundException {
- streamFactory = (InputStreamFactory)in.readObject();
- }
-
- @Override
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(streamFactory);
- }
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/BlobImpl.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/BlobImpl.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/BlobImpl.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,210 +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.common.types;
-
-import java.io.BufferedInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.sql.Blob;
-import java.sql.SQLException;
-
-import javax.sql.rowset.serial.SerialBlob;
-
-import com.metamatrix.common.types.LobSearchUtil.StreamProvider;
-import com.metamatrix.common.util.SqlUtil;
-import com.metamatrix.core.CorePlugin;
-
-/**
- * This object holds a chunk of binary data and implements the JDBC Blob interface.
- * It presents a streaming interface and provides a way to access partial
- * of the blob data. Connectors can use this object when dealing with large
- * objects.
- */
-public class BlobImpl extends BaseLob implements Blob, StreamProvider {
-
- public BlobImpl() {
-
- }
-
- /**
- * Creates a MMBlob object with the <code>valueID</code>.
- * @param valueID reference to value chunk in data source.
- */
- public BlobImpl(InputStreamFactory streamFactory) {
- super(streamFactory);
- }
-
- /**
- * Returns as an array of bytes, part or all of the <code>BLOB</code>
- * value that this <code>Blob</code> object designates. The byte
- * array contains up to <code>length</code> consecutive bytes
- * starting at position <code>pos</code>.
- * @param pos the ordinal position of the first byte in the
- * <code>BLOB</code> value to be extracted; the first byte is at
- * position 1
- * @param length the number of consecutive bytes to be copied
- * @return a byte array containing up to <code>length</code>
- * consecutive bytes from the <code>BLOB</code> value designated
- * by this <code>Blob</code> object, starting with the
- * byte at position <code>pos</code>
- * @exception SQLException if there is an error accessing the
- * <code>BLOB</code>
- */
- public byte[] getBytes(long pos, int length) throws SQLException {
- if (pos < 1) {
- Object[] params = new Object[] {new Long(pos)};
- throw new SQLException(CorePlugin.Util.getString("MMClob_MMBlob.0", params)); //$NON-NLS-1$
- }
- else if (pos > length()) {
- return null;
- }
- pos = pos - 1;
-
- if (length < 0) {
- Object[] params = new Object[] {new Integer( length)};
- throw new SQLException(CorePlugin.Util.getString("MMClob_MMBlob.3", params)); //$NON-NLS-1$
- }
- else if (pos + length > length()) {
- length = (int)(length() - pos);
- }
- byte[] dataCopy = new byte[length];
- InputStream in = getBinaryStream();
- try {
- try {
- in.skip(pos);
- in.read(dataCopy);
- } finally {
- in.close();
- }
- } catch (IOException e) {
- throw new SQLException(e);
- }
- return dataCopy;
- }
-
- /**
- * Returns the number of bytes in the <code>BLOB</code> value
- * designated by this <code>Blob</code> object.
- * @return length of the <code>BLOB</code> in bytes
- */
- public long length() throws SQLException{
- if (getStreamFactory().getLength() == -1) {
- InputStream is = new BufferedInputStream(getBinaryStream());
- try {
- long length = 0;
- while (is.read() != -1) {
- length++;
- }
- getStreamFactory().setLength(length);
- } catch (IOException e) {
- throw new SQLException(e);
- } finally {
- try {
- is.close();
- } catch (IOException e) {
- }
- }
- }
- return getStreamFactory().getLength();
- }
-
- /**
- * Determines the byte position in the <code>BLOB</code> value
- * designated by this <code>Blob</code> object at which
- * <code>pattern</code> begins. The search begins at position
- * <code>start</code>.
- * @param pattern the <code>Blob</code> object designating
- * the <code>BLOB</code> value for which to search
- * @param start the position in the <code>BLOB</code> value
- * at which to begin searching; the first position is 1
- * @return the position at which the pattern begins, else -1
- * @exception SQLException if there is an error accessing the
- * <code>BLOB</code>
- */
- public long position(final Blob pattern, long start) throws SQLException {
- if (pattern == null) {
- return -1;
- }
-
- return LobSearchUtil.position(new LobSearchUtil.StreamProvider() {
- public InputStream getBinaryStream() throws SQLException {
- return pattern.getBinaryStream();
- }
- }, pattern.length(), this, this.length(), start, 1);
- }
-
- /**
- * Determines the byte position at which the specified byte
- * <code>pattern</code> begins within the <code>BLOB</code>
- * value that this <code>Blob</code> object represents. The
- * search for <code>pattern</code> begins at position
- * <code>start</code>.
- * @param pattern the byte array for which to search
- * @param start the position at which to begin searching; the
- * first position is 1
- * @return the position at which the pattern appears, else -1
- * @exception SQLException if there is an error accessing the
- * <code>BLOB</code>
- */
- public long position(byte[] pattern, long start) throws SQLException {
- if (pattern == null) {
- return -1;
- }
- return position(new SerialBlob(pattern), start);
- }
-
- public InputStream getBinaryStream(long arg0, long arg1)
- throws SQLException {
- throw SqlUtil.createFeatureNotSupportedException();
- }
-
-
- /**
- * @see java.sql.Blob#setBytes(long, byte[])
- */
- public int setBytes(long pos, byte[] bytes) throws SQLException {
- throw SqlUtil.createFeatureNotSupportedException();
- }
-
- /**
- * @see java.sql.Blob#setBytes(long, byte[], int, int)
- */
- public int setBytes(long pos, byte[] bytes, int offset, int len) throws SQLException {
- throw SqlUtil.createFeatureNotSupportedException();
- }
-
- /**
- * @see java.sql.Blob#setBinaryStream(long)
- */
- public OutputStream setBinaryStream(long pos) throws SQLException {
- throw SqlUtil.createFeatureNotSupportedException();
- }
-
- /**
- * @see java.sql.Blob#truncate(long)
- */
- public void truncate(long len) throws SQLException {
- throw SqlUtil.createFeatureNotSupportedException();
- }
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/BlobType.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/BlobType.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/BlobType.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,152 +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.common.types;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.sql.Blob;
-import java.sql.SQLException;
-
-import javax.sql.rowset.serial.SerialBlob;
-
-import com.metamatrix.core.MetaMatrixRuntimeException;
-
-/**
- * Represent a value of type "blob", which can be streamable from client
- */
-public final class BlobType extends Streamable<Blob> implements Blob {
-
- private static final long serialVersionUID = 1294191629070433450L;
-
- public BlobType() {
- }
-
- public BlobType(Blob blob) {
- super(blob);
- }
-
- /**
- * @see java.sql.Blob#getBinaryStream()
- */
- public InputStream getBinaryStream() throws SQLException {
- return this.reference.getBinaryStream();
- }
-
- /**
- * @see java.sql.Blob#getBytes(long, int)
- */
- public byte[] getBytes(long pos, int length) throws SQLException {
- return this.reference.getBytes(pos, length);
- }
-
- /**
- * @see java.sql.Blob#length()
- */
- public long length() throws SQLException {
- //caching the length
- if (this.length != -1) {
- return this.length;
- }
- // if did not find before then do it again.
- this.length = this.reference.length();
- return length;
- }
-
- /**
- * @see java.sql.Blob#position(java.sql.Blob, long)
- */
- public long position(Blob pattern, long start) throws SQLException {
- return this.reference.position(pattern, start);
- }
-
- /**
- * @see java.sql.Blob#position(byte[], long)
- */
- public long position(byte[] pattern, long start) throws SQLException {
- return this.reference.position(pattern, start);
- }
-
- /**
- * @see java.sql.Blob#setBinaryStream(long)
- */
- public OutputStream setBinaryStream(long pos) throws SQLException {
- return this.reference.setBinaryStream(pos);
- }
-
- /**
- * @see java.sql.Blob#setBytes(long, byte[], int, int)
- * @since 4.3
- */
- public int setBytes(long pos,
- byte[] bytes,
- int offset,
- int len) throws SQLException {
- return this.reference.setBytes(pos, bytes, offset, len);
- }
-
- /**
- * @see java.sql.Blob#setBytes(long, byte[])
- */
- public int setBytes(long pos, byte[] bytes) throws SQLException {
- return this.reference.setBytes(pos, bytes);
- }
-
- /**
- * @see java.sql.Blob#truncate(long)
- */
- public void truncate(long len) throws SQLException {
- this.reference.truncate(len);
- }
-
- //## JDBC4.0-begin ##
- public void free() throws SQLException {
- this.reference.free();
- }
-
- public InputStream getBinaryStream(long pos, long length)
- throws SQLException {
- return this.reference.getBinaryStream(pos, length);
- }
- //## JDBC4.0-end ##
-
- public static SerialBlob createBlob(byte[] bytes) {
- if (bytes == null) {
- return null;
- }
- try {
- return new SerialBlob(bytes);
- } catch (SQLException e) {
- throw new MetaMatrixRuntimeException(e);
- }
- }
-
- private void writeObject(java.io.ObjectOutputStream out) throws IOException {
- try {
- length();
- } catch (SQLException e) {
- }
- out.defaultWriteObject();
- }
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/ClobImpl.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/ClobImpl.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/ClobImpl.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,229 +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.common.types;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Reader;
-import java.io.Writer;
-import java.nio.charset.Charset;
-import java.sql.Clob;
-import java.sql.SQLException;
-
-import javax.sql.rowset.serial.SerialClob;
-
-import com.metamatrix.common.util.ReaderInputStream;
-import com.metamatrix.common.util.SqlUtil;
-import com.metamatrix.core.CorePlugin;
-
-/**
- * This object holds a chunk of char data and implements the JDBC Clob interface.
- * This object presents a streaming interface and provides a way to access partial
- * of the Clob data. Connectors can use this object when dealing with large
- * objects.
- */
-public class ClobImpl extends BaseLob implements Clob {
-
- private final static class ClobStreamProvider implements
- LobSearchUtil.StreamProvider {
- private final Clob searchstr;
-
- private ClobStreamProvider(Clob searchstr) {
- this.searchstr = searchstr;
- }
-
- public InputStream getBinaryStream() throws SQLException {
- ReaderInputStream ris = new ReaderInputStream(searchstr.getCharacterStream(), Charset.forName("UTF-16")); //$NON-NLS-1$
- try {
- ris.skip(2);
- return ris;
- } catch (IOException e) {
- throw new SQLException(e);
- }
- }
- }
-
- private long len = -1;
-
- public ClobImpl() {
-
- }
-
- /**
- * Creates a new ClobImpl. Note that the length is not taken from the {@link InputStreamFactory} since
- * it refers to bytes and not chars.
- * @param streamFactory
- * @param length
- */
- public ClobImpl(InputStreamFactory streamFactory, long length) {
- super(streamFactory);
- this.len = length;
- }
-
- /**
- * Gets the <code>CLOB</code> value designated by this <code>Clob</code>
- * object as a stream of Ascii bytes.
- * @return an ascii stream containing the <code>CLOB</code> data
- * @exception SQLException if there is an error accessing the
- * <code>CLOB</code> value
- */
- public InputStream getAsciiStream() throws SQLException {
- return new ReaderInputStream(getCharacterStream(), Charset.forName("US-ASCII")); //$NON-NLS-1$
- }
-
- /**
- * Returns a copy of the specified substring
- * in the <code>CLOB</code> value
- * designated by this <code>Clob</code> object.
- * The substring begins at position
- * <code>pos</code> and has up to <code>length</code> consecutive
- * characters.
- * @param pos the first character of the substring to be extracted.
- * The first character is at position 1.
- * @param length the number of consecutive characters to be copied
- * @return a <code>String</code> that is the specified substring in
- * the <code>CLOB</code> value designated by this <code>Clob</code> object
- * @exception SQLException if there is an error accessing the <code>CLOB</code>
- */
- public String getSubString(long pos, int length) throws SQLException {
- if (pos < 1) {
- Object[] params = new Object[] {new Long(pos)};
- throw new SQLException(CorePlugin.Util.getString("MMClob_MMBlob.0", params)); //$NON-NLS-1$
- } else if (pos > length()) {
- return null;
- }
- pos = pos - 1;
- if (length < 0) {
- Object[] params = new Object[] {new Integer( length)};
- throw new SQLException(CorePlugin.Util.getString("MMClob_MMBlob.1", params)); //$NON-NLS-1$
- } else if ((pos+length) > length()) {
- length = (int)(length()-pos);
- }
- char[] dataCopy = new char[length];
- Reader in = getCharacterStream();
- try {
- try {
- in.skip(pos);
- in.read(dataCopy);
- } finally {
- in.close();
- }
- } catch (IOException e) {
- throw new SQLException(e);
- }
- return new String(dataCopy);
- }
-
- /**
- * Returns the number of characters in the <code>CLOB</code> value
- * designated by this <code>Clob</code> object.
- * @return length of the <code>CLOB</code> in characters
- */
- public long length() throws SQLException {
- if (len == -1) {
- long length = 0;
- Reader r = new BufferedReader(getCharacterStream());
- try {
- while (r.read() != -1) {
- length++;
- }
- } catch (IOException e) {
- throw new SQLException(e);
- } finally {
- try {
- r.close();
- } catch (IOException e) {
- }
- }
- this.len = length;
- }
- return len;
- }
-
- /**
- * Determines the character position at which the specified
- * <code>Clob</code> object <code>searchstr</code> appears in this
- * <code>Clob</code> object. The search begins at position
- * <code>start</code>.
- * @param searchstr the <code>Clob</code> object for which to search
- * @param start the position at which to begin searching; the first
- * position is 1
- * @return the position at which the <code>Clob</code> object appears,
- * else -1; the first position is 1
- */
- public long position(final Clob searchstr, long start) throws SQLException {
- if (searchstr == null) {
- return -1;
- }
-
- return LobSearchUtil.position(new ClobStreamProvider(searchstr), searchstr.length(), new ClobStreamProvider(this), this.length(), start, 2);
- }
-
- /**
- * Determines the character position at which the specified substring
- * <code>searchstr</code> appears in the SQL <code>CLOB</code> value
- * represented by this <code>Clob</code> object. The search
- * begins at position <code>start</code>.
- * @param searchstr the substring for which to search
- * @param start the position at which to begin searching; the first position
- * is 1
- * @return the position at which the substring appears, else -1; the first
- * position is 1
- * @exception SQLException if there is an error accessing the
- * <code>CLOB</code> value
- */
- public long position(String searchstr, long start) throws SQLException {
- if (searchstr == null) {
- return -1;
- }
- return position(new SerialClob(searchstr.toCharArray()), start);
- }
-
- public Reader getCharacterStream(long arg0, long arg1) throws SQLException {
- throw SqlUtil.createFeatureNotSupportedException();
- }
-
- public OutputStream setAsciiStream(long arg0) throws SQLException {
- throw SqlUtil.createFeatureNotSupportedException();
- }
-
- public Writer setCharacterStream(long arg0) throws SQLException {
- throw SqlUtil.createFeatureNotSupportedException();
- }
-
- public int setString(long arg0, String arg1) throws SQLException {
- throw SqlUtil.createFeatureNotSupportedException();
- }
-
- public int setString(long arg0, String arg1, int arg2, int arg3)
- throws SQLException {
- throw SqlUtil.createFeatureNotSupportedException();
- }
-
- public void truncate(long arg0) throws SQLException {
- throw SqlUtil.createFeatureNotSupportedException();
- }
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/ClobType.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/ClobType.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/ClobType.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,227 +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.common.types;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Reader;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.sql.Clob;
-import java.sql.SQLException;
-
-import javax.sql.rowset.serial.SerialClob;
-
-import com.metamatrix.core.MetaMatrixRuntimeException;
-
-/**
- * This is wrapper on top of a "clob" object, which implements the "java.sql.Clob"
- * interface. This class also implements the Streamable interface
- */
-public final class ClobType extends Streamable<Clob> implements Clob, Sequencable {
-
- private static final long serialVersionUID = 2753412502127824104L;
-
- public ClobType() {
- }
-
- public ClobType(Clob clob) {
- super(clob);
- }
-
- /**
- * @see java.sql.Clob#getAsciiStream()
- */
- public InputStream getAsciiStream() throws SQLException {
- return this.reference.getAsciiStream();
- }
-
- /**
- * @see java.sql.Clob#getCharacterStream()
- */
- public Reader getCharacterStream() throws SQLException {
- return this.reference.getCharacterStream();
- }
-
- /**
- * @see java.sql.Clob#getSubString(long, int)
- */
- public String getSubString(long pos, int length) throws SQLException {
- return this.reference.getSubString(pos, length);
- }
-
- /**
- * @see java.sql.Clob#length()
- */
- public long length() throws SQLException {
- if (this.length != -1) {
- return this.length;
- }
-
- this.length = this.reference.length();
- return length;
- }
-
- /**
- * @see java.sql.Clob#position(java.sql.Clob, long)
- */
- public long position(Clob searchstr, long start) throws SQLException {
- return this.reference.position(searchstr, start);
- }
-
- /**
- * @see java.sql.Clob#position(java.lang.String, long)
- */
- public long position(String searchstr, long start) throws SQLException {
- return this.reference.position(searchstr, start);
- }
-
- /**
- * @see java.sql.Clob#setAsciiStream(long)
- */
- public OutputStream setAsciiStream(long pos) throws SQLException {
- return this.reference.setAsciiStream(pos);
- }
-
- /**
- * @see java.sql.Clob#setCharacterStream(long)
- */
- public Writer setCharacterStream(long pos) throws SQLException {
- return this.reference.setCharacterStream(pos);
- }
-
- /**
- * @see java.sql.Clob#setString(long, java.lang.String, int, int)
- */
- public int setString(long pos,
- String str,
- int offset,
- int len) throws SQLException {
- return this.reference.setString(pos, str, offset, len);
- }
-
- /**
- * @see java.sql.Clob#setString(long, java.lang.String)
- */
- public int setString(long pos, String str) throws SQLException {
- return this.reference.setString(pos, str);
- }
-
- /**
- * @see java.sql.Clob#truncate(long)
- */
- public void truncate(long len) throws SQLException {
- this.reference.truncate(len);
- }
-
- /**
- * Utility method to convert to String
- * @param clob
- * @return string form of the clob passed.
- */
- public static String getString(Clob clob) throws SQLException, IOException {
- Reader reader = clob.getCharacterStream();
- StringWriter writer = new StringWriter();
- int c = reader.read();
- while (c != -1) {
- writer.write((char)c);
- c = reader.read();
- }
- reader.close();
- String data = writer.toString();
- writer.close();
- return data;
- }
-
- private final static int CHAR_SEQUENCE_BUFFER_SIZE = 1 << 12;
-
- public CharSequence getCharSequence() {
- return new CharSequence() {
-
- private String buffer;
- private int beginPosition;
-
- public int length() {
- long result;
- try {
- result = ClobType.this.length();
- } catch (SQLException err) {
- throw new MetaMatrixRuntimeException(err);
- }
- if (((int)result) != result) {
- throw new MetaMatrixRuntimeException("Clob value is not representable by CharSequence"); //$NON-NLS-1$
- }
- return (int)result;
- }
-
- public char charAt(int index) {
- try {
- if (buffer == null || index < beginPosition || index >= beginPosition + buffer.length()) {
- buffer = ClobType.this.getSubString(index + 1, CHAR_SEQUENCE_BUFFER_SIZE);
- beginPosition = index;
- }
- return buffer.charAt(index - beginPosition);
- } catch (SQLException err) {
- throw new MetaMatrixRuntimeException(err);
- }
- }
-
- public CharSequence subSequence(int start,
- int end) {
- try {
- return ClobType.this.getSubString(start + 1, end - start);
- } catch (SQLException err) {
- throw new MetaMatrixRuntimeException(err);
- }
- }
-
- };
- }
- //## JDBC4.0-begin ##
- public void free() throws SQLException {
- this.reference.free();
- }
-
- public Reader getCharacterStream(long pos, long length) throws SQLException {
- return this.reference.getCharacterStream(pos, length);
- }
- //## JDBC4.0-end ##
-
- public static SerialClob createClob(char[] chars) {
- try {
- return new SerialClob(chars);
- } catch (SQLException e) {
- throw new MetaMatrixRuntimeException(e);
- }
- }
-
- private void writeObject(java.io.ObjectOutputStream out) throws IOException {
- try {
- length();
- } catch (SQLException e) {
- }
- out.defaultWriteObject();
- }
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/DataTypeManager.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/DataTypeManager.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/DataTypeManager.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,853 +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.common.types;
-
-import java.lang.ref.WeakReference;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.sql.Blob;
-import java.sql.Clob;
-import java.sql.SQLXML;
-import java.sql.Time;
-import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.xml.transform.Source;
-
-import com.metamatrix.common.types.basic.AnyToObjectTransform;
-import com.metamatrix.common.types.basic.AnyToStringTransform;
-import com.metamatrix.common.types.basic.BooleanToNumberTransform;
-import com.metamatrix.common.types.basic.ClobToSQLXMLTransform;
-import com.metamatrix.common.types.basic.FixedNumberToBigDecimalTransform;
-import com.metamatrix.common.types.basic.FixedNumberToBigIntegerTransform;
-import com.metamatrix.common.types.basic.FloatingNumberToBigDecimalTransform;
-import com.metamatrix.common.types.basic.FloatingNumberToBigIntegerTransform;
-import com.metamatrix.common.types.basic.NullToAnyTransform;
-import com.metamatrix.common.types.basic.NumberToBooleanTransform;
-import com.metamatrix.common.types.basic.NumberToByteTransform;
-import com.metamatrix.common.types.basic.NumberToDoubleTransform;
-import com.metamatrix.common.types.basic.NumberToFloatTransform;
-import com.metamatrix.common.types.basic.NumberToIntegerTransform;
-import com.metamatrix.common.types.basic.NumberToLongTransform;
-import com.metamatrix.common.types.basic.NumberToShortTransform;
-import com.metamatrix.common.types.basic.ObjectToAnyTransform;
-import com.metamatrix.common.types.basic.SQLXMLToClobTransform;
-import com.metamatrix.common.util.PropertiesUtils;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.ErrorMessageKeys;
-import com.metamatrix.core.MetaMatrixRuntimeException;
-import com.metamatrix.core.util.ArgCheck;
-import com.metamatrix.core.util.HashCodeUtil;
-
-/**
- * <p>
- * This class manages data type, conversions between data types, and comparators
- * for data types. In the future other data type information may be managed
- * here.
- * </p>
- *
- * <p>
- * In general, methods are provided to refer to types either by Class, or by
- * Class name. The benefit of the Class name option is that the user does not
- * need to load the Class object, which may not be in the classpath. The
- * advantage of the Class option is speed.
- * </p>
- */
-public class DataTypeManager {
-
- private static final boolean USE_VALUE_CACHE = PropertiesUtils.getBooleanProperty(System.getProperties(), "org.teiid.useValueCache", true); //$NON-NLS-1$
-
- private static boolean valueCacheEnabled;
-
- private interface ValueCache<T> {
- T getValue(T value);
- }
-
- private static class HashedValueCache<T> implements ValueCache<T> {
-
- final Object[] cache;
-
- HashedValueCache(int size) {
- cache = new Object[1 << size];
- }
-
- @SuppressWarnings("unchecked")
- public T getValue(T value) {
- int index = hash(primaryHash(value)) & (cache.length - 1);
- Object canonicalValue = get(index);
- if (value.equals(canonicalValue)) {
- return (T)canonicalValue;
- }
- set(index, value);
- return value;
- }
-
- protected Object get(int index) {
- return cache[index];
- }
-
- protected void set(int index, T value) {
- cache[index] = value;
- }
-
- protected int primaryHash(T value) {
- return value.hashCode();
- }
-
- /*
- * The same power of 2 hash bucketing from the Java HashMap
- */
- final static int hash(int h) {
- h ^= (h >>> 20) ^ (h >>> 12);
- return h ^= (h >>> 7) ^ (h >>> 4);
- }
- }
-
- private static Map<Class<?>, ValueCache<?>> valueMaps = new HashMap<Class<?>, ValueCache<?>>(128);
-
- public static final int MAX_STRING_LENGTH = 4000;
-
- public static final class DataTypeAliases {
- public static final String VARCHAR = "varchar"; //$NON-NLS-1$
- public static final String TINYINT = "tinyint"; //$NON-NLS-1$
- public static final String SMALLINT = "smallint"; //$NON-NLS-1$
- public static final String BIGINT = "bigint"; //$NON-NLS-1$
- public static final String REAL = "real"; //$NON-NLS-1$
- public static final String DECIMAL = "decimal"; //$NON-NLS-1$
- }
-
- public static final class DefaultDataTypes {
- public static final String STRING = "string"; //$NON-NLS-1$
- public static final String BOOLEAN = "boolean"; //$NON-NLS-1$
- public static final String BYTE = "byte"; //$NON-NLS-1$
- public static final String SHORT = "short"; //$NON-NLS-1$
- public static final String CHAR = "char"; //$NON-NLS-1$
- public static final String INTEGER = "integer"; //$NON-NLS-1$
- public static final String LONG = "long"; //$NON-NLS-1$
- public static final String BIG_INTEGER = "biginteger"; //$NON-NLS-1$
- public static final String FLOAT = "float"; //$NON-NLS-1$
- public static final String DOUBLE = "double"; //$NON-NLS-1$
- public static final String BIG_DECIMAL = "bigdecimal"; //$NON-NLS-1$
- public static final String DATE = "date"; //$NON-NLS-1$
- public static final String TIME = "time"; //$NON-NLS-1$
- public static final String TIMESTAMP = "timestamp"; //$NON-NLS-1$
- public static final String OBJECT = "object"; //$NON-NLS-1$
- public static final String NULL = "null"; //$NON-NLS-1$
- public static final String BLOB = "blob"; //$NON-NLS-1$
- public static final String CLOB = "clob"; //$NON-NLS-1$
- public static final String XML = "xml"; //$NON-NLS-1$
- }
-
- public static final class DefaultDataClasses {
- public static final Class<String> STRING = String.class;
- public static final Class<Boolean> BOOLEAN = Boolean.class;
- public static final Class<Byte> BYTE = Byte.class;
- public static final Class<Short> SHORT = Short.class;
- public static final Class<Character> CHAR = Character.class;
- public static final Class<Integer> INTEGER = Integer.class;
- public static final Class<Long> LONG = Long.class;
- public static final Class<BigInteger> BIG_INTEGER = BigInteger.class;
- public static final Class<Float> FLOAT = Float.class;
- public static final Class<Double> DOUBLE = Double.class;
- public static final Class<BigDecimal> BIG_DECIMAL = BigDecimal.class;
- public static final Class<java.sql.Date> DATE = java.sql.Date.class;
- public static final Class<Time> TIME = Time.class;
- public static final Class<Timestamp> TIMESTAMP = Timestamp.class;
- public static final Class<Object> OBJECT = Object.class;
- public static final Class<NullType> NULL = NullType.class;
- public static final Class<BlobType> BLOB = BlobType.class;
- public static final Class<ClobType> CLOB = ClobType.class;
- public static final Class<XMLType> XML = XMLType.class;
- }
-
- /**
- * Doubly-nested map of String srcType --> Map of String targetType -->
- * Transform
- */
- private static Map<String, Map<String, Transform>> transforms = new HashMap<String, Map<String, Transform>>(128);
-
- /** Utility to easily get Transform given srcType and targetType */
- private static Transform getTransformFromMaps(String srcType,
- String targetType) {
- Map<String, Transform> innerMap = transforms.get(srcType);
- if (innerMap != null) {
- return innerMap.get(targetType);
- }
- return null;
- }
-
- /** Base data type names and classes, Type name --> Type class */
- private static Map<String, Class> dataTypeNames = new LinkedHashMap<String, Class>(128);
-
- /** Base data type names and classes, Type class --> Type name */
- private static Map<Class, String> dataTypeClasses = new LinkedHashMap<Class, String>(128);
-
- private static Set<String> DATA_TYPE_NAMES;
-
- private static Set<Class> DATA_TYPE_CLASSES = Collections.unmodifiableSet(dataTypeClasses.keySet());
-
- private static Map<Class<?>, SourceTransform> sourceConverters = new HashMap<Class<?>, SourceTransform>();
-
- // Static initializer - loads basic transforms types
- static {
- // Load default data types - not extensible yet
- loadDataTypes();
-
- // Load default transforms
- loadBasicTransforms();
-
- loadSourceConversions();
- }
-
- /**
- * Constructor is private so instance creation is controlled by the class.
- */
- private DataTypeManager() {
- }
-
- /**
- * Add a new data type. For now this consists just of the Class - in the
- * future a data type will be a more complicated entity. This is
- * package-level for now as it is just used to add the default data types.
- *
- * @param dataType
- * New data type defined by Class
- */
- static void addDataType(String typeName, Class dataType) {
- dataTypeNames.put(typeName, dataType);
- dataTypeClasses.put(dataType, typeName);
- }
-
- /**
- * Get a set of all data type names.
- *
- * @return Set of data type names (String)
- */
- public static Set<String> getAllDataTypeNames() {
- return DATA_TYPE_NAMES;
- }
-
- public static Set<Class> getAllDataTypeClasses() {
- return DATA_TYPE_CLASSES;
- }
-
- /**
- * Get data type class.
- *
- * @param name
- * Data type name
- * @return Data type class
- */
- public static Class getDataTypeClass(String name) {
- if (name == null) {
- return DefaultDataClasses.NULL;
- }
-
- // Hope this is the correct case (as it will be if using the constants
- Class dataTypeClass = dataTypeNames.get(name);
-
- // If that fails, do a lower case to make sure we match
- if (dataTypeClass == null) {
- dataTypeClass = dataTypeNames.get(name.toLowerCase());
- }
-
- if (dataTypeClass == null) {
- dataTypeClass = DefaultDataClasses.OBJECT;
- }
- return dataTypeClass;
- }
-
- public static String getDataTypeName(Class typeClass) {
- if (typeClass == null) {
- return DefaultDataTypes.NULL;
- }
-
- String result = dataTypeClasses.get(typeClass);
- if (result == null) {
- result = DefaultDataTypes.OBJECT;
- }
-
- return result;
- }
-
- /**
- * Take an object and determine the MetaMatrix data type. In most cases,
- * this is simply the class of the object. Some special cases are when the
- * value is of type Object or Null.
- */
- public static Class determineDataTypeClass(Object value) {
- // Handle null case
- if (value == null) {
- return DefaultDataClasses.NULL;
- }
-
- return getDataTypeClass(getDataTypeName(convertToRuntimeType(value)
- .getClass()));
- }
-
- /**
- * Get a data value transformation between the sourceType and the
- * targetType.
- *
- * @param sourceType
- * Incoming value type
- * @param targetType
- * Outgoing value type
- * @return A transform if one exists, null otherwise
- */
- public static Transform getTransform(Class sourceType, Class targetType) {
- if (sourceType == null || targetType == null) {
- throw new IllegalArgumentException(CorePlugin.Util.getString(
- ErrorMessageKeys.TYPES_ERR_0002, sourceType, targetType));
- }
- return getTransformFromMaps(
- DataTypeManager.getDataTypeName(sourceType), DataTypeManager
- .getDataTypeName(targetType));
- }
-
- /**
- * Get a data value transformation between the sourceType with given name
- * and the targetType of given name. The Class for source and target type
- * are not needed to do this lookup.
- *
- * @param sourceTypeName
- * Incoming value type name
- * @param targetTypeName
- * Outgoing value type name
- * @return A transform if one exists, null otherwise
- */
- public static Transform getTransform(String sourceTypeName,
- String targetTypeName) {
- if (sourceTypeName == null || targetTypeName == null) {
- throw new IllegalArgumentException(CorePlugin.Util.getString(
- ErrorMessageKeys.TYPES_ERR_0003, sourceTypeName,
- targetTypeName));
- }
- return getTransformFromMaps(sourceTypeName, targetTypeName);
- }
-
- /**
- * Does a transformation exist between the source and target type?
- *
- * @param sourceType
- * Incoming value type
- * @param targetType
- * Outgoing value type
- * @return True if a transform exists
- */
- public static boolean isTransformable(Class sourceType, Class targetType) {
- if (sourceType == null || targetType == null) {
- throw new IllegalArgumentException(CorePlugin.Util.getString(
- ErrorMessageKeys.TYPES_ERR_0002, sourceType, targetType));
- }
- return (getTransformFromMaps(DataTypeManager
- .getDataTypeName(sourceType), DataTypeManager
- .getDataTypeName(targetType)) != null);
- }
-
- /**
- * Does a transformation exist between the source and target type of given
- * names? The Class for source and target type are not needed to do this
- * lookup.
- *
- * @param sourceTypeName
- * Incoming value type name
- * @param targetTypeName
- * Outgoing value type name
- * @return True if a transform exists
- */
- public static boolean isTransformable(String sourceTypeName,
- String targetTypeName) {
- if (sourceTypeName == null || targetTypeName == null) {
- throw new IllegalArgumentException(CorePlugin.Util.getString(
- ErrorMessageKeys.TYPES_ERR_0003, sourceTypeName,
- targetTypeName));
- }
- return (getTransformFromMaps(sourceTypeName, targetTypeName) != null);
- }
-
- /**
- * Add a new transform to the known transform types.
- *
- * @param transform
- * New transform to add
- */
- static void addTransform(Transform transform) {
- ArgCheck.isNotNull(transform);
- String sourceName = transform.getSourceTypeName();
- String targetName = transform.getTargetTypeName();
-
- Map<String, Transform> innerMap = transforms.get(sourceName);
- if (innerMap == null) {
- innerMap = new LinkedHashMap<String, Transform>();
- transforms.put(sourceName, innerMap);
- }
- innerMap.put(targetName, transform);
- }
-
- public static List<String> getImplicitConversions(String type) {
- Map<String, Transform> innerMap = transforms.get(type);
- if (innerMap != null) {
- List<String> result = new ArrayList<String>(innerMap.size());
- for (Map.Entry<String, Transform> entry : innerMap.entrySet()) {
- if (!entry.getValue().isExplicit()) {
- result.add(entry.getKey());
- }
- }
- return result;
- }
- return Collections.emptyList();
- }
-
- public static boolean isImplicitConversion(String srcType, String tgtType) {
- Transform t = getTransform(srcType, tgtType);
- if (t != null) {
- return !t.isExplicit();
- }
- return false;
- }
-
- public static boolean isExplicitConversion(String srcType, String tgtType) {
- Transform t = getTransform(srcType, tgtType);
- if (t != null) {
- return t.isExplicit();
- }
- return false;
- }
-
- /**
- * Is the supplied class type a LOB based data type?
- *
- * @param type
- * @return true if yes; false otherwise
- */
- public static boolean isLOB(Class<?> type) {
- return DataTypeManager.DefaultDataClasses.BLOB.equals(type)
- || DataTypeManager.DefaultDataClasses.CLOB.equals(type)
- || DataTypeManager.DefaultDataClasses.XML.equals(type);
- }
-
- public static boolean isLOB(String type) {
- return DataTypeManager.DefaultDataTypes.BLOB.equals(type)
- || DataTypeManager.DefaultDataTypes.CLOB.equals(type)
- || DataTypeManager.DefaultDataTypes.XML.equals(type);
- }
-
- /**
- * Load default data types.
- */
- static void loadDataTypes() {
- DataTypeManager.addDataType(DefaultDataTypes.BOOLEAN, DefaultDataClasses.BOOLEAN);
- DataTypeManager.addDataType(DefaultDataTypes.BYTE, DefaultDataClasses.BYTE);
- DataTypeManager.addDataType(DefaultDataTypes.SHORT, DefaultDataClasses.SHORT);
- DataTypeManager.addDataType(DefaultDataTypes.CHAR, DefaultDataClasses.CHAR);
- DataTypeManager.addDataType(DefaultDataTypes.INTEGER, DefaultDataClasses.INTEGER);
- DataTypeManager.addDataType(DefaultDataTypes.LONG, DefaultDataClasses.LONG);
- DataTypeManager.addDataType(DefaultDataTypes.BIG_INTEGER, DefaultDataClasses.BIG_INTEGER);
- DataTypeManager.addDataType(DefaultDataTypes.FLOAT, DefaultDataClasses.FLOAT);
- DataTypeManager.addDataType(DefaultDataTypes.DOUBLE, DefaultDataClasses.DOUBLE);
- DataTypeManager.addDataType(DefaultDataTypes.BIG_DECIMAL, DefaultDataClasses.BIG_DECIMAL);
- DataTypeManager.addDataType(DefaultDataTypes.DATE, DefaultDataClasses.DATE);
- DataTypeManager.addDataType(DefaultDataTypes.TIME, DefaultDataClasses.TIME);
- DataTypeManager.addDataType(DefaultDataTypes.TIMESTAMP, DefaultDataClasses.TIMESTAMP);
- DataTypeManager.addDataType(DefaultDataTypes.STRING, DefaultDataClasses.STRING);
- DataTypeManager.addDataType(DefaultDataTypes.CLOB, DefaultDataClasses.CLOB);
- DataTypeManager.addDataType(DefaultDataTypes.XML, DefaultDataClasses.XML);
- DataTypeManager.addDataType(DefaultDataTypes.OBJECT, DefaultDataClasses.OBJECT);
- DataTypeManager.addDataType(DefaultDataTypes.NULL, DefaultDataClasses.NULL);
- DataTypeManager.addDataType(DefaultDataTypes.BLOB, DefaultDataClasses.BLOB);
- DATA_TYPE_NAMES = Collections.unmodifiableSet(new LinkedHashSet<String>(dataTypeNames.keySet()));
- dataTypeNames.put(DataTypeAliases.BIGINT, DefaultDataClasses.LONG);
- dataTypeNames.put(DataTypeAliases.DECIMAL, DefaultDataClasses.BIG_DECIMAL);
- dataTypeNames.put(DataTypeAliases.REAL, DefaultDataClasses.FLOAT);
- dataTypeNames.put(DataTypeAliases.SMALLINT, DefaultDataClasses.SHORT);
- dataTypeNames.put(DataTypeAliases.TINYINT, DefaultDataClasses.BYTE);
- dataTypeNames.put(DataTypeAliases.VARCHAR, DefaultDataClasses.STRING);
-
- if (USE_VALUE_CACHE) {
- valueMaps.put(DefaultDataClasses.BOOLEAN, new ValueCache<Boolean>() {
- @Override
- public Boolean getValue(Boolean value) {
- return Boolean.valueOf(value);
- }
- });
- valueMaps.put(DefaultDataClasses.BYTE, new ValueCache<Byte>() {
- @Override
- public Byte getValue(Byte value) {
- return Byte.valueOf(value);
- }
- });
- valueMaps.put(DefaultDataClasses.SHORT, new HashedValueCache<Short>(13));
- valueMaps.put(DefaultDataClasses.CHAR, new HashedValueCache<Character>(13));
- valueMaps.put(DefaultDataClasses.INTEGER, new HashedValueCache<Integer>(14));
- valueMaps.put(DefaultDataClasses.LONG, new HashedValueCache<Long>(14));
- valueMaps.put(DefaultDataClasses.BIG_INTEGER, new HashedValueCache<BigInteger>(14));
- valueMaps.put(DefaultDataClasses.FLOAT, new HashedValueCache<Float>(14));
- valueMaps.put(DefaultDataClasses.DOUBLE, new HashedValueCache<Double>(14));
- valueMaps.put(DefaultDataClasses.DATE, new HashedValueCache<Date>(14));
- valueMaps.put(DefaultDataClasses.TIME, new HashedValueCache<Time>(14));
- valueMaps.put(DefaultDataClasses.TIMESTAMP, new HashedValueCache<Timestamp>(14));
- valueMaps.put(DefaultDataClasses.BIG_DECIMAL, new HashedValueCache<BigDecimal>(15) {
- @Override
- protected Object get(int index) {
- WeakReference<?> ref = (WeakReference<?>) cache[index];
- if (ref != null) {
- return ref.get();
- }
- return null;
- }
-
- @Override
- protected void set(int index, BigDecimal value) {
- cache[index] = new WeakReference<BigDecimal>(value);
- }
- });
- valueMaps.put(DefaultDataClasses.STRING, new HashedValueCache<String>(15) {
- HashedValueCache<String> smallCache = new HashedValueCache<String>(13);
-
- @Override
- public String getValue(String value) {
- if (value.length() < 14) {
- return smallCache.getValue(value);
- }
- return super.getValue(value);
- }
-
- @Override
- protected Object get(int index) {
- WeakReference<?> ref = (WeakReference<?>) cache[index];
- if (ref != null) {
- return ref.get();
- }
- return null;
- }
-
- @Override
- protected void set(int index, String value) {
- cache[index] = new WeakReference<Object>(value);
- }
-
- @Override
- protected int primaryHash(String value) {
- return HashCodeUtil.expHashCode(value);
- }
- });
- }
- }
-
- /**
- * Load all basic {@link Transform}s into the DataTypeManager. This standard
- * set is always installed but may be overridden.
- */
- static void loadBasicTransforms() {
- DataTypeManager.addTransform(new BooleanToNumberTransform(Byte.valueOf((byte)1), Byte.valueOf((byte)0)));
- DataTypeManager.addTransform(new BooleanToNumberTransform(Short.valueOf((short)1), Short.valueOf((short)0)));
- DataTypeManager.addTransform(new BooleanToNumberTransform(Integer.valueOf(1), Integer.valueOf(0)));
- DataTypeManager.addTransform(new BooleanToNumberTransform(Long.valueOf(1), Long.valueOf(0)));
- DataTypeManager.addTransform(new BooleanToNumberTransform(BigInteger.valueOf(1), BigInteger.valueOf(0)));
- DataTypeManager.addTransform(new BooleanToNumberTransform(Float.valueOf(1), Float.valueOf(0)));
- DataTypeManager.addTransform(new BooleanToNumberTransform(Double.valueOf(1), Double.valueOf(0)));
- DataTypeManager.addTransform(new BooleanToNumberTransform(BigDecimal.valueOf(1), BigDecimal.valueOf(0)));
- DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.BOOLEAN));
-
- DataTypeManager.addTransform(new NumberToBooleanTransform(Byte.valueOf((byte)0)));
- DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.BYTE, false));
- DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.BYTE, false));
- DataTypeManager.addTransform(new NumberToLongTransform(DefaultDataClasses.BYTE, false, false));
- DataTypeManager.addTransform(new FixedNumberToBigIntegerTransform(DefaultDataClasses.BYTE));
- DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.BYTE, false, false));
- DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.BYTE, false, false));
- DataTypeManager.addTransform(new FixedNumberToBigDecimalTransform(DefaultDataClasses.BYTE));
- DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.BYTE));
-
- DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.CHAR));
-
- DataTypeManager.addTransform(new NumberToBooleanTransform(Short.valueOf((short)0)));
- DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.SHORT));
- DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.SHORT, false));
- DataTypeManager.addTransform(new NumberToLongTransform(DefaultDataClasses.SHORT, false, false));
- DataTypeManager.addTransform(new FixedNumberToBigIntegerTransform(DefaultDataClasses.SHORT));
- DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.SHORT, false, false));
- DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.SHORT, false, false));
- DataTypeManager.addTransform(new FixedNumberToBigDecimalTransform(DefaultDataClasses.SHORT));
- DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.SHORT));
-
- DataTypeManager.addTransform(new NumberToBooleanTransform(Integer.valueOf(0)));
- DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.INTEGER));
- DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.INTEGER, true));
- DataTypeManager.addTransform(new NumberToLongTransform(DefaultDataClasses.INTEGER, false, false));
- DataTypeManager.addTransform(new FixedNumberToBigIntegerTransform(DefaultDataClasses.INTEGER));
- DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.INTEGER, false, true)); //lossy, but not narrowing
- DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.INTEGER, false, false));
- DataTypeManager.addTransform(new FixedNumberToBigDecimalTransform(DefaultDataClasses.INTEGER));
- DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.INTEGER));
-
- DataTypeManager.addTransform(new NumberToBooleanTransform(Long.valueOf(0)));
- DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.LONG));
- DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.LONG, true));
- DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.LONG, true));
- DataTypeManager.addTransform(new FixedNumberToBigIntegerTransform(DefaultDataClasses.LONG));
- DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.LONG, false, true)); //lossy, but not narrowing
- DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.LONG, false, true)); //lossy, but not narrowing
- DataTypeManager.addTransform(new FixedNumberToBigDecimalTransform(DefaultDataClasses.LONG));
- DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.LONG));
-
- DataTypeManager.addTransform(new NumberToBooleanTransform(BigInteger.valueOf(0)));
- DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.BIG_INTEGER));
- DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.BIG_INTEGER, true));
- DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.BIG_INTEGER, true));
- DataTypeManager.addTransform(new NumberToLongTransform(DefaultDataClasses.BIG_INTEGER, true, false));
- DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.BIG_INTEGER, true, false));
- DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.BIG_INTEGER, true, false));
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.BigIntegerToBigDecimalTransform());
- DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.BIG_INTEGER));
-
- DataTypeManager.addTransform(new NumberToBooleanTransform(BigDecimal.valueOf(0)));
- DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.BIG_DECIMAL));
- DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.BIG_DECIMAL, true));
- DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.BIG_DECIMAL, true));
- DataTypeManager.addTransform(new NumberToLongTransform(DefaultDataClasses.BIG_DECIMAL, true, false));
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.BigDecimalToBigIntegerTransform());
- DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.BIG_DECIMAL, true, false));
- DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.BIG_DECIMAL, true, false));
- DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.BIG_DECIMAL));
-
- DataTypeManager.addTransform(new NumberToBooleanTransform(Float.valueOf(0)));
- DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.FLOAT));
- DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.FLOAT, true));
- DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.FLOAT, true));
- DataTypeManager.addTransform(new NumberToLongTransform(DefaultDataClasses.FLOAT, false, true)); //lossy, but not narrowing
- DataTypeManager.addTransform(new FloatingNumberToBigIntegerTransform(DefaultDataClasses.FLOAT));
- DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.FLOAT, false, false));
- DataTypeManager.addTransform(new FloatingNumberToBigDecimalTransform(DefaultDataClasses.FLOAT));
- DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.FLOAT));
-
- DataTypeManager.addTransform(new NumberToBooleanTransform(Double.valueOf(0)));
- DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.DOUBLE));
- DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.DOUBLE, true));
- DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.DOUBLE, true));
- DataTypeManager.addTransform(new NumberToLongTransform( DefaultDataClasses.DOUBLE, false, true)); //lossy, but not narrowing
- DataTypeManager.addTransform(new FloatingNumberToBigIntegerTransform(DefaultDataClasses.DOUBLE));
- DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.DOUBLE, true, false));
- DataTypeManager.addTransform(new FloatingNumberToBigDecimalTransform(DefaultDataClasses.DOUBLE));
- DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.DOUBLE));
-
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.DateToTimestampTransform());
- DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.DATE));
-
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.TimeToTimestampTransform());
- DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.TIME));
-
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.TimestampToTimeTransform());
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.TimestampToDateTransform());
- DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.TIMESTAMP));
-
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToBooleanTransform());
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToByteTransform());
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToShortTransform());
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToIntegerTransform());
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToLongTransform());
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToBigIntegerTransform());
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToFloatTransform());
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToDoubleTransform());
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToBigDecimalTransform());
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToTimeTransform());
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToDateTransform());
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToTimestampTransform());
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToCharacterTransform());
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToClobTransform());
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.StringToSQLXMLTransform());
-
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.ClobToStringTransform());
- DataTypeManager.addTransform(new ClobToSQLXMLTransform());
-
- DataTypeManager.addTransform(new com.metamatrix.common.types.basic.SQLXMLToStringTransform());
- DataTypeManager.addTransform(new SQLXMLToClobTransform());
-
- for (Class<?> type : getAllDataTypeClasses()) {
- if (type != DefaultDataClasses.OBJECT) {
- DataTypeManager.addTransform(new AnyToObjectTransform(type));
- DataTypeManager.addTransform(new ObjectToAnyTransform(type));
- }
- if (type != DefaultDataClasses.NULL) {
- DataTypeManager.addTransform(new NullToAnyTransform(type));
- }
- }
-
- }
-
- static void loadSourceConversions() {
- sourceConverters.put(Clob.class, new SourceTransform<Clob, ClobType>() {
- //## JDBC4.0-begin ##
- @Override
- //## JDBC4.0-end ##
- public ClobType transform(Clob value) {
- return new ClobType(value);
- }
- });
- sourceConverters.put(char[].class, new SourceTransform<char[], ClobType>() {
- //## JDBC4.0-begin ##
- @Override
- //## JDBC4.0-end ##
- public ClobType transform(char[] value) {
- return new ClobType(ClobType.createClob(value));
- }
- });
- sourceConverters.put(Blob.class, new SourceTransform<Blob, BlobType>() {
- //## JDBC4.0-begin ##
- @Override
- //## JDBC4.0-end ##
- public BlobType transform(Blob value) {
- return new BlobType(value);
- }
- });
- addSourceTransform(byte[].class, new SourceTransform<byte[], BlobType>() {
- //## JDBC4.0-begin ##
- @Override
- //## JDBC4.0-end ##
- public BlobType transform(byte[] value) {
- return new BlobType(BlobType.createBlob(value));
- }
- });
- addSourceTransform(SQLXML.class, new SourceTransform<SQLXML, XMLType>() {
- //## JDBC4.0-begin ##
- @Override
- //## JDBC4.0-end ##
- public XMLType transform(SQLXML value) {
- return new XMLType(value);
- }
- });
- //Note: the default transform from non-InputStreamFactory source is a fully materialized string
- addSourceTransform(Source.class, new SourceTransform<Source, XMLType>() {
- //## JDBC4.0-begin ##
- @Override
- //## JDBC4.0-end ##
- public XMLType transform(Source value) {
- if (value instanceof InputStreamFactory) {
- return new XMLType(new SQLXMLImpl((InputStreamFactory)value));
- }
- StandardXMLTranslator sxt = new StandardXMLTranslator(value);
- try {
- return new XMLType(new SQLXMLImpl(sxt.getString()));
- } catch (Exception e) {
- throw new MetaMatrixRuntimeException(e);
- }
- }
- });
- addSourceTransform(Date.class, new SourceTransform<Date, Timestamp>() {
- //## JDBC4.0-begin ##
- @Override
- //## JDBC4.0-end ##
- public Timestamp transform(Date value) {
- return new Timestamp(value.getTime());
- }
- });
- }
-
- public static Object convertToRuntimeType(Object value) {
- if (value == null) {
- return null;
- }
- Class<?> c = value.getClass();
- if (getAllDataTypeClasses().contains(c)) {
- return value;
- }
- SourceTransform t = sourceConverters.get(c);
- if (t != null) {
- return t.transform(value);
- }
- for (Map.Entry<Class<?>, SourceTransform> entry : sourceConverters.entrySet()) {
- if (entry.getKey().isAssignableFrom(c)) {
- return entry.getValue().transform(value);
- }
- }
- return value; // "object type"
- }
-
- @SuppressWarnings("unchecked")
- public static <T> T transformValue(Object value, Class<T> targetClass)
- throws TransformationException {
- if (value == null) {
- return (T)value;
- }
- return transformValue(value, value.getClass(), targetClass);
- }
-
- @SuppressWarnings("unchecked")
- public static <T> T transformValue(Object value, Class sourceType,
- Class<T> targetClass) throws TransformationException {
- if (value == null || sourceType == targetClass) {
- return (T) value;
- }
- Transform transform = DataTypeManager.getTransform(sourceType,
- targetClass);
- if (transform == null) {
- Object[] params = new Object[] { sourceType, targetClass, value};
- throw new TransformationException(CorePlugin.Util.getString("ObjectToAnyTransform.Invalid_value", params)); //$NON-NLS-1$
- }
- T result = (T) transform.transform(value);
- return getCanonicalValue(result);
- }
-
- public static boolean isNonComparable(String type) {
- return DataTypeManager.DefaultDataTypes.OBJECT.equals(type)
- || DataTypeManager.DefaultDataTypes.BLOB.equals(type)
- || DataTypeManager.DefaultDataTypes.CLOB.equals(type)
- || DataTypeManager.DefaultDataTypes.XML.equals(type);
- }
-
- public static <S> void addSourceTransform(Class<S> sourceClass, SourceTransform<S, ?> transform) {
- sourceConverters.put(sourceClass, transform);
- }
-
- public static void setValueCacheEnabled(boolean enabled) {
- valueCacheEnabled = enabled;
- }
-
- public static boolean isValueCacheEnabled() {
- return valueCacheEnabled;
- }
-
- @SuppressWarnings("unchecked")
- public static <T> T getCanonicalValue(T value) {
- if (USE_VALUE_CACHE && valueCacheEnabled) {
- if (value == null) {
- return null;
- }
- //TODO: this initial lookup is inefficient, since there are likely collisions
- ValueCache valueCache = valueMaps.get(value.getClass());
- if (valueCache != null) {
- value = (T)valueCache.getValue(value);
- }
- }
- return value;
- }
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/InputStreamFactory.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/InputStreamFactory.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/InputStreamFactory.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,88 +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.common.types;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.nio.charset.Charset;
-
-import javax.xml.transform.Source;
-
-public abstract class InputStreamFactory implements Source {
-
- public interface StreamFactoryReference {
-
- void setStreamFactory(InputStreamFactory inputStreamFactory);
-
- }
-
- private String encoding;
- private String systemId;
- private long length = -1;
-
- public InputStreamFactory() {
- this(Charset.defaultCharset().name());
- }
-
- public InputStreamFactory(String encoding) {
- this.encoding = encoding;
- }
-
- /**
- * Get a new InputStream
- * @return
- */
- public abstract InputStream getInputStream() throws IOException;
-
- public String getEncoding() {
- return encoding;
- }
-
- @Override
- public String getSystemId() {
- return this.systemId;
- }
-
- @Override
- public void setSystemId(String systemId) {
- this.systemId = systemId;
- }
-
- public void free() throws IOException {
-
- }
-
- public long getLength() {
- return length;
- }
-
- public void setLength(long length) {
- this.length = length;
- }
-
- public Reader getCharacterStream() throws IOException {
- return new InputStreamReader(this.getInputStream(), this.getEncoding());
- }
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/JDBCSQLTypeInfo.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/JDBCSQLTypeInfo.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/JDBCSQLTypeInfo.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,264 +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.common.types;
-
-import java.sql.Blob;
-import java.sql.Clob;
-//## JDBC4.0-begin ##
-import java.sql.SQLXML;
-//## JDBC4.0-end ##
-
-/*## JDBC3.0-JDK1.5-begin ##
-import com.metamatrix.core.jdbc.SQLXML;
-## JDBC3.0-JDK1.5-end ##*/
-import java.sql.Types;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * <p> This is a helper class used to obtain SQL type information for java types.
- * The SQL type information is obtained from java.sql.Types class. The integers and
- * strings returned by methods in this class are based on constants in java.sql.Types.
- */
-
-public final class JDBCSQLTypeInfo {
-
-
- // Prevent instantiation
- private JDBCSQLTypeInfo() {}
-
- // metamatrix types
- public static final String STRING = DataTypeManager.DefaultDataTypes.STRING;
- public static final String BOOLEAN = DataTypeManager.DefaultDataTypes.BOOLEAN;
- public static final String TIME = DataTypeManager.DefaultDataTypes.TIME;
- public static final String DATE = DataTypeManager.DefaultDataTypes.DATE;
- public static final String TIMESTAMP = DataTypeManager.DefaultDataTypes.TIMESTAMP;
- public static final String INTEGER = DataTypeManager.DefaultDataTypes.INTEGER;
- public static final String FLOAT = DataTypeManager.DefaultDataTypes.FLOAT;
- public static final String DOUBLE = DataTypeManager.DefaultDataTypes.DOUBLE;
- public static final String BIGDECIMAL = DataTypeManager.DefaultDataTypes.BIG_DECIMAL;
- public static final String BIGINTEGER = DataTypeManager.DefaultDataTypes.BIG_INTEGER;
- public static final String BYTE = DataTypeManager.DefaultDataTypes.BYTE;
- public static final String SHORT = DataTypeManager.DefaultDataTypes.SHORT;
- public static final String LONG = DataTypeManager.DefaultDataTypes.LONG;
- public static final String CHAR = DataTypeManager.DefaultDataTypes.CHAR;
- public static final String OBJECT = DataTypeManager.DefaultDataTypes.OBJECT;
- public static final String CLOB = DataTypeManager.DefaultDataTypes.CLOB;
- public static final String BLOB = DataTypeManager.DefaultDataTypes.BLOB;
- public static final String XML = DataTypeManager.DefaultDataTypes.XML;
- public static final String NULL = DataTypeManager.DefaultDataTypes.NULL;
-
- //java class names
- public static final String STRING_CLASS = DataTypeManager.DefaultDataClasses.STRING.getName();
- public static final String BOOLEAN_CLASS = DataTypeManager.DefaultDataClasses.BOOLEAN.getName();
- public static final String TIME_CLASS = DataTypeManager.DefaultDataClasses.TIME.getName();
- public static final String DATE_CLASS = DataTypeManager.DefaultDataClasses.DATE.getName();
- public static final String TIMESTAMP_CLASS = DataTypeManager.DefaultDataClasses.TIMESTAMP.getName();
- public static final String INTEGER_CLASS = DataTypeManager.DefaultDataClasses.INTEGER.getName();
- public static final String FLOAT_CLASS = DataTypeManager.DefaultDataClasses.FLOAT.getName();
- public static final String DOUBLE_CLASS = DataTypeManager.DefaultDataClasses.DOUBLE.getName();
- public static final String BIGDECIMAL_CLASS = DataTypeManager.DefaultDataClasses.BIG_DECIMAL.getName();
- public static final String BYTE_CLASS = DataTypeManager.DefaultDataClasses.BYTE.getName();
- public static final String SHORT_CLASS = DataTypeManager.DefaultDataClasses.SHORT.getName();
- public static final String LONG_CLASS = DataTypeManager.DefaultDataClasses.LONG.getName();
- public static final String CHAR_CLASS = DataTypeManager.DefaultDataClasses.CHAR.getName();
- public static final String BIGINTEGER_CLASS = DataTypeManager.DefaultDataClasses.BIG_INTEGER.getName();
- public static final String OBJECT_CLASS = DataTypeManager.DefaultDataClasses.OBJECT.getName();
- public static final String CLOB_CLASS = Clob.class.getName();
- public static final String BLOB_CLASS = Blob.class.getName();
- //## JDBC4.0-begin ##
- public static final String XML_CLASS = SQLXML.class.getName();
- //## JDBC4.0-end ##
- /*## JDBC3.0-JDK1.5-begin ##
- public static final String XML_CLASS = DataTypeManager.DefaultDataClasses.OBJECT.getName();
- ## JDBC3.0-JDK1.5-end ##*/
-
- private static Map<String, Integer> NAME_TO_TYPE_MAP = new HashMap<String, Integer>();
- private static Map<Integer, String> TYPE_TO_NAME_MAP = new HashMap<Integer, String>();
- private static Map<String, String> NAME_TO_CLASSNAME = new HashMap<String, String>();
- private static Map<String, String> CLASSNAME_TO_NAME = new HashMap<String, String>();
-
- static {
- addTypeMapping(STRING, STRING_CLASS, Types.VARCHAR, Types.LONGVARCHAR, Types.CHAR);
- addTypeMapping(CHAR, CHAR_CLASS, Types.CHAR, false);
- addTypeMapping(BOOLEAN, BOOLEAN_CLASS, Types.BIT);
- addTypeMapping(TIME, TIME_CLASS, Types.TIME);
- addTypeMapping(DATE, DATE_CLASS, Types.DATE);
- addTypeMapping(TIMESTAMP, TIMESTAMP_CLASS, Types.TIMESTAMP);
- addTypeMapping(INTEGER, INTEGER_CLASS, Types.INTEGER);
- addTypeMapping(FLOAT, FLOAT_CLASS, Types.REAL);
- addTypeMapping(DOUBLE, DOUBLE_CLASS, Types.DOUBLE, Types.FLOAT);
- addTypeMapping(BIGDECIMAL, BIGDECIMAL_CLASS, Types.NUMERIC, Types.DECIMAL);
- addTypeMapping(BIGINTEGER, BIGINTEGER_CLASS, Types.NUMERIC, false);
- addTypeMapping(BYTE, BYTE_CLASS, Types.TINYINT);
- addTypeMapping(SHORT, SHORT_CLASS, Types.SMALLINT);
- addTypeMapping(LONG, LONG_CLASS, Types.BIGINT);
- addTypeMapping(OBJECT, OBJECT_CLASS, Types.JAVA_OBJECT);
- addTypeMapping(CLOB, CLOB_CLASS, Types.CLOB);
- addTypeMapping(BLOB, BLOB_CLASS, Types.BLOB, Types.BINARY, Types.VARBINARY, Types.LONGVARBINARY);
-
- addTypeMapping(NULL, null, Types.NULL);
-
- //## JDBC4.0-begin ##
- addTypeMapping(XML, XML_CLASS, Types.SQLXML);
- TYPE_TO_NAME_MAP.put(Types.NVARCHAR, STRING);
- TYPE_TO_NAME_MAP.put(Types.LONGNVARCHAR, STRING);
- TYPE_TO_NAME_MAP.put(Types.NCHAR, CHAR);
- TYPE_TO_NAME_MAP.put(Types.NCLOB, CLOB);
- //## JDBC4.0-end ##
-
- /*## JDBC3.0-JDK1.5-begin ##
- NAME_TO_CLASSNAME.put(XML, OBJECT_CLASS);
- ## JDBC3.0-JDK1.5-end ##*/
- }
-
- private static void addTypeMapping(String typeName, String javaClass, int sqlType, int ... secondaryTypes) {
- addTypeMapping(typeName, javaClass, sqlType, true);
- for (int type : secondaryTypes) {
- TYPE_TO_NAME_MAP.put(type, typeName);
- }
- }
-
- private static void addTypeMapping(String typeName, String javaClass, int sqlType, boolean preferedType) {
- NAME_TO_TYPE_MAP.put(typeName, sqlType);
- if (preferedType) {
- TYPE_TO_NAME_MAP.put(sqlType, typeName);
- }
- if (javaClass != null) {
- NAME_TO_CLASSNAME.put(typeName, javaClass);
- CLASSNAME_TO_NAME.put(javaClass, typeName);
- }
- }
-
- /**
- * This method is used to obtain a short indicating JDBC SQL type for any object.
- * The short values that give the type info are from java.sql.Types.
- * @param Name of the metamatrix type.
- * @return A short value representing SQL Type for the given java type.
- */
- public static final int getSQLType(String typeName) {
-
- if (typeName == null) {
- return Types.NULL;
- }
-
- Integer sqlType = NAME_TO_TYPE_MAP.get(typeName);
-
- if (sqlType == null) {
- return Types.JAVA_OBJECT;
- }
-
- return sqlType.intValue();
- }
-
- /**
- * Get sql Type from java class type name. This should not be called with runtime types
- * as Clob and Blob are represented by ClobType and BlobType respectively.
- * @param typeName
- * @return int
- */
- public static final int getSQLTypeFromClass(String className) {
-
- if (className == null) {
- return Types.NULL;
- }
-
- String name = CLASSNAME_TO_NAME.get(className);
-
- if (name == null) {
- return Types.JAVA_OBJECT;
- }
-
- return getSQLType(name);
- }
-
- /**
- * Get the sql type from the given runtime type
- * @param type
- * @return
- */
- public static final int getSQLTypeFromRuntimeType(Class<?> type) {
- if (type == null) {
- return Types.NULL;
- }
-
- String name = DataTypeManager.getDataTypeName(type);
-
- if (name == null) {
- return Types.JAVA_OBJECT;
- }
-
- return getSQLType(name);
- }
-
- /**
- * This method is used to obtain a the java class name given an int value
- * indicating JDBC SQL type. The int values that give the type info are from
- * java.sql.Types.
- * @param int value giving the SQL type code.
- * @return A String representing the java class name for the given SQL Type.
- */
- public static final String getJavaClassName(int jdbcSQLType) {
- String className = NAME_TO_CLASSNAME.get(getTypeName(jdbcSQLType));
-
- if (className == null) {
- return OBJECT_CLASS;
- }
-
- return className;
- }
-
- public static final String getTypeName(int sqlType) {
- String name = TYPE_TO_NAME_MAP.get(sqlType);
-
- if (name == null) {
- return OBJECT;
- }
-
- return name;
- }
-
- public static String[] getMMTypeNames() {
- return new String[] {
- STRING,
- BOOLEAN,
- TIME,
- DATE,
- TIMESTAMP,
- INTEGER,
- FLOAT,
- DOUBLE,
- BIGDECIMAL,
- BIGINTEGER,
- BYTE,
- SHORT,
- LONG,
- CHAR,
- OBJECT,
- CLOB,
- BLOB,
- XML
- };
- }
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/LobSearchUtil.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/LobSearchUtil.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/LobSearchUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,140 +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.common.types;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.sql.SQLException;
-
-import com.metamatrix.core.CorePlugin;
-
-public class LobSearchUtil {
-
- private static final int MOD = 37;
-
- public interface StreamProvider {
-
- InputStream getBinaryStream() throws SQLException;
-
- }
-
- static long position(StreamProvider pattern, long patternLength, StreamProvider target, long targetLength, long start, int bytesPerComparison) throws SQLException {
- if (pattern == null) {
- return -1;
- }
-
- patternLength *= bytesPerComparison;
- targetLength *= bytesPerComparison;
-
- if (start < 1) {
- Object[] params = new Object[] {new Long(start)};
- throw new SQLException(CorePlugin.Util.getString("MMClob_MMBlob.2", params)); //$NON-NLS-1$
- }
-
- start = (start - 1)*bytesPerComparison;
-
- if (start + patternLength > targetLength) {
- return -1;
- }
- /*
- * Use karp-rabin matching to reduce the cost of back tracing for failed matches
- *
- * TODO: optimize for patterns that are small enough to fit in a reasonable buffer
- */
- try {
- InputStream patternStream = pattern.getBinaryStream();
- InputStream targetStream = target.getBinaryStream();
- InputStream laggingTargetStream = target.getBinaryStream();
- try {
- int patternHash = computeStreamHash(patternStream, patternLength);
- int lastMod = 1;
- for (int i = 0; i < patternLength; i++) {
- lastMod *= MOD;
- }
- targetStream.skip(start);
- laggingTargetStream.skip(start);
-
- long position = start + 1;
-
- int streamHash = computeStreamHash(targetStream, patternLength);
-
- do {
- if ((position -1)%bytesPerComparison == 0 && patternHash == streamHash && validateMatch(pattern, target, position)) {
- return (position - 1)/bytesPerComparison + 1;
- }
-
- streamHash = MOD * streamHash + targetStream.read() - lastMod * laggingTargetStream.read();
- position++;
-
- } while (position + patternLength - 1 <= targetLength);
-
- return -1;
- } finally {
- if (patternStream != null) {
- patternStream.close();
- }
- if (targetStream != null) {
- targetStream.close();
- }
- if (laggingTargetStream != null) {
- laggingTargetStream.close();
- }
- }
- } catch (IOException e) {
- throw new SQLException(e);
- }
- }
-
- /**
- * validate that the pattern matches the given position.
- *
- * TODO: optimize to reuse the same targetstream/buffer for small patterns
- * @throws SQLException
- */
- static private boolean validateMatch(StreamProvider pattern, StreamProvider target, long position) throws IOException, SQLException {
- InputStream targetStream = target.getBinaryStream();
- InputStream patternStream = pattern.getBinaryStream();
- try {
- targetStream.skip(position -1);
- int value = 0;
- while ((value = patternStream.read()) != -1) {
- if (value != targetStream.read()) {
- return false;
- }
- }
- } finally {
- targetStream.close();
- patternStream.close();
- }
- return true;
- }
-
- static private int computeStreamHash(InputStream is, long length) throws IOException {
- int result = 0;
- for (int i = 0; i < length; i++) {
- result = result * MOD + is.read();
- }
- return result;
- }
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/NullType.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/NullType.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/NullType.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,29 +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.common.types;
-
-public final class NullType {
-
- // can't construct
- NullType() {}
-}
\ No newline at end of file
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/SQLXMLImpl.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/SQLXMLImpl.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/SQLXMLImpl.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,114 +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.common.types;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Writer;
-import java.nio.charset.Charset;
-import java.sql.SQLException;
-import java.sql.SQLXML;
-
-import javax.xml.transform.Result;
-import javax.xml.transform.Source;
-import javax.xml.transform.stream.StreamSource;
-
-import com.metamatrix.common.util.SqlUtil;
-import com.metamatrix.core.util.ObjectConverterUtil;
-
-
-/**
- * Default SQLXML impl
- */
-public class SQLXMLImpl extends BaseLob implements SQLXML {
-
- public SQLXMLImpl() {
-
- }
-
- /**
- * Constructs a SQLXML from bytes that are already encoded in {@link Streamable#ENCODING}
- * @param bytes
- */
- public SQLXMLImpl(final byte[] bytes) {
- super(new InputStreamFactory(Streamable.ENCODING) {
- @Override
- public InputStream getInputStream() throws IOException {
- return new ByteArrayInputStream(bytes);
- }
- });
- }
-
- public SQLXMLImpl(final String str) {
- this(str.getBytes(Charset.forName(Streamable.ENCODING)));
- }
-
- public SQLXMLImpl(InputStreamFactory factory) {
- super(factory);
- }
-
- @SuppressWarnings("unchecked")
- public <T extends Source> T getSource(Class<T> sourceClass) throws SQLException {
- if (sourceClass == null || sourceClass == StreamSource.class) {
- return (T)new StreamSource(getBinaryStream());
- }
- throw new SQLException("Unsupported source type " + sourceClass); //$NON-NLS-1$
- }
-
- public String getString() throws SQLException {
- try {
- return new String(ObjectConverterUtil.convertToByteArray(getBinaryStream()), this.getStreamFactory().getEncoding());
- } catch (IOException e) {
- SQLException ex = new SQLException(e.getMessage());
- ex.initCause(e);
- throw ex;
- }
- }
-
- public OutputStream setBinaryStream() throws SQLException {
- throw SqlUtil.createFeatureNotSupportedException();
- }
-
- public Writer setCharacterStream() throws SQLException {
- throw SqlUtil.createFeatureNotSupportedException();
- }
-
- public void setString(String value) throws SQLException {
- throw SqlUtil.createFeatureNotSupportedException();
- }
-
- public String toString() {
- try {
- return getString();
- } catch (SQLException e) {
- throw new RuntimeException(e);
- }
- }
-
- public <T extends Result> T setResult(Class<T> resultClass)
- throws SQLException {
- throw SqlUtil.createFeatureNotSupportedException();
- }
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/Sequencable.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/Sequencable.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/Sequencable.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,31 +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.common.types;
-
-import java.sql.SQLException;
-
-public interface Sequencable {
-
- public CharSequence getCharSequence() throws SQLException;
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/SourceTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/SourceTransform.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/SourceTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,37 +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.common.types;
-
-public interface SourceTransform<S, T> {
-
- /**
- * This method transforms a value of the source type into a value
- * of the target type.
- * @param value Incoming value of source type
- * @return Outgoing value of target type
- * @throws TransformationException if value is an incorrect input type or
- * the transformation fails
- */
- public T transform(S value);
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/StandardXMLTranslator.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/StandardXMLTranslator.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/StandardXMLTranslator.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,48 +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.common.types;
-
-import java.io.IOException;
-import java.io.Writer;
-
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-
-public class StandardXMLTranslator extends XMLTranslator {
-
- private Source source;
-
- public StandardXMLTranslator(Source source) {
- this.source = source;
- }
-
- @Override
- public void translate(Writer writer) throws TransformerException, IOException {
- Transformer t = TransformerFactory.newInstance().newTransformer();
- t.transform(source, new StreamResult(writer));
- }
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/Streamable.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/Streamable.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/Streamable.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,102 +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.common.types;
-
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-
-import com.metamatrix.core.CorePlugin;
-
-
-/**
- * A large value object which can be streamable in chunks of data each time
- *
- * <p>A reference stream id is tuple source id for a Streamble object where the
- * object is in buffer manager, but the contents will never be written to disk;
- * this is the ID that client needs to reference to get the chunk of data.
- */
-public abstract class Streamable<T> implements Externalizable {
-
- private static final long serialVersionUID = -8252488562134729374L;
-
- public static final String ENCODING = "UTF-8"; //$NON-NLS-1$
- public static final String FORCE_STREAMING = "FORCE_STREAMING"; //$NON-NLS-1$
- public static final int STREAMING_BATCH_SIZE_IN_BYTES = 102400; // 100K
-
- private String referenceStreamId;
- protected transient T reference;
- protected long length = -1;
-
- public Streamable() {
-
- }
-
- public Streamable(T reference) {
- if (reference == null) {
- throw new IllegalArgumentException(CorePlugin.Util.getString("Streamable.isNUll")); //$NON-NLS-1$
- }
-
- this.reference = reference;
- }
-
- public long getLength() {
- return length;
- }
-
- public T getReference() {
- return reference;
- }
-
- public void setReference(T reference) {
- this.reference = reference;
- }
-
- public String getReferenceStreamId() {
- return this.referenceStreamId;
- }
-
- public void setReferenceStreamId(String id) {
- this.referenceStreamId = id;
- }
-
- @Override
- public String toString() {
- return reference.toString();
- }
-
- @Override
- public void readExternal(ObjectInput in) throws IOException,
- ClassNotFoundException {
- length = in.readLong();
- referenceStreamId = (String)in.readObject();
- }
-
- @Override
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeLong(length);
- out.writeObject(referenceStreamId);
- }
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/Transform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/Transform.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/Transform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,116 +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.common.types;
-
-import com.metamatrix.core.CorePlugin;
-
-/**
- * This interface represents the transformation from one data type to
- * another. For instance, from java.lang.String to java.lang.Integer
- * where java.lang.String is the the source type, "java.lang.String"
- * is the source name, etc.
- */
-public abstract class Transform {
-
- /**
- * This method transforms a value of the source type into a value
- * of the target type.
- * @param value Incoming value of source type
- * @return Outgoing value of target type
- * @throws TransformationException if value is an incorrect input type or
- * the transformation fails
- */
- public Object transform(Object value) throws TransformationException {
- if (value == null) {
- return null;
- }
- return transformDirect(value);
- }
-
-
- protected abstract Object transformDirect(Object value) throws TransformationException;
-
- /**
- * Type of the incoming value.
- * @return Source type
- */
- public abstract Class<?> getSourceType();
-
- /**
- * Name of the source type.
- * @return Name of source type
- */
- public String getSourceTypeName() {
- return DataTypeManager.getDataTypeName(getSourceType());
- }
-
- /**
- * Type of the outgoing value.
- * @return Target type
- */
- public abstract Class<?> getTargetType();
-
- /**
- * Name of the target type.
- * @return Name of target type
- */
- public String getTargetTypeName() {
- return DataTypeManager.getDataTypeName(getTargetType());
- }
-
- /**
- * Get nice display name for GUIs.
- * @return Display name
- */
- public String getDisplayName() {
- return getSourceTypeName() + " to " + getTargetTypeName(); //$NON-NLS-1$
- }
-
- /**
- * Get description.
- * @return Description of transform
- */
- public String getDescription() {
- return getDisplayName();
- }
-
- public boolean isExplicit() {
- return false;
- }
-
- /**
- * Override Object.toString() to do getDisplayName() version.
- * @return String representation of object
- */
- public String toString() {
- return getDisplayName();
- }
-
- protected void checkValueRange(Object value, Number min, Number max)
- throws TransformationException {
- if (((Comparable)value).compareTo(DataTypeManager.transformValue(min, getSourceType())) < 0 || ((Comparable)value).compareTo(DataTypeManager.transformValue(max, getSourceType())) > 0) {
- throw new TransformationException(CorePlugin.Util.getString("transform.value_out_of_range", value, getSourceType().getSimpleName(), getTargetType().getSimpleName())); //$NON-NLS-1$
- }
- }
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/TransformationException.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/TransformationException.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/TransformationException.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,80 +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.common.types;
-
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-
-/**
- * The exception is thrown when an error occurs during data transformation,
- * typically a formatting error or an invalid input type.
- */
-public class TransformationException extends MetaMatrixProcessingException {
-
- /**
- * No-Arg Constructor
- */
- public TransformationException( ) {
- super( );
- }
- /**
- * Construct an instance with the message specified.
- *
- * @param message A message describing the exception
- */
- public TransformationException( String message ) {
- super( message );
- }
-
- /**
- * Construct an instance with the message and error code specified.
- *
- * @param message A message describing the exception
- * @param code The error code
- */
- public TransformationException( String code, String message ) {
- super( code, message );
- }
-
- /**
- * Construct an instance from a message and an exception to chain to this one.
- *
- * @param code A code denoting the exception
- * @param e An exception to nest within this one
- */
- public TransformationException( Exception e, String message ) {
- super( e, message );
- }
-
- /**
- * Construct an instance from a message and a code and an exception to
- * chain to this one.
- *
- * @param e An exception to nest within this one
- * @param message A message describing the exception
- * @param code A code denoting the exception
- */
- public TransformationException( Exception e, String code, String message ) {
- super( e, code, message );
- }
-}
-
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/XMLTranslator.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/XMLTranslator.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/XMLTranslator.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,45 +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.common.types;
-
-import java.io.IOException;
-import java.io.StringWriter;
-import java.io.Writer;
-
-import javax.xml.transform.TransformerException;
-
-/**
- * This an interface defined to convert the various kinds of the XML sources
- * defined into a character stream.
- */
-public abstract class XMLTranslator {
-
- public abstract void translate(Writer writer) throws TransformerException, IOException;
-
- public String getString() throws IOException, TransformerException {
- StringWriter writer = new StringWriter();
- this.translate(writer);
- return writer.toString();
- }
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/types/XMLType.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/XMLType.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/XMLType.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,109 +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.common.types;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Reader;
-import java.io.Writer;
-import java.sql.SQLException;
-//## JDBC4.0-begin ##
-import java.sql.SQLXML;
-//## JDBC4.0-end ##
-
-/*## JDBC3.0-JDK1.5-begin ##
-import com.metamatrix.core.jdbc.SQLXML;
-## JDBC3.0-JDK1.5-end ##*/
-
-import javax.xml.transform.Result;
-import javax.xml.transform.Source;
-
-/**
- * This class represents the SQLXML object along with the Streamable interface. This is
- * class used everywhere in the MetaMatrix framework, but clients are restricted to use
- * only SQLXML interface on top of this.
- */
-public final class XMLType extends Streamable<SQLXML> implements SQLXML {
-
- public enum Type {
- UNKNOWN, DOCUMENT, FRAGMENT, SIBLINGS, COMMENT, PI, TEXT
- }
-
- private static final long serialVersionUID = -7922647237095135723L;
-
- private transient Type type = Type.UNKNOWN;
-
- public XMLType(){
-
- }
-
- public XMLType(SQLXML xml) {
- super(xml);
- }
-
- public InputStream getBinaryStream() throws SQLException {
- return this.reference.getBinaryStream();
- }
-
- public Reader getCharacterStream() throws SQLException {
- return this.reference.getCharacterStream();
- }
-
- public <T extends Source> T getSource(Class<T> sourceClass) throws SQLException {
- return this.reference.getSource(sourceClass);
- }
-
- public String getString() throws SQLException {
- return this.reference.getString();
- }
-
- public OutputStream setBinaryStream() throws SQLException {
- return this.reference.setBinaryStream();
- }
-
- public Writer setCharacterStream() throws SQLException {
- return this.reference.setCharacterStream();
- }
-
- public void setString(String value) throws SQLException {
- this.reference.setString(value);
- }
-
- public void free() throws SQLException {
- this.reference.free();
- }
-
- public <T extends Result> T setResult(Class<T> resultClass)
- throws SQLException {
- return this.reference.setResult(resultClass);
- }
-
- public Type getType() {
- return type;
- }
-
- public void setType(Type type) {
- this.type = type;
- }
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/util/ApplicationInfo.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/util/ApplicationInfo.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/util/ApplicationInfo.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,210 +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.common.util;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Serializable;
-import java.net.URL;
-import java.text.DateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.StringTokenizer;
-
-import com.metamatrix.core.MetaMatrixRuntimeException;
-import com.metamatrix.core.util.ObjectConverterUtil;
-
-public final class ApplicationInfo implements Serializable {
-
- public static final String APPLICATION_PRODUCT_INFORMATION = "Product Information"; //$NON-NLS-1$
-
- public static final String APPLICATION_BUILD_NUMBER_PROPERTY = "Build"; //$NON-NLS-1$
-
- private static final ApplicationInfo INSTANCE = new ApplicationInfo();
-
- private static final String LINE_SEPARATOR = "\n"; //$NON-NLS-1$
-
- private Properties props = new Properties();
-
- private ApplicationInfo() {
- InputStream is = this.getClass().getResourceAsStream("application.properties"); //$NON-NLS-1$
- try {
- try {
- props.load(is);
- } finally {
- is.close();
- }
- } catch (IOException e) {
- throw new MetaMatrixRuntimeException(e);
- }
- }
-
- public String getReleaseNumber() {
- return props.getProperty("build.releaseNumber"); //$NON-NLS-1$
- }
-
- public String getMajorReleaseNumber() {
- return getReleaseNumber().substring(0, getReleaseNumber().lastIndexOf('.'));
- }
-
- public int getMajorReleaseVersion() {
- String version = getReleaseNumber().substring(0, getReleaseNumber().indexOf('.'));
- return Integer.parseInt(version);
- }
-
- public int getMinorReleaseVersion() {
- int majorIndex = getReleaseNumber().indexOf('.');
- String version = getReleaseNumber().substring(majorIndex+1, getReleaseNumber().indexOf('.', majorIndex+1));
- return Integer.parseInt(version);
- }
-
- public String getBuildNumber() {
- return props.getProperty("build.number"); //$NON-NLS-1$
- }
-
- public String getUrl() {
- return props.getProperty("url"); //$NON-NLS-1$
- }
-
- public String getCopyright() {
- return props.getProperty("copyright"); //$NON-NLS-1$
- }
-
- public String getBuildDate() {
- return props.getProperty("build.date"); //$NON-NLS-1$
- }
-
- /**
- * Get the application information instance for this VM.
- * @return the singleton instance for this VM; never null
- */
- public static ApplicationInfo getInstance() {
- return INSTANCE;
- }
-
- private static String getClassPath() {
- return System.getProperty( "java.class.path" ); //$NON-NLS-1$
- }
-
- /**
- * The getClasspathInfo method is used to capture the current classpath
- * information. The initial intent is to write this information
- * to a file at VM startup time for debugging purposes and ensuring
- * patches are applied.
- * @param outputstream
- * @since 4.2
- */
- public String getClasspathInfo() {
- String classPath = getClassPath();
-
- StringBuffer sb = new StringBuffer();
- sb.append("\nDate: " + DateFormat.getDateInstance().format(new Date()));//$NON-NLS-1$
- sb.append( LINE_SEPARATOR );
-
- Map pathResults = new HashMap();
- List reversetList = new ArrayList();
- String separator = System.getProperty( "path.separator" ); //$NON-NLS-1$
-
- StringTokenizer path = new StringTokenizer( classPath, separator );
-
- while(path.hasMoreTokens()){
- String pathElement = path.nextToken();
- File pathFile = new File( pathElement );
- if (pathFile.exists()) {
-// if (resourceExistInClassPath(pathElement)) {
- pathResults.put(pathElement, Boolean.TRUE);
-
- } else {
- pathResults.put(pathElement, Boolean.FALSE);
- }
- reversetList.add(pathElement);
- }
- sb.append("Classpath Information" ); //$NON-NLS-1$
- sb.append( LINE_SEPARATOR );
- sb.append("CLASSPATH: "); //$NON-NLS-1$
- sb.append(classPath);
- sb.append( LINE_SEPARATOR );
- sb.append( LINE_SEPARATOR );
-
- Iterator iter = reversetList.iterator();
- sb.append("---- Classpath Entries ----"); //$NON-NLS-1$
- sb.append( LINE_SEPARATOR );
- while ( iter.hasNext() ) {
- String epath = (String) iter.next();
- Boolean doesExist = (Boolean) pathResults.get(epath);
- sb.append(epath);
- if (!doesExist.booleanValue()) {
- sb.append(" (MISSING)");//$NON-NLS-1$
- }
- sb.append( LINE_SEPARATOR );
-
- }
-
-
- sb.append( LINE_SEPARATOR );
- sb.append("Note the (MISSING) at the end to designate that the classpath entry is missing");//$NON-NLS-1$
-
-
- try {
- // find all the patch readme files and print those out.
- Enumeration readmes = ClassLoader.getSystemResources("patch_readme.txt"); //$NON-NLS-1$
- sb.append( LINE_SEPARATOR );
- sb.append( LINE_SEPARATOR );
-
- sb.append("---- Patch Readme Entries----"); //$NON-NLS-1$
- sb.append( LINE_SEPARATOR );
- int cnt = 0;
- if (readmes != null) {
-
- while(readmes.hasMoreElements()) {
- ++cnt;
- URL url = (URL) readmes.nextElement();
- sb.append("Patch " + url.getFile() + ":"); //$NON-NLS-1$ //$NON-NLS-2$
- sb.append( LINE_SEPARATOR );
- InputStream is = url.openStream();
- byte[] data = ObjectConverterUtil.convertToByteArray(is);
- sb.append(new String(data));
- sb.append("-------------------------------------");//$NON-NLS-1$
- sb.append( LINE_SEPARATOR );
- is.close();
-
- }
- }
- if (cnt == 0) {
- sb.append("no Patch Readme Entries found"); //$NON-NLS-1$
- }
- } catch (IOException ioe) {
-
- }
-
- return sb.toString();
- }
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/util/PasswordMaskUtil.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/util/PasswordMaskUtil.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/util/PasswordMaskUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,122 +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.common.util;
-
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-
-/**
- * <p>This is a simple utility class to help keep password values from being
- * printed out, primarily from java.util.Properties object, into
- * MetaMatrix log files. This is <i>not</i> a robust security solution
- * for protecting passwords, and is only good insofar as we get all
- * other code to use this when necessary. When passwords are properly
- * encrypted in the database, this class will be no longer necessary.</p>
- *
- * <p>This class can be used in one of two ways. First, a Properties object
- * can be wrapped in an instance of this class - the properties object,
- * wrapped in this instance, can then be safely sent to LogManager to be
- * logged, or can otherwise be printed out. This instance will basically
- * duplicate the toString() method of a normal Properties object, but will
- * obfuscate any property values whose names end in any of the well-known
- * {@link #PASSWORD_PROP_SUFFIXES password property suffixes}.</p>
- *
- * <p>The second way is to just use this class's static
- * {@link #doesNameEndWithPasswordSuffix doesNameEndWithPasswordSuffix}
- * utility method by hand, passing in a String property name to
- * see if it ends with any of the well-known
- * {@link #PASSWORD_PROP_SUFFIXES password property suffixes}.</p>
- */
-public final class PasswordMaskUtil {
-
- /**
- * The known String suffixes that MetaMatrix property names end in.
- * Each of these is checked.
- */
- public static final String[] PASSWORD_PROP_SUFFIXES = new String[]{"password", "Password"}; //$NON-NLS-1$ //$NON-NLS-2$
-
- /**
- * The "mask" String that is printed out of the
- * {@link #toString} method, instead of the actual password value.
- */
- public static final String MASK_STRING = "*****"; //$NON-NLS-1$
-
- private Properties properties;
-
- /**
- * A Properties object can be wrapped by this class before, say,
- * being sent to LogManager. If this {@link #toString} method
- * is called, password properties will be printed out as
- * a {@link #MASK_STRING masked string}.
- * @param propertiesWithPassword Properties object that has
- * password property values inside it
- */
- public PasswordMaskUtil(Properties propertiesWithPassword){
- this.properties = propertiesWithPassword;
- }
-
- /**
- * This toString() method is basically the same as the
- * java.util.Properties class's toString() method, except that
- * if any of the properties in this class end with any of the
- * well-known {@link #PASSWORD_PROP_SUFFIXES password suffixes},
- * then the value will
- * be printed out as {@link #MASK_STRING}
- */
- public String toString(){
- int max = properties.size() - 1;
- StringBuffer buf = new StringBuffer();
- Iterator it = properties.entrySet().iterator();
-
- buf.append("{"); //$NON-NLS-1$
- String key = null;
- for (int i = 0; i <= max; i++) {
- Map.Entry e = (Map.Entry) (it.next());
- key = (String)e.getKey();
- if (doesNameEndWithPasswordSuffix(key)){
- buf.append(key + "=" + MASK_STRING); //$NON-NLS-1$
- } else {
- buf.append(key + "=" + e.getValue()); //$NON-NLS-1$
- }
- if (i < max)
- buf.append(", "); //$NON-NLS-1$
- }
- buf.append("}"); //$NON-NLS-1$
- return buf.toString();
- }
-
- /**
- * Indicates if the String propName ends in any of the well-known
- * {@link #PASSWORD_PROP_SUFFIXES password property suffixes}.</p>
- */
- public static boolean doesNameEndWithPasswordSuffix(String propName){
- for (int i=0; i<PASSWORD_PROP_SUFFIXES.length; i++){
- if (propName.endsWith(PASSWORD_PROP_SUFFIXES[i])){
- return true;
- }
- }
- return false;
- }
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/util/PropertiesUtils.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/util/PropertiesUtils.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/util/PropertiesUtils.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,1018 +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.common.util;
-
-import java.io.BufferedReader;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintStream;
-import java.lang.reflect.Method;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.MetaMatrixRuntimeException;
-import com.metamatrix.core.util.ArgCheck;
-import com.metamatrix.core.util.StringUtil;
-
-
-/**
- * Static utility methods for common tasks having to do with
- * java.util.Properties.
- */
-public final class PropertiesUtils {
-
- public static class InvalidPropertyException extends MetaMatrixRuntimeException {
-
- public InvalidPropertyException(String propertyName, String value, Class<?> expectedType, Throwable cause) {
- super(cause, CorePlugin.Util.getString("InvalidPropertyException.message", propertyName, value, expectedType.getSimpleName())); //$NON-NLS-1$
- }
-
- }
-
- /**
- * Returns a list of property names matching the given pattern. A '*' may be
- * given to match the pattern exactly up to the '*', then anything after.
- * Note: Should also implement matching with '?' which means match any single
- * char.
- * @param pattern The property name to match which may include a '*'.
- * @param props The properties to search.
- * @return The List of property names matching given pattern - may be empty
- * but never null.
- */
- public static List filter( String pattern, Properties props ) {
- boolean addAll = false;
- String searchStr = null;
- List propNames = new ArrayList();
- int globIndex = pattern.indexOf('*');
- if ( globIndex == -1 ) {
- searchStr = pattern;
- } else if ( globIndex == 0 ) {
- addAll = true;
- } else {
- searchStr = pattern.substring(0, globIndex);
- }
-
- Enumeration propNameEnum = props.propertyNames();
- while ( propNameEnum.hasMoreElements() ) {
- String name = (String) propNameEnum.nextElement();
- if ( name.startsWith(searchStr) || addAll ) {
- propNames.add(name);
- }
- }
-
- return propNames;
- }
-
-
- /**
- * Obtains from this source the list of all properties that match the pattern specified by the filter.
- * <p>
- * The filter is a string that may contain the '*' character as a wildcard one or more times
- * in the string. For example, the following filter:
- * <p>
- * <pre> *metamatrix.*</pre>
- * <p>
- * finds all properties that contain somewhere in the property name the string "metamatrix.".
- * @param filterPattern the string filter pattern that will be used to narrow the set of properties returned.
- * @param props The properties to search.
- * @return the enumeration of all of the property names of the primary source;
- * the enumeration may be empty if there is an error connecting to the property sources.
- */
- public static Properties getProperties(String filterPattern, Properties props) {
- Properties results = new Properties();
-
- boolean addAll = false;
- String searchStr = null;
- int globIndex = filterPattern.indexOf('*');
- if ( globIndex == -1 ) {
- searchStr = filterPattern;
- } else if ( globIndex == 0 ) {
- addAll = true;
- } else {
- searchStr = filterPattern.substring(0, globIndex);
- }
-
- Enumeration propNameEnum = props.propertyNames();
- while ( propNameEnum.hasMoreElements() ) {
- String name = (String) propNameEnum.nextElement();
- if ( name.startsWith(searchStr)) {
- Object value = props.get(name);
- if (value != null) {
- results.put(name.substring(searchStr.length()), value);
- }
- }
- else if (addAll) {
- results.put(name, props.get(name));
- }
- }
-
- return results;
- }
-
-
- /**
- * Performs a correct deep clone of the properties object by capturing
- * all properties in the default(s) and placing them directly into the
- * new Properties object. If the input is an instance of
- * <code>UnmodifiableProperties</code>, this method returns an
- * <code>UnmodifiableProperties</code> instance around a new (flattened)
- * copy of the underlying Properties object.
- */
- public static Properties clone( Properties props ) {
- return clone(props, null, false);
- }
-
- /**
- * Performs a correct deep clone of the properties object by capturing
- * all properties in the default(s) and placing them directly into the
- * new Properties object. If the input is an instance of
- * <code>UnmodifiableProperties</code>, this method returns an
- * <code>UnmodifiableProperties</code> instance around a new (flattened)
- * copy of the underlying Properties object.
- */
- public static Properties clone( Properties props, Properties defaults, boolean deepClone ) {
- Properties result = null;
- if ( defaults != null ) {
- if ( deepClone ) {
- defaults = clone(defaults);
- }
- result = new Properties(defaults);
- } else {
- result = new Properties();
- }
-
- putAll(result, props);
-
- return result;
- }
-
- /**
- * This method implements a 'compareTo' logic for two Properties objects,
- * equivalent to calling <code>p1.compareTo(p2)</code> if the
- * {@link java.util.Properties Properties} class implemented
- * {@link java.lang.Comparable Comparable} (which it does not).
- * @param p1 the first Properties instance to compare; may be null
- * @param p2 the second Properties instance to compare; may be null
- * @return a negative integer, zero, or a positive integer as <code>p1</code>
- * is less than, equal to, or greater than <code>p2</code>, respectively.
- */
- public static int compare( Properties p1, Properties p2 ) {
- if ( p1 != null ) {
- if ( p2 == null ) {
- return 1;
- }
- } else {
- if ( p2 != null ) {
- return -1;
- }
- return 0;
- }
-
-
- // Compare the number of property values ...
- int diff = p1.size() - p2.size();
- if ( diff != 0 ) {
- return diff;
- }
-
- // Iterate through the properties and compare values ...
- Map.Entry entry = null;
- Object p1Value = null;
- Object p2Value = null;
- Iterator iter = p1.entrySet().iterator();
- while ( iter.hasNext() ) {
- entry = (Map.Entry) iter.next();
- p1Value = entry.getValue();
- p2Value = p2.get(entry.getKey());
- if ( p1Value != null ) {
- if ( p2Value == null ) {
- return 1;
- }
- if ( p1Value instanceof Comparable ) {
- diff = ((Comparable)p1Value).compareTo(p2Value);
- } else {
- diff = p1Value.toString().compareTo(p2Value.toString());
- }
- if ( diff != 0 ) {
- return diff;
- }
- } else {
- if ( p2Value != null ) {
- return -1;
- }
- }
- }
- return 0;
- }
-
- /**
- * <p>This method is intended to replace the use of the <code>putAll</code>
- * method of <code>Properties</code> inherited from <code>java.util.Hashtable</code>.
- * The problem with that method is that, since it is inherited from
- * <code>Hashtable</code>, <i>default</i> properties are lost.
- * </p>
- * <p>For example, the following code
- * <pre><code>
- * Properties a;
- * Properties b;
- * //initialize ...
- * a.putAll(b);
- * </code></pre>
- * will fail <i>if</i> <code>b</code> had been constructed with a default
- * <code>Properties</code> object. Those defaults would be lost and
- * not added to <code>a</code>.</p>
- *
- * <p>The above code could be correctly performed with this method,
- * like this:
- * <pre><code>
- * Properties a;
- * Properties b;
- * //initialize ...
- * PropertiesUtils.putAll(a,b);
- * </code></pre>
- * In the above example, <code>a</code> is modified - properties are added to
- * it (note that if <code>a</code> has defaults they will remain unaffected.)
- * The properties from <code>b</code>, <i>including defaults</i>, will be
- * added to <code>a</code> using its <code>setProperty</code> method -
- * these new properties will overwrite any pre-existing ones of the same
- * name.
- * </p>
- *
- * @param addToThis This Properties object is modified; the properties
- * of the other parameter are added to this. The added property values
- * will replace any current property values of the same names.
- * @param withThese The properties (including defaults) of this
- * object are added to the "addToThis" parameter.
- */
- public static void putAll(Properties addToThis,
- Properties withThese) {
- if ( withThese != null && addToThis != null ) {
- Enumeration enumeration = withThese.propertyNames();
- while ( enumeration.hasMoreElements() ) {
- String propName = (String) enumeration.nextElement();
- Object propValue = withThese.get(propName);
- if ( propValue == null ) {
- //defaults can only be retrieved as strings
- propValue = withThese.getProperty(propName);
- }
- if ( propValue != null ) {
- addToThis.put(propName, propValue);
- }
- }
- }
- }
-
- public static void setOverrideProperies(Properties base, Properties override) {
- Enumeration overrideEnum = override.propertyNames();
- while (overrideEnum.hasMoreElements()) {
- String key = (String)overrideEnum.nextElement();
- String value = base.getProperty(key);
- String overRideValue = override.getProperty(key);
- if (value != null && !value.equals(overRideValue)) {
- base.setProperty(key, overRideValue);
- }
- }
- }
-
- public static int getIntProperty(Properties props, String propName, int defaultValue) throws InvalidPropertyException {
- String stringVal = props.getProperty(propName);
- if(stringVal == null) {
- return defaultValue;
- }
- stringVal = stringVal.trim();
- if (stringVal.length() == 0) {
- return defaultValue;
- }
- try {
- return Integer.parseInt(stringVal);
- } catch(NumberFormatException e) {
- throw new InvalidPropertyException(propName, stringVal, Integer.class, e);
- }
- }
-
- public static long getLongProperty(Properties props, String propName, long defaultValue) {
- String stringVal = props.getProperty(propName);
- if(stringVal == null) {
- return defaultValue;
- }
- stringVal = stringVal.trim();
- if (stringVal.length() == 0) {
- return defaultValue;
- }
- try {
- return Long.parseLong(stringVal);
- } catch(NumberFormatException e) {
- throw new InvalidPropertyException(propName, stringVal, Long.class, e);
- }
- }
-
- public static float getFloatProperty(Properties props, String propName, float defaultValue) {
- String stringVal = props.getProperty(propName);
- if(stringVal == null) {
- return defaultValue;
- }
- stringVal = stringVal.trim();
- if (stringVal.length() == 0) {
- return defaultValue;
- }
- try {
- return Float.parseFloat(stringVal);
- } catch(NumberFormatException e) {
- throw new InvalidPropertyException(propName, stringVal, Float.class, e);
- }
- }
-
- public static double getDoubleProperty(Properties props, String propName, double defaultValue) {
- String stringVal = props.getProperty(propName);
- if(stringVal == null) {
- return defaultValue;
- }
- stringVal = stringVal.trim();
- if (stringVal.length() == 0) {
- return defaultValue;
- }
- try {
- return Double.parseDouble(stringVal);
- } catch(NumberFormatException e) {
- throw new InvalidPropertyException(propName, stringVal, Double.class, e);
- }
- }
-
- public static boolean getBooleanProperty(Properties props, String propName, boolean defaultValue) {
- String stringVal = props.getProperty(propName);
- if(stringVal == null) {
- return defaultValue;
- }
- stringVal = stringVal.trim();
- if (stringVal.length() == 0) {
- return defaultValue;
- }
- try {
- return Boolean.valueOf(stringVal);
- } catch(NumberFormatException e) {
- throw new InvalidPropertyException(propName, stringVal, Float.class, e);
- }
- }
-
- /**
- * Read the header part of a properties file into a String.
- * @param fileName
- * @return
- * @throws IOException
- * @since 4.3
- */
- public static String loadHeader(String fileName) throws IOException {
- FileReader fr = null;
- BufferedReader br = null;
- try {
- fr = new FileReader(fileName);
- br = new BufferedReader(fr);
- String header = br.readLine();
- if (header != null && header.indexOf('#') == 0) {
- header = header.substring(1);
- }
- return header;
- } finally {
- if (br != null) {
- br.close();
- }
- if (fr != null) {
- fr.close();
- }
- }
- }
-
- public static Properties load(String fileName) throws IOException {
- InputStream is = null;
- try {
- Properties props = new Properties();
- is = new FileInputStream(fileName);
- props.load(is);
- return props;
- } finally {
- if (is != null) {
- is.close();
- }
- }
- }
-
- public static Properties loadFromURL(URL url) throws MalformedURLException, IOException {
- Properties result = new Properties();
- InputStream is = null;
- try {
- is = url.openStream();
- result.load(is);
- } finally {
- if (is != null) {
- is.close();
- }
- }
- return result;
- }
-
- public static Properties loadAsResource(Class clazz, String resourceName) throws IOException {
- InputStream is = null;
- Properties configProps = new Properties();
- try {
- is = clazz.getResourceAsStream(resourceName);
- ArgCheck.isNotNull(is);
- if (is != null) {
- configProps.load(is);
- }
- } finally {
- if (is != null) {
- try {
- is.close();
- } catch (Exception ce) {
-
- }
- }
- }
- return configProps;
- }
-
- public static Properties sort(Properties props) {
-
- List names = new ArrayList();
- Enumeration enumeration = props.propertyNames();
- while ( enumeration.hasMoreElements() ) {
- String name = (String) enumeration.nextElement();
- names.add(name);
- }
- Collections.sort(names);
-
- Properties newProps = new Properties();
- Iterator iter = names.iterator();
- while ( iter.hasNext() ) {
- String name = (String) iter.next();
- String propValue = props.getProperty(name);
- if ( propValue != null ) {
- newProps.setProperty(name, propValue);
- }
- }
- return newProps;
- }
-
-
- /**
- * Write the specified properties to the specified file,
- * with the specified header.
- * Results may not be sorted.
- * @param fileName
- * @param props
- * @param header
- * @throws IOException
- * @since 4.3
- */
- public static void print(String fileName, Properties props, String header) throws IOException {
- FileOutputStream stream = null;
- try {
- stream = new FileOutputStream(fileName);
- props.store(stream, header);
- stream.flush();
- } finally {
- try {
- if (stream != null) {
- stream.close();
- }
- } catch (Exception e) {
- }
- }
- }
-
-
-
- /**
- * Write the specified properties to the specified file,
- * with the specified header.
- * Results are sorted by property name.
- */
- public static void print( String fileName, Properties props ) throws IOException {
-
- FileOutputStream stream = null;
- PrintStream writer = null;
-
- try {
-
- stream = new FileOutputStream(fileName);
- writer = new PrintStream(stream);
-
- List names = new ArrayList();
- Enumeration enumeration = props.propertyNames();
- while ( enumeration.hasMoreElements() ) {
- String name = (String) enumeration.nextElement();
- names.add(name);
- }
- Collections.sort(names);
-
- StringBuffer sb;
-
- for (Iterator nIt=names.iterator(); nIt.hasNext(); ) {
- String name = (String) nIt.next();
-
- String value = props.getProperty(name);
-
- sb = new StringBuffer();
-
- sb.append(name);
- sb.append("="); //$NON-NLS-1$
- sb.append(value);
-
- writer.println(sb.toString());
- }
- writer.flush();
- } finally {
- try {
- if (writer != null) {
- writer.close();
- }
- } catch (Exception e){
-
- }
- try {
- if (stream != null) {
- stream.close();
- }
- } catch (Exception e){
-
- }
- }
-
-
- }
-
- public static void print( java.io.PrintStream stream, Properties props ) {
- if (props != null) {
- Collection sorted = sortPropertiesForPrinting(props);
- for (Iterator it=sorted.iterator(); it.hasNext(); ) {
- String value = (String) it.next();
- stream.println(value);
- }
- }
- }
-
- private static final String NEWLINE = "\n"; //$NON-NLS-1$
- public static String prettyPrint( Properties props ) {
- if (props != null) {
- Collection sorted = sortPropertiesForPrinting(props);
-
- StringBuffer outBuf = new StringBuffer();
-
- for (Iterator it=sorted.iterator(); it.hasNext(); ) {
- String value = (String) it.next();
- outBuf.append(value);
- outBuf.append(NEWLINE);
- }
-
- return outBuf.toString();
- }
- return ""; //$NON-NLS-1$
- }
-
- /**
- * Sorts the properties and returns a collection of entries
- * where each entry can be printed. Each entry will print in the
- * format of: Property: <code>name</code> = <code>value</code>
- */
-
- private static final String APREFIX = "Property '"; //$NON-NLS-1$
- private static final String AEQUAL = "'='"; //$NON-NLS-1$
- private static final String ASUFFIX = "'"; //$NON-NLS-1$
- private static final String TAB = "\t"; //$NON-NLS-1$
-
- public static Collection sortPropertiesForPrinting(Properties props) {
-
- Collection sortedProps = new ArrayList(props.size());
-
- List names = new ArrayList();
- Enumeration enumeration = props.propertyNames();
- while ( enumeration.hasMoreElements() ) {
- String name = (String) enumeration.nextElement();
- names.add(name);
- }
- Collections.sort(names);
-
- StringBuffer sb;
-
- for (Iterator nIt=names.iterator(); nIt.hasNext(); ) {
- String name = (String) nIt.next();
-
- String value = null;
- if (PasswordMaskUtil.doesNameEndWithPasswordSuffix(name)){
- value = PasswordMaskUtil.MASK_STRING;
- } else {
- value = props.getProperty(name);
- value= saveConvert(value, false);
- }
-
- name = saveConvert(name, true);
-
- sb = new StringBuffer(APREFIX);
-
- sb.append(name);
- sb.append(TAB);
- sb.append(AEQUAL);
- sb.append(value);
- sb.append(ASUFFIX);
-
-// sortedProps.add(APREFIX + name + TAB + AEQUAL + value + ASUFFIX);
- sortedProps.add(sb.toString());
- }
-
- return sortedProps;
-
- }
-
-// private static final String keyValueSeparators = "=: \t\r\n\f";
-
-// private static final String strictKeyValueSeparators = "=:";
-
- private static final String specialSaveChars = "=: \t\r\n\f#!"; //$NON-NLS-1$
-
-// private static final String whiteSpaceChars = " \t\r\n\f";
-
-
- /*
- * Converts unicodes to encoded \uxxxx
- * and writes out any of the characters in specialSaveChars
- * with a preceding slash
- */
- public static String saveConvert(String theString, boolean escapeSpace) {
- if ( theString == null ) {
- return ""; //$NON-NLS-1$
- }
- int len = theString.length();
- StringBuffer outBuffer = new StringBuffer(len*2);
-
- for(int x=0; x<len; x++) {
- char aChar = theString.charAt(x);
- switch(aChar) {
- case ' ':
- if (x == 0 || escapeSpace)
- outBuffer.append('\\');
-
- outBuffer.append(' ');
- break;
- case '\\':outBuffer.append('\\'); outBuffer.append('\\');
- break;
- case '\t':outBuffer.append('\\'); outBuffer.append('t');
- break;
- case '\n':outBuffer.append('\\'); outBuffer.append('n');
- break;
- case '\r':outBuffer.append('\\'); outBuffer.append('r');
- break;
- case '\f':outBuffer.append('\\'); outBuffer.append('f');
- break;
- default:
- if ((aChar < 0x0020) || (aChar > 0x007e)) {
- outBuffer.append('\\');
- outBuffer.append('u');
- outBuffer.append(toHex((aChar >> 12) & 0xF));
- outBuffer.append(toHex((aChar >> 8) & 0xF));
- outBuffer.append(toHex((aChar >> 4) & 0xF));
- outBuffer.append(toHex( aChar & 0xF));
- } else {
- if (specialSaveChars.indexOf(aChar) != -1)
- outBuffer.append('\\');
- outBuffer.append(aChar);
- }
- }
- }
- return outBuffer.toString();
- }
-
- /**
- * Convert a nibble to a hex character
- * @param nibble the nibble to convert.
- */
- private static char toHex(int nibble) {
- return hexDigit[(nibble & 0xF)];
- }
-
- /** A table of hex digits */
- private static final char[] hexDigit = {
- '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
- };
-
-
- public static final void copyProperty(Properties srcProperties, String srcPropName, Properties tgtProperties, String tgtPropName) {
- if(srcProperties == null || srcPropName == null || tgtProperties == null || tgtPropName == null) {
- return;
- }
-
- String value = srcProperties.getProperty(srcPropName);
- if(value != null) {
- tgtProperties.setProperty(tgtPropName, value);
- }
- }
-
- /**
- * The specialty of nested properties is, in a given property file
- * there can be values with pattern like "${...}"
- * <code>
- * key1=value1
- * key2=${key1}/value2
- * </code>
- * where the value of the <code>key2</code> should resolve to <code>value1/value2</code>
- * also if the property in the pattern <code>${..}</code> is not found in the loaded
- * properties, an exception is thrown. Multiple nesting is OK, however recursive nested is not supported.
- * @param original - Original properties to be resolved
- * @return resolved properties object.
- * @since 4.4
- */
- public static Properties resolveNestedProperties(Properties original) {
-
- for(Enumeration e = original.propertyNames(); e.hasMoreElements();) {
- String key = (String)e.nextElement();
- String value = original.getProperty(key);
-
- // this will take care of the if there are any non-string properties,
- // no nesting allowed on these.
- if (value == null) {
- continue;
- }
-
- boolean matched = true;
- boolean modified = false;
-
- while(matched) {
- // now match the pattern, then extract and find the value
- int start = value.indexOf("${"); //$NON-NLS-1$
- int end = start;
- if (start != -1) {
- end = value.indexOf('}', start);
- }
- matched = ((start != -1) && (end != -1));
- if (matched) {
- String nestedkey = value.substring(start+2, end);
- String nestedvalue = original.getProperty(nestedkey);
-
- // in cases where the key and the nestedkey are the same, this has to be bypassed
- // because it will cause an infinite loop, and because there will be no value
- // for the nestedkey that doesnt contain ${..} in the value
- if (key.equals(nestedkey)) {
- matched = false;
-
- } else {
-
-
- // this will handle case where we did not resolve, mark it blank
- if (nestedvalue == null) {
- throw new MetaMatrixRuntimeException(CorePlugin.Util.getString("PropertiesUtils.failed_to_resolve_property", nestedkey)); //$NON-NLS-1$
- }
- value = value.substring(0,start)+nestedvalue+value.substring(end+1);
- modified = true;
- }
- }
- }
- if(modified) {
- original.setProperty(key, value);
- }
- }
- return original;
- }
-
- // ======================================================
- /**
- * Returns a boolean indicating whether the string matched the given pattern.
- * A '*' may be
- * given to match the pattern exactly up to the '*', then anything after.
- * We will also support a leading star, and match on anything that ends with
- * the string specified after the star.
- * Note: Should also implement matching with '?' which means match any single
- * char.
- * @param pattern The property name to match which may include a '*'.
- * @param props The properties to search.
- * @return The boolean - passed or failed
- * but never null.
- */
- public static boolean filterTest( String pattern, String sCandidate ) {
-
- // Vars for match strategy
- char chStar = '*';
-
- // Match rule booleans. Please note that 'bLeading'
- // and 'bTrailing' refer to the string we are searching for.
- // For example, if the strategy is bLeading, and the Match frag
- // is "wet", and the candidate string is "wetrust", it will pass.
- // Likewise if the strategy is bTrailing and the Match frag is
- // "rust" and the candidate string is "wetrust", it will pass.
- boolean bLeading = false;
- boolean bTrailing = false;
- boolean bFullMatch = false;
- boolean bAnywhere = false;
- boolean bAllMatch = false;
-
- boolean bPass = false;
-
- String sMatchFrag = ""; //$NON-NLS-1$
-// List propNames = new ArrayList();
-
-
- // 1. Analyze pattern to resolve match strategy
-
- // First ensure the pattern is safe to work with.
- // If the pattern is an empty string, set it to '*',
- // which means anything passes.
- pattern = pattern.trim();
- if ( pattern.length() == 0 )
- pattern = "*"; //$NON-NLS-1$
-
- int iFirstStar = pattern.indexOf( chStar );
- int iLastStar = pattern.lastIndexOf( chStar );
-
- // If there are any stars:
- if( (iFirstStar > -1) && ( iLastStar > -1 ) )
- {
- // and their positions are the same (same star, silly)
- if( iFirstStar == iLastStar )
- {
- // and this star is at the front:
- if( iFirstStar == 0 )
- {
- // and the pattern is only one byte long:
- if( pattern.length() == 1 )
- {
- // Then the pattern is a single '*',
- // and all will pass the match:
- bAllMatch = true;
- }
- else
- {
- // Or the pattern is a leading star followed
- // by a string:
- bTrailing = true;
- sMatchFrag = pattern.substring( 1 );
- }
- }
- else
- {
- // OR the star is NOT at the front, so the
- // pattern is a trailing star preceded by a string:
- bLeading = true;
- sMatchFrag = pattern.substring( 0, iLastStar );
-
- }
- }
- else
- {
- // They are not equal
- //sMatchStrategy = ANYWHERE;
- bAnywhere = true;
- sMatchFrag = pattern.substring( iFirstStar + 1, iLastStar );
- }
- }
- else
- {
- // there are no stars at all
- //sMatchStrategy = FULL_MATCH;
- bFullMatch = true;
- sMatchFrag = pattern;
- }
-
- // Now test the string
- String name = sCandidate;
- bPass = false;
-
- // force the match fragment and the test string to UPPER case
- String sMatchFragUpper = sMatchFrag.toUpperCase();
- String sNameUpper = name.toUpperCase();
-
- // Test all of the booleans. Only one should be true.
- if( bAllMatch ) {
- bPass = true;
- }
- else
- if( bAnywhere ) {
- if( sNameUpper.indexOf( sMatchFragUpper ) > -1 )
- bPass = true;
- }
- else
- if( bFullMatch ) {
- if( sNameUpper.equals( sMatchFragUpper ) )
- bPass = true;
- }
- else
- if( bLeading ) {
- if( sNameUpper.startsWith( sMatchFragUpper ) )
- bPass = true;
- }
- else
- if( bTrailing ) {
- if( sNameUpper.endsWith( sMatchFragUpper ) )
- bPass = true;
- }
-
- return bPass;
- }
-
- public static void setBeanProperties(Object bean, Properties props, String prefix) {
- // Move all prop names to lower case so we can use reflection to get
- // method names and look them up in the connection props.
- final Properties connProps = lowerCaseAllPropNames(props);
- final Method[] methods = bean.getClass().getMethods();
- for (int i = 0; i < methods.length; i++) {
- final Method method = methods[i];
- final String methodName = method.getName();
- // If setter ...
- if ( methodName.startsWith("set") && method.getParameterTypes().length == 1 ) { //$NON-NLS-1$
- // Get the property name
- final String propertyName = methodName.substring(3); // remove the "set"
- String shortName = propertyName.toLowerCase();
- String propertyValue = null;
- if (prefix != null) {
- propertyValue = connProps.getProperty(prefix + "." + shortName); //$NON-NLS-1$
- } else {
- propertyValue = connProps.getProperty(shortName);
- }
- if (propertyValue == null) {
- continue;
- }
- final Class<?> argType = method.getParameterTypes()[0];
- try {
- final Object[] params = new Object[] {StringUtil.valueOf(propertyValue, argType)};
- method.invoke(bean, params);
- } catch (Throwable e) {
- throw new InvalidPropertyException(propertyName, propertyValue, argType, e);
- }
- }
- }
- }
-
- public static void setBeanProperty(Object bean, String name, Object value) {
- if (value == null) {
- return;
- }
- name = name.toLowerCase();
- final Method[] methods = bean.getClass().getMethods();
- for (int i = 0; i < methods.length; i++) {
- final Method method = methods[i];
- final String methodName = method.getName();
- // If setter ...
- if ( methodName.startsWith("set") && method.getParameterTypes().length == 1 ) { //$NON-NLS-1$
- // Get the property name
- final String propertyName = methodName.substring(3); // remove the "set"
- String shortName = propertyName.toLowerCase();
- if (!shortName.equals(name)) {
- continue;
- }
- final Class<?> argType = method.getParameterTypes()[0];
- try {
- Object[] params = new Object[] {value};
- if (!argType.isAssignableFrom(value.getClass())) {
- params = new Object[] {StringUtil.valueOf(value.toString(), argType)};
- }
- method.invoke(bean, params);
- } catch (Throwable e) {
- throw new InvalidPropertyException(propertyName, value.toString(), argType, e);
- }
- }
- }
- }
-
- private static Properties lowerCaseAllPropNames(final Properties connectionProps) {
- final Properties lcProps = new Properties();
- final Enumeration<?> itr = connectionProps.propertyNames();
- while ( itr.hasMoreElements() ) {
- final String name = (String) itr.nextElement();
- String propValue = connectionProps.getProperty(name);
- if (propValue != null) {
- lcProps.setProperty(name.toLowerCase(), propValue);
- }
- }
- return lcProps;
- }
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/util/ReaderInputStream.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/util/ReaderInputStream.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/util/ReaderInputStream.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,87 +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.common.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.nio.ByteBuffer;
-import java.nio.CharBuffer;
-import java.nio.charset.Charset;
-
-import com.metamatrix.common.types.Streamable;
-
-public class ReaderInputStream extends InputStream {
-
- private static final int DEFAULT_BUFFER_SIZE = Streamable.STREAMING_BATCH_SIZE_IN_BYTES;
-
- private final Reader reader;
- private final Charset charSet;
- private char[] charBuffer;
-
- private boolean hasMore = true;
- private ByteBuffer currentBuffer;
- private int prefixBytes;
- private boolean needsPrefix = true;
-
- public ReaderInputStream(Reader reader, Charset charSet) {
- this(reader, charSet, DEFAULT_BUFFER_SIZE);
- }
-
- public ReaderInputStream(Reader reader, Charset charSet, int bufferSize) {
- this.reader = reader;
- this.charSet = charSet;
- this.charBuffer = new char[bufferSize];
- if (charSet.displayName().equalsIgnoreCase("UTF-16")) { //$NON-NLS-1$
- prefixBytes = 2;
- }
- }
-
- @Override
- public int read() throws IOException {
- if (currentBuffer == null || !currentBuffer.hasRemaining()) {
- if (!hasMore) {
- return -1;
- }
- int charsRead = reader.read(charBuffer);
- if (charsRead == -1) {
- hasMore = false;
- return -1;
- }
- currentBuffer = charSet.encode(CharBuffer.wrap(charBuffer, 0, charsRead));
- if (!needsPrefix) {
- currentBuffer.position(prefixBytes);
- }
- needsPrefix = false;
- }
- return currentBuffer.get() & 0xff;
- }
-
- @Override
- public void close() throws IOException {
- this.reader.close();
- }
-}
\ No newline at end of file
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/util/SqlUtil.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/util/SqlUtil.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/util/SqlUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,124 +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.common.util;
-
-import java.sql.SQLException;
-
-//## JDBC4.0-begin ##
-import java.sql.SQLFeatureNotSupportedException;
-//## JDBC4.0-end ##
-
-import java.util.regex.Pattern;
-
-import com.metamatrix.core.util.ArgCheck;
-import com.metamatrix.core.util.StringUtil;
-
-/**
- * Utilities for dealing with SQL strings.
- */
-public class SqlUtil {
- public static final char CR_CHAR = StringUtil.Constants.CARRIAGE_RETURN_CHAR;
- public static final char NL_CHAR = StringUtil.Constants.NEW_LINE_CHAR;
- public static final char SPACE_CHAR = StringUtil.Constants.SPACE_CHAR;
- public static final char TAB_CHAR = StringUtil.Constants.TAB_CHAR;
- private static Pattern PATTERN = Pattern.compile("^([\\s]|(/\\*.*\\*/))*(insert|update|delete|create|drop|(select([\\s]|(/\\*.*\\*/))+.*into([\\s]|(/\\*.*\\*/))+)).*", Pattern.CASE_INSENSITIVE|Pattern.MULTILINE); //$NON-NLS-1$
-
- private SqlUtil() {
- super();
- }
-
- /**
- * Determines whether a sql statement is an update (INSERT, UPDATE, or DELETE).
- * Throws exception if SQL statement appears to be invalid (because it's null, has
- * 0 length, etc.
- * @param sql Sql string
- * @return True if INSERT, UPDATE, or DELETE, and false otherwise
- * @throws IllegalArgumentException If sql string is invalid and neither a
- * query or an update
- */
- public static boolean isUpdateSql(String sql) throws IllegalArgumentException {
- ArgCheck.isNotNull(sql);
- return PATTERN.matcher(sql).matches();
- }
-
- /**
- * Simple method which normalizes a SQL string by replacing CR characters, new line characters and Tab characters with spaces,
- * then trimming the string to remove unneeded spaces.
- *
- * @param inputSqlString
- * @return
- * @since 5.0
- */
- public static String normalize(String inputSqlString) {
- String normalizedString = inputSqlString;
- if (inputSqlString != null && inputSqlString.length() > 0) {
- if ( inputSqlString.indexOf(NL_CHAR) > -1 ||
- inputSqlString.indexOf(CR_CHAR) > -1 ||
- inputSqlString.indexOf(TAB_CHAR) > -1 ||
- inputSqlString.indexOf(StringUtil.Constants.DBL_SPACE) > -1) {
- normalizedString = normalizedString.replace(NL_CHAR, SPACE_CHAR);
- normalizedString = normalizedString.replace(CR_CHAR, SPACE_CHAR);
- normalizedString = normalizedString.replace(TAB_CHAR, SPACE_CHAR);
- normalizedString = StringUtil.replaceAll(normalizedString,
- StringUtil.Constants.DBL_SPACE,
- StringUtil.Constants.SPACE);
-
- }
- normalizedString = StringUtil.collapseWhitespace(normalizedString);
- }
- return normalizedString;
- }
-
- /**
- * determine if the supplied sql Strings are different
- * @param newSql the new SQL String
- * @param oldSql the old SQL String
- * @return 'true' if strings differ, 'false' if same
- */
- public static boolean stringsAreDifferent(String newSql, String oldSql) {
- boolean isDifferent = true;
- if(newSql==null) {
- if(oldSql==null) {
- isDifferent = false;
- }
- } else if(oldSql!=null) {
- String normalizedNewSql = normalize(newSql);
- String normalizedOldSql = normalize(oldSql);
- if(normalizedNewSql.equals(normalizedOldSql)) {
- isDifferent=false;
- }
- }
- return isDifferent;
- }
-
- public static SQLException createFeatureNotSupportedException() {
- //## JDBC4.0-begin ##
- return new SQLFeatureNotSupportedException();
- //## JDBC4.0-end ##
-
- /*## JDBC3.0-JDK1.5-begin ##
- return new SQLException("unsupported feature");
- ## JDBC3.0-JDK1.5-end ##*/
-
- }
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/common/util/TimestampWithTimezone.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/util/TimestampWithTimezone.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/common/util/TimestampWithTimezone.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,203 +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.common.util;
-
-import java.sql.Date;
-import java.sql.Time;
-import java.sql.Timestamp;
-import java.util.Calendar;
-import java.util.TimeZone;
-
-import com.metamatrix.common.types.DataTypeManager;
-
-/**
- * Utility methods for SQL Timestamps, Time, and Dates with time zones as UTC
- *
- * This is intended to take incoming Strings or Dates that have accurate
- * Calendar fields and give the UTC time by interpretting those fields
- * in the target time zone.
- *
- * Use of the Calendar object passed in will not be thread safe, but
- * it will not alter the contents of the Calendar.
- *
- * Note that normalization occurs only for the transition from one type to another.
- *
- */
-public class TimestampWithTimezone {
-
- private static ThreadLocal<Calendar> CALENDAR = new ThreadLocal<Calendar>() {
- protected Calendar initialValue() {
- return Calendar.getInstance();
- }
- };
-
- public static Calendar getCalendar() {
- return CALENDAR.get();
- }
-
- public static void resetCalendar(TimeZone tz) {
- TimeZone.setDefault(tz);
- CALENDAR.set(Calendar.getInstance());
- }
-
- public static Object create(java.util.Date date, TimeZone initial, Calendar target, Class type) {
- if (type.equals(DataTypeManager.DefaultDataClasses.TIME)) {
- return createTime(date, initial, target);
- }
- if (type.equals(DataTypeManager.DefaultDataClasses.DATE)) {
- return createDate(date, initial, target);
- }
- return createTimestamp(date, initial, target);
- }
-
- public static Timestamp createTimestamp(java.util.Date date, TimeZone initial, Calendar target) {
- if (target == null) {
- target = getCalendar();
- }
-
- long time = target.getTimeInMillis();
-
- adjustCalendar(date, initial, target);
-
- target.set(Calendar.MILLISECOND, 0);
-
- Timestamp tsInTz = new Timestamp(target.getTimeInMillis());
-
- if(date instanceof Timestamp) {
- tsInTz.setNanos(((Timestamp)date).getNanos());
- }
-
- target.setTimeInMillis(time);
- return tsInTz;
- }
-
- public static Time createTime(java.util.Date date, TimeZone initial, Calendar target) {
- if (target == null) {
- target = getCalendar();
- }
-
- long time = target.getTimeInMillis();
-
- adjustCalendar(date, initial, target);
-
- Time result = normalizeTime(date, target);
-
- target.setTimeInMillis(time);
- return result;
- }
-
- public static Date createDate(java.util.Date date, TimeZone initial, Calendar target) {
- if (target == null) {
- target = getCalendar();
- }
-
- long time = target.getTimeInMillis();
-
- adjustCalendar(date, initial, target);
-
- Date result = normalizeDate(date, target);
-
- target.setTimeInMillis(time);
- return result;
- }
-
- /**
- * Creates normalized SQL Time Object
- *
- * @return Time
- * @since 4.3
- */
- public static Time createTime(java.util.Date date) {
- if (date instanceof Time) {
- return (Time)date;
- }
- Calendar cal = getCalendar();
- cal.setTime(date);
- return normalizeTime(date, cal);
- }
-
- /**
- * Creates normalized SQL Date Object
- *
- * @return Date
- * @since 4.3
- */
- public static Date createDate(java.util.Date date) {
- if (date instanceof Date) {
- return (Date)date;
- }
- Calendar cal = getCalendar();
- cal.setTime(date);
- return normalizeDate(date, cal);
- }
-
- public static Timestamp createTimestamp(java.util.Date date) {
- if (date instanceof Timestamp) {
- return (Timestamp)date;
- }
- return new Timestamp(date.getTime());
- }
-
- private static Date normalizeDate(java.util.Date date, Calendar target) {
- if (!(date instanceof Date)) {
- target.set(Calendar.HOUR_OF_DAY, 0);
- target.set(Calendar.MINUTE, 0);
- target.set(Calendar.SECOND, 0);
- target.set(Calendar.MILLISECOND, 0);
- }
- Date result = new Date(target.getTimeInMillis());
- return result;
- }
-
- private static Time normalizeTime(java.util.Date date, Calendar target) {
- if (!(date instanceof Time)) {
- target.set(Calendar.YEAR, 1970);
- target.set(Calendar.MONTH, Calendar.JANUARY);
- target.set(Calendar.DAY_OF_MONTH, 1);
- target.set(Calendar.MILLISECOND, 0);
- }
- Time result = new Time(target.getTimeInMillis());
- return result;
- }
-
- private static void adjustCalendar(java.util.Date date,
- TimeZone initial,
- Calendar target) {
- assert initial != null;
- if (initial.hasSameRules(target.getTimeZone())) {
- target.setTime(date);
- return;
- }
-
- //start with base time
- long time = date.getTime();
-
- Calendar cal = Calendar.getInstance(initial);
- cal.setTimeInMillis(time);
-
- target.clear();
- for (int i = 0; i <= Calendar.MILLISECOND; i++) {
- target.set(i, cal.get(i));
- }
- }
-}
\ No newline at end of file
Deleted: trunk/common-core/src/main/java/com/metamatrix/core/BundleUtil.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/BundleUtil.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/core/BundleUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,223 +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.core;
-
-import java.text.MessageFormat;
-import java.util.List;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import com.metamatrix.core.util.ArgCheck;
-import com.metamatrix.core.util.StringUtil;
-
-public class BundleUtil {
- /**
- * The product properties used to override default localized text.
- * @since 5.0.2
- */
- static protected ResourceBundle productProps;
-
- /**
- * The name of the resource bundle.
- */
- private final String bundleName;
-
- /**
- * The {@link ResourceBundle}for localization; initialized in the constructor.
- */
- private final ResourceBundle bundle;
-
- protected final String pluginId;
-
- /**
- * Construct an instance of this class by specifying the plugin ID.
- *
- * @param pluginId
- * the identifier of the plugin for which this utility is being instantiated
- * @param bundleName
- * the name of the resource bundle; used for problem reporting purposes only
- * @param bundle
- * the resource bundle
- */
- public BundleUtil(final String pluginId,
- final String bundleName,
- final ResourceBundle bundle) {
- this.pluginId = pluginId;
- this.bundleName = bundleName;
- this.bundle = bundle;
- }
-
- /**
- * Get the string identified by the given key and localized to the current locale.
- *
- * @param key
- * the key in the resource file
- * @return the localized String, or <code>
- * "Missing message: " + key + " in: " + this.bundleName
- * </code> if the string could
- * not be found in the current locale, or <code>
- * "No message available"
- * </code> if the <code>key</code> is null.
- */
- public String getString(final String key) {
- try {
- // Since this string has no parameters, it will not be run through MessageFormat.
- // MessageFormat eliminates double ticks, so the next two lines replace double ticks
- // with single ticks. This is only needed if the localized string contains double ticks
- // (the policy is that localized strings without parameters should not).
- // COMMENTED OUT BECAUSE OF POLICY
- //char[] messageWithNoDoubleQuotes = CharOperation.replace(text.toCharArray(), DOUBLE_QUOTES, SINGLE_QUOTE);
- //text = new String(messageWithNoDoubleQuotes);
-
- String value = getProductValue(key);
- return ((value == null) ? this.bundle.getString(key) : value);
- } catch (final Exception err) {
- String msg;
-
- if (err instanceof NullPointerException) {
- msg = "<No message available>"; //$NON-NLS-1$
- } else if (err instanceof MissingResourceException) {
- msg = "<Missing message for key \"" + key + "\" in: " + this.bundleName + '>'; //$NON-NLS-1$ //$NON-NLS-2$
- } else {
- msg = err.getLocalizedMessage();
- }
-
- // RMH: See DataAccessPlugin.ResourceLocator.getString(...) method, which tries one bundle before
- // delegating to another. Therefore, this will happen normally in some situations.
- //log(msg);
-
- return msg;
- }
- }
-
- /**
- * Obtains the value that is overriding the default value.
- * @param theKey the key whose product value is being requested
- * @return the value or <code>null</code> if not overridden by the product
- */
- private String getProductValue(String theKey) {
- String result = null;
-
- if ((productProps != null) && !StringUtil.isEmpty(theKey)) {
- String key = this.pluginId + '.' + theKey;
-
- try {
- result = productProps.getString(key);
- } catch (MissingResourceException theException) {
- // not found in product properties
- }
- }
-
- return result;
- }
-
- /**
- * Determines if the given key exists in the resource file.
- *
- * @param key
- * the key in the resource file
- * @return True if the key exists.
- * @since 4.0
- */
- public boolean keyExists(final String key) {
- try {
- return ((getProductValue(key) != null) || (this.bundle.getString(key) != null));
- } catch (final Exception err) {
- return false;
- }
- }
-
- /**
- * Get the string identified by the given key and localized to the current locale, and replace placeholders in the localized
- * string with the string form of the parameters.
- *
- * @param key
- * the key in the resource file
- * @param parameters
- * the list of parameters that should replace placeholders in the localized string (e.g., "{0}", "{1}", etc.)
- * @return the localized String, or <code>
- * "Missing message: " + key + " in: " + this.bundleName
- * </code> if the string could
- * not be found in the current locale, or <code>
- * "No message available"
- * </code> if the <code>key</code> is null.
- */
- public String getString(final String key,
- final List parameters) {
- if (parameters == null) {
- return getString(key);
- }
- return getString(key, parameters.toArray());
- }
-
- /**
- * Get the string identified by the given key and localized to the current locale, and replace placeholders in the localized
- * string with the string form of the parameters.
- *
- * @param key
- * the key in the resource file
- * @param parameters
- * the list of parameters that should replace placeholders in the localized string (e.g., "{0}", "{1}", etc.)
- * @return the localized String, or <code>
- * "Missing message: " + key + " in: " + this.bundleName
- * </code> if the string could
- * not be found in the current locale, or <code>
- * "No message available"
- * </code> if the <code>key</code> is null.
- */
- public String getString(final String key,
- final Object... parameters) {
- String text = getString(key);
-
- // Check the trivial cases ...
- if (text == null) {
- return '<' + key + '>';
- }
- if (parameters == null || parameters.length == 0) {
- return text;
- }
-
- return MessageFormat.format(text, parameters);
- }
-
- /**
- * @see com.metamatrix.core.PluginUtil#getStringOrKey(java.lang.String)
- * @since 4.1
- */
- public String getStringOrKey(final String key) {
- ArgCheck.isNotNull(key);
-
- String value = getProductValue(key);
-
- if (value == null) {
- try {
- return this.bundle.getString(key);
- } catch (final MissingResourceException err) {
- return key;
- }
- }
-
- return value;
- }
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/core/CoreConstants.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/CoreConstants.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/core/CoreConstants.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,112 +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.core;
-
-
-/**
- * @since 4.0
- */
-public interface CoreConstants {
- /**<p>
- * Contains ID's for all MetaMatrix plugins.
- * </p>
- * @since 4.0
- */
- interface Plugin {
- String METAMATRIX_PREFIX = "com.metamatrix."; //$NON-NLS-1$
-
- String COMMON = METAMATRIX_PREFIX + "common"; //$NON-NLS-1$
- String COMMON_COMM_PLATFORM = METAMATRIX_PREFIX + "common.comm.platform"; //$NON-NLS-1$
- String CORE_XSLT = METAMATRIX_PREFIX + "core.xslt"; //$NON-NLS-1$
- String MODELER_JDBC = METAMATRIX_PREFIX + "modeler.jdbc"; //$NON-NLS-1$
- String PLATFORM = METAMATRIX_PREFIX + "platform"; //$NON-NLS-1$
- }
-
- interface Debug {
- String PLUGIN_ACTIVATION = "pluginActivation"; //$NON-NLS-1$
- }
-
- interface Trace {
- String PROXIES = "proxies"; //$NON-NLS-1$
- }
-
- public static final String SYSTEM_MODEL = "SYS"; //$NON-NLS-1$
-
- public static final String SYSTEM_VDB = "System.vdb"; //$NON-NLS-1$
-
- public static final String PRODUCT_OWNER_NAME_PROPERTY = "ownerName"; //$NON-NLS-1$
-
- /**
- * Constant that defines the replaceable token in WSDL generated in the VDB which represents
- * the MetaMatrix Server properties for connecting the to VDB.
- */
- public static final String ACTION_PREFIX_FOR_DATA_WEBSERVICE = "http://server.properies.metamatrix.com"; //$NON-NLS-1$
-
- /**
- * Constant that defines the parameter value in WSDL generated of the VDB that will be used to
- * identifiy the fully qualified procedure name when executing the web service.
- */
- public static final String ACTION_PARAMETER_FOR_DATA_WEBSERVICE_PROCEDURE = "procedure="; //$NON-NLS-1$
-
- /**
- * Constant that defines the replaceable token in WSDL generated in the VDB which represents
- * the first part (VDB-independent) of the URL. The general form of the URLs is as follows:
- * <p>
- * <code> [URL ROOT][Path to Resource in VDB][URL Suffix]</code>
- * </p></p>
- * In general, the URL root would be replaced in a particular server with the actual URL to the servlet
- * used to obtain the WSDL and XSD, and the URL suffix replaced with the servlet parameters.
- * </p>
- * @see #URL_SUFFIX_FOR_VDB
- */
- public static final String URL_ROOT_FOR_VDB = "http://vdb.metamatrix.com"; //$NON-NLS-1$
-
- /**
- * Constant that defines the replaceable token in WSDL generated in the VDB which represents
- * the suffix part of the URL. The general form of the URLs is as follows:
- * <p>
- * <code> [URL ROOT][Path to Resource in VDB][URL Suffix]</code>
- * </p></p>
- * In general, the URL root would be replaced in a particular server with the actual URL to the servlet
- * used to obtain the WSDL and XSD, and the URL suffix replaced with the servlet parameters.
- * </p>
- * @see #URL_ROOT_FOR_VDB
- */
- public static final String URL_SUFFIX_FOR_VDB = "?vdbToken=true"; //$NON-NLS-1$
-
-
- /**
- * Constant that defines the replaceable token in WSDL generated in the VDB which represents
- * the URL for the service binding.
- * @see #URL_SUFFIX_FOR_VDB
- * @see #URL_ROOT_FOR_VDB
- */
- public static final String URL_FOR_DATA_WEBSERVICE = "http://vdb.dataservice.metamatrix.com"; //$NON-NLS-1$\
-
- /**
- * Constant for the anonymous Teiid system username
- */
- public static final String DEFAULT_ANON_USERNAME = "teiidanonymous";
-
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/core/CorePlugin.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/CorePlugin.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/core/CorePlugin.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,43 +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.core;
-
-import java.util.ResourceBundle;
-
-
-/**
- * CorePlugin
- */
-public class CorePlugin {
- //
- // Class Constants:
- //
- /**
- * The plug-in identifier of this plugin
- * (value <code>"com.metamatrix.core"</code>).
- */
- public static final String PLUGIN_ID = "com.metamatrix.core" ; //$NON-NLS-1$
-
- public static final BundleUtil Util = new BundleUtil(PLUGIN_ID,
- PLUGIN_ID + ".i18n", ResourceBundle.getBundle(PLUGIN_ID + ".i18n")); //$NON-NLS-1$ //$NON-NLS-2$
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/core/ErrorMessageKeys.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/ErrorMessageKeys.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/core/ErrorMessageKeys.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,70 +0,0 @@
-package com.metamatrix.core;
-
-public interface ErrorMessageKeys {
-
- /** types (029) */
- public static final String TYPES_ERR_0001 = "ERR.003.029.0001"; //$NON-NLS-1$
- public static final String TYPES_ERR_0002 = "ERR.003.029.0002"; //$NON-NLS-1$
- public static final String TYPES_ERR_0003 = "ERR.003.029.0003"; //$NON-NLS-1$
- public static final String TYPES_ERR_0004 = "ERR.003.029.0004"; //$NON-NLS-1$
- public static final String TYPES_ERR_0005 = "ERR.003.029.0005"; //$NON-NLS-1$
- public static final String TYPES_ERR_0006 = "ERR.003.029.0006"; //$NON-NLS-1$
- public static final String TYPES_ERR_0007 = "ERR.003.029.0007"; //$NON-NLS-1$
- public static final String TYPES_ERR_0008 = "ERR.003.029.0008"; //$NON-NLS-1$
- public static final String TYPES_ERR_0009 = "ERR.003.029.0009"; //$NON-NLS-1$
- public static final String TYPES_ERR_0010 = "ERR.003.029.0010"; //$NON-NLS-1$
- public static final String TYPES_ERR_0011 = "ERR.003.029.0011"; //$NON-NLS-1$
- public static final String TYPES_ERR_0012 = "ERR.003.029.0012"; //$NON-NLS-1$
- public static final String TYPES_ERR_0013 = "ERR.003.029.0013"; //$NON-NLS-1$
- public static final String TYPES_ERR_0014 = "ERR.003.029.0014"; //$NON-NLS-1$
- public static final String TYPES_ERR_0015 = "ERR.003.029.0015"; //$NON-NLS-1$
- public static final String TYPES_ERR_0016 = "ERR.003.029.0016"; //$NON-NLS-1$
- public static final String TYPES_ERR_0017 = "ERR.003.029.0017"; //$NON-NLS-1$
- public static final String TYPES_ERR_0018 = "ERR.003.029.0018"; //$NON-NLS-1$
- public static final String TYPES_ERR_0019 = "ERR.003.029.0019"; //$NON-NLS-1$
- public static final String TYPES_ERR_0020 = "ERR.003.029.0020"; //$NON-NLS-1$
- public static final String TYPES_ERR_0021 = "ERR.003.029.0021"; //$NON-NLS-1$
- public static final String TYPES_ERR_0022 = "ERR.003.029.0022"; //$NON-NLS-1$
- public static final String TYPES_ERR_0023 = "ERR.003.029.0023"; //$NON-NLS-1$
- public static final String TYPES_ERR_0024 = "ERR.003.029.0024"; //$NON-NLS-1$
- public static final String TYPES_ERR_0025 = "ERR.003.029.0025"; //$NON-NLS-1$
- public static final String TYPES_ERR_0026 = "ERR.003.029.0026"; //$NON-NLS-1$
-
- public static final String CM_UTIL_ERR_0068 = "ERR.003.030.0068"; //$NON-NLS-1$
- public static final String CM_UTIL_ERR_0062 = "ERR.003.030.0062"; //$NON-NLS-1$
- public static final String CM_UTIL_ERR_0064 = "ERR.003.030.0064"; //$NON-NLS-1$
- public static final String CM_UTIL_ERR_0066 = "ERR.003.030.0066"; //$NON-NLS-1$
- public static final String CM_UTIL_ERR_0067 = "ERR.003.030.0067"; //$NON-NLS-1$
- public static final String CM_UTIL_ERR_0071 = "ERR.003.030.0071"; //$NON-NLS-1$
- public static final String CM_UTIL_ERR_0072 = "ERR.003.030.0072"; //$NON-NLS-1$
- public static final String CM_UTIL_ERR_0073 = "ERR.003.030.0073"; //$NON-NLS-1$
-
- public static final String CM_UTIL_ERR_0074 = "ERR.003.030.0074"; //$NON-NLS-1$
- public static final String CM_UTIL_ERR_0075 = "ERR.003.030.0075"; //$NON-NLS-1$
- public static final String CM_UTIL_ERR_0076 = "ERR.003.030.0076"; //$NON-NLS-1$
- public static final String CM_UTIL_ERR_0077 = "ERR.003.030.0077"; //$NON-NLS-1$
- public static final String CM_UTIL_ERR_0078 = "ERR.003.030.0078"; //$NON-NLS-1$
- public static final String CM_UTIL_ERR_0079 = "ERR.003.030.0079"; //$NON-NLS-1$
- public static final String CM_UTIL_ERR_0081 = "ERR.003.030.0081"; //$NON-NLS-1$
-
-
- public static final String PROPERTIES_ERR_0010 = "ERR.003.021.0010"; //$NON-NLS-1$
- public static final String PROPERTIES_ERR_0011 = "ERR.003.021.0011"; //$NON-NLS-1$
-
- public static final String SEC_MEMBERSHIP_0013 = "ERR.014.407.0013"; //$NON-NLS-1$
- public static final String SEC_MEMBERSHIP_0014 = "ERR.014.407.0014"; //$NON-NLS-1$
- public static final String SEC_MEMBERSHIP_0015 = "ERR.014.407.0015"; //$NON-NLS-1$
- public static final String SEC_MEMBERSHIP_0016 = "ERR.014.407.0016"; //$NON-NLS-1$
- public static final String SEC_MEMBERSHIP_0017 = "ERR.014.407.0017"; //$NON-NLS-1$
- public static final String SEC_MEMBERSHIP_0018 = "ERR.014.407.0018"; //$NON-NLS-1$
- public static final String SEC_MEMBERSHIP_0019 = "ERR.014.407.0019"; //$NON-NLS-1$
-
-
- public static final String CM_UTIL_ERR_0176 = "ERR.003.030.0176"; //$NON-NLS-1$
- public static final String CM_UTIL_ERR_0177 = "ERR.003.030.0177"; //$NON-NLS-1$
- public static final String CM_UTIL_ERR_0178 = "ERR.003.030.0178"; //$NON-NLS-1$
- public static final String CM_UTIL_ERR_0179 = "ERR.003.030.0179"; //$NON-NLS-1$
- public static final String CM_UTIL_ERR_0180 = "ERR.003.030.0180"; //$NON-NLS-1$
- public static final String CM_UTIL_ERR_0181 = "ERR.003.030.0181"; //$NON-NLS-1$
-
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/core/MetaMatrixCoreException.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/MetaMatrixCoreException.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/core/MetaMatrixCoreException.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,98 +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.core;
-
-import java.sql.SQLException;
-
-
-
-/**
- * Exception which occurs if an error occurs within the server that is not
- * business-related. For instance, if a service or bean is not available
- * or communication fails.
- */
-public class MetaMatrixCoreException extends Exception {
-
- private static final long serialVersionUID = -3033427629587497938L;
- protected String code;
- private transient String originalType;
-
- public MetaMatrixCoreException() {
- }
-
- public MetaMatrixCoreException(String message) {
- super(message);
- }
-
- public MetaMatrixCoreException(String errorCode, String message) {
- super(message);
- this.code = errorCode;
- }
-
- public MetaMatrixCoreException(Throwable e) {
- this(e, e.getMessage());
- }
-
- public MetaMatrixCoreException(Throwable e, String message) {
- super(message, e);
- setCode(e);
- }
-
- public MetaMatrixCoreException(Throwable e, String errorCode, String message) {
- super(message, e);
- this.code = errorCode;
- }
-
- public String getCode() {
- return this.code;
- }
-
- public void setCode(String code) {
- this.code = code;
- }
-
- public String getOriginalType() {
- return originalType;
- }
-
- public void setOriginalType(String originalType) {
- this.originalType = originalType;
- }
-
- private void setCode(Throwable e) {
- if (e instanceof MetaMatrixCoreException) {
- this.code = (((MetaMatrixCoreException) e).getCode());
- } else if (e instanceof MetaMatrixRuntimeException) {
- this.code = ((MetaMatrixRuntimeException) e).getCode();
- } else if (e instanceof SQLException) {
- this.code = Integer.toString(((SQLException)e).getErrorCode());
- }
- }
-
- public String getMessage() {
- if (code == null || code.length() == 0) {
- return super.getMessage();
- }
- return "Error Code:"+code+" Message:"+super.getMessage(); //$NON-NLS-1$ //$NON-NLS-2$
- }
-}
Deleted: trunk/common-core/src/main/java/com/metamatrix/core/MetaMatrixRuntimeException.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/MetaMatrixRuntimeException.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/main/java/com/metamatrix/core/MetaMatrixRuntimeException.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,242 +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.core;
-
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.sql.SQLException;
-
-import com.metamatrix.api.exception.MetaMatrixException;
-import com.metamatrix.core.util.MetaMatrixExceptionUtil;
-
-/**
- * A generic runtime exception which contains a reference to another exception
- * and which represents a condition that should never occur during runtime. This
- * class can be used to maintain a linked list of exceptions. <p>
- *
- * Subclasses of this exception typically only need to implement whatever
- * constructors they need. <p>
- */
-public class MetaMatrixRuntimeException extends RuntimeException {
- public static final long serialVersionUID = -4035276728007979320L;
-
- private static final String EMPTY_STRING = ""; //$NON-NLS-1$
- public static final String CAUSED_BY_STRING = CorePlugin.Util.getString("MetaMatrixRuntimeException.Caused_by"); //$NON-NLS-1$
-
- //############################################################################################################################
- //# Static Methods #
- //############################################################################################################################
-
- /**
- * Utility method to get the name of a class, without package information.
- *
- * @param cls The class to get the name of
- * @return The name of the class, without package info
- */
- public static String getClassShortName( Class cls ) {
- if ( cls == null ) return EMPTY_STRING;
- String className = cls.getName();
- return className.substring( className.lastIndexOf('.')+1 );
- }
-
- //############################################################################################################################
- //# Variables #
- //############################################################################################################################
-
- /** An error code. */
- private String code;
-
- //############################################################################################################################
- //# Constructors #
- //############################################################################################################################
-
- /**
- * Construct a default instance of this class.
- */
- public MetaMatrixRuntimeException() {
- }
-
- /**
- * Construct an instance with the specified error message. If the message is actually a key, the actual message will be
- * retrieved from a resource bundle using the key, the specified parameters will be substituted for placeholders within the
- * message, and the code will be set to the key.
- * @param message The error message or a resource bundle key
- */
- public MetaMatrixRuntimeException(final String message) {
- super(message);
- }
-
- /**
- * Construct an instance with the specified error code and message. If the message is actually a key, the actual message will
- * be retrieved from a resource bundle using the key, and the specified parameters will be substituted for placeholders within
- * the message.
- * @param code The error code
- * @param message The error message or a resource bundle key
- */
- public MetaMatrixRuntimeException(final int code, final String message) {
- super(message);
- // The following setCode call should be executed after setting the message
- setCode(code);
- }
-
- public MetaMatrixRuntimeException(final String code, final String message) {
- super(message);
- // The following setCode call should be executed after setting the message
- setCode(code);
- }
-
- /**
- * Construct an instance with a linked exception specified. If the exception is a {@link MetaMatrixCoreException} or a
- * MetaMatrixRuntimeException, then the code will be set to the exception's code.
- * @param e An exception to chain to this exception
- */
- public MetaMatrixRuntimeException(final Throwable e) {
- this(e, ( e instanceof java.lang.reflect.InvocationTargetException )
- ? ((java.lang.reflect.InvocationTargetException)e).getTargetException().getMessage()
- : (e == null ? null : e.getMessage()));
- }
-
- /**
- * Construct an instance with the linked exception and error message specified. If the message is actually a key, the error
- * message will be retrieved from a resource bundle the key, and code will be set to that key. Otherwise, if the specified
- * exception is a {@link MetaMatrixCoreException} or a MetaMatrixRuntimeException, the code will be set to the exception's code.
- * @param e The exception to chain to this exception
- * @param message The error message or a resource bundle key
- */
- public MetaMatrixRuntimeException(final Throwable e, final String message) {
- super(message, e);
- setCode(e);
- }
-
- /**
- * Construct an instance with the linked exception, error code, and error message specified. If the message is actually a
- * key, the error message will be retrieved from a resource bundle using the key.
- * @param e The exception to chain to this exception
- * @param code The error code
- * @param message The error message or a resource bundle key
- */
- public MetaMatrixRuntimeException(final Throwable e, final int code, final String message) {
- super(message, e);
- // The following setCode call should be executed after setting the message
- setCode(code);
- }
-
- /**
- * Construct an instance with the linked exception, error code, and error message specified. If the specified
- * exception is a {@link MetaMatrixException} or a MetaMatrixRuntimeException, the code will
- * be set to the exception's code.
- * @param e The exception to chain to this exception
- * @param code The error code
- * @param message The error message
- */
- public MetaMatrixRuntimeException(final Throwable e, final String code, final String message) {
- super(message, e);
- // Overwrite code set in other ctor from exception.
- setCode(code);
- }
-
-
- //############################################################################################################################
- //# Methods #
- //############################################################################################################################
-
- /**
- * Get the exception which is linked to this exception.
- *
- * @return The linked exception
- */
- public Throwable getChild() {
- return this.getCause();
- }
-
- /**
- * Get the error code.
- *
- * @return The error code
- */
- public String getCode() {
- if (code == null) {
- return "0"; //$NON-NLS-1$
- }
- return this.code;
- }
-
- public int getIntCode() {
- if (code == null) {
- return 0;
- }
- try {
- return Integer.parseInt(code);
- } catch (NumberFormatException e) {
-
- }
- return 0;
- }
-
- /**
- * Set the error code.
- *
- * @param code The error code
- */
- private void setCode( int code ) {
- this.code = Integer.toString(code);
- }
-
- private void setCode( String code ) {
- this.code = code;
- }
-
- private void setCode(Throwable e) {
- if (e instanceof MetaMatrixCoreException) {
- this.code = (((MetaMatrixCoreException) e).getCode());
- } else if (e instanceof MetaMatrixRuntimeException) {
- this.code = ((MetaMatrixRuntimeException) e).getCode();
- } else if (e instanceof SQLException) {
- this.code = Integer.toString(((SQLException)e).getErrorCode());
- }
- }
-
- /**
- * Returns a string representation of this class.
- *
- * @return String representation of instance
- */
- public String toString() {
- return MetaMatrixExceptionUtil.getLinkedMessages(this);
- }
-
- /*
- * @see com.metamatrix.core.util.MetaMatrixNestedException#superPrintStackTrace(java.io.PrintStream)
- */
- public void superPrintStackTrace(PrintStream output) {
- super.printStackTrace(output);
- }
-
- /*
- * @see com.metamatrix.core.util.MetaMatrixNestedException#superPrintStackTrace(java.io.PrintWriter)
- */
- public void superPrintStackTrace(PrintWriter output) {
- super.printStackTrace(output);
- }
-
-}
Copied: trunk/common-core/src/main/java/org/teiid/core/BundleUtil.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/core/BundleUtil.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/BundleUtil.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/BundleUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,224 @@
+/*
+ * 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 org.teiid.core;
+
+import java.text.MessageFormat;
+import java.util.List;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+import org.teiid.core.util.ArgCheck;
+import org.teiid.core.util.StringUtil;
+
+
+public class BundleUtil {
+ /**
+ * The product properties used to override default localized text.
+ * @since 5.0.2
+ */
+ static protected ResourceBundle productProps;
+
+ /**
+ * The name of the resource bundle.
+ */
+ private final String bundleName;
+
+ /**
+ * The {@link ResourceBundle}for localization; initialized in the constructor.
+ */
+ private final ResourceBundle bundle;
+
+ protected final String pluginId;
+
+ /**
+ * Construct an instance of this class by specifying the plugin ID.
+ *
+ * @param pluginId
+ * the identifier of the plugin for which this utility is being instantiated
+ * @param bundleName
+ * the name of the resource bundle; used for problem reporting purposes only
+ * @param bundle
+ * the resource bundle
+ */
+ public BundleUtil(final String pluginId,
+ final String bundleName,
+ final ResourceBundle bundle) {
+ this.pluginId = pluginId;
+ this.bundleName = bundleName;
+ this.bundle = bundle;
+ }
+
+ /**
+ * Get the string identified by the given key and localized to the current locale.
+ *
+ * @param key
+ * the key in the resource file
+ * @return the localized String, or <code>
+ * "Missing message: " + key + " in: " + this.bundleName
+ * </code> if the string could
+ * not be found in the current locale, or <code>
+ * "No message available"
+ * </code> if the <code>key</code> is null.
+ */
+ public String getString(final String key) {
+ try {
+ // Since this string has no parameters, it will not be run through MessageFormat.
+ // MessageFormat eliminates double ticks, so the next two lines replace double ticks
+ // with single ticks. This is only needed if the localized string contains double ticks
+ // (the policy is that localized strings without parameters should not).
+ // COMMENTED OUT BECAUSE OF POLICY
+ //char[] messageWithNoDoubleQuotes = CharOperation.replace(text.toCharArray(), DOUBLE_QUOTES, SINGLE_QUOTE);
+ //text = new String(messageWithNoDoubleQuotes);
+
+ String value = getProductValue(key);
+ return ((value == null) ? this.bundle.getString(key) : value);
+ } catch (final Exception err) {
+ String msg;
+
+ if (err instanceof NullPointerException) {
+ msg = "<No message available>"; //$NON-NLS-1$
+ } else if (err instanceof MissingResourceException) {
+ msg = "<Missing message for key \"" + key + "\" in: " + this.bundleName + '>'; //$NON-NLS-1$ //$NON-NLS-2$
+ } else {
+ msg = err.getLocalizedMessage();
+ }
+
+ // RMH: See DataAccessPlugin.ResourceLocator.getString(...) method, which tries one bundle before
+ // delegating to another. Therefore, this will happen normally in some situations.
+ //log(msg);
+
+ return msg;
+ }
+ }
+
+ /**
+ * Obtains the value that is overriding the default value.
+ * @param theKey the key whose product value is being requested
+ * @return the value or <code>null</code> if not overridden by the product
+ */
+ private String getProductValue(String theKey) {
+ String result = null;
+
+ if ((productProps != null) && !StringUtil.isEmpty(theKey)) {
+ String key = this.pluginId + '.' + theKey;
+
+ try {
+ result = productProps.getString(key);
+ } catch (MissingResourceException theException) {
+ // not found in product properties
+ }
+ }
+
+ return result;
+ }
+
+ /**
+ * Determines if the given key exists in the resource file.
+ *
+ * @param key
+ * the key in the resource file
+ * @return True if the key exists.
+ * @since 4.0
+ */
+ public boolean keyExists(final String key) {
+ try {
+ return ((getProductValue(key) != null) || (this.bundle.getString(key) != null));
+ } catch (final Exception err) {
+ return false;
+ }
+ }
+
+ /**
+ * Get the string identified by the given key and localized to the current locale, and replace placeholders in the localized
+ * string with the string form of the parameters.
+ *
+ * @param key
+ * the key in the resource file
+ * @param parameters
+ * the list of parameters that should replace placeholders in the localized string (e.g., "{0}", "{1}", etc.)
+ * @return the localized String, or <code>
+ * "Missing message: " + key + " in: " + this.bundleName
+ * </code> if the string could
+ * not be found in the current locale, or <code>
+ * "No message available"
+ * </code> if the <code>key</code> is null.
+ */
+ public String getString(final String key,
+ final List parameters) {
+ if (parameters == null) {
+ return getString(key);
+ }
+ return getString(key, parameters.toArray());
+ }
+
+ /**
+ * Get the string identified by the given key and localized to the current locale, and replace placeholders in the localized
+ * string with the string form of the parameters.
+ *
+ * @param key
+ * the key in the resource file
+ * @param parameters
+ * the list of parameters that should replace placeholders in the localized string (e.g., "{0}", "{1}", etc.)
+ * @return the localized String, or <code>
+ * "Missing message: " + key + " in: " + this.bundleName
+ * </code> if the string could
+ * not be found in the current locale, or <code>
+ * "No message available"
+ * </code> if the <code>key</code> is null.
+ */
+ public String getString(final String key,
+ final Object... parameters) {
+ String text = getString(key);
+
+ // Check the trivial cases ...
+ if (text == null) {
+ return '<' + key + '>';
+ }
+ if (parameters == null || parameters.length == 0) {
+ return text;
+ }
+
+ return MessageFormat.format(text, parameters);
+ }
+
+ /**
+ * @see com.metamatrix.core.PluginUtil#getStringOrKey(java.lang.String)
+ * @since 4.1
+ */
+ public String getStringOrKey(final String key) {
+ ArgCheck.isNotNull(key);
+
+ String value = getProductValue(key);
+
+ if (value == null) {
+ try {
+ return this.bundle.getString(key);
+ } catch (final MissingResourceException err) {
+ return key;
+ }
+ }
+
+ return value;
+ }
+
+}
Added: trunk/common-core/src/main/java/org/teiid/core/ComponentNotFoundException.java
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/ComponentNotFoundException.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/ComponentNotFoundException.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -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 org.teiid.core;
+
+/**
+ * Exception which occurs if a system component could not be found by another
+ * component.
+ */
+public class ComponentNotFoundException extends TeiidComponentException {
+
+ private static final long serialVersionUID = 8484545412724259223L;
+
+ /**
+ * No-Arg Constructor
+ */
+ public ComponentNotFoundException( ) {
+ super( );
+ }
+ /**
+ * Construct an instance with the message specified.
+ *
+ * @param message A message describing the exception
+ */
+ public ComponentNotFoundException( String message ) {
+ super( message );
+ }
+
+ /**
+ * Construct an instance with the message and error code specified.
+ *
+ * @param message A message describing the exception
+ * @param code The error code
+ */
+ public ComponentNotFoundException( String code, String message ) {
+ super( code, message );
+ }
+
+ /**
+ * Construct an instance from a message and an exception to chain to this one.
+ *
+ * @param e An exception to nest within this one
+ * @param message A message describing the exception
+ */
+ public ComponentNotFoundException( Throwable e, String message ) {
+ super( e, message );
+ }
+
+ /**
+ * Construct an instance from a message and a code and an exception to
+ * chain to this one.
+ *
+ * @param e An exception to nest within this one
+ * @param message A message describing the exception
+ * @param code A code denoting the exception
+ */
+ public ComponentNotFoundException( Throwable e, String code, String message ) {
+ super( e, code, message );
+ }
+
+} // END CLASS
+
Copied: trunk/common-core/src/main/java/org/teiid/core/CoreConstants.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/core/CoreConstants.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/CoreConstants.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/CoreConstants.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,112 @@
+/*
+ * 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 org.teiid.core;
+
+
+/**
+ * @since 4.0
+ */
+public interface CoreConstants {
+ /**<p>
+ * Contains ID's for all MetaMatrix plugins.
+ * </p>
+ * @since 4.0
+ */
+ interface Plugin {
+ String METAMATRIX_PREFIX = "com.metamatrix."; //$NON-NLS-1$
+
+ String COMMON = METAMATRIX_PREFIX + "common"; //$NON-NLS-1$
+ String COMMON_COMM_PLATFORM = METAMATRIX_PREFIX + "common.comm.platform"; //$NON-NLS-1$
+ String CORE_XSLT = METAMATRIX_PREFIX + "core.xslt"; //$NON-NLS-1$
+ String MODELER_JDBC = METAMATRIX_PREFIX + "modeler.jdbc"; //$NON-NLS-1$
+ String PLATFORM = METAMATRIX_PREFIX + "platform"; //$NON-NLS-1$
+ }
+
+ interface Debug {
+ String PLUGIN_ACTIVATION = "pluginActivation"; //$NON-NLS-1$
+ }
+
+ interface Trace {
+ String PROXIES = "proxies"; //$NON-NLS-1$
+ }
+
+ public static final String SYSTEM_MODEL = "SYS"; //$NON-NLS-1$
+
+ public static final String SYSTEM_VDB = "System.vdb"; //$NON-NLS-1$
+
+ public static final String PRODUCT_OWNER_NAME_PROPERTY = "ownerName"; //$NON-NLS-1$
+
+ /**
+ * Constant that defines the replaceable token in WSDL generated in the VDB which represents
+ * the MetaMatrix Server properties for connecting the to VDB.
+ */
+ public static final String ACTION_PREFIX_FOR_DATA_WEBSERVICE = "http://server.properies.metamatrix.com"; //$NON-NLS-1$
+
+ /**
+ * Constant that defines the parameter value in WSDL generated of the VDB that will be used to
+ * identifiy the fully qualified procedure name when executing the web service.
+ */
+ public static final String ACTION_PARAMETER_FOR_DATA_WEBSERVICE_PROCEDURE = "procedure="; //$NON-NLS-1$
+
+ /**
+ * Constant that defines the replaceable token in WSDL generated in the VDB which represents
+ * the first part (VDB-independent) of the URL. The general form of the URLs is as follows:
+ * <p>
+ * <code> [URL ROOT][Path to Resource in VDB][URL Suffix]</code>
+ * </p></p>
+ * In general, the URL root would be replaced in a particular server with the actual URL to the servlet
+ * used to obtain the WSDL and XSD, and the URL suffix replaced with the servlet parameters.
+ * </p>
+ * @see #URL_SUFFIX_FOR_VDB
+ */
+ public static final String URL_ROOT_FOR_VDB = "http://vdb.metamatrix.com"; //$NON-NLS-1$
+
+ /**
+ * Constant that defines the replaceable token in WSDL generated in the VDB which represents
+ * the suffix part of the URL. The general form of the URLs is as follows:
+ * <p>
+ * <code> [URL ROOT][Path to Resource in VDB][URL Suffix]</code>
+ * </p></p>
+ * In general, the URL root would be replaced in a particular server with the actual URL to the servlet
+ * used to obtain the WSDL and XSD, and the URL suffix replaced with the servlet parameters.
+ * </p>
+ * @see #URL_ROOT_FOR_VDB
+ */
+ public static final String URL_SUFFIX_FOR_VDB = "?vdbToken=true"; //$NON-NLS-1$
+
+
+ /**
+ * Constant that defines the replaceable token in WSDL generated in the VDB which represents
+ * the URL for the service binding.
+ * @see #URL_SUFFIX_FOR_VDB
+ * @see #URL_ROOT_FOR_VDB
+ */
+ public static final String URL_FOR_DATA_WEBSERVICE = "http://vdb.dataservice.metamatrix.com"; //$NON-NLS-1$\
+
+ /**
+ * Constant for the anonymous Teiid system username
+ */
+ public static final String DEFAULT_ANON_USERNAME = "teiidanonymous";
+
+
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/CorePlugin.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/core/CorePlugin.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/CorePlugin.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/CorePlugin.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,43 @@
+/*
+ * 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 org.teiid.core;
+
+import java.util.ResourceBundle;
+
+
+/**
+ * CorePlugin
+ */
+public class CorePlugin {
+ //
+ // Class Constants:
+ //
+ /**
+ * The plug-in identifier of this plugin
+ * (value <code>"com.metamatrix.core"</code>).
+ */
+ public static final String PLUGIN_ID = CorePlugin.class.getPackage().getName();
+
+ public static final BundleUtil Util = new BundleUtil(PLUGIN_ID,
+ PLUGIN_ID + ".i18n", ResourceBundle.getBundle(PLUGIN_ID + ".i18n")); //$NON-NLS-1$ //$NON-NLS-2$
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/ErrorMessageKeys.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/core/ErrorMessageKeys.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/ErrorMessageKeys.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/ErrorMessageKeys.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,70 @@
+package org.teiid.core;
+
+public interface ErrorMessageKeys {
+
+ /** types (029) */
+ public static final String TYPES_ERR_0001 = "ERR.003.029.0001"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0002 = "ERR.003.029.0002"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0003 = "ERR.003.029.0003"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0004 = "ERR.003.029.0004"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0005 = "ERR.003.029.0005"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0006 = "ERR.003.029.0006"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0007 = "ERR.003.029.0007"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0008 = "ERR.003.029.0008"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0009 = "ERR.003.029.0009"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0010 = "ERR.003.029.0010"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0011 = "ERR.003.029.0011"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0012 = "ERR.003.029.0012"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0013 = "ERR.003.029.0013"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0014 = "ERR.003.029.0014"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0015 = "ERR.003.029.0015"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0016 = "ERR.003.029.0016"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0017 = "ERR.003.029.0017"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0018 = "ERR.003.029.0018"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0019 = "ERR.003.029.0019"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0020 = "ERR.003.029.0020"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0021 = "ERR.003.029.0021"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0022 = "ERR.003.029.0022"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0023 = "ERR.003.029.0023"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0024 = "ERR.003.029.0024"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0025 = "ERR.003.029.0025"; //$NON-NLS-1$
+ public static final String TYPES_ERR_0026 = "ERR.003.029.0026"; //$NON-NLS-1$
+
+ public static final String CM_UTIL_ERR_0068 = "ERR.003.030.0068"; //$NON-NLS-1$
+ public static final String CM_UTIL_ERR_0062 = "ERR.003.030.0062"; //$NON-NLS-1$
+ public static final String CM_UTIL_ERR_0064 = "ERR.003.030.0064"; //$NON-NLS-1$
+ public static final String CM_UTIL_ERR_0066 = "ERR.003.030.0066"; //$NON-NLS-1$
+ public static final String CM_UTIL_ERR_0067 = "ERR.003.030.0067"; //$NON-NLS-1$
+ public static final String CM_UTIL_ERR_0071 = "ERR.003.030.0071"; //$NON-NLS-1$
+ public static final String CM_UTIL_ERR_0072 = "ERR.003.030.0072"; //$NON-NLS-1$
+ public static final String CM_UTIL_ERR_0073 = "ERR.003.030.0073"; //$NON-NLS-1$
+
+ public static final String CM_UTIL_ERR_0074 = "ERR.003.030.0074"; //$NON-NLS-1$
+ public static final String CM_UTIL_ERR_0075 = "ERR.003.030.0075"; //$NON-NLS-1$
+ public static final String CM_UTIL_ERR_0076 = "ERR.003.030.0076"; //$NON-NLS-1$
+ public static final String CM_UTIL_ERR_0077 = "ERR.003.030.0077"; //$NON-NLS-1$
+ public static final String CM_UTIL_ERR_0078 = "ERR.003.030.0078"; //$NON-NLS-1$
+ public static final String CM_UTIL_ERR_0079 = "ERR.003.030.0079"; //$NON-NLS-1$
+ public static final String CM_UTIL_ERR_0081 = "ERR.003.030.0081"; //$NON-NLS-1$
+
+
+ public static final String PROPERTIES_ERR_0010 = "ERR.003.021.0010"; //$NON-NLS-1$
+ public static final String PROPERTIES_ERR_0011 = "ERR.003.021.0011"; //$NON-NLS-1$
+
+ public static final String SEC_MEMBERSHIP_0013 = "ERR.014.407.0013"; //$NON-NLS-1$
+ public static final String SEC_MEMBERSHIP_0014 = "ERR.014.407.0014"; //$NON-NLS-1$
+ public static final String SEC_MEMBERSHIP_0015 = "ERR.014.407.0015"; //$NON-NLS-1$
+ public static final String SEC_MEMBERSHIP_0016 = "ERR.014.407.0016"; //$NON-NLS-1$
+ public static final String SEC_MEMBERSHIP_0017 = "ERR.014.407.0017"; //$NON-NLS-1$
+ public static final String SEC_MEMBERSHIP_0018 = "ERR.014.407.0018"; //$NON-NLS-1$
+ public static final String SEC_MEMBERSHIP_0019 = "ERR.014.407.0019"; //$NON-NLS-1$
+
+
+ public static final String CM_UTIL_ERR_0176 = "ERR.003.030.0176"; //$NON-NLS-1$
+ public static final String CM_UTIL_ERR_0177 = "ERR.003.030.0177"; //$NON-NLS-1$
+ public static final String CM_UTIL_ERR_0178 = "ERR.003.030.0178"; //$NON-NLS-1$
+ public static final String CM_UTIL_ERR_0179 = "ERR.003.030.0179"; //$NON-NLS-1$
+ public static final String CM_UTIL_ERR_0180 = "ERR.003.030.0180"; //$NON-NLS-1$
+ public static final String CM_UTIL_ERR_0181 = "ERR.003.030.0181"; //$NON-NLS-1$
+
+}
Property changes on: trunk/common-core/src/main/java/org/teiid/core/ErrorMessageKeys.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/common-core/src/main/java/org/teiid/core/TeiidComponentException.java
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/TeiidComponentException.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/TeiidComponentException.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,92 @@
+/*
+ * 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 org.teiid.core;
+
+
+/**
+ * Exception which occurs if an error occurs within the server that is not
+ * business-related. For instance, if a service or bean is not available
+ * or communication fails.
+ */
+public class TeiidComponentException extends TeiidException {
+
+ private static final long serialVersionUID = 5853804556425201591L;
+
+ /**
+ * No-arg CTOR
+ */
+ public TeiidComponentException( ) {
+ super( );
+ }
+ /**
+ * Construct an instance with the message specified.
+ *
+ * @param message A message describing the exception
+ */
+ public TeiidComponentException( String message ) {
+ super( message );
+ }
+
+ /**
+ * Construct an instance with a linked exception specified.
+ *
+ * @param e An exception to chain to this exception
+ */
+ public TeiidComponentException( Throwable e ) {
+ super( e );
+ }
+
+ /**
+ * Construct an instance with the message and error code specified.
+ *
+ * @param message A message describing the exception
+ * @param code The error code
+ */
+ public TeiidComponentException( String code, String message ) {
+ super( code, message );
+ }
+
+ /**
+ * Construct an instance from a message and an exception to chain to this one.
+ *
+ * @param e An exception to nest within this one
+ * @param message A message describing the exception
+ */
+ public TeiidComponentException( Throwable e, String message ) {
+ super( e, message );
+ }
+
+ /**
+ * Construct an instance from a message and a code and an exception to
+ * chain to this one.
+ *
+ * @param e An exception to nest within this one
+ * @param message A message describing the exception
+ * @param code A code denoting the exception
+ */
+ public TeiidComponentException( Throwable e, String code, String message ) {
+ super( e, code, message );
+ }
+
+} // END CLASS
+
Added: trunk/common-core/src/main/java/org/teiid/core/TeiidException.java
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/TeiidException.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/TeiidException.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,171 @@
+/*
+ * 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 org.teiid.core;
+
+import java.sql.SQLException;
+import java.util.Iterator;
+
+import org.teiid.core.util.ExceptionUtil;
+
+
+
+/**
+ * Exception which occurs if an error occurs within the server that is not
+ * business-related. For instance, if a service or bean is not available
+ * or communication fails.
+ */
+public class TeiidException extends Exception {
+
+ private static final long serialVersionUID = -3033427629587497938L;
+ protected String code;
+ private transient String originalType;
+
+ public TeiidException() {
+ }
+
+ public TeiidException(String message) {
+ super(message);
+ }
+
+ public TeiidException(String errorCode, String message) {
+ super(message);
+ this.code = errorCode;
+ }
+
+ public TeiidException(Throwable e) {
+ this(e, e != null? e.getMessage() : null);
+ }
+
+ public TeiidException(Throwable e, String message) {
+ super(message, e);
+ setCode(e);
+ }
+
+ public TeiidException(Throwable e, String errorCode, String message) {
+ super(message, e);
+ this.code = errorCode;
+ }
+
+ public String getCode() {
+ return this.code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getOriginalType() {
+ return originalType;
+ }
+
+ public void setOriginalType(String originalType) {
+ this.originalType = originalType;
+ }
+
+ private void setCode(Throwable e) {
+ if (e instanceof TeiidException) {
+ this.code = (((TeiidException) e).getCode());
+ } else if (e instanceof TeiidRuntimeException) {
+ this.code = ((TeiidRuntimeException) e).getCode();
+ } else if (e instanceof SQLException) {
+ this.code = Integer.toString(((SQLException)e).getErrorCode());
+ }
+ }
+
+ public String getMessage() {
+ if (code == null || code.length() == 0) {
+ return super.getMessage();
+ }
+ return "Error Code:"+code+" Message:"+super.getMessage(); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * Returns the error message, formatted for output. <P>
+ *
+ * The default formatting provided by this method is to prepend the
+ * error message with the level and the name of the class, and to
+ * append the error code on the end if a non-zero code is defined. <P>
+ *
+ * This method provides a hook for subclasses to override the default
+ * formatting of any one exception.
+ *
+ * @param throwable The exception to print
+ * @param level The depth of the exception in the chain of exceptions
+ * @return A formatted string for the exception
+ */
+ static String getFormattedMessage(final Throwable throwable, final int level) {
+ String code;
+ if (throwable instanceof TeiidException) {
+ code = ((TeiidException) throwable).getCode();
+ } else if (throwable instanceof TeiidRuntimeException) {
+ code = ((TeiidRuntimeException) throwable).getCode();
+ } else {
+ code = null;
+ }
+ return ((level != 0) ? ("\n" + level + " ") : "") //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ + "[" + throwable.getClass().getSimpleName() + "]" //$NON-NLS-1$ //$NON-NLS-2$
+ + ((code != null) ? (' ' + code + ": ") : "") //$NON-NLS-1$ //$NON-NLS-2$
+ + (throwable.getMessage() == null ? "" : throwable.getMessage()); //$NON-NLS-1$
+ }
+
+ /**
+ * Get the full error message, including any message(s) from child
+ * exceptions. Messages of any exceptions chained to this exception are
+ * prepended with their "level" in the chain.
+ *
+ * @return The full error message
+ *
+ * @see #getFormattedMessage
+ */
+ public String getFullMessage() {
+ int level = 0;
+ StringBuffer buf = new StringBuffer();
+ buf.append(getFormattedMessage(this,level));
+ Iterator children = ExceptionUtil.getChildrenIterator(this);
+ while ( children.hasNext() ){
+ level++;
+ Throwable exception = (Throwable)children.next();
+ buf.append(getFormattedMessage(exception,level));
+ }
+ return buf.toString();
+ }
+
+ /**
+ * Get the exception which is linked to this exception.
+ *
+ * @return The linked exception
+ * @deprecated - {@see #getCause()}
+ */
+ public Throwable getChild() {
+ return super.getCause();
+ }
+
+ /**
+ * Returns a string representation of this class.
+ *
+ * @return String representation of instance
+ */
+ public String toString() {
+ return getFullMessage();
+ }
+}
Added: trunk/common-core/src/main/java/org/teiid/core/TeiidProcessingException.java
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/TeiidProcessingException.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/TeiidProcessingException.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,93 @@
+/*
+ * 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 org.teiid.core;
+
+
+/**
+ * This exception is a superclass for exceptions that are thrown during
+ * processing as a result of user input. This exception is the result
+ * of handling a user request, not the result of an internal error.
+ */
+public class TeiidProcessingException extends TeiidException {
+
+ private static final long serialVersionUID = -4013536109023540872L;
+
+ /**
+ * No-arg Constructor
+ */
+ public TeiidProcessingException() {
+ super();
+ }
+
+ /**
+ * Construct an instance with the message specified.
+ *
+ * @param message A message describing the exception
+ */
+ public TeiidProcessingException( String message ) {
+ super( message );
+ }
+
+ /**
+ * Construct an instance with a linked exception specified.
+ *
+ * @param e An exception to chain to this exception
+ */
+ public TeiidProcessingException( Throwable e ) {
+ super( e );
+ }
+
+ /**
+ * Construct an instance with the message and error code specified.
+ *
+ * @param message A message describing the exception
+ * @param code The error code
+ */
+ public TeiidProcessingException( String code, String message ) {
+ super( code, message );
+ }
+
+ /**
+ * Construct an instance from a message and an exception to chain to this one.
+ *
+ * @param message A message describing the exception
+ * @param e An exception to nest within this one
+ */
+ public TeiidProcessingException( Throwable e, String message ) {
+ super( e, message );
+ }
+
+ /**
+ * Construct an instance from a message and a code and an exception to
+ * chain to this one.
+ *
+ * @param e An exception to nest within this one
+ * @param message A message describing the exception
+ * @param code A code denoting the exception
+ */
+ public TeiidProcessingException( Throwable e, String code, String message ) {
+ super( e, code, message );
+ }
+
+} // END CLASS
+
Copied: trunk/common-core/src/main/java/org/teiid/core/TeiidRuntimeException.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/core/MetaMatrixRuntimeException.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/TeiidRuntimeException.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/TeiidRuntimeException.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,242 @@
+/*
+ * 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 org.teiid.core;
+
+import java.io.PrintStream;
+import java.io.PrintWriter;
+import java.sql.SQLException;
+
+import org.teiid.core.util.ExceptionUtil;
+
+
+/**
+ * A generic runtime exception which contains a reference to another exception
+ * and which represents a condition that should never occur during runtime. This
+ * class can be used to maintain a linked list of exceptions. <p>
+ *
+ * Subclasses of this exception typically only need to implement whatever
+ * constructors they need. <p>
+ */
+public class TeiidRuntimeException extends RuntimeException {
+ public static final long serialVersionUID = -4035276728007979320L;
+
+ private static final String EMPTY_STRING = ""; //$NON-NLS-1$
+ public static final String CAUSED_BY_STRING = CorePlugin.Util.getString("MetaMatrixRuntimeException.Caused_by"); //$NON-NLS-1$
+
+ //############################################################################################################################
+ //# Static Methods #
+ //############################################################################################################################
+
+ /**
+ * Utility method to get the name of a class, without package information.
+ *
+ * @param cls The class to get the name of
+ * @return The name of the class, without package info
+ */
+ public static String getClassShortName( Class cls ) {
+ if ( cls == null ) return EMPTY_STRING;
+ String className = cls.getName();
+ return className.substring( className.lastIndexOf('.')+1 );
+ }
+
+ //############################################################################################################################
+ //# Variables #
+ //############################################################################################################################
+
+ /** An error code. */
+ private String code;
+
+ //############################################################################################################################
+ //# Constructors #
+ //############################################################################################################################
+
+ /**
+ * Construct a default instance of this class.
+ */
+ public TeiidRuntimeException() {
+ }
+
+ /**
+ * Construct an instance with the specified error message. If the message is actually a key, the actual message will be
+ * retrieved from a resource bundle using the key, the specified parameters will be substituted for placeholders within the
+ * message, and the code will be set to the key.
+ * @param message The error message or a resource bundle key
+ */
+ public TeiidRuntimeException(final String message) {
+ super(message);
+ }
+
+ /**
+ * Construct an instance with the specified error code and message. If the message is actually a key, the actual message will
+ * be retrieved from a resource bundle using the key, and the specified parameters will be substituted for placeholders within
+ * the message.
+ * @param code The error code
+ * @param message The error message or a resource bundle key
+ */
+ public TeiidRuntimeException(final int code, final String message) {
+ super(message);
+ // The following setCode call should be executed after setting the message
+ setCode(code);
+ }
+
+ public TeiidRuntimeException(final String code, final String message) {
+ super(message);
+ // The following setCode call should be executed after setting the message
+ setCode(code);
+ }
+
+ /**
+ * Construct an instance with a linked exception specified. If the exception is a {@link TeiidException} or a
+ * MetaMatrixRuntimeException, then the code will be set to the exception's code.
+ * @param e An exception to chain to this exception
+ */
+ public TeiidRuntimeException(final Throwable e) {
+ this(e, ( e instanceof java.lang.reflect.InvocationTargetException )
+ ? ((java.lang.reflect.InvocationTargetException)e).getTargetException().getMessage()
+ : (e == null ? null : e.getMessage()));
+ }
+
+ /**
+ * Construct an instance with the linked exception and error message specified. If the message is actually a key, the error
+ * message will be retrieved from a resource bundle the key, and code will be set to that key. Otherwise, if the specified
+ * exception is a {@link TeiidException} or a MetaMatrixRuntimeException, the code will be set to the exception's code.
+ * @param e The exception to chain to this exception
+ * @param message The error message or a resource bundle key
+ */
+ public TeiidRuntimeException(final Throwable e, final String message) {
+ super(message, e);
+ setCode(e);
+ }
+
+ /**
+ * Construct an instance with the linked exception, error code, and error message specified. If the message is actually a
+ * key, the error message will be retrieved from a resource bundle using the key.
+ * @param e The exception to chain to this exception
+ * @param code The error code
+ * @param message The error message or a resource bundle key
+ */
+ public TeiidRuntimeException(final Throwable e, final int code, final String message) {
+ super(message, e);
+ // The following setCode call should be executed after setting the message
+ setCode(code);
+ }
+
+ /**
+ * Construct an instance with the linked exception, error code, and error message specified. If the specified
+ * exception is a {@link TeiidException} or a MetaMatrixRuntimeException, the code will
+ * be set to the exception's code.
+ * @param e The exception to chain to this exception
+ * @param code The error code
+ * @param message The error message
+ */
+ public TeiidRuntimeException(final Throwable e, final String code, final String message) {
+ super(message, e);
+ // Overwrite code set in other ctor from exception.
+ setCode(code);
+ }
+
+
+ //############################################################################################################################
+ //# Methods #
+ //############################################################################################################################
+
+ /**
+ * Get the exception which is linked to this exception.
+ *
+ * @return The linked exception
+ */
+ public Throwable getChild() {
+ return this.getCause();
+ }
+
+ /**
+ * Get the error code.
+ *
+ * @return The error code
+ */
+ public String getCode() {
+ if (code == null) {
+ return "0"; //$NON-NLS-1$
+ }
+ return this.code;
+ }
+
+ public int getIntCode() {
+ if (code == null) {
+ return 0;
+ }
+ try {
+ return Integer.parseInt(code);
+ } catch (NumberFormatException e) {
+
+ }
+ return 0;
+ }
+
+ /**
+ * Set the error code.
+ *
+ * @param code The error code
+ */
+ private void setCode( int code ) {
+ this.code = Integer.toString(code);
+ }
+
+ private void setCode( String code ) {
+ this.code = code;
+ }
+
+ private void setCode(Throwable e) {
+ if (e instanceof TeiidException) {
+ this.code = (((TeiidException) e).getCode());
+ } else if (e instanceof TeiidRuntimeException) {
+ this.code = ((TeiidRuntimeException) e).getCode();
+ } else if (e instanceof SQLException) {
+ this.code = Integer.toString(((SQLException)e).getErrorCode());
+ }
+ }
+
+ /**
+ * Returns a string representation of this class.
+ *
+ * @return String representation of instance
+ */
+ public String toString() {
+ return ExceptionUtil.getLinkedMessages(this);
+ }
+
+ /*
+ * @see com.metamatrix.core.util.MetaMatrixNestedException#superPrintStackTrace(java.io.PrintStream)
+ */
+ public void superPrintStackTrace(PrintStream output) {
+ super.printStackTrace(output);
+ }
+
+ /*
+ * @see com.metamatrix.core.util.MetaMatrixNestedException#superPrintStackTrace(java.io.PrintWriter)
+ */
+ public void superPrintStackTrace(PrintWriter output) {
+ super.printStackTrace(output);
+ }
+
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/crypto (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/util/crypto)
Modified: trunk/common-core/src/main/java/org/teiid/core/crypto/BasicCryptor.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/util/crypto/BasicCryptor.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/crypto/BasicCryptor.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.util.crypto;
+package org.teiid.core.crypto;
import java.io.Serializable;
import java.security.InvalidKeyException;
@@ -31,10 +31,11 @@
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SealedObject;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.ErrorMessageKeys;
-import com.metamatrix.core.util.Base64;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.ErrorMessageKeys;
+import org.teiid.core.util.Base64;
+
/**
* <p>Public methods in this class throw only <code>CryptoException</code>s. </p>
*/
Modified: trunk/common-core/src/main/java/org/teiid/core/crypto/CryptoException.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/util/crypto/CryptoException.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/crypto/CryptoException.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,15 +20,15 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.util.crypto;
+package org.teiid.core.crypto;
-import com.metamatrix.api.exception.MetaMatrixException;
+import org.teiid.core.TeiidException;
/**
* A catch-all exception for any exceptions related to encryption and decryption
* operations.
*/
-public class CryptoException extends MetaMatrixException {
+public class CryptoException extends TeiidException {
/**
* No-Arg Constructor
Modified: trunk/common-core/src/main/java/org/teiid/core/crypto/Cryptor.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/util/crypto/Cryptor.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/crypto/Cryptor.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.util.crypto;
+package org.teiid.core.crypto;
/**
Modified: trunk/common-core/src/main/java/org/teiid/core/crypto/DhKeyGenerator.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/util/crypto/DhKeyGenerator.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/crypto/DhKeyGenerator.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.util.crypto;
+package org.teiid.core.crypto;
import java.io.IOException;
import java.io.InputStream;
@@ -43,8 +43,9 @@
import javax.crypto.KeyAgreement;
import javax.crypto.spec.DHParameterSpec;
-import com.metamatrix.core.MetaMatrixRuntimeException;
+import org.teiid.core.TeiidRuntimeException;
+
/**
* Helper class that supports anonymous ephemeral Diffie-Hellman
*
@@ -63,7 +64,7 @@
is = DhKeyGenerator.class.getResourceAsStream("dh.properties"); //$NON-NLS-1$
props.load(is);
} catch (IOException e) {
- throw new MetaMatrixRuntimeException(e);
+ throw new TeiidRuntimeException(e);
} finally {
try {
if (is != null) {
Modified: trunk/common-core/src/main/java/org/teiid/core/crypto/NullCryptor.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/util/crypto/NullCryptor.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/crypto/NullCryptor.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.util.crypto;
+package org.teiid.core.crypto;
public class NullCryptor implements Cryptor {
Modified: trunk/common-core/src/main/java/org/teiid/core/crypto/SymmetricCryptor.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/util/crypto/SymmetricCryptor.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/crypto/SymmetricCryptor.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.util.crypto;
+package org.teiid.core.crypto;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -34,8 +34,9 @@
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
-import com.metamatrix.core.util.ArgCheck;
+import org.teiid.core.util.ArgCheck;
+
/**
* Provides a symmetric cryptor using AES
*/
Copied: trunk/common-core/src/main/java/org/teiid/core/id (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/core/id)
Modified: trunk/common-core/src/main/java/org/teiid/core/id/IDGenerator.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/id/IDGenerator.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/id/IDGenerator.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
import java.util.Collection;
import java.util.HashMap;
@@ -28,8 +28,9 @@
import java.util.Map;
import java.util.Set;
-import com.metamatrix.core.CorePlugin;
+import org.teiid.core.CorePlugin;
+
/**
* IDGenerator
*/
Modified: trunk/common-core/src/main/java/org/teiid/core/id/IntegerID.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/id/IntegerID.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/id/IntegerID.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,12 +20,13 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
import java.io.Serializable;
-import com.metamatrix.core.util.Assertion;
+import org.teiid.core.util.Assertion;
+
public class IntegerID implements ObjectID, Serializable {
public static final String PROTOCOL = "mmint"; //$NON-NLS-1$
@@ -103,7 +104,7 @@
return PROTOCOL + ObjectID.DELIMITER + this.id;
}
/**
- * @see com.metamatrix.core.id.ObjectID#toString(char)
+ * @see org.teiid.core.id.ObjectID#toString(char)
*/
public String toString(char delim) {
return PROTOCOL + delim + this.id;
Modified: trunk/common-core/src/main/java/org/teiid/core/id/IntegerIDFactory.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/id/IntegerIDFactory.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/id/IntegerIDFactory.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,11 +20,12 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
import java.io.Serializable;
-import com.metamatrix.core.CorePlugin;
+import org.teiid.core.CorePlugin;
+
public class IntegerIDFactory implements ObjectIDFactory, Serializable {
private int lastID = 0;
public IntegerIDFactory() {
Modified: trunk/common-core/src/main/java/org/teiid/core/id/InvalidIDException.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/id/InvalidIDException.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/id/InvalidIDException.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,17 +20,17 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.MetaMatrixCoreException;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.TeiidException;
/**
* Exception which occurs if an error occurs within the server that is not
* business-related. For instance, if a service or bean is not available
* or communication fails.
*/
-public class InvalidIDException extends MetaMatrixCoreException {
+public class InvalidIDException extends TeiidException {
private static final String INVALID_ID_MESSAGE = CorePlugin.Util.getString("InvalidIDException.Invalid_ID_1"); //$NON-NLS-1$
/**
Modified: trunk/common-core/src/main/java/org/teiid/core/id/LongID.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/id/LongID.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/id/LongID.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,12 +20,13 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
import java.io.Serializable;
-import com.metamatrix.core.util.Assertion;
+import org.teiid.core.util.Assertion;
+
public class LongID implements ObjectID, Serializable {
public static final String PROTOCOL = "mmlong"; //$NON-NLS-1$
@@ -104,7 +105,7 @@
}
/**
- * @see com.metamatrix.core.id.ObjectID#toString(char)
+ * @see org.teiid.core.id.ObjectID#toString(char)
*/
public String toString(char delim) {
return PROTOCOL + delim + this.id;
Modified: trunk/common-core/src/main/java/org/teiid/core/id/LongIDFactory.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/id/LongIDFactory.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/id/LongIDFactory.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,12 +20,13 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
import java.io.Serializable;
-import com.metamatrix.core.CorePlugin;
+import org.teiid.core.CorePlugin;
+
public class LongIDFactory implements ObjectIDFactory, Serializable {
private long lastID = 0;
public LongIDFactory() {
Modified: trunk/common-core/src/main/java/org/teiid/core/id/ObjectID.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/id/ObjectID.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/id/ObjectID.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
Modified: trunk/common-core/src/main/java/org/teiid/core/id/ObjectIDFactory.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/id/ObjectIDFactory.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/id/ObjectIDFactory.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
/**
Modified: trunk/common-core/src/main/java/org/teiid/core/id/ParsedObjectID.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/id/ParsedObjectID.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/id/ParsedObjectID.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,12 +20,13 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
import java.util.Iterator;
import java.util.Set;
-import com.metamatrix.core.CorePlugin;
+import org.teiid.core.CorePlugin;
+
/**
* ParsedObjectID
*/
Modified: trunk/common-core/src/main/java/org/teiid/core/id/StringID.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/id/StringID.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/id/StringID.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,12 +20,13 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
import java.io.Serializable;
-import com.metamatrix.core.util.Assertion;
+import org.teiid.core.util.Assertion;
+
public class StringID implements ObjectID, Serializable {
public static final String PROTOCOL = "strid"; //$NON-NLS-1$
@@ -98,7 +99,7 @@
return PROTOCOL + ObjectID.DELIMITER + this.id;
}
/**
- * @see com.metamatrix.core.id.ObjectID#toString(char)
+ * @see org.teiid.core.id.ObjectID#toString(char)
*/
public String toString(char delim) {
return PROTOCOL + delim + this.id;
Modified: trunk/common-core/src/main/java/org/teiid/core/id/StringIDFactory.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/id/StringIDFactory.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/id/StringIDFactory.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,9 +20,9 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
-import com.metamatrix.core.CorePlugin;
+import org.teiid.core.CorePlugin;
Modified: trunk/common-core/src/main/java/org/teiid/core/id/UUID.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/id/UUID.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/id/UUID.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,13 +20,14 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
import java.io.Serializable;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.util.Assertion;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.util.Assertion;
+
/**
* <p>This class represents a universally unique identifier, consisting of
* two long integral values. </p>
@@ -182,7 +183,7 @@
}
/**
- * @see com.metamatrix.core.id.ObjectID#toString(char)
+ * @see org.teiid.core.id.ObjectID#toString(char)
*/
public String toString(char delim) {
return new StringBuffer(43).append(PROTOCOL).append(delim).append(this.exportableForm()).toString();
Modified: trunk/common-core/src/main/java/org/teiid/core/id/UUIDFactory.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/id/UUIDFactory.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/id/UUIDFactory.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,9 +20,9 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
-import com.metamatrix.core.CorePlugin;
+import org.teiid.core.CorePlugin;
/**
* <p>This class is a factory for generating universally unique identifiers
Copied: trunk/common-core/src/main/java/org/teiid/core/types/BaseLob.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/BaseLob.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/BaseLob.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/BaseLob.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,82 @@
+package org.teiid.core.types;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.Reader;
+import java.sql.SQLException;
+
+import org.teiid.core.types.InputStreamFactory.StreamFactoryReference;
+
+
+public class BaseLob implements Externalizable, StreamFactoryReference {
+
+ private static final long serialVersionUID = -1586959324208959519L;
+ private InputStreamFactory streamFactory;
+
+ public BaseLob() {
+
+ }
+
+ protected BaseLob(InputStreamFactory streamFactory) {
+ this.streamFactory = streamFactory;
+ }
+
+ public void setStreamFactory(InputStreamFactory streamFactory) {
+ this.streamFactory = streamFactory;
+ }
+
+ public InputStreamFactory getStreamFactory() throws SQLException {
+ if (this.streamFactory == null) {
+ throw new SQLException("Already freed"); //$NON-NLS-1$
+ }
+ return streamFactory;
+ }
+
+ public void free() throws SQLException {
+ if (this.streamFactory != null) {
+ try {
+ this.streamFactory.free();
+ this.streamFactory = null;
+ } catch (IOException e) {
+ SQLException ex = new SQLException(e.getMessage());
+ ex.initCause(e);
+ throw ex;
+ }
+ }
+ }
+
+ public Reader getCharacterStream() throws SQLException {
+ try {
+ return this.getStreamFactory().getCharacterStream();
+ } catch (IOException e) {
+ SQLException ex = new SQLException(e.getMessage());
+ ex.initCause(e);
+ throw ex;
+ }
+ }
+
+ public InputStream getBinaryStream() throws SQLException {
+ try {
+ return this.getStreamFactory().getInputStream();
+ } catch (IOException e) {
+ SQLException ex = new SQLException(e.getMessage());
+ ex.initCause(e);
+ throw ex;
+ }
+ }
+
+ @Override
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ streamFactory = (InputStreamFactory)in.readObject();
+ }
+
+ @Override
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject(streamFactory);
+ }
+
+}
Property changes on: trunk/common-core/src/main/java/org/teiid/core/types/BaseLob.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: trunk/common-core/src/main/java/org/teiid/core/types/BlobImpl.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/BlobImpl.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/BlobImpl.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/BlobImpl.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,211 @@
+/*
+ * 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 org.teiid.core.types;
+
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.sql.Blob;
+import java.sql.SQLException;
+
+import javax.sql.rowset.serial.SerialBlob;
+
+import org.teiid.core.CorePlugin;
+import org.teiid.core.types.LobSearchUtil.StreamProvider;
+import org.teiid.core.util.SqlUtil;
+
+
+/**
+ * This object holds a chunk of binary data and implements the JDBC Blob interface.
+ * It presents a streaming interface and provides a way to access partial
+ * of the blob data. Connectors can use this object when dealing with large
+ * objects.
+ */
+public class BlobImpl extends BaseLob implements Blob, StreamProvider {
+
+ public BlobImpl() {
+
+ }
+
+ /**
+ * Creates a MMBlob object with the <code>valueID</code>.
+ * @param valueID reference to value chunk in data source.
+ */
+ public BlobImpl(InputStreamFactory streamFactory) {
+ super(streamFactory);
+ }
+
+ /**
+ * Returns as an array of bytes, part or all of the <code>BLOB</code>
+ * value that this <code>Blob</code> object designates. The byte
+ * array contains up to <code>length</code> consecutive bytes
+ * starting at position <code>pos</code>.
+ * @param pos the ordinal position of the first byte in the
+ * <code>BLOB</code> value to be extracted; the first byte is at
+ * position 1
+ * @param length the number of consecutive bytes to be copied
+ * @return a byte array containing up to <code>length</code>
+ * consecutive bytes from the <code>BLOB</code> value designated
+ * by this <code>Blob</code> object, starting with the
+ * byte at position <code>pos</code>
+ * @exception SQLException if there is an error accessing the
+ * <code>BLOB</code>
+ */
+ public byte[] getBytes(long pos, int length) throws SQLException {
+ if (pos < 1) {
+ Object[] params = new Object[] {new Long(pos)};
+ throw new SQLException(CorePlugin.Util.getString("MMClob_MMBlob.0", params)); //$NON-NLS-1$
+ }
+ else if (pos > length()) {
+ return null;
+ }
+ pos = pos - 1;
+
+ if (length < 0) {
+ Object[] params = new Object[] {new Integer( length)};
+ throw new SQLException(CorePlugin.Util.getString("MMClob_MMBlob.3", params)); //$NON-NLS-1$
+ }
+ else if (pos + length > length()) {
+ length = (int)(length() - pos);
+ }
+ byte[] dataCopy = new byte[length];
+ InputStream in = getBinaryStream();
+ try {
+ try {
+ in.skip(pos);
+ in.read(dataCopy);
+ } finally {
+ in.close();
+ }
+ } catch (IOException e) {
+ throw new SQLException(e);
+ }
+ return dataCopy;
+ }
+
+ /**
+ * Returns the number of bytes in the <code>BLOB</code> value
+ * designated by this <code>Blob</code> object.
+ * @return length of the <code>BLOB</code> in bytes
+ */
+ public long length() throws SQLException{
+ if (getStreamFactory().getLength() == -1) {
+ InputStream is = new BufferedInputStream(getBinaryStream());
+ try {
+ long length = 0;
+ while (is.read() != -1) {
+ length++;
+ }
+ getStreamFactory().setLength(length);
+ } catch (IOException e) {
+ throw new SQLException(e);
+ } finally {
+ try {
+ is.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+ return getStreamFactory().getLength();
+ }
+
+ /**
+ * Determines the byte position in the <code>BLOB</code> value
+ * designated by this <code>Blob</code> object at which
+ * <code>pattern</code> begins. The search begins at position
+ * <code>start</code>.
+ * @param pattern the <code>Blob</code> object designating
+ * the <code>BLOB</code> value for which to search
+ * @param start the position in the <code>BLOB</code> value
+ * at which to begin searching; the first position is 1
+ * @return the position at which the pattern begins, else -1
+ * @exception SQLException if there is an error accessing the
+ * <code>BLOB</code>
+ */
+ public long position(final Blob pattern, long start) throws SQLException {
+ if (pattern == null) {
+ return -1;
+ }
+
+ return LobSearchUtil.position(new LobSearchUtil.StreamProvider() {
+ public InputStream getBinaryStream() throws SQLException {
+ return pattern.getBinaryStream();
+ }
+ }, pattern.length(), this, this.length(), start, 1);
+ }
+
+ /**
+ * Determines the byte position at which the specified byte
+ * <code>pattern</code> begins within the <code>BLOB</code>
+ * value that this <code>Blob</code> object represents. The
+ * search for <code>pattern</code> begins at position
+ * <code>start</code>.
+ * @param pattern the byte array for which to search
+ * @param start the position at which to begin searching; the
+ * first position is 1
+ * @return the position at which the pattern appears, else -1
+ * @exception SQLException if there is an error accessing the
+ * <code>BLOB</code>
+ */
+ public long position(byte[] pattern, long start) throws SQLException {
+ if (pattern == null) {
+ return -1;
+ }
+ return position(new SerialBlob(pattern), start);
+ }
+
+ public InputStream getBinaryStream(long arg0, long arg1)
+ throws SQLException {
+ throw SqlUtil.createFeatureNotSupportedException();
+ }
+
+
+ /**
+ * @see java.sql.Blob#setBytes(long, byte[])
+ */
+ public int setBytes(long pos, byte[] bytes) throws SQLException {
+ throw SqlUtil.createFeatureNotSupportedException();
+ }
+
+ /**
+ * @see java.sql.Blob#setBytes(long, byte[], int, int)
+ */
+ public int setBytes(long pos, byte[] bytes, int offset, int len) throws SQLException {
+ throw SqlUtil.createFeatureNotSupportedException();
+ }
+
+ /**
+ * @see java.sql.Blob#setBinaryStream(long)
+ */
+ public OutputStream setBinaryStream(long pos) throws SQLException {
+ throw SqlUtil.createFeatureNotSupportedException();
+ }
+
+ /**
+ * @see java.sql.Blob#truncate(long)
+ */
+ public void truncate(long len) throws SQLException {
+ throw SqlUtil.createFeatureNotSupportedException();
+ }
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/types/BlobType.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/BlobType.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/BlobType.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/BlobType.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,153 @@
+/*
+ * 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 org.teiid.core.types;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.sql.Blob;
+import java.sql.SQLException;
+
+import javax.sql.rowset.serial.SerialBlob;
+
+import org.teiid.core.TeiidRuntimeException;
+
+
+/**
+ * Represent a value of type "blob", which can be streamable from client
+ */
+public final class BlobType extends Streamable<Blob> implements Blob {
+
+ private static final long serialVersionUID = 1294191629070433450L;
+
+ public BlobType() {
+ }
+
+ public BlobType(Blob blob) {
+ super(blob);
+ }
+
+ /**
+ * @see java.sql.Blob#getBinaryStream()
+ */
+ public InputStream getBinaryStream() throws SQLException {
+ return this.reference.getBinaryStream();
+ }
+
+ /**
+ * @see java.sql.Blob#getBytes(long, int)
+ */
+ public byte[] getBytes(long pos, int length) throws SQLException {
+ return this.reference.getBytes(pos, length);
+ }
+
+ /**
+ * @see java.sql.Blob#length()
+ */
+ public long length() throws SQLException {
+ //caching the length
+ if (this.length != -1) {
+ return this.length;
+ }
+ // if did not find before then do it again.
+ this.length = this.reference.length();
+ return length;
+ }
+
+ /**
+ * @see java.sql.Blob#position(java.sql.Blob, long)
+ */
+ public long position(Blob pattern, long start) throws SQLException {
+ return this.reference.position(pattern, start);
+ }
+
+ /**
+ * @see java.sql.Blob#position(byte[], long)
+ */
+ public long position(byte[] pattern, long start) throws SQLException {
+ return this.reference.position(pattern, start);
+ }
+
+ /**
+ * @see java.sql.Blob#setBinaryStream(long)
+ */
+ public OutputStream setBinaryStream(long pos) throws SQLException {
+ return this.reference.setBinaryStream(pos);
+ }
+
+ /**
+ * @see java.sql.Blob#setBytes(long, byte[], int, int)
+ * @since 4.3
+ */
+ public int setBytes(long pos,
+ byte[] bytes,
+ int offset,
+ int len) throws SQLException {
+ return this.reference.setBytes(pos, bytes, offset, len);
+ }
+
+ /**
+ * @see java.sql.Blob#setBytes(long, byte[])
+ */
+ public int setBytes(long pos, byte[] bytes) throws SQLException {
+ return this.reference.setBytes(pos, bytes);
+ }
+
+ /**
+ * @see java.sql.Blob#truncate(long)
+ */
+ public void truncate(long len) throws SQLException {
+ this.reference.truncate(len);
+ }
+
+ //## JDBC4.0-begin ##
+ public void free() throws SQLException {
+ this.reference.free();
+ }
+
+ public InputStream getBinaryStream(long pos, long length)
+ throws SQLException {
+ return this.reference.getBinaryStream(pos, length);
+ }
+ //## JDBC4.0-end ##
+
+ public static SerialBlob createBlob(byte[] bytes) {
+ if (bytes == null) {
+ return null;
+ }
+ try {
+ return new SerialBlob(bytes);
+ } catch (SQLException e) {
+ throw new TeiidRuntimeException(e);
+ }
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws IOException {
+ try {
+ length();
+ } catch (SQLException e) {
+ }
+ out.defaultWriteObject();
+ }
+
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/types/ClobImpl.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/ClobImpl.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/ClobImpl.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/ClobImpl.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,230 @@
+/*
+ * 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 org.teiid.core.types;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Reader;
+import java.io.Writer;
+import java.nio.charset.Charset;
+import java.sql.Clob;
+import java.sql.SQLException;
+
+import javax.sql.rowset.serial.SerialClob;
+
+import org.teiid.core.CorePlugin;
+import org.teiid.core.util.ReaderInputStream;
+import org.teiid.core.util.SqlUtil;
+
+
+/**
+ * This object holds a chunk of char data and implements the JDBC Clob interface.
+ * This object presents a streaming interface and provides a way to access partial
+ * of the Clob data. Connectors can use this object when dealing with large
+ * objects.
+ */
+public class ClobImpl extends BaseLob implements Clob {
+
+ private final static class ClobStreamProvider implements
+ LobSearchUtil.StreamProvider {
+ private final Clob searchstr;
+
+ private ClobStreamProvider(Clob searchstr) {
+ this.searchstr = searchstr;
+ }
+
+ public InputStream getBinaryStream() throws SQLException {
+ ReaderInputStream ris = new ReaderInputStream(searchstr.getCharacterStream(), Charset.forName("UTF-16")); //$NON-NLS-1$
+ try {
+ ris.skip(2);
+ return ris;
+ } catch (IOException e) {
+ throw new SQLException(e);
+ }
+ }
+ }
+
+ private long len = -1;
+
+ public ClobImpl() {
+
+ }
+
+ /**
+ * Creates a new ClobImpl. Note that the length is not taken from the {@link InputStreamFactory} since
+ * it refers to bytes and not chars.
+ * @param streamFactory
+ * @param length
+ */
+ public ClobImpl(InputStreamFactory streamFactory, long length) {
+ super(streamFactory);
+ this.len = length;
+ }
+
+ /**
+ * Gets the <code>CLOB</code> value designated by this <code>Clob</code>
+ * object as a stream of Ascii bytes.
+ * @return an ascii stream containing the <code>CLOB</code> data
+ * @exception SQLException if there is an error accessing the
+ * <code>CLOB</code> value
+ */
+ public InputStream getAsciiStream() throws SQLException {
+ return new ReaderInputStream(getCharacterStream(), Charset.forName("US-ASCII")); //$NON-NLS-1$
+ }
+
+ /**
+ * Returns a copy of the specified substring
+ * in the <code>CLOB</code> value
+ * designated by this <code>Clob</code> object.
+ * The substring begins at position
+ * <code>pos</code> and has up to <code>length</code> consecutive
+ * characters.
+ * @param pos the first character of the substring to be extracted.
+ * The first character is at position 1.
+ * @param length the number of consecutive characters to be copied
+ * @return a <code>String</code> that is the specified substring in
+ * the <code>CLOB</code> value designated by this <code>Clob</code> object
+ * @exception SQLException if there is an error accessing the <code>CLOB</code>
+ */
+ public String getSubString(long pos, int length) throws SQLException {
+ if (pos < 1) {
+ Object[] params = new Object[] {new Long(pos)};
+ throw new SQLException(CorePlugin.Util.getString("MMClob_MMBlob.0", params)); //$NON-NLS-1$
+ } else if (pos > length()) {
+ return null;
+ }
+ pos = pos - 1;
+ if (length < 0) {
+ Object[] params = new Object[] {new Integer( length)};
+ throw new SQLException(CorePlugin.Util.getString("MMClob_MMBlob.1", params)); //$NON-NLS-1$
+ } else if ((pos+length) > length()) {
+ length = (int)(length()-pos);
+ }
+ char[] dataCopy = new char[length];
+ Reader in = getCharacterStream();
+ try {
+ try {
+ in.skip(pos);
+ in.read(dataCopy);
+ } finally {
+ in.close();
+ }
+ } catch (IOException e) {
+ throw new SQLException(e);
+ }
+ return new String(dataCopy);
+ }
+
+ /**
+ * Returns the number of characters in the <code>CLOB</code> value
+ * designated by this <code>Clob</code> object.
+ * @return length of the <code>CLOB</code> in characters
+ */
+ public long length() throws SQLException {
+ if (len == -1) {
+ long length = 0;
+ Reader r = new BufferedReader(getCharacterStream());
+ try {
+ while (r.read() != -1) {
+ length++;
+ }
+ } catch (IOException e) {
+ throw new SQLException(e);
+ } finally {
+ try {
+ r.close();
+ } catch (IOException e) {
+ }
+ }
+ this.len = length;
+ }
+ return len;
+ }
+
+ /**
+ * Determines the character position at which the specified
+ * <code>Clob</code> object <code>searchstr</code> appears in this
+ * <code>Clob</code> object. The search begins at position
+ * <code>start</code>.
+ * @param searchstr the <code>Clob</code> object for which to search
+ * @param start the position at which to begin searching; the first
+ * position is 1
+ * @return the position at which the <code>Clob</code> object appears,
+ * else -1; the first position is 1
+ */
+ public long position(final Clob searchstr, long start) throws SQLException {
+ if (searchstr == null) {
+ return -1;
+ }
+
+ return LobSearchUtil.position(new ClobStreamProvider(searchstr), searchstr.length(), new ClobStreamProvider(this), this.length(), start, 2);
+ }
+
+ /**
+ * Determines the character position at which the specified substring
+ * <code>searchstr</code> appears in the SQL <code>CLOB</code> value
+ * represented by this <code>Clob</code> object. The search
+ * begins at position <code>start</code>.
+ * @param searchstr the substring for which to search
+ * @param start the position at which to begin searching; the first position
+ * is 1
+ * @return the position at which the substring appears, else -1; the first
+ * position is 1
+ * @exception SQLException if there is an error accessing the
+ * <code>CLOB</code> value
+ */
+ public long position(String searchstr, long start) throws SQLException {
+ if (searchstr == null) {
+ return -1;
+ }
+ return position(new SerialClob(searchstr.toCharArray()), start);
+ }
+
+ public Reader getCharacterStream(long arg0, long arg1) throws SQLException {
+ throw SqlUtil.createFeatureNotSupportedException();
+ }
+
+ public OutputStream setAsciiStream(long arg0) throws SQLException {
+ throw SqlUtil.createFeatureNotSupportedException();
+ }
+
+ public Writer setCharacterStream(long arg0) throws SQLException {
+ throw SqlUtil.createFeatureNotSupportedException();
+ }
+
+ public int setString(long arg0, String arg1) throws SQLException {
+ throw SqlUtil.createFeatureNotSupportedException();
+ }
+
+ public int setString(long arg0, String arg1, int arg2, int arg3)
+ throws SQLException {
+ throw SqlUtil.createFeatureNotSupportedException();
+ }
+
+ public void truncate(long arg0) throws SQLException {
+ throw SqlUtil.createFeatureNotSupportedException();
+ }
+
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/types/ClobType.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/ClobType.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/ClobType.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/ClobType.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,228 @@
+/*
+ * 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 org.teiid.core.types;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Reader;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.sql.Clob;
+import java.sql.SQLException;
+
+import javax.sql.rowset.serial.SerialClob;
+
+import org.teiid.core.TeiidRuntimeException;
+
+
+/**
+ * This is wrapper on top of a "clob" object, which implements the "java.sql.Clob"
+ * interface. This class also implements the Streamable interface
+ */
+public final class ClobType extends Streamable<Clob> implements Clob, Sequencable {
+
+ private static final long serialVersionUID = 2753412502127824104L;
+
+ public ClobType() {
+ }
+
+ public ClobType(Clob clob) {
+ super(clob);
+ }
+
+ /**
+ * @see java.sql.Clob#getAsciiStream()
+ */
+ public InputStream getAsciiStream() throws SQLException {
+ return this.reference.getAsciiStream();
+ }
+
+ /**
+ * @see java.sql.Clob#getCharacterStream()
+ */
+ public Reader getCharacterStream() throws SQLException {
+ return this.reference.getCharacterStream();
+ }
+
+ /**
+ * @see java.sql.Clob#getSubString(long, int)
+ */
+ public String getSubString(long pos, int length) throws SQLException {
+ return this.reference.getSubString(pos, length);
+ }
+
+ /**
+ * @see java.sql.Clob#length()
+ */
+ public long length() throws SQLException {
+ if (this.length != -1) {
+ return this.length;
+ }
+
+ this.length = this.reference.length();
+ return length;
+ }
+
+ /**
+ * @see java.sql.Clob#position(java.sql.Clob, long)
+ */
+ public long position(Clob searchstr, long start) throws SQLException {
+ return this.reference.position(searchstr, start);
+ }
+
+ /**
+ * @see java.sql.Clob#position(java.lang.String, long)
+ */
+ public long position(String searchstr, long start) throws SQLException {
+ return this.reference.position(searchstr, start);
+ }
+
+ /**
+ * @see java.sql.Clob#setAsciiStream(long)
+ */
+ public OutputStream setAsciiStream(long pos) throws SQLException {
+ return this.reference.setAsciiStream(pos);
+ }
+
+ /**
+ * @see java.sql.Clob#setCharacterStream(long)
+ */
+ public Writer setCharacterStream(long pos) throws SQLException {
+ return this.reference.setCharacterStream(pos);
+ }
+
+ /**
+ * @see java.sql.Clob#setString(long, java.lang.String, int, int)
+ */
+ public int setString(long pos,
+ String str,
+ int offset,
+ int len) throws SQLException {
+ return this.reference.setString(pos, str, offset, len);
+ }
+
+ /**
+ * @see java.sql.Clob#setString(long, java.lang.String)
+ */
+ public int setString(long pos, String str) throws SQLException {
+ return this.reference.setString(pos, str);
+ }
+
+ /**
+ * @see java.sql.Clob#truncate(long)
+ */
+ public void truncate(long len) throws SQLException {
+ this.reference.truncate(len);
+ }
+
+ /**
+ * Utility method to convert to String
+ * @param clob
+ * @return string form of the clob passed.
+ */
+ public static String getString(Clob clob) throws SQLException, IOException {
+ Reader reader = clob.getCharacterStream();
+ StringWriter writer = new StringWriter();
+ int c = reader.read();
+ while (c != -1) {
+ writer.write((char)c);
+ c = reader.read();
+ }
+ reader.close();
+ String data = writer.toString();
+ writer.close();
+ return data;
+ }
+
+ private final static int CHAR_SEQUENCE_BUFFER_SIZE = 1 << 12;
+
+ public CharSequence getCharSequence() {
+ return new CharSequence() {
+
+ private String buffer;
+ private int beginPosition;
+
+ public int length() {
+ long result;
+ try {
+ result = ClobType.this.length();
+ } catch (SQLException err) {
+ throw new TeiidRuntimeException(err);
+ }
+ if (((int)result) != result) {
+ throw new TeiidRuntimeException("Clob value is not representable by CharSequence"); //$NON-NLS-1$
+ }
+ return (int)result;
+ }
+
+ public char charAt(int index) {
+ try {
+ if (buffer == null || index < beginPosition || index >= beginPosition + buffer.length()) {
+ buffer = ClobType.this.getSubString(index + 1, CHAR_SEQUENCE_BUFFER_SIZE);
+ beginPosition = index;
+ }
+ return buffer.charAt(index - beginPosition);
+ } catch (SQLException err) {
+ throw new TeiidRuntimeException(err);
+ }
+ }
+
+ public CharSequence subSequence(int start,
+ int end) {
+ try {
+ return ClobType.this.getSubString(start + 1, end - start);
+ } catch (SQLException err) {
+ throw new TeiidRuntimeException(err);
+ }
+ }
+
+ };
+ }
+ //## JDBC4.0-begin ##
+ public void free() throws SQLException {
+ this.reference.free();
+ }
+
+ public Reader getCharacterStream(long pos, long length) throws SQLException {
+ return this.reference.getCharacterStream(pos, length);
+ }
+ //## JDBC4.0-end ##
+
+ public static SerialClob createClob(char[] chars) {
+ try {
+ return new SerialClob(chars);
+ } catch (SQLException e) {
+ throw new TeiidRuntimeException(e);
+ }
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws IOException {
+ try {
+ length();
+ } catch (SQLException e) {
+ }
+ out.defaultWriteObject();
+ }
+
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/types/DataTypeManager.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/DataTypeManager.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/DataTypeManager.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/DataTypeManager.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,854 @@
+/*
+ * 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 org.teiid.core.types;
+
+import java.lang.ref.WeakReference;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.sql.Blob;
+import java.sql.Clob;
+import java.sql.SQLXML;
+import java.sql.Time;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.xml.transform.Source;
+
+import org.teiid.core.CorePlugin;
+import org.teiid.core.ErrorMessageKeys;
+import org.teiid.core.TeiidRuntimeException;
+import org.teiid.core.types.basic.AnyToObjectTransform;
+import org.teiid.core.types.basic.AnyToStringTransform;
+import org.teiid.core.types.basic.BooleanToNumberTransform;
+import org.teiid.core.types.basic.ClobToSQLXMLTransform;
+import org.teiid.core.types.basic.FixedNumberToBigDecimalTransform;
+import org.teiid.core.types.basic.FixedNumberToBigIntegerTransform;
+import org.teiid.core.types.basic.FloatingNumberToBigDecimalTransform;
+import org.teiid.core.types.basic.FloatingNumberToBigIntegerTransform;
+import org.teiid.core.types.basic.NullToAnyTransform;
+import org.teiid.core.types.basic.NumberToBooleanTransform;
+import org.teiid.core.types.basic.NumberToByteTransform;
+import org.teiid.core.types.basic.NumberToDoubleTransform;
+import org.teiid.core.types.basic.NumberToFloatTransform;
+import org.teiid.core.types.basic.NumberToIntegerTransform;
+import org.teiid.core.types.basic.NumberToLongTransform;
+import org.teiid.core.types.basic.NumberToShortTransform;
+import org.teiid.core.types.basic.ObjectToAnyTransform;
+import org.teiid.core.types.basic.SQLXMLToClobTransform;
+import org.teiid.core.util.ArgCheck;
+import org.teiid.core.util.HashCodeUtil;
+import org.teiid.core.util.PropertiesUtils;
+
+
+/**
+ * <p>
+ * This class manages data type, conversions between data types, and comparators
+ * for data types. In the future other data type information may be managed
+ * here.
+ * </p>
+ *
+ * <p>
+ * In general, methods are provided to refer to types either by Class, or by
+ * Class name. The benefit of the Class name option is that the user does not
+ * need to load the Class object, which may not be in the classpath. The
+ * advantage of the Class option is speed.
+ * </p>
+ */
+public class DataTypeManager {
+
+ private static final boolean USE_VALUE_CACHE = PropertiesUtils.getBooleanProperty(System.getProperties(), "org.teiid.useValueCache", true); //$NON-NLS-1$
+
+ private static boolean valueCacheEnabled;
+
+ private interface ValueCache<T> {
+ T getValue(T value);
+ }
+
+ private static class HashedValueCache<T> implements ValueCache<T> {
+
+ final Object[] cache;
+
+ HashedValueCache(int size) {
+ cache = new Object[1 << size];
+ }
+
+ @SuppressWarnings("unchecked")
+ public T getValue(T value) {
+ int index = hash(primaryHash(value)) & (cache.length - 1);
+ Object canonicalValue = get(index);
+ if (value.equals(canonicalValue)) {
+ return (T)canonicalValue;
+ }
+ set(index, value);
+ return value;
+ }
+
+ protected Object get(int index) {
+ return cache[index];
+ }
+
+ protected void set(int index, T value) {
+ cache[index] = value;
+ }
+
+ protected int primaryHash(T value) {
+ return value.hashCode();
+ }
+
+ /*
+ * The same power of 2 hash bucketing from the Java HashMap
+ */
+ final static int hash(int h) {
+ h ^= (h >>> 20) ^ (h >>> 12);
+ return h ^= (h >>> 7) ^ (h >>> 4);
+ }
+ }
+
+ private static Map<Class<?>, ValueCache<?>> valueMaps = new HashMap<Class<?>, ValueCache<?>>(128);
+
+ public static final int MAX_STRING_LENGTH = 4000;
+
+ public static final class DataTypeAliases {
+ public static final String VARCHAR = "varchar"; //$NON-NLS-1$
+ public static final String TINYINT = "tinyint"; //$NON-NLS-1$
+ public static final String SMALLINT = "smallint"; //$NON-NLS-1$
+ public static final String BIGINT = "bigint"; //$NON-NLS-1$
+ public static final String REAL = "real"; //$NON-NLS-1$
+ public static final String DECIMAL = "decimal"; //$NON-NLS-1$
+ }
+
+ public static final class DefaultDataTypes {
+ public static final String STRING = "string"; //$NON-NLS-1$
+ public static final String BOOLEAN = "boolean"; //$NON-NLS-1$
+ public static final String BYTE = "byte"; //$NON-NLS-1$
+ public static final String SHORT = "short"; //$NON-NLS-1$
+ public static final String CHAR = "char"; //$NON-NLS-1$
+ public static final String INTEGER = "integer"; //$NON-NLS-1$
+ public static final String LONG = "long"; //$NON-NLS-1$
+ public static final String BIG_INTEGER = "biginteger"; //$NON-NLS-1$
+ public static final String FLOAT = "float"; //$NON-NLS-1$
+ public static final String DOUBLE = "double"; //$NON-NLS-1$
+ public static final String BIG_DECIMAL = "bigdecimal"; //$NON-NLS-1$
+ public static final String DATE = "date"; //$NON-NLS-1$
+ public static final String TIME = "time"; //$NON-NLS-1$
+ public static final String TIMESTAMP = "timestamp"; //$NON-NLS-1$
+ public static final String OBJECT = "object"; //$NON-NLS-1$
+ public static final String NULL = "null"; //$NON-NLS-1$
+ public static final String BLOB = "blob"; //$NON-NLS-1$
+ public static final String CLOB = "clob"; //$NON-NLS-1$
+ public static final String XML = "xml"; //$NON-NLS-1$
+ }
+
+ public static final class DefaultDataClasses {
+ public static final Class<String> STRING = String.class;
+ public static final Class<Boolean> BOOLEAN = Boolean.class;
+ public static final Class<Byte> BYTE = Byte.class;
+ public static final Class<Short> SHORT = Short.class;
+ public static final Class<Character> CHAR = Character.class;
+ public static final Class<Integer> INTEGER = Integer.class;
+ public static final Class<Long> LONG = Long.class;
+ public static final Class<BigInteger> BIG_INTEGER = BigInteger.class;
+ public static final Class<Float> FLOAT = Float.class;
+ public static final Class<Double> DOUBLE = Double.class;
+ public static final Class<BigDecimal> BIG_DECIMAL = BigDecimal.class;
+ public static final Class<java.sql.Date> DATE = java.sql.Date.class;
+ public static final Class<Time> TIME = Time.class;
+ public static final Class<Timestamp> TIMESTAMP = Timestamp.class;
+ public static final Class<Object> OBJECT = Object.class;
+ public static final Class<NullType> NULL = NullType.class;
+ public static final Class<BlobType> BLOB = BlobType.class;
+ public static final Class<ClobType> CLOB = ClobType.class;
+ public static final Class<XMLType> XML = XMLType.class;
+ }
+
+ /**
+ * Doubly-nested map of String srcType --> Map of String targetType -->
+ * Transform
+ */
+ private static Map<String, Map<String, Transform>> transforms = new HashMap<String, Map<String, Transform>>(128);
+
+ /** Utility to easily get Transform given srcType and targetType */
+ private static Transform getTransformFromMaps(String srcType,
+ String targetType) {
+ Map<String, Transform> innerMap = transforms.get(srcType);
+ if (innerMap != null) {
+ return innerMap.get(targetType);
+ }
+ return null;
+ }
+
+ /** Base data type names and classes, Type name --> Type class */
+ private static Map<String, Class> dataTypeNames = new LinkedHashMap<String, Class>(128);
+
+ /** Base data type names and classes, Type class --> Type name */
+ private static Map<Class, String> dataTypeClasses = new LinkedHashMap<Class, String>(128);
+
+ private static Set<String> DATA_TYPE_NAMES;
+
+ private static Set<Class> DATA_TYPE_CLASSES = Collections.unmodifiableSet(dataTypeClasses.keySet());
+
+ private static Map<Class<?>, SourceTransform> sourceConverters = new HashMap<Class<?>, SourceTransform>();
+
+ // Static initializer - loads basic transforms types
+ static {
+ // Load default data types - not extensible yet
+ loadDataTypes();
+
+ // Load default transforms
+ loadBasicTransforms();
+
+ loadSourceConversions();
+ }
+
+ /**
+ * Constructor is private so instance creation is controlled by the class.
+ */
+ private DataTypeManager() {
+ }
+
+ /**
+ * Add a new data type. For now this consists just of the Class - in the
+ * future a data type will be a more complicated entity. This is
+ * package-level for now as it is just used to add the default data types.
+ *
+ * @param dataType
+ * New data type defined by Class
+ */
+ static void addDataType(String typeName, Class dataType) {
+ dataTypeNames.put(typeName, dataType);
+ dataTypeClasses.put(dataType, typeName);
+ }
+
+ /**
+ * Get a set of all data type names.
+ *
+ * @return Set of data type names (String)
+ */
+ public static Set<String> getAllDataTypeNames() {
+ return DATA_TYPE_NAMES;
+ }
+
+ public static Set<Class> getAllDataTypeClasses() {
+ return DATA_TYPE_CLASSES;
+ }
+
+ /**
+ * Get data type class.
+ *
+ * @param name
+ * Data type name
+ * @return Data type class
+ */
+ public static Class getDataTypeClass(String name) {
+ if (name == null) {
+ return DefaultDataClasses.NULL;
+ }
+
+ // Hope this is the correct case (as it will be if using the constants
+ Class dataTypeClass = dataTypeNames.get(name);
+
+ // If that fails, do a lower case to make sure we match
+ if (dataTypeClass == null) {
+ dataTypeClass = dataTypeNames.get(name.toLowerCase());
+ }
+
+ if (dataTypeClass == null) {
+ dataTypeClass = DefaultDataClasses.OBJECT;
+ }
+ return dataTypeClass;
+ }
+
+ public static String getDataTypeName(Class typeClass) {
+ if (typeClass == null) {
+ return DefaultDataTypes.NULL;
+ }
+
+ String result = dataTypeClasses.get(typeClass);
+ if (result == null) {
+ result = DefaultDataTypes.OBJECT;
+ }
+
+ return result;
+ }
+
+ /**
+ * Take an object and determine the MetaMatrix data type. In most cases,
+ * this is simply the class of the object. Some special cases are when the
+ * value is of type Object or Null.
+ */
+ public static Class determineDataTypeClass(Object value) {
+ // Handle null case
+ if (value == null) {
+ return DefaultDataClasses.NULL;
+ }
+
+ return getDataTypeClass(getDataTypeName(convertToRuntimeType(value)
+ .getClass()));
+ }
+
+ /**
+ * Get a data value transformation between the sourceType and the
+ * targetType.
+ *
+ * @param sourceType
+ * Incoming value type
+ * @param targetType
+ * Outgoing value type
+ * @return A transform if one exists, null otherwise
+ */
+ public static Transform getTransform(Class sourceType, Class targetType) {
+ if (sourceType == null || targetType == null) {
+ throw new IllegalArgumentException(CorePlugin.Util.getString(
+ ErrorMessageKeys.TYPES_ERR_0002, sourceType, targetType));
+ }
+ return getTransformFromMaps(
+ DataTypeManager.getDataTypeName(sourceType), DataTypeManager
+ .getDataTypeName(targetType));
+ }
+
+ /**
+ * Get a data value transformation between the sourceType with given name
+ * and the targetType of given name. The Class for source and target type
+ * are not needed to do this lookup.
+ *
+ * @param sourceTypeName
+ * Incoming value type name
+ * @param targetTypeName
+ * Outgoing value type name
+ * @return A transform if one exists, null otherwise
+ */
+ public static Transform getTransform(String sourceTypeName,
+ String targetTypeName) {
+ if (sourceTypeName == null || targetTypeName == null) {
+ throw new IllegalArgumentException(CorePlugin.Util.getString(
+ ErrorMessageKeys.TYPES_ERR_0003, sourceTypeName,
+ targetTypeName));
+ }
+ return getTransformFromMaps(sourceTypeName, targetTypeName);
+ }
+
+ /**
+ * Does a transformation exist between the source and target type?
+ *
+ * @param sourceType
+ * Incoming value type
+ * @param targetType
+ * Outgoing value type
+ * @return True if a transform exists
+ */
+ public static boolean isTransformable(Class sourceType, Class targetType) {
+ if (sourceType == null || targetType == null) {
+ throw new IllegalArgumentException(CorePlugin.Util.getString(
+ ErrorMessageKeys.TYPES_ERR_0002, sourceType, targetType));
+ }
+ return (getTransformFromMaps(DataTypeManager
+ .getDataTypeName(sourceType), DataTypeManager
+ .getDataTypeName(targetType)) != null);
+ }
+
+ /**
+ * Does a transformation exist between the source and target type of given
+ * names? The Class for source and target type are not needed to do this
+ * lookup.
+ *
+ * @param sourceTypeName
+ * Incoming value type name
+ * @param targetTypeName
+ * Outgoing value type name
+ * @return True if a transform exists
+ */
+ public static boolean isTransformable(String sourceTypeName,
+ String targetTypeName) {
+ if (sourceTypeName == null || targetTypeName == null) {
+ throw new IllegalArgumentException(CorePlugin.Util.getString(
+ ErrorMessageKeys.TYPES_ERR_0003, sourceTypeName,
+ targetTypeName));
+ }
+ return (getTransformFromMaps(sourceTypeName, targetTypeName) != null);
+ }
+
+ /**
+ * Add a new transform to the known transform types.
+ *
+ * @param transform
+ * New transform to add
+ */
+ static void addTransform(Transform transform) {
+ ArgCheck.isNotNull(transform);
+ String sourceName = transform.getSourceTypeName();
+ String targetName = transform.getTargetTypeName();
+
+ Map<String, Transform> innerMap = transforms.get(sourceName);
+ if (innerMap == null) {
+ innerMap = new LinkedHashMap<String, Transform>();
+ transforms.put(sourceName, innerMap);
+ }
+ innerMap.put(targetName, transform);
+ }
+
+ public static List<String> getImplicitConversions(String type) {
+ Map<String, Transform> innerMap = transforms.get(type);
+ if (innerMap != null) {
+ List<String> result = new ArrayList<String>(innerMap.size());
+ for (Map.Entry<String, Transform> entry : innerMap.entrySet()) {
+ if (!entry.getValue().isExplicit()) {
+ result.add(entry.getKey());
+ }
+ }
+ return result;
+ }
+ return Collections.emptyList();
+ }
+
+ public static boolean isImplicitConversion(String srcType, String tgtType) {
+ Transform t = getTransform(srcType, tgtType);
+ if (t != null) {
+ return !t.isExplicit();
+ }
+ return false;
+ }
+
+ public static boolean isExplicitConversion(String srcType, String tgtType) {
+ Transform t = getTransform(srcType, tgtType);
+ if (t != null) {
+ return t.isExplicit();
+ }
+ return false;
+ }
+
+ /**
+ * Is the supplied class type a LOB based data type?
+ *
+ * @param type
+ * @return true if yes; false otherwise
+ */
+ public static boolean isLOB(Class<?> type) {
+ return DataTypeManager.DefaultDataClasses.BLOB.equals(type)
+ || DataTypeManager.DefaultDataClasses.CLOB.equals(type)
+ || DataTypeManager.DefaultDataClasses.XML.equals(type);
+ }
+
+ public static boolean isLOB(String type) {
+ return DataTypeManager.DefaultDataTypes.BLOB.equals(type)
+ || DataTypeManager.DefaultDataTypes.CLOB.equals(type)
+ || DataTypeManager.DefaultDataTypes.XML.equals(type);
+ }
+
+ /**
+ * Load default data types.
+ */
+ static void loadDataTypes() {
+ DataTypeManager.addDataType(DefaultDataTypes.BOOLEAN, DefaultDataClasses.BOOLEAN);
+ DataTypeManager.addDataType(DefaultDataTypes.BYTE, DefaultDataClasses.BYTE);
+ DataTypeManager.addDataType(DefaultDataTypes.SHORT, DefaultDataClasses.SHORT);
+ DataTypeManager.addDataType(DefaultDataTypes.CHAR, DefaultDataClasses.CHAR);
+ DataTypeManager.addDataType(DefaultDataTypes.INTEGER, DefaultDataClasses.INTEGER);
+ DataTypeManager.addDataType(DefaultDataTypes.LONG, DefaultDataClasses.LONG);
+ DataTypeManager.addDataType(DefaultDataTypes.BIG_INTEGER, DefaultDataClasses.BIG_INTEGER);
+ DataTypeManager.addDataType(DefaultDataTypes.FLOAT, DefaultDataClasses.FLOAT);
+ DataTypeManager.addDataType(DefaultDataTypes.DOUBLE, DefaultDataClasses.DOUBLE);
+ DataTypeManager.addDataType(DefaultDataTypes.BIG_DECIMAL, DefaultDataClasses.BIG_DECIMAL);
+ DataTypeManager.addDataType(DefaultDataTypes.DATE, DefaultDataClasses.DATE);
+ DataTypeManager.addDataType(DefaultDataTypes.TIME, DefaultDataClasses.TIME);
+ DataTypeManager.addDataType(DefaultDataTypes.TIMESTAMP, DefaultDataClasses.TIMESTAMP);
+ DataTypeManager.addDataType(DefaultDataTypes.STRING, DefaultDataClasses.STRING);
+ DataTypeManager.addDataType(DefaultDataTypes.CLOB, DefaultDataClasses.CLOB);
+ DataTypeManager.addDataType(DefaultDataTypes.XML, DefaultDataClasses.XML);
+ DataTypeManager.addDataType(DefaultDataTypes.OBJECT, DefaultDataClasses.OBJECT);
+ DataTypeManager.addDataType(DefaultDataTypes.NULL, DefaultDataClasses.NULL);
+ DataTypeManager.addDataType(DefaultDataTypes.BLOB, DefaultDataClasses.BLOB);
+ DATA_TYPE_NAMES = Collections.unmodifiableSet(new LinkedHashSet<String>(dataTypeNames.keySet()));
+ dataTypeNames.put(DataTypeAliases.BIGINT, DefaultDataClasses.LONG);
+ dataTypeNames.put(DataTypeAliases.DECIMAL, DefaultDataClasses.BIG_DECIMAL);
+ dataTypeNames.put(DataTypeAliases.REAL, DefaultDataClasses.FLOAT);
+ dataTypeNames.put(DataTypeAliases.SMALLINT, DefaultDataClasses.SHORT);
+ dataTypeNames.put(DataTypeAliases.TINYINT, DefaultDataClasses.BYTE);
+ dataTypeNames.put(DataTypeAliases.VARCHAR, DefaultDataClasses.STRING);
+
+ if (USE_VALUE_CACHE) {
+ valueMaps.put(DefaultDataClasses.BOOLEAN, new ValueCache<Boolean>() {
+ @Override
+ public Boolean getValue(Boolean value) {
+ return Boolean.valueOf(value);
+ }
+ });
+ valueMaps.put(DefaultDataClasses.BYTE, new ValueCache<Byte>() {
+ @Override
+ public Byte getValue(Byte value) {
+ return Byte.valueOf(value);
+ }
+ });
+ valueMaps.put(DefaultDataClasses.SHORT, new HashedValueCache<Short>(13));
+ valueMaps.put(DefaultDataClasses.CHAR, new HashedValueCache<Character>(13));
+ valueMaps.put(DefaultDataClasses.INTEGER, new HashedValueCache<Integer>(14));
+ valueMaps.put(DefaultDataClasses.LONG, new HashedValueCache<Long>(14));
+ valueMaps.put(DefaultDataClasses.BIG_INTEGER, new HashedValueCache<BigInteger>(14));
+ valueMaps.put(DefaultDataClasses.FLOAT, new HashedValueCache<Float>(14));
+ valueMaps.put(DefaultDataClasses.DOUBLE, new HashedValueCache<Double>(14));
+ valueMaps.put(DefaultDataClasses.DATE, new HashedValueCache<Date>(14));
+ valueMaps.put(DefaultDataClasses.TIME, new HashedValueCache<Time>(14));
+ valueMaps.put(DefaultDataClasses.TIMESTAMP, new HashedValueCache<Timestamp>(14));
+ valueMaps.put(DefaultDataClasses.BIG_DECIMAL, new HashedValueCache<BigDecimal>(15) {
+ @Override
+ protected Object get(int index) {
+ WeakReference<?> ref = (WeakReference<?>) cache[index];
+ if (ref != null) {
+ return ref.get();
+ }
+ return null;
+ }
+
+ @Override
+ protected void set(int index, BigDecimal value) {
+ cache[index] = new WeakReference<BigDecimal>(value);
+ }
+ });
+ valueMaps.put(DefaultDataClasses.STRING, new HashedValueCache<String>(15) {
+ HashedValueCache<String> smallCache = new HashedValueCache<String>(13);
+
+ @Override
+ public String getValue(String value) {
+ if (value.length() < 14) {
+ return smallCache.getValue(value);
+ }
+ return super.getValue(value);
+ }
+
+ @Override
+ protected Object get(int index) {
+ WeakReference<?> ref = (WeakReference<?>) cache[index];
+ if (ref != null) {
+ return ref.get();
+ }
+ return null;
+ }
+
+ @Override
+ protected void set(int index, String value) {
+ cache[index] = new WeakReference<Object>(value);
+ }
+
+ @Override
+ protected int primaryHash(String value) {
+ return HashCodeUtil.expHashCode(value);
+ }
+ });
+ }
+ }
+
+ /**
+ * Load all basic {@link Transform}s into the DataTypeManager. This standard
+ * set is always installed but may be overridden.
+ */
+ static void loadBasicTransforms() {
+ DataTypeManager.addTransform(new BooleanToNumberTransform(Byte.valueOf((byte)1), Byte.valueOf((byte)0)));
+ DataTypeManager.addTransform(new BooleanToNumberTransform(Short.valueOf((short)1), Short.valueOf((short)0)));
+ DataTypeManager.addTransform(new BooleanToNumberTransform(Integer.valueOf(1), Integer.valueOf(0)));
+ DataTypeManager.addTransform(new BooleanToNumberTransform(Long.valueOf(1), Long.valueOf(0)));
+ DataTypeManager.addTransform(new BooleanToNumberTransform(BigInteger.valueOf(1), BigInteger.valueOf(0)));
+ DataTypeManager.addTransform(new BooleanToNumberTransform(Float.valueOf(1), Float.valueOf(0)));
+ DataTypeManager.addTransform(new BooleanToNumberTransform(Double.valueOf(1), Double.valueOf(0)));
+ DataTypeManager.addTransform(new BooleanToNumberTransform(BigDecimal.valueOf(1), BigDecimal.valueOf(0)));
+ DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.BOOLEAN));
+
+ DataTypeManager.addTransform(new NumberToBooleanTransform(Byte.valueOf((byte)0)));
+ DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.BYTE, false));
+ DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.BYTE, false));
+ DataTypeManager.addTransform(new NumberToLongTransform(DefaultDataClasses.BYTE, false, false));
+ DataTypeManager.addTransform(new FixedNumberToBigIntegerTransform(DefaultDataClasses.BYTE));
+ DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.BYTE, false, false));
+ DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.BYTE, false, false));
+ DataTypeManager.addTransform(new FixedNumberToBigDecimalTransform(DefaultDataClasses.BYTE));
+ DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.BYTE));
+
+ DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.CHAR));
+
+ DataTypeManager.addTransform(new NumberToBooleanTransform(Short.valueOf((short)0)));
+ DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.SHORT));
+ DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.SHORT, false));
+ DataTypeManager.addTransform(new NumberToLongTransform(DefaultDataClasses.SHORT, false, false));
+ DataTypeManager.addTransform(new FixedNumberToBigIntegerTransform(DefaultDataClasses.SHORT));
+ DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.SHORT, false, false));
+ DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.SHORT, false, false));
+ DataTypeManager.addTransform(new FixedNumberToBigDecimalTransform(DefaultDataClasses.SHORT));
+ DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.SHORT));
+
+ DataTypeManager.addTransform(new NumberToBooleanTransform(Integer.valueOf(0)));
+ DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.INTEGER));
+ DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.INTEGER, true));
+ DataTypeManager.addTransform(new NumberToLongTransform(DefaultDataClasses.INTEGER, false, false));
+ DataTypeManager.addTransform(new FixedNumberToBigIntegerTransform(DefaultDataClasses.INTEGER));
+ DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.INTEGER, false, true)); //lossy, but not narrowing
+ DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.INTEGER, false, false));
+ DataTypeManager.addTransform(new FixedNumberToBigDecimalTransform(DefaultDataClasses.INTEGER));
+ DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.INTEGER));
+
+ DataTypeManager.addTransform(new NumberToBooleanTransform(Long.valueOf(0)));
+ DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.LONG));
+ DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.LONG, true));
+ DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.LONG, true));
+ DataTypeManager.addTransform(new FixedNumberToBigIntegerTransform(DefaultDataClasses.LONG));
+ DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.LONG, false, true)); //lossy, but not narrowing
+ DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.LONG, false, true)); //lossy, but not narrowing
+ DataTypeManager.addTransform(new FixedNumberToBigDecimalTransform(DefaultDataClasses.LONG));
+ DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.LONG));
+
+ DataTypeManager.addTransform(new NumberToBooleanTransform(BigInteger.valueOf(0)));
+ DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.BIG_INTEGER));
+ DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.BIG_INTEGER, true));
+ DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.BIG_INTEGER, true));
+ DataTypeManager.addTransform(new NumberToLongTransform(DefaultDataClasses.BIG_INTEGER, true, false));
+ DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.BIG_INTEGER, true, false));
+ DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.BIG_INTEGER, true, false));
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.BigIntegerToBigDecimalTransform());
+ DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.BIG_INTEGER));
+
+ DataTypeManager.addTransform(new NumberToBooleanTransform(BigDecimal.valueOf(0)));
+ DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.BIG_DECIMAL));
+ DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.BIG_DECIMAL, true));
+ DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.BIG_DECIMAL, true));
+ DataTypeManager.addTransform(new NumberToLongTransform(DefaultDataClasses.BIG_DECIMAL, true, false));
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.BigDecimalToBigIntegerTransform());
+ DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.BIG_DECIMAL, true, false));
+ DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.BIG_DECIMAL, true, false));
+ DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.BIG_DECIMAL));
+
+ DataTypeManager.addTransform(new NumberToBooleanTransform(Float.valueOf(0)));
+ DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.FLOAT));
+ DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.FLOAT, true));
+ DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.FLOAT, true));
+ DataTypeManager.addTransform(new NumberToLongTransform(DefaultDataClasses.FLOAT, false, true)); //lossy, but not narrowing
+ DataTypeManager.addTransform(new FloatingNumberToBigIntegerTransform(DefaultDataClasses.FLOAT));
+ DataTypeManager.addTransform(new NumberToDoubleTransform(DefaultDataClasses.FLOAT, false, false));
+ DataTypeManager.addTransform(new FloatingNumberToBigDecimalTransform(DefaultDataClasses.FLOAT));
+ DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.FLOAT));
+
+ DataTypeManager.addTransform(new NumberToBooleanTransform(Double.valueOf(0)));
+ DataTypeManager.addTransform(new NumberToByteTransform(DefaultDataClasses.DOUBLE));
+ DataTypeManager.addTransform(new NumberToShortTransform(DefaultDataClasses.DOUBLE, true));
+ DataTypeManager.addTransform(new NumberToIntegerTransform(DefaultDataClasses.DOUBLE, true));
+ DataTypeManager.addTransform(new NumberToLongTransform( DefaultDataClasses.DOUBLE, false, true)); //lossy, but not narrowing
+ DataTypeManager.addTransform(new FloatingNumberToBigIntegerTransform(DefaultDataClasses.DOUBLE));
+ DataTypeManager.addTransform(new NumberToFloatTransform(DefaultDataClasses.DOUBLE, true, false));
+ DataTypeManager.addTransform(new FloatingNumberToBigDecimalTransform(DefaultDataClasses.DOUBLE));
+ DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.DOUBLE));
+
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.DateToTimestampTransform());
+ DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.DATE));
+
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.TimeToTimestampTransform());
+ DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.TIME));
+
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.TimestampToTimeTransform());
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.TimestampToDateTransform());
+ DataTypeManager.addTransform(new AnyToStringTransform(DefaultDataClasses.TIMESTAMP));
+
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.StringToBooleanTransform());
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.StringToByteTransform());
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.StringToShortTransform());
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.StringToIntegerTransform());
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.StringToLongTransform());
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.StringToBigIntegerTransform());
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.StringToFloatTransform());
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.StringToDoubleTransform());
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.StringToBigDecimalTransform());
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.StringToTimeTransform());
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.StringToDateTransform());
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.StringToTimestampTransform());
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.StringToCharacterTransform());
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.StringToClobTransform());
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.StringToSQLXMLTransform());
+
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.ClobToStringTransform());
+ DataTypeManager.addTransform(new ClobToSQLXMLTransform());
+
+ DataTypeManager.addTransform(new org.teiid.core.types.basic.SQLXMLToStringTransform());
+ DataTypeManager.addTransform(new SQLXMLToClobTransform());
+
+ for (Class<?> type : getAllDataTypeClasses()) {
+ if (type != DefaultDataClasses.OBJECT) {
+ DataTypeManager.addTransform(new AnyToObjectTransform(type));
+ DataTypeManager.addTransform(new ObjectToAnyTransform(type));
+ }
+ if (type != DefaultDataClasses.NULL) {
+ DataTypeManager.addTransform(new NullToAnyTransform(type));
+ }
+ }
+
+ }
+
+ static void loadSourceConversions() {
+ sourceConverters.put(Clob.class, new SourceTransform<Clob, ClobType>() {
+ //## JDBC4.0-begin ##
+ @Override
+ //## JDBC4.0-end ##
+ public ClobType transform(Clob value) {
+ return new ClobType(value);
+ }
+ });
+ sourceConverters.put(char[].class, new SourceTransform<char[], ClobType>() {
+ //## JDBC4.0-begin ##
+ @Override
+ //## JDBC4.0-end ##
+ public ClobType transform(char[] value) {
+ return new ClobType(ClobType.createClob(value));
+ }
+ });
+ sourceConverters.put(Blob.class, new SourceTransform<Blob, BlobType>() {
+ //## JDBC4.0-begin ##
+ @Override
+ //## JDBC4.0-end ##
+ public BlobType transform(Blob value) {
+ return new BlobType(value);
+ }
+ });
+ addSourceTransform(byte[].class, new SourceTransform<byte[], BlobType>() {
+ //## JDBC4.0-begin ##
+ @Override
+ //## JDBC4.0-end ##
+ public BlobType transform(byte[] value) {
+ return new BlobType(BlobType.createBlob(value));
+ }
+ });
+ addSourceTransform(SQLXML.class, new SourceTransform<SQLXML, XMLType>() {
+ //## JDBC4.0-begin ##
+ @Override
+ //## JDBC4.0-end ##
+ public XMLType transform(SQLXML value) {
+ return new XMLType(value);
+ }
+ });
+ //Note: the default transform from non-InputStreamFactory source is a fully materialized string
+ addSourceTransform(Source.class, new SourceTransform<Source, XMLType>() {
+ //## JDBC4.0-begin ##
+ @Override
+ //## JDBC4.0-end ##
+ public XMLType transform(Source value) {
+ if (value instanceof InputStreamFactory) {
+ return new XMLType(new SQLXMLImpl((InputStreamFactory)value));
+ }
+ StandardXMLTranslator sxt = new StandardXMLTranslator(value);
+ try {
+ return new XMLType(new SQLXMLImpl(sxt.getString()));
+ } catch (Exception e) {
+ throw new TeiidRuntimeException(e);
+ }
+ }
+ });
+ addSourceTransform(Date.class, new SourceTransform<Date, Timestamp>() {
+ //## JDBC4.0-begin ##
+ @Override
+ //## JDBC4.0-end ##
+ public Timestamp transform(Date value) {
+ return new Timestamp(value.getTime());
+ }
+ });
+ }
+
+ public static Object convertToRuntimeType(Object value) {
+ if (value == null) {
+ return null;
+ }
+ Class<?> c = value.getClass();
+ if (getAllDataTypeClasses().contains(c)) {
+ return value;
+ }
+ SourceTransform t = sourceConverters.get(c);
+ if (t != null) {
+ return t.transform(value);
+ }
+ for (Map.Entry<Class<?>, SourceTransform> entry : sourceConverters.entrySet()) {
+ if (entry.getKey().isAssignableFrom(c)) {
+ return entry.getValue().transform(value);
+ }
+ }
+ return value; // "object type"
+ }
+
+ @SuppressWarnings("unchecked")
+ public static <T> T transformValue(Object value, Class<T> targetClass)
+ throws TransformationException {
+ if (value == null) {
+ return (T)value;
+ }
+ return transformValue(value, value.getClass(), targetClass);
+ }
+
+ @SuppressWarnings("unchecked")
+ public static <T> T transformValue(Object value, Class sourceType,
+ Class<T> targetClass) throws TransformationException {
+ if (value == null || sourceType == targetClass) {
+ return (T) value;
+ }
+ Transform transform = DataTypeManager.getTransform(sourceType,
+ targetClass);
+ if (transform == null) {
+ Object[] params = new Object[] { sourceType, targetClass, value};
+ throw new TransformationException(CorePlugin.Util.getString("ObjectToAnyTransform.Invalid_value", params)); //$NON-NLS-1$
+ }
+ T result = (T) transform.transform(value);
+ return getCanonicalValue(result);
+ }
+
+ public static boolean isNonComparable(String type) {
+ return DataTypeManager.DefaultDataTypes.OBJECT.equals(type)
+ || DataTypeManager.DefaultDataTypes.BLOB.equals(type)
+ || DataTypeManager.DefaultDataTypes.CLOB.equals(type)
+ || DataTypeManager.DefaultDataTypes.XML.equals(type);
+ }
+
+ public static <S> void addSourceTransform(Class<S> sourceClass, SourceTransform<S, ?> transform) {
+ sourceConverters.put(sourceClass, transform);
+ }
+
+ public static void setValueCacheEnabled(boolean enabled) {
+ valueCacheEnabled = enabled;
+ }
+
+ public static boolean isValueCacheEnabled() {
+ return valueCacheEnabled;
+ }
+
+ @SuppressWarnings("unchecked")
+ public static <T> T getCanonicalValue(T value) {
+ if (USE_VALUE_CACHE && valueCacheEnabled) {
+ if (value == null) {
+ return null;
+ }
+ //TODO: this initial lookup is inefficient, since there are likely collisions
+ ValueCache valueCache = valueMaps.get(value.getClass());
+ if (valueCache != null) {
+ value = (T)valueCache.getValue(value);
+ }
+ }
+ return value;
+ }
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/types/InputStreamFactory.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/InputStreamFactory.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/InputStreamFactory.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/InputStreamFactory.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,88 @@
+/*
+ * 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 org.teiid.core.types;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.nio.charset.Charset;
+
+import javax.xml.transform.Source;
+
+public abstract class InputStreamFactory implements Source {
+
+ public interface StreamFactoryReference {
+
+ void setStreamFactory(InputStreamFactory inputStreamFactory);
+
+ }
+
+ private String encoding;
+ private String systemId;
+ private long length = -1;
+
+ public InputStreamFactory() {
+ this(Charset.defaultCharset().name());
+ }
+
+ public InputStreamFactory(String encoding) {
+ this.encoding = encoding;
+ }
+
+ /**
+ * Get a new InputStream
+ * @return
+ */
+ public abstract InputStream getInputStream() throws IOException;
+
+ public String getEncoding() {
+ return encoding;
+ }
+
+ @Override
+ public String getSystemId() {
+ return this.systemId;
+ }
+
+ @Override
+ public void setSystemId(String systemId) {
+ this.systemId = systemId;
+ }
+
+ public void free() throws IOException {
+
+ }
+
+ public long getLength() {
+ return length;
+ }
+
+ public void setLength(long length) {
+ this.length = length;
+ }
+
+ public Reader getCharacterStream() throws IOException {
+ return new InputStreamReader(this.getInputStream(), this.getEncoding());
+ }
+}
Property changes on: trunk/common-core/src/main/java/org/teiid/core/types/InputStreamFactory.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: trunk/common-core/src/main/java/org/teiid/core/types/JDBCSQLTypeInfo.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/JDBCSQLTypeInfo.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/JDBCSQLTypeInfo.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/JDBCSQLTypeInfo.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,264 @@
+/*
+ * 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 org.teiid.core.types;
+
+import java.sql.Blob;
+import java.sql.Clob;
+//## JDBC4.0-begin ##
+import java.sql.SQLXML;
+//## JDBC4.0-end ##
+
+/*## JDBC3.0-JDK1.5-begin ##
+import com.metamatrix.core.jdbc.SQLXML;
+## JDBC3.0-JDK1.5-end ##*/
+import java.sql.Types;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * <p> This is a helper class used to obtain SQL type information for java types.
+ * The SQL type information is obtained from java.sql.Types class. The integers and
+ * strings returned by methods in this class are based on constants in java.sql.Types.
+ */
+
+public final class JDBCSQLTypeInfo {
+
+
+ // Prevent instantiation
+ private JDBCSQLTypeInfo() {}
+
+ // metamatrix types
+ public static final String STRING = DataTypeManager.DefaultDataTypes.STRING;
+ public static final String BOOLEAN = DataTypeManager.DefaultDataTypes.BOOLEAN;
+ public static final String TIME = DataTypeManager.DefaultDataTypes.TIME;
+ public static final String DATE = DataTypeManager.DefaultDataTypes.DATE;
+ public static final String TIMESTAMP = DataTypeManager.DefaultDataTypes.TIMESTAMP;
+ public static final String INTEGER = DataTypeManager.DefaultDataTypes.INTEGER;
+ public static final String FLOAT = DataTypeManager.DefaultDataTypes.FLOAT;
+ public static final String DOUBLE = DataTypeManager.DefaultDataTypes.DOUBLE;
+ public static final String BIGDECIMAL = DataTypeManager.DefaultDataTypes.BIG_DECIMAL;
+ public static final String BIGINTEGER = DataTypeManager.DefaultDataTypes.BIG_INTEGER;
+ public static final String BYTE = DataTypeManager.DefaultDataTypes.BYTE;
+ public static final String SHORT = DataTypeManager.DefaultDataTypes.SHORT;
+ public static final String LONG = DataTypeManager.DefaultDataTypes.LONG;
+ public static final String CHAR = DataTypeManager.DefaultDataTypes.CHAR;
+ public static final String OBJECT = DataTypeManager.DefaultDataTypes.OBJECT;
+ public static final String CLOB = DataTypeManager.DefaultDataTypes.CLOB;
+ public static final String BLOB = DataTypeManager.DefaultDataTypes.BLOB;
+ public static final String XML = DataTypeManager.DefaultDataTypes.XML;
+ public static final String NULL = DataTypeManager.DefaultDataTypes.NULL;
+
+ //java class names
+ public static final String STRING_CLASS = DataTypeManager.DefaultDataClasses.STRING.getName();
+ public static final String BOOLEAN_CLASS = DataTypeManager.DefaultDataClasses.BOOLEAN.getName();
+ public static final String TIME_CLASS = DataTypeManager.DefaultDataClasses.TIME.getName();
+ public static final String DATE_CLASS = DataTypeManager.DefaultDataClasses.DATE.getName();
+ public static final String TIMESTAMP_CLASS = DataTypeManager.DefaultDataClasses.TIMESTAMP.getName();
+ public static final String INTEGER_CLASS = DataTypeManager.DefaultDataClasses.INTEGER.getName();
+ public static final String FLOAT_CLASS = DataTypeManager.DefaultDataClasses.FLOAT.getName();
+ public static final String DOUBLE_CLASS = DataTypeManager.DefaultDataClasses.DOUBLE.getName();
+ public static final String BIGDECIMAL_CLASS = DataTypeManager.DefaultDataClasses.BIG_DECIMAL.getName();
+ public static final String BYTE_CLASS = DataTypeManager.DefaultDataClasses.BYTE.getName();
+ public static final String SHORT_CLASS = DataTypeManager.DefaultDataClasses.SHORT.getName();
+ public static final String LONG_CLASS = DataTypeManager.DefaultDataClasses.LONG.getName();
+ public static final String CHAR_CLASS = DataTypeManager.DefaultDataClasses.CHAR.getName();
+ public static final String BIGINTEGER_CLASS = DataTypeManager.DefaultDataClasses.BIG_INTEGER.getName();
+ public static final String OBJECT_CLASS = DataTypeManager.DefaultDataClasses.OBJECT.getName();
+ public static final String CLOB_CLASS = Clob.class.getName();
+ public static final String BLOB_CLASS = Blob.class.getName();
+ //## JDBC4.0-begin ##
+ public static final String XML_CLASS = SQLXML.class.getName();
+ //## JDBC4.0-end ##
+ /*## JDBC3.0-JDK1.5-begin ##
+ public static final String XML_CLASS = DataTypeManager.DefaultDataClasses.OBJECT.getName();
+ ## JDBC3.0-JDK1.5-end ##*/
+
+ private static Map<String, Integer> NAME_TO_TYPE_MAP = new HashMap<String, Integer>();
+ private static Map<Integer, String> TYPE_TO_NAME_MAP = new HashMap<Integer, String>();
+ private static Map<String, String> NAME_TO_CLASSNAME = new HashMap<String, String>();
+ private static Map<String, String> CLASSNAME_TO_NAME = new HashMap<String, String>();
+
+ static {
+ addTypeMapping(STRING, STRING_CLASS, Types.VARCHAR, Types.LONGVARCHAR, Types.CHAR);
+ addTypeMapping(CHAR, CHAR_CLASS, Types.CHAR, false);
+ addTypeMapping(BOOLEAN, BOOLEAN_CLASS, Types.BIT);
+ addTypeMapping(TIME, TIME_CLASS, Types.TIME);
+ addTypeMapping(DATE, DATE_CLASS, Types.DATE);
+ addTypeMapping(TIMESTAMP, TIMESTAMP_CLASS, Types.TIMESTAMP);
+ addTypeMapping(INTEGER, INTEGER_CLASS, Types.INTEGER);
+ addTypeMapping(FLOAT, FLOAT_CLASS, Types.REAL);
+ addTypeMapping(DOUBLE, DOUBLE_CLASS, Types.DOUBLE, Types.FLOAT);
+ addTypeMapping(BIGDECIMAL, BIGDECIMAL_CLASS, Types.NUMERIC, Types.DECIMAL);
+ addTypeMapping(BIGINTEGER, BIGINTEGER_CLASS, Types.NUMERIC, false);
+ addTypeMapping(BYTE, BYTE_CLASS, Types.TINYINT);
+ addTypeMapping(SHORT, SHORT_CLASS, Types.SMALLINT);
+ addTypeMapping(LONG, LONG_CLASS, Types.BIGINT);
+ addTypeMapping(OBJECT, OBJECT_CLASS, Types.JAVA_OBJECT);
+ addTypeMapping(CLOB, CLOB_CLASS, Types.CLOB);
+ addTypeMapping(BLOB, BLOB_CLASS, Types.BLOB, Types.BINARY, Types.VARBINARY, Types.LONGVARBINARY);
+
+ addTypeMapping(NULL, null, Types.NULL);
+
+ //## JDBC4.0-begin ##
+ addTypeMapping(XML, XML_CLASS, Types.SQLXML);
+ TYPE_TO_NAME_MAP.put(Types.NVARCHAR, STRING);
+ TYPE_TO_NAME_MAP.put(Types.LONGNVARCHAR, STRING);
+ TYPE_TO_NAME_MAP.put(Types.NCHAR, CHAR);
+ TYPE_TO_NAME_MAP.put(Types.NCLOB, CLOB);
+ //## JDBC4.0-end ##
+
+ /*## JDBC3.0-JDK1.5-begin ##
+ NAME_TO_CLASSNAME.put(XML, OBJECT_CLASS);
+ ## JDBC3.0-JDK1.5-end ##*/
+ }
+
+ private static void addTypeMapping(String typeName, String javaClass, int sqlType, int ... secondaryTypes) {
+ addTypeMapping(typeName, javaClass, sqlType, true);
+ for (int type : secondaryTypes) {
+ TYPE_TO_NAME_MAP.put(type, typeName);
+ }
+ }
+
+ private static void addTypeMapping(String typeName, String javaClass, int sqlType, boolean preferedType) {
+ NAME_TO_TYPE_MAP.put(typeName, sqlType);
+ if (preferedType) {
+ TYPE_TO_NAME_MAP.put(sqlType, typeName);
+ }
+ if (javaClass != null) {
+ NAME_TO_CLASSNAME.put(typeName, javaClass);
+ CLASSNAME_TO_NAME.put(javaClass, typeName);
+ }
+ }
+
+ /**
+ * This method is used to obtain a short indicating JDBC SQL type for any object.
+ * The short values that give the type info are from java.sql.Types.
+ * @param Name of the metamatrix type.
+ * @return A short value representing SQL Type for the given java type.
+ */
+ public static final int getSQLType(String typeName) {
+
+ if (typeName == null) {
+ return Types.NULL;
+ }
+
+ Integer sqlType = NAME_TO_TYPE_MAP.get(typeName);
+
+ if (sqlType == null) {
+ return Types.JAVA_OBJECT;
+ }
+
+ return sqlType.intValue();
+ }
+
+ /**
+ * Get sql Type from java class type name. This should not be called with runtime types
+ * as Clob and Blob are represented by ClobType and BlobType respectively.
+ * @param typeName
+ * @return int
+ */
+ public static final int getSQLTypeFromClass(String className) {
+
+ if (className == null) {
+ return Types.NULL;
+ }
+
+ String name = CLASSNAME_TO_NAME.get(className);
+
+ if (name == null) {
+ return Types.JAVA_OBJECT;
+ }
+
+ return getSQLType(name);
+ }
+
+ /**
+ * Get the sql type from the given runtime type
+ * @param type
+ * @return
+ */
+ public static final int getSQLTypeFromRuntimeType(Class<?> type) {
+ if (type == null) {
+ return Types.NULL;
+ }
+
+ String name = DataTypeManager.getDataTypeName(type);
+
+ if (name == null) {
+ return Types.JAVA_OBJECT;
+ }
+
+ return getSQLType(name);
+ }
+
+ /**
+ * This method is used to obtain a the java class name given an int value
+ * indicating JDBC SQL type. The int values that give the type info are from
+ * java.sql.Types.
+ * @param int value giving the SQL type code.
+ * @return A String representing the java class name for the given SQL Type.
+ */
+ public static final String getJavaClassName(int jdbcSQLType) {
+ String className = NAME_TO_CLASSNAME.get(getTypeName(jdbcSQLType));
+
+ if (className == null) {
+ return OBJECT_CLASS;
+ }
+
+ return className;
+ }
+
+ public static final String getTypeName(int sqlType) {
+ String name = TYPE_TO_NAME_MAP.get(sqlType);
+
+ if (name == null) {
+ return OBJECT;
+ }
+
+ return name;
+ }
+
+ public static String[] getMMTypeNames() {
+ return new String[] {
+ STRING,
+ BOOLEAN,
+ TIME,
+ DATE,
+ TIMESTAMP,
+ INTEGER,
+ FLOAT,
+ DOUBLE,
+ BIGDECIMAL,
+ BIGINTEGER,
+ BYTE,
+ SHORT,
+ LONG,
+ CHAR,
+ OBJECT,
+ CLOB,
+ BLOB,
+ XML
+ };
+ }
+
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/types/LobSearchUtil.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/LobSearchUtil.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/LobSearchUtil.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/LobSearchUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -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 org.teiid.core.types;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.sql.SQLException;
+
+import org.teiid.core.CorePlugin;
+
+
+public class LobSearchUtil {
+
+ private static final int MOD = 37;
+
+ public interface StreamProvider {
+
+ InputStream getBinaryStream() throws SQLException;
+
+ }
+
+ static long position(StreamProvider pattern, long patternLength, StreamProvider target, long targetLength, long start, int bytesPerComparison) throws SQLException {
+ if (pattern == null) {
+ return -1;
+ }
+
+ patternLength *= bytesPerComparison;
+ targetLength *= bytesPerComparison;
+
+ if (start < 1) {
+ Object[] params = new Object[] {new Long(start)};
+ throw new SQLException(CorePlugin.Util.getString("MMClob_MMBlob.2", params)); //$NON-NLS-1$
+ }
+
+ start = (start - 1)*bytesPerComparison;
+
+ if (start + patternLength > targetLength) {
+ return -1;
+ }
+ /*
+ * Use karp-rabin matching to reduce the cost of back tracing for failed matches
+ *
+ * TODO: optimize for patterns that are small enough to fit in a reasonable buffer
+ */
+ try {
+ InputStream patternStream = pattern.getBinaryStream();
+ InputStream targetStream = target.getBinaryStream();
+ InputStream laggingTargetStream = target.getBinaryStream();
+ try {
+ int patternHash = computeStreamHash(patternStream, patternLength);
+ int lastMod = 1;
+ for (int i = 0; i < patternLength; i++) {
+ lastMod *= MOD;
+ }
+ targetStream.skip(start);
+ laggingTargetStream.skip(start);
+
+ long position = start + 1;
+
+ int streamHash = computeStreamHash(targetStream, patternLength);
+
+ do {
+ if ((position -1)%bytesPerComparison == 0 && patternHash == streamHash && validateMatch(pattern, target, position)) {
+ return (position - 1)/bytesPerComparison + 1;
+ }
+
+ streamHash = MOD * streamHash + targetStream.read() - lastMod * laggingTargetStream.read();
+ position++;
+
+ } while (position + patternLength - 1 <= targetLength);
+
+ return -1;
+ } finally {
+ if (patternStream != null) {
+ patternStream.close();
+ }
+ if (targetStream != null) {
+ targetStream.close();
+ }
+ if (laggingTargetStream != null) {
+ laggingTargetStream.close();
+ }
+ }
+ } catch (IOException e) {
+ throw new SQLException(e);
+ }
+ }
+
+ /**
+ * validate that the pattern matches the given position.
+ *
+ * TODO: optimize to reuse the same targetstream/buffer for small patterns
+ * @throws SQLException
+ */
+ static private boolean validateMatch(StreamProvider pattern, StreamProvider target, long position) throws IOException, SQLException {
+ InputStream targetStream = target.getBinaryStream();
+ InputStream patternStream = pattern.getBinaryStream();
+ try {
+ targetStream.skip(position -1);
+ int value = 0;
+ while ((value = patternStream.read()) != -1) {
+ if (value != targetStream.read()) {
+ return false;
+ }
+ }
+ } finally {
+ targetStream.close();
+ patternStream.close();
+ }
+ return true;
+ }
+
+ static private int computeStreamHash(InputStream is, long length) throws IOException {
+ int result = 0;
+ for (int i = 0; i < length; i++) {
+ result = result * MOD + is.read();
+ }
+ return result;
+ }
+
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/types/NullType.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/NullType.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/NullType.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/NullType.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,29 @@
+/*
+ * 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 org.teiid.core.types;
+
+public final class NullType {
+
+ // can't construct
+ NullType() {}
+}
\ No newline at end of file
Copied: trunk/common-core/src/main/java/org/teiid/core/types/SQLXMLImpl.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/SQLXMLImpl.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/SQLXMLImpl.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/SQLXMLImpl.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,115 @@
+/*
+ * 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 org.teiid.core.types;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Writer;
+import java.nio.charset.Charset;
+import java.sql.SQLException;
+import java.sql.SQLXML;
+
+import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+import javax.xml.transform.stream.StreamSource;
+
+import org.teiid.core.util.ObjectConverterUtil;
+import org.teiid.core.util.SqlUtil;
+
+
+
+/**
+ * Default SQLXML impl
+ */
+public class SQLXMLImpl extends BaseLob implements SQLXML {
+
+ public SQLXMLImpl() {
+
+ }
+
+ /**
+ * Constructs a SQLXML from bytes that are already encoded in {@link Streamable#ENCODING}
+ * @param bytes
+ */
+ public SQLXMLImpl(final byte[] bytes) {
+ super(new InputStreamFactory(Streamable.ENCODING) {
+ @Override
+ public InputStream getInputStream() throws IOException {
+ return new ByteArrayInputStream(bytes);
+ }
+ });
+ }
+
+ public SQLXMLImpl(final String str) {
+ this(str.getBytes(Charset.forName(Streamable.ENCODING)));
+ }
+
+ public SQLXMLImpl(InputStreamFactory factory) {
+ super(factory);
+ }
+
+ @SuppressWarnings("unchecked")
+ public <T extends Source> T getSource(Class<T> sourceClass) throws SQLException {
+ if (sourceClass == null || sourceClass == StreamSource.class) {
+ return (T)new StreamSource(getBinaryStream());
+ }
+ throw new SQLException("Unsupported source type " + sourceClass); //$NON-NLS-1$
+ }
+
+ public String getString() throws SQLException {
+ try {
+ return new String(ObjectConverterUtil.convertToByteArray(getBinaryStream()), this.getStreamFactory().getEncoding());
+ } catch (IOException e) {
+ SQLException ex = new SQLException(e.getMessage());
+ ex.initCause(e);
+ throw ex;
+ }
+ }
+
+ public OutputStream setBinaryStream() throws SQLException {
+ throw SqlUtil.createFeatureNotSupportedException();
+ }
+
+ public Writer setCharacterStream() throws SQLException {
+ throw SqlUtil.createFeatureNotSupportedException();
+ }
+
+ public void setString(String value) throws SQLException {
+ throw SqlUtil.createFeatureNotSupportedException();
+ }
+
+ public String toString() {
+ try {
+ return getString();
+ } catch (SQLException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public <T extends Result> T setResult(Class<T> resultClass)
+ throws SQLException {
+ throw SqlUtil.createFeatureNotSupportedException();
+ }
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/types/Sequencable.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/Sequencable.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/Sequencable.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/Sequencable.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,31 @@
+/*
+ * 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 org.teiid.core.types;
+
+import java.sql.SQLException;
+
+public interface Sequencable {
+
+ public CharSequence getCharSequence() throws SQLException;
+
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/types/SourceTransform.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/SourceTransform.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/SourceTransform.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/SourceTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,37 @@
+/*
+ * 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 org.teiid.core.types;
+
+public interface SourceTransform<S, T> {
+
+ /**
+ * This method transforms a value of the source type into a value
+ * of the target type.
+ * @param value Incoming value of source type
+ * @return Outgoing value of target type
+ * @throws TransformationException if value is an incorrect input type or
+ * the transformation fails
+ */
+ public T transform(S value);
+
+}
Property changes on: trunk/common-core/src/main/java/org/teiid/core/types/SourceTransform.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: trunk/common-core/src/main/java/org/teiid/core/types/StandardXMLTranslator.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/StandardXMLTranslator.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/StandardXMLTranslator.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/StandardXMLTranslator.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -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 org.teiid.core.types;
+
+import java.io.IOException;
+import java.io.Writer;
+
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+
+public class StandardXMLTranslator extends XMLTranslator {
+
+ private Source source;
+
+ public StandardXMLTranslator(Source source) {
+ this.source = source;
+ }
+
+ @Override
+ public void translate(Writer writer) throws TransformerException, IOException {
+ Transformer t = TransformerFactory.newInstance().newTransformer();
+ t.transform(source, new StreamResult(writer));
+ }
+
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/types/Streamable.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/Streamable.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/Streamable.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/Streamable.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,103 @@
+/*
+ * 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 org.teiid.core.types;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import org.teiid.core.CorePlugin;
+
+
+
+/**
+ * A large value object which can be streamable in chunks of data each time
+ *
+ * <p>A reference stream id is tuple source id for a Streamble object where the
+ * object is in buffer manager, but the contents will never be written to disk;
+ * this is the ID that client needs to reference to get the chunk of data.
+ */
+public abstract class Streamable<T> implements Externalizable {
+
+ private static final long serialVersionUID = -8252488562134729374L;
+
+ public static final String ENCODING = "UTF-8"; //$NON-NLS-1$
+ public static final String FORCE_STREAMING = "FORCE_STREAMING"; //$NON-NLS-1$
+ public static final int STREAMING_BATCH_SIZE_IN_BYTES = 102400; // 100K
+
+ private String referenceStreamId;
+ protected transient T reference;
+ protected long length = -1;
+
+ public Streamable() {
+
+ }
+
+ public Streamable(T reference) {
+ if (reference == null) {
+ throw new IllegalArgumentException(CorePlugin.Util.getString("Streamable.isNUll")); //$NON-NLS-1$
+ }
+
+ this.reference = reference;
+ }
+
+ public long getLength() {
+ return length;
+ }
+
+ public T getReference() {
+ return reference;
+ }
+
+ public void setReference(T reference) {
+ this.reference = reference;
+ }
+
+ public String getReferenceStreamId() {
+ return this.referenceStreamId;
+ }
+
+ public void setReferenceStreamId(String id) {
+ this.referenceStreamId = id;
+ }
+
+ @Override
+ public String toString() {
+ return reference.toString();
+ }
+
+ @Override
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ length = in.readLong();
+ referenceStreamId = (String)in.readObject();
+ }
+
+ @Override
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeLong(length);
+ out.writeObject(referenceStreamId);
+ }
+
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/types/Transform.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/Transform.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/Transform.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/Transform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,116 @@
+/*
+ * 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 org.teiid.core.types;
+
+import org.teiid.core.CorePlugin;
+
+/**
+ * This interface represents the transformation from one data type to
+ * another. For instance, from java.lang.String to java.lang.Integer
+ * where java.lang.String is the the source type, "java.lang.String"
+ * is the source name, etc.
+ */
+public abstract class Transform {
+
+ /**
+ * This method transforms a value of the source type into a value
+ * of the target type.
+ * @param value Incoming value of source type
+ * @return Outgoing value of target type
+ * @throws TransformationException if value is an incorrect input type or
+ * the transformation fails
+ */
+ public Object transform(Object value) throws TransformationException {
+ if (value == null) {
+ return null;
+ }
+ return transformDirect(value);
+ }
+
+
+ protected abstract Object transformDirect(Object value) throws TransformationException;
+
+ /**
+ * Type of the incoming value.
+ * @return Source type
+ */
+ public abstract Class<?> getSourceType();
+
+ /**
+ * Name of the source type.
+ * @return Name of source type
+ */
+ public String getSourceTypeName() {
+ return DataTypeManager.getDataTypeName(getSourceType());
+ }
+
+ /**
+ * Type of the outgoing value.
+ * @return Target type
+ */
+ public abstract Class<?> getTargetType();
+
+ /**
+ * Name of the target type.
+ * @return Name of target type
+ */
+ public String getTargetTypeName() {
+ return DataTypeManager.getDataTypeName(getTargetType());
+ }
+
+ /**
+ * Get nice display name for GUIs.
+ * @return Display name
+ */
+ public String getDisplayName() {
+ return getSourceTypeName() + " to " + getTargetTypeName(); //$NON-NLS-1$
+ }
+
+ /**
+ * Get description.
+ * @return Description of transform
+ */
+ public String getDescription() {
+ return getDisplayName();
+ }
+
+ public boolean isExplicit() {
+ return false;
+ }
+
+ /**
+ * Override Object.toString() to do getDisplayName() version.
+ * @return String representation of object
+ */
+ public String toString() {
+ return getDisplayName();
+ }
+
+ protected void checkValueRange(Object value, Number min, Number max)
+ throws TransformationException {
+ if (((Comparable)value).compareTo(DataTypeManager.transformValue(min, getSourceType())) < 0 || ((Comparable)value).compareTo(DataTypeManager.transformValue(max, getSourceType())) > 0) {
+ throw new TransformationException(CorePlugin.Util.getString("transform.value_out_of_range", value, getSourceType().getSimpleName(), getTargetType().getSimpleName())); //$NON-NLS-1$
+ }
+ }
+
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/types/TransformationException.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/TransformationException.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/TransformationException.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/TransformationException.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,80 @@
+/*
+ * 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 org.teiid.core.types;
+
+import org.teiid.core.TeiidProcessingException;
+
+/**
+ * The exception is thrown when an error occurs during data transformation,
+ * typically a formatting error or an invalid input type.
+ */
+public class TransformationException extends TeiidProcessingException {
+
+ /**
+ * No-Arg Constructor
+ */
+ public TransformationException( ) {
+ super( );
+ }
+ /**
+ * Construct an instance with the message specified.
+ *
+ * @param message A message describing the exception
+ */
+ public TransformationException( String message ) {
+ super( message );
+ }
+
+ /**
+ * Construct an instance with the message and error code specified.
+ *
+ * @param message A message describing the exception
+ * @param code The error code
+ */
+ public TransformationException( String code, String message ) {
+ super( code, message );
+ }
+
+ /**
+ * Construct an instance from a message and an exception to chain to this one.
+ *
+ * @param code A code denoting the exception
+ * @param e An exception to nest within this one
+ */
+ public TransformationException( Exception e, String message ) {
+ super( e, message );
+ }
+
+ /**
+ * Construct an instance from a message and a code and an exception to
+ * chain to this one.
+ *
+ * @param e An exception to nest within this one
+ * @param message A message describing the exception
+ * @param code A code denoting the exception
+ */
+ public TransformationException( Exception e, String code, String message ) {
+ super( e, code, message );
+ }
+}
+
Copied: trunk/common-core/src/main/java/org/teiid/core/types/XMLTranslator.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/XMLTranslator.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/XMLTranslator.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/XMLTranslator.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,45 @@
+/*
+ * 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 org.teiid.core.types;
+
+import java.io.IOException;
+import java.io.StringWriter;
+import java.io.Writer;
+
+import javax.xml.transform.TransformerException;
+
+/**
+ * This an interface defined to convert the various kinds of the XML sources
+ * defined into a character stream.
+ */
+public abstract class XMLTranslator {
+
+ public abstract void translate(Writer writer) throws TransformerException, IOException;
+
+ public String getString() throws IOException, TransformerException {
+ StringWriter writer = new StringWriter();
+ this.translate(writer);
+ return writer.toString();
+ }
+
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/types/XMLType.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/XMLType.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/types/XMLType.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/types/XMLType.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,109 @@
+/*
+ * 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 org.teiid.core.types;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Reader;
+import java.io.Writer;
+import java.sql.SQLException;
+//## JDBC4.0-begin ##
+import java.sql.SQLXML;
+//## JDBC4.0-end ##
+
+/*## JDBC3.0-JDK1.5-begin ##
+import com.metamatrix.core.jdbc.SQLXML;
+## JDBC3.0-JDK1.5-end ##*/
+
+import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+
+/**
+ * This class represents the SQLXML object along with the Streamable interface. This is
+ * class used everywhere in the MetaMatrix framework, but clients are restricted to use
+ * only SQLXML interface on top of this.
+ */
+public final class XMLType extends Streamable<SQLXML> implements SQLXML {
+
+ public enum Type {
+ UNKNOWN, DOCUMENT, FRAGMENT, SIBLINGS, COMMENT, PI, TEXT
+ }
+
+ private static final long serialVersionUID = -7922647237095135723L;
+
+ private transient Type type = Type.UNKNOWN;
+
+ public XMLType(){
+
+ }
+
+ public XMLType(SQLXML xml) {
+ super(xml);
+ }
+
+ public InputStream getBinaryStream() throws SQLException {
+ return this.reference.getBinaryStream();
+ }
+
+ public Reader getCharacterStream() throws SQLException {
+ return this.reference.getCharacterStream();
+ }
+
+ public <T extends Source> T getSource(Class<T> sourceClass) throws SQLException {
+ return this.reference.getSource(sourceClass);
+ }
+
+ public String getString() throws SQLException {
+ return this.reference.getString();
+ }
+
+ public OutputStream setBinaryStream() throws SQLException {
+ return this.reference.setBinaryStream();
+ }
+
+ public Writer setCharacterStream() throws SQLException {
+ return this.reference.setCharacterStream();
+ }
+
+ public void setString(String value) throws SQLException {
+ this.reference.setString(value);
+ }
+
+ public void free() throws SQLException {
+ this.reference.free();
+ }
+
+ public <T extends Result> T setResult(Class<T> resultClass)
+ throws SQLException {
+ return this.reference.setResult(resultClass);
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public void setType(Type type) {
+ this.type = type;
+ }
+
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/types/basic (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/types/basic)
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/AnyToObjectTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/AnyToObjectTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/AnyToObjectTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,11 +20,11 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
public class AnyToObjectTransform extends Transform {
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/AnyToStringTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/AnyToStringTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/AnyToStringTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,11 +20,11 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
/**
* This class can be subclassed to do a simple anything-->String by
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/BigDecimalToBigIntegerTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/BigDecimalToBigIntegerTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/BigDecimalToBigIntegerTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,14 +20,15 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.math.BigDecimal;
import java.math.BigInteger;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+
public class BigDecimalToBigIntegerTransform extends Transform {
/**
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/BigIntegerToBigDecimalTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/BigIntegerToBigDecimalTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/BigIntegerToBigDecimalTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,14 +20,15 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.math.BigDecimal;
import java.math.BigInteger;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+
public class BigIntegerToBigDecimalTransform extends Transform {
/**
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/BooleanToNumberTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/BooleanToNumberTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/BooleanToNumberTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,11 +20,11 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
public class BooleanToNumberTransform extends Transform {
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/ClobToSQLXMLTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/ClobToSQLXMLTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/ClobToSQLXMLTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.io.IOException;
import java.io.InputStream;
@@ -28,19 +28,20 @@
import java.nio.charset.Charset;
import java.sql.SQLException;
-import com.metamatrix.common.types.ClobImpl;
-import com.metamatrix.common.types.ClobType;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.InputStreamFactory;
-import com.metamatrix.common.types.SQLXMLImpl;
-import com.metamatrix.common.types.Streamable;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.common.types.XMLType;
-import com.metamatrix.common.types.XMLType.Type;
-import com.metamatrix.common.util.ReaderInputStream;
-import com.metamatrix.core.CorePlugin;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.types.ClobImpl;
+import org.teiid.core.types.ClobType;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.InputStreamFactory;
+import org.teiid.core.types.SQLXMLImpl;
+import org.teiid.core.types.Streamable;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+import org.teiid.core.types.XMLType;
+import org.teiid.core.types.XMLType.Type;
+import org.teiid.core.util.ReaderInputStream;
+
public class ClobToSQLXMLTransform extends Transform {
@Override
@@ -99,7 +100,7 @@
}
/**
- * @see com.metamatrix.common.types.Transform#isExplicit()
+ * @see org.teiid.core.types.Transform#isExplicit()
*/
public boolean isExplicit() {
return true;
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/ClobToStringTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/ClobToStringTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/ClobToStringTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,18 +20,19 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.io.BufferedReader;
import java.io.IOException;
import java.sql.SQLException;
-import com.metamatrix.common.types.ClobType;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.common.types.DataTypeManager.DefaultDataClasses;
-import com.metamatrix.core.CorePlugin;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.types.ClobType;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.TransformationException;
+import org.teiid.core.types.DataTypeManager.DefaultDataClasses;
+
public class ClobToStringTransform extends AnyToStringTransform {
public ClobToStringTransform() {
@@ -69,7 +70,7 @@
}
/**
- * @see com.metamatrix.common.types.Transform#isExplicit()
+ * @see org.teiid.core.types.Transform#isExplicit()
*/
public boolean isExplicit() {
return true;
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/DateToTimestampTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/DateToTimestampTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/DateToTimestampTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,13 +20,14 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.sql.Timestamp;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+
public class DateToTimestampTransform extends Transform {
/**
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/FixedNumberToBigDecimalTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/FixedNumberToBigDecimalTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/FixedNumberToBigDecimalTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,14 +20,15 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.math.BigDecimal;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+
public class FixedNumberToBigDecimalTransform extends Transform {
private Class<?> sourceType;
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/FixedNumberToBigIntegerTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/FixedNumberToBigIntegerTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/FixedNumberToBigIntegerTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,14 +20,15 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.math.BigInteger;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+
public class FixedNumberToBigIntegerTransform extends Transform {
private Class<?> sourceType;
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/FloatingNumberToBigDecimalTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/FloatingNumberToBigDecimalTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/FloatingNumberToBigDecimalTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,14 +20,15 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.math.BigDecimal;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+
public class FloatingNumberToBigDecimalTransform extends Transform {
private Class<?> sourceType;
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/FloatingNumberToBigIntegerTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/FloatingNumberToBigIntegerTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/FloatingNumberToBigIntegerTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,14 +20,15 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.math.BigDecimal;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+
public class FloatingNumberToBigIntegerTransform extends Transform {
private Class<?> sourceType;
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/NullToAnyTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NullToAnyTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/NullToAnyTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,12 +20,12 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.NullType;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.core.util.Assertion;
+import org.teiid.core.types.NullType;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+import org.teiid.core.util.Assertion;
/**
* This class can do a simple null-->anything.
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToBooleanTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToBooleanTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToBooleanTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,11 +20,11 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
public class NumberToBooleanTransform extends Transform {
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToByteTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToByteTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToByteTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,11 +20,11 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
public class NumberToByteTransform extends Transform {
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToDoubleTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToDoubleTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToDoubleTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,11 +20,11 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
public class NumberToDoubleTransform extends Transform {
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToFloatTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToFloatTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToFloatTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,11 +20,11 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
public class NumberToFloatTransform extends Transform {
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToIntegerTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToIntegerTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToIntegerTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,11 +20,11 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
public class NumberToIntegerTransform extends Transform {
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToLongTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToLongTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToLongTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,11 +20,11 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
public class NumberToLongTransform extends Transform {
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToShortTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/NumberToShortTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/NumberToShortTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,11 +20,11 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
public class NumberToShortTransform extends Transform {
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/ObjectToAnyTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/ObjectToAnyTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/ObjectToAnyTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,12 +20,12 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.core.CorePlugin;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
public class ObjectToAnyTransform extends Transform {
@@ -68,7 +68,7 @@
}
/**
- * @see com.metamatrix.common.types.Transform#isExplicit()
+ * @see org.teiid.core.types.Transform#isExplicit()
*/
public boolean isExplicit() {
return true;
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/SQLXMLToClobTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/SQLXMLToClobTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/SQLXMLToClobTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,25 +20,26 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;
import java.sql.SQLException;
-import com.metamatrix.common.types.ClobImpl;
-import com.metamatrix.common.types.ClobType;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.InputStreamFactory;
-import com.metamatrix.common.types.SQLXMLImpl;
-import com.metamatrix.common.types.Streamable;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.common.types.XMLType;
-import com.metamatrix.common.util.ReaderInputStream;
-import com.metamatrix.core.CorePlugin;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.types.ClobImpl;
+import org.teiid.core.types.ClobType;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.InputStreamFactory;
+import org.teiid.core.types.SQLXMLImpl;
+import org.teiid.core.types.Streamable;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+import org.teiid.core.types.XMLType;
+import org.teiid.core.util.ReaderInputStream;
+
public class SQLXMLToClobTransform extends Transform {
@Override
@@ -83,7 +84,7 @@
}
/**
- * @see com.metamatrix.common.types.Transform#isExplicit()
+ * @see org.teiid.core.types.Transform#isExplicit()
*/
public boolean isExplicit() {
return true;
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/SQLXMLToStringTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/SQLXMLToStringTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/SQLXMLToStringTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,18 +20,19 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.common.types.XMLType;
-import com.metamatrix.common.types.DataTypeManager.DefaultDataClasses;
-import com.metamatrix.core.CorePlugin;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.TransformationException;
+import org.teiid.core.types.XMLType;
+import org.teiid.core.types.DataTypeManager.DefaultDataClasses;
+
public class SQLXMLToStringTransform extends AnyToStringTransform {
public SQLXMLToStringTransform() {
@@ -69,7 +70,7 @@
}
/**
- * @see com.metamatrix.common.types.Transform#isExplicit()
+ * @see org.teiid.core.types.Transform#isExplicit()
*/
public boolean isExplicit() {
return true;
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToBigDecimalTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToBigDecimalTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToBigDecimalTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,15 +20,16 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.math.BigDecimal;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.ErrorMessageKeys;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.ErrorMessageKeys;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+
public class StringToBigDecimalTransform extends Transform {
/**
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToBigIntegerTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToBigIntegerTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToBigIntegerTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,15 +20,16 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.math.BigInteger;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.ErrorMessageKeys;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.ErrorMessageKeys;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+
public class StringToBigIntegerTransform extends Transform {
/**
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToBooleanTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToBooleanTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToBooleanTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,16 +20,17 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.common.types.DataTypeManager.DefaultDataClasses;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+import org.teiid.core.types.DataTypeManager.DefaultDataClasses;
+
public class StringToBooleanTransform extends Transform {
private static final Set<String> FALSE = new HashSet<String>(Arrays.asList("0", "false")); //$NON-NLS-1$ //$NON-NLS-2$
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToByteTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToByteTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToByteTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,12 +20,12 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.ErrorMessageKeys;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.ErrorMessageKeys;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
public class StringToByteTransform extends Transform {
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToCharacterTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToCharacterTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToCharacterTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,10 +20,10 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
public class StringToCharacterTransform extends Transform {
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToClobTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToClobTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToClobTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,11 +20,11 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.ClobType;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.ClobType;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
public class StringToClobTransform extends Transform {
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToDateTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToDateTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToDateTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,15 +20,16 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.sql.Date;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.ErrorMessageKeys;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.ErrorMessageKeys;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+
public class StringToDateTransform extends Transform {
/**
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToDoubleTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToDoubleTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToDoubleTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,12 +20,12 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.ErrorMessageKeys;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.ErrorMessageKeys;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
public class StringToDoubleTransform extends Transform {
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToFloatTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToFloatTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToFloatTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,12 +20,12 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.ErrorMessageKeys;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.ErrorMessageKeys;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
public class StringToFloatTransform extends Transform {
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToIntegerTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToIntegerTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToIntegerTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,12 +20,12 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.ErrorMessageKeys;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.ErrorMessageKeys;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
public class StringToIntegerTransform extends Transform {
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToLongTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToLongTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToLongTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,12 +20,12 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.ErrorMessageKeys;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.ErrorMessageKeys;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
public class StringToLongTransform extends Transform {
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToSQLXMLTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToSQLXMLTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToSQLXMLTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.io.IOException;
import java.io.Reader;
@@ -30,14 +30,15 @@
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.events.XMLEvent;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.SQLXMLImpl;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.common.types.XMLType;
-import com.metamatrix.common.types.XMLType.Type;
-import com.metamatrix.core.CorePlugin;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.SQLXMLImpl;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+import org.teiid.core.types.XMLType;
+import org.teiid.core.types.XMLType.Type;
+
public class StringToSQLXMLTransform extends Transform {
/**
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToShortTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToShortTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToShortTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,12 +20,12 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.ErrorMessageKeys;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.ErrorMessageKeys;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
public class StringToShortTransform extends Transform {
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToTimeTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToTimeTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToTimeTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,15 +20,16 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.sql.Time;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.ErrorMessageKeys;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.ErrorMessageKeys;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+
public class StringToTimeTransform extends Transform {
/**
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToTimestampTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/StringToTimestampTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/StringToTimestampTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,15 +20,16 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.sql.Timestamp;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.ErrorMessageKeys;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.ErrorMessageKeys;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+
public class StringToTimestampTransform extends Transform {
/**
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/TimeToTimestampTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/TimeToTimestampTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/TimeToTimestampTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,13 +20,14 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.sql.Timestamp;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+
public class TimeToTimestampTransform extends Transform {
/**
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/TimestampToDateTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/TimestampToDateTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/TimestampToDateTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,15 +20,16 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.sql.Timestamp;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.common.util.TimestampWithTimezone;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+import org.teiid.core.util.TimestampWithTimezone;
+
public class TimestampToDateTransform extends Transform {
/**
@@ -60,7 +61,7 @@
}
/**
- * @see com.metamatrix.common.types.Transform#isExplicit()
+ * @see org.teiid.core.types.Transform#isExplicit()
*/
public boolean isExplicit() {
return true;
Modified: trunk/common-core/src/main/java/org/teiid/core/types/basic/TimestampToTimeTransform.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/basic/TimestampToTimeTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/types/basic/TimestampToTimeTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,14 +20,15 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import java.sql.Timestamp;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.common.util.TimestampWithTimezone;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+import org.teiid.core.util.TimestampWithTimezone;
+
public class TimestampToTimeTransform extends Transform {
/**
@@ -59,7 +60,7 @@
}
/**
- * @see com.metamatrix.common.types.Transform#isExplicit()
+ * @see org.teiid.core.types.Transform#isExplicit()
*/
public boolean isExplicit() {
return true;
Copied: trunk/common-core/src/main/java/org/teiid/core/util (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/core/util)
Modified: trunk/common-core/src/main/java/org/teiid/core/util/AccessibleByteArrayOutputStream.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/AccessibleByteArrayOutputStream.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/util/AccessibleByteArrayOutputStream.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.io.ByteArrayOutputStream;
Copied: trunk/common-core/src/main/java/org/teiid/core/util/ApplicationInfo.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/util/ApplicationInfo.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/util/ApplicationInfo.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/util/ApplicationInfo.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,210 @@
+/*
+ * 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 org.teiid.core.util;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Serializable;
+import java.net.URL;
+import java.text.DateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.StringTokenizer;
+
+import org.teiid.core.TeiidRuntimeException;
+
+
+public final class ApplicationInfo implements Serializable {
+
+ public static final String APPLICATION_PRODUCT_INFORMATION = "Product Information"; //$NON-NLS-1$
+
+ public static final String APPLICATION_BUILD_NUMBER_PROPERTY = "Build"; //$NON-NLS-1$
+
+ private static final ApplicationInfo INSTANCE = new ApplicationInfo();
+
+ private static final String LINE_SEPARATOR = "\n"; //$NON-NLS-1$
+
+ private Properties props = new Properties();
+
+ private ApplicationInfo() {
+ InputStream is = this.getClass().getResourceAsStream("application.properties"); //$NON-NLS-1$
+ try {
+ try {
+ props.load(is);
+ } finally {
+ is.close();
+ }
+ } catch (IOException e) {
+ throw new TeiidRuntimeException(e);
+ }
+ }
+
+ public String getReleaseNumber() {
+ return props.getProperty("build.releaseNumber"); //$NON-NLS-1$
+ }
+
+ public String getMajorReleaseNumber() {
+ return getReleaseNumber().substring(0, getReleaseNumber().lastIndexOf('.'));
+ }
+
+ public int getMajorReleaseVersion() {
+ String version = getReleaseNumber().substring(0, getReleaseNumber().indexOf('.'));
+ return Integer.parseInt(version);
+ }
+
+ public int getMinorReleaseVersion() {
+ int majorIndex = getReleaseNumber().indexOf('.');
+ String version = getReleaseNumber().substring(majorIndex+1, getReleaseNumber().indexOf('.', majorIndex+1));
+ return Integer.parseInt(version);
+ }
+
+ public String getBuildNumber() {
+ return props.getProperty("build.number"); //$NON-NLS-1$
+ }
+
+ public String getUrl() {
+ return props.getProperty("url"); //$NON-NLS-1$
+ }
+
+ public String getCopyright() {
+ return props.getProperty("copyright"); //$NON-NLS-1$
+ }
+
+ public String getBuildDate() {
+ return props.getProperty("build.date"); //$NON-NLS-1$
+ }
+
+ /**
+ * Get the application information instance for this VM.
+ * @return the singleton instance for this VM; never null
+ */
+ public static ApplicationInfo getInstance() {
+ return INSTANCE;
+ }
+
+ private static String getClassPath() {
+ return System.getProperty( "java.class.path" ); //$NON-NLS-1$
+ }
+
+ /**
+ * The getClasspathInfo method is used to capture the current classpath
+ * information. The initial intent is to write this information
+ * to a file at VM startup time for debugging purposes and ensuring
+ * patches are applied.
+ * @param outputstream
+ * @since 4.2
+ */
+ public String getClasspathInfo() {
+ String classPath = getClassPath();
+
+ StringBuffer sb = new StringBuffer();
+ sb.append("\nDate: " + DateFormat.getDateInstance().format(new Date()));//$NON-NLS-1$
+ sb.append( LINE_SEPARATOR );
+
+ Map pathResults = new HashMap();
+ List reversetList = new ArrayList();
+ String separator = System.getProperty( "path.separator" ); //$NON-NLS-1$
+
+ StringTokenizer path = new StringTokenizer( classPath, separator );
+
+ while(path.hasMoreTokens()){
+ String pathElement = path.nextToken();
+ File pathFile = new File( pathElement );
+ if (pathFile.exists()) {
+// if (resourceExistInClassPath(pathElement)) {
+ pathResults.put(pathElement, Boolean.TRUE);
+
+ } else {
+ pathResults.put(pathElement, Boolean.FALSE);
+ }
+ reversetList.add(pathElement);
+ }
+ sb.append("Classpath Information" ); //$NON-NLS-1$
+ sb.append( LINE_SEPARATOR );
+ sb.append("CLASSPATH: "); //$NON-NLS-1$
+ sb.append(classPath);
+ sb.append( LINE_SEPARATOR );
+ sb.append( LINE_SEPARATOR );
+
+ Iterator iter = reversetList.iterator();
+ sb.append("---- Classpath Entries ----"); //$NON-NLS-1$
+ sb.append( LINE_SEPARATOR );
+ while ( iter.hasNext() ) {
+ String epath = (String) iter.next();
+ Boolean doesExist = (Boolean) pathResults.get(epath);
+ sb.append(epath);
+ if (!doesExist.booleanValue()) {
+ sb.append(" (MISSING)");//$NON-NLS-1$
+ }
+ sb.append( LINE_SEPARATOR );
+
+ }
+
+
+ sb.append( LINE_SEPARATOR );
+ sb.append("Note the (MISSING) at the end to designate that the classpath entry is missing");//$NON-NLS-1$
+
+
+ try {
+ // find all the patch readme files and print those out.
+ Enumeration readmes = ClassLoader.getSystemResources("patch_readme.txt"); //$NON-NLS-1$
+ sb.append( LINE_SEPARATOR );
+ sb.append( LINE_SEPARATOR );
+
+ sb.append("---- Patch Readme Entries----"); //$NON-NLS-1$
+ sb.append( LINE_SEPARATOR );
+ int cnt = 0;
+ if (readmes != null) {
+
+ while(readmes.hasMoreElements()) {
+ ++cnt;
+ URL url = (URL) readmes.nextElement();
+ sb.append("Patch " + url.getFile() + ":"); //$NON-NLS-1$ //$NON-NLS-2$
+ sb.append( LINE_SEPARATOR );
+ InputStream is = url.openStream();
+ byte[] data = ObjectConverterUtil.convertToByteArray(is);
+ sb.append(new String(data));
+ sb.append("-------------------------------------");//$NON-NLS-1$
+ sb.append( LINE_SEPARATOR );
+ is.close();
+
+ }
+ }
+ if (cnt == 0) {
+ sb.append("no Patch Readme Entries found"); //$NON-NLS-1$
+ }
+ } catch (IOException ioe) {
+
+ }
+
+ return sb.toString();
+ }
+
+}
Property changes on: trunk/common-core/src/main/java/org/teiid/core/util/ApplicationInfo.java
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: trunk/common-core/src/main/java/org/teiid/core/util/ArgCheck.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/ArgCheck.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/util/ArgCheck.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,13 +20,14 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.util.Collection;
import java.util.Map;
-import com.metamatrix.core.CorePlugin;
+import org.teiid.core.CorePlugin;
+
/**
* This class contains a set of static utility methods for checking method arguments.
* It contains many of the common checks that are done, such as checking that an
Modified: trunk/common-core/src/main/java/org/teiid/core/util/Assertion.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/Assertion.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/util/Assertion.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,13 +20,14 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.util.Collection;
import java.util.Map;
-import com.metamatrix.core.CorePlugin;
+import org.teiid.core.CorePlugin;
+
/**
* <p>
* This class contains a set of static utility methods for assertion checking.
Modified: trunk/common-core/src/main/java/org/teiid/core/util/Base64.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/Base64.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/util/Base64.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
/**
* <p>Encodes and decodes to and from Base64 notation.</p>
Modified: trunk/common-core/src/main/java/org/teiid/core/util/EquivalenceUtil.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/EquivalenceUtil.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/util/EquivalenceUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.util.Arrays;
Added: trunk/common-core/src/main/java/org/teiid/core/util/ExceptionUtil.java
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/util/ExceptionUtil.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/util/ExceptionUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,245 @@
+/*
+ * 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 org.teiid.core.util;
+
+import java.io.PrintStream;
+import java.sql.SQLException;
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+import javax.naming.ConfigurationException;
+
+import org.teiid.core.TeiidRuntimeException;
+
+
+/**
+ * Utility class that provides some useful things for users of the
+ * com.metamatrix.api.exception package. Also provides package-level
+ * functionality that is shared among classes in this package.
+ */
+public class ExceptionUtil {
+
+ /**
+ * Prevent instantiation
+ */
+ private ExceptionUtil() {
+ super();
+ }
+
+ /**
+ * Convenience method that takes any Throwable and returns an appropriate
+ * Iterator over any nested exceptions in that Throwable. Currently,
+ * only instances of MetaMatrixException and MetaMatrixRuntimeException
+ * are capable of nesting Throwables - calling this method in that case
+ * is equivalent to calling
+ * {@link TeiidException#getChildren MetaMatrixException.getChildren()}
+ * or
+ * {@link TeiidRuntimeException#getChildren MetaMatrixRuntimeException.getChildren()}.
+ * Otherwise, a non-null "empty" Iterator is returned, one that simply has
+ * no Objects in it.
+ * @param e any Throwable
+ * @return an appropriate Iterator over any nested children Throwables;
+ */
+ public static Iterator getChildrenIterator(Throwable e){
+ return new NestedExceptionIterator(e);
+ }
+
+ public static void printNestedStackTrace(Throwable exception, PrintStream output) {
+ if (exception != null){
+ exception.printStackTrace(output);
+
+ Iterator children = getChildrenIterator(exception);
+ while ( children.hasNext() ){
+ exception = (Throwable)children.next();
+ output.print(TeiidRuntimeException.CAUSED_BY_STRING);
+ exception.printStackTrace(output);
+ }
+ }
+ }
+
+ public static String getLinkedMessagesVerbose(Throwable exception) {
+ return getLinkedMessagesVerbose(exception, 0);
+ }
+
+ public static String getLinkedMessagesVerbose( Throwable exception, int level ) {
+ if (exception != null){
+ StringBuffer buf = new StringBuffer();
+ String lastMessage = appendMessage("", buf, null, exception); //$NON-NLS-1$
+ Iterator children = getChildrenIterator(exception);
+ while ( children.hasNext() ){
+ level++;
+ exception = (Throwable)children.next();
+ lastMessage = appendMessage("->", buf, lastMessage, exception); //$NON-NLS-1$
+ }
+ return buf.toString();
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+ public static String getLinkedMessages(Throwable exception) {
+ return getLinkedMessages(exception, 0);
+ }
+
+ /**
+ * Get the chain of messages, starting with the specified exception. The
+ * level number in the chain is prepended. <P>
+ *
+ * This method calls the <CODE>getMessage</CODE> method for the exception
+ * passed in, and appends on the result returned from a recursive call to
+ * this method for the child of the passed in exception. The passed in
+ * exception is updated on each recursive call to be the child of the
+ * original exception, and the level is incremented on each call.
+ *
+ * @param exception The exception to print the chained message list of
+ * @param level (zero-based) The depth of the exception parameter in
+ * the chain of exceptions.
+ * @param messageFormatter the formatter of the message; may not be null
+ * @return A string of chained messages, each prepended by its level
+ * in the chain, and each followed by a newline (blank string if
+ * the exception passed in is null)
+ *
+ * @see Throwable#getMessage()
+ */
+ public static String getLinkedMessages( Throwable exception, int level ) {
+ if (exception != null){
+ StringBuffer buf = new StringBuffer();
+ buf.append(exception.getMessage());
+ Iterator children = getChildrenIterator(exception);
+ while ( children.hasNext() ){
+ level++;
+ exception = (Throwable)children.next();
+ buf.append(exception.getMessage());
+ }
+ return buf.toString();
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+ private static final String appendMessage(String prefix, StringBuffer buffer, String lastMessage, Throwable exception) {
+ String message = exception.getMessage();
+ buffer.append(prefix);
+ buffer.append(getClassName(exception));
+ if (message != null && !message.equals(lastMessage)) {
+ buffer.append('-');
+ buffer.append(message);
+ }
+ return message;
+ }
+
+ private static final String getClassName(Throwable exception) {
+ String className = exception.getClass().getName();
+ int index = className.lastIndexOf('.');
+ if (index >= 0 && index < className.length()-1) {
+ return className.substring(index+1);
+ }
+ return className;
+ }
+
+ /**
+ * <p>An Iterator over any nested children <code>Throwable</code>s
+ * of either a MetaMatrixException or a MetaMatrixRuntimeException.
+ * The first Object returned (if any) by <code>next()</code> will be the same
+ * <code>Throwable</code> as returned by the {@link #getChild} method of
+ * the root</p>
+ *
+ * <p>In general, each Object A returned by the <code>next()</code>
+ * method is guaranteed to be an instance of
+ * <code>Throwable</code>; the <i>previous</i> Object B will have been a
+ * <code>MetaMatrixException</code> or <code>MetaMatrixRuntimeException</code>
+ * whose {@link #getChild} method will return the same Object A.</p>
+ */
+ public static class NestedExceptionIterator implements Iterator{
+
+ Throwable exception;
+ Throwable child;
+
+ public NestedExceptionIterator(Throwable e){
+ exception = e;
+ }
+
+ /**
+ * Returns <tt>true</tt> if the iteration has more elements. (In other
+ * words, returns <tt>true</tt> if <tt>next</tt> would return an element
+ * rather than throwing an exception.)
+ *
+ * @return <tt>true</tt> if the iterator has more elements.
+ */
+ public boolean hasNext(){
+ check();
+ return (child != null);
+ }
+
+ /**
+ * Returns the next element in the iteration.
+ *
+ * @return the next element in the iteration.
+ * @exception NoSuchElementException iteration has no more elements.
+ */
+ public Object next(){
+ if (!hasNext()) {
+ throw new NoSuchElementException();
+ }
+ exception = child;
+ child = null;
+ return exception;
+ }
+
+ private void check(){
+ if (child == null){
+ if (exception instanceof ConfigurationException) {
+ ConfigurationException e = (ConfigurationException) exception;
+ child = e.getRootCause();
+ } else if (exception instanceof SQLException) {
+ SQLException e = (SQLException) exception;
+ child = e.getNextException();
+ }
+ if (child == null) {
+ child = exception.getCause();
+ }
+ if (child == exception) {
+ child = null;
+ }
+ }
+ }
+
+ /**
+ *
+ * Removes from the underlying collection the last element returned by the
+ * iterator (optional operation). This method can be called only once per
+ * call to <tt>next</tt>. The behavior of an iterator is unspecified if
+ * the underlying collection is modified while the iteration is in
+ * progress in any way other than by calling this method.
+ *
+ * @exception UnsupportedOperationException if the <tt>remove</tt>
+ * operation is not supported by this Iterator.
+
+ * @exception IllegalStateException if the <tt>next</tt> method has not
+ * yet been called, or the <tt>remove</tt> method has already
+ * been called after the last call to the <tt>next</tt>
+ * method.
+ */
+ public void remove(){
+ throw new UnsupportedOperationException();
+ }
+ }
+}
Modified: trunk/common-core/src/main/java/org/teiid/core/util/ExternalizeUtil.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/ExternalizeUtil.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/util/ExternalizeUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.io.IOException;
import java.io.ObjectInput;
Modified: trunk/common-core/src/main/java/org/teiid/core/util/FileUtil.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/FileUtil.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/util/FileUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
@@ -34,8 +34,9 @@
import java.io.Reader;
import java.io.StringWriter;
-import com.metamatrix.core.MetaMatrixRuntimeException;
+import org.teiid.core.TeiidRuntimeException;
+
/**
* Utility class for dealing with files. Hides exception handling and file resource management.
*/
@@ -54,7 +55,7 @@
try {
return new FileWriter(this.file, append);
} catch (IOException e) {
- throw new MetaMatrixRuntimeException(e);
+ throw new TeiidRuntimeException(e);
}
}
@@ -70,7 +71,7 @@
}
}
} catch (IOException e) {
- throw new MetaMatrixRuntimeException(e);
+ throw new TeiidRuntimeException(e);
}
}
@@ -97,9 +98,9 @@
}
}
} catch (FileNotFoundException e) {
- throw new MetaMatrixRuntimeException(e);
+ throw new TeiidRuntimeException(e);
} catch (IOException e) {
- throw new MetaMatrixRuntimeException(e);
+ throw new TeiidRuntimeException(e);
}
}
@@ -107,7 +108,7 @@
try {
return readSafe();
} catch (FileNotFoundException e) {
- throw new MetaMatrixRuntimeException(e);
+ throw new TeiidRuntimeException(e);
}
}
@@ -140,7 +141,7 @@
writer.write(StringUtil.LINE_SEPARATOR);
}
} catch (IOException e) {
- throw new MetaMatrixRuntimeException(e);
+ throw new TeiidRuntimeException(e);
} finally {
if (bufferedReader != null) {
try {
@@ -156,9 +157,9 @@
try {
return readBytesSafe();
} catch (FileNotFoundException e) {
- throw new MetaMatrixRuntimeException(e);
+ throw new TeiidRuntimeException(e);
} catch (IOException e) {
- throw new MetaMatrixRuntimeException(e);
+ throw new TeiidRuntimeException(e);
}
}
Modified: trunk/common-core/src/main/java/org/teiid/core/util/FileUtils.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/FileUtils.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/util/FileUtils.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
@@ -36,11 +36,12 @@
import java.util.ArrayList;
import java.util.List;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.MetaMatrixCoreException;
-import com.metamatrix.core.MetaMatrixRuntimeException;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.TeiidException;
+import org.teiid.core.TeiidRuntimeException;
+
public final class FileUtils {
public interface Constants {
@@ -169,7 +170,7 @@
* @param fromFileName
* @param toFileName
* @param overwrite whether to overwrite the destination file if it exists.
- * @throws MetaMatrixCoreException
+ * @throws TeiidException
* @since 4.3
*/
public static void copy(String fromFileName, String toFileName, boolean overwrite) throws IOException {
@@ -669,7 +670,7 @@
os.write(contents);
return temp;
} catch (Exception e) {
- throw new MetaMatrixRuntimeException(e);
+ throw new TeiidRuntimeException(e);
} finally {
if (os != null) {
try {
@@ -752,10 +753,10 @@
/**
* Test whether it's possible to read and write files in the specified directory.
* @param dirPath Name of the directory to test
- * @throws MetaMatrixException
+ * @throws TeiidException
* @since 4.3
*/
- public static void testDirectoryPermissions(String dirPath) throws MetaMatrixCoreException {
+ public static void testDirectoryPermissions(String dirPath) throws TeiidException {
//try to create a file
File tmpFile = new File(dirPath + File.separatorChar + TEMP_FILE);
@@ -766,20 +767,20 @@
}
if (!success) {
final String msg = CorePlugin.Util.getString("FileUtils.Unable_to_create_file_in", dirPath); //$NON-NLS-1$
- throw new MetaMatrixCoreException(msg);
+ throw new TeiidException(msg);
}
//test if file can be written to
if (!tmpFile.canWrite()) {
final String msg = CorePlugin.Util.getString("FileUtils.Unable_to_write_file_in", dirPath); //$NON-NLS-1$
- throw new MetaMatrixCoreException(msg);
+ throw new TeiidException(msg);
}
//test if file can be read
if (!tmpFile.canRead()) {
final String msg = CorePlugin.Util.getString("FileUtils.Unable_to_read_file_in", dirPath); //$NON-NLS-1$
- throw new MetaMatrixCoreException(msg);
+ throw new TeiidException(msg);
}
//test if file can be renamed
@@ -791,7 +792,7 @@
}
if (!success) {
final String msg = CorePlugin.Util.getString("FileUtils.Unable_to_rename_file_in", dirPath); //$NON-NLS-1$
- throw new MetaMatrixCoreException(msg);
+ throw new TeiidException(msg);
}
//test if file can be deleted
@@ -802,7 +803,7 @@
}
if (!success) {
final String msg = CorePlugin.Util.getString("FileUtils.Unable_to_delete_file_in", dirPath); //$NON-NLS-1$
- throw new MetaMatrixCoreException(msg);
+ throw new TeiidException(msg);
}
}
@@ -811,7 +812,7 @@
* @param oldFilePath
* @param newFilePath
* @param overwrite If true, overwrite the old file if it exists. If false, throw an exception if the old file exists.
- * @throws MetaMatrixCoreException
+ * @throws TeiidException
* @since 4.3
*/
public static void rename(String oldFilePath, String newFilePath, boolean overwrite) throws IOException {
Modified: trunk/common-core/src/main/java/org/teiid/core/util/HashCodeUtil.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/HashCodeUtil.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/util/HashCodeUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.util.Iterator;
import java.util.List;
Modified: trunk/common-core/src/main/java/org/teiid/core/util/LRUCache.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/LRUCache.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/util/LRUCache.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.util.LinkedHashMap;
import java.util.Map.Entry;
Deleted: trunk/common-core/src/main/java/org/teiid/core/util/MetaMatrixExceptionUtil.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/MetaMatrixExceptionUtil.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/util/MetaMatrixExceptionUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,244 +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.core.util;
-
-import java.io.PrintStream;
-import java.sql.SQLException;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-import javax.naming.ConfigurationException;
-
-import com.metamatrix.core.MetaMatrixRuntimeException;
-
-/**
- * Utility class that provides some useful things for users of the
- * com.metamatrix.api.exception package. Also provides package-level
- * functionality that is shared among classes in this package.
- */
-public class MetaMatrixExceptionUtil {
-
- /**
- * Prevent instantiation
- */
- private MetaMatrixExceptionUtil() {
- super();
- }
-
- /**
- * Convenience method that takes any Throwable and returns an appropriate
- * Iterator over any nested exceptions in that Throwable. Currently,
- * only instances of MetaMatrixException and MetaMatrixRuntimeException
- * are capable of nesting Throwables - calling this method in that case
- * is equivalent to calling
- * {@link MetaMatrixException#getChildren MetaMatrixException.getChildren()}
- * or
- * {@link MetaMatrixRuntimeException#getChildren MetaMatrixRuntimeException.getChildren()}.
- * Otherwise, a non-null "empty" Iterator is returned, one that simply has
- * no Objects in it.
- * @param e any Throwable
- * @return an appropriate Iterator over any nested children Throwables;
- */
- public static Iterator getChildrenIterator(Throwable e){
- return new NestedExceptionIterator(e);
- }
-
- public static void printNestedStackTrace(Throwable exception, PrintStream output) {
- if (exception != null){
- exception.printStackTrace(output);
-
- Iterator children = getChildrenIterator(exception);
- while ( children.hasNext() ){
- exception = (Throwable)children.next();
- output.print(MetaMatrixRuntimeException.CAUSED_BY_STRING);
- exception.printStackTrace(output);
- }
- }
- }
-
- public static String getLinkedMessagesVerbose(Throwable exception) {
- return getLinkedMessagesVerbose(exception, 0);
- }
-
- public static String getLinkedMessagesVerbose( Throwable exception, int level ) {
- if (exception != null){
- StringBuffer buf = new StringBuffer();
- String lastMessage = appendMessage("", buf, null, exception); //$NON-NLS-1$
- Iterator children = getChildrenIterator(exception);
- while ( children.hasNext() ){
- level++;
- exception = (Throwable)children.next();
- lastMessage = appendMessage("->", buf, lastMessage, exception); //$NON-NLS-1$
- }
- return buf.toString();
- }
- return ""; //$NON-NLS-1$
- }
-
- public static String getLinkedMessages(Throwable exception) {
- return getLinkedMessages(exception, 0);
- }
-
- /**
- * Get the chain of messages, starting with the specified exception. The
- * level number in the chain is prepended. <P>
- *
- * This method calls the <CODE>getMessage</CODE> method for the exception
- * passed in, and appends on the result returned from a recursive call to
- * this method for the child of the passed in exception. The passed in
- * exception is updated on each recursive call to be the child of the
- * original exception, and the level is incremented on each call.
- *
- * @param exception The exception to print the chained message list of
- * @param level (zero-based) The depth of the exception parameter in
- * the chain of exceptions.
- * @param messageFormatter the formatter of the message; may not be null
- * @return A string of chained messages, each prepended by its level
- * in the chain, and each followed by a newline (blank string if
- * the exception passed in is null)
- *
- * @see Throwable#getMessage()
- */
- public static String getLinkedMessages( Throwable exception, int level ) {
- if (exception != null){
- StringBuffer buf = new StringBuffer();
- buf.append(exception.getMessage());
- Iterator children = getChildrenIterator(exception);
- while ( children.hasNext() ){
- level++;
- exception = (Throwable)children.next();
- buf.append(exception.getMessage());
- }
- return buf.toString();
- }
- return ""; //$NON-NLS-1$
- }
-
- private static final String appendMessage(String prefix, StringBuffer buffer, String lastMessage, Throwable exception) {
- String message = exception.getMessage();
- buffer.append(prefix);
- buffer.append(getClassName(exception));
- if (message != null && !message.equals(lastMessage)) {
- buffer.append('-');
- buffer.append(message);
- }
- return message;
- }
-
- private static final String getClassName(Throwable exception) {
- String className = exception.getClass().getName();
- int index = className.lastIndexOf('.');
- if (index >= 0 && index < className.length()-1) {
- return className.substring(index+1);
- }
- return className;
- }
-
- /**
- * <p>An Iterator over any nested children <code>Throwable</code>s
- * of either a MetaMatrixException or a MetaMatrixRuntimeException.
- * The first Object returned (if any) by <code>next()</code> will be the same
- * <code>Throwable</code> as returned by the {@link #getChild} method of
- * the root</p>
- *
- * <p>In general, each Object A returned by the <code>next()</code>
- * method is guaranteed to be an instance of
- * <code>Throwable</code>; the <i>previous</i> Object B will have been a
- * <code>MetaMatrixException</code> or <code>MetaMatrixRuntimeException</code>
- * whose {@link #getChild} method will return the same Object A.</p>
- */
- public static class NestedExceptionIterator implements Iterator{
-
- Throwable exception;
- Throwable child;
-
- public NestedExceptionIterator(Throwable e){
- exception = e;
- }
-
- /**
- * Returns <tt>true</tt> if the iteration has more elements. (In other
- * words, returns <tt>true</tt> if <tt>next</tt> would return an element
- * rather than throwing an exception.)
- *
- * @return <tt>true</tt> if the iterator has more elements.
- */
- public boolean hasNext(){
- check();
- return (child != null);
- }
-
- /**
- * Returns the next element in the iteration.
- *
- * @return the next element in the iteration.
- * @exception NoSuchElementException iteration has no more elements.
- */
- public Object next(){
- if (!hasNext()) {
- throw new NoSuchElementException();
- }
- exception = child;
- child = null;
- return exception;
- }
-
- private void check(){
- if (child == null){
- if (exception instanceof ConfigurationException) {
- ConfigurationException e = (ConfigurationException) exception;
- child = e.getRootCause();
- } else if (exception instanceof SQLException) {
- SQLException e = (SQLException) exception;
- child = e.getNextException();
- }
- if (child == null) {
- child = exception.getCause();
- }
- if (child == exception) {
- child = null;
- }
- }
- }
-
- /**
- *
- * Removes from the underlying collection the last element returned by the
- * iterator (optional operation). This method can be called only once per
- * call to <tt>next</tt>. The behavior of an iterator is unspecified if
- * the underlying collection is modified while the iteration is in
- * progress in any way other than by calling this method.
- *
- * @exception UnsupportedOperationException if the <tt>remove</tt>
- * operation is not supported by this Iterator.
-
- * @exception IllegalStateException if the <tt>next</tt> method has not
- * yet been called, or the <tt>remove</tt> method has already
- * been called after the last call to the <tt>next</tt>
- * method.
- */
- public void remove(){
- throw new UnsupportedOperationException();
- }
- }
-}
Modified: trunk/common-core/src/main/java/org/teiid/core/util/MixinProxy.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/MixinProxy.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/util/MixinProxy.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
Modified: trunk/common-core/src/main/java/org/teiid/core/util/NamedThreadFactory.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/NamedThreadFactory.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/util/NamedThreadFactory.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicInteger;
Modified: trunk/common-core/src/main/java/org/teiid/core/util/ObjectConverterUtil.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/ObjectConverterUtil.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/util/ObjectConverterUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
@@ -38,14 +38,15 @@
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.MetaMatrixCoreException;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.TeiidException;
+
public class ObjectConverterUtil {
private static final int DEFAULT_READING_SIZE = 8192;
- protected static byte[] convertBlobToByteArray(final java.sql.Blob data) throws MetaMatrixCoreException {
+ protected static byte[] convertBlobToByteArray(final java.sql.Blob data) throws TeiidException {
try {
// Open a stream to read the BLOB data
InputStream l_blobStream = data.getBinaryStream();
@@ -69,14 +70,14 @@
} catch (IOException ioe) {
final Object[] params = new Object[]{data.getClass().getName()};
- throw new MetaMatrixCoreException(ioe,CorePlugin.Util.getString("ObjectConverterUtil.Error_translating_results_from_data_type_to_a_byte[]._1",params)); //$NON-NLS-1$
+ throw new TeiidException(ioe,CorePlugin.Util.getString("ObjectConverterUtil.Error_translating_results_from_data_type_to_a_byte[]._1",params)); //$NON-NLS-1$
} catch (SQLException sqe) {
final Object[] params = new Object[]{data.getClass().getName()};
- throw new MetaMatrixCoreException(sqe,CorePlugin.Util.getString("ObjectConverterUtil.Error_translating_results_from_data_type_to_a_byte[]._2",params)); //$NON-NLS-1$
+ throw new TeiidException(sqe,CorePlugin.Util.getString("ObjectConverterUtil.Error_translating_results_from_data_type_to_a_byte[]._2",params)); //$NON-NLS-1$
}
}
- public static byte[] convertToByteArray(final Object data) throws MetaMatrixCoreException, IOException {
+ public static byte[] convertToByteArray(final Object data) throws TeiidException, IOException {
if (data instanceof InputStream) {
return convertToByteArray((InputStream) data);
} else if (data instanceof byte[]) {
@@ -87,7 +88,7 @@
return convertFileToByteArray((File)data);
}
final Object[] params = new Object[]{data.getClass().getName()};
- throw new MetaMatrixCoreException(CorePlugin.Util.getString("ObjectConverterUtil.Object_type_not_supported_for_object_conversion._3",params)); //$NON-NLS-1$
+ throw new TeiidException(CorePlugin.Util.getString("ObjectConverterUtil.Object_type_not_supported_for_object_conversion._3",params)); //$NON-NLS-1$
}
Modified: trunk/common-core/src/main/java/org/teiid/core/util/ObjectInputStreamWithClassloader.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/ObjectInputStreamWithClassloader.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/util/ObjectInputStreamWithClassloader.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.io.IOException;
import java.io.InputStream;
Copied: trunk/common-core/src/main/java/org/teiid/core/util/PasswordMaskUtil.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/util/PasswordMaskUtil.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/util/PasswordMaskUtil.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/util/PasswordMaskUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,122 @@
+/*
+ * 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 org.teiid.core.util;
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Properties;
+
+/**
+ * <p>This is a simple utility class to help keep password values from being
+ * printed out, primarily from java.util.Properties object, into
+ * MetaMatrix log files. This is <i>not</i> a robust security solution
+ * for protecting passwords, and is only good insofar as we get all
+ * other code to use this when necessary. When passwords are properly
+ * encrypted in the database, this class will be no longer necessary.</p>
+ *
+ * <p>This class can be used in one of two ways. First, a Properties object
+ * can be wrapped in an instance of this class - the properties object,
+ * wrapped in this instance, can then be safely sent to LogManager to be
+ * logged, or can otherwise be printed out. This instance will basically
+ * duplicate the toString() method of a normal Properties object, but will
+ * obfuscate any property values whose names end in any of the well-known
+ * {@link #PASSWORD_PROP_SUFFIXES password property suffixes}.</p>
+ *
+ * <p>The second way is to just use this class's static
+ * {@link #doesNameEndWithPasswordSuffix doesNameEndWithPasswordSuffix}
+ * utility method by hand, passing in a String property name to
+ * see if it ends with any of the well-known
+ * {@link #PASSWORD_PROP_SUFFIXES password property suffixes}.</p>
+ */
+public final class PasswordMaskUtil {
+
+ /**
+ * The known String suffixes that MetaMatrix property names end in.
+ * Each of these is checked.
+ */
+ public static final String[] PASSWORD_PROP_SUFFIXES = new String[]{"password", "Password"}; //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The "mask" String that is printed out of the
+ * {@link #toString} method, instead of the actual password value.
+ */
+ public static final String MASK_STRING = "*****"; //$NON-NLS-1$
+
+ private Properties properties;
+
+ /**
+ * A Properties object can be wrapped by this class before, say,
+ * being sent to LogManager. If this {@link #toString} method
+ * is called, password properties will be printed out as
+ * a {@link #MASK_STRING masked string}.
+ * @param propertiesWithPassword Properties object that has
+ * password property values inside it
+ */
+ public PasswordMaskUtil(Properties propertiesWithPassword){
+ this.properties = propertiesWithPassword;
+ }
+
+ /**
+ * This toString() method is basically the same as the
+ * java.util.Properties class's toString() method, except that
+ * if any of the properties in this class end with any of the
+ * well-known {@link #PASSWORD_PROP_SUFFIXES password suffixes},
+ * then the value will
+ * be printed out as {@link #MASK_STRING}
+ */
+ public String toString(){
+ int max = properties.size() - 1;
+ StringBuffer buf = new StringBuffer();
+ Iterator it = properties.entrySet().iterator();
+
+ buf.append("{"); //$NON-NLS-1$
+ String key = null;
+ for (int i = 0; i <= max; i++) {
+ Map.Entry e = (Map.Entry) (it.next());
+ key = (String)e.getKey();
+ if (doesNameEndWithPasswordSuffix(key)){
+ buf.append(key + "=" + MASK_STRING); //$NON-NLS-1$
+ } else {
+ buf.append(key + "=" + e.getValue()); //$NON-NLS-1$
+ }
+ if (i < max)
+ buf.append(", "); //$NON-NLS-1$
+ }
+ buf.append("}"); //$NON-NLS-1$
+ return buf.toString();
+ }
+
+ /**
+ * Indicates if the String propName ends in any of the well-known
+ * {@link #PASSWORD_PROP_SUFFIXES password property suffixes}.</p>
+ */
+ public static boolean doesNameEndWithPasswordSuffix(String propName){
+ for (int i=0; i<PASSWORD_PROP_SUFFIXES.length; i++){
+ if (propName.endsWith(PASSWORD_PROP_SUFFIXES[i])){
+ return true;
+ }
+ }
+ return false;
+ }
+
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/util/PropertiesUtils.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/util/PropertiesUtils.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/util/PropertiesUtils.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/util/PropertiesUtils.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,1017 @@
+/*
+ * 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 org.teiid.core.util;
+
+import java.io.BufferedReader;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintStream;
+import java.lang.reflect.Method;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import org.teiid.core.CorePlugin;
+import org.teiid.core.TeiidRuntimeException;
+
+
+
+/**
+ * Static utility methods for common tasks having to do with
+ * java.util.Properties.
+ */
+public final class PropertiesUtils {
+
+ public static class InvalidPropertyException extends TeiidRuntimeException {
+
+ public InvalidPropertyException(String propertyName, String value, Class<?> expectedType, Throwable cause) {
+ super(cause, CorePlugin.Util.getString("InvalidPropertyException.message", propertyName, value, expectedType.getSimpleName())); //$NON-NLS-1$
+ }
+
+ }
+
+ /**
+ * Returns a list of property names matching the given pattern. A '*' may be
+ * given to match the pattern exactly up to the '*', then anything after.
+ * Note: Should also implement matching with '?' which means match any single
+ * char.
+ * @param pattern The property name to match which may include a '*'.
+ * @param props The properties to search.
+ * @return The List of property names matching given pattern - may be empty
+ * but never null.
+ */
+ public static List filter( String pattern, Properties props ) {
+ boolean addAll = false;
+ String searchStr = null;
+ List propNames = new ArrayList();
+ int globIndex = pattern.indexOf('*');
+ if ( globIndex == -1 ) {
+ searchStr = pattern;
+ } else if ( globIndex == 0 ) {
+ addAll = true;
+ } else {
+ searchStr = pattern.substring(0, globIndex);
+ }
+
+ Enumeration propNameEnum = props.propertyNames();
+ while ( propNameEnum.hasMoreElements() ) {
+ String name = (String) propNameEnum.nextElement();
+ if ( name.startsWith(searchStr) || addAll ) {
+ propNames.add(name);
+ }
+ }
+
+ return propNames;
+ }
+
+
+ /**
+ * Obtains from this source the list of all properties that match the pattern specified by the filter.
+ * <p>
+ * The filter is a string that may contain the '*' character as a wildcard one or more times
+ * in the string. For example, the following filter:
+ * <p>
+ * <pre> *metamatrix.*</pre>
+ * <p>
+ * finds all properties that contain somewhere in the property name the string "metamatrix.".
+ * @param filterPattern the string filter pattern that will be used to narrow the set of properties returned.
+ * @param props The properties to search.
+ * @return the enumeration of all of the property names of the primary source;
+ * the enumeration may be empty if there is an error connecting to the property sources.
+ */
+ public static Properties getProperties(String filterPattern, Properties props) {
+ Properties results = new Properties();
+
+ boolean addAll = false;
+ String searchStr = null;
+ int globIndex = filterPattern.indexOf('*');
+ if ( globIndex == -1 ) {
+ searchStr = filterPattern;
+ } else if ( globIndex == 0 ) {
+ addAll = true;
+ } else {
+ searchStr = filterPattern.substring(0, globIndex);
+ }
+
+ Enumeration propNameEnum = props.propertyNames();
+ while ( propNameEnum.hasMoreElements() ) {
+ String name = (String) propNameEnum.nextElement();
+ if ( name.startsWith(searchStr)) {
+ Object value = props.get(name);
+ if (value != null) {
+ results.put(name.substring(searchStr.length()), value);
+ }
+ }
+ else if (addAll) {
+ results.put(name, props.get(name));
+ }
+ }
+
+ return results;
+ }
+
+
+ /**
+ * Performs a correct deep clone of the properties object by capturing
+ * all properties in the default(s) and placing them directly into the
+ * new Properties object. If the input is an instance of
+ * <code>UnmodifiableProperties</code>, this method returns an
+ * <code>UnmodifiableProperties</code> instance around a new (flattened)
+ * copy of the underlying Properties object.
+ */
+ public static Properties clone( Properties props ) {
+ return clone(props, null, false);
+ }
+
+ /**
+ * Performs a correct deep clone of the properties object by capturing
+ * all properties in the default(s) and placing them directly into the
+ * new Properties object. If the input is an instance of
+ * <code>UnmodifiableProperties</code>, this method returns an
+ * <code>UnmodifiableProperties</code> instance around a new (flattened)
+ * copy of the underlying Properties object.
+ */
+ public static Properties clone( Properties props, Properties defaults, boolean deepClone ) {
+ Properties result = null;
+ if ( defaults != null ) {
+ if ( deepClone ) {
+ defaults = clone(defaults);
+ }
+ result = new Properties(defaults);
+ } else {
+ result = new Properties();
+ }
+
+ putAll(result, props);
+
+ return result;
+ }
+
+ /**
+ * This method implements a 'compareTo' logic for two Properties objects,
+ * equivalent to calling <code>p1.compareTo(p2)</code> if the
+ * {@link java.util.Properties Properties} class implemented
+ * {@link java.lang.Comparable Comparable} (which it does not).
+ * @param p1 the first Properties instance to compare; may be null
+ * @param p2 the second Properties instance to compare; may be null
+ * @return a negative integer, zero, or a positive integer as <code>p1</code>
+ * is less than, equal to, or greater than <code>p2</code>, respectively.
+ */
+ public static int compare( Properties p1, Properties p2 ) {
+ if ( p1 != null ) {
+ if ( p2 == null ) {
+ return 1;
+ }
+ } else {
+ if ( p2 != null ) {
+ return -1;
+ }
+ return 0;
+ }
+
+
+ // Compare the number of property values ...
+ int diff = p1.size() - p2.size();
+ if ( diff != 0 ) {
+ return diff;
+ }
+
+ // Iterate through the properties and compare values ...
+ Map.Entry entry = null;
+ Object p1Value = null;
+ Object p2Value = null;
+ Iterator iter = p1.entrySet().iterator();
+ while ( iter.hasNext() ) {
+ entry = (Map.Entry) iter.next();
+ p1Value = entry.getValue();
+ p2Value = p2.get(entry.getKey());
+ if ( p1Value != null ) {
+ if ( p2Value == null ) {
+ return 1;
+ }
+ if ( p1Value instanceof Comparable ) {
+ diff = ((Comparable)p1Value).compareTo(p2Value);
+ } else {
+ diff = p1Value.toString().compareTo(p2Value.toString());
+ }
+ if ( diff != 0 ) {
+ return diff;
+ }
+ } else {
+ if ( p2Value != null ) {
+ return -1;
+ }
+ }
+ }
+ return 0;
+ }
+
+ /**
+ * <p>This method is intended to replace the use of the <code>putAll</code>
+ * method of <code>Properties</code> inherited from <code>java.util.Hashtable</code>.
+ * The problem with that method is that, since it is inherited from
+ * <code>Hashtable</code>, <i>default</i> properties are lost.
+ * </p>
+ * <p>For example, the following code
+ * <pre><code>
+ * Properties a;
+ * Properties b;
+ * //initialize ...
+ * a.putAll(b);
+ * </code></pre>
+ * will fail <i>if</i> <code>b</code> had been constructed with a default
+ * <code>Properties</code> object. Those defaults would be lost and
+ * not added to <code>a</code>.</p>
+ *
+ * <p>The above code could be correctly performed with this method,
+ * like this:
+ * <pre><code>
+ * Properties a;
+ * Properties b;
+ * //initialize ...
+ * PropertiesUtils.putAll(a,b);
+ * </code></pre>
+ * In the above example, <code>a</code> is modified - properties are added to
+ * it (note that if <code>a</code> has defaults they will remain unaffected.)
+ * The properties from <code>b</code>, <i>including defaults</i>, will be
+ * added to <code>a</code> using its <code>setProperty</code> method -
+ * these new properties will overwrite any pre-existing ones of the same
+ * name.
+ * </p>
+ *
+ * @param addToThis This Properties object is modified; the properties
+ * of the other parameter are added to this. The added property values
+ * will replace any current property values of the same names.
+ * @param withThese The properties (including defaults) of this
+ * object are added to the "addToThis" parameter.
+ */
+ public static void putAll(Properties addToThis,
+ Properties withThese) {
+ if ( withThese != null && addToThis != null ) {
+ Enumeration enumeration = withThese.propertyNames();
+ while ( enumeration.hasMoreElements() ) {
+ String propName = (String) enumeration.nextElement();
+ Object propValue = withThese.get(propName);
+ if ( propValue == null ) {
+ //defaults can only be retrieved as strings
+ propValue = withThese.getProperty(propName);
+ }
+ if ( propValue != null ) {
+ addToThis.put(propName, propValue);
+ }
+ }
+ }
+ }
+
+ public static void setOverrideProperies(Properties base, Properties override) {
+ Enumeration overrideEnum = override.propertyNames();
+ while (overrideEnum.hasMoreElements()) {
+ String key = (String)overrideEnum.nextElement();
+ String value = base.getProperty(key);
+ String overRideValue = override.getProperty(key);
+ if (value != null && !value.equals(overRideValue)) {
+ base.setProperty(key, overRideValue);
+ }
+ }
+ }
+
+ public static int getIntProperty(Properties props, String propName, int defaultValue) throws InvalidPropertyException {
+ String stringVal = props.getProperty(propName);
+ if(stringVal == null) {
+ return defaultValue;
+ }
+ stringVal = stringVal.trim();
+ if (stringVal.length() == 0) {
+ return defaultValue;
+ }
+ try {
+ return Integer.parseInt(stringVal);
+ } catch(NumberFormatException e) {
+ throw new InvalidPropertyException(propName, stringVal, Integer.class, e);
+ }
+ }
+
+ public static long getLongProperty(Properties props, String propName, long defaultValue) {
+ String stringVal = props.getProperty(propName);
+ if(stringVal == null) {
+ return defaultValue;
+ }
+ stringVal = stringVal.trim();
+ if (stringVal.length() == 0) {
+ return defaultValue;
+ }
+ try {
+ return Long.parseLong(stringVal);
+ } catch(NumberFormatException e) {
+ throw new InvalidPropertyException(propName, stringVal, Long.class, e);
+ }
+ }
+
+ public static float getFloatProperty(Properties props, String propName, float defaultValue) {
+ String stringVal = props.getProperty(propName);
+ if(stringVal == null) {
+ return defaultValue;
+ }
+ stringVal = stringVal.trim();
+ if (stringVal.length() == 0) {
+ return defaultValue;
+ }
+ try {
+ return Float.parseFloat(stringVal);
+ } catch(NumberFormatException e) {
+ throw new InvalidPropertyException(propName, stringVal, Float.class, e);
+ }
+ }
+
+ public static double getDoubleProperty(Properties props, String propName, double defaultValue) {
+ String stringVal = props.getProperty(propName);
+ if(stringVal == null) {
+ return defaultValue;
+ }
+ stringVal = stringVal.trim();
+ if (stringVal.length() == 0) {
+ return defaultValue;
+ }
+ try {
+ return Double.parseDouble(stringVal);
+ } catch(NumberFormatException e) {
+ throw new InvalidPropertyException(propName, stringVal, Double.class, e);
+ }
+ }
+
+ public static boolean getBooleanProperty(Properties props, String propName, boolean defaultValue) {
+ String stringVal = props.getProperty(propName);
+ if(stringVal == null) {
+ return defaultValue;
+ }
+ stringVal = stringVal.trim();
+ if (stringVal.length() == 0) {
+ return defaultValue;
+ }
+ try {
+ return Boolean.valueOf(stringVal);
+ } catch(NumberFormatException e) {
+ throw new InvalidPropertyException(propName, stringVal, Float.class, e);
+ }
+ }
+
+ /**
+ * Read the header part of a properties file into a String.
+ * @param fileName
+ * @return
+ * @throws IOException
+ * @since 4.3
+ */
+ public static String loadHeader(String fileName) throws IOException {
+ FileReader fr = null;
+ BufferedReader br = null;
+ try {
+ fr = new FileReader(fileName);
+ br = new BufferedReader(fr);
+ String header = br.readLine();
+ if (header != null && header.indexOf('#') == 0) {
+ header = header.substring(1);
+ }
+ return header;
+ } finally {
+ if (br != null) {
+ br.close();
+ }
+ if (fr != null) {
+ fr.close();
+ }
+ }
+ }
+
+ public static Properties load(String fileName) throws IOException {
+ InputStream is = null;
+ try {
+ Properties props = new Properties();
+ is = new FileInputStream(fileName);
+ props.load(is);
+ return props;
+ } finally {
+ if (is != null) {
+ is.close();
+ }
+ }
+ }
+
+ public static Properties loadFromURL(URL url) throws MalformedURLException, IOException {
+ Properties result = new Properties();
+ InputStream is = null;
+ try {
+ is = url.openStream();
+ result.load(is);
+ } finally {
+ if (is != null) {
+ is.close();
+ }
+ }
+ return result;
+ }
+
+ public static Properties loadAsResource(Class clazz, String resourceName) throws IOException {
+ InputStream is = null;
+ Properties configProps = new Properties();
+ try {
+ is = clazz.getResourceAsStream(resourceName);
+ ArgCheck.isNotNull(is);
+ if (is != null) {
+ configProps.load(is);
+ }
+ } finally {
+ if (is != null) {
+ try {
+ is.close();
+ } catch (Exception ce) {
+
+ }
+ }
+ }
+ return configProps;
+ }
+
+ public static Properties sort(Properties props) {
+
+ List names = new ArrayList();
+ Enumeration enumeration = props.propertyNames();
+ while ( enumeration.hasMoreElements() ) {
+ String name = (String) enumeration.nextElement();
+ names.add(name);
+ }
+ Collections.sort(names);
+
+ Properties newProps = new Properties();
+ Iterator iter = names.iterator();
+ while ( iter.hasNext() ) {
+ String name = (String) iter.next();
+ String propValue = props.getProperty(name);
+ if ( propValue != null ) {
+ newProps.setProperty(name, propValue);
+ }
+ }
+ return newProps;
+ }
+
+
+ /**
+ * Write the specified properties to the specified file,
+ * with the specified header.
+ * Results may not be sorted.
+ * @param fileName
+ * @param props
+ * @param header
+ * @throws IOException
+ * @since 4.3
+ */
+ public static void print(String fileName, Properties props, String header) throws IOException {
+ FileOutputStream stream = null;
+ try {
+ stream = new FileOutputStream(fileName);
+ props.store(stream, header);
+ stream.flush();
+ } finally {
+ try {
+ if (stream != null) {
+ stream.close();
+ }
+ } catch (Exception e) {
+ }
+ }
+ }
+
+
+
+ /**
+ * Write the specified properties to the specified file,
+ * with the specified header.
+ * Results are sorted by property name.
+ */
+ public static void print( String fileName, Properties props ) throws IOException {
+
+ FileOutputStream stream = null;
+ PrintStream writer = null;
+
+ try {
+
+ stream = new FileOutputStream(fileName);
+ writer = new PrintStream(stream);
+
+ List names = new ArrayList();
+ Enumeration enumeration = props.propertyNames();
+ while ( enumeration.hasMoreElements() ) {
+ String name = (String) enumeration.nextElement();
+ names.add(name);
+ }
+ Collections.sort(names);
+
+ StringBuffer sb;
+
+ for (Iterator nIt=names.iterator(); nIt.hasNext(); ) {
+ String name = (String) nIt.next();
+
+ String value = props.getProperty(name);
+
+ sb = new StringBuffer();
+
+ sb.append(name);
+ sb.append("="); //$NON-NLS-1$
+ sb.append(value);
+
+ writer.println(sb.toString());
+ }
+ writer.flush();
+ } finally {
+ try {
+ if (writer != null) {
+ writer.close();
+ }
+ } catch (Exception e){
+
+ }
+ try {
+ if (stream != null) {
+ stream.close();
+ }
+ } catch (Exception e){
+
+ }
+ }
+
+
+ }
+
+ public static void print( java.io.PrintStream stream, Properties props ) {
+ if (props != null) {
+ Collection sorted = sortPropertiesForPrinting(props);
+ for (Iterator it=sorted.iterator(); it.hasNext(); ) {
+ String value = (String) it.next();
+ stream.println(value);
+ }
+ }
+ }
+
+ private static final String NEWLINE = "\n"; //$NON-NLS-1$
+ public static String prettyPrint( Properties props ) {
+ if (props != null) {
+ Collection sorted = sortPropertiesForPrinting(props);
+
+ StringBuffer outBuf = new StringBuffer();
+
+ for (Iterator it=sorted.iterator(); it.hasNext(); ) {
+ String value = (String) it.next();
+ outBuf.append(value);
+ outBuf.append(NEWLINE);
+ }
+
+ return outBuf.toString();
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+ /**
+ * Sorts the properties and returns a collection of entries
+ * where each entry can be printed. Each entry will print in the
+ * format of: Property: <code>name</code> = <code>value</code>
+ */
+
+ private static final String APREFIX = "Property '"; //$NON-NLS-1$
+ private static final String AEQUAL = "'='"; //$NON-NLS-1$
+ private static final String ASUFFIX = "'"; //$NON-NLS-1$
+ private static final String TAB = "\t"; //$NON-NLS-1$
+
+ public static Collection sortPropertiesForPrinting(Properties props) {
+
+ Collection sortedProps = new ArrayList(props.size());
+
+ List names = new ArrayList();
+ Enumeration enumeration = props.propertyNames();
+ while ( enumeration.hasMoreElements() ) {
+ String name = (String) enumeration.nextElement();
+ names.add(name);
+ }
+ Collections.sort(names);
+
+ StringBuffer sb;
+
+ for (Iterator nIt=names.iterator(); nIt.hasNext(); ) {
+ String name = (String) nIt.next();
+
+ String value = null;
+ if (PasswordMaskUtil.doesNameEndWithPasswordSuffix(name)){
+ value = PasswordMaskUtil.MASK_STRING;
+ } else {
+ value = props.getProperty(name);
+ value= saveConvert(value, false);
+ }
+
+ name = saveConvert(name, true);
+
+ sb = new StringBuffer(APREFIX);
+
+ sb.append(name);
+ sb.append(TAB);
+ sb.append(AEQUAL);
+ sb.append(value);
+ sb.append(ASUFFIX);
+
+// sortedProps.add(APREFIX + name + TAB + AEQUAL + value + ASUFFIX);
+ sortedProps.add(sb.toString());
+ }
+
+ return sortedProps;
+
+ }
+
+// private static final String keyValueSeparators = "=: \t\r\n\f";
+
+// private static final String strictKeyValueSeparators = "=:";
+
+ private static final String specialSaveChars = "=: \t\r\n\f#!"; //$NON-NLS-1$
+
+// private static final String whiteSpaceChars = " \t\r\n\f";
+
+
+ /*
+ * Converts unicodes to encoded \uxxxx
+ * and writes out any of the characters in specialSaveChars
+ * with a preceding slash
+ */
+ public static String saveConvert(String theString, boolean escapeSpace) {
+ if ( theString == null ) {
+ return ""; //$NON-NLS-1$
+ }
+ int len = theString.length();
+ StringBuffer outBuffer = new StringBuffer(len*2);
+
+ for(int x=0; x<len; x++) {
+ char aChar = theString.charAt(x);
+ switch(aChar) {
+ case ' ':
+ if (x == 0 || escapeSpace)
+ outBuffer.append('\\');
+
+ outBuffer.append(' ');
+ break;
+ case '\\':outBuffer.append('\\'); outBuffer.append('\\');
+ break;
+ case '\t':outBuffer.append('\\'); outBuffer.append('t');
+ break;
+ case '\n':outBuffer.append('\\'); outBuffer.append('n');
+ break;
+ case '\r':outBuffer.append('\\'); outBuffer.append('r');
+ break;
+ case '\f':outBuffer.append('\\'); outBuffer.append('f');
+ break;
+ default:
+ if ((aChar < 0x0020) || (aChar > 0x007e)) {
+ outBuffer.append('\\');
+ outBuffer.append('u');
+ outBuffer.append(toHex((aChar >> 12) & 0xF));
+ outBuffer.append(toHex((aChar >> 8) & 0xF));
+ outBuffer.append(toHex((aChar >> 4) & 0xF));
+ outBuffer.append(toHex( aChar & 0xF));
+ } else {
+ if (specialSaveChars.indexOf(aChar) != -1)
+ outBuffer.append('\\');
+ outBuffer.append(aChar);
+ }
+ }
+ }
+ return outBuffer.toString();
+ }
+
+ /**
+ * Convert a nibble to a hex character
+ * @param nibble the nibble to convert.
+ */
+ private static char toHex(int nibble) {
+ return hexDigit[(nibble & 0xF)];
+ }
+
+ /** A table of hex digits */
+ private static final char[] hexDigit = {
+ '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
+ };
+
+
+ public static final void copyProperty(Properties srcProperties, String srcPropName, Properties tgtProperties, String tgtPropName) {
+ if(srcProperties == null || srcPropName == null || tgtProperties == null || tgtPropName == null) {
+ return;
+ }
+
+ String value = srcProperties.getProperty(srcPropName);
+ if(value != null) {
+ tgtProperties.setProperty(tgtPropName, value);
+ }
+ }
+
+ /**
+ * The specialty of nested properties is, in a given property file
+ * there can be values with pattern like "${...}"
+ * <code>
+ * key1=value1
+ * key2=${key1}/value2
+ * </code>
+ * where the value of the <code>key2</code> should resolve to <code>value1/value2</code>
+ * also if the property in the pattern <code>${..}</code> is not found in the loaded
+ * properties, an exception is thrown. Multiple nesting is OK, however recursive nested is not supported.
+ * @param original - Original properties to be resolved
+ * @return resolved properties object.
+ * @since 4.4
+ */
+ public static Properties resolveNestedProperties(Properties original) {
+
+ for(Enumeration e = original.propertyNames(); e.hasMoreElements();) {
+ String key = (String)e.nextElement();
+ String value = original.getProperty(key);
+
+ // this will take care of the if there are any non-string properties,
+ // no nesting allowed on these.
+ if (value == null) {
+ continue;
+ }
+
+ boolean matched = true;
+ boolean modified = false;
+
+ while(matched) {
+ // now match the pattern, then extract and find the value
+ int start = value.indexOf("${"); //$NON-NLS-1$
+ int end = start;
+ if (start != -1) {
+ end = value.indexOf('}', start);
+ }
+ matched = ((start != -1) && (end != -1));
+ if (matched) {
+ String nestedkey = value.substring(start+2, end);
+ String nestedvalue = original.getProperty(nestedkey);
+
+ // in cases where the key and the nestedkey are the same, this has to be bypassed
+ // because it will cause an infinite loop, and because there will be no value
+ // for the nestedkey that doesnt contain ${..} in the value
+ if (key.equals(nestedkey)) {
+ matched = false;
+
+ } else {
+
+
+ // this will handle case where we did not resolve, mark it blank
+ if (nestedvalue == null) {
+ throw new TeiidRuntimeException(CorePlugin.Util.getString("PropertiesUtils.failed_to_resolve_property", nestedkey)); //$NON-NLS-1$
+ }
+ value = value.substring(0,start)+nestedvalue+value.substring(end+1);
+ modified = true;
+ }
+ }
+ }
+ if(modified) {
+ original.setProperty(key, value);
+ }
+ }
+ return original;
+ }
+
+ // ======================================================
+ /**
+ * Returns a boolean indicating whether the string matched the given pattern.
+ * A '*' may be
+ * given to match the pattern exactly up to the '*', then anything after.
+ * We will also support a leading star, and match on anything that ends with
+ * the string specified after the star.
+ * Note: Should also implement matching with '?' which means match any single
+ * char.
+ * @param pattern The property name to match which may include a '*'.
+ * @param props The properties to search.
+ * @return The boolean - passed or failed
+ * but never null.
+ */
+ public static boolean filterTest( String pattern, String sCandidate ) {
+
+ // Vars for match strategy
+ char chStar = '*';
+
+ // Match rule booleans. Please note that 'bLeading'
+ // and 'bTrailing' refer to the string we are searching for.
+ // For example, if the strategy is bLeading, and the Match frag
+ // is "wet", and the candidate string is "wetrust", it will pass.
+ // Likewise if the strategy is bTrailing and the Match frag is
+ // "rust" and the candidate string is "wetrust", it will pass.
+ boolean bLeading = false;
+ boolean bTrailing = false;
+ boolean bFullMatch = false;
+ boolean bAnywhere = false;
+ boolean bAllMatch = false;
+
+ boolean bPass = false;
+
+ String sMatchFrag = ""; //$NON-NLS-1$
+// List propNames = new ArrayList();
+
+
+ // 1. Analyze pattern to resolve match strategy
+
+ // First ensure the pattern is safe to work with.
+ // If the pattern is an empty string, set it to '*',
+ // which means anything passes.
+ pattern = pattern.trim();
+ if ( pattern.length() == 0 )
+ pattern = "*"; //$NON-NLS-1$
+
+ int iFirstStar = pattern.indexOf( chStar );
+ int iLastStar = pattern.lastIndexOf( chStar );
+
+ // If there are any stars:
+ if( (iFirstStar > -1) && ( iLastStar > -1 ) )
+ {
+ // and their positions are the same (same star, silly)
+ if( iFirstStar == iLastStar )
+ {
+ // and this star is at the front:
+ if( iFirstStar == 0 )
+ {
+ // and the pattern is only one byte long:
+ if( pattern.length() == 1 )
+ {
+ // Then the pattern is a single '*',
+ // and all will pass the match:
+ bAllMatch = true;
+ }
+ else
+ {
+ // Or the pattern is a leading star followed
+ // by a string:
+ bTrailing = true;
+ sMatchFrag = pattern.substring( 1 );
+ }
+ }
+ else
+ {
+ // OR the star is NOT at the front, so the
+ // pattern is a trailing star preceded by a string:
+ bLeading = true;
+ sMatchFrag = pattern.substring( 0, iLastStar );
+
+ }
+ }
+ else
+ {
+ // They are not equal
+ //sMatchStrategy = ANYWHERE;
+ bAnywhere = true;
+ sMatchFrag = pattern.substring( iFirstStar + 1, iLastStar );
+ }
+ }
+ else
+ {
+ // there are no stars at all
+ //sMatchStrategy = FULL_MATCH;
+ bFullMatch = true;
+ sMatchFrag = pattern;
+ }
+
+ // Now test the string
+ String name = sCandidate;
+ bPass = false;
+
+ // force the match fragment and the test string to UPPER case
+ String sMatchFragUpper = sMatchFrag.toUpperCase();
+ String sNameUpper = name.toUpperCase();
+
+ // Test all of the booleans. Only one should be true.
+ if( bAllMatch ) {
+ bPass = true;
+ }
+ else
+ if( bAnywhere ) {
+ if( sNameUpper.indexOf( sMatchFragUpper ) > -1 )
+ bPass = true;
+ }
+ else
+ if( bFullMatch ) {
+ if( sNameUpper.equals( sMatchFragUpper ) )
+ bPass = true;
+ }
+ else
+ if( bLeading ) {
+ if( sNameUpper.startsWith( sMatchFragUpper ) )
+ bPass = true;
+ }
+ else
+ if( bTrailing ) {
+ if( sNameUpper.endsWith( sMatchFragUpper ) )
+ bPass = true;
+ }
+
+ return bPass;
+ }
+
+ public static void setBeanProperties(Object bean, Properties props, String prefix) {
+ // Move all prop names to lower case so we can use reflection to get
+ // method names and look them up in the connection props.
+ final Properties connProps = lowerCaseAllPropNames(props);
+ final Method[] methods = bean.getClass().getMethods();
+ for (int i = 0; i < methods.length; i++) {
+ final Method method = methods[i];
+ final String methodName = method.getName();
+ // If setter ...
+ if ( methodName.startsWith("set") && method.getParameterTypes().length == 1 ) { //$NON-NLS-1$
+ // Get the property name
+ final String propertyName = methodName.substring(3); // remove the "set"
+ String shortName = propertyName.toLowerCase();
+ String propertyValue = null;
+ if (prefix != null) {
+ propertyValue = connProps.getProperty(prefix + "." + shortName); //$NON-NLS-1$
+ } else {
+ propertyValue = connProps.getProperty(shortName);
+ }
+ if (propertyValue == null) {
+ continue;
+ }
+ final Class<?> argType = method.getParameterTypes()[0];
+ try {
+ final Object[] params = new Object[] {StringUtil.valueOf(propertyValue, argType)};
+ method.invoke(bean, params);
+ } catch (Throwable e) {
+ throw new InvalidPropertyException(propertyName, propertyValue, argType, e);
+ }
+ }
+ }
+ }
+
+ public static void setBeanProperty(Object bean, String name, Object value) {
+ if (value == null) {
+ return;
+ }
+ name = name.toLowerCase();
+ final Method[] methods = bean.getClass().getMethods();
+ for (int i = 0; i < methods.length; i++) {
+ final Method method = methods[i];
+ final String methodName = method.getName();
+ // If setter ...
+ if ( methodName.startsWith("set") && method.getParameterTypes().length == 1 ) { //$NON-NLS-1$
+ // Get the property name
+ final String propertyName = methodName.substring(3); // remove the "set"
+ String shortName = propertyName.toLowerCase();
+ if (!shortName.equals(name)) {
+ continue;
+ }
+ final Class<?> argType = method.getParameterTypes()[0];
+ try {
+ Object[] params = new Object[] {value};
+ if (!argType.isAssignableFrom(value.getClass())) {
+ params = new Object[] {StringUtil.valueOf(value.toString(), argType)};
+ }
+ method.invoke(bean, params);
+ } catch (Throwable e) {
+ throw new InvalidPropertyException(propertyName, value.toString(), argType, e);
+ }
+ }
+ }
+ }
+
+ private static Properties lowerCaseAllPropNames(final Properties connectionProps) {
+ final Properties lcProps = new Properties();
+ final Enumeration<?> itr = connectionProps.propertyNames();
+ while ( itr.hasMoreElements() ) {
+ final String name = (String) itr.nextElement();
+ String propValue = connectionProps.getProperty(name);
+ if (propValue != null) {
+ lcProps.setProperty(name.toLowerCase(), propValue);
+ }
+ }
+ return lcProps;
+ }
+
+}
Copied: trunk/common-core/src/main/java/org/teiid/core/util/ReaderInputStream.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/util/ReaderInputStream.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/util/ReaderInputStream.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/util/ReaderInputStream.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,88 @@
+/*
+ * 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 org.teiid.core.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.Charset;
+
+import org.teiid.core.types.Streamable;
+
+
+public class ReaderInputStream extends InputStream {
+
+ private static final int DEFAULT_BUFFER_SIZE = Streamable.STREAMING_BATCH_SIZE_IN_BYTES;
+
+ private final Reader reader;
+ private final Charset charSet;
+ private char[] charBuffer;
+
+ private boolean hasMore = true;
+ private ByteBuffer currentBuffer;
+ private int prefixBytes;
+ private boolean needsPrefix = true;
+
+ public ReaderInputStream(Reader reader, Charset charSet) {
+ this(reader, charSet, DEFAULT_BUFFER_SIZE);
+ }
+
+ public ReaderInputStream(Reader reader, Charset charSet, int bufferSize) {
+ this.reader = reader;
+ this.charSet = charSet;
+ this.charBuffer = new char[bufferSize];
+ if (charSet.displayName().equalsIgnoreCase("UTF-16")) { //$NON-NLS-1$
+ prefixBytes = 2;
+ }
+ }
+
+ @Override
+ public int read() throws IOException {
+ if (currentBuffer == null || !currentBuffer.hasRemaining()) {
+ if (!hasMore) {
+ return -1;
+ }
+ int charsRead = reader.read(charBuffer);
+ if (charsRead == -1) {
+ hasMore = false;
+ return -1;
+ }
+ currentBuffer = charSet.encode(CharBuffer.wrap(charBuffer, 0, charsRead));
+ if (!needsPrefix) {
+ currentBuffer.position(prefixBytes);
+ }
+ needsPrefix = false;
+ }
+ return currentBuffer.get() & 0xff;
+ }
+
+ @Override
+ public void close() throws IOException {
+ this.reader.close();
+ }
+}
\ No newline at end of file
Modified: trunk/common-core/src/main/java/org/teiid/core/util/ReflectionHelper.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/ReflectionHelper.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/util/ReflectionHelper.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
@@ -34,9 +34,10 @@
import java.util.List;
import java.util.Map;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.MetaMatrixCoreException;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.TeiidException;
+
public class ReflectionHelper {
private Class targetClass;
@@ -261,11 +262,11 @@
* @param classLoader the class loader to use; may be null if the current
* class loader is to be used
* @return Object is the instance of the class
- * @throws MetaMatrixCoreException if an error occurrs instantiating the class
+ * @throws TeiidException if an error occurrs instantiating the class
*/
public static final Object create(String className, Collection ctorObjs,
- final ClassLoader classLoader) throws MetaMatrixCoreException {
+ final ClassLoader classLoader) throws TeiidException {
try {
int size = (ctorObjs == null ? 0 : ctorObjs.size());
Class[] names = new Class[size];
@@ -282,12 +283,12 @@
}
return create(className, objArray, names, classLoader);
} catch (Exception e) {
- throw new MetaMatrixCoreException(e);
+ throw new TeiidException(e);
}
}
public static final Object create(String className, Object[] ctorObjs, Class<?>[] argTypes,
- final ClassLoader classLoader) throws MetaMatrixCoreException {
+ final ClassLoader classLoader) throws TeiidException {
try {
final Class cls = loadClass(className,classLoader);
@@ -296,7 +297,7 @@
return ctor.newInstance(ctorObjs);
} catch(Exception e) {
- throw new MetaMatrixCoreException(e);
+ throw new TeiidException(e);
}
}
Copied: trunk/common-core/src/main/java/org/teiid/core/util/SqlUtil.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/util/SqlUtil.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/util/SqlUtil.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/util/SqlUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,123 @@
+/*
+ * 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 org.teiid.core.util;
+
+import java.sql.SQLException;
+
+//## JDBC4.0-begin ##
+import java.sql.SQLFeatureNotSupportedException;
+//## JDBC4.0-end ##
+
+import java.util.regex.Pattern;
+
+
+
+/**
+ * Utilities for dealing with SQL strings.
+ */
+public class SqlUtil {
+ public static final char CR_CHAR = StringUtil.Constants.CARRIAGE_RETURN_CHAR;
+ public static final char NL_CHAR = StringUtil.Constants.NEW_LINE_CHAR;
+ public static final char SPACE_CHAR = StringUtil.Constants.SPACE_CHAR;
+ public static final char TAB_CHAR = StringUtil.Constants.TAB_CHAR;
+ private static Pattern PATTERN = Pattern.compile("^([\\s]|(/\\*.*\\*/))*(insert|update|delete|create|drop|(select([\\s]|(/\\*.*\\*/))+.*into([\\s]|(/\\*.*\\*/))+)).*", Pattern.CASE_INSENSITIVE|Pattern.MULTILINE); //$NON-NLS-1$
+
+ private SqlUtil() {
+ super();
+ }
+
+ /**
+ * Determines whether a sql statement is an update (INSERT, UPDATE, or DELETE).
+ * Throws exception if SQL statement appears to be invalid (because it's null, has
+ * 0 length, etc.
+ * @param sql Sql string
+ * @return True if INSERT, UPDATE, or DELETE, and false otherwise
+ * @throws IllegalArgumentException If sql string is invalid and neither a
+ * query or an update
+ */
+ public static boolean isUpdateSql(String sql) throws IllegalArgumentException {
+ ArgCheck.isNotNull(sql);
+ return PATTERN.matcher(sql).matches();
+ }
+
+ /**
+ * Simple method which normalizes a SQL string by replacing CR characters, new line characters and Tab characters with spaces,
+ * then trimming the string to remove unneeded spaces.
+ *
+ * @param inputSqlString
+ * @return
+ * @since 5.0
+ */
+ public static String normalize(String inputSqlString) {
+ String normalizedString = inputSqlString;
+ if (inputSqlString != null && inputSqlString.length() > 0) {
+ if ( inputSqlString.indexOf(NL_CHAR) > -1 ||
+ inputSqlString.indexOf(CR_CHAR) > -1 ||
+ inputSqlString.indexOf(TAB_CHAR) > -1 ||
+ inputSqlString.indexOf(StringUtil.Constants.DBL_SPACE) > -1) {
+ normalizedString = normalizedString.replace(NL_CHAR, SPACE_CHAR);
+ normalizedString = normalizedString.replace(CR_CHAR, SPACE_CHAR);
+ normalizedString = normalizedString.replace(TAB_CHAR, SPACE_CHAR);
+ normalizedString = StringUtil.replaceAll(normalizedString,
+ StringUtil.Constants.DBL_SPACE,
+ StringUtil.Constants.SPACE);
+
+ }
+ normalizedString = StringUtil.collapseWhitespace(normalizedString);
+ }
+ return normalizedString;
+ }
+
+ /**
+ * determine if the supplied sql Strings are different
+ * @param newSql the new SQL String
+ * @param oldSql the old SQL String
+ * @return 'true' if strings differ, 'false' if same
+ */
+ public static boolean stringsAreDifferent(String newSql, String oldSql) {
+ boolean isDifferent = true;
+ if(newSql==null) {
+ if(oldSql==null) {
+ isDifferent = false;
+ }
+ } else if(oldSql!=null) {
+ String normalizedNewSql = normalize(newSql);
+ String normalizedOldSql = normalize(oldSql);
+ if(normalizedNewSql.equals(normalizedOldSql)) {
+ isDifferent=false;
+ }
+ }
+ return isDifferent;
+ }
+
+ public static SQLException createFeatureNotSupportedException() {
+ //## JDBC4.0-begin ##
+ return new SQLFeatureNotSupportedException();
+ //## JDBC4.0-end ##
+
+ /*## JDBC3.0-JDK1.5-begin ##
+ return new SQLException("unsupported feature");
+ ## JDBC3.0-JDK1.5-end ##*/
+
+ }
+}
Modified: trunk/common-core/src/main/java/org/teiid/core/util/StringUtil.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/StringUtil.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/main/java/org/teiid/core/util/StringUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -10,7 +10,7 @@
* License, version 1.0.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
@@ -28,9 +28,10 @@
import java.util.StringTokenizer;
import java.util.regex.Pattern;
-import com.metamatrix.core.CorePlugin;
-import com.metamatrix.core.MetaMatrixRuntimeException;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.TeiidRuntimeException;
+
/**
* This is a common place to put String utility methods.
*/
@@ -1059,7 +1060,7 @@
line = reader.readLine();
}
} catch (IOException e) {
- throw new MetaMatrixRuntimeException(e);
+ throw new TeiidRuntimeException(e);
}
return (String[]) result.toArray(new String[result.size()]);
}
Copied: trunk/common-core/src/main/java/org/teiid/core/util/TimestampWithTimezone.java (from rev 2112, trunk/common-core/src/main/java/com/metamatrix/common/util/TimestampWithTimezone.java)
===================================================================
--- trunk/common-core/src/main/java/org/teiid/core/util/TimestampWithTimezone.java (rev 0)
+++ trunk/common-core/src/main/java/org/teiid/core/util/TimestampWithTimezone.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,204 @@
+/*
+ * 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 org.teiid.core.util;
+
+import java.sql.Date;
+import java.sql.Time;
+import java.sql.Timestamp;
+import java.util.Calendar;
+import java.util.TimeZone;
+
+import org.teiid.core.types.DataTypeManager;
+
+
+/**
+ * Utility methods for SQL Timestamps, Time, and Dates with time zones as UTC
+ *
+ * This is intended to take incoming Strings or Dates that have accurate
+ * Calendar fields and give the UTC time by interpretting those fields
+ * in the target time zone.
+ *
+ * Use of the Calendar object passed in will not be thread safe, but
+ * it will not alter the contents of the Calendar.
+ *
+ * Note that normalization occurs only for the transition from one type to another.
+ *
+ */
+public class TimestampWithTimezone {
+
+ private static ThreadLocal<Calendar> CALENDAR = new ThreadLocal<Calendar>() {
+ protected Calendar initialValue() {
+ return Calendar.getInstance();
+ }
+ };
+
+ public static Calendar getCalendar() {
+ return CALENDAR.get();
+ }
+
+ public static void resetCalendar(TimeZone tz) {
+ TimeZone.setDefault(tz);
+ CALENDAR.set(Calendar.getInstance());
+ }
+
+ public static Object create(java.util.Date date, TimeZone initial, Calendar target, Class<?> type) {
+ if (type.equals(DataTypeManager.DefaultDataClasses.TIME)) {
+ return type.cast(createTime(date, initial, target));
+ }
+ if (type.equals(DataTypeManager.DefaultDataClasses.DATE)) {
+ return type.cast(createDate(date, initial, target));
+ }
+ return type.cast(createTimestamp(date, initial, target));
+ }
+
+ public static Timestamp createTimestamp(java.util.Date date, TimeZone initial, Calendar target) {
+ if (target == null) {
+ target = getCalendar();
+ }
+
+ long time = target.getTimeInMillis();
+
+ adjustCalendar(date, initial, target);
+
+ target.set(Calendar.MILLISECOND, 0);
+
+ Timestamp tsInTz = new Timestamp(target.getTimeInMillis());
+
+ if(date instanceof Timestamp) {
+ tsInTz.setNanos(((Timestamp)date).getNanos());
+ }
+
+ target.setTimeInMillis(time);
+ return tsInTz;
+ }
+
+ public static Time createTime(java.util.Date date, TimeZone initial, Calendar target) {
+ if (target == null) {
+ target = getCalendar();
+ }
+
+ long time = target.getTimeInMillis();
+
+ adjustCalendar(date, initial, target);
+
+ Time result = normalizeTime(date, target);
+
+ target.setTimeInMillis(time);
+ return result;
+ }
+
+ public static Date createDate(java.util.Date date, TimeZone initial, Calendar target) {
+ if (target == null) {
+ target = getCalendar();
+ }
+
+ long time = target.getTimeInMillis();
+
+ adjustCalendar(date, initial, target);
+
+ Date result = normalizeDate(date, target);
+
+ target.setTimeInMillis(time);
+ return result;
+ }
+
+ /**
+ * Creates normalized SQL Time Object
+ *
+ * @return Time
+ * @since 4.3
+ */
+ public static Time createTime(java.util.Date date) {
+ if (date instanceof Time) {
+ return (Time)date;
+ }
+ Calendar cal = getCalendar();
+ cal.setTime(date);
+ return normalizeTime(date, cal);
+ }
+
+ /**
+ * Creates normalized SQL Date Object
+ *
+ * @return Date
+ * @since 4.3
+ */
+ public static Date createDate(java.util.Date date) {
+ if (date instanceof Date) {
+ return (Date)date;
+ }
+ Calendar cal = getCalendar();
+ cal.setTime(date);
+ return normalizeDate(date, cal);
+ }
+
+ public static Timestamp createTimestamp(java.util.Date date) {
+ if (date instanceof Timestamp) {
+ return (Timestamp)date;
+ }
+ return new Timestamp(date.getTime());
+ }
+
+ private static Date normalizeDate(java.util.Date date, Calendar target) {
+ if (!(date instanceof Date)) {
+ target.set(Calendar.HOUR_OF_DAY, 0);
+ target.set(Calendar.MINUTE, 0);
+ target.set(Calendar.SECOND, 0);
+ target.set(Calendar.MILLISECOND, 0);
+ }
+ Date result = new Date(target.getTimeInMillis());
+ return result;
+ }
+
+ private static Time normalizeTime(java.util.Date date, Calendar target) {
+ if (!(date instanceof Time)) {
+ target.set(Calendar.YEAR, 1970);
+ target.set(Calendar.MONTH, Calendar.JANUARY);
+ target.set(Calendar.DAY_OF_MONTH, 1);
+ target.set(Calendar.MILLISECOND, 0);
+ }
+ Time result = new Time(target.getTimeInMillis());
+ return result;
+ }
+
+ private static void adjustCalendar(java.util.Date date,
+ TimeZone initial,
+ Calendar target) {
+ assert initial != null;
+ if (initial.hasSameRules(target.getTimeZone())) {
+ target.setTime(date);
+ return;
+ }
+
+ //start with base time
+ long time = date.getTime();
+
+ Calendar cal = Calendar.getInstance(initial);
+ cal.setTimeInMillis(time);
+
+ target.clear();
+ for (int i = 0; i <= Calendar.MILLISECOND; i++) {
+ target.set(i, cal.get(i));
+ }
+ }
+}
\ No newline at end of file
Copied: trunk/common-core/src/main/resources/org (from rev 2112, trunk/common-core/src/main/resources/com)
Copied: trunk/common-core/src/main/resources/org/teiid (from rev 2112, trunk/common-core/src/main/resources/com/metamatrix)
Added: trunk/common-core/src/main/resources/org/teiid/core/crypto/dh.properties
===================================================================
--- trunk/common-core/src/main/resources/org/teiid/core/crypto/dh.properties (rev 0)
+++ trunk/common-core/src/main/resources/org/teiid/core/crypto/dh.properties 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,25 @@
+#
+# 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.
+#
+
+l=1023
+g=65476153261383108624840021863998246093709586224962907052686140953941599438816169930153889694632983438469862599756901552486265440405017552695104068576059353038515915292702390210034620287621061715213680152081614271756448482999508620289874066938958639538265504107725684460411433731570820253815359301833789900369
+p=91486708821195143519350593856640210508460388919268552559270683605679843924064493007548185819322195422458326889166652085263292015070318371861045236990557879217929613856964138062966850688610964882043602934380737432020282965006721409374518731633783361548347472294564234747097310682444725035696923352543622936769
\ No newline at end of file
Added: trunk/common-core/src/main/resources/org/teiid/core/util/application.properties
===================================================================
--- trunk/common-core/src/main/resources/org/teiid/core/util/application.properties (rev 0)
+++ trunk/common-core/src/main/resources/org/teiid/core/util/application.properties 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,5 @@
+build.releaseNumber=${pom.version}
+build.number=${pom.version}
+build.date=@build-date@
+copyright=Copyright (C) 2008-2009 Red Hat, Inc
+url=${site.url}
\ No newline at end of file
Deleted: trunk/common-core/src/test/java/com/metamatrix/common/types/TestBlobValue.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/common/types/TestBlobValue.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/test/java/com/metamatrix/common/types/TestBlobValue.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,76 +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.common.types;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-
-import javax.sql.rowset.serial.SerialBlob;
-
-import com.metamatrix.core.util.UnitTestUtil;
-
-import junit.framework.TestCase;
-
-
-public class TestBlobValue extends TestCase {
-
- public void testBlobValue() throws Exception {
- String testString = "this is test blob"; //$NON-NLS-1$
- SerialBlob blob = new SerialBlob(testString.getBytes());
-
- BlobType bv = new BlobType(blob);
- assertEquals(testString, new String(bv.getBytes(1L, (int)bv.length())));
- }
-
-
- public void testBlobValuePersistence() throws Exception {
- String testString = "this is test clob"; //$NON-NLS-1$
- SerialBlob blob = new SerialBlob(testString.getBytes());
-
- String key = "keytodata"; //$NON-NLS-1$
- BlobType bv = new BlobType(blob);
- bv.setReferenceStreamId(key);
-
- // now force to serialize
- File saved = new File(UnitTestUtil.getTestScratchPath()+"/blobassaved.bin"); //$NON-NLS-1$
- ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(saved));
- out.writeObject(bv);
- out.close();
-
- // now read back the object from serilized state
- ObjectInputStream in = new ObjectInputStream(new FileInputStream(saved));
- BlobType read = (BlobType)in.readObject();
-
- // make sure we have kept the reference stream id
- assertEquals(key, read.getReferenceStreamId());
-
- // and lost the original object
- assertNull(read.getReference());
-
- saved.delete();
- }
-
-}
Deleted: trunk/common-core/src/test/java/com/metamatrix/common/types/TestClobValue.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/common/types/TestClobValue.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/test/java/com/metamatrix/common/types/TestClobValue.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,76 +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.common.types;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-
-import javax.sql.rowset.serial.SerialClob;
-
-import com.metamatrix.core.util.UnitTestUtil;
-
-import junit.framework.TestCase;
-
-
-public class TestClobValue extends TestCase {
-
- public void testClobValue() throws Exception {
- String testString = "this is test clob"; //$NON-NLS-1$
- SerialClob clob = new SerialClob(testString.toCharArray());
-
- ClobType cv = new ClobType(clob);
- assertEquals(testString, cv.getSubString(1L, (int)cv.length()));
- }
-
-
- public void testClobValuePersistence() throws Exception {
- String testString = "this is test clob"; //$NON-NLS-1$
- SerialClob clob = new SerialClob(testString.toCharArray());
-
- String key = "keytodata"; //$NON-NLS-1$
- ClobType cv = new ClobType(clob);
- cv.setReferenceStreamId(key);
-
- // now force to serialize
- File saved = new File(UnitTestUtil.getTestScratchPath()+"/clobassaved.bin"); //$NON-NLS-1$
- ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(saved));
- out.writeObject(cv);
- out.close();
-
- // now read back the object from serilized state
- ObjectInputStream in = new ObjectInputStream(new FileInputStream(saved));
- ClobType read = (ClobType)in.readObject();
-
- // make sure we have kept the reference stream id
- assertEquals(key, read.getReferenceStreamId());
-
- // and lost the original object
- assertNull(read.getReference());
-
- saved.delete();
- }
-
-}
Deleted: trunk/common-core/src/test/java/com/metamatrix/common/types/TestDataTypeManager.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/common/types/TestDataTypeManager.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/test/java/com/metamatrix/common/types/TestDataTypeManager.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,225 +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.common.types;
-
-import static org.junit.Assert.*;
-
-import java.sql.Types;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.Set;
-
-import javax.sql.rowset.serial.SerialBlob;
-
-import org.junit.Test;
-
-public class TestDataTypeManager {
-
- private void helpDetermineDataType(Object value, Class expectedClass) {
- Class actualClass = DataTypeManager.determineDataTypeClass(value);
- assertNotNull("Should never receive null when determining data type of object: " + value); //$NON-NLS-1$
- assertEquals("Mismatch in expected and actual MetaMatrix type class for [" + value + "]: ", expectedClass, actualClass); //$NON-NLS-1$ //$NON-NLS-2$
- }
- public static String[] dataTypes = {"string","char","boolean","byte","short","integer","long","biginteger", //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
- "float","double","bigdecimal","date","time","timestamp","object","blob","clob", DataTypeManager.DefaultDataTypes.XML}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
-
- /**
- * I - Implicitly Converted
- * C - Explicitly Converted
- * N - Cannot be converted
- * o - No conversion needed
- */
- public static char conversions [][] =
- {
- /* Big */
- /* i d */
- /* s n b d e Time o */
- /* t s t i f o c s b */
- /* r c b b h e L g l u i d t t j b c */
- /* i h o y o g o i o b m a i a e l l x */
- /* n a o t r e n n a l a t m m c o o m */
- /* g r l e t r g t t e l e e p t b b l */
- /* -------------------------------------------------------------------------*/
- /*String*/ { 'O','C','C','C','C','C','C','C','C','C','C','C','C','C','I','N','I','C' },
- /*char*/ { 'I','O','N','N','N','N','N','N','N','N','N','N','N','N','I','N','N','N' },
- /*bool*/ { 'I','N','O','I','I','I','I','I','I','I','I','N','N','N','I','N','N','N' },
- /*byte*/ { 'I','N','C','O','I','I','I','I','I','I','I','N','N','N','I','N','N','N' },
- /*short*/ { 'I','N','C','C','O','I','I','I','I','I','I','N','N','N','I','N','N','N' },
- /*int*/ { 'I','N','C','C','C','O','I','I','C','I','I','N','N','N','I','N','N','N' },
- /*long*/ { 'I','N','C','C','C','C','O','I','C','C','I','N','N','N','I','N','N','N' },
- /*bigint*/ { 'I','N','C','C','C','C','C','O','C','C','I','N','N','N','I','N','N','N' },
- /*float*/ { 'I','N','C','C','C','C','C','C','O','I','I','N','N','N','I','N','N','N' },
- /*double*/ { 'I','N','C','C','C','C','C','C','C','O','I','N','N','N','I','N','N','N' },
- /*bigdecimal*/ { 'I','N','C','C','C','C','C','C','C','C','O','N','N','N','I','N','N','N' },
- /*date*/ { 'I','N','N','N','N','N','N','N','N','N','N','O','N','I','I','N','N','N' },
- /*time*/ { 'I','N','N','N','N','N','N','N','N','N','N','N','O','I','I','N','N','N' },
- /*timestamp*/ { 'I','N','N','N','N','N','N','N','N','N','N','C','C','O','I','N','N','N' },
- /*object*/ { 'C','C','C','C','C','C','C','C','C','C','C','C','C','C','O','C','C','C' },
- /*blob*/ { 'N','N','N','N','N','N','N','N','N','N','N','N','N','N','I','O','N','N' },
- /*clob*/ { 'C','N','N','N','N','N','N','N','N','N','N','N','N','N','I','N','O','C' },
- /*xml*/ { 'C','N','N','N','N','N','N','N','N','N','N','N','N','N','I','N','C','O' }
- };
-
-
- // ################################## ACTUAL TESTS ################################
-
- @Test public void testTypeMappings() {
- Set dataTypeNames = DataTypeManager.getAllDataTypeNames();
- Iterator iter = dataTypeNames.iterator();
- while(iter.hasNext()) {
- String dataTypeName = (String) iter.next();
- Class dataTypeClass = DataTypeManager.getDataTypeClass(dataTypeName);
- assertNotNull("Data type class was null for type " + dataTypeName, dataTypeClass); //$NON-NLS-1$
- String dataTypeName2 = DataTypeManager.getDataTypeName(dataTypeClass);
- assertEquals("Name to class to name not equals: ", dataTypeName, dataTypeName2); //$NON-NLS-1$
- }
- }
-
- @Test public void testCheckConversions() {
- for (int src = 0; src < dataTypes.length; src++) {
- for (int tgt =0; tgt < dataTypes.length; tgt++) {
- char c = conversions[src][tgt];
-
- if (c == 'I') {
- assertTrue("src="+dataTypes[src]+" target="+dataTypes[tgt]+" should be Implicit", DataTypeManager.isImplicitConversion(dataTypes[src], dataTypes[tgt])); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- assertFalse("src="+dataTypes[src]+" target="+dataTypes[tgt]+" should be not be Explicit", DataTypeManager.isExplicitConversion(dataTypes[src], dataTypes[tgt])); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- assertTrue("src="+dataTypes[src]+" target="+dataTypes[tgt]+" transform should be avaialble", DataTypeManager.isTransformable(dataTypes[src], dataTypes[tgt])); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
- else if (c == 'C') {
- assertFalse("src="+dataTypes[src]+" target="+dataTypes[tgt]+" should not be Implicit", DataTypeManager.isImplicitConversion(dataTypes[src], dataTypes[tgt])); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- assertTrue("src="+dataTypes[src]+" target="+dataTypes[tgt]+" should be Explicit", DataTypeManager.isExplicitConversion(dataTypes[src], dataTypes[tgt])); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- assertTrue("src="+dataTypes[src]+" target="+dataTypes[tgt]+" transform should be avaialble", DataTypeManager.isTransformable(dataTypes[src], dataTypes[tgt])); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
- else if ( c == 'O' || c == 'N') {
- assertFalse("src="+dataTypes[src]+" target="+dataTypes[tgt]+" should not be Implicit", DataTypeManager.isImplicitConversion(dataTypes[src], dataTypes[tgt])); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- assertFalse("src="+dataTypes[src]+" target="+dataTypes[tgt]+" should not be Explicit", DataTypeManager.isExplicitConversion(dataTypes[src], dataTypes[tgt])); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- assertFalse("src="+dataTypes[src]+" target="+dataTypes[tgt]+" No transform should be avaialble", DataTypeManager.isTransformable(dataTypes[src], dataTypes[tgt])); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
- }
- }
- }
-
- /** Test determine data type for a STRING object. */
- @Test public void testDetermineDataType1() {
- helpDetermineDataType("abc", DataTypeManager.DefaultDataClasses.STRING); //$NON-NLS-1$
- }
-
- /** Test determine data type for a NULL object. */
- @Test public void testDetermineDataType2() {
- helpDetermineDataType(null, DataTypeManager.DefaultDataClasses.NULL);
- }
-
- /** Test determine data type for an unknown object type - should be typed as an OBJECT. */
- @Test public void testDetermineDataType3() throws Exception {
- java.net.URL url = new java.net.URL("http://fake"); //$NON-NLS-1$
- helpDetermineDataType(url, DataTypeManager.DefaultDataClasses.OBJECT);
- }
-
- @Test public void testCheckAllConversions() {
- Set allTypes = DataTypeManager.getAllDataTypeNames();
- Iterator srcIter = allTypes.iterator();
- while(srcIter.hasNext()) {
- String src = (String) srcIter.next();
-
- Iterator tgtIter = allTypes.iterator();
- while(tgtIter.hasNext()) {
- String tgt = (String) tgtIter.next();
-
- boolean isImplicit = DataTypeManager.isImplicitConversion(src, tgt);
- boolean isExplicit = DataTypeManager.isExplicitConversion(src, tgt);
-
- if(isImplicit && isExplicit) {
- fail("Can't be both implicit and explicit for " + src + " to " + tgt); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
- }
-
- @Test public void testTimeConversions() {
- Transform t = DataTypeManager.getTransform(DataTypeManager.DefaultDataTypes.TIMESTAMP, DataTypeManager.DefaultDataTypes.DATE);
-
- assertEquals(DataTypeManager.DefaultDataClasses.DATE, t.getTargetType());
-
- t = DataTypeManager.getTransform(DataTypeManager.DefaultDataTypes.TIME, DataTypeManager.DefaultDataTypes.TIMESTAMP);
-
- assertEquals(DataTypeManager.DefaultDataClasses.TIMESTAMP, t.getTargetType());
- }
-
- @Test public void testJDBCSQLTypeInfo() {
-
- String[] types = JDBCSQLTypeInfo.getMMTypeNames();
-
- for (int i = 0; i < types.length; i++) {
- String type = types[i];
-
- assertEquals("Didn't get match for "+ type, JDBCSQLTypeInfo.getSQLType(type), JDBCSQLTypeInfo.getSQLTypeFromRuntimeType(DataTypeManager.getDataTypeClass(type))); //$NON-NLS-1$
-
- //the classnames will not match the runtime types for xml, clob, blob
- if (!type.equalsIgnoreCase(DataTypeManager.DefaultDataTypes.XML) && !type.equalsIgnoreCase(DataTypeManager.DefaultDataTypes.CLOB) && !type.equalsIgnoreCase(DataTypeManager.DefaultDataTypes.BLOB)) {
- assertEquals("Didn't get match for "+ type, JDBCSQLTypeInfo.getSQLType(type), JDBCSQLTypeInfo.getSQLTypeFromClass(DataTypeManager.getDataTypeClass(type).getName())); //$NON-NLS-1$
- }
- }
-
- assertEquals(Types.TIMESTAMP, JDBCSQLTypeInfo.getSQLTypeFromRuntimeType(DataTypeManager.DefaultDataClasses.TIMESTAMP));
- //## JDBC4.0-begin ##
- assertEquals(Types.SQLXML, JDBCSQLTypeInfo.getSQLTypeFromRuntimeType(DataTypeManager.DefaultDataClasses.XML));
- //## JDBC4.0-end ##
- assertEquals(DataTypeManager.DefaultDataTypes.STRING, JDBCSQLTypeInfo.getTypeName(Types.CHAR));
- assertEquals(Types.CHAR, JDBCSQLTypeInfo.getSQLTypeFromRuntimeType(DataTypeManager.DefaultDataClasses.CHAR));
- }
-
- @Test public void testRuntimeTypeConversion() throws Exception {
- assertNull(DataTypeManager.convertToRuntimeType(null));
-
- assertTrue(DataTypeManager.convertToRuntimeType(new SerialBlob(new byte[0])) instanceof BlobType);
-
- //unknown type should return as same
- Object foo = new Object();
- assertEquals(foo, DataTypeManager.convertToRuntimeType(foo));
-
- //known type should return as same
- Integer bar = new Integer(1);
- assertEquals(bar, DataTypeManager.convertToRuntimeType(bar));
- }
-
- @Test public void testObjectType() {
- assertEquals(DataTypeManager.DefaultDataClasses.OBJECT, DataTypeManager.getDataTypeClass("foo")); //$NON-NLS-1$
-
- assertEquals(DataTypeManager.DefaultDataTypes.OBJECT, DataTypeManager.getDataTypeName(TestDataTypeManager.class));
- }
-
- @Test public void testImplicitConversions() {
- assertEquals(Arrays.asList(DataTypeManager.DefaultDataTypes.LONG,
- DataTypeManager.DefaultDataTypes.BIG_INTEGER,
- DataTypeManager.DefaultDataTypes.DOUBLE,
- DataTypeManager.DefaultDataTypes.BIG_DECIMAL,
- DataTypeManager.DefaultDataTypes.STRING,
- DataTypeManager.DefaultDataTypes.OBJECT), DataTypeManager.getImplicitConversions(DataTypeManager.DefaultDataTypes.INTEGER));
- }
-
- @SuppressWarnings("unchecked")
- @Test(expected=TransformationException.class) public void testStringToXML() throws Exception {
- DataTypeManager.transformValue("hello", DataTypeManager.DefaultDataClasses.XML); //$NON-NLS-1$
- }
-
-}
Deleted: trunk/common-core/src/test/java/com/metamatrix/common/types/TestSQLXMLImpl.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/common/types/TestSQLXMLImpl.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/test/java/com/metamatrix/common/types/TestSQLXMLImpl.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,106 +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.common.types;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.sql.SQLException;
-
-import javax.xml.transform.stream.StreamSource;
-
-import junit.framework.TestCase;
-
-import com.metamatrix.core.util.ObjectConverterUtil;
-
-/**
- * Basically we want to make sure that nobody has changed the fundamental contract
- * of translator
- */
-public class TestSQLXMLImpl extends TestCase {
-
- String testStr = "<foo>test</foo>"; //$NON-NLS-1$
-
- //## JDBC4.0-begin ##
- public void testGetSource() throws Exception {
- SQLXMLImpl xml = new SQLXMLImpl(testStr);
- assertTrue(xml.getSource(null) instanceof StreamSource);
-
- StreamSource ss = (StreamSource)xml.getSource(null);
- assertEquals(testStr, new String(ObjectConverterUtil.convertToByteArray(ss.getInputStream()), Streamable.ENCODING));
- }
- //## JDBC4.0-end ##
-
- public void testGetCharacterStream() throws Exception {
- SQLXMLImpl xml = new SQLXMLImpl(testStr);
- assertEquals(testStr, getContents(xml.getCharacterStream()));
- }
-
- public void testGetBinaryStream() throws Exception {
- SQLXMLImpl xml = new SQLXMLImpl(testStr);
- assertEquals(testStr, new String(ObjectConverterUtil.convertToByteArray(xml.getBinaryStream()), Streamable.ENCODING));
- }
-
- public void testGetString() throws Exception {
- SQLXMLImpl xml = new SQLXMLImpl(testStr);
- assertEquals(testStr, xml.getString());
- }
-
- public void testSetBinaryStream() throws Exception {
- SQLXMLImpl xml = new SQLXMLImpl(testStr);
- try {
- xml.setBinaryStream();
- fail("we do not support this yet.."); //$NON-NLS-1$
- } catch (SQLException e) {
- }
- }
-
- public void testSetCharacterStream() throws Exception {
- SQLXMLImpl xml = new SQLXMLImpl(testStr);
- try {
- xml.setCharacterStream();
- fail("we do not support this yet.."); //$NON-NLS-1$
- } catch (SQLException e) {
- }
- }
-
- public void testSetString() throws Exception {
- SQLXMLImpl xml = new SQLXMLImpl(testStr);
- try {
- xml.setString(testStr);
- fail("we do not support this yet.."); //$NON-NLS-1$
- } catch (SQLException e) {
- }
- }
-
- private String getContents(Reader reader) throws IOException {
- StringBuffer sb = new StringBuffer();
- int chr = reader.read();
- while(chr != -1) {
- sb.append((char)chr);
- chr = reader.read();
- }
- reader.close();
- return sb.toString();
- }
-
-}
Deleted: trunk/common-core/src/test/java/com/metamatrix/common/types/TestXMLStreamSourceTranslator.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/common/types/TestXMLStreamSourceTranslator.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/test/java/com/metamatrix/common/types/TestXMLStreamSourceTranslator.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,99 +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.common.types;
-
-import java.io.StringReader;
-import java.util.StringTokenizer;
-
-import javax.xml.transform.stream.StreamSource;
-
-import junit.framework.TestCase;
-
-
-/**
- * XML StreamSource Translator.
- */
-public class TestXMLStreamSourceTranslator extends TestCase {
-
- private static final String sourceXML =
- "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + //$NON-NLS-1$
- "<Books:bookCollection xmlns:Books=\"http://www.metamatrix.com/XMLSchema/DataSets/Books\">\r\n" + //$NON-NLS-1$
- " <book isbn=\"0-7356-0877-6\">\r\n" + //$NON-NLS-1$
- " <title>After the Gold Rush</title>\r\n" + //$NON-NLS-1$
- " <subtitle>Creating a True Profession of Software Engineering</subtitle>\r\n" + //$NON-NLS-1$
- " <edition>1</edition>\r\n" + //$NON-NLS-1$
- " <authors>\r\n" + //$NON-NLS-1$
- " <author>McConnell</author>\r\n" + //$NON-NLS-1$
- " </authors>\r\n" + //$NON-NLS-1$
- " <publishingInformation>\r\n" + //$NON-NLS-1$
- " <publisher>Microsoft Press</publisher>\r\n" + //$NON-NLS-1$
- " <publishDate>1999</publishDate>\r\n" + //$NON-NLS-1$
- " </publishingInformation>\r\n" + //$NON-NLS-1$
- " </book>\r\n" + //$NON-NLS-1$
- " <book isbn=\"1-55615-484-4\">\r\n" + //$NON-NLS-1$
- " <title>Code Complete</title>\r\n" + //$NON-NLS-1$
- " <subtitle>A Practical Handbook of Software Construction</subtitle>\r\n" + //$NON-NLS-1$
- " <edition>1</edition>\r\n" + //$NON-NLS-1$
- " <authors>\r\n" + //$NON-NLS-1$
- " <author>McConnell</author>\r\n" + //$NON-NLS-1$
- " </authors>\r\n" + //$NON-NLS-1$
- " <publishingInformation>\r\n" + //$NON-NLS-1$
- " <publisher>Microsoft Press</publisher>\r\n" + //$NON-NLS-1$
- " <publishDate>1993</publishDate>\r\n" + //$NON-NLS-1$
- " </publishingInformation>\r\n" + //$NON-NLS-1$
- " </book>\r\n" + //$NON-NLS-1$
- " <book isbn=\"1-556-15900-5\">\r\n" + //$NON-NLS-1$
- " <title>Rapid Development</title>\r\n" + //$NON-NLS-1$
- " <subtitle>Taming Wild Software Schedules</subtitle>\r\n" + //$NON-NLS-1$
- " <edition>1</edition>\r\n" + //$NON-NLS-1$
- " <authors>\r\n" + //$NON-NLS-1$
- " <author>McConnell</author>\r\n" + //$NON-NLS-1$
- " </authors>\r\n" + //$NON-NLS-1$
- " <publishingInformation>\r\n" + //$NON-NLS-1$
- " <publisher>Microsoft Press</publisher>\r\n" + //$NON-NLS-1$
- " <publishDate>1996</publishDate>\r\n" + //$NON-NLS-1$
- " </publishingInformation>\r\n" + //$NON-NLS-1$
- " </book>\r\n" + //$NON-NLS-1$
- "</Books:bookCollection>"; //$NON-NLS-1$
-
- public void testStreamSourceWithStream() throws Exception {
- StandardXMLTranslator translator = new StandardXMLTranslator(new StreamSource(new StringReader(sourceXML)));
- compareDocuments(sourceXML, translator.getString());
- }
-
- private void compareDocuments(String expectedDoc, String actualDoc) {
- StringTokenizer tokens1 = new StringTokenizer(expectedDoc, "\r\n"); //$NON-NLS-1$
- StringTokenizer tokens2 = new StringTokenizer(actualDoc, "\n");//$NON-NLS-1$
- while(tokens1.hasMoreTokens()){
- String token1 = tokens1.nextToken().trim();
- if(!tokens2.hasMoreTokens()){
- fail("XML doc mismatch: expected=" + token1 + "\nactual=none");//$NON-NLS-1$ //$NON-NLS-2$
- }
- String token2 = tokens2.nextToken().trim();
- assertEquals("XML doc mismatch: ", token1, token2); //$NON-NLS-1$
- }
- if(tokens2.hasMoreTokens()){
- fail("XML doc mismatch: expected=none\nactual=" + tokens2.nextToken().trim());//$NON-NLS-1$
- }
- }
-}
Deleted: trunk/common-core/src/test/java/com/metamatrix/common/types/TestXMLValue.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/common/types/TestXMLValue.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/test/java/com/metamatrix/common/types/TestXMLValue.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,75 +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.common.types;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-
-import com.metamatrix.core.util.UnitTestUtil;
-
-import junit.framework.TestCase;
-
-
-public class TestXMLValue extends TestCase {
-
- public void testXMLValue() throws Exception {
- String testString = "<foo>this is an xml value test</foo>"; //$NON-NLS-1$
- SQLXMLImpl xml = new SQLXMLImpl(testString);
-
- XMLType xv = new XMLType(xml);
- assertEquals(testString, xv.getString());
- }
-
-
- public void testXMLValuePersistence() throws Exception {
- String testString = "<foo>this is an xml value test</foo>"; //$NON-NLS-1$
- SQLXMLImpl xml = new SQLXMLImpl(testString);
-
- String key = "keytodata"; //$NON-NLS-1$
- String pkey = "peresistkeytodata"; //$NON-NLS-1$
- XMLType xv = new XMLType(xml);
- xv.setReferenceStreamId(key);
-
- // now force to serialize
- File saved = new File(UnitTestUtil.getTestScratchPath()+"/xmlsaved.bin"); //$NON-NLS-1$
- ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(saved));
- out.writeObject(xv);
- out.close();
-
- // now read back the object from serilized state
- ObjectInputStream in = new ObjectInputStream(new FileInputStream(saved));
- XMLType read = (XMLType)in.readObject();
-
- // make sure we have kept the reference stream id
- assertEquals(key, read.getReferenceStreamId());
-
- // and lost the original object
- assertNull(read.getReference());
-
- saved.delete();
- }
-
-}
Deleted: trunk/common-core/src/test/java/com/metamatrix/common/util/FakeInputStream.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/common/util/FakeInputStream.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/test/java/com/metamatrix/common/util/FakeInputStream.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,68 +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.common.util;
-
-import java.io.ByteArrayInputStream;
-
-/**
- * This test input stream overrides the <code>available</code>
- * to return "1" until <i>after</i> the {@link #read} method returns
- * "-1" to indicate EOF, which is how java.util.zip.ZipInputStream
- * works, which is what is used by ExtensionSourceManager to retrieve
- * Class files from JAR files. The <code>available</code> method
- * therefore can't be relied on by ByteArrayHelper to either
- * indicate how many bytes can be read, or if more are
- * available or not. In the latter case, ByteArrayHelper
- * relies on the <code>read</code> method returning "-1".
- */
-public class FakeInputStream extends ByteArrayInputStream {
-
- private int available = 1;
-
- public FakeInputStream(byte[] buf) {
- super(buf);
- }
-
- /**
- * Overriden to return "1" <i>until</i> the <code>read</code> method
- * has returned "-1" to indicate EOF.
- */
- public int available(){
- super.available();
- return available;
- }
-
- /**
- * Overriden - basically calls to super method, but checks returned
- * number of bytes read; if "-1", then the next call to
- * {@link #available} will return "0".
- */
- public int read(byte b[], int off, int len) {
- int result = super.read(b, off, len);
- if (result<0){
- available = 0;
- }
- return result;
- }
-
-}
Deleted: trunk/common-core/src/test/java/com/metamatrix/common/util/TestPropertiesUtils.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/common/util/TestPropertiesUtils.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/test/java/com/metamatrix/common/util/TestPropertiesUtils.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,566 +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.common.util;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import junit.framework.TestCase;
-
-import com.metamatrix.common.util.PropertiesUtils.InvalidPropertyException;
-import com.metamatrix.core.util.UnitTestUtil;
-
-/**
- * Tests primarily the various cloning scenarios available with PropertiesUtils
- */
-public class TestPropertiesUtils extends TestCase {
-
- private final static String TEMP_FILE = UnitTestUtil.getTestScratchPath() + "/temp.properties"; //$NON-NLS-1$
-
-
-
- // ################################## FRAMEWORK ################################
-
- public TestPropertiesUtils(String name) {
- super(name);
- }
-
- public void tearDown() throws Exception{
- try {
- File temp = new File(TEMP_FILE);
- temp.delete();
- } catch (Exception e) {
- //ignore
- }
- }
-
-
- //===================================================================
- //ACTUAL TESTS
- //===================================================================
-
-
- /**
- * Tests {@link com.metamatrix.common.utils.PropertiesUtils#print(String, Properties, String header)}
- * and {@link com.metamatrix.common.utils.PropertiesUtils#load(String)}
- * and {@link com.metamatrix.common.utils.PropertiesUtils#loadHeader(String)}
- */
- public void testPrintLoadWithHeader() throws Exception {
- Properties props1 = make(MAP_C, null, !UNMODIFIABLE);
-
- //print to file
- PropertiesUtils.print(TEMP_FILE, props1, "header"); //$NON-NLS-1$
-
- //load from file
- Properties props2 = PropertiesUtils.load(TEMP_FILE);
- assertEquals("Expected props1 to be equal to props2", 0, PropertiesUtils.compare(props1, props2)); //$NON-NLS-1$
-
- String header = PropertiesUtils.loadHeader(TEMP_FILE);
- assertEquals("header", header); //$NON-NLS-1$
- }
-
-
- /**
- * Tests {@link com.metamatrix.common.utils.PropertiesUtils#print(String, Properties)}
- * and {@link com.metamatrix.common.utils.PropertiesUtils#load(String)}
- * and {@link com.metamatrix.common.utils.PropertiesUtils#loadHeader(String)}
- */
- public void testPrintLoadWithoutHeader() throws Exception {
- Properties props1 = make(MAP_C, null, !UNMODIFIABLE);
-
- //print to file
- PropertiesUtils.print(TEMP_FILE, props1);
-
- //load from file
- Properties props2 = PropertiesUtils.load(TEMP_FILE);
- assertEquals("Expected props1 to be equal to props2", 0, PropertiesUtils.compare(props1, props2)); //$NON-NLS-1$
- }
-
-
-
-
- // ################ putAll(Properties, Properties) ###########################
-
- public void testPutAllWithDefaults(){
- Properties c = make(MAP_C, null, !UNMODIFIABLE);
- Properties ab = make(MAP_A, make(MAP_B, null, UNMODIFIABLE), UNMODIFIABLE);
- PropertiesUtils.putAll(c, ab);
- assertTrue(verifyProps(c, LIST_ABC));
- }
-
- // ##################### clone(Properties) ###################################
-
- /**
- * Tests {@link com.metamatrix.common.utils.PropertiesUtils#clone(Properties)}
- */
- public void testSimpleModifiableClone(){
- Properties a = make(MAP_A, null, !UNMODIFIABLE);
- a = PropertiesUtils.clone(a);
- assertTrue(verifyProps(a, LIST_A));
- }
-
- /**
- * Tests {@link com.metamatrix.common.utils.PropertiesUtils#clone(Properties)}
- */
- public void testSimpleModifiableCloneWithUnmodifiableDefaults(){
- Properties ab = make(MAP_A, make(MAP_B, null, UNMODIFIABLE), !UNMODIFIABLE);
- ab = PropertiesUtils.clone(ab);
- assertTrue(verifyProps(ab, LIST_AB));
- }
-
- /**
- * Tests {@link com.metamatrix.common.utils.PropertiesUtils#clone(Properties)}
- */
- public void testSimpleModifiableCloneWithModifiableDefaults(){
- Properties ab = make(MAP_A, make(MAP_B, null, !UNMODIFIABLE), !UNMODIFIABLE);
- ab = PropertiesUtils.clone(ab);
- assertTrue(verifyProps(ab, LIST_AB));
- }
-
- // ##################### clone(Properties, boolean) ##########################
-
- /**
- * Tests {@link com.metamatrix.common.utils.PropertiesUtils#clone(Properties, boolean)}
- */
- public void testCloneModifiableAsModifiable(){
- Properties a = make(MAP_A, null, !UNMODIFIABLE);
- a = PropertiesUtils.clone(a);
- assertTrue(verifyProps(a, LIST_A));
- }
-
- /**
- * Tests {@link com.metamatrix.common.utils.PropertiesUtils#clone(Properties, boolean)}
- */
- public void testCloneUnmodifiableAsModifiable(){
- Properties a = make(MAP_A, null, UNMODIFIABLE);
- a = PropertiesUtils.clone(a);
- assertTrue(verifyProps(a, LIST_A));
- }
-
- /**
- * Tests {@link com.metamatrix.common.utils.PropertiesUtils#clone(Properties, boolean)}
- */
- public void testCloneModifiableWithModifiableAsModifiable(){
- Properties ab = make(MAP_A, make(MAP_B, null, !UNMODIFIABLE), !UNMODIFIABLE);
- ab = PropertiesUtils.clone(ab);
- assertTrue(verifyProps(ab, LIST_AB));
- }
-
- // ######## clone(Properties, Properties, boolean, boolean) ##################
-
- /**
- * Tests {@link com.metamatrix.common.utils.PropertiesUtils#clone(Properties, Properties, boolean, boolean)}
- */
- public void testCloneModAndModAsMod(){
- Properties a = make(MAP_A, null, !UNMODIFIABLE);
- Properties b = make(MAP_B, null, !UNMODIFIABLE);
- a = PropertiesUtils.clone(a, b, !DEEP_CLONE);
- assertTrue(verifyProps(a, LIST_AB));
- }
-
- /**
- * Tests {@link com.metamatrix.common.utils.PropertiesUtils#clone(Properties, Properties, boolean, boolean)}
- */
- public void testDeepcloneModAndModAsMod(){
- Properties a = make(MAP_A, null, !UNMODIFIABLE);
- Properties b = make(MAP_B, null, !UNMODIFIABLE);
- a = PropertiesUtils.clone(a, b, DEEP_CLONE);
- assertTrue(verifyProps(a, LIST_AB));
- }
-
- /**
- * Tests {@link com.metamatrix.common.utils.PropertiesUtils#clone(Properties, Properties, boolean, boolean)}
- */
- public void testCloneModAndUnmodAsMod(){
- Properties a = make(MAP_A, null, !UNMODIFIABLE);
- Properties b = make(MAP_B, null, UNMODIFIABLE);
- a = PropertiesUtils.clone(a, b, !DEEP_CLONE);
- assertTrue(verifyProps(a, LIST_AB));
- }
-
- /**
- * Tests {@link com.metamatrix.common.utils.PropertiesUtils#clone(Properties, Properties, boolean, boolean)}
- */
- public void testDeepcloneModAndUnmodAsMod(){
- Properties a = make(MAP_A, null, !UNMODIFIABLE);
- Properties b = make(MAP_B, null, UNMODIFIABLE);
- a = PropertiesUtils.clone(a, b, DEEP_CLONE);
- assertTrue(verifyProps(a, LIST_AB));
- }
-
- /**
- * Tests {@link com.metamatrix.common.utils.PropertiesUtils#clone(Properties, Properties, boolean, boolean)}
- */
- public void testCloneUnmodAndModAsMod(){
- Properties a = make(MAP_A, null, UNMODIFIABLE);
- Properties b = make(MAP_B, null, !UNMODIFIABLE);
- a = PropertiesUtils.clone(a, b, !DEEP_CLONE);
- assertTrue(verifyProps(a, LIST_AB));
- }
-
- /**
- * Tests {@link com.metamatrix.common.utils.PropertiesUtils#clone(Properties, Properties, boolean, boolean)}
- */
- public void testDeepcloneUnmodAndModAsMod(){
- Properties a = make(MAP_A, null, UNMODIFIABLE);
- Properties b = make(MAP_B, null, !UNMODIFIABLE);
- a = PropertiesUtils.clone(a, b, DEEP_CLONE);
- assertTrue(verifyProps(a, LIST_AB));
- }
-
- /**
- * Tests {@link com.metamatrix.common.utils.PropertiesUtils#clone(Properties, Properties, boolean, boolean)}
- */
- public void testCloneUnmodAndUnmodAsMod(){
- Properties a = make(MAP_A, null, UNMODIFIABLE);
- Properties b = make(MAP_B, null, UNMODIFIABLE);
- a = PropertiesUtils.clone(a, b, !DEEP_CLONE);
- assertTrue(verifyProps(a, LIST_AB));
- }
-
- /**
- * Tests {@link com.metamatrix.common.utils.PropertiesUtils#clone(Properties, Properties, boolean, boolean)}
- */
- public void testDeepcloneUnmodAndUnmodAsMod(){
- Properties a = make(MAP_A, null, UNMODIFIABLE);
- Properties b = make(MAP_B, null, UNMODIFIABLE);
- a = PropertiesUtils.clone(a, b, DEEP_CLONE);
- assertTrue(verifyProps(a, LIST_AB));
- }
-
- // ########################## ADVANCED #######################################
-
- //===================================================================
- //TESTS HELPERS
- //===================================================================
-
- /**
- * Checks the Properties against the static test data defined in this Class.
- * @param props Properties to check
- * @param chainOfMappings a List of Map objects in order of defaults. That is,
- * the first Map should represent the properties itself, the second Map the internal
- * defaults of the properties, the third Map the defaults of the second Map, and so on...
- * @return true or false for pass or fail
- */
- private static final boolean verifyProps(Properties props, List chainOfMappings){
- boolean result = verifyAllPropsPresent(props, chainOfMappings);
- if (result){
- result = verifyCorrectMappings(props, chainOfMappings);
- }
- return result;
- }
-
- /**
- * Check that the Set of all keys in the List<Map> chainOfMappings is present in props.
- * @param props Properties to check
- * @param chainOfMappings a List of Map objects in order of defaults. That is,
- * the first Map should represent the properties itself, the second Map the internal
- * defaults of the properties, the third Map the defaults of the second Map, and so on...
- * @return true all keys are present, false otherwise
- */
- private static final boolean verifyAllPropsPresent(Properties props, List chainOfMappings){
- Enumeration e = props.propertyNames();
- HashSet propNames = new HashSet();
- while (e.hasMoreElements()) {
- propNames.add( e.nextElement());
- }
-
- HashSet testNames = new HashSet();
- Iterator i = chainOfMappings.iterator();
- while (i.hasNext()) {
- Map aMapping = (Map) i.next();
- testNames.addAll(aMapping.keySet());
- }
- return propNames.containsAll(testNames);
- }
-
- /**
- * Verify that the Properties props correctly reflects the chain of mappings (which
- * simulate an arbitrary chain of Properties and default Properties). For each
- * property name, look in order through each Map in the List chainOfMappings to
- * see if (a) that property name is there, and (b) that it is mapped to the same
- * property. There are two conditions that will cause this method to returns
- * false: (1) if a property name maps to an incorrect, non-null value the first
- * time a mapping for that property name is found; (2) if no mapping is found at
- * for a property name.
- * @param props Properties to check
- * @param chainOfMappings a List of Map objects in order of defaults. That is,
- * the first Map should represent the properties itself, the second Map the internal
- * defaults of the properties, the third Map the defaults of the second Map, and so on...
- * @return true if props correctly reflects the chainOfMappings, false otherwise
- */
- private static final boolean verifyCorrectMappings(Properties props, List chainOfMappings){
- Enumeration e = props.propertyNames();
- boolean allGood = true;
- while (e.hasMoreElements() && allGood) {
- boolean foundKey = false;
- String propName = (String) e.nextElement();
- String propValue = props.getProperty(propName);
- Iterator i = chainOfMappings.iterator();
- while (i.hasNext() && !foundKey) {
- Map aMapping = (Map) i.next();
- Object value = aMapping.get(propName);
- if (value != null){
- foundKey = true;
- allGood = propValue.equals(value);
- }
- }
- }
- return allGood;
- }
-
- /**
- * Constructs a Properties object from the supplied Map of properties,
- * the supplied defaults, and optionally wraps the returned Properties
- * in an UnmodifiableProperties instance
- * @param mappings Map of String propName to String propValue
- * @param defaults optional default Properties; may be null
- * @param makeUnmodifiable If true, the returned Properties object will be
- * an instance of UnmodifiableProperties wrapping a Properties object
- */
- private static final Properties make(Map mappings, Properties defaults, boolean makeUnmodifiable){
- Properties props = null;
- if (defaults != null){
- props = new Properties(defaults);
- } else {
- props = new Properties();
- }
- Iterator i = mappings.entrySet().iterator();
- while (i.hasNext()) {
- Map.Entry anEntry = (Map.Entry) i.next();
- props.setProperty((String)anEntry.getKey(),(String)anEntry.getValue());
- }
- return props;
- }
-
- private static final boolean UNMODIFIABLE = true;
- private static final boolean DEEP_CLONE = true;
-
- private static final String PROP_NAME_1 = "prop1"; //$NON-NLS-1$
- private static final String PROP_NAME_2 = "prop2"; //$NON-NLS-1$
- private static final String PROP_NAME_3 = "prop3"; //$NON-NLS-1$
- private static final String PROP_NAME_4 = "prop4"; //$NON-NLS-1$
- private static final String PROP_NAME_5 = "prop5"; //$NON-NLS-1$
- private static final String PROP_NAME_6 = "prop6"; //$NON-NLS-1$
-
- //"a", "b", or "c" designates which of the test Properties
- //the values will go in
- private static final String PROP_VALUE_1A = "value1a"; //$NON-NLS-1$
- private static final String PROP_VALUE_1B = "value1b"; //$NON-NLS-1$
- private static final String PROP_VALUE_2A = "value2a"; //$NON-NLS-1$
- private static final String PROP_VALUE_2C = "value2c"; //$NON-NLS-1$
- private static final String PROP_VALUE_3A = "value3a"; //$NON-NLS-1$
- private static final String PROP_VALUE_4B = "value4b"; //$NON-NLS-1$
- private static final String PROP_VALUE_4C = "value4c"; //$NON-NLS-1$
- private static final String PROP_VALUE_5B = "value5b"; //$NON-NLS-1$
- private static final String PROP_VALUE_6C = "value6c"; //$NON-NLS-1$
-
- private static final Map MAP_A;
- private static final Map MAP_B;
- private static final Map MAP_C;
- private static final List LIST_A;
-// private static final List LIST_B;
- private static final List LIST_AB;
- private static final List LIST_ABC;
- static{
- //A
- Map temp = new HashMap();
- temp.put(PROP_NAME_1, PROP_VALUE_1A);
- temp.put(PROP_NAME_2, PROP_VALUE_2A);
- temp.put(PROP_NAME_3, PROP_VALUE_3A);
- MAP_A = Collections.unmodifiableMap(temp);
- //B
- temp = new HashMap();
- temp.put(PROP_NAME_1, PROP_VALUE_1B);
- temp.put(PROP_NAME_4, PROP_VALUE_4B);
- temp.put(PROP_NAME_5, PROP_VALUE_5B);
- MAP_B = Collections.unmodifiableMap(temp);
- //C
- temp = new HashMap();
- temp.put(PROP_NAME_2, PROP_VALUE_2C);
- temp.put(PROP_NAME_4, PROP_VALUE_4C);
- temp.put(PROP_NAME_6, PROP_VALUE_6C);
- MAP_C = Collections.unmodifiableMap(temp);
- //LISTS OF BINDINGS
- List tempList = new ArrayList(1);
- tempList.add(MAP_A);
- LIST_A = Collections.unmodifiableList(tempList);
- tempList = new ArrayList(1);
- tempList.add(MAP_B);
-// LIST_B = Collections.unmodifiableList(tempList);
- tempList = new ArrayList(2);
- tempList.add(MAP_A);
- tempList.add(MAP_B);
- LIST_AB = Collections.unmodifiableList(tempList);
- tempList = new ArrayList(3);
- tempList.add(MAP_A);
- tempList.add(MAP_B);
- tempList.add(MAP_C);
- LIST_ABC = Collections.unmodifiableList(tempList);
- }
-
- public void testNestedProperties() throws Exception {
- System.setProperty("testdirectory", "c:/metamatrix/testdirectory"); //$NON-NLS-1$ //$NON-NLS-2$
-
- Properties p = new Properties(System.getProperties());
- p.setProperty("key1", "value1"); //$NON-NLS-1$ //$NON-NLS-2$
- p.setProperty("key2", "${key1}/value2"); //$NON-NLS-1$ //$NON-NLS-2$
- p.put("key3", new Integer(-234)); //$NON-NLS-1$
- p.setProperty("key4", "${key2}/value4"); //$NON-NLS-1$ //$NON-NLS-2$
- p.setProperty("key5", "${testdirectory}/testdata"); //$NON-NLS-1$ //$NON-NLS-2$
- p.setProperty("key7", "anotherdir/${testdirectory}/${key1}"); //$NON-NLS-1$ //$NON-NLS-2$
- int currentSize = p.size();
-
- Properties m = PropertiesUtils.resolveNestedProperties(p);
- assertEquals("value1/value2", m.getProperty("key2")); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals(new Integer(-234), m.get("key3")); //$NON-NLS-1$
- assertEquals("value1/value2/value4", m.getProperty("key4")); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("c:/metamatrix/testdirectory/testdata", m.getProperty("key5")); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("anotherdir/c:/metamatrix/testdirectory/value1", m.getProperty("key7")); //$NON-NLS-1$ //$NON-NLS-2$
- assertTrue(p == m); // no cloning.
- assertTrue(currentSize == m.size());
-
- p.setProperty("key6", "${foo}"); //$NON-NLS-1$ //$NON-NLS-2$
-
- try {
- m = PropertiesUtils.resolveNestedProperties(p);
- fail("must have failed to resovle as {foo} does not exist"); //$NON-NLS-1$
- } catch(RuntimeException e) {
- // pass
- }
-
-
- // JIRA: TEIID-909 - The resolveNestedProperties logic goes in a loop when the key is also in the value as ${key}.
- Properties dups = new Properties();
- dups.setProperty("usethis", "${usethis}");
-
- dups = PropertiesUtils.resolveNestedProperties(dups);
-
-
-
- }
-
- public void testOverrideProperties() {
- Properties p = new Properties();
-
- p.setProperty("foo", "bar"); //$NON-NLS-1$ //$NON-NLS-2$
- p.setProperty("foo1", "bar1"); //$NON-NLS-1$ //$NON-NLS-2$
- p.setProperty("foo2", "bar2"); //$NON-NLS-1$ //$NON-NLS-2$
-
- Properties p1 = new Properties(p);
-
- p1.setProperty("foo", "x"); //$NON-NLS-1$ //$NON-NLS-2$
-
- PropertiesUtils.setOverrideProperies(p1, p);
-
- assertEquals("bar", p1.getProperty("foo")); //$NON-NLS-1$ //$NON-NLS-2$
-
- assertEquals(1, p1.size());
- }
-
- public void testGetInvalidInt() {
- Properties p = new Properties();
- p.setProperty("x", "y"); //$NON-NLS-1$ //$NON-NLS-2$
- try {
- PropertiesUtils.getIntProperty(p, "x", 1); //$NON-NLS-1$
- fail("expected exception"); //$NON-NLS-1$
- } catch (InvalidPropertyException e) {
- assertEquals("Property 'x' with value 'y' is not a valid Integer.", e.getMessage()); //$NON-NLS-1$
- }
- }
-
- static class Bean {
- private int prop;
- private String prop1;
- private double prop2;
- private List<String> prop3;
-
- public int getProp() {
- return prop;
- }
- public void setProp(int prop) {
- this.prop = prop;
- }
- public String getProp1() {
- return prop1;
- }
- public void setProp1(String prop1) {
- this.prop1 = prop1;
- }
- public double getProp2() {
- return prop2;
- }
- public void setProp2(double prop2) {
- this.prop2 = prop2;
- }
- public List<String> getProp3() {
- return prop3;
- }
- public void setProp3(List<String> prop3) {
- this.prop3 = prop3;
- }
- }
-
- public void testSetBeanProperties() {
- Bean bean = new Bean();
- Properties p = new Properties();
- p.setProperty("prop", "0"); //$NON-NLS-1$//$NON-NLS-2$
- p.setProperty("prop1", "1"); //$NON-NLS-1$ //$NON-NLS-2$
- p.setProperty("prop2", "2"); //$NON-NLS-1$ //$NON-NLS-2$
- p.setProperty("prop3", "3"); //$NON-NLS-1$ //$NON-NLS-2$
-
- p = new Properties(p);
- p.put("object", new Object()); //$NON-NLS-1$
-
- PropertiesUtils.setBeanProperties(bean, p, null);
-
- assertEquals(0, bean.getProp());
- assertEquals("1", bean.getProp1()); //$NON-NLS-1$
- assertEquals(2d, bean.getProp2());
- assertEquals(Arrays.asList("3"), bean.getProp3()); //$NON-NLS-1$
-
- p.setProperty("prop", "?"); //$NON-NLS-1$ //$NON-NLS-2$
-
- try {
- PropertiesUtils.setBeanProperties(bean, p, null);
- fail("expected exception"); //$NON-NLS-1$
- } catch (InvalidPropertyException e) {
-
- }
- }
-
- public void testGetInt() {
- Properties p = new Properties();
- p.setProperty("prop", "0 "); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals(PropertiesUtils.getIntProperty(p, "prop", -1), 0); //$NON-NLS-1$
- }
-}
Deleted: trunk/common-core/src/test/java/com/metamatrix/common/util/TestReaderInputStream.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/common/util/TestReaderInputStream.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/test/java/com/metamatrix/common/util/TestReaderInputStream.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,70 +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.common.util;
-
-import java.io.FileInputStream;
-import java.io.FileReader;
-import java.io.StringReader;
-import java.nio.charset.Charset;
-
-import junit.framework.TestCase;
-
-import com.metamatrix.common.util.ReaderInputStream;
-import com.metamatrix.core.util.UnitTestUtil;
-
-public class TestReaderInputStream extends TestCase {
-
- public void testUTF8() throws Exception {
- FileInputStream fis = new FileInputStream(UnitTestUtil.getTestDataFile("legal_notice.xml")); //$NON-NLS-1$
- ReaderInputStream ris = new ReaderInputStream(new FileReader(UnitTestUtil.getTestDataFile("legal_notice.xml")), Charset.forName("UTF-8")); //$NON-NLS-1$ //$NON-NLS-2$
-
- int value;
- while (true) {
- value = fis.read();
- assertEquals(value, ris.read());
- if (value == -1) {
- break;
- }
- }
- }
-
- //the encoding strategy is roughly equivalent to utf-16
- public void testUTF16() throws Exception {
- String actual = "!?abc"; //$NON-NLS-1$
- ReaderInputStream ris = new ReaderInputStream(new StringReader(actual), Charset.forName("UTF-16"), 1); //$NON-NLS-1$
- byte[] result = new byte[(actual.length()) * 2 + 2];
- ris.read(result);
- String resultString = new String(result, "UTF-16"); //$NON-NLS-1$
- assertEquals(resultString, actual);
- }
-
- public void testASCII() throws Exception {
- String actual = "!?abc"; //$NON-NLS-1$
- ReaderInputStream ris = new ReaderInputStream(new StringReader(actual), Charset.forName("US-ASCII"), 1); //$NON-NLS-1$
- byte[] result = new byte[actual.length()];
- ris.read(result);
- String resultString = new String(result, "US-ASCII"); //$NON-NLS-1$
- assertEquals(resultString, actual);
- }
-
-}
Deleted: trunk/common-core/src/test/java/com/metamatrix/common/util/TestSqlUtil.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/common/util/TestSqlUtil.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/test/java/com/metamatrix/common/util/TestSqlUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,92 +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.common.util;
-
-import junit.framework.TestCase;
-
-/**
- */
-public class TestSqlUtil extends TestCase {
-
- public TestSqlUtil(String name) {
- super(name);
- }
-
- public void helpTest(String sql, boolean isUpdate) {
- boolean actual = SqlUtil.isUpdateSql(sql);
- assertEquals(isUpdate, actual);
- }
-
- public void testSelect() {
- helpTest("SELECT x FROM y", false); //$NON-NLS-1$
- }
-
- public void testInsert() {
- helpTest("Insert INTO g (a) VALUES (1)", true); //$NON-NLS-1$
- }
-
- public void testUpdate() {
- helpTest("upDate x set a=5", true); //$NON-NLS-1$
- }
-
- public void testDelete() {
- helpTest("delete FROM x", true); //$NON-NLS-1$
- }
-
- public void testInsertWithWhitespace() {
- helpTest("\nINSERT INTO g (a) VALUES (1)", true); //$NON-NLS-1$
- }
-
- public void testExec() {
- helpTest("exec sq1()", false); //$NON-NLS-1$
- }
-
- public void testXquery() {
- helpTest("<i/>", false); //$NON-NLS-1$
- }
-
- public void testSelectInto1() {
- helpTest("SELECT x INTO z FROM y", true); //$NON-NLS-1$
- }
-
- public void testSelectInto2() {
- helpTest("SELECT x, INTOz FROM y", false); //$NON-NLS-1$
- }
-
- public void testSelectInto3() {
- helpTest("SELECT x into z FROM y", true); //$NON-NLS-1$
- }
-
- public void testSelectInto4() {
- helpTest("SELECT x into z", true); //$NON-NLS-1$
- }
-
- public void testCreate() {
- helpTest(" create table x", true); //$NON-NLS-1$
- }
-
- public void testDrop() {
- helpTest("/* */ drop table x", true); //$NON-NLS-1$
- }
-
-}
Deleted: trunk/common-core/src/test/java/com/metamatrix/common/util/TestTimestampWithTimezone.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/common/util/TestTimestampWithTimezone.java 2010-05-11 21:30:12 UTC (rev 2114)
+++ trunk/common-core/src/test/java/com/metamatrix/common/util/TestTimestampWithTimezone.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,217 +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.common.util;
-
-import java.sql.Date;
-import java.sql.Time;
-import java.sql.Timestamp;
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.TimeZone;
-
-import junit.framework.TestCase;
-
-public class TestTimestampWithTimezone extends TestCase {
-
- /**
- * Constructor for TestTimestampWithTimezone.
- *
- * @param name
- */
- public TestTimestampWithTimezone(String name) {
- super(name);
- }
-
- public void setUp() {
- TimestampWithTimezone.resetCalendar(TimeZone.getTimeZone("America/Chicago")); //$NON-NLS-1$
- }
-
- public void tearDown() {
- TimestampWithTimezone.resetCalendar(null);
- }
-
- /**
- * Ensures that the same calendar fields in different timezones (initially different UTC) can be converted to the same UTC in
- * the local time zone
- *
- * @param startts
- * @param startnanos
- * @param starttz
- * @param endtz
- * @since 4.3
- */
- public void helpTestSame(String startts,
- int startnanos,
- String starttz,
- String endtz) {
- try {
- Timestamp start = getTimestamp(startts, startnanos, starttz);
- Timestamp end = getTimestamp(startts, startnanos, endtz);
-
- assertFalse("Initial timestamps should be different UTC times", start.getTime() == end.getTime()); //$NON-NLS-1$
-
- assertEquals(TimestampWithTimezone.createTimestamp(start, TimeZone.getTimeZone(starttz), Calendar.getInstance())
- .getTime(), TimestampWithTimezone.createTimestamp(end,
- TimeZone.getTimeZone(endtz),
- Calendar.getInstance()).getTime());
- } catch (ParseException e) {
- fail(e.toString());
- }
- }
-
- /**
- * Assuming local time zone of -06:00, change ts to endtz and compare to expected
- *
- * @param ts
- * @param endtz
- * @since 4.3
- */
- public void helpTestChange(String ts,
- String endtz,
- String expected) {
- Timestamp start = Timestamp.valueOf(ts);
- Calendar target = Calendar.getInstance(TimeZone.getTimeZone(endtz));
- assertEquals(expected,
- TimestampWithTimezone.createTimestamp(start, TimeZone.getTimeZone("America/Chicago"), target).toString()); //$NON-NLS-1$
- }
-
- /**
- * @param startts
- * @param startnanos
- * @param starttz
- * @throws ParseException
- * @since 4.3
- */
- private Timestamp getTimestamp(String startts,
- int startnanos,
- String starttz) throws ParseException {
- DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //$NON-NLS-1$
- df.setTimeZone(TimeZone.getTimeZone(starttz));
-
- Timestamp ts = new Timestamp(df.parse(startts).getTime());
- ts.setNanos(startnanos);
- return ts;
- }
-
- public void testDST() {
- helpTestSame("2005-10-30 02:39:10", 1, "America/Chicago", //$NON-NLS-1$ //$NON-NLS-2$
- "GMT-05:00"); //$NON-NLS-1$
-
- // ambiguous times are defaulted to standard time equivalent
- helpTestSame("2005-10-30 01:39:10", 1, "America/Chicago", //$NON-NLS-1$ //$NON-NLS-2$
- "GMT"); //$NON-NLS-1$
-
- // test to ensure a time not representable in DST is converted correctly
- helpTestSame("2005-04-03 02:39:10", 1, "GMT", //$NON-NLS-1$ //$NON-NLS-2$
- "America/Chicago"); //$NON-NLS-1$
-
- //expected is in DST
- helpTestChange("2005-10-30 02:39:10.1", "GMT", "2005-10-29 21:39:10.1"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- //expected is in standard time
- helpTestChange("2005-10-30 10:39:10.1", "GMT", "2005-10-30 04:39:10.1"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- }
-
- public void testTimezone() {
- helpTestSame("2004-06-29 15:39:10", 1, "GMT-06:00", //$NON-NLS-1$ //$NON-NLS-2$
- "GMT-05:00"); //$NON-NLS-1$
- }
-
- public void testTimezone2() {
- helpTestSame("2004-06-29 15:39:10", 1, "GMT-08:00", //$NON-NLS-1$ //$NON-NLS-2$
- "GMT-06:00"); //$NON-NLS-1$
- }
-
- public void testTimezone3() {
- helpTestSame("2004-08-31 18:25:54", 1, "Europe/London", //$NON-NLS-1$ //$NON-NLS-2$
- "GMT"); //$NON-NLS-1$
- }
-
- public void testTimezoneOverMidnight() {
- helpTestSame("2004-06-30 23:39:10", 1, "America/Los_Angeles", //$NON-NLS-1$ //$NON-NLS-2$
- "America/Chicago"); //$NON-NLS-1$
- }
-
- public void testCase2852() {
- helpTestSame("2005-05-17 22:35:33", 508659, "GMT", //$NON-NLS-1$ //$NON-NLS-2$
- "America/New_York"); //$NON-NLS-1$
- }
-
- public void testCreateDate() {
- Timestamp t = Timestamp.valueOf("2004-06-30 23:39:10.1201"); //$NON-NLS-1$
- Date date = TimestampWithTimezone.createDate(t);
-
- Calendar cal = Calendar.getInstance();
-
- cal.setTimeInMillis(date.getTime());
-
- assertEquals(cal.get(Calendar.HOUR_OF_DAY), 0);
- assertEquals(cal.get(Calendar.MINUTE), 0);
- assertEquals(cal.get(Calendar.SECOND), 0);
- assertEquals(cal.get(Calendar.MILLISECOND), 0);
- assertEquals(cal.get(Calendar.YEAR), 2004);
- assertEquals(cal.get(Calendar.MONTH), Calendar.JUNE);
- assertEquals(cal.get(Calendar.DATE), 30);
- }
-
- public void testCreateTime() {
- Timestamp t = Timestamp.valueOf("2004-06-30 23:39:10.1201"); //$NON-NLS-1$
- Time date = TimestampWithTimezone.createTime(t);
-
- Calendar cal = Calendar.getInstance();
-
- cal.setTimeInMillis(date.getTime());
-
- assertEquals(cal.get(Calendar.HOUR_OF_DAY), 23);
- assertEquals(cal.get(Calendar.MINUTE), 39);
- assertEquals(cal.get(Calendar.SECOND), 10);
- assertEquals(cal.get(Calendar.MILLISECOND), 0);
- assertEquals(cal.get(Calendar.YEAR), 1970);
- assertEquals(cal.get(Calendar.MONTH), Calendar.JANUARY);
- assertEquals(cal.get(Calendar.DATE), 1);
- }
-
- /**
- * Even though the id of the timezones are different, this should not change the result
- */
- public void testDateToDateConversion() {
- Date t = Date.valueOf("2004-06-30"); //$NON-NLS-1$
- Date converted = TimestampWithTimezone.createDate(t, TimeZone.getTimeZone("America/Chicago"), Calendar.getInstance(TimeZone.getTimeZone("US/Central"))); //$NON-NLS-1$ //$NON-NLS-2$
-
- assertEquals(t.getTime(), converted.getTime());
- }
-
- public void testDateToDateConversion1() {
- Date t = Date.valueOf("2004-06-30"); //$NON-NLS-1$
- Date converted = TimestampWithTimezone.createDate(t, TimeZone.getTimeZone("America/Chicago"), Calendar.getInstance(TimeZone.getTimeZone("GMT"))); //$NON-NLS-1$ //$NON-NLS-2$
-
- Calendar cal = Calendar.getInstance();
- cal.setTime(converted);
-
- assertEquals(0, cal.get(Calendar.MILLISECOND));
- }
-
-}
\ No newline at end of file
Copied: trunk/common-core/src/test/java/org/teiid/api/exception (from rev 2112, trunk/common-core/src/test/java/com/metamatrix/api/exception)
Deleted: trunk/common-core/src/test/java/org/teiid/api/exception/TestExceptionHolder.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/api/exception/TestExceptionHolder.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/api/exception/TestExceptionHolder.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,104 +0,0 @@
-package com.metamatrix.api.exception;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.sql.SQLException;
-import java.util.ArrayList;
-
-import junit.framework.TestCase;
-
-import org.junit.Test;
-
-import com.metamatrix.core.MetaMatrixRuntimeException;
-import com.metamatrix.core.util.ReflectionHelper;
-import com.metamatrix.core.util.UnitTestUtil;
-
-public class TestExceptionHolder extends TestCase {
-
- //## JDBC4.0-begin ##
- @SuppressWarnings("all")
- public static class BadException extends MetaMatrixProcessingException {
- private Object obj;
- public BadException(String msg) {super(msg);}
- public BadException(Object obj) {
- this.obj = obj;
- }
- }
-
- @Test public void testDeserializationUnknownException() throws Exception {
- ClassLoader cl = new URLClassLoader(new URL[] {UnitTestUtil.getTestDataFile("test.jar").toURI().toURL()}); //$NON-NLS-1$
- Object obj = ReflectionHelper.create("test.Test", null, cl); //$NON-NLS-1$
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(baos);
- oos.writeObject(new ExceptionHolder(new BadException(obj)));
- oos.flush();
-
- ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
- ExceptionHolder holder = (ExceptionHolder)ois.readObject();
- assertTrue(holder.getException() instanceof BadException);
- assertEquals("Remote exception: null ... Original type hierarchy [com.metamatrix.api.exception.TestExceptionHolder$BadException, com.metamatrix.api.exception.MetaMatrixProcessingException, com.metamatrix.api.exception.MetaMatrixException, com.metamatrix.core.MetaMatrixCoreException].", holder.getException().getMessage()); //$NON-NLS-1$
- }
-
-
- @SuppressWarnings("all")
- public static class BadException2 extends MetaMatrixProcessingException {
- public BadException2(String msg) {
- super(msg);
- }
- public BadException2(Throwable e, String msg) {
- super(e, msg);
- }
- }
-
- @Test public void testDeserializationUnknownChildException() throws Exception {
- ClassLoader cl = new URLClassLoader(new URL[] {UnitTestUtil.getTestDataFile("test.jar").toURI().toURL()}); //$NON-NLS-1$
- Exception obj = (Exception)ReflectionHelper.create("test.UnknownException", null, cl); //$NON-NLS-1$
- obj.initCause(new SQLException("something bad happended")); //$NON-NLS-1$
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(baos);
- oos.writeObject(new ExceptionHolder(new BadException2(obj, "I have foreign exception embedded in me"))); //$NON-NLS-1$
- oos.flush();
-
- ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
- ExceptionHolder holder = (ExceptionHolder)ois.readObject();
- Throwable e = holder.getException();
- assertTrue(e instanceof BadException2);
- assertEquals("Remote exception: I have foreign exception embedded in me ... Original type hierarchy [com.metamatrix.api.exception.TestExceptionHolder$BadException2, com.metamatrix.api.exception.MetaMatrixProcessingException, com.metamatrix.api.exception.MetaMatrixException, com.metamatrix.core.MetaMatrixCoreException].", e.getMessage()); //$NON-NLS-1$
-
- // now unknown exception is not found, so promote known SQL exception up
- e = e.getCause();
- assertTrue(e instanceof SQLException);
- assertEquals("Remote exception: something bad happended ... Original type hierarchy [java.sql.SQLException].", e.getMessage()); //$NON-NLS-1$
- }
-
- @Test public void testDeserializationUnknownChildException2() throws Exception {
- ClassLoader cl = new URLClassLoader(new URL[] {UnitTestUtil.getTestDataFile("test.jar").toURI().toURL()}); //$NON-NLS-1$
- ArrayList<String> args = new ArrayList<String>();
- args.add("Unknown Exception"); //$NON-NLS-1$
- Exception obj = (Exception)ReflectionHelper.create("test.UnknownException", args, cl); //$NON-NLS-1$
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(baos);
- oos.writeObject(new ExceptionHolder(obj));
- oos.flush();
-
- ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
- ExceptionHolder holder = (ExceptionHolder)ois.readObject();
- Throwable e = holder.getException();
- assertTrue(e instanceof MetaMatrixRuntimeException);
- assertEquals("Unknown Exception", e.getMessage()); //$NON-NLS-1$
- }
- //## JDBC4.0-end ##
-
- /*## JDBC3.0-JDK1.5-begin ##
- public void testPass(){
- // since the jar files required are built with 1.6, it will always fail, so just comment the test for 1.5
- }
- ## JDBC3.0-JDK1.5-end ##*/
-}
Deleted: trunk/common-core/src/test/java/org/teiid/api/exception/TestMetaMatrixException.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/api/exception/TestMetaMatrixException.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/api/exception/TestMetaMatrixException.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,98 +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.api.exception;
-
-import junit.framework.TestCase;
-
-/**
- * Tests the children Iterator of the MetaMatrixException. Primarily it does
- * this by comparing two Lists for equality: one List is created by Iterating
- * using the
- * {@link com.metamatrix.api.exception.MetaMatrixException#getChildren Iterator},
- * the other List is created by manually using the
- * {@link com.metamatrix.api.exception.MetaMatrixException#getChild getChild}
- * method recursively.
- */
-public class TestMetaMatrixException extends TestCase {
-
- // ################################## FRAMEWORK ################################
-
- public TestMetaMatrixException(String name) {
- super(name);
- }
-
- // ################################## ACTUAL TESTS ################################
-
- public void testFailMetaMatrixExceptionWithNullMessage() {
- Throwable e = null;
- try {
- new MetaMatrixException((String)null); // should throw NPE
- fail("Should not get here"); //$NON-NLS-1$
- } catch ( Throwable ex ) {
- e = ex;
- }
- assertNotNull(e);
- }
-
- public void testMetaMatrixExceptionWithNullThrowable() {
- final MetaMatrixException err = new MetaMatrixException((Throwable)null);
- assertNull(err.getChild());
- assertNull(err.getCode());
- assertNull(err.getMessage());
-
- }
-
- public void testMetaMatrixExceptionWithMessage() {
- final MetaMatrixException err = new MetaMatrixException("Test"); //$NON-NLS-1$
- assertNull(err.getChild());
- assertNull(err.getCode());
- assertEquals("Test", err.getMessage()); //$NON-NLS-1$
-
- }
-
- public void testMetaMatrixExceptionWithCodeAndMessage() {
- final MetaMatrixException err = new MetaMatrixException("Code", "Test"); //$NON-NLS-1$ //$NON-NLS-2$
- assertNull(err.getChild());
- assertEquals("Code", err.getCode()); //$NON-NLS-1$
- assertEquals("Error Code:Code Message:Test", err.getMessage()); //$NON-NLS-1$
-
- }
-
- public void testMetaMatrixExceptionWithExceptionAndMessage() {
- final MetaMatrixException child = new MetaMatrixException("propertyValuePhrase", "Child"); //$NON-NLS-1$ //$NON-NLS-2$
- final MetaMatrixException err = new MetaMatrixException(child, "Test"); //$NON-NLS-1$
- assertSame(child, err.getChild());
- assertEquals("propertyValuePhrase", err.getCode()); //$NON-NLS-1$
- assertEquals("Error Code:propertyValuePhrase Message:Test", err.getMessage()); //$NON-NLS-1$
-
- }
-
- public void testMetaMatrixExceptionWithExceptionAndCodeAndMessage() {
- final MetaMatrixException child = new MetaMatrixException("propertyValuePhrase", "Child"); //$NON-NLS-1$ //$NON-NLS-2$
- final MetaMatrixException err = new MetaMatrixException(child, "Code", "Test"); //$NON-NLS-1$ //$NON-NLS-2$
- assertSame(child, err.getChild());
- assertEquals("Code", err.getCode()); //$NON-NLS-1$
- assertEquals("Error Code:Code Message:Test", err.getMessage()); //$NON-NLS-1$
-
- }
-}
Deleted: trunk/common-core/src/test/java/org/teiid/api/exception/TestMetaMatrixRuntimeException.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/api/exception/TestMetaMatrixRuntimeException.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/api/exception/TestMetaMatrixRuntimeException.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -1,107 +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.
- */
-
-/*
- * Date: Sep 25, 2003
- * Time: 1:18:10 PM
- */
-package com.metamatrix.api.exception;
-
-import junit.framework.TestCase;
-
-import com.metamatrix.core.MetaMatrixRuntimeException;
-
-/**
- * JUnit test for MetaMatrixRuntimeException
- */
-public final class TestMetaMatrixRuntimeException extends TestCase {
- // =========================================================================
- // F R A M E W O R K
- // =========================================================================
- /**
- * Constructor for TestMetaMatrixRuntimeException.
- * @param name
- */
- public TestMetaMatrixRuntimeException(final String name) {
- super(name);
- }
-
- // =========================================================================
- // T E S T C A S E S
- // =========================================================================
-
- public void testFailMetaMatrixRuntimeExceptionWithNullMessage() {
- Throwable e = null;
- try {
- new MetaMatrixRuntimeException((String)null); // should throw NPE
- fail("Should not get here"); //$NON-NLS-1$
- } catch ( Throwable ex ) {
- e = ex;
- }
- assertNotNull(e);
- }
-
- public void testMetaMatrixRuntimeExceptionWithNullThrowable() {
- final MetaMatrixRuntimeException err = new MetaMatrixRuntimeException((Throwable)null);
- assertNull(err.getChild());
- assertEquals("0", err.getCode()); //$NON-NLS-1$
- assertNull(err.getMessage());
-
- }
-
- public void testMetaMatrixRuntimeExceptionWithMessage() {
- final MetaMatrixRuntimeException err = new MetaMatrixRuntimeException("Test"); //$NON-NLS-1$
- assertNull(err.getChild());
- assertEquals("0", err.getCode()); //$NON-NLS-1$
- assertEquals("Test", err.getMessage()); //$NON-NLS-1$
-
- }
-
- public void testMetaMatrixRuntimeExceptionWithCodeAndMessage() {
- final String code = "1234"; //$NON-NLS-1$
- final MetaMatrixRuntimeException err = new MetaMatrixRuntimeException(code, "Test"); //$NON-NLS-1$
- assertNull(err.getChild());
- assertEquals(code, err.getCode());
- assertEquals("Test", err.getMessage()); //$NON-NLS-1$
-
- }
-
- public void testMetaMatrixRuntimeExceptionWithExceptionAndMessage() {
- final String code = "1234"; //$NON-NLS-1$
- final MetaMatrixRuntimeException child = new MetaMatrixRuntimeException(code, "Child"); //$NON-NLS-1$
- final MetaMatrixRuntimeException err = new MetaMatrixRuntimeException(child, "Test"); //$NON-NLS-1$
- assertSame(child, err.getChild());
- assertEquals(code, err.getCode());
- assertEquals("Test", err.getMessage()); //$NON-NLS-1$
-
- }
-
- public void testMetaMatrixRuntimeExceptionWithExceptionAndCodeAndMessage() {
- final String code = "1234"; //$NON-NLS-1$
- final MetaMatrixRuntimeException child = new MetaMatrixRuntimeException(code, "Child"); //$NON-NLS-1$
- final MetaMatrixRuntimeException err = new MetaMatrixRuntimeException(child, "Code", "Test"); //$NON-NLS-1$ //$NON-NLS-2$
- assertSame(child, err.getChild());
- assertEquals("Code", err.getCode()); //$NON-NLS-1$
- assertEquals("Test", err.getMessage()); //$NON-NLS-1$
-
- }
-}
\ No newline at end of file
Added: trunk/common-core/src/test/java/org/teiid/core/TestMetaMatrixException.java
===================================================================
--- trunk/common-core/src/test/java/org/teiid/core/TestMetaMatrixException.java (rev 0)
+++ trunk/common-core/src/test/java/org/teiid/core/TestMetaMatrixException.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,100 @@
+/*
+ * 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 org.teiid.core;
+
+import org.teiid.core.TeiidException;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests the children Iterator of the MetaMatrixException. Primarily it does
+ * this by comparing two Lists for equality: one List is created by Iterating
+ * using the
+ * {@link org.teiid.core.TeiidException#getChildren Iterator},
+ * the other List is created by manually using the
+ * {@link org.teiid.core.TeiidException#getChild getChild}
+ * method recursively.
+ */
+public class TestMetaMatrixException extends TestCase {
+
+ // ################################## FRAMEWORK ################################
+
+ public TestMetaMatrixException(String name) {
+ super(name);
+ }
+
+ // ################################## ACTUAL TESTS ################################
+
+ public void testFailMetaMatrixExceptionWithNullMessage() {
+ Throwable e = null;
+ try {
+ new TeiidException((String)null); // should throw NPE
+ fail("Should not get here"); //$NON-NLS-1$
+ } catch ( Throwable ex ) {
+ e = ex;
+ }
+ assertNotNull(e);
+ }
+
+ public void testMetaMatrixExceptionWithNullThrowable() {
+ final TeiidException err = new TeiidException((Throwable)null);
+ assertNull(err.getChild());
+ assertNull(err.getCode());
+ assertNull(err.getMessage());
+
+ }
+
+ public void testMetaMatrixExceptionWithMessage() {
+ final TeiidException err = new TeiidException("Test"); //$NON-NLS-1$
+ assertNull(err.getChild());
+ assertNull(err.getCode());
+ assertEquals("Test", err.getMessage()); //$NON-NLS-1$
+
+ }
+
+ public void testMetaMatrixExceptionWithCodeAndMessage() {
+ final TeiidException err = new TeiidException("Code", "Test"); //$NON-NLS-1$ //$NON-NLS-2$
+ assertNull(err.getChild());
+ assertEquals("Code", err.getCode()); //$NON-NLS-1$
+ assertEquals("Error Code:Code Message:Test", err.getMessage()); //$NON-NLS-1$
+
+ }
+
+ public void testMetaMatrixExceptionWithExceptionAndMessage() {
+ final TeiidException child = new TeiidException("propertyValuePhrase", "Child"); //$NON-NLS-1$ //$NON-NLS-2$
+ final TeiidException err = new TeiidException(child, "Test"); //$NON-NLS-1$
+ assertSame(child, err.getChild());
+ assertEquals("propertyValuePhrase", err.getCode()); //$NON-NLS-1$
+ assertEquals("Error Code:propertyValuePhrase Message:Test", err.getMessage()); //$NON-NLS-1$
+
+ }
+
+ public void testMetaMatrixExceptionWithExceptionAndCodeAndMessage() {
+ final TeiidException child = new TeiidException("propertyValuePhrase", "Child"); //$NON-NLS-1$ //$NON-NLS-2$
+ final TeiidException err = new TeiidException(child, "Code", "Test"); //$NON-NLS-1$ //$NON-NLS-2$
+ assertSame(child, err.getChild());
+ assertEquals("Code", err.getCode()); //$NON-NLS-1$
+ assertEquals("Error Code:Code Message:Test", err.getMessage()); //$NON-NLS-1$
+
+ }
+}
Added: trunk/common-core/src/test/java/org/teiid/core/TestMetaMatrixRuntimeException.java
===================================================================
--- trunk/common-core/src/test/java/org/teiid/core/TestMetaMatrixRuntimeException.java (rev 0)
+++ trunk/common-core/src/test/java/org/teiid/core/TestMetaMatrixRuntimeException.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,108 @@
+/*
+ * 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.
+ */
+
+/*
+ * Date: Sep 25, 2003
+ * Time: 1:18:10 PM
+ */
+package org.teiid.core;
+
+import org.teiid.core.TeiidRuntimeException;
+
+import junit.framework.TestCase;
+
+
+/**
+ * JUnit test for MetaMatrixRuntimeException
+ */
+public final class TestMetaMatrixRuntimeException extends TestCase {
+ // =========================================================================
+ // F R A M E W O R K
+ // =========================================================================
+ /**
+ * Constructor for TestMetaMatrixRuntimeException.
+ * @param name
+ */
+ public TestMetaMatrixRuntimeException(final String name) {
+ super(name);
+ }
+
+ // =========================================================================
+ // T E S T C A S E S
+ // =========================================================================
+
+ public void testFailMetaMatrixRuntimeExceptionWithNullMessage() {
+ Throwable e = null;
+ try {
+ new TeiidRuntimeException((String)null); // should throw NPE
+ fail("Should not get here"); //$NON-NLS-1$
+ } catch ( Throwable ex ) {
+ e = ex;
+ }
+ assertNotNull(e);
+ }
+
+ public void testMetaMatrixRuntimeExceptionWithNullThrowable() {
+ final TeiidRuntimeException err = new TeiidRuntimeException((Throwable)null);
+ assertNull(err.getChild());
+ assertEquals("0", err.getCode()); //$NON-NLS-1$
+ assertNull(err.getMessage());
+
+ }
+
+ public void testMetaMatrixRuntimeExceptionWithMessage() {
+ final TeiidRuntimeException err = new TeiidRuntimeException("Test"); //$NON-NLS-1$
+ assertNull(err.getChild());
+ assertEquals("0", err.getCode()); //$NON-NLS-1$
+ assertEquals("Test", err.getMessage()); //$NON-NLS-1$
+
+ }
+
+ public void testMetaMatrixRuntimeExceptionWithCodeAndMessage() {
+ final String code = "1234"; //$NON-NLS-1$
+ final TeiidRuntimeException err = new TeiidRuntimeException(code, "Test"); //$NON-NLS-1$
+ assertNull(err.getChild());
+ assertEquals(code, err.getCode());
+ assertEquals("Test", err.getMessage()); //$NON-NLS-1$
+
+ }
+
+ public void testMetaMatrixRuntimeExceptionWithExceptionAndMessage() {
+ final String code = "1234"; //$NON-NLS-1$
+ final TeiidRuntimeException child = new TeiidRuntimeException(code, "Child"); //$NON-NLS-1$
+ final TeiidRuntimeException err = new TeiidRuntimeException(child, "Test"); //$NON-NLS-1$
+ assertSame(child, err.getChild());
+ assertEquals(code, err.getCode());
+ assertEquals("Test", err.getMessage()); //$NON-NLS-1$
+
+ }
+
+ public void testMetaMatrixRuntimeExceptionWithExceptionAndCodeAndMessage() {
+ final String code = "1234"; //$NON-NLS-1$
+ final TeiidRuntimeException child = new TeiidRuntimeException(code, "Child"); //$NON-NLS-1$
+ final TeiidRuntimeException err = new TeiidRuntimeException(child, "Code", "Test"); //$NON-NLS-1$ //$NON-NLS-2$
+ assertSame(child, err.getChild());
+ assertEquals("Code", err.getCode()); //$NON-NLS-1$
+ assertEquals("Test", err.getMessage()); //$NON-NLS-1$
+
+ }
+}
\ No newline at end of file
Copied: trunk/common-core/src/test/java/org/teiid/core/crypto (from rev 2112, trunk/common-core/src/test/java/com/metamatrix/common/util/crypto)
Modified: trunk/common-core/src/test/java/org/teiid/core/crypto/TestDhKeyGenerator.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/common/util/crypto/TestDhKeyGenerator.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/crypto/TestDhKeyGenerator.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,8 +20,12 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.util.crypto;
+package org.teiid.core.crypto;
+import org.teiid.core.crypto.CryptoException;
+import org.teiid.core.crypto.DhKeyGenerator;
+import org.teiid.core.crypto.SymmetricCryptor;
+
import junit.framework.TestCase;
Modified: trunk/common-core/src/test/java/org/teiid/core/crypto/TestEncryptDecrypt.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/common/util/crypto/TestEncryptDecrypt.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/crypto/TestEncryptDecrypt.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.util.crypto;
+package org.teiid.core.crypto;
import static org.junit.Assert.*;
@@ -34,6 +34,10 @@
import org.junit.BeforeClass;
import org.junit.Test;
+import org.teiid.core.crypto.BasicCryptor;
+import org.teiid.core.crypto.CryptoException;
+import org.teiid.core.crypto.Cryptor;
+import org.teiid.core.crypto.SymmetricCryptor;
/**
Copied: trunk/common-core/src/test/java/org/teiid/core/id (from rev 2112, trunk/common-core/src/test/java/com/metamatrix/core/id)
Modified: trunk/common-core/src/test/java/org/teiid/core/id/TestIDGenerator.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/core/id/TestIDGenerator.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/id/TestIDGenerator.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,11 +20,21 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
import java.util.Collection;
import java.util.Iterator;
+import org.teiid.core.id.IDGenerator;
+import org.teiid.core.id.IntegerID;
+import org.teiid.core.id.IntegerIDFactory;
+import org.teiid.core.id.InvalidIDException;
+import org.teiid.core.id.LongID;
+import org.teiid.core.id.ObjectID;
+import org.teiid.core.id.ObjectIDFactory;
+import org.teiid.core.id.StringID;
+import org.teiid.core.id.UUID;
+
import junit.framework.TestCase;
/**
Modified: trunk/common-core/src/test/java/org/teiid/core/id/TestParsedObjectID.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/core/id/TestParsedObjectID.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/id/TestParsedObjectID.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,8 +20,11 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
+import org.teiid.core.id.InvalidIDException;
+import org.teiid.core.id.ParsedObjectID;
+
import junit.framework.TestCase;
/**
Modified: trunk/common-core/src/test/java/org/teiid/core/id/TestParsingObjectIDs.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/core/id/TestParsingObjectIDs.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/id/TestParsingObjectIDs.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
import java.io.BufferedReader;
import java.io.FileInputStream;
@@ -35,8 +35,9 @@
import junit.framework.TestCase;
-import com.metamatrix.core.util.UnitTestUtil;
+import org.teiid.core.util.UnitTestUtil;
+
/**
* TestParsingObjectIDs
*/
Modified: trunk/common-core/src/test/java/org/teiid/core/id/TestUUID.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/core/id/TestUUID.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/id/TestUUID.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,11 +20,14 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
import java.util.HashSet;
import java.util.Set;
+import org.teiid.core.id.InvalidIDException;
+import org.teiid.core.id.UUID;
+
import junit.framework.TestCase;
/**
Modified: trunk/common-core/src/test/java/org/teiid/core/id/TestUUIDFactory.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/core/id/TestUUIDFactory.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/id/TestUUIDFactory.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
import java.util.Collection;
import java.util.HashSet;
Modified: trunk/common-core/src/test/java/org/teiid/core/id/TestUUIDFactoryWithoutCreation.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/core/id/TestUUIDFactoryWithoutCreation.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/id/TestUUIDFactoryWithoutCreation.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,8 +20,11 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.id;
+package org.teiid.core.id;
+import org.teiid.core.id.InvalidIDException;
+import org.teiid.core.id.UUIDFactory;
+
import junit.framework.TestCase;
/**
Copied: trunk/common-core/src/test/java/org/teiid/core/types/TestBlobValue.java (from rev 2112, trunk/common-core/src/test/java/com/metamatrix/common/types/TestBlobValue.java)
===================================================================
--- trunk/common-core/src/test/java/org/teiid/core/types/TestBlobValue.java (rev 0)
+++ trunk/common-core/src/test/java/org/teiid/core/types/TestBlobValue.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,78 @@
+/*
+ * 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 org.teiid.core.types;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+import javax.sql.rowset.serial.SerialBlob;
+
+import org.teiid.core.types.BlobType;
+import org.teiid.core.util.UnitTestUtil;
+
+
+import junit.framework.TestCase;
+
+
+public class TestBlobValue extends TestCase {
+
+ public void testBlobValue() throws Exception {
+ String testString = "this is test blob"; //$NON-NLS-1$
+ SerialBlob blob = new SerialBlob(testString.getBytes());
+
+ BlobType bv = new BlobType(blob);
+ assertEquals(testString, new String(bv.getBytes(1L, (int)bv.length())));
+ }
+
+
+ public void testBlobValuePersistence() throws Exception {
+ String testString = "this is test clob"; //$NON-NLS-1$
+ SerialBlob blob = new SerialBlob(testString.getBytes());
+
+ String key = "keytodata"; //$NON-NLS-1$
+ BlobType bv = new BlobType(blob);
+ bv.setReferenceStreamId(key);
+
+ // now force to serialize
+ File saved = new File(UnitTestUtil.getTestScratchPath()+"/blobassaved.bin"); //$NON-NLS-1$
+ ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(saved));
+ out.writeObject(bv);
+ out.close();
+
+ // now read back the object from serilized state
+ ObjectInputStream in = new ObjectInputStream(new FileInputStream(saved));
+ BlobType read = (BlobType)in.readObject();
+
+ // make sure we have kept the reference stream id
+ assertEquals(key, read.getReferenceStreamId());
+
+ // and lost the original object
+ assertNull(read.getReference());
+
+ saved.delete();
+ }
+
+}
Copied: trunk/common-core/src/test/java/org/teiid/core/types/TestClobValue.java (from rev 2112, trunk/common-core/src/test/java/com/metamatrix/common/types/TestClobValue.java)
===================================================================
--- trunk/common-core/src/test/java/org/teiid/core/types/TestClobValue.java (rev 0)
+++ trunk/common-core/src/test/java/org/teiid/core/types/TestClobValue.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,78 @@
+/*
+ * 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 org.teiid.core.types;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+import javax.sql.rowset.serial.SerialClob;
+
+import org.teiid.core.types.ClobType;
+import org.teiid.core.util.UnitTestUtil;
+
+
+import junit.framework.TestCase;
+
+
+public class TestClobValue extends TestCase {
+
+ public void testClobValue() throws Exception {
+ String testString = "this is test clob"; //$NON-NLS-1$
+ SerialClob clob = new SerialClob(testString.toCharArray());
+
+ ClobType cv = new ClobType(clob);
+ assertEquals(testString, cv.getSubString(1L, (int)cv.length()));
+ }
+
+
+ public void testClobValuePersistence() throws Exception {
+ String testString = "this is test clob"; //$NON-NLS-1$
+ SerialClob clob = new SerialClob(testString.toCharArray());
+
+ String key = "keytodata"; //$NON-NLS-1$
+ ClobType cv = new ClobType(clob);
+ cv.setReferenceStreamId(key);
+
+ // now force to serialize
+ File saved = new File(UnitTestUtil.getTestScratchPath()+"/clobassaved.bin"); //$NON-NLS-1$
+ ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(saved));
+ out.writeObject(cv);
+ out.close();
+
+ // now read back the object from serilized state
+ ObjectInputStream in = new ObjectInputStream(new FileInputStream(saved));
+ ClobType read = (ClobType)in.readObject();
+
+ // make sure we have kept the reference stream id
+ assertEquals(key, read.getReferenceStreamId());
+
+ // and lost the original object
+ assertNull(read.getReference());
+
+ saved.delete();
+ }
+
+}
Copied: trunk/common-core/src/test/java/org/teiid/core/types/TestDataTypeManager.java (from rev 2112, trunk/common-core/src/test/java/com/metamatrix/common/types/TestDataTypeManager.java)
===================================================================
--- trunk/common-core/src/test/java/org/teiid/core/types/TestDataTypeManager.java (rev 0)
+++ trunk/common-core/src/test/java/org/teiid/core/types/TestDataTypeManager.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,230 @@
+/*
+ * 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 org.teiid.core.types;
+
+import static org.junit.Assert.*;
+
+import java.sql.Types;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.Set;
+
+import javax.sql.rowset.serial.SerialBlob;
+
+import org.junit.Test;
+import org.teiid.core.types.BlobType;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.JDBCSQLTypeInfo;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+
+public class TestDataTypeManager {
+
+ private void helpDetermineDataType(Object value, Class expectedClass) {
+ Class actualClass = DataTypeManager.determineDataTypeClass(value);
+ assertNotNull("Should never receive null when determining data type of object: " + value); //$NON-NLS-1$
+ assertEquals("Mismatch in expected and actual MetaMatrix type class for [" + value + "]: ", expectedClass, actualClass); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ public static String[] dataTypes = {"string","char","boolean","byte","short","integer","long","biginteger", //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+ "float","double","bigdecimal","date","time","timestamp","object","blob","clob", DataTypeManager.DefaultDataTypes.XML}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+
+ /**
+ * I - Implicitly Converted
+ * C - Explicitly Converted
+ * N - Cannot be converted
+ * o - No conversion needed
+ */
+ public static char conversions [][] =
+ {
+ /* Big */
+ /* i d */
+ /* s n b d e Time o */
+ /* t s t i f o c s b */
+ /* r c b b h e L g l u i d t t j b c */
+ /* i h o y o g o i o b m a i a e l l x */
+ /* n a o t r e n n a l a t m m c o o m */
+ /* g r l e t r g t t e l e e p t b b l */
+ /* -------------------------------------------------------------------------*/
+ /*String*/ { 'O','C','C','C','C','C','C','C','C','C','C','C','C','C','I','N','I','C' },
+ /*char*/ { 'I','O','N','N','N','N','N','N','N','N','N','N','N','N','I','N','N','N' },
+ /*bool*/ { 'I','N','O','I','I','I','I','I','I','I','I','N','N','N','I','N','N','N' },
+ /*byte*/ { 'I','N','C','O','I','I','I','I','I','I','I','N','N','N','I','N','N','N' },
+ /*short*/ { 'I','N','C','C','O','I','I','I','I','I','I','N','N','N','I','N','N','N' },
+ /*int*/ { 'I','N','C','C','C','O','I','I','C','I','I','N','N','N','I','N','N','N' },
+ /*long*/ { 'I','N','C','C','C','C','O','I','C','C','I','N','N','N','I','N','N','N' },
+ /*bigint*/ { 'I','N','C','C','C','C','C','O','C','C','I','N','N','N','I','N','N','N' },
+ /*float*/ { 'I','N','C','C','C','C','C','C','O','I','I','N','N','N','I','N','N','N' },
+ /*double*/ { 'I','N','C','C','C','C','C','C','C','O','I','N','N','N','I','N','N','N' },
+ /*bigdecimal*/ { 'I','N','C','C','C','C','C','C','C','C','O','N','N','N','I','N','N','N' },
+ /*date*/ { 'I','N','N','N','N','N','N','N','N','N','N','O','N','I','I','N','N','N' },
+ /*time*/ { 'I','N','N','N','N','N','N','N','N','N','N','N','O','I','I','N','N','N' },
+ /*timestamp*/ { 'I','N','N','N','N','N','N','N','N','N','N','C','C','O','I','N','N','N' },
+ /*object*/ { 'C','C','C','C','C','C','C','C','C','C','C','C','C','C','O','C','C','C' },
+ /*blob*/ { 'N','N','N','N','N','N','N','N','N','N','N','N','N','N','I','O','N','N' },
+ /*clob*/ { 'C','N','N','N','N','N','N','N','N','N','N','N','N','N','I','N','O','C' },
+ /*xml*/ { 'C','N','N','N','N','N','N','N','N','N','N','N','N','N','I','N','C','O' }
+ };
+
+
+ // ################################## ACTUAL TESTS ################################
+
+ @Test public void testTypeMappings() {
+ Set dataTypeNames = DataTypeManager.getAllDataTypeNames();
+ Iterator iter = dataTypeNames.iterator();
+ while(iter.hasNext()) {
+ String dataTypeName = (String) iter.next();
+ Class dataTypeClass = DataTypeManager.getDataTypeClass(dataTypeName);
+ assertNotNull("Data type class was null for type " + dataTypeName, dataTypeClass); //$NON-NLS-1$
+ String dataTypeName2 = DataTypeManager.getDataTypeName(dataTypeClass);
+ assertEquals("Name to class to name not equals: ", dataTypeName, dataTypeName2); //$NON-NLS-1$
+ }
+ }
+
+ @Test public void testCheckConversions() {
+ for (int src = 0; src < dataTypes.length; src++) {
+ for (int tgt =0; tgt < dataTypes.length; tgt++) {
+ char c = conversions[src][tgt];
+
+ if (c == 'I') {
+ assertTrue("src="+dataTypes[src]+" target="+dataTypes[tgt]+" should be Implicit", DataTypeManager.isImplicitConversion(dataTypes[src], dataTypes[tgt])); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ assertFalse("src="+dataTypes[src]+" target="+dataTypes[tgt]+" should be not be Explicit", DataTypeManager.isExplicitConversion(dataTypes[src], dataTypes[tgt])); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ assertTrue("src="+dataTypes[src]+" target="+dataTypes[tgt]+" transform should be avaialble", DataTypeManager.isTransformable(dataTypes[src], dataTypes[tgt])); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+ else if (c == 'C') {
+ assertFalse("src="+dataTypes[src]+" target="+dataTypes[tgt]+" should not be Implicit", DataTypeManager.isImplicitConversion(dataTypes[src], dataTypes[tgt])); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ assertTrue("src="+dataTypes[src]+" target="+dataTypes[tgt]+" should be Explicit", DataTypeManager.isExplicitConversion(dataTypes[src], dataTypes[tgt])); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ assertTrue("src="+dataTypes[src]+" target="+dataTypes[tgt]+" transform should be avaialble", DataTypeManager.isTransformable(dataTypes[src], dataTypes[tgt])); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+ else if ( c == 'O' || c == 'N') {
+ assertFalse("src="+dataTypes[src]+" target="+dataTypes[tgt]+" should not be Implicit", DataTypeManager.isImplicitConversion(dataTypes[src], dataTypes[tgt])); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ assertFalse("src="+dataTypes[src]+" target="+dataTypes[tgt]+" should not be Explicit", DataTypeManager.isExplicitConversion(dataTypes[src], dataTypes[tgt])); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ assertFalse("src="+dataTypes[src]+" target="+dataTypes[tgt]+" No transform should be avaialble", DataTypeManager.isTransformable(dataTypes[src], dataTypes[tgt])); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+ }
+ }
+ }
+
+ /** Test determine data type for a STRING object. */
+ @Test public void testDetermineDataType1() {
+ helpDetermineDataType("abc", DataTypeManager.DefaultDataClasses.STRING); //$NON-NLS-1$
+ }
+
+ /** Test determine data type for a NULL object. */
+ @Test public void testDetermineDataType2() {
+ helpDetermineDataType(null, DataTypeManager.DefaultDataClasses.NULL);
+ }
+
+ /** Test determine data type for an unknown object type - should be typed as an OBJECT. */
+ @Test public void testDetermineDataType3() throws Exception {
+ java.net.URL url = new java.net.URL("http://fake"); //$NON-NLS-1$
+ helpDetermineDataType(url, DataTypeManager.DefaultDataClasses.OBJECT);
+ }
+
+ @Test public void testCheckAllConversions() {
+ Set allTypes = DataTypeManager.getAllDataTypeNames();
+ Iterator srcIter = allTypes.iterator();
+ while(srcIter.hasNext()) {
+ String src = (String) srcIter.next();
+
+ Iterator tgtIter = allTypes.iterator();
+ while(tgtIter.hasNext()) {
+ String tgt = (String) tgtIter.next();
+
+ boolean isImplicit = DataTypeManager.isImplicitConversion(src, tgt);
+ boolean isExplicit = DataTypeManager.isExplicitConversion(src, tgt);
+
+ if(isImplicit && isExplicit) {
+ fail("Can't be both implicit and explicit for " + src + " to " + tgt); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+ }
+ }
+
+ @Test public void testTimeConversions() {
+ Transform t = DataTypeManager.getTransform(DataTypeManager.DefaultDataTypes.TIMESTAMP, DataTypeManager.DefaultDataTypes.DATE);
+
+ assertEquals(DataTypeManager.DefaultDataClasses.DATE, t.getTargetType());
+
+ t = DataTypeManager.getTransform(DataTypeManager.DefaultDataTypes.TIME, DataTypeManager.DefaultDataTypes.TIMESTAMP);
+
+ assertEquals(DataTypeManager.DefaultDataClasses.TIMESTAMP, t.getTargetType());
+ }
+
+ @Test public void testJDBCSQLTypeInfo() {
+
+ String[] types = JDBCSQLTypeInfo.getMMTypeNames();
+
+ for (int i = 0; i < types.length; i++) {
+ String type = types[i];
+
+ assertEquals("Didn't get match for "+ type, JDBCSQLTypeInfo.getSQLType(type), JDBCSQLTypeInfo.getSQLTypeFromRuntimeType(DataTypeManager.getDataTypeClass(type))); //$NON-NLS-1$
+
+ //the classnames will not match the runtime types for xml, clob, blob
+ if (!type.equalsIgnoreCase(DataTypeManager.DefaultDataTypes.XML) && !type.equalsIgnoreCase(DataTypeManager.DefaultDataTypes.CLOB) && !type.equalsIgnoreCase(DataTypeManager.DefaultDataTypes.BLOB)) {
+ assertEquals("Didn't get match for "+ type, JDBCSQLTypeInfo.getSQLType(type), JDBCSQLTypeInfo.getSQLTypeFromClass(DataTypeManager.getDataTypeClass(type).getName())); //$NON-NLS-1$
+ }
+ }
+
+ assertEquals(Types.TIMESTAMP, JDBCSQLTypeInfo.getSQLTypeFromRuntimeType(DataTypeManager.DefaultDataClasses.TIMESTAMP));
+ //## JDBC4.0-begin ##
+ assertEquals(Types.SQLXML, JDBCSQLTypeInfo.getSQLTypeFromRuntimeType(DataTypeManager.DefaultDataClasses.XML));
+ //## JDBC4.0-end ##
+ assertEquals(DataTypeManager.DefaultDataTypes.STRING, JDBCSQLTypeInfo.getTypeName(Types.CHAR));
+ assertEquals(Types.CHAR, JDBCSQLTypeInfo.getSQLTypeFromRuntimeType(DataTypeManager.DefaultDataClasses.CHAR));
+ }
+
+ @Test public void testRuntimeTypeConversion() throws Exception {
+ assertNull(DataTypeManager.convertToRuntimeType(null));
+
+ assertTrue(DataTypeManager.convertToRuntimeType(new SerialBlob(new byte[0])) instanceof BlobType);
+
+ //unknown type should return as same
+ Object foo = new Object();
+ assertEquals(foo, DataTypeManager.convertToRuntimeType(foo));
+
+ //known type should return as same
+ Integer bar = new Integer(1);
+ assertEquals(bar, DataTypeManager.convertToRuntimeType(bar));
+ }
+
+ @Test public void testObjectType() {
+ assertEquals(DataTypeManager.DefaultDataClasses.OBJECT, DataTypeManager.getDataTypeClass("foo")); //$NON-NLS-1$
+
+ assertEquals(DataTypeManager.DefaultDataTypes.OBJECT, DataTypeManager.getDataTypeName(TestDataTypeManager.class));
+ }
+
+ @Test public void testImplicitConversions() {
+ assertEquals(Arrays.asList(DataTypeManager.DefaultDataTypes.LONG,
+ DataTypeManager.DefaultDataTypes.BIG_INTEGER,
+ DataTypeManager.DefaultDataTypes.DOUBLE,
+ DataTypeManager.DefaultDataTypes.BIG_DECIMAL,
+ DataTypeManager.DefaultDataTypes.STRING,
+ DataTypeManager.DefaultDataTypes.OBJECT), DataTypeManager.getImplicitConversions(DataTypeManager.DefaultDataTypes.INTEGER));
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(expected=TransformationException.class) public void testStringToXML() throws Exception {
+ DataTypeManager.transformValue("hello", DataTypeManager.DefaultDataClasses.XML); //$NON-NLS-1$
+ }
+
+}
Copied: trunk/common-core/src/test/java/org/teiid/core/types/TestSQLXMLImpl.java (from rev 2112, trunk/common-core/src/test/java/com/metamatrix/common/types/TestSQLXMLImpl.java)
===================================================================
--- trunk/common-core/src/test/java/org/teiid/core/types/TestSQLXMLImpl.java (rev 0)
+++ trunk/common-core/src/test/java/org/teiid/core/types/TestSQLXMLImpl.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,109 @@
+/*
+ * 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 org.teiid.core.types;
+
+import java.io.IOException;
+import java.io.Reader;
+import java.sql.SQLException;
+
+import javax.xml.transform.stream.StreamSource;
+
+import org.teiid.core.types.SQLXMLImpl;
+import org.teiid.core.types.Streamable;
+import org.teiid.core.util.ObjectConverterUtil;
+
+import junit.framework.TestCase;
+
+
+/**
+ * Basically we want to make sure that nobody has changed the fundamental contract
+ * of translator
+ */
+public class TestSQLXMLImpl extends TestCase {
+
+ String testStr = "<foo>test</foo>"; //$NON-NLS-1$
+
+ //## JDBC4.0-begin ##
+ public void testGetSource() throws Exception {
+ SQLXMLImpl xml = new SQLXMLImpl(testStr);
+ assertTrue(xml.getSource(null) instanceof StreamSource);
+
+ StreamSource ss = (StreamSource)xml.getSource(null);
+ assertEquals(testStr, new String(ObjectConverterUtil.convertToByteArray(ss.getInputStream()), Streamable.ENCODING));
+ }
+ //## JDBC4.0-end ##
+
+ public void testGetCharacterStream() throws Exception {
+ SQLXMLImpl xml = new SQLXMLImpl(testStr);
+ assertEquals(testStr, getContents(xml.getCharacterStream()));
+ }
+
+ public void testGetBinaryStream() throws Exception {
+ SQLXMLImpl xml = new SQLXMLImpl(testStr);
+ assertEquals(testStr, new String(ObjectConverterUtil.convertToByteArray(xml.getBinaryStream()), Streamable.ENCODING));
+ }
+
+ public void testGetString() throws Exception {
+ SQLXMLImpl xml = new SQLXMLImpl(testStr);
+ assertEquals(testStr, xml.getString());
+ }
+
+ public void testSetBinaryStream() throws Exception {
+ SQLXMLImpl xml = new SQLXMLImpl(testStr);
+ try {
+ xml.setBinaryStream();
+ fail("we do not support this yet.."); //$NON-NLS-1$
+ } catch (SQLException e) {
+ }
+ }
+
+ public void testSetCharacterStream() throws Exception {
+ SQLXMLImpl xml = new SQLXMLImpl(testStr);
+ try {
+ xml.setCharacterStream();
+ fail("we do not support this yet.."); //$NON-NLS-1$
+ } catch (SQLException e) {
+ }
+ }
+
+ public void testSetString() throws Exception {
+ SQLXMLImpl xml = new SQLXMLImpl(testStr);
+ try {
+ xml.setString(testStr);
+ fail("we do not support this yet.."); //$NON-NLS-1$
+ } catch (SQLException e) {
+ }
+ }
+
+ private String getContents(Reader reader) throws IOException {
+ StringBuffer sb = new StringBuffer();
+ int chr = reader.read();
+ while(chr != -1) {
+ sb.append((char)chr);
+ chr = reader.read();
+ }
+ reader.close();
+ return sb.toString();
+ }
+
+}
Copied: trunk/common-core/src/test/java/org/teiid/core/types/TestXMLStreamSourceTranslator.java (from rev 2112, trunk/common-core/src/test/java/com/metamatrix/common/types/TestXMLStreamSourceTranslator.java)
===================================================================
--- trunk/common-core/src/test/java/org/teiid/core/types/TestXMLStreamSourceTranslator.java (rev 0)
+++ trunk/common-core/src/test/java/org/teiid/core/types/TestXMLStreamSourceTranslator.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,101 @@
+/*
+ * 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 org.teiid.core.types;
+
+import java.io.StringReader;
+import java.util.StringTokenizer;
+
+import javax.xml.transform.stream.StreamSource;
+
+import org.teiid.core.types.StandardXMLTranslator;
+
+import junit.framework.TestCase;
+
+
+/**
+ * XML StreamSource Translator.
+ */
+public class TestXMLStreamSourceTranslator extends TestCase {
+
+ private static final String sourceXML =
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + //$NON-NLS-1$
+ "<Books:bookCollection xmlns:Books=\"http://www.metamatrix.com/XMLSchema/DataSets/Books\">\r\n" + //$NON-NLS-1$
+ " <book isbn=\"0-7356-0877-6\">\r\n" + //$NON-NLS-1$
+ " <title>After the Gold Rush</title>\r\n" + //$NON-NLS-1$
+ " <subtitle>Creating a True Profession of Software Engineering</subtitle>\r\n" + //$NON-NLS-1$
+ " <edition>1</edition>\r\n" + //$NON-NLS-1$
+ " <authors>\r\n" + //$NON-NLS-1$
+ " <author>McConnell</author>\r\n" + //$NON-NLS-1$
+ " </authors>\r\n" + //$NON-NLS-1$
+ " <publishingInformation>\r\n" + //$NON-NLS-1$
+ " <publisher>Microsoft Press</publisher>\r\n" + //$NON-NLS-1$
+ " <publishDate>1999</publishDate>\r\n" + //$NON-NLS-1$
+ " </publishingInformation>\r\n" + //$NON-NLS-1$
+ " </book>\r\n" + //$NON-NLS-1$
+ " <book isbn=\"1-55615-484-4\">\r\n" + //$NON-NLS-1$
+ " <title>Code Complete</title>\r\n" + //$NON-NLS-1$
+ " <subtitle>A Practical Handbook of Software Construction</subtitle>\r\n" + //$NON-NLS-1$
+ " <edition>1</edition>\r\n" + //$NON-NLS-1$
+ " <authors>\r\n" + //$NON-NLS-1$
+ " <author>McConnell</author>\r\n" + //$NON-NLS-1$
+ " </authors>\r\n" + //$NON-NLS-1$
+ " <publishingInformation>\r\n" + //$NON-NLS-1$
+ " <publisher>Microsoft Press</publisher>\r\n" + //$NON-NLS-1$
+ " <publishDate>1993</publishDate>\r\n" + //$NON-NLS-1$
+ " </publishingInformation>\r\n" + //$NON-NLS-1$
+ " </book>\r\n" + //$NON-NLS-1$
+ " <book isbn=\"1-556-15900-5\">\r\n" + //$NON-NLS-1$
+ " <title>Rapid Development</title>\r\n" + //$NON-NLS-1$
+ " <subtitle>Taming Wild Software Schedules</subtitle>\r\n" + //$NON-NLS-1$
+ " <edition>1</edition>\r\n" + //$NON-NLS-1$
+ " <authors>\r\n" + //$NON-NLS-1$
+ " <author>McConnell</author>\r\n" + //$NON-NLS-1$
+ " </authors>\r\n" + //$NON-NLS-1$
+ " <publishingInformation>\r\n" + //$NON-NLS-1$
+ " <publisher>Microsoft Press</publisher>\r\n" + //$NON-NLS-1$
+ " <publishDate>1996</publishDate>\r\n" + //$NON-NLS-1$
+ " </publishingInformation>\r\n" + //$NON-NLS-1$
+ " </book>\r\n" + //$NON-NLS-1$
+ "</Books:bookCollection>"; //$NON-NLS-1$
+
+ public void testStreamSourceWithStream() throws Exception {
+ StandardXMLTranslator translator = new StandardXMLTranslator(new StreamSource(new StringReader(sourceXML)));
+ compareDocuments(sourceXML, translator.getString());
+ }
+
+ private void compareDocuments(String expectedDoc, String actualDoc) {
+ StringTokenizer tokens1 = new StringTokenizer(expectedDoc, "\r\n"); //$NON-NLS-1$
+ StringTokenizer tokens2 = new StringTokenizer(actualDoc, "\n");//$NON-NLS-1$
+ while(tokens1.hasMoreTokens()){
+ String token1 = tokens1.nextToken().trim();
+ if(!tokens2.hasMoreTokens()){
+ fail("XML doc mismatch: expected=" + token1 + "\nactual=none");//$NON-NLS-1$ //$NON-NLS-2$
+ }
+ String token2 = tokens2.nextToken().trim();
+ assertEquals("XML doc mismatch: ", token1, token2); //$NON-NLS-1$
+ }
+ if(tokens2.hasMoreTokens()){
+ fail("XML doc mismatch: expected=none\nactual=" + tokens2.nextToken().trim());//$NON-NLS-1$
+ }
+ }
+}
Copied: trunk/common-core/src/test/java/org/teiid/core/types/TestXMLValue.java (from rev 2112, trunk/common-core/src/test/java/com/metamatrix/common/types/TestXMLValue.java)
===================================================================
--- trunk/common-core/src/test/java/org/teiid/core/types/TestXMLValue.java (rev 0)
+++ trunk/common-core/src/test/java/org/teiid/core/types/TestXMLValue.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,78 @@
+/*
+ * 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 org.teiid.core.types;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+import org.teiid.core.types.SQLXMLImpl;
+import org.teiid.core.types.XMLType;
+import org.teiid.core.util.UnitTestUtil;
+
+
+import junit.framework.TestCase;
+
+
+public class TestXMLValue extends TestCase {
+
+ public void testXMLValue() throws Exception {
+ String testString = "<foo>this is an xml value test</foo>"; //$NON-NLS-1$
+ SQLXMLImpl xml = new SQLXMLImpl(testString);
+
+ XMLType xv = new XMLType(xml);
+ assertEquals(testString, xv.getString());
+ }
+
+
+ public void testXMLValuePersistence() throws Exception {
+ String testString = "<foo>this is an xml value test</foo>"; //$NON-NLS-1$
+ SQLXMLImpl xml = new SQLXMLImpl(testString);
+
+ String key = "keytodata"; //$NON-NLS-1$
+ String pkey = "peresistkeytodata"; //$NON-NLS-1$
+ XMLType xv = new XMLType(xml);
+ xv.setReferenceStreamId(key);
+
+ // now force to serialize
+ File saved = new File(UnitTestUtil.getTestScratchPath()+"/xmlsaved.bin"); //$NON-NLS-1$
+ ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(saved));
+ out.writeObject(xv);
+ out.close();
+
+ // now read back the object from serilized state
+ ObjectInputStream in = new ObjectInputStream(new FileInputStream(saved));
+ XMLType read = (XMLType)in.readObject();
+
+ // make sure we have kept the reference stream id
+ assertEquals(key, read.getReferenceStreamId());
+
+ // and lost the original object
+ assertNull(read.getReference());
+
+ saved.delete();
+ }
+
+}
Copied: trunk/common-core/src/test/java/org/teiid/core/types/basic (from rev 2112, trunk/common-core/src/test/java/com/metamatrix/common/types/basic)
Modified: trunk/common-core/src/test/java/org/teiid/core/types/basic/TestStringToXmlTransform.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/common/types/basic/TestStringToXmlTransform.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/types/basic/TestStringToXmlTransform.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
//## JDBC4.0-begin ##
import static org.junit.Assert.*;
@@ -28,8 +28,9 @@
import java.sql.SQLXML;
import org.junit.Test;
+import org.teiid.core.types.TransformationException;
+import org.teiid.core.types.basic.StringToSQLXMLTransform;
-import com.metamatrix.common.types.TransformationException;
@SuppressWarnings("nls")
public class TestStringToXmlTransform {
Modified: trunk/common-core/src/test/java/org/teiid/core/types/basic/TestTransforms.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/common/types/basic/TestTransforms.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/types/basic/TestTransforms.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.common.types.basic;
+package org.teiid.core.types.basic;
import static org.junit.Assert.*;
@@ -31,17 +31,18 @@
import java.sql.Timestamp;
import org.junit.Test;
+import org.teiid.core.types.ClobType;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.SQLXMLImpl;
+import org.teiid.core.types.TestDataTypeManager;
+import org.teiid.core.types.Transform;
+import org.teiid.core.types.TransformationException;
+import org.teiid.core.types.XMLType;
+import org.teiid.core.types.DataTypeManager.DefaultDataClasses;
+import org.teiid.core.types.DataTypeManager.DefaultDataTypes;
+import org.teiid.core.types.basic.StringToSQLXMLTransform;
+import org.teiid.query.unittest.TimestampUtil;
-import com.metamatrix.common.types.ClobType;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.SQLXMLImpl;
-import com.metamatrix.common.types.TestDataTypeManager;
-import com.metamatrix.common.types.Transform;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.common.types.XMLType;
-import com.metamatrix.common.types.DataTypeManager.DefaultDataClasses;
-import com.metamatrix.common.types.DataTypeManager.DefaultDataTypes;
-import com.metamatrix.query.unittest.TimestampUtil;
/**
Copied: trunk/common-core/src/test/java/org/teiid/core/util (from rev 2112, trunk/common-core/src/test/java/com/metamatrix/core/util)
Copied: trunk/common-core/src/test/java/org/teiid/core/util/FakeInputStream.java (from rev 2112, trunk/common-core/src/test/java/com/metamatrix/common/util/FakeInputStream.java)
===================================================================
--- trunk/common-core/src/test/java/org/teiid/core/util/FakeInputStream.java (rev 0)
+++ trunk/common-core/src/test/java/org/teiid/core/util/FakeInputStream.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,68 @@
+/*
+ * 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 org.teiid.core.util;
+
+import java.io.ByteArrayInputStream;
+
+/**
+ * This test input stream overrides the <code>available</code>
+ * to return "1" until <i>after</i> the {@link #read} method returns
+ * "-1" to indicate EOF, which is how java.util.zip.ZipInputStream
+ * works, which is what is used by ExtensionSourceManager to retrieve
+ * Class files from JAR files. The <code>available</code> method
+ * therefore can't be relied on by ByteArrayHelper to either
+ * indicate how many bytes can be read, or if more are
+ * available or not. In the latter case, ByteArrayHelper
+ * relies on the <code>read</code> method returning "-1".
+ */
+public class FakeInputStream extends ByteArrayInputStream {
+
+ private int available = 1;
+
+ public FakeInputStream(byte[] buf) {
+ super(buf);
+ }
+
+ /**
+ * Overriden to return "1" <i>until</i> the <code>read</code> method
+ * has returned "-1" to indicate EOF.
+ */
+ public int available(){
+ super.available();
+ return available;
+ }
+
+ /**
+ * Overriden - basically calls to super method, but checks returned
+ * number of bytes read; if "-1", then the next call to
+ * {@link #available} will return "0".
+ */
+ public int read(byte b[], int off, int len) {
+ int result = super.read(b, off, len);
+ if (result<0){
+ available = 0;
+ }
+ return result;
+ }
+
+}
Modified: trunk/common-core/src/test/java/org/teiid/core/util/SimpleMock.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/core/util/SimpleMock.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/util/SimpleMock.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,13 +20,15 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
+import org.teiid.core.util.MixinProxy;
+
public class SimpleMock extends MixinProxy {
SimpleMock(Object[] baseInstances) {
Modified: trunk/common-core/src/test/java/org/teiid/core/util/TestAssertion.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/core/util/TestAssertion.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/util/TestAssertion.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,11 +20,13 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
+import org.teiid.core.CorePlugin;
+import org.teiid.core.util.Assertion;
+
import junit.framework.TestCase;
-import com.metamatrix.core.CorePlugin;
/**
* TestAssertion
Modified: trunk/common-core/src/test/java/org/teiid/core/util/TestEquivalenceUtil.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/core/util/TestEquivalenceUtil.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/util/TestEquivalenceUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,8 +20,10 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
+import org.teiid.core.util.EquivalenceUtil;
+
import junit.framework.TestCase;
public class TestEquivalenceUtil extends TestCase {
Modified: trunk/common-core/src/test/java/org/teiid/core/util/TestExternalizeUtil.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/core/util/TestExternalizeUtil.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/util/TestExternalizeUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -29,6 +29,8 @@
import java.util.Arrays;
import java.util.List;
+import org.teiid.core.util.ExternalizeUtil;
+
import junit.framework.TestCase;
public class TestExternalizeUtil extends TestCase {
Modified: trunk/common-core/src/test/java/org/teiid/core/util/TestFileUtil.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/core/util/TestFileUtil.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/util/TestFileUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,9 +20,13 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.io.File;
+
+import org.teiid.core.util.FileUtil;
+import org.teiid.core.util.StringUtil;
+
import junit.framework.TestCase;
public class TestFileUtil extends TestCase {
Modified: trunk/common-core/src/test/java/org/teiid/core/util/TestFileUtils.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/core/util/TestFileUtils.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/util/TestFileUtils.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,15 +20,18 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
+import org.teiid.core.TeiidException;
+import org.teiid.core.util.FileUtil;
+import org.teiid.core.util.FileUtils;
+
import junit.framework.TestCase;
-import com.metamatrix.core.MetaMatrixCoreException;
/**
* @since 4.0
@@ -140,7 +143,7 @@
try {
FileUtils.testDirectoryPermissions("fakeDir"); //$NON-NLS-1$
fail("Expected a MetaMatrixCoreException"); //$NON-NLS-1$
- } catch (MetaMatrixCoreException e) {
+ } catch (TeiidException e) {
}
}
Modified: trunk/common-core/src/test/java/org/teiid/core/util/TestMetaMatrixExceptionUtil.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/core/util/TestMetaMatrixExceptionUtil.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/util/TestMetaMatrixExceptionUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,12 +20,15 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import javax.naming.ConfigurationException;
+
+import org.teiid.core.TeiidException;
+import org.teiid.core.TeiidRuntimeException;
+import org.teiid.core.util.ExceptionUtil;
+
import junit.framework.TestCase;
-import com.metamatrix.core.MetaMatrixCoreException;
-import com.metamatrix.core.MetaMatrixRuntimeException;
public class TestMetaMatrixExceptionUtil extends TestCase {
@@ -35,32 +38,32 @@
public void testWithoutMessage() {
NullPointerException npe = new NullPointerException();
- MetaMatrixRuntimeException e = new MetaMatrixRuntimeException(npe);
- assertEquals("MetaMatrixRuntimeException->NullPointerException", MetaMatrixExceptionUtil.getLinkedMessagesVerbose(e)); //$NON-NLS-1$
- assertEquals("nullnull", MetaMatrixExceptionUtil.getLinkedMessages(e)); //$NON-NLS-1$
+ TeiidRuntimeException e = new TeiidRuntimeException(npe);
+ assertEquals("TeiidRuntimeException->NullPointerException", ExceptionUtil.getLinkedMessagesVerbose(e)); //$NON-NLS-1$
+ assertEquals("nullnull", ExceptionUtil.getLinkedMessages(e)); //$NON-NLS-1$
}
public void testWithMessage() {
NullPointerException npe = new NullPointerException("problem"); //$NON-NLS-1$
- MetaMatrixRuntimeException e = new MetaMatrixRuntimeException(npe);
- assertEquals("MetaMatrixRuntimeException-problem->NullPointerException", MetaMatrixExceptionUtil.getLinkedMessagesVerbose(e)); //$NON-NLS-1$
- assertEquals("problemproblem", MetaMatrixExceptionUtil.getLinkedMessages(e)); //$NON-NLS-1$
+ TeiidRuntimeException e = new TeiidRuntimeException(npe);
+ assertEquals("TeiidRuntimeException-problem->NullPointerException", ExceptionUtil.getLinkedMessagesVerbose(e)); //$NON-NLS-1$
+ assertEquals("problemproblem", ExceptionUtil.getLinkedMessages(e)); //$NON-NLS-1$
}
public void testWithAndWithoutMessage() {
NullPointerException npe = new NullPointerException();
- MetaMatrixCoreException ce = new MetaMatrixCoreException(npe, "problem"); //$NON-NLS-1$
- MetaMatrixRuntimeException e = new MetaMatrixRuntimeException(ce);
- assertEquals("MetaMatrixRuntimeException-problem->MetaMatrixCoreException->NullPointerException", MetaMatrixExceptionUtil.getLinkedMessagesVerbose(e)); //$NON-NLS-1$
- assertEquals("problemproblemnull", MetaMatrixExceptionUtil.getLinkedMessages(e)); //$NON-NLS-1$
+ TeiidException ce = new TeiidException(npe, "problem"); //$NON-NLS-1$
+ TeiidRuntimeException e = new TeiidRuntimeException(ce);
+ assertEquals("TeiidRuntimeException-problem->TeiidException->NullPointerException", ExceptionUtil.getLinkedMessagesVerbose(e)); //$NON-NLS-1$
+ assertEquals("problemproblemnull", ExceptionUtil.getLinkedMessages(e)); //$NON-NLS-1$
}
public void testConfigurationException() {
NullPointerException npe = new NullPointerException("problem1"); //$NON-NLS-1$
ConfigurationException configException = new ConfigurationException("problem2"); //$NON-NLS-1$
configException.setRootCause(npe);
- MetaMatrixCoreException e = new MetaMatrixCoreException(configException, "problem3"); //$NON-NLS-1$
- assertEquals("MetaMatrixCoreException-problem3->ConfigurationException-problem2->NullPointerException-problem1", MetaMatrixExceptionUtil.getLinkedMessagesVerbose(e)); //$NON-NLS-1$
- assertEquals("problem3problem2problem1", MetaMatrixExceptionUtil.getLinkedMessages(e)); //$NON-NLS-1$
+ TeiidException e = new TeiidException(configException, "problem3"); //$NON-NLS-1$
+ assertEquals("TeiidException-problem3->ConfigurationException-problem2->NullPointerException-problem1", ExceptionUtil.getLinkedMessagesVerbose(e)); //$NON-NLS-1$
+ assertEquals("problem3problem2problem1", ExceptionUtil.getLinkedMessages(e)); //$NON-NLS-1$
}
}
Copied: trunk/common-core/src/test/java/org/teiid/core/util/TestPropertiesUtils.java (from rev 2112, trunk/common-core/src/test/java/com/metamatrix/common/util/TestPropertiesUtils.java)
===================================================================
--- trunk/common-core/src/test/java/org/teiid/core/util/TestPropertiesUtils.java (rev 0)
+++ trunk/common-core/src/test/java/org/teiid/core/util/TestPropertiesUtils.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,567 @@
+/*
+ * 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 org.teiid.core.util;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import org.teiid.core.util.PropertiesUtils;
+import org.teiid.core.util.PropertiesUtils.InvalidPropertyException;
+
+import junit.framework.TestCase;
+
+
+/**
+ * Tests primarily the various cloning scenarios available with PropertiesUtils
+ */
+public class TestPropertiesUtils extends TestCase {
+
+ private final static String TEMP_FILE = UnitTestUtil.getTestScratchPath() + "/temp.properties"; //$NON-NLS-1$
+
+
+
+ // ################################## FRAMEWORK ################################
+
+ public TestPropertiesUtils(String name) {
+ super(name);
+ }
+
+ public void tearDown() throws Exception{
+ try {
+ File temp = new File(TEMP_FILE);
+ temp.delete();
+ } catch (Exception e) {
+ //ignore
+ }
+ }
+
+
+ //===================================================================
+ //ACTUAL TESTS
+ //===================================================================
+
+
+ /**
+ * Tests {@link com.metamatrix.common.utils.PropertiesUtils#print(String, Properties, String header)}
+ * and {@link org.teiid.core.util.utils.PropertiesUtils#load(String)}
+ * and {@link org.teiid.core.util.utils.PropertiesUtils#loadHeader(String)}
+ */
+ public void testPrintLoadWithHeader() throws Exception {
+ Properties props1 = make(MAP_C, null, !UNMODIFIABLE);
+
+ //print to file
+ PropertiesUtils.print(TEMP_FILE, props1, "header"); //$NON-NLS-1$
+
+ //load from file
+ Properties props2 = PropertiesUtils.load(TEMP_FILE);
+ assertEquals("Expected props1 to be equal to props2", 0, PropertiesUtils.compare(props1, props2)); //$NON-NLS-1$
+
+ String header = PropertiesUtils.loadHeader(TEMP_FILE);
+ assertEquals("header", header); //$NON-NLS-1$
+ }
+
+
+ /**
+ * Tests {@link org.teiid.core.util.utils.PropertiesUtils#print(String, Properties)}
+ * and {@link org.teiid.core.util.utils.PropertiesUtils#load(String)}
+ * and {@link org.teiid.core.util.utils.PropertiesUtils#loadHeader(String)}
+ */
+ public void testPrintLoadWithoutHeader() throws Exception {
+ Properties props1 = make(MAP_C, null, !UNMODIFIABLE);
+
+ //print to file
+ PropertiesUtils.print(TEMP_FILE, props1);
+
+ //load from file
+ Properties props2 = PropertiesUtils.load(TEMP_FILE);
+ assertEquals("Expected props1 to be equal to props2", 0, PropertiesUtils.compare(props1, props2)); //$NON-NLS-1$
+ }
+
+
+
+
+ // ################ putAll(Properties, Properties) ###########################
+
+ public void testPutAllWithDefaults(){
+ Properties c = make(MAP_C, null, !UNMODIFIABLE);
+ Properties ab = make(MAP_A, make(MAP_B, null, UNMODIFIABLE), UNMODIFIABLE);
+ PropertiesUtils.putAll(c, ab);
+ assertTrue(verifyProps(c, LIST_ABC));
+ }
+
+ // ##################### clone(Properties) ###################################
+
+ /**
+ * Tests {@link org.teiid.core.util.utils.PropertiesUtils#clone(Properties)}
+ */
+ public void testSimpleModifiableClone(){
+ Properties a = make(MAP_A, null, !UNMODIFIABLE);
+ a = PropertiesUtils.clone(a);
+ assertTrue(verifyProps(a, LIST_A));
+ }
+
+ /**
+ * Tests {@link org.teiid.core.util.utils.PropertiesUtils#clone(Properties)}
+ */
+ public void testSimpleModifiableCloneWithUnmodifiableDefaults(){
+ Properties ab = make(MAP_A, make(MAP_B, null, UNMODIFIABLE), !UNMODIFIABLE);
+ ab = PropertiesUtils.clone(ab);
+ assertTrue(verifyProps(ab, LIST_AB));
+ }
+
+ /**
+ * Tests {@link org.teiid.core.util.utils.PropertiesUtils#clone(Properties)}
+ */
+ public void testSimpleModifiableCloneWithModifiableDefaults(){
+ Properties ab = make(MAP_A, make(MAP_B, null, !UNMODIFIABLE), !UNMODIFIABLE);
+ ab = PropertiesUtils.clone(ab);
+ assertTrue(verifyProps(ab, LIST_AB));
+ }
+
+ // ##################### clone(Properties, boolean) ##########################
+
+ /**
+ * Tests {@link org.teiid.core.util.utils.PropertiesUtils#clone(Properties, boolean)}
+ */
+ public void testCloneModifiableAsModifiable(){
+ Properties a = make(MAP_A, null, !UNMODIFIABLE);
+ a = PropertiesUtils.clone(a);
+ assertTrue(verifyProps(a, LIST_A));
+ }
+
+ /**
+ * Tests {@link org.teiid.core.util.utils.PropertiesUtils#clone(Properties, boolean)}
+ */
+ public void testCloneUnmodifiableAsModifiable(){
+ Properties a = make(MAP_A, null, UNMODIFIABLE);
+ a = PropertiesUtils.clone(a);
+ assertTrue(verifyProps(a, LIST_A));
+ }
+
+ /**
+ * Tests {@link org.teiid.core.util.utils.PropertiesUtils#clone(Properties, boolean)}
+ */
+ public void testCloneModifiableWithModifiableAsModifiable(){
+ Properties ab = make(MAP_A, make(MAP_B, null, !UNMODIFIABLE), !UNMODIFIABLE);
+ ab = PropertiesUtils.clone(ab);
+ assertTrue(verifyProps(ab, LIST_AB));
+ }
+
+ // ######## clone(Properties, Properties, boolean, boolean) ##################
+
+ /**
+ * Tests {@link org.teiid.core.util.utils.PropertiesUtils#clone(Properties, Properties, boolean, boolean)}
+ */
+ public void testCloneModAndModAsMod(){
+ Properties a = make(MAP_A, null, !UNMODIFIABLE);
+ Properties b = make(MAP_B, null, !UNMODIFIABLE);
+ a = PropertiesUtils.clone(a, b, !DEEP_CLONE);
+ assertTrue(verifyProps(a, LIST_AB));
+ }
+
+ /**
+ * Tests {@link org.teiid.core.util.utils.PropertiesUtils#clone(Properties, Properties, boolean, boolean)}
+ */
+ public void testDeepcloneModAndModAsMod(){
+ Properties a = make(MAP_A, null, !UNMODIFIABLE);
+ Properties b = make(MAP_B, null, !UNMODIFIABLE);
+ a = PropertiesUtils.clone(a, b, DEEP_CLONE);
+ assertTrue(verifyProps(a, LIST_AB));
+ }
+
+ /**
+ * Tests {@link org.teiid.core.util.utils.PropertiesUtils#clone(Properties, Properties, boolean, boolean)}
+ */
+ public void testCloneModAndUnmodAsMod(){
+ Properties a = make(MAP_A, null, !UNMODIFIABLE);
+ Properties b = make(MAP_B, null, UNMODIFIABLE);
+ a = PropertiesUtils.clone(a, b, !DEEP_CLONE);
+ assertTrue(verifyProps(a, LIST_AB));
+ }
+
+ /**
+ * Tests {@link org.teiid.core.util.utils.PropertiesUtils#clone(Properties, Properties, boolean, boolean)}
+ */
+ public void testDeepcloneModAndUnmodAsMod(){
+ Properties a = make(MAP_A, null, !UNMODIFIABLE);
+ Properties b = make(MAP_B, null, UNMODIFIABLE);
+ a = PropertiesUtils.clone(a, b, DEEP_CLONE);
+ assertTrue(verifyProps(a, LIST_AB));
+ }
+
+ /**
+ * Tests {@link org.teiid.core.util.utils.PropertiesUtils#clone(Properties, Properties, boolean, boolean)}
+ */
+ public void testCloneUnmodAndModAsMod(){
+ Properties a = make(MAP_A, null, UNMODIFIABLE);
+ Properties b = make(MAP_B, null, !UNMODIFIABLE);
+ a = PropertiesUtils.clone(a, b, !DEEP_CLONE);
+ assertTrue(verifyProps(a, LIST_AB));
+ }
+
+ /**
+ * Tests {@link org.teiid.core.util.utils.PropertiesUtils#clone(Properties, Properties, boolean, boolean)}
+ */
+ public void testDeepcloneUnmodAndModAsMod(){
+ Properties a = make(MAP_A, null, UNMODIFIABLE);
+ Properties b = make(MAP_B, null, !UNMODIFIABLE);
+ a = PropertiesUtils.clone(a, b, DEEP_CLONE);
+ assertTrue(verifyProps(a, LIST_AB));
+ }
+
+ /**
+ * Tests {@link org.teiid.core.util.utils.PropertiesUtils#clone(Properties, Properties, boolean, boolean)}
+ */
+ public void testCloneUnmodAndUnmodAsMod(){
+ Properties a = make(MAP_A, null, UNMODIFIABLE);
+ Properties b = make(MAP_B, null, UNMODIFIABLE);
+ a = PropertiesUtils.clone(a, b, !DEEP_CLONE);
+ assertTrue(verifyProps(a, LIST_AB));
+ }
+
+ /**
+ * Tests {@link org.teiid.core.util.utils.PropertiesUtils#clone(Properties, Properties, boolean, boolean)}
+ */
+ public void testDeepcloneUnmodAndUnmodAsMod(){
+ Properties a = make(MAP_A, null, UNMODIFIABLE);
+ Properties b = make(MAP_B, null, UNMODIFIABLE);
+ a = PropertiesUtils.clone(a, b, DEEP_CLONE);
+ assertTrue(verifyProps(a, LIST_AB));
+ }
+
+ // ########################## ADVANCED #######################################
+
+ //===================================================================
+ //TESTS HELPERS
+ //===================================================================
+
+ /**
+ * Checks the Properties against the static test data defined in this Class.
+ * @param props Properties to check
+ * @param chainOfMappings a List of Map objects in order of defaults. That is,
+ * the first Map should represent the properties itself, the second Map the internal
+ * defaults of the properties, the third Map the defaults of the second Map, and so on...
+ * @return true or false for pass or fail
+ */
+ private static final boolean verifyProps(Properties props, List chainOfMappings){
+ boolean result = verifyAllPropsPresent(props, chainOfMappings);
+ if (result){
+ result = verifyCorrectMappings(props, chainOfMappings);
+ }
+ return result;
+ }
+
+ /**
+ * Check that the Set of all keys in the List<Map> chainOfMappings is present in props.
+ * @param props Properties to check
+ * @param chainOfMappings a List of Map objects in order of defaults. That is,
+ * the first Map should represent the properties itself, the second Map the internal
+ * defaults of the properties, the third Map the defaults of the second Map, and so on...
+ * @return true all keys are present, false otherwise
+ */
+ private static final boolean verifyAllPropsPresent(Properties props, List chainOfMappings){
+ Enumeration e = props.propertyNames();
+ HashSet propNames = new HashSet();
+ while (e.hasMoreElements()) {
+ propNames.add( e.nextElement());
+ }
+
+ HashSet testNames = new HashSet();
+ Iterator i = chainOfMappings.iterator();
+ while (i.hasNext()) {
+ Map aMapping = (Map) i.next();
+ testNames.addAll(aMapping.keySet());
+ }
+ return propNames.containsAll(testNames);
+ }
+
+ /**
+ * Verify that the Properties props correctly reflects the chain of mappings (which
+ * simulate an arbitrary chain of Properties and default Properties). For each
+ * property name, look in order through each Map in the List chainOfMappings to
+ * see if (a) that property name is there, and (b) that it is mapped to the same
+ * property. There are two conditions that will cause this method to returns
+ * false: (1) if a property name maps to an incorrect, non-null value the first
+ * time a mapping for that property name is found; (2) if no mapping is found at
+ * for a property name.
+ * @param props Properties to check
+ * @param chainOfMappings a List of Map objects in order of defaults. That is,
+ * the first Map should represent the properties itself, the second Map the internal
+ * defaults of the properties, the third Map the defaults of the second Map, and so on...
+ * @return true if props correctly reflects the chainOfMappings, false otherwise
+ */
+ private static final boolean verifyCorrectMappings(Properties props, List chainOfMappings){
+ Enumeration e = props.propertyNames();
+ boolean allGood = true;
+ while (e.hasMoreElements() && allGood) {
+ boolean foundKey = false;
+ String propName = (String) e.nextElement();
+ String propValue = props.getProperty(propName);
+ Iterator i = chainOfMappings.iterator();
+ while (i.hasNext() && !foundKey) {
+ Map aMapping = (Map) i.next();
+ Object value = aMapping.get(propName);
+ if (value != null){
+ foundKey = true;
+ allGood = propValue.equals(value);
+ }
+ }
+ }
+ return allGood;
+ }
+
+ /**
+ * Constructs a Properties object from the supplied Map of properties,
+ * the supplied defaults, and optionally wraps the returned Properties
+ * in an UnmodifiableProperties instance
+ * @param mappings Map of String propName to String propValue
+ * @param defaults optional default Properties; may be null
+ * @param makeUnmodifiable If true, the returned Properties object will be
+ * an instance of UnmodifiableProperties wrapping a Properties object
+ */
+ private static final Properties make(Map mappings, Properties defaults, boolean makeUnmodifiable){
+ Properties props = null;
+ if (defaults != null){
+ props = new Properties(defaults);
+ } else {
+ props = new Properties();
+ }
+ Iterator i = mappings.entrySet().iterator();
+ while (i.hasNext()) {
+ Map.Entry anEntry = (Map.Entry) i.next();
+ props.setProperty((String)anEntry.getKey(),(String)anEntry.getValue());
+ }
+ return props;
+ }
+
+ private static final boolean UNMODIFIABLE = true;
+ private static final boolean DEEP_CLONE = true;
+
+ private static final String PROP_NAME_1 = "prop1"; //$NON-NLS-1$
+ private static final String PROP_NAME_2 = "prop2"; //$NON-NLS-1$
+ private static final String PROP_NAME_3 = "prop3"; //$NON-NLS-1$
+ private static final String PROP_NAME_4 = "prop4"; //$NON-NLS-1$
+ private static final String PROP_NAME_5 = "prop5"; //$NON-NLS-1$
+ private static final String PROP_NAME_6 = "prop6"; //$NON-NLS-1$
+
+ //"a", "b", or "c" designates which of the test Properties
+ //the values will go in
+ private static final String PROP_VALUE_1A = "value1a"; //$NON-NLS-1$
+ private static final String PROP_VALUE_1B = "value1b"; //$NON-NLS-1$
+ private static final String PROP_VALUE_2A = "value2a"; //$NON-NLS-1$
+ private static final String PROP_VALUE_2C = "value2c"; //$NON-NLS-1$
+ private static final String PROP_VALUE_3A = "value3a"; //$NON-NLS-1$
+ private static final String PROP_VALUE_4B = "value4b"; //$NON-NLS-1$
+ private static final String PROP_VALUE_4C = "value4c"; //$NON-NLS-1$
+ private static final String PROP_VALUE_5B = "value5b"; //$NON-NLS-1$
+ private static final String PROP_VALUE_6C = "value6c"; //$NON-NLS-1$
+
+ private static final Map MAP_A;
+ private static final Map MAP_B;
+ private static final Map MAP_C;
+ private static final List LIST_A;
+// private static final List LIST_B;
+ private static final List LIST_AB;
+ private static final List LIST_ABC;
+ static{
+ //A
+ Map temp = new HashMap();
+ temp.put(PROP_NAME_1, PROP_VALUE_1A);
+ temp.put(PROP_NAME_2, PROP_VALUE_2A);
+ temp.put(PROP_NAME_3, PROP_VALUE_3A);
+ MAP_A = Collections.unmodifiableMap(temp);
+ //B
+ temp = new HashMap();
+ temp.put(PROP_NAME_1, PROP_VALUE_1B);
+ temp.put(PROP_NAME_4, PROP_VALUE_4B);
+ temp.put(PROP_NAME_5, PROP_VALUE_5B);
+ MAP_B = Collections.unmodifiableMap(temp);
+ //C
+ temp = new HashMap();
+ temp.put(PROP_NAME_2, PROP_VALUE_2C);
+ temp.put(PROP_NAME_4, PROP_VALUE_4C);
+ temp.put(PROP_NAME_6, PROP_VALUE_6C);
+ MAP_C = Collections.unmodifiableMap(temp);
+ //LISTS OF BINDINGS
+ List tempList = new ArrayList(1);
+ tempList.add(MAP_A);
+ LIST_A = Collections.unmodifiableList(tempList);
+ tempList = new ArrayList(1);
+ tempList.add(MAP_B);
+// LIST_B = Collections.unmodifiableList(tempList);
+ tempList = new ArrayList(2);
+ tempList.add(MAP_A);
+ tempList.add(MAP_B);
+ LIST_AB = Collections.unmodifiableList(tempList);
+ tempList = new ArrayList(3);
+ tempList.add(MAP_A);
+ tempList.add(MAP_B);
+ tempList.add(MAP_C);
+ LIST_ABC = Collections.unmodifiableList(tempList);
+ }
+
+ public void testNestedProperties() throws Exception {
+ System.setProperty("testdirectory", "c:/metamatrix/testdirectory"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ Properties p = new Properties(System.getProperties());
+ p.setProperty("key1", "value1"); //$NON-NLS-1$ //$NON-NLS-2$
+ p.setProperty("key2", "${key1}/value2"); //$NON-NLS-1$ //$NON-NLS-2$
+ p.put("key3", new Integer(-234)); //$NON-NLS-1$
+ p.setProperty("key4", "${key2}/value4"); //$NON-NLS-1$ //$NON-NLS-2$
+ p.setProperty("key5", "${testdirectory}/testdata"); //$NON-NLS-1$ //$NON-NLS-2$
+ p.setProperty("key7", "anotherdir/${testdirectory}/${key1}"); //$NON-NLS-1$ //$NON-NLS-2$
+ int currentSize = p.size();
+
+ Properties m = PropertiesUtils.resolveNestedProperties(p);
+ assertEquals("value1/value2", m.getProperty("key2")); //$NON-NLS-1$ //$NON-NLS-2$
+ assertEquals(new Integer(-234), m.get("key3")); //$NON-NLS-1$
+ assertEquals("value1/value2/value4", m.getProperty("key4")); //$NON-NLS-1$ //$NON-NLS-2$
+ assertEquals("c:/metamatrix/testdirectory/testdata", m.getProperty("key5")); //$NON-NLS-1$ //$NON-NLS-2$
+ assertEquals("anotherdir/c:/metamatrix/testdirectory/value1", m.getProperty("key7")); //$NON-NLS-1$ //$NON-NLS-2$
+ assertTrue(p == m); // no cloning.
+ assertTrue(currentSize == m.size());
+
+ p.setProperty("key6", "${foo}"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ try {
+ m = PropertiesUtils.resolveNestedProperties(p);
+ fail("must have failed to resovle as {foo} does not exist"); //$NON-NLS-1$
+ } catch(RuntimeException e) {
+ // pass
+ }
+
+
+ // JIRA: TEIID-909 - The resolveNestedProperties logic goes in a loop when the key is also in the value as ${key}.
+ Properties dups = new Properties();
+ dups.setProperty("usethis", "${usethis}");
+
+ dups = PropertiesUtils.resolveNestedProperties(dups);
+
+
+
+ }
+
+ public void testOverrideProperties() {
+ Properties p = new Properties();
+
+ p.setProperty("foo", "bar"); //$NON-NLS-1$ //$NON-NLS-2$
+ p.setProperty("foo1", "bar1"); //$NON-NLS-1$ //$NON-NLS-2$
+ p.setProperty("foo2", "bar2"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ Properties p1 = new Properties(p);
+
+ p1.setProperty("foo", "x"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ PropertiesUtils.setOverrideProperies(p1, p);
+
+ assertEquals("bar", p1.getProperty("foo")); //$NON-NLS-1$ //$NON-NLS-2$
+
+ assertEquals(1, p1.size());
+ }
+
+ public void testGetInvalidInt() {
+ Properties p = new Properties();
+ p.setProperty("x", "y"); //$NON-NLS-1$ //$NON-NLS-2$
+ try {
+ PropertiesUtils.getIntProperty(p, "x", 1); //$NON-NLS-1$
+ fail("expected exception"); //$NON-NLS-1$
+ } catch (InvalidPropertyException e) {
+ assertEquals("Property 'x' with value 'y' is not a valid Integer.", e.getMessage()); //$NON-NLS-1$
+ }
+ }
+
+ static class Bean {
+ private int prop;
+ private String prop1;
+ private double prop2;
+ private List<String> prop3;
+
+ public int getProp() {
+ return prop;
+ }
+ public void setProp(int prop) {
+ this.prop = prop;
+ }
+ public String getProp1() {
+ return prop1;
+ }
+ public void setProp1(String prop1) {
+ this.prop1 = prop1;
+ }
+ public double getProp2() {
+ return prop2;
+ }
+ public void setProp2(double prop2) {
+ this.prop2 = prop2;
+ }
+ public List<String> getProp3() {
+ return prop3;
+ }
+ public void setProp3(List<String> prop3) {
+ this.prop3 = prop3;
+ }
+ }
+
+ public void testSetBeanProperties() {
+ Bean bean = new Bean();
+ Properties p = new Properties();
+ p.setProperty("prop", "0"); //$NON-NLS-1$//$NON-NLS-2$
+ p.setProperty("prop1", "1"); //$NON-NLS-1$ //$NON-NLS-2$
+ p.setProperty("prop2", "2"); //$NON-NLS-1$ //$NON-NLS-2$
+ p.setProperty("prop3", "3"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ p = new Properties(p);
+ p.put("object", new Object()); //$NON-NLS-1$
+
+ PropertiesUtils.setBeanProperties(bean, p, null);
+
+ assertEquals(0, bean.getProp());
+ assertEquals("1", bean.getProp1()); //$NON-NLS-1$
+ assertEquals(2d, bean.getProp2());
+ assertEquals(Arrays.asList("3"), bean.getProp3()); //$NON-NLS-1$
+
+ p.setProperty("prop", "?"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ try {
+ PropertiesUtils.setBeanProperties(bean, p, null);
+ fail("expected exception"); //$NON-NLS-1$
+ } catch (InvalidPropertyException e) {
+
+ }
+ }
+
+ public void testGetInt() {
+ Properties p = new Properties();
+ p.setProperty("prop", "0 "); //$NON-NLS-1$ //$NON-NLS-2$
+ assertEquals(PropertiesUtils.getIntProperty(p, "prop", -1), 0); //$NON-NLS-1$
+ }
+}
Copied: trunk/common-core/src/test/java/org/teiid/core/util/TestReaderInputStream.java (from rev 2112, trunk/common-core/src/test/java/com/metamatrix/common/util/TestReaderInputStream.java)
===================================================================
--- trunk/common-core/src/test/java/org/teiid/core/util/TestReaderInputStream.java (rev 0)
+++ trunk/common-core/src/test/java/org/teiid/core/util/TestReaderInputStream.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,70 @@
+/*
+ * 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 org.teiid.core.util;
+
+import java.io.FileInputStream;
+import java.io.FileReader;
+import java.io.StringReader;
+import java.nio.charset.Charset;
+
+import org.teiid.core.util.ReaderInputStream;
+
+import junit.framework.TestCase;
+
+
+public class TestReaderInputStream extends TestCase {
+
+ public void testUTF8() throws Exception {
+ FileInputStream fis = new FileInputStream(UnitTestUtil.getTestDataFile("legal_notice.xml")); //$NON-NLS-1$
+ ReaderInputStream ris = new ReaderInputStream(new FileReader(UnitTestUtil.getTestDataFile("legal_notice.xml")), Charset.forName("UTF-8")); //$NON-NLS-1$ //$NON-NLS-2$
+
+ int value;
+ while (true) {
+ value = fis.read();
+ assertEquals(value, ris.read());
+ if (value == -1) {
+ break;
+ }
+ }
+ }
+
+ //the encoding strategy is roughly equivalent to utf-16
+ public void testUTF16() throws Exception {
+ String actual = "!?abc"; //$NON-NLS-1$
+ ReaderInputStream ris = new ReaderInputStream(new StringReader(actual), Charset.forName("UTF-16"), 1); //$NON-NLS-1$
+ byte[] result = new byte[(actual.length()) * 2 + 2];
+ ris.read(result);
+ String resultString = new String(result, "UTF-16"); //$NON-NLS-1$
+ assertEquals(resultString, actual);
+ }
+
+ public void testASCII() throws Exception {
+ String actual = "!?abc"; //$NON-NLS-1$
+ ReaderInputStream ris = new ReaderInputStream(new StringReader(actual), Charset.forName("US-ASCII"), 1); //$NON-NLS-1$
+ byte[] result = new byte[actual.length()];
+ ris.read(result);
+ String resultString = new String(result, "US-ASCII"); //$NON-NLS-1$
+ assertEquals(resultString, actual);
+ }
+
+}
Modified: trunk/common-core/src/test/java/org/teiid/core/util/TestReflectionHelper.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/core/util/TestReflectionHelper.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/util/TestReflectionHelper.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,13 +20,15 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.io.Serializable;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
+import org.teiid.core.util.ReflectionHelper;
+
import junit.framework.TestCase;
/**
Copied: trunk/common-core/src/test/java/org/teiid/core/util/TestSqlUtil.java (from rev 2112, trunk/common-core/src/test/java/com/metamatrix/common/util/TestSqlUtil.java)
===================================================================
--- trunk/common-core/src/test/java/org/teiid/core/util/TestSqlUtil.java (rev 0)
+++ trunk/common-core/src/test/java/org/teiid/core/util/TestSqlUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,94 @@
+/*
+ * 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 org.teiid.core.util;
+
+import org.teiid.core.util.SqlUtil;
+
+import junit.framework.TestCase;
+
+/**
+ */
+public class TestSqlUtil extends TestCase {
+
+ public TestSqlUtil(String name) {
+ super(name);
+ }
+
+ public void helpTest(String sql, boolean isUpdate) {
+ boolean actual = SqlUtil.isUpdateSql(sql);
+ assertEquals(isUpdate, actual);
+ }
+
+ public void testSelect() {
+ helpTest("SELECT x FROM y", false); //$NON-NLS-1$
+ }
+
+ public void testInsert() {
+ helpTest("Insert INTO g (a) VALUES (1)", true); //$NON-NLS-1$
+ }
+
+ public void testUpdate() {
+ helpTest("upDate x set a=5", true); //$NON-NLS-1$
+ }
+
+ public void testDelete() {
+ helpTest("delete FROM x", true); //$NON-NLS-1$
+ }
+
+ public void testInsertWithWhitespace() {
+ helpTest("\nINSERT INTO g (a) VALUES (1)", true); //$NON-NLS-1$
+ }
+
+ public void testExec() {
+ helpTest("exec sq1()", false); //$NON-NLS-1$
+ }
+
+ public void testXquery() {
+ helpTest("<i/>", false); //$NON-NLS-1$
+ }
+
+ public void testSelectInto1() {
+ helpTest("SELECT x INTO z FROM y", true); //$NON-NLS-1$
+ }
+
+ public void testSelectInto2() {
+ helpTest("SELECT x, INTOz FROM y", false); //$NON-NLS-1$
+ }
+
+ public void testSelectInto3() {
+ helpTest("SELECT x into z FROM y", true); //$NON-NLS-1$
+ }
+
+ public void testSelectInto4() {
+ helpTest("SELECT x into z", true); //$NON-NLS-1$
+ }
+
+ public void testCreate() {
+ helpTest(" create table x", true); //$NON-NLS-1$
+ }
+
+ public void testDrop() {
+ helpTest("/* */ drop table x", true); //$NON-NLS-1$
+ }
+
+}
Modified: trunk/common-core/src/test/java/org/teiid/core/util/TestStringUtil.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/core/util/TestStringUtil.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/util/TestStringUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,12 +20,14 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import org.teiid.core.util.StringUtil;
+
import junit.framework.TestCase;
/**
Copied: trunk/common-core/src/test/java/org/teiid/core/util/TestTimestampWithTimezone.java (from rev 2112, trunk/common-core/src/test/java/com/metamatrix/common/util/TestTimestampWithTimezone.java)
===================================================================
--- trunk/common-core/src/test/java/org/teiid/core/util/TestTimestampWithTimezone.java (rev 0)
+++ trunk/common-core/src/test/java/org/teiid/core/util/TestTimestampWithTimezone.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -0,0 +1,219 @@
+/*
+ * 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 org.teiid.core.util;
+
+import java.sql.Date;
+import java.sql.Time;
+import java.sql.Timestamp;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.TimeZone;
+
+import org.teiid.core.util.TimestampWithTimezone;
+
+import junit.framework.TestCase;
+
+public class TestTimestampWithTimezone extends TestCase {
+
+ /**
+ * Constructor for TestTimestampWithTimezone.
+ *
+ * @param name
+ */
+ public TestTimestampWithTimezone(String name) {
+ super(name);
+ }
+
+ public void setUp() {
+ TimestampWithTimezone.resetCalendar(TimeZone.getTimeZone("America/Chicago")); //$NON-NLS-1$
+ }
+
+ public void tearDown() {
+ TimestampWithTimezone.resetCalendar(null);
+ }
+
+ /**
+ * Ensures that the same calendar fields in different timezones (initially different UTC) can be converted to the same UTC in
+ * the local time zone
+ *
+ * @param startts
+ * @param startnanos
+ * @param starttz
+ * @param endtz
+ * @since 4.3
+ */
+ public void helpTestSame(String startts,
+ int startnanos,
+ String starttz,
+ String endtz) {
+ try {
+ Timestamp start = getTimestamp(startts, startnanos, starttz);
+ Timestamp end = getTimestamp(startts, startnanos, endtz);
+
+ assertFalse("Initial timestamps should be different UTC times", start.getTime() == end.getTime()); //$NON-NLS-1$
+
+ assertEquals(TimestampWithTimezone.createTimestamp(start, TimeZone.getTimeZone(starttz), Calendar.getInstance())
+ .getTime(), TimestampWithTimezone.createTimestamp(end,
+ TimeZone.getTimeZone(endtz),
+ Calendar.getInstance()).getTime());
+ } catch (ParseException e) {
+ fail(e.toString());
+ }
+ }
+
+ /**
+ * Assuming local time zone of -06:00, change ts to endtz and compare to expected
+ *
+ * @param ts
+ * @param endtz
+ * @since 4.3
+ */
+ public void helpTestChange(String ts,
+ String endtz,
+ String expected) {
+ Timestamp start = Timestamp.valueOf(ts);
+ Calendar target = Calendar.getInstance(TimeZone.getTimeZone(endtz));
+ assertEquals(expected,
+ TimestampWithTimezone.createTimestamp(start, TimeZone.getTimeZone("America/Chicago"), target).toString()); //$NON-NLS-1$
+ }
+
+ /**
+ * @param startts
+ * @param startnanos
+ * @param starttz
+ * @throws ParseException
+ * @since 4.3
+ */
+ private Timestamp getTimestamp(String startts,
+ int startnanos,
+ String starttz) throws ParseException {
+ DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //$NON-NLS-1$
+ df.setTimeZone(TimeZone.getTimeZone(starttz));
+
+ Timestamp ts = new Timestamp(df.parse(startts).getTime());
+ ts.setNanos(startnanos);
+ return ts;
+ }
+
+ public void testDST() {
+ helpTestSame("2005-10-30 02:39:10", 1, "America/Chicago", //$NON-NLS-1$ //$NON-NLS-2$
+ "GMT-05:00"); //$NON-NLS-1$
+
+ // ambiguous times are defaulted to standard time equivalent
+ helpTestSame("2005-10-30 01:39:10", 1, "America/Chicago", //$NON-NLS-1$ //$NON-NLS-2$
+ "GMT"); //$NON-NLS-1$
+
+ // test to ensure a time not representable in DST is converted correctly
+ helpTestSame("2005-04-03 02:39:10", 1, "GMT", //$NON-NLS-1$ //$NON-NLS-2$
+ "America/Chicago"); //$NON-NLS-1$
+
+ //expected is in DST
+ helpTestChange("2005-10-30 02:39:10.1", "GMT", "2005-10-29 21:39:10.1"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+
+ //expected is in standard time
+ helpTestChange("2005-10-30 10:39:10.1", "GMT", "2005-10-30 04:39:10.1"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+
+ }
+
+ public void testTimezone() {
+ helpTestSame("2004-06-29 15:39:10", 1, "GMT-06:00", //$NON-NLS-1$ //$NON-NLS-2$
+ "GMT-05:00"); //$NON-NLS-1$
+ }
+
+ public void testTimezone2() {
+ helpTestSame("2004-06-29 15:39:10", 1, "GMT-08:00", //$NON-NLS-1$ //$NON-NLS-2$
+ "GMT-06:00"); //$NON-NLS-1$
+ }
+
+ public void testTimezone3() {
+ helpTestSame("2004-08-31 18:25:54", 1, "Europe/London", //$NON-NLS-1$ //$NON-NLS-2$
+ "GMT"); //$NON-NLS-1$
+ }
+
+ public void testTimezoneOverMidnight() {
+ helpTestSame("2004-06-30 23:39:10", 1, "America/Los_Angeles", //$NON-NLS-1$ //$NON-NLS-2$
+ "America/Chicago"); //$NON-NLS-1$
+ }
+
+ public void testCase2852() {
+ helpTestSame("2005-05-17 22:35:33", 508659, "GMT", //$NON-NLS-1$ //$NON-NLS-2$
+ "America/New_York"); //$NON-NLS-1$
+ }
+
+ public void testCreateDate() {
+ Timestamp t = Timestamp.valueOf("2004-06-30 23:39:10.1201"); //$NON-NLS-1$
+ Date date = TimestampWithTimezone.createDate(t);
+
+ Calendar cal = Calendar.getInstance();
+
+ cal.setTimeInMillis(date.getTime());
+
+ assertEquals(cal.get(Calendar.HOUR_OF_DAY), 0);
+ assertEquals(cal.get(Calendar.MINUTE), 0);
+ assertEquals(cal.get(Calendar.SECOND), 0);
+ assertEquals(cal.get(Calendar.MILLISECOND), 0);
+ assertEquals(cal.get(Calendar.YEAR), 2004);
+ assertEquals(cal.get(Calendar.MONTH), Calendar.JUNE);
+ assertEquals(cal.get(Calendar.DATE), 30);
+ }
+
+ public void testCreateTime() {
+ Timestamp t = Timestamp.valueOf("2004-06-30 23:39:10.1201"); //$NON-NLS-1$
+ Time date = TimestampWithTimezone.createTime(t);
+
+ Calendar cal = Calendar.getInstance();
+
+ cal.setTimeInMillis(date.getTime());
+
+ assertEquals(cal.get(Calendar.HOUR_OF_DAY), 23);
+ assertEquals(cal.get(Calendar.MINUTE), 39);
+ assertEquals(cal.get(Calendar.SECOND), 10);
+ assertEquals(cal.get(Calendar.MILLISECOND), 0);
+ assertEquals(cal.get(Calendar.YEAR), 1970);
+ assertEquals(cal.get(Calendar.MONTH), Calendar.JANUARY);
+ assertEquals(cal.get(Calendar.DATE), 1);
+ }
+
+ /**
+ * Even though the id of the timezones are different, this should not change the result
+ */
+ public void testDateToDateConversion() {
+ Date t = Date.valueOf("2004-06-30"); //$NON-NLS-1$
+ Date converted = TimestampWithTimezone.createDate(t, TimeZone.getTimeZone("America/Chicago"), Calendar.getInstance(TimeZone.getTimeZone("US/Central"))); //$NON-NLS-1$ //$NON-NLS-2$
+
+ assertEquals(t.getTime(), converted.getTime());
+ }
+
+ public void testDateToDateConversion1() {
+ Date t = Date.valueOf("2004-06-30"); //$NON-NLS-1$
+ Date converted = TimestampWithTimezone.createDate(t, TimeZone.getTimeZone("America/Chicago"), Calendar.getInstance(TimeZone.getTimeZone("GMT"))); //$NON-NLS-1$ //$NON-NLS-2$
+
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(converted);
+
+ assertEquals(0, cal.get(Calendar.MILLISECOND));
+ }
+
+}
\ No newline at end of file
Modified: trunk/common-core/src/test/java/org/teiid/core/util/UnitTestUtil.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/core/util/UnitTestUtil.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/core/util/UnitTestUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.core.util;
+package org.teiid.core.util;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
Copied: trunk/common-core/src/test/java/org/teiid/query/unittest (from rev 2112, trunk/common-core/src/test/java/com/metamatrix/query/unittest)
Modified: trunk/common-core/src/test/java/org/teiid/query/unittest/TimestampUtil.java
===================================================================
--- trunk/common-core/src/test/java/com/metamatrix/query/unittest/TimestampUtil.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/common-core/src/test/java/org/teiid/query/unittest/TimestampUtil.java 2010-05-11 21:39:07 UTC (rev 2115)
@@ -24,7 +24,7 @@
* Date: Jun 16, 2004
* Time: 1:47:51 PM
*/
-package com.metamatrix.query.unittest;
+package org.teiid.query.unittest;
import java.sql.Date;
import java.sql.Time;
Deleted: trunk/common-core/src/test/resources/test.jar
===================================================================
(Binary files differ)
15 years, 11 months
teiid SVN: r2114 - in trunk: cache-jbosscache/src/main/java and 24 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-05-11 17:30:12 -0400 (Tue, 11 May 2010)
New Revision: 2114
Added:
trunk/cache-jbosscache/src/main/java/org/
trunk/cache-jbosscache/src/main/java/org/teiid/
trunk/cache-jbosscache/src/main/java/org/teiid/cache/
trunk/cache-jbosscache/src/main/java/org/teiid/cache/jboss/
trunk/client/src/main/java/org/teiid/client/security/TeiidSecurityException.java
trunk/client/src/main/java/org/teiid/client/util/ExceptionHolder.java
trunk/client/src/test/java/org/teiid/client/util/TestExceptionHolder.java
trunk/client/src/test/resources/test.jar
Removed:
trunk/cache-jbosscache/src/main/java/com/metamatrix/cache/jboss/
trunk/client/src/main/java/org/teiid/client/security/MetaMatrixSecurityException.java
Modified:
trunk/adminshell/src/main/java/org/teiid/adminshell/AdminShell.java
trunk/adminshell/src/main/java/org/teiid/adminshell/MigrationUtil.java
trunk/cache-jbosscache/src/main/java/org/teiid/cache/jboss/JBossCache.java
trunk/cache-jbosscache/src/main/java/org/teiid/cache/jboss/JBossCacheFactory.java
trunk/cache-jbosscache/src/main/java/org/teiid/cache/jboss/JBossCacheListener.java
trunk/client/src/main/java/org/teiid/adminapi/AdminException.java
trunk/client/src/main/java/org/teiid/adminapi/AdminFactory.java
trunk/client/src/main/java/org/teiid/adminapi/impl/RequestMetadata.java
trunk/client/src/main/java/org/teiid/client/BatchSerializer.java
trunk/client/src/main/java/org/teiid/client/DQP.java
trunk/client/src/main/java/org/teiid/client/ProcedureErrorInstructionException.java
trunk/client/src/main/java/org/teiid/client/RequestMessage.java
trunk/client/src/main/java/org/teiid/client/ResultsMessage.java
trunk/client/src/main/java/org/teiid/client/SourceWarning.java
trunk/client/src/main/java/org/teiid/client/lob/LobChunkInputStream.java
trunk/client/src/main/java/org/teiid/client/lob/StreamingLobChunckProducer.java
trunk/client/src/main/java/org/teiid/client/metadata/MetadataResult.java
trunk/client/src/main/java/org/teiid/client/metadata/ResultsMetadataDefaults.java
trunk/client/src/main/java/org/teiid/client/plan/PlanNode.java
trunk/client/src/main/java/org/teiid/client/security/ILogon.java
trunk/client/src/main/java/org/teiid/client/security/InvalidSessionException.java
trunk/client/src/main/java/org/teiid/client/security/LogonException.java
trunk/client/src/main/java/org/teiid/client/security/SessionToken.java
trunk/client/src/main/java/org/teiid/client/util/ExceptionUtil.java
trunk/client/src/main/java/org/teiid/client/xa/XATransactionException.java
trunk/client/src/main/java/org/teiid/jdbc/BatchResults.java
trunk/client/src/main/java/org/teiid/jdbc/CallableStatementImpl.java
trunk/client/src/main/java/org/teiid/jdbc/ConnectionImpl.java
trunk/client/src/main/java/org/teiid/jdbc/DataTypeTransformer.java
trunk/client/src/main/java/org/teiid/jdbc/DatabaseMetaDataImpl.java
trunk/client/src/main/java/org/teiid/jdbc/DeferredMetadataProvider.java
trunk/client/src/main/java/org/teiid/jdbc/EmbeddedProfile.java
trunk/client/src/main/java/org/teiid/jdbc/JDBCPlugin.java
trunk/client/src/main/java/org/teiid/jdbc/ParameterMetaDataImpl.java
trunk/client/src/main/java/org/teiid/jdbc/PreparedStatementImpl.java
trunk/client/src/main/java/org/teiid/jdbc/ResultSetImpl.java
trunk/client/src/main/java/org/teiid/jdbc/ResultSetMetaDataImpl.java
trunk/client/src/main/java/org/teiid/jdbc/SocketProfile.java
trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java
trunk/client/src/main/java/org/teiid/jdbc/TeiidDriver.java
trunk/client/src/main/java/org/teiid/jdbc/TeiidSQLException.java
trunk/client/src/main/java/org/teiid/jdbc/WrapperImpl.java
trunk/client/src/main/java/org/teiid/net/CommunicationException.java
trunk/client/src/main/java/org/teiid/net/ConnectionException.java
trunk/client/src/main/java/org/teiid/net/HostInfo.java
trunk/client/src/main/java/org/teiid/net/NetPlugin.java
trunk/client/src/main/java/org/teiid/net/socket/Handshake.java
trunk/client/src/main/java/org/teiid/net/socket/OioOjbectChannelFactory.java
trunk/client/src/main/java/org/teiid/net/socket/ServiceInvocationStruct.java
trunk/client/src/main/java/org/teiid/net/socket/SocketServerConnection.java
trunk/client/src/main/java/org/teiid/net/socket/SocketServerConnectionFactory.java
trunk/client/src/main/java/org/teiid/net/socket/SocketServerInstance.java
trunk/client/src/main/java/org/teiid/net/socket/SocketServerInstanceImpl.java
trunk/client/src/main/java/org/teiid/net/socket/SocketUtil.java
trunk/client/src/main/java/org/teiid/netty/handler/codec/serialization/CompactObjectOutputStream.java
trunk/client/src/main/java/org/teiid/netty/handler/codec/serialization/ObjectDecoderInputStream.java
trunk/client/src/main/java/org/teiid/netty/handler/codec/serialization/ObjectEncoderOutputStream.java
trunk/client/src/test/java/org/teiid/client/TestBatchSerializer.java
trunk/client/src/test/java/org/teiid/client/TestRequestMessage.java
trunk/client/src/test/java/org/teiid/client/lob/TestByteLobChunk.java
trunk/client/src/test/java/org/teiid/client/lob/TestLobChunkInputStream.java
trunk/client/src/test/java/org/teiid/jdbc/TestAllResultsImpl.java
trunk/client/src/test/java/org/teiid/jdbc/TestMMCallableStatement.java
trunk/client/src/test/java/org/teiid/jdbc/TestMMResultSet.java
trunk/client/src/test/java/org/teiid/jdbc/TestMMSQLException.java
trunk/client/src/test/java/org/teiid/jdbc/TestTeiidDataSource.java
trunk/client/src/test/java/org/teiid/net/socket/TestServiceInvocationStruct.java
trunk/client/src/test/java/org/teiid/net/socket/TestSocketServerConnection.java
trunk/client/src/test/java/org/teiid/net/socket/TestSocketServerInstanceImpl.java
trunk/client/src/test/java/org/teiid/net/socket/TestSocketServiceRegistry.java
trunk/client/src/test/java/org/teiid/net/socket/TestSocketUtil.java
Log:
TEIID-918 changing package to org.teiid and removing metamatrix from class names
Modified: trunk/adminshell/src/main/java/org/teiid/adminshell/AdminShell.java
===================================================================
--- trunk/adminshell/src/main/java/org/teiid/adminshell/AdminShell.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/adminshell/src/main/java/org/teiid/adminshell/AdminShell.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -49,9 +49,9 @@
import org.teiid.adminapi.VDB;
import org.teiid.adminapi.WorkerPoolStatistics;
import org.teiid.adminshell.Help.Doc;
+import org.teiid.core.util.ObjectConverterUtil;
+import org.teiid.core.util.ReaderInputStream;
-import com.metamatrix.common.util.ReaderInputStream;
-import com.metamatrix.core.util.ObjectConverterUtil;
/**
* Contextual shell wrapper around the AdminAPI, see {@link Admin}
Modified: trunk/adminshell/src/main/java/org/teiid/adminshell/MigrationUtil.java
===================================================================
--- trunk/adminshell/src/main/java/org/teiid/adminshell/MigrationUtil.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/adminshell/src/main/java/org/teiid/adminshell/MigrationUtil.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -40,10 +40,11 @@
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
-import com.metamatrix.common.util.ApplicationInfo;
-import com.metamatrix.core.util.FileUtils;
-import com.metamatrix.core.util.ObjectConverterUtil;
+import org.teiid.core.util.ApplicationInfo;
+import org.teiid.core.util.FileUtils;
+import org.teiid.core.util.ObjectConverterUtil;
+
@SuppressWarnings("nls")
public class MigrationUtil {
Copied: trunk/cache-jbosscache/src/main/java/org/teiid/cache/jboss (from rev 2112, trunk/cache-jbosscache/src/main/java/com/metamatrix/cache/jboss)
Modified: trunk/cache-jbosscache/src/main/java/org/teiid/cache/jboss/JBossCache.java
===================================================================
--- trunk/cache-jbosscache/src/main/java/com/metamatrix/cache/jboss/JBossCache.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/cache-jbosscache/src/main/java/org/teiid/cache/jboss/JBossCache.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.cache.jboss;
+package org.teiid.cache.jboss;
import java.util.ArrayList;
import java.util.Collection;
@@ -30,9 +30,9 @@
import org.jboss.cache.Fqn;
import org.jboss.cache.Node;
+import org.teiid.cache.Cache;
+import org.teiid.cache.CacheListener;
-import com.metamatrix.cache.Cache;
-import com.metamatrix.cache.CacheListener;
/**
* Implementation of Cache using JBoss Cache
Modified: trunk/cache-jbosscache/src/main/java/org/teiid/cache/jboss/JBossCacheFactory.java
===================================================================
--- trunk/cache-jbosscache/src/main/java/com/metamatrix/cache/jboss/JBossCacheFactory.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/cache-jbosscache/src/main/java/org/teiid/cache/jboss/JBossCacheFactory.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -20,7 +20,7 @@
* 02110-1301 USA.
*/
-package com.metamatrix.cache.jboss;
+package org.teiid.cache.jboss;
import java.io.Serializable;
@@ -39,13 +39,13 @@
import org.jboss.cache.eviction.LFUAlgorithmConfig;
import org.jboss.cache.eviction.LRUAlgorithmConfig;
import org.jboss.cache.jmx.CacheJmxWrapperMBean;
+import org.teiid.cache.Cache;
+import org.teiid.cache.CacheConfiguration;
+import org.teiid.cache.CacheFactory;
+import org.teiid.cache.Cache.Type;
+import org.teiid.cache.CacheConfiguration.Policy;
+import org.teiid.core.TeiidRuntimeException;
-import com.metamatrix.cache.Cache;
-import com.metamatrix.cache.CacheConfiguration;
-import com.metamatrix.cache.CacheFactory;
-import com.metamatrix.cache.Cache.Type;
-import com.metamatrix.cache.CacheConfiguration.Policy;
-import com.metamatrix.core.MetaMatrixRuntimeException;
public class JBossCacheFactory implements CacheFactory, Serializable{
private transient org.jboss.cache.Cache cacheStore;
@@ -59,7 +59,7 @@
CacheJmxWrapperMBean cacheWrapper = MBeanServerInvocationHandler.newProxyInstance(server, on, CacheJmxWrapperMBean.class, false);
this.cacheStore = cacheWrapper.getCache();
} catch (MalformedObjectNameException e) {
- throw new MetaMatrixRuntimeException(e);
+ throw new TeiidRuntimeException(e);
}
}
@@ -77,7 +77,7 @@
return new JBossCache(this.cacheStore, node.getFqn());
}
- throw new MetaMatrixRuntimeException("Cache system has been shutdown"); //$NON-NLS-1$
+ throw new TeiidRuntimeException("Cache system has been shutdown"); //$NON-NLS-1$
}
private EvictionAlgorithmConfig buildEvictionAlgorithmConfig(CacheConfiguration config) {
Modified: trunk/cache-jbosscache/src/main/java/org/teiid/cache/jboss/JBossCacheListener.java
===================================================================
--- trunk/cache-jbosscache/src/main/java/com/metamatrix/cache/jboss/JBossCacheListener.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/cache-jbosscache/src/main/java/org/teiid/cache/jboss/JBossCacheListener.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -19,7 +19,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA.
*/
-package com.metamatrix.cache.jboss;
+package org.teiid.cache.jboss;
import org.jboss.cache.Fqn;
import org.jboss.cache.notifications.annotation.NodeCreated;
@@ -29,8 +29,8 @@
import org.jboss.cache.notifications.annotation.NodeMoved;
import org.jboss.cache.notifications.annotation.NodeRemoved;
import org.jboss.cache.notifications.event.NodeEvent;
+import org.teiid.cache.CacheListener;
-import com.metamatrix.cache.CacheListener;
@org.jboss.cache.notifications.annotation.CacheListener
public class JBossCacheListener {
Modified: trunk/client/src/main/java/org/teiid/adminapi/AdminException.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/AdminException.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/adminapi/AdminException.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -26,8 +26,9 @@
import java.util.Collections;
import java.util.List;
-import com.metamatrix.core.MetaMatrixCoreException;
+import org.teiid.core.TeiidException;
+
/**
* <code>AdminException</code> is the base exception for the admin package. Many *Admin methods throw this
* exception. Instances will be one of the concrete subtypes:
@@ -38,7 +39,7 @@
* clients should be aware of this and use the {@link #hasMultiple()} method to
* determine if they need to check the child exceptions.</p>
*/
-public abstract class AdminException extends MetaMatrixCoreException {
+public abstract class AdminException extends TeiidException {
private static final long serialVersionUID = -4446936145500241358L;
// List of Admin exceptions in
Modified: trunk/client/src/main/java/org/teiid/adminapi/AdminFactory.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/AdminFactory.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/adminapi/AdminFactory.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -30,6 +30,8 @@
import org.teiid.client.security.LogonException;
import org.teiid.client.util.ExceptionUtil;
+import org.teiid.core.TeiidRuntimeException;
+import org.teiid.core.util.PropertiesUtils;
import org.teiid.net.CommunicationException;
import org.teiid.net.ConnectionException;
import org.teiid.net.NetPlugin;
@@ -38,8 +40,6 @@
import org.teiid.net.TeiidURL;
import org.teiid.net.socket.SocketServerConnectionFactory;
-import com.metamatrix.common.util.PropertiesUtils;
-import com.metamatrix.core.MetaMatrixRuntimeException;
/**
* Singleton factory for ServerAdmins.
@@ -127,7 +127,7 @@
try {
Thread.sleep(bounceWait);
} catch (InterruptedException e) {
- throw new MetaMatrixRuntimeException(e);
+ throw new TeiidRuntimeException(e);
}
//we'll wait 30 seconds for the server to come back up
@@ -140,7 +140,7 @@
try {
Thread.sleep(bounceWait);
} catch (InterruptedException ex) {
- throw new MetaMatrixRuntimeException(ex);
+ throw new TeiidRuntimeException(ex);
}
}
}
Modified: trunk/client/src/main/java/org/teiid/adminapi/impl/RequestMetadata.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/impl/RequestMetadata.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/adminapi/impl/RequestMetadata.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -27,8 +27,8 @@
import org.jboss.managed.api.annotation.ManagementProperty;
import org.jboss.metatype.api.annotations.MetaMapping;
import org.teiid.adminapi.Request;
+import org.teiid.core.util.HashCodeUtil;
-import com.metamatrix.core.util.HashCodeUtil;
@MetaMapping(RequestMetadataMapper.class)
Modified: trunk/client/src/main/java/org/teiid/client/BatchSerializer.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/BatchSerializer.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/client/BatchSerializer.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -34,9 +34,9 @@
import java.util.List;
import java.util.Map;
+import org.teiid.core.types.DataTypeManager;
import org.teiid.net.NetPlugin;
-import com.metamatrix.common.types.DataTypeManager;
/**
Modified: trunk/client/src/main/java/org/teiid/client/DQP.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/DQP.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/client/DQP.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -29,27 +29,27 @@
import org.teiid.client.util.ResultsFuture;
import org.teiid.client.xa.XATransactionException;
import org.teiid.client.xa.XidImpl;
+import org.teiid.core.TeiidComponentException;
+import org.teiid.core.TeiidProcessingException;
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
public interface DQP {
- ResultsFuture<ResultsMessage> executeRequest(long reqID, RequestMessage message) throws MetaMatrixProcessingException, MetaMatrixComponentException;
+ ResultsFuture<ResultsMessage> executeRequest(long reqID, RequestMessage message) throws TeiidProcessingException, TeiidComponentException;
- ResultsFuture<ResultsMessage> processCursorRequest(long reqID, int batchFirst, int fetchSize) throws MetaMatrixProcessingException;
+ ResultsFuture<ResultsMessage> processCursorRequest(long reqID, int batchFirst, int fetchSize) throws TeiidProcessingException;
- ResultsFuture<?> closeRequest(long requestID) throws MetaMatrixProcessingException, MetaMatrixComponentException;
+ ResultsFuture<?> closeRequest(long requestID) throws TeiidProcessingException, TeiidComponentException;
- boolean cancelRequest(long requestID) throws MetaMatrixProcessingException, MetaMatrixComponentException;
+ boolean cancelRequest(long requestID) throws TeiidProcessingException, TeiidComponentException;
- ResultsFuture<?> closeLobChunkStream(int lobRequestId, long requestId, String streamId) throws MetaMatrixProcessingException, MetaMatrixComponentException;
+ ResultsFuture<?> closeLobChunkStream(int lobRequestId, long requestId, String streamId) throws TeiidProcessingException, TeiidComponentException;
- ResultsFuture<LobChunk> requestNextLobChunk(int lobRequestId, long requestId, String streamId) throws MetaMatrixProcessingException, MetaMatrixComponentException;
+ ResultsFuture<LobChunk> requestNextLobChunk(int lobRequestId, long requestId, String streamId) throws TeiidProcessingException, TeiidComponentException;
- MetadataResult getMetadata(long requestID) throws MetaMatrixComponentException, MetaMatrixProcessingException;
+ MetadataResult getMetadata(long requestID) throws TeiidComponentException, TeiidProcessingException;
- MetadataResult getMetadata(long requestID, String preparedSql, boolean allowDoubleQuotedVariable) throws MetaMatrixComponentException, MetaMatrixProcessingException;
+ MetadataResult getMetadata(long requestID, String preparedSql, boolean allowDoubleQuotedVariable) throws TeiidComponentException, TeiidProcessingException;
// local transaction
Modified: trunk/client/src/main/java/org/teiid/client/ProcedureErrorInstructionException.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/ProcedureErrorInstructionException.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/client/ProcedureErrorInstructionException.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -22,14 +22,14 @@
package org.teiid.client;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
+import org.teiid.core.TeiidProcessingException;
/**
* Used to notify the user that the virtual procedure raised an error.
* @since 4.3
*/
-public class ProcedureErrorInstructionException extends MetaMatrixProcessingException {
+public class ProcedureErrorInstructionException extends TeiidProcessingException {
/**
*
Modified: trunk/client/src/main/java/org/teiid/client/RequestMessage.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/RequestMessage.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/client/RequestMessage.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -31,10 +31,10 @@
import java.util.Collections;
import java.util.List;
+import org.teiid.core.TeiidProcessingException;
+import org.teiid.core.util.ExternalizeUtil;
import org.teiid.net.NetPlugin;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.core.util.ExternalizeUtil;
/**
* Request Message, used by MMXStatement for submitting queries.
@@ -213,15 +213,15 @@
/**
* Sets the txnAutoWrapMode.
* @param txnAutoWrapMode The txnAutoWrapMode to set
- * @throws MetaMatrixProcessingException
+ * @throws TeiidProcessingException
*/
- public void setTxnAutoWrapMode(String txnAutoWrapMode) throws MetaMatrixProcessingException {
+ public void setTxnAutoWrapMode(String txnAutoWrapMode) throws TeiidProcessingException {
if (txnAutoWrapMode != null) {
txnAutoWrapMode = txnAutoWrapMode.toUpperCase();
if (!(txnAutoWrapMode.equals(TXN_WRAP_OFF)
|| txnAutoWrapMode.equals(TXN_WRAP_ON)
|| txnAutoWrapMode.equals(TXN_WRAP_DETECT))) {
- throw new MetaMatrixProcessingException(NetPlugin.Util.getString("RequestMessage.invalid_txnAutoWrap", txnAutoWrapMode)); //$NON-NLS-1$
+ throw new TeiidProcessingException(NetPlugin.Util.getString("RequestMessage.invalid_txnAutoWrap", txnAutoWrapMode)); //$NON-NLS-1$
}
}
this.txnAutoWrapMode = txnAutoWrapMode;
Modified: trunk/client/src/main/java/org/teiid/client/ResultsMessage.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/ResultsMessage.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/client/ResultsMessage.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -33,10 +33,10 @@
import org.teiid.client.metadata.ParameterInfo;
import org.teiid.client.plan.Annotation;
import org.teiid.client.plan.PlanNode;
+import org.teiid.client.util.ExceptionHolder;
+import org.teiid.core.TeiidException;
+import org.teiid.core.util.ExternalizeUtil;
-import com.metamatrix.api.exception.ExceptionHolder;
-import com.metamatrix.api.exception.MetaMatrixException;
-import com.metamatrix.core.util.ExternalizeUtil;
/**
* Results Message, used by MMStatement to get the query results.
@@ -53,7 +53,7 @@
private PlanNode planDescription;
/** An exception that occurred. */
- private MetaMatrixException exception;
+ private TeiidException exception;
/** Warning could be schema validation errors or partial results warnings */
private List<Throwable> warnings;
@@ -128,7 +128,7 @@
/**
* @return
*/
- public MetaMatrixException getException() {
+ public TeiidException getException() {
return exception;
}
@@ -171,10 +171,10 @@
* @param exception
*/
public void setException(Throwable e) {
- if(e instanceof MetaMatrixException) {
- this.exception = (MetaMatrixException)e;
+ if(e instanceof TeiidException) {
+ this.exception = (TeiidException)e;
} else {
- this.exception = new MetaMatrixException(e, e.getMessage());
+ this.exception = new TeiidException(e, e.getMessage());
}
}
@@ -254,7 +254,7 @@
ExceptionHolder holder = (ExceptionHolder)in.readObject();
if (holder != null) {
- this.exception = (MetaMatrixException)holder.getException();
+ this.exception = (TeiidException)holder.getException();
}
List<ExceptionHolder> holderList = (List<ExceptionHolder>)in.readObject();
if (holderList != null) {
Modified: trunk/client/src/main/java/org/teiid/client/SourceWarning.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/SourceWarning.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/client/SourceWarning.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -22,7 +22,7 @@
package org.teiid.client;
-import com.metamatrix.api.exception.MetaMatrixException;
+import org.teiid.core.TeiidException;
/**
* <p> This class is used to store the details of an atomic query warning.
@@ -32,7 +32,7 @@
* query is executed.</p>
*/
-public class SourceWarning extends MetaMatrixException {
+public class SourceWarning extends TeiidException {
private String modelName = "UNKNOWN"; // variable stores the name of the model for the atomic query //$NON-NLS-1$
private String connectorBindingName = "UNKNOWN"; // variable stores name of the connector binding //$NON-NLS-1$
Modified: trunk/client/src/main/java/org/teiid/client/lob/LobChunkInputStream.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/lob/LobChunkInputStream.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/client/lob/LobChunkInputStream.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -25,9 +25,10 @@
import java.io.IOException;
import java.io.InputStream;
-import com.metamatrix.core.CorePlugin;
+import org.teiid.core.CorePlugin;
+
/**
* A InputStream wrapper class for a Lob Chunks. Given a stream of Lob Chunks
* this class will convert those chunks into InputStream, which can be used to
Modified: trunk/client/src/main/java/org/teiid/client/lob/StreamingLobChunckProducer.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/lob/StreamingLobChunckProducer.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/client/lob/StreamingLobChunckProducer.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -27,10 +27,10 @@
import java.util.concurrent.atomic.AtomicInteger;
import org.teiid.client.DQP;
+import org.teiid.core.TeiidException;
+import org.teiid.core.types.Streamable;
import org.teiid.net.NetPlugin;
-import com.metamatrix.api.exception.MetaMatrixException;
-import com.metamatrix.common.types.Streamable;
public class StreamingLobChunckProducer implements LobChunkProducer {
@@ -80,7 +80,7 @@
public void close() throws IOException {
try {
dqp.closeLobChunkStream(streamRequestId, requestId, streamable.getReferenceStreamId());
- } catch (MetaMatrixException e) {
+ } catch (TeiidException e) {
IOException ex = new IOException(e.getMessage());
ex.initCause(e);
throw ex;
Modified: trunk/client/src/main/java/org/teiid/client/metadata/MetadataResult.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/metadata/MetadataResult.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/client/metadata/MetadataResult.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -28,8 +28,9 @@
import java.io.ObjectOutput;
import java.util.Map;
-import com.metamatrix.core.util.ExternalizeUtil;
+import org.teiid.core.util.ExternalizeUtil;
+
public class MetadataResult implements Externalizable {
private static final long serialVersionUID = -1520482281079030324L;
private Map[] columnMetadata;
Modified: trunk/client/src/main/java/org/teiid/client/metadata/ResultsMetadataDefaults.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/metadata/ResultsMetadataDefaults.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/client/metadata/ResultsMetadataDefaults.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -25,9 +25,10 @@
import java.util.HashMap;
import java.util.Map;
-import com.metamatrix.common.types.DataTypeManager;
+import org.teiid.core.types.DataTypeManager;
+
/**
* @since 4.2
*/
Modified: trunk/client/src/main/java/org/teiid/client/plan/PlanNode.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/plan/PlanNode.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/client/plan/PlanNode.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -40,8 +40,9 @@
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
-import com.metamatrix.core.util.ExternalizeUtil;
+import org.teiid.core.util.ExternalizeUtil;
+
/**
* A PlanNode represents part of processing plan tree. For relational plans
* child PlanNodes may be either subqueries or nodes that feed tuples into the
Modified: trunk/client/src/main/java/org/teiid/client/security/ILogon.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/security/ILogon.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/client/security/ILogon.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -24,16 +24,16 @@
import java.util.Properties;
import org.teiid.client.util.ResultsFuture;
+import org.teiid.core.ComponentNotFoundException;
+import org.teiid.core.TeiidComponentException;
-import com.metamatrix.api.exception.ComponentNotFoundException;
-import com.metamatrix.api.exception.MetaMatrixComponentException;
/**
* Generic logon interface.
*/
public interface ILogon {
LogonResult logon(Properties connectionProperties)
- throws LogonException, MetaMatrixComponentException;
+ throws LogonException, TeiidComponentException;
/**
* Ping the server to see if the client-server connection is alive.
@@ -41,7 +41,7 @@
* @throws ComponentNotFoundException if can't find the Session service.
*/
ResultsFuture<?> ping()
- throws InvalidSessionException, MetaMatrixComponentException;
+ throws InvalidSessionException, TeiidComponentException;
/**
@@ -49,7 +49,7 @@
* @throws InvalidSessionException If session has expired or doesn't exist
* @throws ComponentNotFoundException If couldn't find needed service component
*/
- ResultsFuture<?> logoff() throws InvalidSessionException, MetaMatrixComponentException;
+ ResultsFuture<?> logoff() throws InvalidSessionException, TeiidComponentException;
- void assertIdentity(SessionToken sessionId) throws InvalidSessionException, MetaMatrixComponentException;
+ void assertIdentity(SessionToken sessionId) throws InvalidSessionException, TeiidComponentException;
}
Modified: trunk/client/src/main/java/org/teiid/client/security/InvalidSessionException.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/security/InvalidSessionException.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/client/security/InvalidSessionException.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -22,7 +22,7 @@
package org.teiid.client.security;
-public class InvalidSessionException extends MetaMatrixSecurityException {
+public class InvalidSessionException extends TeiidSecurityException {
/**
Modified: trunk/client/src/main/java/org/teiid/client/security/LogonException.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/security/LogonException.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/client/security/LogonException.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -31,7 +31,7 @@
* <li>An account for the user does not exist, has been frozen or has been removed; and</li>
* <li>The credentials that were supplied did not authenticate the user.</li>
*/
-public class LogonException extends MetaMatrixSecurityException {
+public class LogonException extends TeiidSecurityException {
/**
* No-Arg Constructor
Deleted: trunk/client/src/main/java/org/teiid/client/security/MetaMatrixSecurityException.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/security/MetaMatrixSecurityException.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/client/security/MetaMatrixSecurityException.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -1,83 +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 org.teiid.client.security;
-
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-
-public class MetaMatrixSecurityException extends MetaMatrixProcessingException {
-
- /**
- * No-Arg Constructor
- */
- public MetaMatrixSecurityException( ) {
- super( );
- }
-
- /**
- * Construct an instance with a linked exception, and an error code and
- * message, specified.
- *
- * @param e An exception to chain to this exception
- * @param message The error message
- * @param code The error code
- */
- public MetaMatrixSecurityException( Throwable e, String code, String message ) {
- super( e, code, message );
- }
- /**
- * Construct an instance with an error code and message specified.
- *
- * @param message The error message
- * @param code The error code
- */
- public MetaMatrixSecurityException( String code, String message ) {
- super( code, message );
- }
- /**
- * Constructs an instance of the exception with the specified detail message
- * and a single exception. A detail message is a String that describes this
- * particular exception.
- * @param message the detail message
- * @param e the exception that is encapsulated by this exception
- */
- public MetaMatrixSecurityException( Throwable e, String message ) {
- super(e, message);
- }
- /**
- * Constructs an instance of the exception with no detail message but with a
- * single exception.
- * @param e the exception that is encapsulated by this exception
- */
- public MetaMatrixSecurityException(Throwable e) {
- super(e);
- }
- /**
- * Constructs an instance of the exception with the specified detail message. A detail
- * message is a String that describes this particular exception.
- * @param the detail message
- */
- public MetaMatrixSecurityException(String message) {
- super(message);
- }
-}
-
Modified: trunk/client/src/main/java/org/teiid/client/security/SessionToken.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/security/SessionToken.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/client/security/SessionToken.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -29,8 +29,9 @@
import java.security.SecureRandom;
import java.util.Arrays;
-import com.metamatrix.core.util.Base64;
+import org.teiid.core.util.Base64;
+
/**
* This class is an immutable identifier for a unique session that also
* maintains the name of the principal for that session.
Copied: trunk/client/src/main/java/org/teiid/client/security/TeiidSecurityException.java (from rev 2112, trunk/client/src/main/java/org/teiid/client/security/MetaMatrixSecurityException.java)
===================================================================
--- trunk/client/src/main/java/org/teiid/client/security/TeiidSecurityException.java (rev 0)
+++ trunk/client/src/main/java/org/teiid/client/security/TeiidSecurityException.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -0,0 +1,83 @@
+/*
+ * 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 org.teiid.client.security;
+
+import org.teiid.core.TeiidProcessingException;
+
+public class TeiidSecurityException extends TeiidProcessingException {
+
+ /**
+ * No-Arg Constructor
+ */
+ public TeiidSecurityException( ) {
+ super( );
+ }
+
+ /**
+ * Construct an instance with a linked exception, and an error code and
+ * message, specified.
+ *
+ * @param e An exception to chain to this exception
+ * @param message The error message
+ * @param code The error code
+ */
+ public TeiidSecurityException( Throwable e, String code, String message ) {
+ super( e, code, message );
+ }
+ /**
+ * Construct an instance with an error code and message specified.
+ *
+ * @param message The error message
+ * @param code The error code
+ */
+ public TeiidSecurityException( String code, String message ) {
+ super( code, message );
+ }
+ /**
+ * Constructs an instance of the exception with the specified detail message
+ * and a single exception. A detail message is a String that describes this
+ * particular exception.
+ * @param message the detail message
+ * @param e the exception that is encapsulated by this exception
+ */
+ public TeiidSecurityException( Throwable e, String message ) {
+ super(e, message);
+ }
+ /**
+ * Constructs an instance of the exception with no detail message but with a
+ * single exception.
+ * @param e the exception that is encapsulated by this exception
+ */
+ public TeiidSecurityException(Throwable e) {
+ super(e);
+ }
+ /**
+ * Constructs an instance of the exception with the specified detail message. A detail
+ * message is a String that describes this particular exception.
+ * @param the detail message
+ */
+ public TeiidSecurityException(String message) {
+ super(message);
+ }
+}
+
Added: trunk/client/src/main/java/org/teiid/client/util/ExceptionHolder.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/util/ExceptionHolder.java (rev 0)
+++ trunk/client/src/main/java/org/teiid/client/util/ExceptionHolder.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -0,0 +1,200 @@
+/*
+ * 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 org.teiid.client.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutput;
+import java.io.ObjectOutputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.teiid.core.CorePlugin;
+import org.teiid.core.TeiidException;
+import org.teiid.core.TeiidRuntimeException;
+import org.teiid.core.util.ExternalizeUtil;
+import org.teiid.core.util.ObjectInputStreamWithClassloader;
+import org.teiid.core.util.ReflectionHelper;
+
+
+public class ExceptionHolder implements Externalizable {
+
+ private Throwable exception;
+ private boolean nested = false;
+
+ public ExceptionHolder() {
+ }
+
+ public ExceptionHolder(Throwable exception) {
+ this.exception = exception;
+ }
+
+ public ExceptionHolder(Throwable exception, boolean nested) {
+ this.exception = exception;
+ this.nested = nested;
+ }
+
+ //## JDBC4.0-begin ##
+ @Override
+ //## JDBC4.0-end ##
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ List<String> classNames = ExternalizeUtil.readList(in, String.class);
+ String message = (String)in.readObject();
+ StackTraceElement[] stackTrace = (StackTraceElement[])in.readObject();
+ String code = (String)in.readObject();
+ ExceptionHolder causeHolder = (ExceptionHolder)in.readObject();
+ byte[] serializedException = (byte[])in.readObject();
+
+ this.exception = readFromByteArray(serializedException);
+
+ if (this.exception == null) {
+ Throwable t = buildException(classNames, message, stackTrace, code);
+ if (t == null) {
+ if (causeHolder != null) {
+ this.exception = causeHolder.exception;
+ }
+ }
+ else {
+ if (causeHolder != null) {
+ t.initCause(causeHolder.exception);
+ }
+ this.exception = t;
+ }
+ }
+
+ if (this.exception == null) {
+ this.exception = new TeiidRuntimeException(message);
+ this.exception.setStackTrace(stackTrace);
+ }
+ }
+
+ //## JDBC4.0-begin ##
+ @Override
+ //## JDBC4.0-end ##
+ public void writeExternal(ObjectOutput out) throws IOException {
+ List<String> classNames = new ArrayList<String>();
+ Class<?> clazz = exception.getClass();
+ while (clazz != null) {
+ if (clazz == Throwable.class || clazz == Exception.class) {
+ break;
+ }
+ classNames.add(clazz.getName());
+ clazz = clazz.getSuperclass();
+ }
+ ExternalizeUtil.writeList(out, classNames);
+ out.writeObject(exception.getMessage());
+ out.writeObject(exception.getStackTrace());
+ if (exception instanceof TeiidException) {
+ out.writeObject(((TeiidException)exception).getCode());
+ } else {
+ out.writeObject(null);
+ }
+
+ // specify that this cause is nested exception; not top level
+ if (this.exception.getCause() != null && this.exception.getCause() != this.exception) {
+ out.writeObject(new ExceptionHolder(this.exception.getCause(), true));
+ }
+ else {
+ out.writeObject(null);
+ }
+
+ // only for the top level exception write the serialized block for the object
+ if (!nested) {
+ out.writeObject(writeAsByteArray(this.exception));
+ }
+ else {
+ out.writeObject(null);
+ }
+ }
+
+ public Throwable getException() {
+ return exception;
+ }
+
+ private Throwable buildException(List<String> classNames, String message, StackTraceElement[] stackTrace, String code) {
+ List<String> args = Arrays.asList(CorePlugin.Util.getString("ExceptionHolder.converted_exception", message, classNames)); //$NON-NLS-1$
+
+ Throwable result = null;
+ for (String className : classNames) {
+ try {
+ result = (Throwable)ReflectionHelper.create(className, args, Thread.currentThread().getContextClassLoader());
+ result.setStackTrace(stackTrace);
+ break;
+ } catch (TeiidException e1) {
+ //
+ }
+ }
+
+ if (result instanceof TeiidException) {
+ ((TeiidException)result).setCode(code);
+ ((TeiidException)result).setOriginalType(classNames.get(0));
+ }
+
+ return result;
+ }
+
+ private byte[] writeAsByteArray(Throwable t) throws IOException {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(baos);
+ oos.writeObject(t);
+ oos.flush();
+ oos.close();
+ return baos.toByteArray();
+ }
+
+ private Throwable readFromByteArray(byte[] contents) throws IOException {
+ // only for top level we would have the contents as not null.
+ if (contents != null) {
+ ByteArrayInputStream bais = new ByteArrayInputStream(contents);
+ ObjectInputStream ois = new ObjectInputStreamWithClassloader(bais, Thread.currentThread().getContextClassLoader());
+ try {
+ return (Throwable)ois.readObject();
+ } catch (ClassNotFoundException e) {
+ //
+ }
+ }
+ return null;
+ }
+
+ public static List<ExceptionHolder> toExceptionHolders(List<? extends Throwable> throwables){
+ List<ExceptionHolder> list = new ArrayList<ExceptionHolder>();
+ for (Throwable t: throwables) {
+ list.add(new ExceptionHolder(t));
+ }
+ return list;
+ }
+
+ public static List<Throwable> toThrowables(List<ExceptionHolder> exceptionHolders) {
+ List<Throwable> list = new ArrayList<Throwable>();
+ for(ExceptionHolder e: exceptionHolders) {
+ list.add(e.getException());
+ }
+ return list;
+ }
+
+}
Modified: trunk/client/src/main/java/org/teiid/client/util/ExceptionUtil.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/util/ExceptionUtil.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/client/util/ExceptionUtil.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -28,10 +28,10 @@
import org.teiid.adminapi.AdminException;
import org.teiid.adminapi.AdminProcessingException;
import org.teiid.client.xa.XATransactionException;
+import org.teiid.core.TeiidComponentException;
+import org.teiid.core.TeiidProcessingException;
+import org.teiid.core.TeiidRuntimeException;
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.core.MetaMatrixRuntimeException;
public class ExceptionUtil {
@@ -58,15 +58,15 @@
if (exception.getClass().isAssignableFrom(exceptionClasses[i])) {
return exception;
}
- canThrowComponentException |= MetaMatrixComponentException.class.isAssignableFrom(exceptionClasses[i]);
+ canThrowComponentException |= TeiidComponentException.class.isAssignableFrom(exceptionClasses[i]);
canThrowAdminException |= AdminException.class.isAssignableFrom(exceptionClasses[i]);
canThrowXATransactionException |= XATransactionException.class.isAssignableFrom(exceptionClasses[i]);
}
if (canThrowComponentException) {
- return new MetaMatrixComponentException(exception);
+ return new TeiidComponentException(exception);
}
if (canThrowAdminException) {
- if (exception instanceof MetaMatrixProcessingException) {
+ if (exception instanceof TeiidProcessingException) {
return new AdminProcessingException(exception);
}
return new AdminComponentException(exception);
@@ -77,6 +77,6 @@
if (RuntimeException.class.isAssignableFrom(exception.getClass())) {
return exception;
}
- return new MetaMatrixRuntimeException(exception);
+ return new TeiidRuntimeException(exception);
}
}
Modified: trunk/client/src/main/java/org/teiid/client/xa/XATransactionException.java
===================================================================
--- trunk/client/src/main/java/org/teiid/client/xa/XATransactionException.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/client/xa/XATransactionException.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -24,13 +24,14 @@
import javax.transaction.xa.XAException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
+import org.teiid.core.TeiidProcessingException;
+
/**
* Exception which occurs if an error occurs within the server that is
* XA transaction-related.
*/
-public class XATransactionException extends MetaMatrixProcessingException {
+public class XATransactionException extends TeiidProcessingException {
private static final long serialVersionUID = 5685144848609237877L;
private int errorCode = XAException.XAER_RMERR;
Modified: trunk/client/src/main/java/org/teiid/jdbc/BatchResults.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/BatchResults.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/jdbc/BatchResults.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -26,8 +26,9 @@
import java.util.ArrayList;
import java.util.List;
-import com.metamatrix.core.util.Assertion;
+import org.teiid.core.util.Assertion;
+
/**
* @since 4.3
*/
Modified: trunk/client/src/main/java/org/teiid/jdbc/CallableStatementImpl.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/CallableStatementImpl.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/jdbc/CallableStatementImpl.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -51,9 +51,9 @@
import org.teiid.client.RequestMessage;
import org.teiid.client.RequestMessage.ResultsMode;
import org.teiid.client.RequestMessage.StatementType;
+import org.teiid.core.util.SqlUtil;
+import org.teiid.core.util.TimestampWithTimezone;
-import com.metamatrix.common.util.SqlUtil;
-import com.metamatrix.common.util.TimestampWithTimezone;
/**
* <p> This class inherits Statement methods, which deal with SQL statements in
Modified: trunk/client/src/main/java/org/teiid/jdbc/ConnectionImpl.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/ConnectionImpl.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/jdbc/ConnectionImpl.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -61,6 +61,7 @@
import org.teiid.client.util.ResultsFuture;
import org.teiid.client.xa.XATransactionException;
import org.teiid.client.xa.XidImpl;
+import org.teiid.core.util.SqlUtil;
import org.teiid.net.CommunicationException;
import org.teiid.net.TeiidURL;
import org.teiid.net.ServerConnection;
@@ -68,7 +69,6 @@
-import com.metamatrix.common.util.SqlUtil;
public class ConnectionImpl extends WrapperImpl implements Connection {
private static Logger logger = Logger.getLogger("org.teiid.jdbc"); //$NON-NLS-1$
Modified: trunk/client/src/main/java/org/teiid/jdbc/DataTypeTransformer.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/DataTypeTransformer.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/jdbc/DataTypeTransformer.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -38,10 +38,11 @@
import java.sql.Time;
import java.sql.Timestamp;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.TransformationException;
-import com.metamatrix.common.types.DataTypeManager.DefaultDataClasses;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.TransformationException;
+import org.teiid.core.types.DataTypeManager.DefaultDataClasses;
+
/**
* <p>This class is used to transform objects into desired data types. The static
* method on this class are used by Metadatresults, ResultsWrapper and
Modified: trunk/client/src/main/java/org/teiid/jdbc/DatabaseMetaDataImpl.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/DatabaseMetaDataImpl.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/jdbc/DatabaseMetaDataImpl.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -40,12 +40,12 @@
import org.teiid.client.ResultsMessage;
import org.teiid.client.metadata.ResultsMetadataConstants;
import org.teiid.client.metadata.ResultsMetadataDefaults;
+import org.teiid.core.CoreConstants;
+import org.teiid.core.TeiidRuntimeException;
+import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.types.JDBCSQLTypeInfo;
+import org.teiid.core.util.SqlUtil;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.types.JDBCSQLTypeInfo;
-import com.metamatrix.common.util.SqlUtil;
-import com.metamatrix.core.CoreConstants;
-import com.metamatrix.core.MetaMatrixRuntimeException;
public class DatabaseMetaDataImpl extends WrapperImpl implements DatabaseMetaData {
private static final String DATA_TYPES = "DataTypes"; //$NON-NLS-1$
@@ -473,7 +473,7 @@
stmt.setFetchSize(500);
} catch(SQLException e) {
// will never happen but throw a runtime if it does
- throw new MetaMatrixRuntimeException(e);
+ throw new TeiidRuntimeException(e);
}
Map[] metadata = new Map[columnNames.length];
for (int i = 0; i < columnNames.length; i++) {
Modified: trunk/client/src/main/java/org/teiid/jdbc/DeferredMetadataProvider.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/DeferredMetadataProvider.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/jdbc/DeferredMetadataProvider.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -28,10 +28,10 @@
import org.teiid.client.metadata.MetadataResult;
import org.teiid.client.metadata.ResultsMetadataConstants;
+import org.teiid.core.TeiidComponentException;
+import org.teiid.core.TeiidProcessingException;
+import org.teiid.core.util.StringUtil;
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.core.util.StringUtil;
/**
* This metadata provider starts with just column names and types (provided in the response)
@@ -68,9 +68,9 @@
MetadataResult results;
try {
results = this.statement.getDQP().getMetadata(this.requestID);
- } catch (MetaMatrixComponentException e) {
+ } catch (TeiidComponentException e) {
throw TeiidSQLException.create(e);
- } catch (MetaMatrixProcessingException e) {
+ } catch (TeiidProcessingException e) {
throw TeiidSQLException.create(e);
}
this.metadata = results.getColumnMetadata();
Modified: trunk/client/src/main/java/org/teiid/jdbc/EmbeddedProfile.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/EmbeddedProfile.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/jdbc/EmbeddedProfile.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -31,14 +31,14 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.teiid.core.TeiidException;
+import org.teiid.core.TeiidRuntimeException;
+import org.teiid.core.util.PropertiesUtils;
+import org.teiid.core.util.ReflectionHelper;
import org.teiid.net.CommunicationException;
import org.teiid.net.ConnectionException;
import org.teiid.net.ServerConnection;
-import com.metamatrix.common.util.PropertiesUtils;
-import com.metamatrix.core.MetaMatrixCoreException;
-import com.metamatrix.core.MetaMatrixRuntimeException;
-import com.metamatrix.core.util.ReflectionHelper;
final class EmbeddedProfile {
@@ -84,13 +84,13 @@
try {
ServerConnection sc = (ServerConnection)ReflectionHelper.create("org.teiid.transport.LocalServerConnection", Arrays.asList(info), Thread.currentThread().getContextClassLoader()); //$NON-NLS-1$
return new ConnectionImpl(sc, info, url);
- } catch (MetaMatrixRuntimeException e) {
+ } catch (TeiidRuntimeException e) {
throw TeiidSQLException.create(e);
} catch (ConnectionException e) {
throw TeiidSQLException.create(e);
} catch (CommunicationException e) {
throw TeiidSQLException.create(e);
- } catch (MetaMatrixCoreException e) {
+ } catch (TeiidException e) {
throw TeiidSQLException.create(e);
}
}
Modified: trunk/client/src/main/java/org/teiid/jdbc/JDBCPlugin.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/JDBCPlugin.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/jdbc/JDBCPlugin.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -23,8 +23,9 @@
package org.teiid.jdbc;
import java.util.ResourceBundle;
-import com.metamatrix.core.BundleUtil;
+import org.teiid.core.BundleUtil;
+
/**
* JDBCPlugin
* <p>Used here in <code>jdbc</code> to have access to the new
Modified: trunk/client/src/main/java/org/teiid/jdbc/ParameterMetaDataImpl.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/ParameterMetaDataImpl.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/jdbc/ParameterMetaDataImpl.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -27,8 +27,9 @@
import java.sql.PreparedStatement;
import java.sql.SQLException;
-import com.metamatrix.common.types.JDBCSQLTypeInfo;
+import org.teiid.core.types.JDBCSQLTypeInfo;
+
/**
* Note: this is currently only accurate for {@link PreparedStatement}s.
* Only the basic type information will be accurate for {@link CallableStatement}s.
Modified: trunk/client/src/main/java/org/teiid/jdbc/PreparedStatementImpl.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/PreparedStatementImpl.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/jdbc/PreparedStatementImpl.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -54,17 +54,17 @@
import org.teiid.client.RequestMessage.ResultsMode;
import org.teiid.client.RequestMessage.StatementType;
import org.teiid.client.metadata.MetadataResult;
+import org.teiid.core.TeiidComponentException;
+import org.teiid.core.TeiidProcessingException;
+import org.teiid.core.types.BlobImpl;
+import org.teiid.core.types.ClobImpl;
+import org.teiid.core.types.InputStreamFactory;
+import org.teiid.core.types.JDBCSQLTypeInfo;
+import org.teiid.core.util.ArgCheck;
+import org.teiid.core.util.ObjectConverterUtil;
+import org.teiid.core.util.SqlUtil;
+import org.teiid.core.util.TimestampWithTimezone;
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.common.types.BlobImpl;
-import com.metamatrix.common.types.ClobImpl;
-import com.metamatrix.common.types.InputStreamFactory;
-import com.metamatrix.common.types.JDBCSQLTypeInfo;
-import com.metamatrix.common.util.SqlUtil;
-import com.metamatrix.common.util.TimestampWithTimezone;
-import com.metamatrix.core.util.ArgCheck;
-import com.metamatrix.core.util.ObjectConverterUtil;
/**
* <p> Instances of PreparedStatement contain a SQL statement that has already been
@@ -269,9 +269,9 @@
if (metadataResults == null) {
try {
metadataResults = this.getDQP().getMetadata(this.currentRequestID, prepareSql, Boolean.valueOf(getExecutionProperty(ExecutionProperties.ANSI_QUOTED_IDENTIFIERS)).booleanValue());
- } catch (MetaMatrixComponentException e) {
+ } catch (TeiidComponentException e) {
throw TeiidSQLException.create(e);
- } catch (MetaMatrixProcessingException e) {
+ } catch (TeiidProcessingException e) {
throw TeiidSQLException.create(e);
}
}
Modified: trunk/client/src/main/java/org/teiid/jdbc/ResultSetImpl.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/ResultSetImpl.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/jdbc/ResultSetImpl.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -55,21 +55,21 @@
import org.teiid.client.lob.StreamingLobChunckProducer;
import org.teiid.client.plan.PlanNode;
import org.teiid.client.util.ResultsFuture;
+import org.teiid.core.TeiidComponentException;
+import org.teiid.core.TeiidProcessingException;
+import org.teiid.core.types.BlobImpl;
+import org.teiid.core.types.BlobType;
+import org.teiid.core.types.ClobImpl;
+import org.teiid.core.types.ClobType;
+import org.teiid.core.types.InputStreamFactory;
+import org.teiid.core.types.SQLXMLImpl;
+import org.teiid.core.types.Streamable;
+import org.teiid.core.types.XMLType;
+import org.teiid.core.util.SqlUtil;
+import org.teiid.core.util.TimestampWithTimezone;
import org.teiid.jdbc.BatchResults.Batch;
import org.teiid.jdbc.BatchResults.BatchFetcher;
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.common.types.BlobImpl;
-import com.metamatrix.common.types.BlobType;
-import com.metamatrix.common.types.ClobImpl;
-import com.metamatrix.common.types.ClobType;
-import com.metamatrix.common.types.InputStreamFactory;
-import com.metamatrix.common.types.SQLXMLImpl;
-import com.metamatrix.common.types.Streamable;
-import com.metamatrix.common.types.XMLType;
-import com.metamatrix.common.util.SqlUtil;
-import com.metamatrix.common.util.TimestampWithTimezone;
/**
* <p>
@@ -161,9 +161,9 @@
if(this.requestID >= 0){
try {
this.statement.getDQP().closeRequest(requestID);
- } catch (MetaMatrixProcessingException e) {
+ } catch (TeiidProcessingException e) {
throw TeiidSQLException.create(e);
- } catch (MetaMatrixComponentException e) {
+ } catch (TeiidComponentException e) {
throw TeiidSQLException.create(e);
}
}
@@ -372,7 +372,7 @@
ResultsMessage currentResultMsg = results.get(timeoutSeconds, TimeUnit.SECONDS);
this.accumulateWarnings(currentResultMsg);
return getCurrentBatch(currentResultMsg);
- } catch (MetaMatrixProcessingException e) {
+ } catch (TeiidProcessingException e) {
throw TeiidSQLException.create(e);
} catch (InterruptedException e) {
throw TeiidSQLException.create(e);
Modified: trunk/client/src/main/java/org/teiid/jdbc/ResultSetMetaDataImpl.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/ResultSetMetaDataImpl.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/jdbc/ResultSetMetaDataImpl.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -26,8 +26,8 @@
import java.sql.SQLException;
import org.teiid.client.metadata.ResultsMetadataConstants;
+import org.teiid.core.types.JDBCSQLTypeInfo;
-import com.metamatrix.common.types.JDBCSQLTypeInfo;
/**
*/
Modified: trunk/client/src/main/java/org/teiid/jdbc/SocketProfile.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/SocketProfile.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/jdbc/SocketProfile.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -31,14 +31,14 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.teiid.core.TeiidException;
+import org.teiid.core.util.PropertiesUtils;
import org.teiid.net.CommunicationException;
import org.teiid.net.ConnectionException;
import org.teiid.net.TeiidURL;
import org.teiid.net.ServerConnection;
import org.teiid.net.socket.SocketServerConnectionFactory;
-import com.metamatrix.common.util.PropertiesUtils;
-import com.metamatrix.core.MetaMatrixCoreException;
/**
* <p> The java.sql.DriverManager class uses this class to connect to Teiid Server or Teiid Embedded.
@@ -86,7 +86,7 @@
parseURL(url, info);
myConnection = createConnection(url, info);
- } catch (MetaMatrixCoreException e) {
+ } catch (TeiidException e) {
logger.log(Level.SEVERE, "Could not create connection", e); //$NON-NLS-1$
throw TeiidSQLException.create(e, e.getMessage());
}
Modified: trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -55,12 +55,12 @@
import org.teiid.client.metadata.ParameterInfo;
import org.teiid.client.plan.Annotation;
import org.teiid.client.plan.PlanNode;
+import org.teiid.core.TeiidComponentException;
+import org.teiid.core.TeiidProcessingException;
+import org.teiid.core.TeiidException;
+import org.teiid.core.util.ObjectConverterUtil;
+import org.teiid.core.util.SqlUtil;
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.MetaMatrixException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.common.util.SqlUtil;
-import com.metamatrix.core.util.ObjectConverterUtil;
public class StatementImpl extends WrapperImpl implements TeiidStatement {
private static Logger logger = Logger.getLogger("org.teiid.jdbc"); //$NON-NLS-1$
@@ -441,9 +441,9 @@
// In update scenarios close the statement implicitly
try {
getDQP().closeRequest(getCurrentRequestID());
- } catch (MetaMatrixProcessingException e) {
+ } catch (TeiidProcessingException e) {
throw TeiidSQLException.create(e);
- } catch (MetaMatrixComponentException e) {
+ } catch (TeiidComponentException e) {
throw TeiidSQLException.create(e);
}
} else {
@@ -730,7 +730,7 @@
String txnAutoWrapMode = getExecutionProperty(ExecutionProperties.PROP_TXN_AUTO_WRAP);
try {
res.setTxnAutoWrapMode(txnAutoWrapMode);
- } catch (MetaMatrixProcessingException e) {
+ } catch (TeiidProcessingException e) {
throw TeiidSQLException.create(e);
}
@@ -778,9 +778,9 @@
try {
this.getDQP().cancelRequest(currentRequestID);
- } catch (MetaMatrixProcessingException e) {
+ } catch (TeiidProcessingException e) {
throw TeiidSQLException.create(e);
- } catch (MetaMatrixComponentException e) {
+ } catch (TeiidComponentException e) {
throw TeiidSQLException.create(e);
}
}
@@ -833,7 +833,7 @@
Future<ResultsMessage> pendingResult = null;
try {
pendingResult = this.getDQP().executeRequest(this.currentRequestID, reqMsg);
- } catch (MetaMatrixException e) {
+ } catch (TeiidException e) {
throw TeiidSQLException.create(e);
}
long timeoutMillis = queryTimeout * 1000;
Modified: trunk/client/src/main/java/org/teiid/jdbc/TeiidDriver.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/TeiidDriver.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/jdbc/TeiidDriver.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -33,9 +33,10 @@
import java.util.logging.Level;
import java.util.logging.Logger;
-import com.metamatrix.common.util.ApplicationInfo;
-import com.metamatrix.common.util.PropertiesUtils;
+import org.teiid.core.util.ApplicationInfo;
+import org.teiid.core.util.PropertiesUtils;
+
/**
* JDBC Driver class for Teiid Embedded and Teiid Server. This class automatically registers with the
* {@link DriverManager}
Modified: trunk/client/src/main/java/org/teiid/jdbc/TeiidSQLException.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/TeiidSQLException.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/jdbc/TeiidSQLException.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -32,12 +32,12 @@
import org.teiid.client.ProcedureErrorInstructionException;
import org.teiid.client.security.InvalidSessionException;
import org.teiid.client.security.LogonException;
+import org.teiid.core.TeiidProcessingException;
+import org.teiid.core.TeiidException;
+import org.teiid.core.TeiidRuntimeException;
import org.teiid.net.CommunicationException;
import org.teiid.net.ConnectionException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.core.MetaMatrixCoreException;
-import com.metamatrix.core.MetaMatrixRuntimeException;
/**
* Teiid specific SQLException
@@ -122,7 +122,7 @@
sqlState = SQLStates.INVALID_AUTHORIZATION_SPECIFICATION_NO_SUBCLASS;
} else if (exception instanceof ProcedureErrorInstructionException) {
sqlState = SQLStates.VIRTUAL_PROCEDURE_ERROR;
- } else if (exception instanceof MetaMatrixProcessingException) {
+ } else if (exception instanceof TeiidProcessingException) {
sqlState = SQLStates.USAGE_ERROR;
} else if (exception instanceof UnknownHostException
|| exception instanceof ConnectException
@@ -132,7 +132,7 @@
sqlState = SQLStates.CONNECTION_EXCEPTION_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION;
} else if (exception instanceof IOException) {
sqlState = SQLStates.CONNECTION_EXCEPTION_STALE_CONNECTION;
- } else if (exception instanceof MetaMatrixCoreException) {
+ } else if (exception instanceof TeiidException) {
if (exception instanceof CommunicationException) {
sqlState = SQLStates.CONNECTION_EXCEPTION_STALE_CONNECTION;
}
@@ -158,17 +158,17 @@
* @return
*/
private static Throwable findRootException(Throwable exception) {
- if (exception instanceof MetaMatrixRuntimeException) {
+ if (exception instanceof TeiidRuntimeException) {
while (exception.getCause() != exception
&& exception.getCause() != null) {
exception = exception.getCause();
}
- if (exception instanceof MetaMatrixRuntimeException) {
- MetaMatrixRuntimeException runtimeException = (MetaMatrixRuntimeException) exception;
+ if (exception instanceof TeiidRuntimeException) {
+ TeiidRuntimeException runtimeException = (TeiidRuntimeException) exception;
while (runtimeException.getChild() != exception
&& runtimeException.getChild() != null) {
- if (runtimeException.getChild() instanceof MetaMatrixRuntimeException) {
- runtimeException = (MetaMatrixRuntimeException) runtimeException
+ if (runtimeException.getChild() instanceof TeiidRuntimeException) {
+ runtimeException = (TeiidRuntimeException) runtimeException
.getChild();
} else {
exception = runtimeException.getChild();
Modified: trunk/client/src/main/java/org/teiid/jdbc/WrapperImpl.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/WrapperImpl.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/jdbc/WrapperImpl.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -25,10 +25,10 @@
import java.sql.SQLException;
//## JDBC4.0-begin ##
import java.sql.Wrapper;
-//## JDBC4.0-end ##
-import com.metamatrix.core.util.ArgCheck;
+import org.teiid.core.util.ArgCheck;
+
public class WrapperImpl
//## JDBC4.0-begin ##
implements Wrapper
Modified: trunk/client/src/main/java/org/teiid/net/CommunicationException.java
===================================================================
--- trunk/client/src/main/java/org/teiid/net/CommunicationException.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/net/CommunicationException.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -22,14 +22,14 @@
package org.teiid.net;
-import com.metamatrix.core.MetaMatrixCoreException;
+import org.teiid.core.TeiidException;
/**
* An error occurred in communication between client and server. This
* error may or may not be recoverable. Generally the communication
* transport should be able to tell the difference and recover if possible.
*/
-public class CommunicationException extends MetaMatrixCoreException {
+public class CommunicationException extends TeiidException {
/**
* No-Arg Constructor
*/
Modified: trunk/client/src/main/java/org/teiid/net/ConnectionException.java
===================================================================
--- trunk/client/src/main/java/org/teiid/net/ConnectionException.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/net/ConnectionException.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -22,14 +22,14 @@
package org.teiid.net;
-import com.metamatrix.core.MetaMatrixCoreException;
+import org.teiid.core.TeiidException;
/**
* This exception indicates that an error has occurred during connection. There
* are many possible reasons for this, but the most likely is a problem with
* connection parameters.
*/
-public class ConnectionException extends MetaMatrixCoreException {
+public class ConnectionException extends TeiidException {
/**
* No-Arg Constructor
*/
Modified: trunk/client/src/main/java/org/teiid/net/HostInfo.java
===================================================================
--- trunk/client/src/main/java/org/teiid/net/HostInfo.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/net/HostInfo.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -25,9 +25,10 @@
import java.net.InetAddress;
import java.net.UnknownHostException;
-import com.metamatrix.core.util.ArgCheck;
-import com.metamatrix.core.util.HashCodeUtil;
+import org.teiid.core.util.ArgCheck;
+import org.teiid.core.util.HashCodeUtil;
+
/**
* Defines the hostname/port or {@link InetAddress} to connect to a host.
* @since 4.2
Modified: trunk/client/src/main/java/org/teiid/net/NetPlugin.java
===================================================================
--- trunk/client/src/main/java/org/teiid/net/NetPlugin.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/net/NetPlugin.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -23,8 +23,9 @@
package org.teiid.net;
import java.util.ResourceBundle;
-import com.metamatrix.core.BundleUtil;
+import org.teiid.core.BundleUtil;
+
public class NetPlugin {
public static final String PLUGIN_ID = NetPlugin.class.getPackage().getName();
Modified: trunk/client/src/main/java/org/teiid/net/socket/Handshake.java
===================================================================
--- trunk/client/src/main/java/org/teiid/net/socket/Handshake.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/net/socket/Handshake.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -27,8 +27,9 @@
import java.io.ObjectInput;
import java.io.ObjectOutput;
-import com.metamatrix.common.util.ApplicationInfo;
+import org.teiid.core.util.ApplicationInfo;
+
/**
* Represents the information needed in a socket connection handshake
*/
Modified: trunk/client/src/main/java/org/teiid/net/socket/OioOjbectChannelFactory.java
===================================================================
--- trunk/client/src/main/java/org/teiid/net/socket/OioOjbectChannelFactory.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/net/socket/OioOjbectChannelFactory.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -38,12 +38,12 @@
import java.util.logging.Logger;
import org.teiid.client.util.ResultsFuture;
+import org.teiid.core.util.PropertiesUtils;
import org.teiid.net.CommunicationException;
import org.teiid.net.socket.SocketUtil.SSLSocketFactory;
import org.teiid.netty.handler.codec.serialization.ObjectDecoderInputStream;
import org.teiid.netty.handler.codec.serialization.ObjectEncoderOutputStream;
-import com.metamatrix.common.util.PropertiesUtils;
public final class OioOjbectChannelFactory implements ObjectChannelFactory {
Modified: trunk/client/src/main/java/org/teiid/net/socket/ServiceInvocationStruct.java
===================================================================
--- trunk/client/src/main/java/org/teiid/net/socket/ServiceInvocationStruct.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/net/socket/ServiceInvocationStruct.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -30,9 +30,10 @@
import java.io.ObjectInput;
import java.io.ObjectOutput;
-import com.metamatrix.core.util.ArgCheck;
-import com.metamatrix.core.util.ExternalizeUtil;
+import org.teiid.core.util.ArgCheck;
+import org.teiid.core.util.ExternalizeUtil;
+
public final class ServiceInvocationStruct implements Externalizable {
private static final long serialVersionUID = 1207674062670068350L;
public Class<?> targetClass;
Modified: trunk/client/src/main/java/org/teiid/net/socket/SocketServerConnection.java
===================================================================
--- trunk/client/src/main/java/org/teiid/net/socket/SocketServerConnection.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/net/socket/SocketServerConnection.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -49,6 +49,7 @@
import org.teiid.client.security.LogonException;
import org.teiid.client.security.LogonResult;
import org.teiid.client.util.ExceptionUtil;
+import org.teiid.core.TeiidComponentException;
import org.teiid.net.CommunicationException;
import org.teiid.net.ConnectionException;
import org.teiid.net.HostInfo;
@@ -56,7 +57,6 @@
import org.teiid.net.ServerConnection;
import org.teiid.net.TeiidURL;
-import com.metamatrix.api.exception.MetaMatrixComponentException;
/**
* Represents a client connection that maintains session state and allows for service fail over.
@@ -109,7 +109,7 @@
}
} catch (InvalidSessionException e) {
shutdown(false);
- } catch (MetaMatrixComponentException e) {
+ } catch (TeiidComponentException e) {
close();
}
this.cancel();
@@ -157,7 +157,7 @@
throw new CommunicationException(e,NetPlugin.Util.getString("SocketServerInstance.Connection_Error.Connect_Failed", hostInfo.getHostName(), String.valueOf(hostInfo.getPortNumber()), e.getMessage())); //$NON-NLS-1$
} catch (SingleInstanceCommunicationException e) {
ex = e;
- } catch (MetaMatrixComponentException e) {
+ } catch (TeiidComponentException e) {
ex = e;
}
this.serverDiscovery.markInstanceAsBad(hostInfo);
@@ -186,7 +186,7 @@
// Propagate the original message as it contains the message we want
// to give to the user
throw new ConnectionException(e, e.getMessage());
- } catch (MetaMatrixComponentException e) {
+ } catch (TeiidComponentException e) {
if (e.getCause() instanceof CommunicationException) {
throw (CommunicationException)e.getCause();
}
@@ -265,7 +265,7 @@
//ignore
} catch (TimeoutException e) {
//ignore
- } catch (MetaMatrixComponentException e) {
+ } catch (TeiidComponentException e) {
//ignore
}
}
Modified: trunk/client/src/main/java/org/teiid/net/socket/SocketServerConnectionFactory.java
===================================================================
--- trunk/client/src/main/java/org/teiid/net/socket/SocketServerConnectionFactory.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/net/socket/SocketServerConnectionFactory.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -42,15 +42,15 @@
import java.util.logging.Logger;
import org.teiid.client.security.ILogon;
+import org.teiid.core.TeiidException;
+import org.teiid.core.util.PropertiesUtils;
+import org.teiid.core.util.ReflectionHelper;
import org.teiid.net.CommunicationException;
import org.teiid.net.ConnectionException;
import org.teiid.net.HostInfo;
import org.teiid.net.ServerConnectionFactory;
import org.teiid.net.TeiidURL;
-import com.metamatrix.common.util.PropertiesUtils;
-import com.metamatrix.core.MetaMatrixCoreException;
-import com.metamatrix.core.util.ReflectionHelper;
/**
* Responsible for creating socket based connections
@@ -251,7 +251,7 @@
} else {
try {
discovery = (ServerDiscovery)ReflectionHelper.create(discoveryStrategyName, null, this.getClass().getClassLoader());
- } catch (MetaMatrixCoreException e) {
+ } catch (TeiidException e) {
throw new ConnectionException(e);
}
}
Modified: trunk/client/src/main/java/org/teiid/net/socket/SocketServerInstance.java
===================================================================
--- trunk/client/src/main/java/org/teiid/net/socket/SocketServerInstance.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/net/socket/SocketServerInstance.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -24,9 +24,9 @@
import java.net.SocketAddress;
+import org.teiid.core.crypto.Cryptor;
import org.teiid.net.HostInfo;
-import com.metamatrix.common.util.crypto.Cryptor;
public interface SocketServerInstance {
Modified: trunk/client/src/main/java/org/teiid/net/socket/SocketServerInstanceImpl.java
===================================================================
--- trunk/client/src/main/java/org/teiid/net/socket/SocketServerInstanceImpl.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/net/socket/SocketServerInstanceImpl.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -45,19 +45,19 @@
import java.util.logging.Logger;
import org.teiid.client.security.ILogon;
+import org.teiid.client.util.ExceptionHolder;
import org.teiid.client.util.ExceptionUtil;
import org.teiid.client.util.ResultsFuture;
import org.teiid.client.util.ResultsReceiver;
+import org.teiid.core.crypto.CryptoException;
+import org.teiid.core.crypto.Cryptor;
+import org.teiid.core.crypto.DhKeyGenerator;
+import org.teiid.core.crypto.NullCryptor;
+import org.teiid.core.util.ApplicationInfo;
import org.teiid.net.CommunicationException;
import org.teiid.net.HostInfo;
import org.teiid.net.NetPlugin;
-import com.metamatrix.api.exception.ExceptionHolder;
-import com.metamatrix.common.util.ApplicationInfo;
-import com.metamatrix.common.util.crypto.CryptoException;
-import com.metamatrix.common.util.crypto.Cryptor;
-import com.metamatrix.common.util.crypto.DhKeyGenerator;
-import com.metamatrix.common.util.crypto.NullCryptor;
/**
* Client view of a socket server connection that exposes remote services
Modified: trunk/client/src/main/java/org/teiid/net/socket/SocketUtil.java
===================================================================
--- trunk/client/src/main/java/org/teiid/net/socket/SocketUtil.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/net/socket/SocketUtil.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -42,9 +42,9 @@
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
+import org.teiid.core.util.Assertion;
import org.teiid.net.NetPlugin;
-import com.metamatrix.core.util.Assertion;
/**
Modified: trunk/client/src/main/java/org/teiid/netty/handler/codec/serialization/CompactObjectOutputStream.java
===================================================================
--- trunk/client/src/main/java/org/teiid/netty/handler/codec/serialization/CompactObjectOutputStream.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/netty/handler/codec/serialization/CompactObjectOutputStream.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -54,29 +54,30 @@
import org.teiid.client.security.InvalidSessionException;
import org.teiid.client.security.LogonException;
import org.teiid.client.security.LogonResult;
-import org.teiid.client.security.MetaMatrixSecurityException;
+import org.teiid.client.security.TeiidSecurityException;
import org.teiid.client.security.SessionToken;
+import org.teiid.client.util.ExceptionHolder;
import org.teiid.client.xa.XATransactionException;
import org.teiid.client.xa.XidImpl;
+import org.teiid.core.ComponentNotFoundException;
+import org.teiid.core.TeiidComponentException;
+import org.teiid.core.TeiidProcessingException;
+import org.teiid.core.TeiidException;
+import org.teiid.core.TeiidRuntimeException;
+import org.teiid.core.types.BlobImpl;
+import org.teiid.core.types.BlobType;
+import org.teiid.core.types.ClobImpl;
+import org.teiid.core.types.ClobType;
+import org.teiid.core.types.InputStreamFactory;
+import org.teiid.core.types.SQLXMLImpl;
+import org.teiid.core.types.Streamable;
+import org.teiid.core.types.XMLType;
+import org.teiid.core.types.InputStreamFactory.StreamFactoryReference;
+import org.teiid.core.util.ReaderInputStream;
import org.teiid.net.socket.Handshake;
import org.teiid.net.socket.Message;
import org.teiid.net.socket.ServiceInvocationStruct;
-import com.metamatrix.api.exception.ExceptionHolder;
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.api.exception.MetaMatrixException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.common.types.BlobImpl;
-import com.metamatrix.common.types.BlobType;
-import com.metamatrix.common.types.ClobImpl;
-import com.metamatrix.common.types.ClobType;
-import com.metamatrix.common.types.InputStreamFactory;
-import com.metamatrix.common.types.SQLXMLImpl;
-import com.metamatrix.common.types.Streamable;
-import com.metamatrix.common.types.XMLType;
-import com.metamatrix.common.types.InputStreamFactory.StreamFactoryReference;
-import com.metamatrix.common.util.ReaderInputStream;
-import com.metamatrix.core.MetaMatrixRuntimeException;
/**
* @author The Netty Project (netty-dev(a)lists.jboss.org)
@@ -99,7 +100,7 @@
public static void addKnownClass(Class<?> clazz, byte code) {
KNOWN_CLASSES.put(clazz, Integer.valueOf(code));
if (KNOWN_CODES.put(Integer.valueOf(code), clazz) != null) {
- throw new MetaMatrixRuntimeException("Duplicate class"); //$NON-NLS-1$
+ throw new TeiidRuntimeException("Duplicate class"); //$NON-NLS-1$
}
}
@@ -132,14 +133,15 @@
addKnownClass(LogonResult.class, (byte)31);
addKnownClass(SessionToken.class, (byte)32);
addKnownClass(LogonException.class, (byte)33);
- addKnownClass(MetaMatrixSecurityException.class, (byte)34);
+ addKnownClass(TeiidSecurityException.class, (byte)34);
addKnownClass(InvalidSessionException.class, (byte)35);
addKnownClass(ExceptionHolder.class, (byte)40);
- addKnownClass(MetaMatrixRuntimeException.class, (byte)41);
- addKnownClass(MetaMatrixComponentException.class, (byte)42);
- addKnownClass(MetaMatrixException.class, (byte)43);
- addKnownClass(MetaMatrixProcessingException.class, (byte)44);
+ addKnownClass(TeiidRuntimeException.class, (byte)41);
+ addKnownClass(TeiidComponentException.class, (byte)42);
+ addKnownClass(TeiidException.class, (byte)43);
+ addKnownClass(TeiidProcessingException.class, (byte)44);
+ addKnownClass(ComponentNotFoundException.class, (byte)45);
}
public CompactObjectOutputStream(OutputStream out) throws IOException {
Modified: trunk/client/src/main/java/org/teiid/netty/handler/codec/serialization/ObjectDecoderInputStream.java
===================================================================
--- trunk/client/src/main/java/org/teiid/netty/handler/codec/serialization/ObjectDecoderInputStream.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/netty/handler/codec/serialization/ObjectDecoderInputStream.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -37,11 +37,12 @@
import java.io.StreamCorruptedException;
import java.util.List;
-import com.metamatrix.common.types.InputStreamFactory;
-import com.metamatrix.common.types.Streamable;
-import com.metamatrix.common.types.InputStreamFactory.StreamFactoryReference;
-import com.metamatrix.core.util.ExternalizeUtil;
+import org.teiid.core.types.InputStreamFactory;
+import org.teiid.core.types.Streamable;
+import org.teiid.core.types.InputStreamFactory.StreamFactoryReference;
+import org.teiid.core.util.ExternalizeUtil;
+
/**
* An {@link ObjectInput} which is interoperable with {@link ObjectEncoder}
* and {@link ObjectEncoderOutputStream}.
Modified: trunk/client/src/main/java/org/teiid/netty/handler/codec/serialization/ObjectEncoderOutputStream.java
===================================================================
--- trunk/client/src/main/java/org/teiid/netty/handler/codec/serialization/ObjectEncoderOutputStream.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/main/java/org/teiid/netty/handler/codec/serialization/ObjectEncoderOutputStream.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -28,9 +28,10 @@
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
-import com.metamatrix.core.util.AccessibleByteArrayOutputStream;
-import com.metamatrix.core.util.ExternalizeUtil;
+import org.teiid.core.util.AccessibleByteArrayOutputStream;
+import org.teiid.core.util.ExternalizeUtil;
+
/**
* An {@link ObjectOutput} which is interoperable with {@link ObjectDecoder}
* and {@link ObjectDecoderInputStream}.
Modified: trunk/client/src/test/java/org/teiid/client/TestBatchSerializer.java
===================================================================
--- trunk/client/src/test/java/org/teiid/client/TestBatchSerializer.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/test/java/org/teiid/client/TestBatchSerializer.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -36,10 +36,10 @@
import java.util.List;
import org.teiid.client.BatchSerializer;
+import org.teiid.core.types.DataTypeManager;
import junit.framework.TestCase;
-import com.metamatrix.common.types.DataTypeManager;
/**
Modified: trunk/client/src/test/java/org/teiid/client/TestRequestMessage.java
===================================================================
--- trunk/client/src/test/java/org/teiid/client/TestRequestMessage.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/test/java/org/teiid/client/TestRequestMessage.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -28,11 +28,11 @@
import org.teiid.client.RequestMessage;
import org.teiid.client.RequestMessage.ShowPlan;
import org.teiid.client.RequestMessage.StatementType;
+import org.teiid.core.TeiidProcessingException;
+import org.teiid.core.util.UnitTestUtil;
import junit.framework.TestCase;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.core.util.UnitTestUtil;
public class TestRequestMessage extends TestCase {
@@ -60,7 +60,7 @@
message.setExecutionPayload("myExecutionPayload"); //$NON-NLS-1$
try {
message.setTxnAutoWrapMode(RequestMessage.TXN_WRAP_ON);
- } catch (MetaMatrixProcessingException e) {
+ } catch (TeiidProcessingException e) {
throw new RuntimeException(e);
}
@@ -99,7 +99,7 @@
try {
rm.setTxnAutoWrapMode("foo"); //$NON-NLS-1$
fail("exception expected"); //$NON-NLS-1$
- } catch (MetaMatrixProcessingException e) {
+ } catch (TeiidProcessingException e) {
assertEquals("'FOO' is an invalid transaction autowrap mode.", e.getMessage()); //$NON-NLS-1$
}
}
Modified: trunk/client/src/test/java/org/teiid/client/lob/TestByteLobChunk.java
===================================================================
--- trunk/client/src/test/java/org/teiid/client/lob/TestByteLobChunk.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/test/java/org/teiid/client/lob/TestByteLobChunk.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -25,10 +25,10 @@
import java.util.Arrays;
import org.teiid.client.lob.LobChunk;
+import org.teiid.core.util.UnitTestUtil;
import junit.framework.TestCase;
-import com.metamatrix.core.util.UnitTestUtil;
public class TestByteLobChunk extends TestCase {
Modified: trunk/client/src/test/java/org/teiid/client/lob/TestLobChunkInputStream.java
===================================================================
--- trunk/client/src/test/java/org/teiid/client/lob/TestLobChunkInputStream.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/test/java/org/teiid/client/lob/TestLobChunkInputStream.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -29,10 +29,10 @@
import org.teiid.client.lob.LobChunk;
import org.teiid.client.lob.LobChunkInputStream;
import org.teiid.client.lob.LobChunkProducer;
+import org.teiid.core.util.ObjectConverterUtil;
import junit.framework.TestCase;
-import com.metamatrix.core.util.ObjectConverterUtil;
public class TestLobChunkInputStream extends TestCase {
Added: trunk/client/src/test/java/org/teiid/client/util/TestExceptionHolder.java
===================================================================
--- trunk/client/src/test/java/org/teiid/client/util/TestExceptionHolder.java (rev 0)
+++ trunk/client/src/test/java/org/teiid/client/util/TestExceptionHolder.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -0,0 +1,106 @@
+package org.teiid.client.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.sql.SQLException;
+import java.util.ArrayList;
+
+import junit.framework.TestCase;
+
+import org.junit.Test;
+import org.teiid.client.util.ExceptionHolder;
+import org.teiid.core.TeiidProcessingException;
+import org.teiid.core.TeiidRuntimeException;
+import org.teiid.core.util.ReflectionHelper;
+import org.teiid.core.util.UnitTestUtil;
+
+
+public class TestExceptionHolder extends TestCase {
+
+ //## JDBC4.0-begin ##
+ @SuppressWarnings("all")
+ public static class BadException extends TeiidProcessingException {
+ private Object obj;
+ public BadException(String msg) {super(msg);}
+ public BadException(Object obj) {
+ this.obj = obj;
+ }
+ }
+
+ @Test public void testDeserializationUnknownException() throws Exception {
+ ClassLoader cl = new URLClassLoader(new URL[] {UnitTestUtil.getTestDataFile("test.jar").toURI().toURL()}); //$NON-NLS-1$
+ Object obj = ReflectionHelper.create("test.Test", null, cl); //$NON-NLS-1$
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(baos);
+ oos.writeObject(new ExceptionHolder(new BadException(obj)));
+ oos.flush();
+
+ ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
+ ExceptionHolder holder = (ExceptionHolder)ois.readObject();
+ assertTrue(holder.getException() instanceof BadException);
+ assertEquals("Remote exception: null ... Original type hierarchy [org.teiid.client.util.TestExceptionHolder$BadException, org.teiid.core.TeiidProcessingException, org.teiid.core.TeiidException].", holder.getException().getMessage()); //$NON-NLS-1$
+ }
+
+
+ @SuppressWarnings("all")
+ public static class BadException2 extends TeiidProcessingException {
+ public BadException2(String msg) {
+ super(msg);
+ }
+ public BadException2(Throwable e, String msg) {
+ super(e, msg);
+ }
+ }
+
+ @Test public void testDeserializationUnknownChildException() throws Exception {
+ ClassLoader cl = new URLClassLoader(new URL[] {UnitTestUtil.getTestDataFile("test.jar").toURI().toURL()}); //$NON-NLS-1$
+ Exception obj = (Exception)ReflectionHelper.create("test.UnknownException", null, cl); //$NON-NLS-1$
+ obj.initCause(new SQLException("something bad happended")); //$NON-NLS-1$
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(baos);
+ oos.writeObject(new ExceptionHolder(new BadException2(obj, "I have foreign exception embedded in me"))); //$NON-NLS-1$
+ oos.flush();
+
+ ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
+ ExceptionHolder holder = (ExceptionHolder)ois.readObject();
+ Throwable e = holder.getException();
+ assertTrue(e instanceof BadException2);
+ assertEquals("Remote exception: I have foreign exception embedded in me ... Original type hierarchy [org.teiid.client.util.TestExceptionHolder$BadException2, org.teiid.core.TeiidProcessingException, org.teiid.core.TeiidException].", e.getMessage()); //$NON-NLS-1$
+
+ // now unknown exception is not found, so promote known SQL exception up
+ e = e.getCause();
+ assertTrue(e instanceof SQLException);
+ assertEquals("Remote exception: something bad happended ... Original type hierarchy [java.sql.SQLException].", e.getMessage()); //$NON-NLS-1$
+ }
+
+ @Test public void testDeserializationUnknownChildException2() throws Exception {
+ ClassLoader cl = new URLClassLoader(new URL[] {UnitTestUtil.getTestDataFile("test.jar").toURI().toURL()}); //$NON-NLS-1$
+ ArrayList<String> args = new ArrayList<String>();
+ args.add("Unknown Exception"); //$NON-NLS-1$
+ Exception obj = (Exception)ReflectionHelper.create("test.UnknownException", args, cl); //$NON-NLS-1$
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(baos);
+ oos.writeObject(new ExceptionHolder(obj));
+ oos.flush();
+
+ ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
+ ExceptionHolder holder = (ExceptionHolder)ois.readObject();
+ Throwable e = holder.getException();
+ assertTrue(e instanceof TeiidRuntimeException);
+ assertEquals("Unknown Exception", e.getMessage()); //$NON-NLS-1$
+ }
+ //## JDBC4.0-end ##
+
+ /*## JDBC3.0-JDK1.5-begin ##
+ public void testPass(){
+ // since the jar files required are built with 1.6, it will always fail, so just comment the test for 1.5
+ }
+ ## JDBC3.0-JDK1.5-end ##*/
+}
Property changes on: trunk/client/src/test/java/org/teiid/client/util/TestExceptionHolder.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/client/src/test/java/org/teiid/jdbc/TestAllResultsImpl.java
===================================================================
--- trunk/client/src/test/java/org/teiid/jdbc/TestAllResultsImpl.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/test/java/org/teiid/jdbc/TestAllResultsImpl.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -45,13 +45,13 @@
import org.teiid.client.RequestMessage;
import org.teiid.client.ResultsMessage;
import org.teiid.client.util.ResultsFuture;
+import org.teiid.core.TeiidProcessingException;
+import org.teiid.core.types.JDBCSQLTypeInfo;
+import org.teiid.core.util.TimestampWithTimezone;
import org.teiid.jdbc.ResultSetImpl;
import org.teiid.jdbc.StatementImpl;
+import org.teiid.query.unittest.TimestampUtil;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.common.types.JDBCSQLTypeInfo;
-import com.metamatrix.common.util.TimestampWithTimezone;
-import com.metamatrix.query.unittest.TimestampUtil;
public class TestAllResultsImpl {
@@ -699,7 +699,7 @@
static ResultSetImpl helpTestBatching(StatementImpl statement, int fetchSize, int batchLength,
int totalLength) throws InterruptedException, ExecutionException,
- MetaMatrixProcessingException, SQLException, TimeoutException {
+ TeiidProcessingException, SQLException, TimeoutException {
DQP dqp = mock(DQP.class);
stub(statement.getDQP()).toReturn(dqp);
stub(statement.getFetchSize()).toReturn(fetchSize);
Modified: trunk/client/src/test/java/org/teiid/jdbc/TestMMCallableStatement.java
===================================================================
--- trunk/client/src/test/java/org/teiid/jdbc/TestMMCallableStatement.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/test/java/org/teiid/jdbc/TestMMCallableStatement.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -37,12 +37,12 @@
import org.teiid.client.ResultsMessage;
import org.teiid.client.metadata.ParameterInfo;
import org.teiid.client.security.LogonResult;
+import org.teiid.core.types.JDBCSQLTypeInfo;
import org.teiid.jdbc.CallableStatementImpl;
import org.teiid.jdbc.ConnectionImpl;
import org.teiid.jdbc.ResultSetImpl;
import org.teiid.net.ServerConnection;
-import com.metamatrix.common.types.JDBCSQLTypeInfo;
public class TestMMCallableStatement extends TestCase {
Modified: trunk/client/src/test/java/org/teiid/jdbc/TestMMResultSet.java
===================================================================
--- trunk/client/src/test/java/org/teiid/jdbc/TestMMResultSet.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/test/java/org/teiid/jdbc/TestMMResultSet.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -40,8 +40,8 @@
import org.junit.Test;
import org.teiid.client.DQP;
import org.teiid.client.ResultsMessage;
+import org.teiid.core.TeiidProcessingException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
public class TestMMResultSet {
@@ -713,7 +713,7 @@
}
}
- private ResultSetImpl helpExecuteQuery(int fetchSize, int totalResults, int cursorType) throws SQLException, MetaMatrixProcessingException, InterruptedException, ExecutionException, TimeoutException {
+ private ResultSetImpl helpExecuteQuery(int fetchSize, int totalResults, int cursorType) throws SQLException, TeiidProcessingException, InterruptedException, ExecutionException, TimeoutException {
StatementImpl statement = createMockStatement(cursorType);
return TestAllResultsImpl.helpTestBatching(statement, fetchSize, Math.min(fetchSize, totalResults), totalResults);
}
Modified: trunk/client/src/test/java/org/teiid/jdbc/TestMMSQLException.java
===================================================================
--- trunk/client/src/test/java/org/teiid/jdbc/TestMMSQLException.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/test/java/org/teiid/jdbc/TestMMSQLException.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -34,13 +34,13 @@
import junit.framework.TestCase;
import org.teiid.client.ProcedureErrorInstructionException;
+import org.teiid.core.TeiidProcessingException;
+import org.teiid.core.TeiidException;
+import org.teiid.core.TeiidException;
+import org.teiid.core.TeiidRuntimeException;
import org.teiid.net.CommunicationException;
import org.teiid.net.ConnectionException;
-import com.metamatrix.api.exception.MetaMatrixException;
-import com.metamatrix.api.exception.MetaMatrixProcessingException;
-import com.metamatrix.core.MetaMatrixCoreException;
-import com.metamatrix.core.MetaMatrixRuntimeException;
public class TestMMSQLException extends TestCase {
@@ -99,14 +99,14 @@
new MalformedURLException(
"A test java.net.MalformedURLException"), //$NON-NLS-1$
SQLStates.CONNECTION_EXCEPTION_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION);
- testCreateThrowable(new MetaMatrixCoreException(
+ testCreateThrowable(new TeiidException(
"A test Generic MM Core Exception"), SQLStates.DEFAULT); //$NON-NLS-1$
- testCreateThrowable(new MetaMatrixException("A test MM Exception"), //$NON-NLS-1$
+ testCreateThrowable(new TeiidException("A test MM Exception"), //$NON-NLS-1$
SQLStates.DEFAULT);
- testCreateThrowable(new MetaMatrixProcessingException(
+ testCreateThrowable(new TeiidProcessingException(
"A test Generic MM Query Processing Exception"), //$NON-NLS-1$
SQLStates.USAGE_ERROR);
- testCreateThrowable(new MetaMatrixRuntimeException(
+ testCreateThrowable(new TeiidRuntimeException(
"A test MM Runtime Exception"), SQLStates.DEFAULT); //$NON-NLS-1$
testCreateThrowable(new TeiidSQLException(
"A test Generic MM SQL Exception"), SQLStates.DEFAULT); //$NON-NLS-1$
@@ -144,7 +144,7 @@
"Test Communication Exception with a SocketException in it"), //$NON-NLS-1$
SQLStates.CONNECTION_EXCEPTION_STALE_CONNECTION);
testCreateThrowable(
- new MetaMatrixException(new SocketTimeoutException(
+ new TeiidException(new SocketTimeoutException(
"A test java.net.SocketTimeoutException"), //$NON-NLS-1$
"Test MetaMatrixException with a SocketTimeoutException in it"), //$NON-NLS-1$
SQLStates.CONNECTION_EXCEPTION_STALE_CONNECTION);
@@ -152,8 +152,8 @@
public void testCreateThrowable3() {
TeiidSQLException e = testCreateThrowable(
- new MetaMatrixCoreException(
- new MetaMatrixRuntimeException(
+ new TeiidException(
+ new TeiidRuntimeException(
new SocketTimeoutException(
"A test MM Invalid Session Exception"), //$NON-NLS-1$
"Test MetaMatrixRuntimeException with a InvalidSessionException in it"), //$NON-NLS-1$
Modified: trunk/client/src/test/java/org/teiid/jdbc/TestTeiidDataSource.java
===================================================================
--- trunk/client/src/test/java/org/teiid/jdbc/TestTeiidDataSource.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/test/java/org/teiid/jdbc/TestTeiidDataSource.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -28,12 +28,12 @@
import java.sql.SQLException;
import org.teiid.client.RequestMessage.ShowPlan;
+import org.teiid.core.util.UnitTestUtil;
import org.teiid.jdbc.BaseDataSource;
import org.teiid.jdbc.TeiidDataSource;
import junit.framework.TestCase;
-import com.metamatrix.core.util.UnitTestUtil;
public class TestTeiidDataSource extends TestCase {
Modified: trunk/client/src/test/java/org/teiid/net/socket/TestServiceInvocationStruct.java
===================================================================
--- trunk/client/src/test/java/org/teiid/net/socket/TestServiceInvocationStruct.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/test/java/org/teiid/net/socket/TestServiceInvocationStruct.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -24,11 +24,11 @@
import java.util.Arrays;
+import org.teiid.core.util.UnitTestUtil;
import org.teiid.net.socket.ServiceInvocationStruct;
import junit.framework.TestCase;
-import com.metamatrix.core.util.UnitTestUtil;
public class TestServiceInvocationStruct extends TestCase {
Modified: trunk/client/src/test/java/org/teiid/net/socket/TestSocketServerConnection.java
===================================================================
--- trunk/client/src/test/java/org/teiid/net/socket/TestSocketServerConnection.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/test/java/org/teiid/net/socket/TestSocketServerConnection.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -38,6 +38,8 @@
import org.teiid.client.security.LogonResult;
import org.teiid.client.security.SessionToken;
import org.teiid.client.util.ResultsFuture;
+import org.teiid.core.TeiidComponentException;
+import org.teiid.core.crypto.NullCryptor;
import org.teiid.net.CommunicationException;
import org.teiid.net.ConnectionException;
import org.teiid.net.HostInfo;
@@ -47,8 +49,6 @@
import org.teiid.net.socket.SocketServerInstance;
import org.teiid.net.socket.SocketServerInstanceFactory;
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.common.util.crypto.NullCryptor;
/**
* <code>TestCase</case> for <code>SocketServerConnection</code>
@@ -65,7 +65,7 @@
@Override
//## JDBC4.0-end ##
public void assertIdentity(SessionToken sessionId)
- throws InvalidSessionException, MetaMatrixComponentException {
+ throws InvalidSessionException, TeiidComponentException {
}
@@ -83,7 +83,7 @@
public LogonResult logon(
Properties connectionProperties)
throws LogonException,
- MetaMatrixComponentException {
+ TeiidComponentException {
return new LogonResult(new SessionToken(1, "fooUser"), "foo", 1, "fake"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
@@ -92,9 +92,9 @@
//## JDBC4.0-end ##
public ResultsFuture<?> ping()
throws InvalidSessionException,
- MetaMatrixComponentException {
+ TeiidComponentException {
if (t != null) {
- MetaMatrixComponentException e = new MetaMatrixComponentException(t);
+ TeiidComponentException e = new TeiidComponentException(t);
t = null;
throw e;
}
@@ -167,7 +167,7 @@
try {
logon.ping();
fail("expected exception"); //$NON-NLS-1$
- } catch (MetaMatrixComponentException e) {
+ } catch (TeiidComponentException e) {
}
}
@@ -179,7 +179,7 @@
try {
logon.ping();
fail("expected exception"); //$NON-NLS-1$
- } catch (MetaMatrixComponentException e) {
+ } catch (TeiidComponentException e) {
}
}
Modified: trunk/client/src/test/java/org/teiid/net/socket/TestSocketServerInstanceImpl.java
===================================================================
--- trunk/client/src/test/java/org/teiid/net/socket/TestSocketServerInstanceImpl.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/test/java/org/teiid/net/socket/TestSocketServerInstanceImpl.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -37,12 +37,12 @@
import org.junit.Test;
import org.teiid.client.security.ILogon;
import org.teiid.client.util.ResultsFuture;
+import org.teiid.core.TeiidComponentException;
import org.teiid.net.CommunicationException;
import org.teiid.net.HostInfo;
import org.teiid.net.socket.ObjectChannelFactory;
import org.teiid.net.socket.SocketServerInstanceImpl;
-import com.metamatrix.api.exception.MetaMatrixComponentException;
public class TestSocketServerInstanceImpl {
@@ -155,7 +155,7 @@
try {
logon.logon(new Properties());
fail("Exception expected"); //$NON-NLS-1$
- } catch (MetaMatrixComponentException e) {
+ } catch (TeiidComponentException e) {
assertTrue(e.getCause().getCause() instanceof TimeoutException);
}
}
Modified: trunk/client/src/test/java/org/teiid/net/socket/TestSocketServiceRegistry.java
===================================================================
--- trunk/client/src/test/java/org/teiid/net/socket/TestSocketServiceRegistry.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/test/java/org/teiid/net/socket/TestSocketServiceRegistry.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -32,9 +32,9 @@
import org.teiid.client.security.ILogon;
import org.teiid.client.util.ExceptionUtil;
import org.teiid.client.xa.XATransactionException;
+import org.teiid.core.TeiidComponentException;
+import org.teiid.core.TeiidRuntimeException;
-import com.metamatrix.api.exception.MetaMatrixComponentException;
-import com.metamatrix.core.MetaMatrixRuntimeException;
public class TestSocketServiceRegistry extends TestCase {
@@ -46,16 +46,16 @@
Method m = Foo.class.getMethod("somemethod", new Class[] {});
- Throwable t = ExceptionUtil.convertException(m, new MetaMatrixComponentException());
+ Throwable t = ExceptionUtil.convertException(m, new TeiidComponentException());
- assertTrue(t instanceof MetaMatrixRuntimeException);
+ assertTrue(t instanceof TeiidRuntimeException);
}
public void testAdminExceptionConversion() throws Exception {
Method m = Admin.class.getMethod("getProcesses", new Class[] {String.class});
- Throwable t = ExceptionUtil.convertException(m, new MetaMatrixComponentException());
+ Throwable t = ExceptionUtil.convertException(m, new TeiidComponentException());
assertTrue(t instanceof AdminException);
}
@@ -66,14 +66,14 @@
Throwable t = ExceptionUtil.convertException(m, new NullPointerException());
- assertTrue(t instanceof MetaMatrixComponentException);
+ assertTrue(t instanceof TeiidComponentException);
}
public void testXATransactionExceptionConversion() throws Exception {
Method m = DQP.class.getMethod("recover", new Class[] {Integer.TYPE});
- Throwable t = ExceptionUtil.convertException(m, new MetaMatrixComponentException());
+ Throwable t = ExceptionUtil.convertException(m, new TeiidComponentException());
assertTrue(t instanceof XATransactionException);
}
Modified: trunk/client/src/test/java/org/teiid/net/socket/TestSocketUtil.java
===================================================================
--- trunk/client/src/test/java/org/teiid/net/socket/TestSocketUtil.java 2010-05-11 16:40:58 UTC (rev 2113)
+++ trunk/client/src/test/java/org/teiid/net/socket/TestSocketUtil.java 2010-05-11 21:30:12 UTC (rev 2114)
@@ -24,11 +24,11 @@
import java.io.IOException;
+import org.teiid.core.util.UnitTestUtil;
import org.teiid.net.socket.SocketUtil;
import junit.framework.TestCase;
-import com.metamatrix.core.util.UnitTestUtil;
public class TestSocketUtil extends TestCase {
Copied: trunk/client/src/test/resources/test.jar (from rev 2113, trunk/common-core/src/test/resources/test.jar)
===================================================================
(Binary files differ)
Property changes on: trunk/client/src/test/resources/test.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
15 years, 11 months
teiid SVN: r2113 - in trunk: connector-api/src/main/java/org/teiid/resource/adapter and 30 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-05-11 12:40:58 -0400 (Tue, 11 May 2010)
New Revision: 2113
Added:
trunk/connector-api/src/main/java/org/teiid/logging/JavaLogger.java
trunk/connector-api/src/main/java/org/teiid/logging/Logger.java
trunk/connector-api/src/main/java/org/teiid/resource/adapter/FileConnection.java
trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/
trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/
trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/FileConnectionImpl.java
trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/FileManagedConnectionFactory.java
trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextConnectionImpl.java
trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/
trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestMultiFileTextSynchExecution.java
trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestRowHeaderTextSynchExecution.java
trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextConnection.java
trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextConnector.java
trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextSynchExecution.java
trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/Util.java
trunk/connectors/translator-text/src/test/resources/EmpData.txt
trunk/connectors/translator-text/src/test/resources/EmployeeTestDataSalary.txt
trunk/connectors/translator-text/src/test/resources/MultiParts/
trunk/connectors/translator-text/src/test/resources/SUMMITDATA3.txt
trunk/connectors/translator-text/src/test/resources/SummitData_Descriptor.txt
trunk/connectors/translator-text/src/test/resources/SummitExtractCDM_Descriptor.txt
trunk/connectors/translator-text/src/test/resources/TextParts/
trunk/connectors/translator-text/src/test/resources/case4151/
trunk/connectors/translator-text/src/test/resources/cdm_dos.txt
trunk/connectors/translator-text/src/test/resources/libraryDelimited.txt
trunk/connectors/translator-text/src/test/resources/summitData/
trunk/connectors/translator-text/src/test/resources/test-file.txt.csv
trunk/connectors/translator-text/src/test/resources/testDescriptorDelimited.txt
trunk/connectors/translator-text/src/test/resources/testfile-descriptor.txt
Removed:
trunk/connector-api/src/main/java/org/teiid/logging/JavaLogWriter.java
trunk/connector-api/src/main/java/org/teiid/logging/LogListener.java
trunk/connector-api/src/main/java/org/teiid/resource/cci/TypeFacilityImpl.java
trunk/connectors/connector-text/src/main/java/com/
trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/TextConnectionFactory.java
trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/TextConnectionImpl.java
trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/TextManagedConnectionFactory.java
trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/TextPlugin.java
trunk/connectors/connector-text/src/main/java/org/teiid/resource/cci/text/
trunk/connectors/connector-text/src/main/resources/org/
trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestMultiFileTextSynchExecution.java
trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestRowHeaderTextSynchExecution.java
trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestTextConnection.java
trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestTextConnector.java
trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestTextSynchExecution.java
trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/Util.java
trunk/connectors/connector-text/src/test/resources/EmpData.txt
trunk/connectors/connector-text/src/test/resources/EmployeeTestDataSalary.txt
trunk/connectors/connector-text/src/test/resources/MultiParts/
trunk/connectors/connector-text/src/test/resources/SUMMITDATA3.txt
trunk/connectors/connector-text/src/test/resources/SummitData_Descriptor.txt
trunk/connectors/connector-text/src/test/resources/SummitExtractCDM_Descriptor.txt
trunk/connectors/connector-text/src/test/resources/TextParts/
trunk/connectors/connector-text/src/test/resources/case4151/
trunk/connectors/connector-text/src/test/resources/cdm_dos.txt
trunk/connectors/connector-text/src/test/resources/libraryDelimited.txt
trunk/connectors/connector-text/src/test/resources/summitData/
trunk/connectors/connector-text/src/test/resources/test-file.txt.csv
trunk/connectors/connector-text/src/test/resources/testDescriptorDelimited.txt
trunk/connectors/connector-text/src/test/resources/testfile-descriptor.txt
trunk/connectors/sandbox/translator-yahoo/src/main/java/com/metamatrix/
trunk/connectors/translator-jdbc/src/main/java/org/teiid/connector/
trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPConnection.java
trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextConnection.java
trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextUtil.java
Modified:
trunk/connector-api/src/main/java/org/teiid/logging/LogManager.java
trunk/connector-api/src/main/java/org/teiid/resource/adapter/BasicExecutionFactory.java
trunk/connector-api/src/main/java/org/teiid/resource/cci/TypeFacility.java
trunk/connector-api/src/main/java/org/teiid/resource/spi/BasicConnection.java
trunk/connector-api/src/main/java/org/teiid/resource/spi/BasicConnectionFactory.java
trunk/connector-api/src/main/java/org/teiid/resource/spi/BasicManagedConnection.java
trunk/connector-api/src/main/java/org/teiid/resource/spi/ConnectionRequestInfoWrapper.java
trunk/connector-api/src/main/java/org/teiid/resource/spi/WrappedConnectionFactory.java
trunk/connector-api/src/test/java/org/teiid/logging/TestLogManager.java
trunk/connectors/connector-ldap/pom.xml
trunk/connectors/connector-ldap/src/main/java/org/teiid/resource/cci/ldap/LDAPConnectionImpl.java
trunk/connectors/connector-ldap/src/main/java/org/teiid/resource/cci/ldap/LDAPManagedConnectionFactory.java
trunk/connectors/connector-salesforce/src/main/java/org/teiid/resource/cci/salesforce/SalesForceManagedConnectionFactory.java
trunk/connectors/connector-text/pom.xml
trunk/connectors/connector-text/src/main/rar/META-INF/ra.xml
trunk/connectors/sandbox/translator-yahoo/src/main/java/org/teiid/resource/adapter/yahoo/YahooCapabilities.java
trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPExecutionFactory.java
trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPSyncQueryExecution.java
trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPUpdateExecution.java
trunk/connectors/translator-loopback/src/test/java/org/teiid/resource/adaptor/loopback/TestLoobackAsynch.java
trunk/connectors/translator-loopback/src/test/java/org/teiid/resource/adaptor/loopback/TestLoopbackExecution.java
trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextDescriptorPropertyNames.java
trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextExecutionFactory.java
trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextSynchExecution.java
trunk/engine/src/main/java/com/metamatrix/query/function/source/XMLSystemFunctions.java
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorWorkItem.java
trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/impl/TestTypeFacilityImpl.java
trunk/metadata/src/test/java/com/metamatrix/cdk/api/ConnectorHost.java
trunk/runtime/src/main/java/org/teiid/logging/Log4jListener.java
Log:
TEIID-1077 refining text connector separation with minor changes to the connector-api
Deleted: trunk/connector-api/src/main/java/org/teiid/logging/JavaLogWriter.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/logging/JavaLogWriter.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connector-api/src/main/java/org/teiid/logging/JavaLogWriter.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,75 +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 org.teiid.logging;
-
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- * Write to Java logging
- */
-public class JavaLogWriter implements LogListener {
-
- @Override
- public boolean isEnabled(String context, int msgLevel) {
- Logger logger = Logger.getLogger(context);
-
- Level javaLevel = convertLevel(msgLevel);
- return logger.isLoggable(javaLevel);
- }
-
- public void log(int level, String context, Object msg) {
- Logger logger = Logger.getLogger(context);
-
- Level javaLevel = convertLevel(level);
- logger.log(javaLevel, msg.toString());
- }
-
- public void log(int level, String context, Throwable t, Object msg) {
- Logger logger = Logger.getLogger(context);
-
- Level javaLevel = convertLevel(level);
- logger.log(javaLevel, msg.toString(), t);
- }
-
- public Level convertLevel(int level) {
- switch (level) {
- case MessageLevel.CRITICAL:
- case MessageLevel.ERROR:
- return Level.SEVERE;
- case MessageLevel.WARNING:
- return Level.WARNING;
- case MessageLevel.INFO:
- return Level.FINE;
- case MessageLevel.DETAIL:
- return Level.FINER;
- case MessageLevel.TRACE:
- return Level.FINEST;
- }
- return Level.ALL;
- }
-
- public void shutdown() {
- }
-
-}
Copied: trunk/connector-api/src/main/java/org/teiid/logging/JavaLogger.java (from rev 2108, trunk/connector-api/src/main/java/org/teiid/logging/JavaLogWriter.java)
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/logging/JavaLogger.java (rev 0)
+++ trunk/connector-api/src/main/java/org/teiid/logging/JavaLogger.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,75 @@
+/*
+ * 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 org.teiid.logging;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ * Write to Java logging
+ */
+public class JavaLogger implements org.teiid.logging.Logger {
+
+ @Override
+ public boolean isEnabled(String context, int msgLevel) {
+ Logger logger = Logger.getLogger(context);
+
+ Level javaLevel = convertLevel(msgLevel);
+ return logger.isLoggable(javaLevel);
+ }
+
+ public void log(int level, String context, Object msg) {
+ Logger logger = Logger.getLogger(context);
+
+ Level javaLevel = convertLevel(level);
+ logger.log(javaLevel, msg.toString());
+ }
+
+ public void log(int level, String context, Throwable t, Object msg) {
+ Logger logger = Logger.getLogger(context);
+
+ Level javaLevel = convertLevel(level);
+ logger.log(javaLevel, msg.toString(), t);
+ }
+
+ public Level convertLevel(int level) {
+ switch (level) {
+ case MessageLevel.CRITICAL:
+ case MessageLevel.ERROR:
+ return Level.SEVERE;
+ case MessageLevel.WARNING:
+ return Level.WARNING;
+ case MessageLevel.INFO:
+ return Level.FINE;
+ case MessageLevel.DETAIL:
+ return Level.FINER;
+ case MessageLevel.TRACE:
+ return Level.FINEST;
+ }
+ return Level.ALL;
+ }
+
+ public void shutdown() {
+ }
+
+}
Property changes on: trunk/connector-api/src/main/java/org/teiid/logging/JavaLogger.java
___________________________________________________________________
Name: svn:mergeinfo
+
Deleted: trunk/connector-api/src/main/java/org/teiid/logging/LogListener.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/logging/LogListener.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connector-api/src/main/java/org/teiid/logging/LogListener.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,51 +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 org.teiid.logging;
-
-
-/**
- * LogListener
- */
-public interface LogListener {
-
- /**
- * Is the logging for the given context at the specified message level enabled.
- * @param context
- * @param msgLevel
- * @return
- */
- boolean isEnabled(String context, int msgLevel);
-
- void log(int level, String context, Object msg);
-
- void log(int level, String context, Throwable t, Object msg);
-
- /**
- * Shut down this listener, requesting it clean up and release any resources it
- * may have acquired during its use. The listener is free to ignore this
- * request if it is not responsible for managing the resources it uses or if
- * there are no resources.
- */
- void shutdown();
-
-}
Modified: trunk/connector-api/src/main/java/org/teiid/logging/LogManager.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/logging/LogManager.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connector-api/src/main/java/org/teiid/logging/LogManager.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -130,7 +130,7 @@
}
}
- static LogListener logListener = new JavaLogWriter(); // either injected or manually set using the set methods
+ static Logger logListener = new JavaLogger(); // either injected or manually set using the set methods
/**
* Send a critical message to the log. This level of message is generally
@@ -354,13 +354,13 @@
logListener.log(msgLevel, context, e, message);
}
- public static void setLogListener(LogListener listener) {
+ public static void setLogListener(Logger listener) {
logListener.shutdown();
if (listener != null) {
logListener = listener;
}
else {
- logListener = new JavaLogWriter();
+ logListener = new JavaLogger();
}
}
Copied: trunk/connector-api/src/main/java/org/teiid/logging/Logger.java (from rev 2108, trunk/connector-api/src/main/java/org/teiid/logging/LogListener.java)
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/logging/Logger.java (rev 0)
+++ trunk/connector-api/src/main/java/org/teiid/logging/Logger.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,51 @@
+/*
+ * 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 org.teiid.logging;
+
+
+/**
+ * LogListener
+ */
+public interface Logger {
+
+ /**
+ * Is the logging for the given context at the specified message level enabled.
+ * @param context
+ * @param msgLevel
+ * @return
+ */
+ boolean isEnabled(String context, int msgLevel);
+
+ void log(int level, String context, Object msg);
+
+ void log(int level, String context, Throwable t, Object msg);
+
+ /**
+ * Shut down this listener, requesting it clean up and release any resources it
+ * may have acquired during its use. The listener is free to ignore this
+ * request if it is not responsible for managing the resources it uses or if
+ * there are no resources.
+ */
+ void shutdown();
+
+}
Modified: trunk/connector-api/src/main/java/org/teiid/resource/adapter/BasicExecutionFactory.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/resource/adapter/BasicExecutionFactory.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connector-api/src/main/java/org/teiid/resource/adapter/BasicExecutionFactory.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -20,7 +20,6 @@
import org.teiid.resource.cci.ProcedureExecution;
import org.teiid.resource.cci.ResultSetExecution;
import org.teiid.resource.cci.TypeFacility;
-import org.teiid.resource.cci.TypeFacilityImpl;
import org.teiid.resource.cci.UpdateExecution;
import org.teiid.resource.spi.BasicManagedConnectionFactory;
@@ -31,7 +30,7 @@
public class BasicExecutionFactory implements ExecutionFactory {
protected ConnectorCapabilities capabilities;
- private static final TypeFacility TYPE_FACILITY = new TypeFacilityImpl();
+ private static final TypeFacility TYPE_FACILITY = new TypeFacility();
private String capabilitiesClass;
private boolean immutable = false;
Copied: trunk/connector-api/src/main/java/org/teiid/resource/adapter/FileConnection.java (from rev 2108, trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextConnection.java)
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/resource/adapter/FileConnection.java (rev 0)
+++ trunk/connector-api/src/main/java/org/teiid/resource/adapter/FileConnection.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,32 @@
+/*
+ * 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 org.teiid.resource.adapter;
+
+import java.io.File;
+
+import javax.resource.cci.Connection;
+
+public interface FileConnection extends Connection {
+
+ File[] getFiles(String path);
+
+}
Modified: trunk/connector-api/src/main/java/org/teiid/resource/cci/TypeFacility.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/resource/cci/TypeFacility.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connector-api/src/main/java/org/teiid/resource/cci/TypeFacility.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -23,14 +23,16 @@
package org.teiid.resource.cci;
import java.util.Calendar;
+import java.util.Date;
import java.util.TimeZone;
import com.metamatrix.common.types.DataTypeManager;
import com.metamatrix.common.types.JDBCSQLTypeInfo;
+import com.metamatrix.common.util.TimestampWithTimezone;
/**
*/
-public abstract class TypeFacility {
+public class TypeFacility {
public interface RUNTIME_TYPES {
public static final Class STRING = DataTypeManager.DefaultDataClasses.STRING;
@@ -107,8 +109,10 @@
* @param value
* @return
*/
- public abstract Object convertToRuntimeType(Object value);
-
+ public Object convertToRuntimeType(Object value) {
+ return DataTypeManager.convertToRuntimeType(value);
+ }
+
/**
* Convert the given date to a target type, optionally adjusting its display
* for a given target Calendar.
@@ -118,6 +122,9 @@
* @param targetType
* @return
*/
- public abstract Object convertDate(java.util.Date date, TimeZone initial, Calendar target, Class targetType);
+ public Object convertDate(Date date, TimeZone initial, Calendar target,
+ Class targetType) {
+ return TimestampWithTimezone.create(date, initial, target, targetType);
+ }
}
Deleted: trunk/connector-api/src/main/java/org/teiid/resource/cci/TypeFacilityImpl.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/resource/cci/TypeFacilityImpl.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connector-api/src/main/java/org/teiid/resource/cci/TypeFacilityImpl.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,51 +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 org.teiid.resource.cci;
-
-import java.util.Calendar;
-import java.util.Date;
-import java.util.TimeZone;
-
-
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.common.util.TimestampWithTimezone;
-
-/**
- */
-public class TypeFacilityImpl extends TypeFacility {
-
- public TypeFacilityImpl() {
- }
-
- @Override
- public Object convertToRuntimeType(Object value) {
- return DataTypeManager.convertToRuntimeType(value);
- }
-
- @Override
- public Object convertDate(Date date, TimeZone initial, Calendar target,
- Class targetType) {
- return TimestampWithTimezone.create(date, initial, target, targetType);
- }
-
-}
Modified: trunk/connector-api/src/main/java/org/teiid/resource/spi/BasicConnection.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/resource/spi/BasicConnection.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connector-api/src/main/java/org/teiid/resource/spi/BasicConnection.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -49,5 +49,9 @@
public ResultSetInfo getResultSetInfo() throws ResourceException {
throw new ResourceException("This operation not supported"); //$NON-NLS-1$
}
+
+ public boolean isAlive() {
+ return true;
+ }
}
Modified: trunk/connector-api/src/main/java/org/teiid/resource/spi/BasicConnectionFactory.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/resource/spi/BasicConnectionFactory.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connector-api/src/main/java/org/teiid/resource/spi/BasicConnectionFactory.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -3,7 +3,6 @@
import javax.naming.NamingException;
import javax.naming.Reference;
import javax.resource.ResourceException;
-import javax.resource.cci.Connection;
import javax.resource.cci.ConnectionFactory;
import javax.resource.cci.ConnectionSpec;
import javax.resource.cci.RecordFactory;
@@ -14,7 +13,10 @@
private Reference reference;
@Override
- public Connection getConnection(ConnectionSpec arg0) throws ResourceException {
+ public abstract BasicConnection getConnection() throws ResourceException;
+
+ @Override
+ public BasicConnection getConnection(ConnectionSpec arg0) throws ResourceException {
throw new ResourceException("This operation not supported"); //$NON-NLS-1$;
}
Modified: trunk/connector-api/src/main/java/org/teiid/resource/spi/BasicManagedConnection.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/resource/spi/BasicManagedConnection.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connector-api/src/main/java/org/teiid/resource/spi/BasicManagedConnection.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -43,10 +43,10 @@
public class BasicManagedConnection implements ManagedConnection {
protected PrintWriter log;
protected final Collection<ConnectionEventListener> listeners = new ArrayList<ConnectionEventListener>();
- private Connection physicalConnection;
+ private BasicConnection physicalConnection;
private final Set<WrappedConnection> handles = new HashSet<WrappedConnection>();
- public BasicManagedConnection(Connection connection) {
+ public BasicManagedConnection(BasicConnection connection) {
this.physicalConnection = connection;
}
@@ -160,6 +160,9 @@
}
public boolean isValid() {
- return true;
+ if (this.physicalConnection == null) {
+ return false;
+ }
+ return this.physicalConnection.isAlive();
}
}
Modified: trunk/connector-api/src/main/java/org/teiid/resource/spi/ConnectionRequestInfoWrapper.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/resource/spi/ConnectionRequestInfoWrapper.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connector-api/src/main/java/org/teiid/resource/spi/ConnectionRequestInfoWrapper.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -21,13 +21,12 @@
*/
package org.teiid.resource.spi;
-import javax.resource.cci.ConnectionFactory;
import javax.resource.spi.ConnectionRequestInfo;
class ConnectionRequestInfoWrapper implements ConnectionRequestInfo {
- ConnectionFactory cf;
+ BasicConnectionFactory cf;
- public ConnectionRequestInfoWrapper(ConnectionFactory cf) {
+ public ConnectionRequestInfoWrapper(BasicConnectionFactory cf) {
this.cf = cf;
}
}
Modified: trunk/connector-api/src/main/java/org/teiid/resource/spi/WrappedConnectionFactory.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/resource/spi/WrappedConnectionFactory.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connector-api/src/main/java/org/teiid/resource/spi/WrappedConnectionFactory.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -37,12 +37,12 @@
public class WrappedConnectionFactory implements ConnectionFactory, Referenceable, Serializable {
private static final long serialVersionUID = 5499157394014613035L;
- private ConnectionFactory delegate;
+ private BasicConnectionFactory delegate;
private ConnectionManager cm;
private BasicManagedConnectionFactory mcf;
private Reference reference;
- public WrappedConnectionFactory(ConnectionFactory delegate, ConnectionManager cm, BasicManagedConnectionFactory mcf) {
+ public WrappedConnectionFactory(BasicConnectionFactory delegate, ConnectionManager cm, BasicManagedConnectionFactory mcf) {
this.delegate = delegate;
this.cm = cm;
this.mcf = mcf;
Modified: trunk/connector-api/src/test/java/org/teiid/logging/TestLogManager.java
===================================================================
--- trunk/connector-api/src/test/java/org/teiid/logging/TestLogManager.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connector-api/src/test/java/org/teiid/logging/TestLogManager.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -29,7 +29,7 @@
import java.util.Map;
import java.util.Set;
-import org.teiid.logging.LogListener;
+import org.teiid.logging.Logger;
import org.teiid.logging.LogManager;
import org.teiid.logging.MessageLevel;
@@ -103,7 +103,7 @@
* A log listener that saves messages (IStatus)s in a
* List for later comparison.
*/
- class ListLogger implements LogListener {
+ class ListLogger implements Logger {
private List<String> messages = new ArrayList<String>();
private Map<String, Integer> contextMap = new HashMap<String, Integer>();
private int defaultLevel;
Modified: trunk/connectors/connector-ldap/pom.xml
===================================================================
--- trunk/connectors/connector-ldap/pom.xml 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-ldap/pom.xml 2010-05-11 16:40:58 UTC (rev 2113)
@@ -23,12 +23,6 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.jboss.teiid.connectors</groupId>
- <artifactId>translator-ldap</artifactId>
- <version>${project.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>javax.resource</groupId>
<artifactId>connector-api</artifactId>
<scope>provided</scope>
Modified: trunk/connectors/connector-ldap/src/main/java/org/teiid/resource/cci/ldap/LDAPConnectionImpl.java
===================================================================
--- trunk/connectors/connector-ldap/src/main/java/org/teiid/resource/cci/ldap/LDAPConnectionImpl.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-ldap/src/main/java/org/teiid/resource/cci/ldap/LDAPConnectionImpl.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -24,14 +24,27 @@
import java.util.Hashtable;
+import javax.naming.Binding;
import javax.naming.Context;
+import javax.naming.Name;
+import javax.naming.NameClassPair;
+import javax.naming.NameParser;
+import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
+import javax.naming.directory.Attributes;
+import javax.naming.directory.DirContext;
+import javax.naming.directory.ModificationItem;
+import javax.naming.directory.SearchControls;
+import javax.naming.directory.SearchResult;
+import javax.naming.ldap.Control;
+import javax.naming.ldap.ExtendedRequest;
+import javax.naming.ldap.ExtendedResponse;
import javax.naming.ldap.InitialLdapContext;
+import javax.naming.ldap.LdapContext;
import org.teiid.logging.LogConstants;
import org.teiid.logging.LogManager;
import org.teiid.resource.ConnectorException;
-import org.teiid.resource.adapter.ldap.LDAPConnection;
import org.teiid.resource.spi.BasicConnection;
@@ -39,13 +52,13 @@
/**
* Represents a connection to an LDAP data source.
*/
-public class LDAPConnectionImpl extends BasicConnection implements LDAPConnection {
+public class LDAPConnectionImpl extends BasicConnection implements LdapContext {
private LDAPManagedConnectionFactory config;
// Standard Connection data members
private InitialLdapContext initCtx;
-
+
// LDAP-specific properties
public static final String LDAP_AUTH_TYPE = "simple"; //$NON-NLS-1$
public static final String LDAP_USER_OBJECT_TYPE = "person"; //$NON-NLS-1$
@@ -174,8 +187,289 @@
return true;
}
- @Override
public Object lookup(String context) throws NamingException {
return this.initCtx.lookup(context);
}
+
+ public Object addToEnvironment(String propName, Object propVal)
+ throws NamingException {
+ return initCtx.addToEnvironment(propName, propVal);
+ }
+
+ public void bind(Name name, Object obj, Attributes attrs)
+ throws NamingException {
+ initCtx.bind(name, obj, attrs);
+ }
+
+ public void bind(Name name, Object obj) throws NamingException {
+ initCtx.bind(name, obj);
+ }
+
+ public void bind(String name, Object obj, Attributes attrs)
+ throws NamingException {
+ initCtx.bind(name, obj, attrs);
+ }
+
+ public void bind(String name, Object obj) throws NamingException {
+ initCtx.bind(name, obj);
+ }
+
+ public Name composeName(Name name, Name prefix) throws NamingException {
+ return initCtx.composeName(name, prefix);
+ }
+
+ public String composeName(String name, String prefix)
+ throws NamingException {
+ return initCtx.composeName(name, prefix);
+ }
+
+ public DirContext createSubcontext(Name name, Attributes attrs)
+ throws NamingException {
+ return initCtx.createSubcontext(name, attrs);
+ }
+
+ public Context createSubcontext(Name name) throws NamingException {
+ return initCtx.createSubcontext(name);
+ }
+
+ public DirContext createSubcontext(String name, Attributes attrs)
+ throws NamingException {
+ return initCtx.createSubcontext(name, attrs);
+ }
+
+ public Context createSubcontext(String name) throws NamingException {
+ return initCtx.createSubcontext(name);
+ }
+
+ public void destroySubcontext(Name name) throws NamingException {
+ initCtx.destroySubcontext(name);
+ }
+
+ public void destroySubcontext(String name) throws NamingException {
+ initCtx.destroySubcontext(name);
+ }
+
+ public boolean equals(Object obj) {
+ return initCtx.equals(obj);
+ }
+
+ public ExtendedResponse extendedOperation(ExtendedRequest request)
+ throws NamingException {
+ return initCtx.extendedOperation(request);
+ }
+
+ public Attributes getAttributes(Name name, String[] attrIds)
+ throws NamingException {
+ return initCtx.getAttributes(name, attrIds);
+ }
+
+ public Attributes getAttributes(Name name) throws NamingException {
+ return initCtx.getAttributes(name);
+ }
+
+ public Attributes getAttributes(String name, String[] attrIds)
+ throws NamingException {
+ return initCtx.getAttributes(name, attrIds);
+ }
+
+ public Attributes getAttributes(String name) throws NamingException {
+ return initCtx.getAttributes(name);
+ }
+
+ public Control[] getConnectControls() throws NamingException {
+ return initCtx.getConnectControls();
+ }
+
+ public Hashtable<?, ?> getEnvironment() throws NamingException {
+ return initCtx.getEnvironment();
+ }
+
+ public String getNameInNamespace() throws NamingException {
+ return initCtx.getNameInNamespace();
+ }
+
+ public NameParser getNameParser(Name name) throws NamingException {
+ return initCtx.getNameParser(name);
+ }
+
+ public NameParser getNameParser(String name) throws NamingException {
+ return initCtx.getNameParser(name);
+ }
+
+ public Control[] getRequestControls() throws NamingException {
+ return initCtx.getRequestControls();
+ }
+
+ public Control[] getResponseControls() throws NamingException {
+ return initCtx.getResponseControls();
+ }
+
+ public DirContext getSchema(Name name) throws NamingException {
+ return initCtx.getSchema(name);
+ }
+
+ public DirContext getSchema(String name) throws NamingException {
+ return initCtx.getSchema(name);
+ }
+
+ public DirContext getSchemaClassDefinition(Name name)
+ throws NamingException {
+ return initCtx.getSchemaClassDefinition(name);
+ }
+
+ public DirContext getSchemaClassDefinition(String name)
+ throws NamingException {
+ return initCtx.getSchemaClassDefinition(name);
+ }
+
+ public int hashCode() {
+ return initCtx.hashCode();
+ }
+
+ public NamingEnumeration<NameClassPair> list(Name name)
+ throws NamingException {
+ return initCtx.list(name);
+ }
+
+ public NamingEnumeration<NameClassPair> list(String name)
+ throws NamingException {
+ return initCtx.list(name);
+ }
+
+ public NamingEnumeration<Binding> listBindings(Name name)
+ throws NamingException {
+ return initCtx.listBindings(name);
+ }
+
+ public NamingEnumeration<Binding> listBindings(String name)
+ throws NamingException {
+ return initCtx.listBindings(name);
+ }
+
+ public Object lookup(Name name) throws NamingException {
+ return initCtx.lookup(name);
+ }
+
+ public Object lookupLink(Name name) throws NamingException {
+ return initCtx.lookupLink(name);
+ }
+
+ public Object lookupLink(String name) throws NamingException {
+ return initCtx.lookupLink(name);
+ }
+
+ public void modifyAttributes(Name name, int modOp, Attributes attrs)
+ throws NamingException {
+ initCtx.modifyAttributes(name, modOp, attrs);
+ }
+
+ public void modifyAttributes(Name name, ModificationItem[] mods)
+ throws NamingException {
+ initCtx.modifyAttributes(name, mods);
+ }
+
+ public void modifyAttributes(String name, int modOp, Attributes attrs)
+ throws NamingException {
+ initCtx.modifyAttributes(name, modOp, attrs);
+ }
+
+ public void modifyAttributes(String name, ModificationItem[] mods)
+ throws NamingException {
+ initCtx.modifyAttributes(name, mods);
+ }
+
+ public LdapContext newInstance(Control[] reqCtls) throws NamingException {
+ return initCtx.newInstance(reqCtls);
+ }
+
+ public void rebind(Name name, Object obj, Attributes attrs)
+ throws NamingException {
+ initCtx.rebind(name, obj, attrs);
+ }
+
+ public void rebind(Name name, Object obj) throws NamingException {
+ initCtx.rebind(name, obj);
+ }
+
+ public void rebind(String name, Object obj, Attributes attrs)
+ throws NamingException {
+ initCtx.rebind(name, obj, attrs);
+ }
+
+ public void rebind(String name, Object obj) throws NamingException {
+ initCtx.rebind(name, obj);
+ }
+
+ public void reconnect(Control[] connCtls) throws NamingException {
+ initCtx.reconnect(connCtls);
+ }
+
+ public Object removeFromEnvironment(String propName) throws NamingException {
+ return initCtx.removeFromEnvironment(propName);
+ }
+
+ public void rename(Name oldName, Name newName) throws NamingException {
+ initCtx.rename(oldName, newName);
+ }
+
+ public void rename(String oldName, String newName) throws NamingException {
+ initCtx.rename(oldName, newName);
+ }
+
+ public NamingEnumeration<SearchResult> search(Name name,
+ Attributes matchingAttributes, String[] attributesToReturn)
+ throws NamingException {
+ return initCtx.search(name, matchingAttributes, attributesToReturn);
+ }
+
+ public NamingEnumeration<SearchResult> search(Name name,
+ Attributes matchingAttributes) throws NamingException {
+ return initCtx.search(name, matchingAttributes);
+ }
+
+ public NamingEnumeration<SearchResult> search(Name name, String filterExpr,
+ Object[] filterArgs, SearchControls cons) throws NamingException {
+ return initCtx.search(name, filterExpr, filterArgs, cons);
+ }
+
+ public NamingEnumeration<SearchResult> search(Name name, String filter,
+ SearchControls cons) throws NamingException {
+ return initCtx.search(name, filter, cons);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name,
+ Attributes matchingAttributes, String[] attributesToReturn)
+ throws NamingException {
+ return initCtx.search(name, matchingAttributes, attributesToReturn);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name,
+ Attributes matchingAttributes) throws NamingException {
+ return initCtx.search(name, matchingAttributes);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name,
+ String filterExpr, Object[] filterArgs, SearchControls cons)
+ throws NamingException {
+ return initCtx.search(name, filterExpr, filterArgs, cons);
+ }
+
+ public NamingEnumeration<SearchResult> search(String name, String filter,
+ SearchControls cons) throws NamingException {
+ return initCtx.search(name, filter, cons);
+ }
+
+ public void setRequestControls(Control[] requestControls)
+ throws NamingException {
+ initCtx.setRequestControls(requestControls);
+ }
+
+ public void unbind(Name name) throws NamingException {
+ initCtx.unbind(name);
+ }
+
+ public void unbind(String name) throws NamingException {
+ initCtx.unbind(name);
+ }
+
}
Modified: trunk/connectors/connector-ldap/src/main/java/org/teiid/resource/cci/ldap/LDAPManagedConnectionFactory.java
===================================================================
--- trunk/connectors/connector-ldap/src/main/java/org/teiid/resource/cci/ldap/LDAPManagedConnectionFactory.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-ldap/src/main/java/org/teiid/resource/cci/ldap/LDAPManagedConnectionFactory.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -22,7 +22,6 @@
package org.teiid.resource.cci.ldap;
import javax.resource.ResourceException;
-import javax.resource.cci.Connection;
import org.teiid.resource.spi.BasicConnectionFactory;
import org.teiid.resource.spi.BasicManagedConnectionFactory;
@@ -39,10 +38,10 @@
@Override
- public Object createConnectionFactory() throws ResourceException {
+ public BasicConnectionFactory createConnectionFactory() throws ResourceException {
return new BasicConnectionFactory() {
@Override
- public Connection getConnection() throws ResourceException {
+ public LDAPConnectionImpl getConnection() throws ResourceException {
return new LDAPConnectionImpl(LDAPManagedConnectionFactory.this);
}
};
Modified: trunk/connectors/connector-salesforce/src/main/java/org/teiid/resource/cci/salesforce/SalesForceManagedConnectionFactory.java
===================================================================
--- trunk/connectors/connector-salesforce/src/main/java/org/teiid/resource/cci/salesforce/SalesForceManagedConnectionFactory.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-salesforce/src/main/java/org/teiid/resource/cci/salesforce/SalesForceManagedConnectionFactory.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -25,7 +25,6 @@
import java.net.URL;
import javax.resource.ResourceException;
-import javax.resource.cci.Connection;
import org.teiid.resource.spi.BasicConnectionFactory;
import org.teiid.resource.spi.BasicManagedConnectionFactory;
@@ -99,7 +98,7 @@
public Object createConnectionFactory() throws ResourceException {
return new BasicConnectionFactory() {
@Override
- public Connection getConnection() throws ResourceException {
+ public SalesforceConnectionImpl getConnection() throws ResourceException {
return new SalesforceConnectionImpl(getUsername(), getPassword(), getURL(), getSourceConnectionTestInterval(), getSourceConnectionTimeout());
}
};
Modified: trunk/connectors/connector-text/pom.xml
===================================================================
--- trunk/connectors/connector-text/pom.xml 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-text/pom.xml 2010-05-11 16:40:58 UTC (rev 2113)
@@ -24,12 +24,6 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.jboss.teiid.connectors</groupId>
- <artifactId>translator-text</artifactId>
- <version>${project.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>javax.resource</groupId>
<artifactId>connector-api</artifactId>
<scope>provided</scope>
Copied: trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file (from rev 2108, trunk/connectors/connector-text/src/main/java/org/teiid/resource/cci/text)
Added: trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/FileConnectionImpl.java
===================================================================
--- trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/FileConnectionImpl.java (rev 0)
+++ trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/FileConnectionImpl.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,74 @@
+/*
+ * 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 org.teiid.resource.adapter.file;
+
+import java.io.File;
+
+import javax.resource.ResourceException;
+
+import org.teiid.resource.adapter.FileConnection;
+import org.teiid.resource.spi.BasicConnection;
+
+import com.metamatrix.core.util.FileUtils;
+
+/**
+ * TODO: consider using VFS
+ */
+public class FileConnectionImpl extends BasicConnection implements FileConnection {
+
+ private File parentDirectory;
+
+ public FileConnectionImpl(String parentDirectory) {
+ this.parentDirectory = new File(parentDirectory);
+ }
+
+ public File[] getFiles(String location) {
+ if (location == null) return null;
+
+ File datafile = new File(parentDirectory, location);
+
+ if (datafile.isDirectory()) {
+ return datafile.listFiles();
+ }
+
+ String fname = datafile.getName();
+ String ext = FileUtils.getExtension(fname);
+ File parentDir = datafile.getParentFile();
+
+ // determine if the wild card is used to indicate all files
+ // of the specified extension
+ if (ext != null && "*".equals(FileUtils.getBaseFileNameWithoutExtension(fname))) { //$NON-NLS-1$
+ return FileUtils.findAllFilesInDirectoryHavingExtension(parentDir.getAbsolutePath(), "." + ext); //$NON-NLS-1$
+ }
+ if (!datafile.exists()) {
+ return null;
+ }
+ return new File[] {datafile};
+ }
+
+ @Override
+ public void close() throws ResourceException {
+
+ }
+
+}
Property changes on: trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/FileConnectionImpl.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/FileManagedConnectionFactory.java
===================================================================
--- trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/FileManagedConnectionFactory.java (rev 0)
+++ trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/FileManagedConnectionFactory.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,55 @@
+/*
+ * 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 org.teiid.resource.adapter.file;
+
+import javax.resource.ResourceException;
+
+import org.teiid.resource.spi.BasicConnection;
+import org.teiid.resource.spi.BasicConnectionFactory;
+import org.teiid.resource.spi.BasicManagedConnectionFactory;
+
+public class FileManagedConnectionFactory extends BasicManagedConnectionFactory{
+
+ private static final long serialVersionUID = -1495488034205703625L;
+
+ private String parentDirectory;
+
+ @Override
+ public Object createConnectionFactory() throws ResourceException {
+ return new BasicConnectionFactory() {
+
+ @Override
+ public BasicConnection getConnection() throws ResourceException {
+ return new FileConnectionImpl(parentDirectory);
+ }
+ };
+ }
+
+ public String getParentDirectory() {
+ return parentDirectory;
+ }
+
+ public void setParentDirectory(String parentDirectory) {
+ this.parentDirectory = parentDirectory;
+ }
+
+}
Deleted: trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/TextConnectionFactory.java
===================================================================
--- trunk/connectors/connector-text/src/main/java/org/teiid/resource/cci/text/TextConnectionFactory.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/TextConnectionFactory.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,317 +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 org.teiid.resource.cci.text;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-import javax.resource.ResourceException;
-import javax.resource.cci.Connection;
-
-import org.teiid.logging.LogConstants;
-import org.teiid.logging.LogManager;
-import org.teiid.resource.ConnectorException;
-import org.teiid.resource.adapter.text.TextDescriptorPropertyNames;
-import org.teiid.resource.adapter.text.TextUtil;
-import org.teiid.resource.spi.BasicConnectionFactory;
-
-public class TextConnectionFactory extends BasicConnectionFactory {
- private static final long serialVersionUID = 1838645911208083797L;
- private TextManagedConnectionFactory mcf;
- private Map<String, Properties> metadataProps = new HashMap<String, Properties>();
- private int srcFiles = 0;
- private int srcFileErrs = 0;
- private String parentDirectory;
-
- public TextConnectionFactory(TextManagedConnectionFactory mcf) throws ConnectorException {
- this.mcf = mcf;
- initMetaDataProps();
- }
-
- @Override
- public Connection getConnection() throws ResourceException {
- return new TextConnectionImpl(this.metadataProps);
- }
-
-
- private void initMetaDataProps() throws ConnectorException {
- reinitFileCounts();
- try {
- readDescriptor(this.mcf.getDescriptorFile(), this.mcf.isPartialStartupAllowed());
- reinitFileCounts();
- } catch (ConnectorException ce) {
- // If partial startup is not allowed, throw the exception
- if(!this.mcf.isPartialStartupAllowed() ) {
- reinitFileCounts();
- throw ce;
- // If partial startup is allowed, only throw exception if no files connected
- } else if(this.srcFileErrs==this.srcFiles) {
- reinitFileCounts();
- throw ce;
- }
- }
- }
-
- private void reinitFileCounts() {
- this.srcFiles=0;
- this.srcFileErrs=0;
- }
-
- /**
- * Read Descriptor file and get properties info for acessing the file.
- * @param descriptorFile String standing for the name of descriptor file.
- * @throws ConnectorException throws if error occurs
- */
- private void readDescriptor(String descriptorFile, boolean startPartial)
- throws ConnectorException {
-
- // Verify required items
- if (descriptorFile == null || descriptorFile.trim().length() == 0) {
- throw new ConnectorException(TextPlugin.Util.getString("TextConnection.Descriptor_file_name_is_not_specified._2")); //$NON-NLS-1$
- }
- // Save first exception if there are multiple
- ConnectorException connExcep = null;
-
- BufferedReader br = null;
- try {
- br = getReader(descriptorFile);
- LogManager.logDetail(LogConstants.CTX_CONNECTOR, "Reading descriptor file: " + descriptorFile); //$NON-NLS-1$
-
- String line = null;
- // Walk through records, finding matches
- while(true) {
- line = br.readLine();
- if (line == null) {
- break;
- }
-
- // Skip blank lines
- if (line.length() == 0) {
- continue;
- }
-
- // populate the map with metadata information for the given line. If readAll option is chosen,
- // keep trying to read until everything is tried, then throw the first exception encountered.
- try {
- getMetadata(line);
- } catch (ConnectorException e) {
- if(!startPartial) {
- throw e;
- } else if (connExcep==null) {
- connExcep=e;
- }
- }
-
- }
- // throw first exception if readAll was set
- if(connExcep!=null) throw connExcep;
-
- } catch (IOException e) {
- LogManager.logError(LogConstants.CTX_CONNECTOR, e, TextPlugin.Util.getString("TextConnection.Error_while_reading_text_file__{0}_1", new Object[] {e.getMessage()})); //$NON-NLS-1$
- throw new ConnectorException(e, TextPlugin.Util.getString("TextConnection.Error_trying_to_establish_connection_5")); //$NON-NLS-1$
- } finally {
- if (br != null) {
- try {br.close();} catch (Exception ee) {}
- }
- }
- LogManager.logDetail(LogConstants.CTX_CONNECTOR,"Successfully read metadata information from the descriptor file " + descriptorFile); //$NON-NLS-1$
- }
-
- /**
- * Read the property string and populate the properties with info needed to access data files.
- */
- private void getMetadata(String propStr) throws ConnectorException {
- try {
- int index = 0;
-
- // Property String --> <Fully_Qualified_Group>.location=<location of actual file>
- int eqIndex = propStr.indexOf("=", index); //$NON-NLS-1$
- String propString = propStr.substring(index, eqIndex);
-
- if (!propString.equals(" ")) { //$NON-NLS-1$
- propString = propString.trim();
- }
-
- int lastIndex = propString.lastIndexOf('.');
-
- // group name
- String groupName = propString.substring(0, lastIndex).toUpperCase();
- // property name
- String propertyName = propString.substring(lastIndex + 1).toUpperCase();
-
- // Properties read from descriptor, which are properties for a given group
- Properties props = metadataProps.get(groupName);
- if (props == null) {
- props = new Properties();
- }
-
- // Adjust index past '='
- index = eqIndex + 1;
-
- // Read property value
- String propertyValue = propStr.substring(index).trim();
-
- if (propertyName.equals(TextDescriptorPropertyNames.LOCATION)) {
- srcFiles++;
- // Verify required items
- if (propertyValue == null || propertyValue.trim().length() == 0) {
- srcFileErrs++;
- throw new ConnectorException(TextPlugin.Util.getString("TextConnection.Text_file_name_is_not_specified_for_the_group___{0}_2", new Object[] {groupName})); //$NON-NLS-1$
- }
- try {
- checkFile(propertyValue, props, groupName);
- } catch (ConnectorException e) {
- if (this.parentDirectory == null) {
- throw e;
- }
- srcFileErrs--;
- try {
- checkFile(parentDirectory + "/" + propertyValue, props, groupName); //$NON-NLS-1$
- } catch (ConnectorException e1) {
- throw e;
- }
- }
- } else if (propertyName.equals(TextDescriptorPropertyNames.HEADER_LINES)) {
- try {
- Integer.parseInt(propertyValue);
- } catch (NumberFormatException e) {
- throw new ConnectorException(e, TextPlugin.Util.getString("TextConnection.The_value_for_the_property_should_be_an_integer._{0}_3", new Object[] {e.getMessage()})); //$NON-NLS-1$
- }
- } else if (propertyName.equals(TextDescriptorPropertyNames.HEADER_ROW)) {
- try {
- Integer.parseInt(propertyValue);
- } catch (NumberFormatException e) {
- throw new ConnectorException(e, TextPlugin.Util.getString("TextConnection.The_value_for_the_property_should_be_an_integer._{0}_3", new Object[] {e.getMessage()})); //$NON-NLS-1$
- }
- } else if (!(propertyName.equals(TextDescriptorPropertyNames.COLUMNS) || propertyName.equals(TextDescriptorPropertyNames.TYPES) || propertyName.equals(TextDescriptorPropertyNames.TYPES) || propertyName.equals(TextDescriptorPropertyNames.TYPES) || propertyName.equals(TextDescriptorPropertyNames.TYPES) || propertyName.equals(TextDescriptorPropertyNames.DELIMITER) || propertyName.equals(TextDescriptorPropertyNames.QUALIFIER))) {
- throw new ConnectorException(TextPlugin.Util.getString("TextConnection.The_property_{0}_for_the_group_{1}_is_invalid._4", new Object[] {propertyName, groupName})); //$NON-NLS-1$
- }
-
- // Check for tab as a delimiter and use correct string
- if (propertyValue != null && propertyValue.equals("\\t")) { //$NON-NLS-1$
- propertyValue = "\t"; //$NON-NLS-1$
- }
-
- if (propertyValue != null && !propertyValue.equals("")) { //$NON-NLS-1$
- // Add property
- props.put(propertyName, propertyValue);
- metadataProps.put(groupName, props);
- }
- } catch (Exception e) {
- throw new ConnectorException(TextPlugin.Util.getString("TextConnection.Error_parsing_property_string_{0}__{1}_6", new Object[] {propStr, e.getMessage()})); //$NON-NLS-1$
- }
- }
-
- /**
- * This method gets the reader object for the descriptorfile present either on the local file system or the web.
- * @param fileLocation String standing for the fileLocation either in file system or web.
- * @return BufferReader for the file
- */
- private BufferedReader getReader(String fileLocation) throws ConnectorException {
- BufferedReader br = null;
- // Construct file and make sure it exists and is readable
- File descfile = new File(fileLocation);
- if (descfile.isFile()) {
- if (!descfile.exists()) {
- throw new ConnectorException(TextPlugin.Util.getString("TextConnection.Descriptor_file_does_not_exist_at_this_location__{0}_9", new Object[] {fileLocation})); //$NON-NLS-1$
- } else if (!descfile.canRead()) {
- throw new ConnectorException(TextPlugin.Util.getString("TextConnection.Descriptor_file_{0}_found_but_does_not_have_Read_permissions_10", new Object[] {fileLocation})); //$NON-NLS-1$
- }
- this.parentDirectory = descfile.getParent();
- try {
- br = new BufferedReader(new FileReader(descfile));
-
- } catch (FileNotFoundException fe) {
- throw new ConnectorException(fe,TextPlugin.Util.getString("TextConnection.Couldn__t_find_the_file_of_name_{0}_11", new Object[] {descfile})); //$NON-NLS-1$
- }
- } else {
- try {
- URL url = new URL(fileLocation);
- // create the connection to the URL
- URLConnection conn = url.openConnection();
- // establish the connection to the URL
- conn.connect();
- // get the stream from the connection
- InputStreamReader inSR = new InputStreamReader(conn.getInputStream());
- // place the stream into a buffered reader
- br = new BufferedReader(inSR);
- } catch (IOException e) {
- throw new ConnectorException(e,TextPlugin.Util.getString("TextConnection.Descriptor_file_does_not_exist_at_this_location__{0}_12", new Object[] {fileLocation})); //$NON-NLS-1$
- }
- }
- return br;
- }
-
- /**
- * Check if the file or url of the given name exists and populate properties.
- */
- private void checkFile(String fileName, Properties props, String groupName)
- throws ConnectorException {
-
- // Construct file and make sure it exists and is readable
- File datafile = new File(fileName);
-
- File[] files= TextUtil.getFiles(fileName);
-
-
- // determine if the wild card is used to indicate all files
- // of the specified extension
- if (files == null && TextUtil.usesWildCard(fileName)) {
- srcFileErrs++;
- throw new ConnectorException(TextPlugin.Util.getString("TextConnection.fileDoesNotExistForGroup", new Object[] {fileName, groupName})); //$NON-NLS-1$
- }
- if (files != null && files.length > 0) {
- props.setProperty(TextDescriptorPropertyNames.FILE_LOCATION, fileName);
- } else if (datafile.isFile()){
- if (!datafile.exists()) {
- srcFileErrs++;
- throw new ConnectorException(TextPlugin.Util.getString("TextConnection.fileDoesNotExistForGroup", new Object[] {fileName, groupName})); //$NON-NLS-1$
- }
- else if (!datafile.canRead()) {
- srcFileErrs++;
- throw new ConnectorException(TextPlugin.Util.getString("TextConnection.Data_file_{0}_found_but_does_not_have_Read_permissions_8", new Object[] {fileName})); //$NON-NLS-1$
- }
- props.setProperty(TextDescriptorPropertyNames.FILE_LOCATION, fileName);
- } else {
- try {
- URL url = new URL(fileName);
- // create the connection to the URL
- URLConnection conn = url.openConnection();
- // establish the connection to the URL
- conn.connect();
- props.setProperty(TextDescriptorPropertyNames.URL_LOCATION, fileName);
- } catch (IOException e) {
- srcFileErrs++;
- throw new ConnectorException(e,TextPlugin.Util.getString("TextConnection.fileDoesNotExistForGroup", new Object[] {fileName, groupName})); //$NON-NLS-1$
- }
- }
- }
-}
Deleted: trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/TextConnectionImpl.java
===================================================================
--- trunk/connectors/connector-text/src/main/java/org/teiid/resource/cci/text/TextConnectionImpl.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/TextConnectionImpl.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,311 +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 org.teiid.resource.cci.text;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import javax.resource.ResourceException;
-
-import org.teiid.logging.LogConstants;
-import org.teiid.logging.LogManager;
-import org.teiid.resource.ConnectorException;
-import org.teiid.resource.adapter.text.TextConnection;
-import org.teiid.resource.adapter.text.TextDescriptorPropertyNames;
-import org.teiid.resource.adapter.text.TextPlugin;
-import org.teiid.resource.adapter.text.TextUtil;
-import org.teiid.resource.spi.BasicConnection;
-
-import com.metamatrix.core.util.StringUtil;
-
-
-/**
- * Implementation of Connection interface for text connection.
- */
-public class TextConnectionImpl extends BasicConnection implements TextConnection{
-
- private Map<String, Properties> metadataProps;
- private ArrayList readerQueue = new ArrayList();
- private int readerQueueIndex = 0;
- private String headerMsg;
- private String firstLine = null;
-
- // current Reader object
- private BufferedReader currentreader = null;
-
- // Line num in the text file
- private int lineNum = 0;
-
-
- public TextConnectionImpl(Map<String, Properties> props) {
- this.metadataProps = props;
- }
-
- @Override
- public void close() throws ResourceException {
- if (readerQueue.size() > 0) {
- for (Iterator it=readerQueue.iterator(); it.hasNext();) {
- BufferedReader br = (BufferedReader) it.next();
- try {
- br.close();
- } catch (IOException err) {
- }
-
- }
- }
- readerQueue.clear();
- }
-
- @Override
- public Map<String, Properties> getMetadataProperties() {
- return metadataProps;
- }
-
- private List<Reader> createReaders(String tableName) throws ConnectorException {
- try {
- createReaders(this.metadataProps.get(tableName), tableName);
- } catch (IOException e) {
- throw new ConnectorException(e, TextPlugin.Util.getString("TextSynchExecution.Unable_get_Reader", new Object[] {tableName, e.getMessage() })); //$NON-NLS-1$
-
- }
- return readerQueue;
- }
-
- /**
- * This method gets the reader object for the textfile present either on
- * the local file system or the web.
- * @param props Group's metadata properites string
- * @return BufferReader Object
- */
- private void createReaders(Properties props, String groupName) throws IOException, ConnectorException {
- if(readerQueue != null && readerQueue.size() > 0) {
- return ;
- }
-
- if(props == null) {
- throw new ConnectorException(TextPlugin.Util.getString("TextSynchExecution.Error_obtain_properties_for_group", groupName)); //$NON-NLS-1$
- }
-
- String fileName = props.getProperty(TextDescriptorPropertyNames.FILE_LOCATION);
-
-
- if(fileName != null) {
- File datafile = new File(fileName);
- File[] files= TextUtil.getFiles(fileName);
-
-
- // determine if the wild card is used to indicate all files
- // of the specified extension
- if (files != null && files.length > 0) {
- for (int i = 0; i<files.length; i++) {
- File f = files[i];
- addReader(f.getName(), f);
- }
-
- } else {
- addReader(fileName, datafile);
- }
- } else {
- String urlName = props.getProperty(TextDescriptorPropertyNames.URL_LOCATION);
- if(urlName==null) {
- Object[] params = new Object[] { groupName };
- throw new ConnectorException(TextPlugin.Util.getString("TextSynchExecution.Unable_get_Reader_for_group", params)); //$NON-NLS-1$
- }
-
- // create the URL object
- URL url = new URL(urlName);
- // create the connection to the URL
- URLConnection conn = url.openConnection();
- // establish the connection to the URL
- conn.connect();
- // get the stream from the connection
- InputStreamReader inSR = new InputStreamReader(conn.getInputStream());
- // place the stream into a buffered reader
- addReader(fileName, inSR);
- }
-
- }
-
- private void addReader(String fileName, File datafile) throws IOException {
-
- FileInputStream fis = new FileInputStream(datafile);
- InputStreamReader inSR = new InputStreamReader(fis);
-
- BufferedReader r = new BufferedReader(inSR);
- LogManager.logDetail(LogConstants.CTX_CONNECTOR, "Reading file: " + fileName); //$NON-NLS-1$
- readerQueue.add(r);
- }
-
- private void addReader(String fileName, InputStreamReader inSr) {
- BufferedReader r = new BufferedReader(inSr);
- LogManager.logDetail(LogConstants.CTX_CONNECTOR, "Reading URL: " + fileName); //$NON-NLS-1$
- readerQueue.add(r);
- }
-
- /**
- * Gets the current reader, looking at the next
- * one in the list if the current one is null.
- *
- * If HEADER_LINES is greater than 0, an attempt is made to
- * read the column headers from the file. If HEADER_ROW is
- * less than 1, row HEADER_LINES is used as the row that may
- * contain column names. If HEADER_ROW is greater than 1,
- * row HEADER_ROW is used as the row that may contain column
- * names.
- *
- * @throws ConnectorException
- */
- private String nextLine(String tableName) throws ConnectorException {
- if (currentreader == null && readerQueueIndex < readerQueue.size()) {
- // reader queue index is advanced only by the nextReader()
- // method. Don't do it here.
- currentreader = (BufferedReader)readerQueue.get(readerQueueIndex);
- }
- /* Retrieve connector properties so that we can find a
- * header row if necessary.
- */
- Properties groupProps = this.metadataProps.get(tableName);
- String line = null;
- String location = groupProps.getProperty(TextDescriptorPropertyNames.LOCATION);
- String qualifier = groupProps.getProperty(TextDescriptorPropertyNames.QUALIFIER);
- String topLines = groupProps.getProperty(TextDescriptorPropertyNames.HEADER_LINES);
- String headerLine = groupProps.getProperty(TextDescriptorPropertyNames.HEADER_ROW);
-
- int numTop = 0;
- int headerRowNum = 0;
- if (topLines != null && topLines.length() > 0)
- numTop = Integer.parseInt(topLines);
- if (headerLine != null && headerLine.length() > 0)
- headerRowNum = Integer.parseInt(headerLine);
-
- /* Check to see if the value for HEADER_ROW is greater than
- * the number of lines to skip. If it is, it is invalid and
- * we will use HEADER_LINES instead.
- */
- if ( headerRowNum > numTop ) {
- Object[] params = new Object[] { TextDescriptorPropertyNames.HEADER_ROW, new Integer(headerRowNum), new Integer(numTop) };
- String msg = TextPlugin.Util.getString("TextSynchExecution.Property_contains_an_invalid_value_Using_value", params); //$NON-NLS-1$
- // TODO: We should include the group name in the log message.
- LogManager.logWarning(LogConstants.CTX_CONNECTOR, msg);
-
- headerRowNum = numTop;
- }
- try {
- // set hasQualifier flag
- boolean hasQualifier = false;
- if (qualifier != null && qualifier.length() > 0)
- hasQualifier = true;
-
- // Walk through rows looking for header row
- while (currentreader != null) {
- line = currentreader.readLine();
- // Hit the end of file or the file is empty then
- // try next reader
- if (line == null) {
- advanceToNextReader();
- lineNum = 0;
- return nextLine(tableName);
- }
-
- // check if we have a qualifier defined
- // if yes check that all qualifiers have been terminated
- // if not then append the next line (if available)
- if (hasQualifier) {
- while (StringUtil.occurrences(line, qualifier) % 2 != 0) {
- String nextLine = currentreader.readLine();
- if (nextLine != null)
- line = line + StringUtil.LINE_SEPARATOR + nextLine;
- else {
- Object[] params = new Object[] { line };
- String msg = TextPlugin.Util.getString("TextSynchExecution.Text_has_no_determined_ending_qualifier", params); //$NON-NLS-1$
- throw new ConnectorException(msg);
- }
- }
- }
- lineNum++;
-
- // Skip blank lines
- if (line.length() == 0) continue;
-
- // Attempt to retrieve column names from header row
- // or last row of header lines.
- if ((headerRowNum > 0 && headerRowNum == lineNum) || (numTop == lineNum)) {
- // This is the header row; check if null to avoid the second or clause
- if (headerMsg == null) {
- headerMsg = line;
- }
- continue;
- } else if (numTop >= lineNum) {
- continue;
- }
- return line;
- }
- } catch (Throwable e) {
- throw new ConnectorException(e, TextPlugin.Util.getString("TextSynchExecution.Error_reading_text_file", new Object[] { location, e.getMessage() })); //$NON-NLS-1$
- }
- // we are done reading..
- return null;
- }
-
- /**
- * Indicate that we are done with the current reader and we should
- * advance to the next reader.
- */
- private void advanceToNextReader(){
- currentreader = null;
- readerQueueIndex++;
- }
-
- @Override
- public String getHeaderLine(String tableName) throws ConnectorException {
- if (this.headerMsg != null) {
- return this.headerMsg;
- }
- createReaders(tableName);
- this.firstLine = nextLine(tableName);
- return this.headerMsg;
- }
-
- @Override
- public String getNextLine(String tableName) throws ConnectorException {
- // make sure the reader are created
- createReaders(tableName);
- if (this.firstLine != null) {
- String copy = this.firstLine;
- this.firstLine = null;
- return copy;
- }
- return nextLine(tableName);
- }
-}
Deleted: trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/TextManagedConnectionFactory.java
===================================================================
--- trunk/connectors/connector-text/src/main/java/org/teiid/resource/cci/text/TextManagedConnectionFactory.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/TextManagedConnectionFactory.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,54 +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 org.teiid.resource.cci.text;
-
-import javax.resource.ResourceException;
-
-import org.teiid.resource.spi.BasicManagedConnectionFactory;
-
-public class TextManagedConnectionFactory extends BasicManagedConnectionFactory{
-
- private static final long serialVersionUID = -1495488034205703625L;
- private String descriptorFile;
- private boolean partialStartupAllowed;
-
- @Override
- public Object createConnectionFactory() throws ResourceException {
- return new TextConnectionFactory(this);
- }
-
- public String getDescriptorFile() {
- return descriptorFile;
- }
-
- public void setDescriptorFile(String descriptorFile) {
- this.descriptorFile = descriptorFile;
- }
-
- public boolean isPartialStartupAllowed() {
- return partialStartupAllowed;
- }
-
- public void setPartialStartupAllowed(Boolean partialStartupAllowed) {
- this.partialStartupAllowed = partialStartupAllowed.booleanValue();
- }
-}
Deleted: trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/TextPlugin.java
===================================================================
--- trunk/connectors/connector-text/src/main/java/org/teiid/resource/cci/text/TextPlugin.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/connectors/connector-text/src/main/java/org/teiid/resource/adapter/file/TextPlugin.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,33 +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 org.teiid.resource.cci.text;
-
-import java.util.ResourceBundle;
-import com.metamatrix.core.BundleUtil;
-
-public class TextPlugin {
-
- public static final String PLUGIN_ID = "org.teiid.resource.cci.text" ; //$NON-NLS-1$
-
- public static final BundleUtil Util = new BundleUtil(PLUGIN_ID,PLUGIN_ID + ".i18n", ResourceBundle.getBundle(PLUGIN_ID + ".i18n")); //$NON-NLS-1$ //$NON-NLS-2$
-}
Modified: trunk/connectors/connector-text/src/main/rar/META-INF/ra.xml
===================================================================
--- trunk/connectors/connector-text/src/main/rar/META-INF/ra.xml 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-text/src/main/rar/META-INF/ra.xml 2010-05-11 16:40:58 UTC (rev 2113)
@@ -38,21 +38,14 @@
<outbound-resourceadapter>
<connection-definition>
- <managedconnectionfactory-class>org.teiid.resource.cci.text.TextManagedConnectionFactory</managedconnectionfactory-class>
+ <managedconnectionfactory-class>org.teiid.resource.adapter.file.FileManagedConnectionFactory</managedconnectionfactory-class>
<config-property>
- <description>{$display:"Text File Descriptor",$required:"true"}</description>
- <config-property-name>DescriptorFile</config-property-name>
+ <description>{$display:"Parent Directory",$required:"true"}</description>
+ <config-property-name>ParentDirectory</config-property-name>
<config-property-type>java.lang.String</config-property-type>
</config-property>
- <config-property>
- <description>{$display:"Partial Startup Allowed",$required:"true",$advanced:"true"}</description>
- <config-property-name>PartialStartupAllowed</config-property-name>
- <config-property-type>java.lang.Boolean</config-property-type>
- <config-property-value>true</config-property-value>
- </config-property>
-
<connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
<connectionfactory-impl-class>org.teiid.resource.spi.WrappedConnectionFactory</connectionfactory-impl-class>
<connection-interface>javax.resource.cci.Connection</connection-interface>
Deleted: trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestMultiFileTextSynchExecution.java
===================================================================
--- trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestMultiFileTextSynchExecution.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestMultiFileTextSynchExecution.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,140 +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 org.teiid.resource.cci.text;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.teiid.resource.ConnectorException;
-
-import com.metamatrix.cdk.api.ConnectorHost;
-import com.metamatrix.core.util.UnitTestUtil;
-import com.metamatrix.query.unittest.TimestampUtil;
-
-public class TestMultiFileTextSynchExecution extends TestCase {
- private static final String BAD_COUNT_FILE = UnitTestUtil.getTestDataPath() + "/MultiParts/columCntMissMatchOption/testMultiDescriptorDelimited.txt"; //$NON-NLS-1$
- private static final String DEFAULT_DESC_FILE = UnitTestUtil.getTestDataPath() + "/MultiParts/testMultiDescriptorDelimited.txt"; //$NON-NLS-1$
-
- public TestMultiFileTextSynchExecution(String name) {
- super(name);
- }
-
- public void testSubmitRequest() throws Exception {
- String sql = "SELECT ID FROM Library"; //$NON-NLS-1$
- try {
- Util.getConnectorHostWithFakeMetadata().executeCommand(sql, Util.createConnectionFactory(BAD_COUNT_FILE));
- fail("Should have failed due to extra column defined in .csv file");//$NON-NLS-1$
- } catch (ConnectorException e) {
- assertEquals("Expected input file to have 3 columns based on model, but found 4. This could be caused by misplaced quotes, causing multiple columns to be treated as one.", e.getMessage()); //$NON-NLS-1$
- }
- }
-
- public void testNextBatch3() throws Exception {
- String sql = "SELECT ID FROM Library WHERE Author = 'Blind'"; //$NON-NLS-1$
- try {
- Util.getConnectorHostWithFakeMetadata().executeCommand(sql, Util.createConnectionFactory(BAD_COUNT_FILE));
- fail("Should have failed due to extra column defined in .csv file");//$NON-NLS-1$
- } catch (ConnectorException e) {
- assertEquals("Expected input file to have 3 columns based on model, but found 4. This could be caused by misplaced quotes, causing multiple columns to be treated as one.", e.getMessage()); //$NON-NLS-1$
- }
- }
-
- public void testNextBatch2() throws Exception {
- String sql = "SELECT ID, PDate, Author FROM Library"; //$NON-NLS-1$
- ConnectorHost host = Util.getConnectorHostWithFakeMetadata();
- int expectedRows = 4;
- List results = host.executeCommand(sql, Util.createConnectionFactory(DEFAULT_DESC_FILE));
- assertEquals("Get batch size doesn't match expected one. ", expectedRows, results.size()); //$NON-NLS-1$
-
- // expected values
- Set expected = new HashSet();
- List value1 = new ArrayList();
- value1.add(String.valueOf(1));
- value1.add(TimestampUtil.createDate(103, 2, 25));
- value1.add("Blind"); //$NON-NLS-1$
- expected.add(value1);
- List value2 = new ArrayList();
- value2.add(String.valueOf(2));
- value2.add(TimestampUtil.createDate(98, 3, 29));
- value2.add("Antipop"); //$NON-NLS-1$
- expected.add(value2);
- List value3 = new ArrayList();
- value3.add(String.valueOf(3));
- value3.add(TimestampUtil.createDate(103, 2, 25));
- value3.add("Terroist"); //$NON-NLS-1$
- expected.add(value3);
- List value4 = new ArrayList();
- value4.add(String.valueOf(4));
- value4.add(TimestampUtil.createDate(98, 3, 29));
- value4.add("Fanatic"); //$NON-NLS-1$
- expected.add(value4);
-
- assertEquals(" Actual value doesn't match with expected one.", expected, new HashSet(results)); //$NON-NLS-1$
- }
-
- /**
- * test defect 13066
- *
- * Test multibatch execution.
- */
- public void testDefect13066() throws Exception {
- String sql = "SELECT TRADEID FROM SummitData.SUMMITDATA"; //$NON-NLS-1$
- Util.helpTestExecution("summitData/TextFileTest_1.vdb", UnitTestUtil.getTestDataPath() + "/SummitData_Descriptor.txt", sql, 500, 4139); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * test defect 13366
- *
- * Test zero size first batch
- */
- public void testDefect13368() throws Exception {
- String sql = "SELECT RATE, DESK FROM SummitData.SUMMITDATA"; //$NON-NLS-1$
- Util.helpTestExecution("summitData/TextFileTest_1.vdb", UnitTestUtil.getTestDataPath() + "/SummitData_Descriptor.txt", sql, 5, 4139); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * test defect 13371
- *
- * test fixed length field file while querying a subset of the columns
- */
- public void testDefect13371() throws Exception {
- String sql = " SELECT SUMMITEXTRACTCDM.START, SUMMITEXTRACTCDM.SUMMIT_ID, SUMMITEXTRACTCDM.CURRENCY, SUMMITEXTRACTCDM.AMOUNT, SUMMITEXTRACTCDM.MATURITY, SUMMITEXTRACTCDM.RATE, SUMMITEXTRACTCDM.DESK, SUMMITEXTRACTCDM.CDM_ID FROM SUMMITEXTRACTCDM"; //$NON-NLS-1$
- Util.helpTestExecution("summitData/TextFiles.vdb", UnitTestUtil.getTestDataPath() + "/SummitExtractCDM_Descriptor.txt", sql, 500, 52); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public void testDefect11402() throws Exception {
- String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS"; //$NON-NLS-1$
- Util.helpTestExecution("TextParts/TextParts.vdb", UnitTestUtil.getTestDataPath() + "/TextParts/PartsDescriptor.txt", sql, 15000, 21); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /** test case 4151 */
- public void testCase4151() throws Exception {
- String sql = "SELECT COLA, COLB, COLC FROM ThreeColString_Text.testfile"; //$NON-NLS-1$
- Util.helpTestExecution("case4151/MM_00004151.vdb", UnitTestUtil.getTestDataPath() + "/testfile-descriptor.txt", sql, 15000, 5); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
-}
Deleted: trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestRowHeaderTextSynchExecution.java
===================================================================
--- trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestRowHeaderTextSynchExecution.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestRowHeaderTextSynchExecution.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -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 org.teiid.resource.cci.text;
-
-import junit.framework.TestCase;
-
-import org.teiid.resource.ConnectorException;
-
-import com.metamatrix.core.util.UnitTestUtil;
-
-
-
-public class TestRowHeaderTextSynchExecution extends TestCase {
-
- public TestRowHeaderTextSynchExecution(String name) {
- super(name);
- }
-
- /**
- * Standard test with first line being the
- * the header row.
- * @throws Exception
- */
- public void testRowHeader() throws Exception {
- String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS"; //$NON-NLS-1$
- Util.helpTestExecution("TextParts/TextParts.vdb", UnitTestUtil.getTestDataPath() + "/TextParts/PartsDescriptor.txt", sql, 15000, 21); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * Test with header row and no Name In Source defined.
- * Should use short name of element.
- * @throws Exception
- */
- public void testRowHeader2() throws Exception {
- String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS_NoNameInSource"; //$NON-NLS-1$
- Util.helpTestExecution("TextParts/TextParts.vdb", UnitTestUtil.getTestDataPath() + "/TextParts/PartsDescriptor.txt", sql, 15000, 21); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * Test with header row and Name In Source set to that of
- * the element's name.
- * @throws Exception
- */
- public void testRowHeader3() throws Exception {
- String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS_AlphaNameInSource"; //$NON-NLS-1$
- Util.helpTestExecution("TextParts/TextParts.vdb", UnitTestUtil.getTestDataPath() + "/TextParts/PartsDescriptor.txt", sql, 15000, 21); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * Test with header row and Name In Source set to something
- * different than the element name but matches what is used
- * in the CSV file.
- * @throws Exception
- */
- public void testRowHeader4() throws Exception {
- String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS_AlphaDiffNameInSource"; //$NON-NLS-1$
- Util.helpTestExecution("TextParts/TextParts.vdb", UnitTestUtil.getTestDataPath() + "/TextParts/PartsDescriptor.txt", sql, 15000, 21); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * Test with multiple blank lines and a header row and
- * no Name In Source.
- * @throws Exception
- */
- public void testRowHeader5() throws Exception {
- String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS_NoNameInSource"; //$NON-NLS-1$
- Util.helpTestExecution("TextParts/TextParts.vdb", UnitTestUtil.getTestDataPath() + "/TextParts/PartsDescriptor_HeaderRowTest.txt", sql, 15000, 21); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * Test with multiple blank lines and a header row on a
- * specified row with name in source set.
- * @throws Exception
- */
- public void testRowHeader6() throws Exception {
- String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS_AlphaDiffNameInSource"; //$NON-NLS-1$
- Util.helpTestExecution("TextParts/TextParts.vdb", UnitTestUtil.getTestDataPath() + "/TextParts/PartsDescriptor_HeaderRowTest.txt", sql, 15000, 21); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * Test with quoted header row and no Name In Source defined.
- * Should use short name of element.
- * @throws Exception
- */
- public void testRowHeader7() throws Exception {
- String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS_NoNameInSource"; //$NON-NLS-1$
- Util.helpTestExecution("TextParts/TextParts.vdb", UnitTestUtil.getTestDataPath() + "/TextParts/PartsDescriptor3.txt", sql, 15000, 21); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * Test with header row that contains columns with names which
- * contain spaces and have a Name In Source defined with spaces.
- * @throws Exception
- */
- public void testRowHeader8() throws Exception {
- String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS_SpaceNameInSource"; //$NON-NLS-1$
- Util.helpTestExecution("TextParts/TextParts.vdb", UnitTestUtil.getTestDataPath() + "/TextParts/PartsDescriptor4.txt", sql, 15000, 21); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * Test with bad header row. The model uses column names for
- * name in source. This should result in an error stating the
- * column was not found.
- * @throws Exception
- */
- public void testRowHeader_Error() throws Exception {
- String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS_AlphaNameInSource"; //$NON-NLS-1$
- try {
- Util.helpTestExecution("TextParts/TextParts.vdb", UnitTestUtil.getTestDataPath() + "/TextParts/PartsDescriptor4.txt", sql, 15000, 21); //$NON-NLS-1$ //$NON-NLS-2$
- fail("Should have received ConnectorException due to an invalid header row being defined."); //$NON-NLS-1$
- } catch (ConnectorException ce ) {
- assertEquals("'SELECT PARTS_AlphaNameInSource.Part_Id, PARTS_AlphaNameInSource.Part_Name, PARTS_AlphaNameInSource.Part_Color, PARTS_AlphaNameInSource.Part_Weight FROM PARTS_AlphaNameInSource' cannot be translated by the TextTranslator. Column Part_Id not found for element Parts.PARTS_AlphaNameInSource.Part_Id. Verify column name \"Part_Id\" is defined in the header row of the text file and that the header row number is correctly defined in the descriptor file.", ce.getMessage()); //$NON-NLS-1$
- }
- }
-
- /**
- * Test with bad header row number. The model uses column names
- * for name in source. The descriptor defines the header row
- * outside the skipped header lines. In this case, the connector
- * should default to the last line of the skipped header lines and
- * log an error.
- * @throws Exception
- */
- public void testRowHeader_Error2() throws Exception {
- String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS_NoNameInSource"; //$NON-NLS-1$
- Util.helpTestExecution("TextParts/TextParts.vdb", UnitTestUtil.getTestDataPath() + "/TextParts/PartsDescriptor4.txt", sql, 15000, 21); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
-}
Deleted: trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestTextConnection.java
===================================================================
--- trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestTextConnection.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestTextConnection.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,113 +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 org.teiid.resource.cci.text;
-
-import java.util.Map;
-
-import junit.framework.TestCase;
-
-import org.mockito.Mockito;
-import org.teiid.resource.ConnectorException;
-import org.teiid.resource.cci.text.TextConnectionFactory;
-import org.teiid.resource.cci.text.TextConnectionImpl;
-import org.teiid.resource.cci.text.TextManagedConnectionFactory;
-
-import com.metamatrix.core.util.UnitTestUtil;
-
-/**
- */
-public class TestTextConnection extends TestCase {
-
- /**
- * @param name
- */
- public TestTextConnection(String name) {
- super(name);
- }
-
- public void testDefect10371() throws Exception {
- String descFile = UnitTestUtil.getTestDataPath() + "/EmployeeTestDataSalary.txt"; //$NON-NLS-1$
- TextManagedConnectionFactory config = Mockito.mock(TextManagedConnectionFactory.class);
- Mockito.stub(config.getDescriptorFile()).toReturn(descFile);
-
- TextConnectionFactory tcf = new TextConnectionFactory(config);
- TextConnectionImpl conn = (TextConnectionImpl)tcf.getConnection();
-
- Map actualProps = conn.getMetadataProperties();
- assertNotNull(actualProps);
- }
-
- /**
- * Test partial startup property - test default - should default to allow partial startup
- */
- public void testCase4284Default() throws Exception {
- String descFile = UnitTestUtil.getTestDataPath() + "/testDescriptorDelimited.txt"; //$NON-NLS-1$
-
- TextManagedConnectionFactory config = Mockito.mock(TextManagedConnectionFactory.class);
- Mockito.stub(config.getDescriptorFile()).toReturn(descFile);
- Mockito.stub(config.isPartialStartupAllowed()).toReturn(true);
-
- TextConnectionFactory tcf = new TextConnectionFactory(config);
- assertNotNull(tcf.getConnection());
- }
-
- /**
- * Test partial startup property - disallow partial startup
- */
- public void testCase4284DisallowPartial() throws Exception {
- String descFile = UnitTestUtil.getTestDataPath() + "/testDescriptorDelimited.txt"; //$NON-NLS-1$
-
- TextManagedConnectionFactory config = Mockito.mock(TextManagedConnectionFactory.class);
- Mockito.stub(config.getDescriptorFile()).toReturn(descFile);
- Mockito.stub(config.isPartialStartupAllowed()).toReturn(false);
-
- try {
- new TextConnectionFactory(config);
- fail("expected exception"); //$NON-NLS-1$
- } catch (ConnectorException e) {
- String m1 = "Error parsing property string text.library2.location"; //$NON-NLS-1$
- String m2 = "Data file not found at this location:"; //$NON-NLS-1$
- String m3 = UnitTestUtil.getTestDataPath() + "/libraryDelimited2.txt, for group TEXT.LIBRARY2"; //$NON-NLS-1$
-
- String message = e.getMessage();
- if ( (message.indexOf(m1) == -1) || message.indexOf(m2) == -1 || message.indexOf(m3) == -1)
- fail("Error message doesnt match the expected message"); //$NON-NLS-1$
- //assertEquals("Error message doesnt match the expected message","Error parsing property string text.library2.location = testdata/libraryDelimited2.txt: Data file not found at this location: testdata/libraryDelimited2.txt, for group TEXT.LIBRARY2",message);
- }
- }
-
- /**
- * Test partial startup property - allow partial startup
- */
- public void testCase4284AllowPartial() throws Exception {
- String descFile = UnitTestUtil.getTestDataPath() + "/testDescriptorDelimited.txt"; //$NON-NLS-1$
-
- TextManagedConnectionFactory config = Mockito.mock(TextManagedConnectionFactory.class);
- Mockito.stub(config.getDescriptorFile()).toReturn(descFile);
- Mockito.stub(config.isPartialStartupAllowed()).toReturn(true);
-
- TextConnectionFactory tcf = new TextConnectionFactory(config);
- assertNotNull(tcf.getConnection());
- }
-
-}
Deleted: trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestTextConnector.java
===================================================================
--- trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestTextConnector.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestTextConnector.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,71 +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 org.teiid.resource.cci.text;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-import org.junit.Test;
-import org.teiid.connector.metadata.runtime.Datatype;
-import org.teiid.connector.metadata.runtime.MetadataFactory;
-import org.teiid.connector.metadata.runtime.Table;
-import org.teiid.resource.adapter.text.TextExecutionFactory;
-import org.teiid.resource.cci.MetadataProvider;
-import org.teiid.resource.cci.text.TextConnectionFactory;
-
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.core.util.UnitTestUtil;
-
-/**
- */
-public class TestTextConnector {
-
- @Test public void testGetMetadata() throws Exception{
- TextConnectionFactory tcf = Util.createConnectionFactory(UnitTestUtil.getTestDataPath() + "/SummitData_Descriptor.txt"); //$NON-NLS-1$
- TextExecutionFactory connector = new TextExecutionFactory();
-
- Map<String, Datatype> datatypes = new HashMap<String, Datatype>();
- datatypes.put(DataTypeManager.DefaultDataTypes.STRING, new Datatype());
- datatypes.put(DataTypeManager.DefaultDataTypes.BIG_INTEGER, new Datatype());
- datatypes.put(DataTypeManager.DefaultDataTypes.INTEGER, new Datatype());
- datatypes.put(DataTypeManager.DefaultDataTypes.TIMESTAMP, new Datatype());
-
- MetadataFactory metadata = new MetadataFactory("SummitData", datatypes, new Properties()); //$NON-NLS-1$
-
- ((MetadataProvider)connector).getConnectorMetadata(metadata, tcf);
-
- assertEquals(0, metadata.getMetadataStore().getSchemas().values().iterator().next().getProcedures().size());
- Table group = metadata.getMetadataStore().getSchemas().values().iterator().next().getTables().get("summitdata"); //$NON-NLS-1$
- assertEquals("SUMMITDATA", group.getName()); //$NON-NLS-1$
- assertEquals("SummitData.SUMMITDATA", group.getFullName()); //$NON-NLS-1$
- assertEquals(14, group.getColumns().size());
- assertNotNull(group.getUUID());
- assertEquals("string", group.getColumns().get(0).getNativeType()); //$NON-NLS-1$
- }
-
-
-}
Deleted: trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestTextSynchExecution.java
===================================================================
--- trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestTextSynchExecution.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestTextSynchExecution.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,111 +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 org.teiid.resource.cci.text;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import com.metamatrix.cdk.api.ConnectorHost;
-import com.metamatrix.core.util.UnitTestUtil;
-import com.metamatrix.query.unittest.TimestampUtil;
-
-/**
- * TODO: test cancel
- */
-public class TestTextSynchExecution extends TestCase {
- private static final String DEFAULT_DESC_FILE = UnitTestUtil.getTestDataPath() + "/testDescriptorDelimited.txt"; //$NON-NLS-1$
-
- public TestTextSynchExecution(String name) {
- super(name);
- }
-
- public void testNextBatch2() throws Exception {
- String sql = "SELECT ID, PDate, Author FROM Library"; //$NON-NLS-1$
- ConnectorHost host = Util.getConnectorHostWithFakeMetadata();
- int expectedRows = 2;
- List results = host.executeCommand(sql, Util.createConnectionFactory(DEFAULT_DESC_FILE));
- assertEquals("Get batch size doesn't match expected one. ", expectedRows, results.size()); //$NON-NLS-1$
-
- // expected values
- List[] expected = new List[2];
- List value1 = new ArrayList();
- value1.add(String.valueOf(1));
- value1.add(TimestampUtil.createDate(103, 2, 25));
- value1.add("Blind"); //$NON-NLS-1$
-
- List value2 = new ArrayList();
- value2.add(String.valueOf(2));
- value2.add(TimestampUtil.createDate(98, 3, 29));
- value2.add("Antipop"); //$NON-NLS-1$
- expected[0] = value1;
- expected[1] = value2;
-
- for(int i = 0; i < 2; i++) {
- assertEquals(" Actual value doesn't match with expected one.", expected[i], results.get(i)); //$NON-NLS-1$
- }
- }
-
- /**
- * test defect 13066
- *
- * Test multibatch execution.
- */
- public void testDefect13066() throws Exception {
- String sql = "SELECT TRADEID FROM SummitData.SUMMITDATA"; //$NON-NLS-1$
- Util.helpTestExecution("summitData/TextFileTest_1.vdb", UnitTestUtil.getTestDataPath() + "/SummitData_Descriptor.txt", sql, 500, 4139); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * test defect 13366
- *
- * Test zero size first batch
- */
- public void testDefect13368() throws Exception {
- String sql = "SELECT RATE, DESK FROM SummitData.SUMMITDATA"; //$NON-NLS-1$
- Util.helpTestExecution("summitData/TextFileTest_1.vdb", UnitTestUtil.getTestDataPath() + "/SummitData_Descriptor.txt", sql, 5, 4139); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * test defect 13371
- *
- * test fixed length field file while querying a subset of the columns
- */
- public void testDefect13371() throws Exception {
- String sql = " SELECT SUMMITEXTRACTCDM.START, SUMMITEXTRACTCDM.SUMMIT_ID, SUMMITEXTRACTCDM.CURRENCY, SUMMITEXTRACTCDM.AMOUNT, SUMMITEXTRACTCDM.MATURITY, SUMMITEXTRACTCDM.RATE, SUMMITEXTRACTCDM.DESK, SUMMITEXTRACTCDM.CDM_ID FROM SUMMITEXTRACTCDM"; //$NON-NLS-1$
- Util.helpTestExecution("summitData/TextFiles.vdb", UnitTestUtil.getTestDataPath() + "/SummitExtractCDM_Descriptor.txt", sql, 500, 52); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public void testDefect11402() throws Exception {
- String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS"; //$NON-NLS-1$
- Util.helpTestExecution("TextParts/TextParts.vdb", UnitTestUtil.getTestDataPath() + "/TextParts/PartsDescriptor.txt", sql, 15000, 21); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /** test case 4151 */
- public void testCase4151() throws Exception {
- String sql = "SELECT COLA, COLB, COLC FROM ThreeColString_Text.testfile"; //$NON-NLS-1$
- Util.helpTestExecution("case4151/MM_00004151.vdb", UnitTestUtil.getTestDataPath() + "/testfile-descriptor.txt", sql, 15000, 5); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
-}
Deleted: trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/Util.java
===================================================================
--- trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/Util.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/Util.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,103 +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 org.teiid.resource.cci.text;
-
-import java.io.File;
-import java.util.List;
-
-import junit.framework.Assert;
-
-import org.mockito.Mockito;
-import org.teiid.connector.metadata.runtime.Column;
-import org.teiid.connector.metadata.runtime.MetadataStore;
-import org.teiid.connector.metadata.runtime.Schema;
-import org.teiid.connector.metadata.runtime.Table;
-import org.teiid.metadata.CompositeMetadataStore;
-import org.teiid.metadata.TransformationMetadata;
-import org.teiid.resource.adapter.text.TextConnection;
-import org.teiid.resource.adapter.text.TextExecutionFactory;
-import org.teiid.resource.cci.text.TextConnectionFactory;
-import org.teiid.resource.cci.text.TextConnectionImpl;
-import org.teiid.resource.cci.text.TextManagedConnectionFactory;
-
-import com.metamatrix.cdk.api.ConnectorHost;
-import com.metamatrix.cdk.api.TranslationUtility;
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.core.util.UnitTestUtil;
-import com.metamatrix.query.metadata.QueryMetadataInterface;
-import com.metamatrix.query.unittest.RealMetadataFactory;
-
-@SuppressWarnings("nls")
-public class Util {
-
- static void helpTestExecution(String vdb, String descriptorFile, String sql, int maxBatchSize, int expectedRowCount) throws Exception {
- TextExecutionFactory connector = new TextExecutionFactory();
- connector.setDateResultFormats("yyyy-MM-dd,hh:mm:ss,hh:mm,dd/mm/yyyy"); //$NON-NLS-1$
- connector.setDateResultFormatsDelimiter(",");
-
- ConnectorHost host = new ConnectorHost(connector, UnitTestUtil.getTestDataPath() + File.separator + vdb);
- List results = host.executeCommand(sql, createConnectionFactory(descriptorFile));
- Assert.assertEquals("Total row count doesn't match expected size. ", expectedRowCount, results.size()); //$NON-NLS-1$
- }
-
- public static TextConnectionFactory createConnectionFactory(String descriptorFile) throws Exception {
- TextManagedConnectionFactory config = Mockito.mock(TextManagedConnectionFactory.class);
- Mockito.stub(config.getDescriptorFile()).toReturn(descriptorFile);
- Mockito.stub(config.isPartialStartupAllowed()).toReturn(true);
- return new TextConnectionFactory(config);
- }
-
- public static ConnectorHost getConnectorHostWithFakeMetadata() throws Exception {
- TextExecutionFactory connector = new TextExecutionFactory();
- connector.setDateResultFormats("yyyy-MM-dd,hh:mm:ss,hh:mm,dd/mm/yyyy"); //$NON-NLS-1$
- connector.setDateResultFormatsDelimiter(",");
- connector.setEnforceColumnCount(true);
-
- ConnectorHost host = new ConnectorHost(connector, new TranslationUtility(exampleText()));
- return host;
- }
-
- public static QueryMetadataInterface exampleText() {
- MetadataStore store = new MetadataStore();
- // Create models
- Schema lib = RealMetadataFactory.createPhysicalModel("Text", store); //$NON-NLS-1$
-
- // Create physical groups
- Table library = RealMetadataFactory.createPhysicalGroup("Library", lib); //$NON-NLS-1$
-
- // Create physical elements
- String[] elemNames = new String[] {
- "ID", "PDate", "Author" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- String[] elemTypes = new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.DATE,
- DataTypeManager.DefaultDataTypes.STRING };
-
- List<Column> libe1 = RealMetadataFactory.createElements( library, elemNames, elemTypes);
- int index = 0;
- for (Column column : libe1) {
- column.setNameInSource(String.valueOf(index++));
- }
- return new TransformationMetadata(null, new CompositeMetadataStore(store), null, null);
- }
-
-}
Deleted: trunk/connectors/connector-text/src/test/resources/EmpData.txt
===================================================================
--- trunk/connectors/connector-text/src/test/resources/EmpData.txt 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-text/src/test/resources/EmpData.txt 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,51 +0,0 @@
-LastName,FirstName,MiddleName,EmpId,Department,AnnualSalary,Title,HomePhone,Manager,Street,City,State,Zip
-Kisselburg,Abbiegale,Tikvica ,9000059,G,64000,MGMT WannaBe,670-270-7947,9000073,123 State St.,New York,NY,10001
-Glore,Diodie,Vojvoda ,9000060,G,71000,Associate,480-650-9750,9000073,127 State St.,Los Angeles,CA,10005
-Dawson,Pinckney,Ostoja ,9000061,G,71000,Associate,110-400-3600,9000073,135 State St.,Detroit,MI,10013
-Waldrip,Trixie,Curic ,9000062,G,57000,Newbie,820-210-7045,9000073,136 State St.,Albany,NY,10014
-Kitchen,Zilpha,Buic ,9000063,G,60000,MGMT WannaBe,660-390-3785,9000073,138 State St.,Trenton,NJ,10016
-Wakeman,Gerard,Vlahovic ,9000064,G,78000,Newbie,700-190-5880,9000073,130 State St.,Jefferson City,MO,10008
-Rafferty,Dock,Korda ,9000065,G,70000,Newbie,400-190-6192,9000073,128 State St.,Sacramento,CA,10006
-Kersavage,Zelda,Mjesecevic ,9000066,G,56000,MGMT WannaBe,802-930-1482,9000073,137 State St.,Montpelier,VT,10015
-Zummer,Gerda,Milan ,9000067,G,69000,Newbie,920-100-9701,9000073,131 State St.,Bangor,ME,10009
-Davies,Allwyne,Radic ,9000068,G,61000,Associate,470-820-6096,9000073,126 State St.,Montgomery,AL,10004
-Deanford,Abe,Skrabalo ,9000069,G,67000,Associate,907-660-8233,9000073,124 State St.,Juneau,AK,10002
-Garcia,Orsal,Ucovic ,9000070,ML,79000,CFO,480-490-7710,9000075,150 State St.,Phoenix,AZ,10028
-Zook,Orson,Bendevis ,9000071,G,71000,Newbie,350-260-8654,9000073,133 State St.,Boston,MA,10011
-Rainier,Adelaid,Marinovic ,9000072,G,67000,Newbie,316-550-3499,9000073,125 State St.,Topeka,KS,10003
-Nealon,General,,9000073,G,77000,COO,203-420-3113,9000075,129 State St.,Hartford,CT,10007
-Garahana,Jarrod,Cvjetkovic ,9000074,G,66000,Associate,620-430-1782,9000073,132 State St.,New York,NY,10010
-Neely,Petronella,Goravica ,9000075,G,80000,CEO,230-320-6330,,134 State St.,Los Angeles,CA,10012
-Gamble,Johney,Kordic ,9000123,TM,74000,Associate,330-200-8319,9000132,162 State St.,Detroit,MI,10040
-Gertanovich,Orthell,Tvrdisa ,9000124,TM,63000,Associate,600-410-3667,9000132,165 State St.,Albany,NY,10043
-Kenyon,Jim,Radovanovic ,9000125,TM,80000,MGMT WannaBe,800-510-7741,9000132,161 State St.,Trenton,NJ,10039
-Gerber,Tristan,Rogec ,9000126,TM,57000,Associate,120-990-7278,9000132,169 State St.,Jefferson City,MO,10047
-Gibb,Jaromy,Kristic ,9000127,TM,69000,Associate,270-390-9549,9000132,160 State St.,Sacramento,CA,10038
-Rader,Allissa,Radicevic ,9000128,TM,59000,Newbie,750-420-2128,9000132,157 State St.,Montpelier,VT,10035
-Kammerer,Dilbert,Capor ,9000129,TM,70000,Associate,700-280-3808,9000132,159 State St.,Bangor,ME,10037
-Knippers,Tuesday,Balic ,9000130,TM,68000,MGMT WannaBe,960-140-1045,9000132,170 State St.,Montgomery,AL,10048
-Zumwalt,Patrycia,Srezovic ,9000131,TM,72000,Newbie,210-400-7920,9000132,167 State St.,Juneau,AK,10045
-Needham,Katlyn,Metkovic ,9000132,TM,76000,Goon,380-210-1611,9000070,163 State St.,Phoenix,AZ,10041
-Keefer,Almedia,,9000133,TM,61000,MGMT WannaBe,850-640-3038,9000132,158 State St.,Boston,MA,10036
-Rampton,Orman,Cavelis ,9000134,TM,76000,Newbie,950-930-1038,9000132,164 State St.,Topeka,KS,10042
-Krepps,Paul,Skobelj ,9000135,TM,64000,MGMT WannaBe,430-500-8830,9000132,168 State St.,Hartford,CT,10046
-Deans,Zeno,Jozovic ,9000136,TM,79000,Associate,830-190-9156,9000132,172 State St.,New York,NY,10050
-Zarafonetis,Parazetti,Roncevic ,9000137,TM,73000,Newbie,710-890-2886,9000132,166 State St.,Los Angeles,CA,10044
-Davis,Tyler,Vukic ,9000138,TM,80000,Associate,540-420-5160,9000132,171 State St.,Detroit,MI,10049
-Randolph,Orwin,Rasica ,9010233,ML,44000,Newbie,200-870-4749,9000070,151 State St.,Albany,NY,10029
-Ramsey,Orran,Slade ,9010234,ML,42000,Newbie,500-830-2947,9000070,149 State St.,Trenton,NJ,10027
-Wagonlander,Blondeena,Djano ,9010235,ML,41000,Newbie,780-760-9188,9000070,141 State St.,Jefferson City,MO,10019
-Wadsworth,Alice,Hasan ,9010236,ML,40000,Newbie,230-360-1247,9000070,140 State St.,Sacramento,CA,10018
-Nolen,Parnell,Buconic ,9010237,ML,47000,Newbie,620-300-7125,9000070,152 State St.,Montpelier,VT,10030
-Glidewell,Xoe,Bagovic ,9010238,ML,45000,Associate,850-850-5647,9000070,156 State St.,Bangor,ME,10034
-Zutter,Adam,Hendic ,9010239,ML,48000,Newbie,890-300-9999,9000070,139 State St.,Montgomery,AL,10017
-Gale,Turwayne,Dalmatin ,9010240,ML,36000,Associate,600-290-9758,9000070,154 State St.,Juneau,AK,10032
-Krikwood,Javin,Vidak ,9010241,ML,42000,MGMT WannaBe,380-280-5100,9000070,146 State St.,Phoenix,AZ,10024
-Giggs,Philbert,Vidak ,9010242,ML,52000,Associate,620-270-6404,9000070,153 State St.,Boston,MA,10031
-Danford,Garnett,Brigovic ,9010243,ML,39000,Associate,880-160-7833,9000070,145 State St.,Topeka,KS,10023
-Nash,Xavier,Semes ,9010244,ML,53000,MGMT WannaBe,800-550-5917,9000070,155 State St.,Hartford,CT,10033
-Kasparek,Gallard,Jelic ,9010245,ML,47000,Associate,590-460-5850,9000070,144 State St.,New York,NY,10022
-Kernodle,Dextor,Bupic ,9010246,ML,55000,MGMT WannaBe,440-750-1427,9000070,142 State St.,Los Angeles,CA,10020
-Neighbors,Karron,Stuk ,9010247,ML,40000,Newbie,430-790-9550,9000070,147 State St.,Detroit,MI,10025
-Gilbertson,Doil,Radic ,9010248,ML,51000,Associate,870-510-5367,9000070,143 State St.,Albany,NY,10021
-Neilsen,Katheleen,,9010249,ML,36000,Newbie,550-200-5470,9000070,148 State St.,Trenton,NJ,10026
Deleted: trunk/connectors/connector-text/src/test/resources/EmployeeTestDataSalary.txt
===================================================================
--- trunk/connectors/connector-text/src/test/resources/EmployeeTestDataSalary.txt 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-text/src/test/resources/EmployeeTestDataSalary.txt 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,4 +0,0 @@
-Employees.EmpTable.location = src/test/resources/EmpData.txt
-Employees.EmpTable.qualifier = "
-Employees.EmpTable.delimiter = ,
-Employees.EmpTable.skipHeaderLines = 1
Deleted: trunk/connectors/connector-text/src/test/resources/SUMMITDATA3.txt
===================================================================
--- trunk/connectors/connector-text/src/test/resources/SUMMITDATA3.txt 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-text/src/test/resources/SUMMITDATA3.txt 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,4140 +0,0 @@
-TRADEID,NOTIONAL,EVTTYPE,CCY,PORS,RATE,STRIKE,SPREAD,DMOWNERTAB,FOLDER,DESK,START,MATURITY,COMMENT
-234332,657.4564,AAA,DKD,S,3478.32,33,1,AAA,FOLDERA,LTTRS,2002-01-01 12:00:00,2002-02-28 01:00:00,COLLATERAL
-234333,876.4455,BBB,FKF,P,3481.33,34,2,BBB,FOLDERB,LTTRS,2002-01-02 12:00:00,2002-03-04 03:00:00,NOT COLLATERAL
-234334,1095.4346,CCC,LES,S,3484.34,35,3,CCC,FOLDERC,LTTRS,2002-01-03 13:00:00,2002-03-08 05:00:00,NOT COLLATERAL
-234335,1314.4237,DDD,KLD,P,3487.45,36,4,DDD,FOLDERD,LTTRS,2002-01-04 14:00:00,2002-03-12 07:00:00,NOT COLLATERAL
-234336,1533.4128,AAB,SKL,S,3490.56,37,5,AAB,FOLDERE,LTTRS,2002-01-07 17:00:00,2002-03-16 09:00:00,NOT COLLATERAL
-234337,1752.4019,AAC,SIW,S,3493.67,38,6,AAC,FOLDERF,LTTRS,2002-01-10 20:00:00,2002-03-20 11:00:00,NOT COLLATERAL
-234338,1971.391,AAD,CKA,S,3496.78,39,7,AAD,FOLDERG,LTTRS,2002-01-13 23:00:00,2002-03-24 13:00:00,NOT COLLATERAL
-234339,2190.3801,AAE,LDE,S,3499.89,40,8,AAE,FOLDERH,LTTRS,2002-01-17 02:00:00,2002-03-28 15:00:00,NOT COLLATERAL
-234340,2409.3692,AAF,KFF,P,3503,41,9,AAF,FOLDERI,LTTRS,2002-01-20 05:00:00,2002-04-01 17:00:00,NOT COLLATERAL
-234345,2628.3583,BBA,EFH,P,3506.11,42,10,BBA,FOLDERJ,LTTRS,2002-01-23 08:00:00,2002-04-05 19:00:00,NOT COLLATERAL
-234350,2847.3474,BBC,NGC,P,3509.22,43,11,BBC,FOLDERK,LTTRS,2002-01-26 11:00:00,2002-04-09 21:00:00,COLLATERAL
-234355,3066.3365,BBE,DER,S,3512.33,44,12,BBE,FOLDERL,LTTRS,2002-01-29 14:00:00,2002-04-13 23:00:00,COLLATERAL
-234360,3285.3256,BBF,FVG,P,3515.44,45,13,BBF,FOLDERM,LTTRS,2002-02-01 17:00:00,2002-04-18 01:00:00,COLLATERAL
-234365,3504.3147,BBG,KWE,S,3518.55,46,14,BBG,FOLDERN,LTTRS,2002-02-04 20:00:00,2002-04-22 03:00:00,NOT COLLATERAL
-234370,3723.3038,BBH,WER,P,3521.66,47,15,BBH,FOLDERO,LTTRZ,2002-02-07 23:00:00,2002-04-26 05:00:00,NOT COLLATERAL
-234375,3942.2929,CCA,GFH,S,3524.77,48,16,CCA,FOLDERP,LTTRA,2002-02-11 02:00:00,2002-04-30 07:00:00,NULL
-234380,4161.282,CCB,BGF,S,3527.88,49,17,CCB,FOLDERQ,LTTRB,2002-02-14 05:00:00,2002-05-04 09:00:00,NULL
-234385,4380.2711,CCD,XCS,S,3530.99,50,18,CCD,FOLDERR,LTTRB,2002-02-17 08:00:00,2002-05-08 11:00:00,NULL
-234390,4599.2602,CCE,JHK,S,3534.1,51,19,CCE,FOLDERS,LTTRA,2002-02-20 11:00:00,2002-05-12 13:00:00,NULL
-234395,4818.2493,CCF,SFD,P,3537.21,52,20,CCF,FOLDERT,LTTRA,2002-02-23 14:00:00,2002-05-16 15:00:00,NULL
-234400,5037.2384,CCG,WRE,P,3540.32,53,21,CCG,FOLDERU,LTTRS,2002-02-26 17:00:00,2002-05-20 17:00:00,NULL
-119875,5256.2275,CCH,HGV,P,3543.43,54,22,CCH,FOLDERV,LTTRZ,2002-03-01 20:00:00,2002-05-24 19:00:00,NULL
-119877,5475.2166,CCI,KLS,S,3546.54,55,23,CCI,FOLDERW,LTTRS,2002-03-04 23:00:00,2002-05-28 21:00:00,COLLATERAL
-119879,5694.2057,CCJ,SDK,P,3549.65,56,24,CCJ,FOLDERX,LTTRS,2002-03-08 02:00:00,2002-06-01 23:00:00,COLLATERAL
-119881,5913.1948,DDD,MNV,S,3552.76,44,25,DDD,FOLDERY,LTTRS,2002-03-11 05:00:00,2002-06-06 01:00:00,COLLATERAL
-119883,6132.1839,DDA,OKW,P,3555.87,32,26,DDA,FOLDERZ,LTTRS,2002-03-14 08:00:00,2002-06-10 03:00:00,NOT COLLATERAL
-119885,6351.173,DAA,ASS,S,3558.98,20,27,DAA,FOLDERA,LTTRS,2002-03-17 11:00:00,2002-06-14 05:00:00,NOT COLLATERAL
-119887,6570.1621,DBB,CKA,S,3562.09,23,28,FKF,FOLDERB,LTTRS,2002-03-20 14:00:00,2002-06-18 07:00:00,NOT COLLATERAL
-119889,6789.1512,DCC,SWQ,S,3565.2,26,29,LES,FOLDERC,LTTRS,2002-03-23 17:00:00,2002-06-22 09:00:00,NOT COLLATERAL
-119891,7008.1403,DEE,KUH,S,3568.31,29,30,KLD,FOLDERD,LTTRS,2002-03-26 20:00:00,2002-06-26 11:00:00,NOT COLLATERAL
-119893,7227.1294,DFF,XCV,P,3571.42,32,31,SKL,FOLDERE,LTTRS,2002-03-29 23:00:00,2002-06-30 13:00:00,NOT COLLATERAL
-119895,7446.1185,DGG,ZAQ,P,3574.53,35,32,SIW,FOLDERF,LTTRS,2002-04-02 02:00:00,2002-07-04 15:00:00,NOT COLLATERAL
-119897,7665.1076,DHH,MKO,P,3577.64,38,33,CKA,FOLDERG,LTTRS,2002-04-05 05:00:00,2002-07-08 17:00:00,NOT COLLATERAL
-119899,7884.0967,AAA,VFR,S,3580.75,41,34,LDE,FOLDERH,LTTRS,2002-04-08 08:00:00,2002-07-12 19:00:00,NOT COLLATERAL
-119901,8103.0858,BBB,YUJ,P,3583.86,44,35,KFF,FOLDERI,LTTRS,2002-04-11 11:00:00,2002-07-16 21:00:00,COLLATERAL
-119903,8322.0749,CCC,MED,S,3586.97,47,36,EFH,FOLDERJ,LTTRS,2002-04-14 14:00:00,2002-07-20 23:00:00,COLLATERAL
-119905,8541.064,DDD,SWE,P,3590.08,50,37,NGC,FOLDERK,LTTRZ,2002-04-17 17:00:00,2002-07-25 01:00:00,COLLATERAL
-119907,8760.0531,AAB,CVF,S,3593.19,53,38,DER,FOLDERL,LTTRA,2002-04-20 20:00:00,2002-07-29 03:00:00,NOT COLLATERAL
-119909,8979.0422,AAC,DSFG,S,3596.3,56,39,FVG,FOLDERM,LTTRB,2002-04-23 23:00:00,2002-08-02 05:00:00,NOT COLLATERAL
-119911,9198.0313,AAD,ASDRE,S,3599.41,59,40,KWE,FOLDERN,LTTRB,2002-04-27 02:00:00,2002-08-06 07:00:00,NOT COLLATERAL
-119913,9417.0204,AAE,HJKSS,S,3602.52,62,41,WER,FOLDERO,LTTRA,2002-04-30 05:00:00,2002-08-10 09:00:00,NOT COLLATERAL
-119915,9636.0095,AAF,KHAA,P,3605.63,65,42,GFH,FOLDERP,LTTRA,2002-05-03 08:00:00,2002-08-14 11:00:00,NOT COLLATERAL
-119917,9854.9986,BBA,KSLD,P,3608.74,68,43,BGF,FOLDERQ,LTTRS,2002-05-04 11:00:00,2002-08-18 13:00:00,NOT COLLATERAL
-119919,10073.9877,BBC,EKID,P,3611.85,71,44,XCS,FOLDERR,LTTRZ,2002-05-05 14:00:00,2002-08-22 15:00:00,NOT COLLATERAL
-119921,10292.9768,BBE,VNCD,S,3614.96,74,45,JHK,FOLDERS,LTTRS,2002-05-06 17:00:00,2002-08-26 17:00:00,NOT COLLATERAL
-119923,4564.33,BBF,DKD,P,3618.07,77,46,SFD,FOLDERT,LTTRS,2002-05-07 20:00:00,2002-08-30 19:00:00,NOT COLLATERAL
-119925,4564.77,BBG,FKF,S,3621.18,80,47,WRE,FOLDERU,LTTRS,2002-05-08 23:00:00,2002-09-03 21:00:00,COLLATERAL
-119927,4565.21,BBH,LES,P,3624.29,83,48,HGV,FOLDERV,LTTRS,2002-05-10 02:00:00,2002-09-07 23:00:00,COLLATERAL
-119929,4565.65,CCA,KLD,S,3627.4,86,49,KLS,FOLDERW,LTTRS,2002-05-11 05:00:00,2002-09-12 01:00:00,COLLATERAL
-119931,4566.09,CCB,SKL,P,3630.51,89,48,SDK,FOLDERX,LTTRS,2002-05-12 08:00:00,2002-09-16 03:00:00,NOT COLLATERAL
-119933,4566.53,CCD,SIW,P,3633.62,92,47,MNV,FOLDERY,LTTRS,2002-05-13 11:00:00,2002-09-20 05:00:00,NOT COLLATERAL
-119935,4566.97,CCE,CKA,P,3636.73,95,46,OKW,FOLDERZ,LTTRS,2002-05-14 14:00:00,2002-09-24 07:00:00,NOT COLLATERAL
-119937,4567.41,CCF,LDE,P,3639.84,98,45,ASS,FOLDERZ,LTTRS,2002-05-15 17:00:00,2002-09-28 09:00:00,NOT COLLATERAL
-119939,4567.85,CCG,KFF,P,3642.95,101,44,CKA,FOLDERZ,LTTRS,2002-05-16 20:00:00,2002-10-02 11:00:00,NOT COLLATERAL
-119941,4568.29,CCH,EFH,P,3646.06,104,43,SWQ,FOLDERZ,LTTRS,2002-05-17 23:00:00,2002-10-06 13:00:00,NOT COLLATERAL
-119943,4568.73,CCI,NGC,P,3649.17,107,42,KUH,FOLDERZ,LTTRS,2002-05-19 02:00:00,2002-10-10 15:00:00,NOT COLLATERAL
-119945,4569.17,CCJ,DER,P,3652.28,110,41,XCV,FOLDERZ,LTTRS,2002-05-20 05:00:00,2002-10-14 17:00:00,NOT COLLATERAL
-119947,4569.61,DDD,FVG,P,3655.39,113,40,ZAQ,FOLDERZ,LTTRS,2002-05-21 08:00:00,2002-10-14 19:00:00,NOT COLLATERAL
-119949,4570.05,DDA,KWE,P,3658.5,116,39,MKO,FOLDERZ,LTTRZ,2002-05-22 11:00:00,2002-10-14 21:00:00,COLLATERAL
-119951,4570.49,DAA,WER,A,3661.61,119,38,VFR,FOLDERZ,LTTRA,2002-05-23 14:00:00,2002-10-14 23:00:00,COLLATERAL
-119953,4570.93,DBB,GFH,S,3664.72,122,37,YUJ,FOLDERZ,LTTRB,2002-05-24 17:00:00,2002-10-15 01:00:00,COLLATERAL
-119955,4571.37,DCC,BGF,S,3667.83,125,36,AAA,FOLDERZ,LTTRB,2002-05-25 20:00:00,2002-10-15 03:00:00,NOT COLLATERAL
-119957,4571.81,DEE,XCS,S,3670.94,128,35,BBB,FOLDERZ,LTTRA,2002-05-26 23:00:00,2002-10-15 05:00:00,NOT COLLATERAL
-119959,4572.25,DFF,JHK,A,3674.05,131,34,CCC,FOLDERZ,LTTRA,2002-05-28 02:00:00,2002-10-15 07:00:00,NOT COLLATERAL
-119961,4572.69,DGG,SFD,A,3677.16,134,33,DDD,FOLDERZ,LTTRS,2002-05-29 05:00:00,2002-10-15 09:00:00,NOT COLLATERAL
-119963,4573.13,DHH,WRE,A,3680.27,137,32,AAB,FOLDERX,LTTRZ,2002-05-30 08:00:00,2002-10-15 11:00:00,NOT COLLATERAL
-119965,4573.57,AAA,HGV,A,3683.38,140,31,AAC,FOLDERX,LTTRS,2002-05-31 11:00:00,2002-10-15 13:00:00,NOT COLLATERAL
-119967,4574.01,BBB,KLS,A,3686.49,143,30,AAD,FOLDERX,LTTRS,2002-06-01 14:00:00,2002-10-15 15:00:00,NOT COLLATERAL
-119969,4574.45,CCC,SDK,A,3689.6,146,29,AAE,FOLDERX,LTTRS,2002-06-02 17:00:00,2002-10-15 17:00:00,NOT COLLATERAL
-119971,4574.89,DDD,MNV,A,3692.71,149,28,AAF,FOLDERX,LTTRS,2002-06-03 20:00:00,2002-10-15 19:00:00,NOT COLLATERAL
-119973,4575.33,AAB,OKW,A,3695.82,152,27,BBA,FOLDERX,LTTRS,2002-06-04 23:00:00,2002-10-15 21:00:00,COLLATERAL
-119975,4575.77,AAC,ASS,A,3698.93,155,26,BBC,FOLDERX,LTTRS,2002-06-06 02:00:00,2002-10-15 23:00:00,COLLATERAL
-119977,4576.21,AAD,CKA,A,3702.04,158,25,BBE,FOLDERX,LTTRS,2002-06-07 05:00:00,2002-10-16 01:00:00,COLLATERAL
-119979,4576.65,AAE,SWQ,A,3705.15,161,24,BBF,FOLDERX,LTTRS,2002-06-08 08:00:00,2002-10-16 03:00:00,NOT COLLATERAL
-119981,4577.09,AAF,KUH,A,3708.26,164,23,BBG,FOLDERX,LTTRS,2002-06-09 11:00:00,2002-10-16 05:00:00,NOT COLLATERAL
-119983,4577.53,BBA,XCV,A,3711.37,167,22,BBH,FOLDERX,LTTRS,2002-06-10 14:00:00,2002-10-16 07:00:00,NOT COLLATERAL
-119985,4577.97,BBC,ZAQ,A,3714.48,170,21,CCA,FOLDERX,LTTRS,2002-06-11 17:00:00,2002-10-16 09:00:00,NOT COLLATERAL
-119987,4578.41,BBE,MKO,A,3717.59,173,20,CCB,FOLDERR,LTTRS,2002-06-12 20:00:00,2002-10-16 11:00:00,NOT COLLATERAL
-119989,4578.85,BBF,VFR,A,3720.7,176,19,CCD,FOLDERS,LTTRS,2002-06-13 23:00:00,2002-10-16 13:00:00,NOT COLLATERAL
-119991,4579.29,BBG,YUJ,A,3723.81,179,18,CCE,FOLDERX,LTTRS,2002-06-15 02:00:00,2002-10-16 15:00:00,NOT COLLATERAL
-119993,4579.73,BBH,MED,A,3726.92,182,17,CCF,FOLDERR,LTTRZ,2002-06-16 05:00:00,2002-10-16 17:00:00,NOT COLLATERAL
-119995,4580.17,CCA,SWE,A,3730.03,185,16,CCG,FOLDERS,LTTRA,2002-06-17 08:00:00,2002-10-16 19:00:00,NOT COLLATERAL
-119997,4580.61,CCB,CVF,A,3733.14,188,15,CCH,FOLDERX,LTTRB,2002-06-18 11:00:00,2002-10-16 20:59:00,COLLATERAL
-119999,4581.05,CCD,DSFG,A,3736.25,191,14,CCI,FOLDERR,LTTRB,2002-06-19 14:00:00,2002-10-16 22:59:00,COLLATERAL
-120001,4581.49,CCE,ASDRE,A,3739.36,194,13,CCJ,FOLDERS,LTTRA,2002-06-20 17:00:00,2002-10-17 00:59:00,COLLATERAL
-120003,4581.93,CCF,HJKSS,A,3742.47,197,12,DDD,FOLDERX,LTTRA,2002-06-21 20:00:00,2002-10-17 02:59:00,NOT COLLATERAL
-120005,4582.37,CCG,KHAA,A,3745.58,200,11,DDA,FOLDERR,LTTRS,2002-06-22 23:00:00,2002-10-17 04:59:00,NOT COLLATERAL
-120007,4582.81,CCH,KSLD,A,3748.69,203,10,DAA,FOLDERS,LTTRZ,2002-06-24 02:00:00,2002-10-17 06:59:00,NOT COLLATERAL
-120009,4583.25,CCI,EKID,A,3751.8,206,9,FKF,FOLDERX,LTTRS,2002-06-25 05:00:00,2002-10-17 08:59:00,NOT COLLATERAL
-120011,4583.69,CCJ,VNCD,A,3754.91,209,8,LES,FOLDERR,LTTRS,2002-06-26 08:00:00,2002-10-17 10:59:00,NOT COLLATERAL
-120013,4584.13,DDD,DKD,A,3758.02,212,7,KLD,FOLDERS,LTTRS,2002-06-27 11:00:00,2002-10-17 12:59:00,NOT COLLATERAL
-120015,4584.57,DDA,FKF,A,3761.13,215,6,SKL,FOLDERX,LTTRS,2002-06-28 14:00:00,2002-10-17 14:59:00,NOT COLLATERAL
-120017,4585.01,DAA,LES,A,3764.24,218,5,SIW,FOLDERD,LTTRS,2002-06-29 17:00:00,2002-10-17 16:59:00,NOT COLLATERAL
-120019,4585.45,DBB,KLD,A,3767.35,221,4,CKA,FOLDERE,LTTRS,2002-06-30 20:00:00,2002-10-17 18:59:00,NOT COLLATERAL
-120021,4585.89,DCC,SKL,A,3770.46,224,3,LDE,FOLDERF,LTTRS,2002-07-01 23:00:00,2002-10-17 20:59:00,COLLATERAL
-120023,4586.33,DEE,SIW,A,3773.57,227,1,KFF,FOLDERG,LTTRS,2002-07-03 02:00:00,2002-10-17 22:59:00,COLLATERAL
-120025,4586.77,DFF,CKA,A,3776.68,230,2,EFH,FOLDERH,LTTRS,2002-07-04 05:00:00,2002-10-18 00:59:00,COLLATERAL
-120027,4587.21,DGG,LDE,A,3779.79,229,3,NGC,FOLDERI,LTTRS,2002-07-05 08:00:00,2002-10-18 02:59:00,NOT COLLATERAL
-120029,4587.65,DHH,KFF,A,3782.9,228,4,DER,FOLDERJ,LTTRS,2002-07-06 11:00:00,2002-10-18 04:59:00,NOT COLLATERAL
-120031,4588.09,AAA,EFH,A,3786.01,227,5,FVG,FOLDERK,LTTRS,2002-07-07 14:00:00,2002-10-18 06:59:00,NOT COLLATERAL
-120033,4588.53,BBB,NGC,A,3789.12,226,6,KWE,FOLDERL,LTTRS,2002-07-08 17:00:00,2002-10-18 08:59:00,NOT COLLATERAL
-120035,4588.97,CCC,DER,A,3792.23,225,7,WER,FOLDERM,LTTRS,2002-07-09 20:00:00,2002-10-18 10:59:00,NOT COLLATERAL
-120037,4589.41,DDD,FVG,A,3795.34,224,8,GFH,FOLDERN,LTTRZ,2002-07-10 23:00:00,2002-10-18 12:59:00,NOT COLLATERAL
-120039,4589.85,AAB,KWE,A,3798.45,223,9,BGF,FOLDERN,LTTRA,2002-07-12 02:00:00,2002-10-18 14:59:00,NOT COLLATERAL
-120041,4590.29,AAC,WER,A,3801.56,222,10,XCS,FOLDERN,LTTRB,2002-07-13 05:00:00,2002-10-18 16:59:00,NOT COLLATERAL
-120043,4590.73,AAD,GFH,A,3804.67,221,11,JHK,FOLDERN,LTTRB,2002-07-14 08:00:00,2002-10-18 18:59:00,NOT COLLATERAL
-120045,4591.17,AAE,BGF,A,3807.78,220,12,SFD,FOLDERL,LTTRA,2002-07-15 11:00:00,2002-10-18 20:59:00,COLLATERAL
-120047,4591.61,AAF,XCS,A,3810.89,219,13,WRE,FOLDERL,LTTRA,2002-07-16 14:00:00,2002-10-18 22:59:00,COLLATERAL
-120049,4592.05,BBA,JHK,A,3814,218,14,HGV,FOLDERL,LTTRS,2002-07-17 17:00:00,2002-10-19 00:59:00,COLLATERAL
-120051,4592.49,BBC,SFD,A,3817.11,217,15,KLS,FOLDERL,LTTRZ,2002-07-18 20:00:00,2002-10-19 02:59:00,NOT COLLATERAL
-120053,4592.93,BBE,WRE,A,3820.22,216,16,SDK,FOLDERL,LTTRS,2002-07-19 23:00:00,2002-10-19 04:59:00,NOT COLLATERAL
-120055,4593.37,BBF,HGV,A,3823.33,215,17,MNV,FOLDERA,LTTRS,2002-07-21 02:00:00,2002-10-19 06:59:00,NOT COLLATERAL
-120057,4593.81,BBG,KLS,A,3826.44,214,18,OKW,FOLDERB,LTTRS,2002-07-22 05:00:00,2002-10-19 08:59:00,NOT COLLATERAL
-120059,4594.25,BBH,SDK,A,3829.55,213,19,ASS,FOLDERC,LTTRS,2002-07-23 08:00:00,2002-10-19 10:59:00,NOT COLLATERAL
-120061,4594.69,CCA,MNV,A,3832.66,212,20,CKA,FOLDERD,LTTRS,2002-07-24 11:00:00,2002-10-19 12:59:00,NOT COLLATERAL
-120063,4595.13,CCB,OKW,A,3835.77,211,21,SWQ,FOLDERE,LTTRS,2002-07-25 14:00:00,2002-10-19 14:59:00,NOT COLLATERAL
-120065,4595.57,CCD,ASS,A,3838.88,210,22,KUH,FOLDERF,LTTRS,2002-07-26 17:00:00,2002-10-19 16:59:00,NOT COLLATERAL
-120067,4596.01,CCE,CKA,A,3841.99,209,23,XCV,FOLDERG,LTTRS,2002-07-27 20:00:00,2002-10-19 18:59:00,NOT COLLATERAL
-120069,4596.45,CCF,SWQ,A,3845.1,208,24,ZAQ,FOLDERH,LTTRS,2002-07-28 23:00:00,2002-10-19 20:59:00,COLLATERAL
-120071,4596.89,CCG,KUH,A,3848.21,207,25,MKO,FOLDERI,LTTRS,2002-07-30 02:00:00,2002-10-19 22:59:00,COLLATERAL
-120073,4597.33,CCH,XCV,A,3851.32,206,26,VFR,FOLDERJ,LTTRS,2002-07-31 05:00:00,2002-10-20 00:59:00,COLLATERAL
-120075,4597.77,CCI,ZAQ,A,3854.43,205,27,YUJ,FOLDERK,LTTRS,2002-08-01 08:00:00,2002-10-20 02:59:00,NOT COLLATERAL
-120077,4598.21,CCJ,MKO,A,3857.54,204,28,AAA,FOLDERL,LTTRS,2002-08-02 11:00:00,2002-10-20 04:59:00,NOT COLLATERAL
-120079,4598.65,DDD,VFR,A,3860.65,203,29,BBB,FOLDERM,LTTRS,2002-08-03 14:00:00,2002-10-20 06:59:00,NOT COLLATERAL
-120081,4599.09,DDA,YUJ,A,3863.76,202,30,CCC,FOLDERN,LTTRZ,2002-08-04 17:00:00,2002-10-20 08:59:00,NOT COLLATERAL
-120083,4599.53,DAA,MED,A,3866.87,201,31,DDD,FOLDERO,LTTRA,2002-08-05 20:00:00,2002-10-20 10:59:00,NOT COLLATERAL
-120085,4599.97,DBB,SWE,A,3869.98,200,32,AAB,FOLDERP,LTTRB,2002-08-06 23:00:00,2002-10-20 12:59:00,NOT COLLATERAL
-120087,4600.41,DCC,CVF,A,3873.09,199,33,AAC,FOLDERQ,LTTRB,2002-08-08 02:00:00,2002-10-20 14:59:00,NOT COLLATERAL
-120089,4600.85,DEE,DSFG,A,3876.2,198,34,AAD,FOLDERR,LTTRA,2002-08-09 05:00:00,2002-10-20 16:59:00,NOT COLLATERAL
-120091,4601.29,DFF,ASDRE,A,3879.31,197,35,AAE,FOLDERS,LTTRA,2002-08-10 08:00:00,2002-10-20 18:59:00,NOT COLLATERAL
-120093,4601.73,DGG,HJKSS,A,3882.42,196,36,AAF,FOLDERT,LTTRS,2002-08-11 11:00:00,2002-10-20 20:59:00,COLLATERAL
-120095,4602.17,DHH,KHAA,A,3885.53,195,37,BBA,FOLDERU,LTTRZ,2002-08-12 14:00:00,2002-10-20 22:59:00,COLLATERAL
-120097,4602.61,AAA,KSLD,A,3888.64,194,38,BBC,FOLDERV,LTTRS,2002-08-13 17:00:00,2002-10-21 00:59:00,COLLATERAL
-120099,4603.05,BBB,EKID,A,3891.75,193,39,BBE,FOLDERW,LTTRS,2002-08-14 20:00:00,2002-10-21 02:59:00,NOT COLLATERAL
-120101,4603.49,CCC,VNCD,A,3894.86,192,40,BBF,FOLDERX,LTTRS,2002-08-15 23:00:00,2002-10-21 04:59:00,NULL
-120103,4603.93,DDD,DKD,A,3897.97,191,41,BBG,FOLDERY,LTTRS,2002-08-17 02:00:00,2002-10-21 06:59:00,NULL
-120105,4604.37,AAB,FKF,A,3901.08,190,42,BBH,FOLDERZ,LTTRS,2002-08-18 05:00:00,2002-10-21 08:59:00,NULL
-120107,4604.81,AAC,LES,A,3904.19,189,43,CCA,FOLDERA,LTTRS,2002-08-19 08:00:00,2002-10-21 10:59:00,NULL
-120109,4605.25,AAD,KLD,A,3907.3,188,44,CCB,FOLDERB,LTTRS,2002-08-20 11:00:00,2002-10-21 12:59:00,NULL
-120111,4605.69,AAE,SKL,A,3910.41,187,45,CCD,FOLDERC,LTTRS,2002-08-21 14:00:00,2002-10-21 14:59:00,NULL
-120113,4606.13,AAF,SIW,A,3913.52,186,46,CCE,FOLDERD,LTTRS,2002-08-22 17:00:00,2002-10-21 16:59:00,NULL
-120115,4606.57,BBA,CKA,A,3916.63,185,47,CCF,FOLDERE,LTTRS,2002-08-23 20:00:00,2002-10-21 18:59:00,NULL
-120117,4607.01,BBC,LDE,A,3919.74,184,48,CCG,FOLDERF,LTTRS,2002-08-24 23:00:00,2002-10-21 20:59:00,COLLATERAL
-120119,4607.45,BBE,KFF,A,3922.85,183,49,CCH,FOLDERG,LTTRS,2002-08-26 02:00:00,2002-10-21 22:59:00,COLLATERAL
-120121,4607.89,BBF,EFH,A,3925.96,182,48,CCI,FOLDERH,LTTRS,2002-08-27 05:00:00,2002-10-22 00:59:00,COLLATERAL
-120123,4608.33,BBG,NGC,A,3929.07,181,47,CCJ,FOLDERI,LTTRS,2002-08-28 08:00:00,2002-10-22 02:59:00,NOT COLLATERAL
-120125,4608.77,BBH,DER,A,3932.18,180,46,DDD,FOLDERJ,LTTRZ,2002-08-29 11:00:00,2002-10-22 04:59:00,NOT COLLATERAL
-120127,4609.21,CCA,FVG,A,3935.29,179,45,DDA,FOLDERK,LTTRA,2002-08-30 14:00:00,2002-10-22 06:59:00,NOT COLLATERAL
-120129,4609.65,CCB,KWE,A,3938.4,178,44,DAA,FOLDERL,LTTRB,2002-08-31 17:00:00,2002-10-22 08:59:00,NOT COLLATERAL
-120131,4610.09,CCD,WER,A,3941.51,177,43,FKF,FOLDERM,LTTRB,2002-09-01 20:00:00,2002-10-22 10:59:00,NOT COLLATERAL
-120133,4610.53,CCE,GFH,A,3944.62,176,42,LES,FOLDERN,LTTRA,2002-09-02 21:00:00,2002-10-22 12:59:00,NOT COLLATERAL
-120135,4610.97,CCF,BGF,A,3947.73,175,41,KLD,FOLDERO,LTTRA,2002-09-03 22:00:00,2002-10-22 14:59:00,NOT COLLATERAL
-120137,4611.41,CCG,XCS,A,3950.84,174,40,SKL,FOLDERP,LTTRS,2002-09-04 23:00:00,2002-10-22 16:59:00,NOT COLLATERAL
-120139,4611.85,CCH,JHK,A,3953.95,173,39,SIW,FOLDERQ,LTTRZ,2002-09-06 00:00:00,2002-10-22 18:59:00,NOT COLLATERAL
-120141,4612.29,CCI,SFD,A,3957.06,172,38,CKA,FOLDERR,LTTRS,2002-09-07 01:00:00,2002-10-22 20:59:00,COLLATERAL
-120143,4612.73,CCJ,WRE,A,3960.17,171,37,LDE,FOLDERS,LTTRS,2002-09-08 02:00:00,2002-10-22 22:59:00,COLLATERAL
-120145,4613.17,DDD,HGV,A,3963.28,170,36,KFF,FOLDERT,LTTRS,2002-09-09 03:00:00,2002-10-23 00:59:00,COLLATERAL
-120147,4613.61,DDA,KLS,A,3966.39,169,35,EFH,FOLDERU,LTTRS,2002-09-10 04:00:00,2002-10-23 02:59:00,NOT COLLATERAL
-120149,4614.05,DAA,SDK,A,3969.5,168,34,NGC,FOLDERV,LTTRS,2002-09-10 05:00:00,2002-10-23 04:59:00,NOT COLLATERAL
-120151,4614.49,DBB,MNV,A,3972.61,167,33,DER,FOLDERW,LTTRS,2002-09-10 06:00:00,2002-10-23 06:59:00,NOT COLLATERAL
-120153,4614.93,DCC,OKW,A,3975.72,166,32,FVG,FOLDERX,LTTRS,2002-09-10 07:00:00,2002-10-23 08:59:00,NOT COLLATERAL
-120155,4615.37,DEE,ASS,A,3978.83,165,31,KWE,FOLDERY,LTTRS,2002-09-10 08:00:00,2002-10-23 10:59:00,NOT COLLATERAL
-120157,4615.81,DFF,CKA,A,3981.94,164,30,WER,FOLDERZ,LTTRS,2002-09-10 09:00:00,2002-10-23 12:59:00,NOT COLLATERAL
-120159,4616.25,DGG,SWQ,A,3985.05,163,29,GFH,FOLDERZ,LTTRS,2002-09-10 10:00:00,2002-10-23 14:59:00,NOT COLLATERAL
-120161,4616.69,DHH,KUH,A,3988.16,162,28,BGF,FOLDERZ,LTTRS,2002-09-10 11:00:00,2002-10-23 16:59:00,NOT COLLATERAL
-120163,4617.13,AAA,XCV,A,3991.27,161,27,XCS,FOLDERZ,LTTRS,2002-09-10 12:00:00,2002-10-23 18:59:00,NOT COLLATERAL
-120165,4617.57,BBB,ZAQ,A,3994.38,160,26,JHK,FOLDERZ,LTTRS,2002-09-10 13:00:00,2002-10-23 20:59:00,COLLATERAL
-120167,4618.01,CCC,MKO,A,3997.49,159,25,SFD,FOLDERZ,LTTRS,2002-09-10 14:00:00,2002-10-23 22:59:00,COLLATERAL
-120169,4618.45,DDD,VFR,A,4000.6,158,24,WRE,FOLDERZ,LTTRZ,2002-09-10 15:00:00,2002-10-24 00:59:00,COLLATERAL
-120171,4618.89,AAB,YUJ,A,4003.71,157,23,HGV,FOLDERZ,LTTRA,2002-09-10 16:00:00,2002-10-24 02:59:00,NOT COLLATERAL
-120173,4619.33,AAC,MED,A,4006.82,156,22,KLS,FOLDERZ,LTTRB,2002-09-10 17:00:00,2002-10-24 04:59:00,NOT COLLATERAL
-120175,4619.77,AAD,SWE,A,4009.93,155,21,SDK,FOLDERZ,LTTRB,2002-09-10 18:00:00,2002-10-24 06:59:00,NOT COLLATERAL
-120177,4620.21,AAE,CVF,A,4013.04,154,20,MNV,FOLDERZ,LTTRA,2002-09-10 19:00:00,2002-10-24 08:59:00,NOT COLLATERAL
-120179,4620.65,AAF,DSFG,A,4016.15,153,19,OKW,FOLDERZ,LTTRA,2002-09-10 20:00:00,2002-10-24 10:59:00,NOT COLLATERAL
-120181,4621.09,BBA,ASDRE,A,4019.26,152,18,ASS,FOLDERZ,LTTRS,2002-09-10 21:00:00,2002-10-24 12:59:00,NOT COLLATERAL
-120183,4621.53,BBC,HJKSS,A,4022.37,151,17,CKA,FOLDERZ,LTTRZ,2002-09-10 22:00:00,2002-10-24 14:59:00,NOT COLLATERAL
-120185,4621.97,BBE,KHAA,A,4025.48,150,16,SWQ,FOLDERX,LTTRS,2002-09-10 23:00:00,2002-10-24 16:59:00,NOT COLLATERAL
-133567,4622.41,BBF,KSLD,A,4028.59,149,15,KUH,FOLDERX,LTTRS,2002-09-11 00:00:00,2002-10-24 18:59:00,NOT COLLATERAL
-133578,4622.85,BBG,EKID,A,4031.7,148,14,XCV,FOLDERX,LTTRS,2002-09-11 01:00:00,2002-10-24 20:59:00,COLLATERAL
-133589,4623.29,BBH,VNCD,A,4034.81,147,13,ZAQ,FOLDERX,LTTRS,2002-09-11 02:00:00,2002-10-24 22:59:00,COLLATERAL
-133600,4623.73,CCA,DKD,A,4037.92,146,12,MKO,FOLDERX,LTTRS,2002-09-11 03:00:00,2002-10-25 00:59:00,COLLATERAL
-133611,4624.17,CCB,FKF,A,4041.03,145,11,VFR,FOLDERX,LTTRS,2002-09-11 04:00:00,2002-10-25 02:59:00,NOT COLLATERAL
-133622,4624.61,CCD,LES,A,4044.14,144,10,YUJ,FOLDERX,LTTRS,2002-09-11 05:00:00,2002-10-25 04:59:00,NOT COLLATERAL
-133633,4625.05,CCE,KLD,A,4047.25,143,9,AAA,FOLDERX,LTTRS,2002-09-11 06:00:00,2002-10-25 06:59:00,NOT COLLATERAL
-133644,4625.49,CCF,SKL,A,4050.36,142,8,BBB,FOLDERX,LTTRS,2002-09-11 07:00:00,2002-10-25 08:59:00,NOT COLLATERAL
-133655,4625.93,CCG,SIW,A,4053.47,141,7,CCC,FOLDERX,LTTRS,2002-09-11 08:00:00,2002-10-25 10:59:00,NOT COLLATERAL
-133666,4626.37,CCH,CKA,A,4056.58,140,6,DDD,FOLDERX,LTTRS,2002-09-11 09:00:00,2002-10-25 12:59:00,NOT COLLATERAL
-133677,4626.81,CCI,LDE,A,4059.69,139,5,AAB,FOLDERX,LTTRS,2002-09-11 10:00:00,2002-10-25 14:59:00,NOT COLLATERAL
-133688,4627.25,CCJ,KFF,A,4062.8,138,4,AAC,FOLDERR,LTTRS,2002-09-11 11:00:00,2002-10-25 16:59:00,NOT COLLATERAL
-133699,4627.69,DDD,EFH,A,4065.91,137,3,AAD,FOLDERS,LTTRS,2002-09-11 12:00:00,2002-10-25 18:59:00,NOT COLLATERAL
-133710,4628.13,DDA,NGC,A,4069.02,136,1,AAE,FOLDERX,LTTRZ,2002-09-11 13:00:00,2002-10-25 20:59:00,COLLATERAL
-133721,4628.57,DAA,DER,A,4072.13,135,2,AAF,FOLDERR,LTTRA,2002-09-11 14:00:00,2002-10-25 22:59:00,COLLATERAL
-133732,4629.01,DBB,FVG,A,4075.24,134,3,BBA,FOLDERS,LTTRB,2002-09-11 15:00:00,2002-10-26 00:59:00,COLLATERAL
-133743,4629.45,DCC,KWE,A,4078.35,133,4,BBC,FOLDERX,LTTRB,2002-09-11 16:00:00,2002-10-26 02:59:00,NOT COLLATERAL
-133754,4629.89,DEE,WER,A,4081.46,132,5,BBE,FOLDERR,LTTRA,2002-09-11 17:00:00,2002-10-26 04:59:00,NOT COLLATERAL
-133765,4630.33,DFF,GFH,A,4084.57,131,6,BBF,FOLDERS,LTTRA,2002-09-11 18:00:00,2002-10-26 06:59:00,NOT COLLATERAL
-133776,4630.77,DGG,BGF,A,4087.68,130,7,BBG,FOLDERX,LTTRS,2002-09-11 19:00:00,2002-10-26 08:59:00,NOT COLLATERAL
-133787,4631.21,DHH,XCS,A,4090.79,129,8,BBH,FOLDERR,LTTRZ,2002-09-11 20:00:00,2002-10-26 10:59:00,NOT COLLATERAL
-133798,4631.65,AAA,JHK,A,4093.9,128,9,CCA,FOLDERS,LTTRS,2002-09-11 21:00:00,2002-10-26 12:59:00,NOT COLLATERAL
-133809,4632.09,BBB,SFD,A,4097.01,127,10,CCB,FOLDERX,LTTRS,2002-09-11 22:00:00,2002-10-26 14:59:00,NOT COLLATERAL
-133820,4632.53,CCC,WRE,A,4100.12,126,11,CCD,FOLDERR,LTTRS,2002-09-11 23:00:00,2002-10-26 16:59:00,NOT COLLATERAL
-133831,4632.97,DDD,HGV,A,4103.23,125,12,CCE,FOLDERS,LTTRS,2002-09-12 00:00:00,2002-10-26 18:59:00,NOT COLLATERAL
-133842,4633.41,AAB,KLS,A,4106.34,124,13,CCF,FOLDERX,LTTRS,2002-09-12 01:00:00,2002-10-26 20:59:00,COLLATERAL
-133853,4633.85,AAC,SDK,A,4109.45,123,14,CCG,FOLDERD,LTTRS,2002-09-12 02:00:00,2002-10-26 22:59:00,COLLATERAL
-133864,4634.29,AAD,MNV,A,4112.56,122,15,CCH,FOLDERE,LTTRS,2002-09-12 03:00:00,2002-10-27 00:59:00,COLLATERAL
-133875,4634.73,AAE,OKW,A,4115.67,121,16,CCI,FOLDERF,LTTRS,2002-09-12 04:00:00,2002-10-27 02:59:00,NOT COLLATERAL
-133886,4635.17,AAF,ASS,A,4118.78,120,17,CCJ,FOLDERG,LTTRS,2002-09-12 05:00:00,2002-10-27 04:59:00,NOT COLLATERAL
-133897,4635.61,BBA,CKA,A,4121.89,119,18,DDD,FOLDERH,LTTRS,2002-09-12 06:00:00,2002-10-27 06:59:00,NOT COLLATERAL
-133908,4636.05,BBC,SWQ,A,4125,118,19,DDA,FOLDERI,LTTRS,2002-09-12 07:00:00,2002-10-27 08:59:00,NOT COLLATERAL
-133919,4636.49,BBE,KUH,A,4128.11,117,20,DAA,FOLDERJ,LTTRS,2002-09-12 08:00:00,2002-10-27 10:59:00,NOT COLLATERAL
-133930,4636.93,BBF,XCV,A,4131.22,116,21,FKF,FOLDERK,LTTRS,2002-09-12 09:00:00,2002-10-27 12:59:00,NOT COLLATERAL
-133941,4637.37,BBG,ZAQ,A,4134.33,115,22,LES,FOLDERL,LTTRS,2002-09-12 10:00:00,2002-10-27 14:59:00,NOT COLLATERAL
-133952,4637.81,BBH,MKO,A,4137.44,114,23,KLD,FOLDERM,LTTRZ,2002-09-12 11:00:00,2002-10-27 16:59:00,NOT COLLATERAL
-133963,4638.25,CCA,VFR,A,4140.55,113,24,SKL,FOLDERN,LTTRA,2002-09-12 12:00:00,2002-10-27 18:59:00,NOT COLLATERAL
-133974,4638.69,CCB,YUJ,A,4143.66,112,25,SIW,FOLDERN,LTTRB,2002-09-12 13:00:00,2002-10-27 20:59:00,COLLATERAL
-133985,4639.13,CCD,MED,A,4146.77,111,26,CKA,FOLDERN,LTTRB,2002-09-12 14:00:00,2002-10-27 22:59:00,COLLATERAL
-133996,4639.57,CCE,SWE,A,4149.88,110,27,LDE,FOLDERN,LTTRA,2002-09-12 15:00:00,2002-10-28 00:59:00,COLLATERAL
-134007,4640.01,CCF,CVF,A,4152.99,109,28,KFF,FOLDERL,LTTRA,2002-09-12 16:00:00,2002-10-28 02:59:00,NOT COLLATERAL
-134018,4640.45,CCG,DSFG,A,4156.1,108,29,EFH,FOLDERL,LTTRS,2002-09-12 17:00:00,2002-10-28 04:59:00,NOT COLLATERAL
-134029,4640.89,CCH,ASDRE,A,4159.21,107,30,NGC,FOLDERL,LTTRZ,2002-09-12 18:00:00,2002-10-28 06:59:00,NOT COLLATERAL
-134040,4641.33,CCI,HJKSS,A,4162.32,106,31,DER,FOLDERL,LTTRS,2002-09-12 19:00:00,2002-10-28 08:59:00,NOT COLLATERAL
-134051,4641.77,CCJ,KHAA,A,4165.43,105,32,FVG,FOLDERL,LTTRS,2002-09-12 20:00:00,2002-10-28 10:59:00,NOT COLLATERAL
-134062,4642.21,DDD,KSLD,A,4168.54,104,33,KWE,FOLDERA,LTTRS,2002-09-12 21:00:00,2002-10-28 12:59:00,NOT COLLATERAL
-134073,4642.65,DDA,EKID,A,4171.65,103,34,WER,FOLDERB,LTTRS,2002-09-12 22:00:00,2002-10-28 14:59:00,NOT COLLATERAL
-134084,4643.09,DAA,VNCD,A,4174.76,102,35,GFH,FOLDERC,LTTRS,2002-09-12 23:00:00,2002-10-28 16:59:00,NOT COLLATERAL
-134095,4643.53,DBB,DKD,A,4177.87,101,36,BGF,FOLDERD,LTTRS,2002-09-13 00:00:00,2002-10-28 18:59:00,NOT COLLATERAL
-134106,4643.97,DCC,FKF,A,4180.98,100,37,XCS,FOLDERE,LTTRS,2002-09-13 01:00:00,2002-10-28 20:59:00,COLLATERAL
-134117,4644.41,DEE,LES,A,4184.09,99,38,JHK,FOLDERF,LTTRS,2002-09-13 02:00:00,2002-10-28 22:59:00,COLLATERAL
-134128,4644.85,DFF,KLD,A,4187.2,98,39,SFD,FOLDERG,LTTRS,2002-09-13 03:00:00,2002-10-29 00:59:00,COLLATERAL
-134139,4645.29,DGG,SKL,A,4190.31,97,40,WRE,FOLDERH,LTTRS,2002-09-13 04:00:00,2002-10-29 02:59:00,NOT COLLATERAL
-134150,4645.73,DHH,SIW,A,4193.42,96,41,HGV,FOLDERI,LTTRS,2002-09-13 05:00:00,2002-10-29 04:59:00,NOT COLLATERAL
-134161,4646.17,AAA,CKA,A,4196.53,95,42,KLS,FOLDERJ,LTTRS,2002-09-13 06:00:00,2002-10-29 06:59:00,NOT COLLATERAL
-134172,4646.61,BBB,LDE,A,4199.64,94,43,SDK,FOLDERK,LTTRS,2002-09-13 07:00:00,2002-10-29 08:59:00,NOT COLLATERAL
-134183,4647.05,CCC,KFF,A,4202.75,93,44,MNV,FOLDERL,LTTRS,2002-09-13 08:00:00,2002-10-29 10:59:00,NOT COLLATERAL
-134194,4647.49,DDD,EFH,A,4205.86,92,45,OKW,FOLDERM,LTTRZ,2002-09-13 09:00:00,2002-10-29 12:59:00,NOT COLLATERAL
-134205,4647.93,AAB,NGC,A,4208.97,91,46,ASS,FOLDERN,LTTRA,2002-09-13 10:00:00,2002-10-29 14:59:00,NOT COLLATERAL
-134216,4648.37,AAC,DER,A,4212.08,90,47,CKA,FOLDERO,LTTRB,2002-09-13 11:00:00,2002-10-29 16:59:00,NOT COLLATERAL
-134227,4648.81,AAD,FVG,A,4215.19,89,48,SWQ,FOLDERP,LTTRB,2002-09-13 12:00:00,2002-10-29 18:59:00,NOT COLLATERAL
-134238,4649.25,AAE,KWE,A,4218.3,88,49,KUH,FOLDERQ,LTTRA,2002-09-13 13:00:00,2002-10-29 20:59:00,COLLATERAL
-134249,4649.69,AAF,WER,A,4221.41,87,48,XCV,FOLDERR,LTTRA,2002-09-13 14:00:00,2002-10-29 22:59:00,COLLATERAL
-134260,4650.13,BBA,GFH,A,4224.52,86,47,ZAQ,FOLDERS,LTTRS,2002-09-13 15:00:00,2002-10-30 00:59:00,COLLATERAL
-134271,4650.57,BBC,BGF,A,4227.63,85,46,MKO,FOLDERT,LTTRZ,2002-09-13 16:00:00,2002-10-30 02:59:00,NOT COLLATERAL
-134282,4651.01,BBE,XCS,A,4230.74,84,45,VFR,FOLDERU,LTTRS,2002-09-13 17:00:00,2002-10-30 04:59:00,NOT COLLATERAL
-134293,4651.45,BBF,JHK,A,4233.85,83,44,YUJ,FOLDERV,LTTRS,2002-09-13 18:00:00,2002-10-30 06:59:00,NOT COLLATERAL
-134304,4651.89,BBG,SFD,A,4236.96,82,43,AAA,FOLDERW,LTTRS,2002-09-13 19:00:00,2002-10-30 08:59:00,NOT COLLATERAL
-134315,4652.33,BBH,WRE,A,4240.07,81,42,BBB,FOLDERX,LTTRS,2002-09-13 20:00:00,2002-10-30 10:59:00,NOT COLLATERAL
-134326,4652.77,CCA,HGV,A,4243.18,80,41,CCC,FOLDERY,LTTRS,2002-09-13 21:00:00,2002-10-30 12:59:00,NOT COLLATERAL
-134337,4653.21,CCB,KLS,A,4246.29,79,40,DDD,FOLDERZ,LTTRS,2002-09-13 22:00:00,2002-10-30 14:59:00,NOT COLLATERAL
-134348,4653.65,CCD,SDK,A,4249.4,78,39,AAB,FOLDERA,LTTRS,2002-09-13 23:00:00,2002-10-30 16:59:00,NOT COLLATERAL
-134359,4654.09,CCE,MNV,A,4252.51,77,38,AAC,FOLDERB,LTTRS,2002-09-14 00:00:00,2002-10-30 18:59:00,NOT COLLATERAL
-134370,4654.53,CCF,OKW,A,4255.62,76,37,AAD,FOLDERC,LTTRS,2002-09-14 01:00:00,2002-10-30 20:59:00,COLLATERAL
-134381,4654.97,CCG,ASS,A,4258.73,75,36,AAE,FOLDERD,LTTRS,2002-09-14 02:00:00,2002-10-30 22:59:00,COLLATERAL
-134392,4655.41,CCH,CKA,A,4261.84,74,35,AAF,FOLDERE,LTTRS,2002-09-14 03:00:00,2002-10-31 00:59:00,COLLATERAL
-134403,4655.85,CCI,SWQ,A,4264.95,73,34,BBA,FOLDERF,LTTRS,2002-09-14 04:00:00,2002-10-31 02:59:00,NOT COLLATERAL
-134414,4656.29,CCJ,KUH,A,4268.06,72,33,BBC,FOLDERG,LTTRS,2002-09-14 05:00:00,2002-10-31 04:59:00,NOT COLLATERAL
-134425,4656.73,DDD,XCV,A,4271.17,71,32,BBE,FOLDERH,LTTRS,2002-09-14 06:00:00,2002-10-31 06:59:00,NOT COLLATERAL
-134436,4657.17,DDA,ZAQ,A,4274.28,70,31,BBF,FOLDERI,LTTRZ,2002-09-14 07:00:00,2002-10-31 08:59:00,NOT COLLATERAL
-134447,4657.61,DAA,MKO,A,4277.39,69,30,BBG,FOLDERJ,LTTRA,2002-09-14 08:00:00,2002-10-31 10:59:00,NOT COLLATERAL
-134458,4658.05,DBB,VFR,A,4280.5,68,29,BBH,FOLDERK,LTTRB,2002-09-14 09:00:00,2002-10-31 12:59:00,NOT COLLATERAL
-134469,4658.49,DCC,YUJ,A,4283.61,67,28,CCA,FOLDERL,LTTRB,2002-09-14 10:00:00,2002-10-31 14:59:00,NOT COLLATERAL
-134480,4658.93,DEE,MED,A,4286.72,66,27,CCB,FOLDERM,LTTRA,2002-09-14 11:00:00,2002-10-31 16:59:00,NOT COLLATERAL
-134491,4659.37,DFF,SWE,A,4289.83,65,26,CCD,FOLDERN,LTTRA,2002-09-14 12:00:00,2002-10-31 18:59:00,NOT COLLATERAL
-134502,4659.81,DGG,CVF,A,4292.94,64,25,CCE,FOLDERO,LTTRS,2002-09-14 13:00:00,2002-10-31 20:59:00,COLLATERAL
-134513,4660.25,DHH,DSFG,A,4296.05,63,24,CCF,FOLDERP,LTTRZ,2002-09-14 14:00:00,2002-10-31 22:59:00,COLLATERAL
-134524,4660.69,AAA,ASDRE,A,4299.16,62,23,CCG,FOLDERQ,LTTRS,2002-09-14 15:00:00,2002-11-01 00:59:00,COLLATERAL
-134535,4661.13,BBB,HJKSS,A,4302.27,61,22,CCH,FOLDERR,LTTRS,2002-09-14 16:00:00,2002-11-01 02:59:00,NOT COLLATERAL
-134546,4661.57,CCC,KHAA,A,4305.38,60,21,CCI,FOLDERS,LTTRS,2002-09-14 17:00:00,2002-11-01 04:59:00,NOT COLLATERAL
-134557,4662.01,DDD,KSLD,A,4308.49,59,20,CCJ,FOLDERT,LTTRS,2002-09-14 18:00:00,2002-11-01 06:59:00,NOT COLLATERAL
-134568,4662.45,AAB,EKID,A,4311.6,58,19,DDD,FOLDERU,LTTRS,2002-09-14 19:00:00,2002-11-01 08:59:00,NOT COLLATERAL
-134579,4662.89,AAC,VNCD,A,4314.71,57,18,DDA,FOLDERV,LTTRS,2002-09-14 20:00:00,2002-11-01 10:59:00,NOT COLLATERAL
-134590,4663.33,AAD,DKD,A,4317.82,56,17,DAA,FOLDERW,LTTRS,2002-09-14 21:00:00,2002-11-01 12:59:00,NOT COLLATERAL
-134601,4663.77,AAE,FKF,A,4320.93,55,16,FKF,FOLDERX,LTTRS,2002-09-14 22:00:00,2002-11-01 14:59:00,NOT COLLATERAL
-134612,4664.21,AAF,LES,A,4324.04,54,15,LES,FOLDERY,LTTRS,2002-09-14 23:00:00,2002-11-01 16:59:00,NOT COLLATERAL
-134623,4664.65,BBA,KLD,A,4327.15,53,14,KLD,FOLDERZ,LTTRS,2002-09-15 00:00:00,2002-11-01 18:59:00,NOT COLLATERAL
-134634,4665.09,BBC,SKL,A,4330.26,52,13,SKL,FOLDERZ,LTTRS,2002-09-15 01:00:00,2002-11-01 20:59:00,COLLATERAL
-134645,4665.53,BBE,SIW,A,4333.37,51,12,SIW,FOLDERZ,LTTRS,2002-09-15 02:00:00,2002-11-01 22:59:00,COLLATERAL
-134656,4665.97,BBF,CKA,A,4336.48,50,11,CKA,FOLDERZ,LTTRS,2002-09-15 03:00:00,2002-11-02 00:59:00,COLLATERAL
-134667,4666.41,BBG,LDE,A,4339.59,49,10,LDE,FOLDERZ,LTTRS,2002-09-15 04:00:00,2002-11-02 02:59:00,NOT COLLATERAL
-134678,4666.85,BBH,KFF,A,4342.7,48,9,KFF,FOLDERZ,LTTRZ,2002-09-15 05:00:00,2002-11-02 04:59:00,NOT COLLATERAL
-134689,4667.29,CCA,EFH,A,4345.81,47,8,EFH,FOLDERZ,LTTRA,2002-09-15 06:00:00,2002-11-02 06:59:00,NOT COLLATERAL
-134700,4667.73,CCB,NGC,A,4348.92,46,7,NGC,FOLDERZ,LTTRB,2002-09-15 07:00:00,2002-11-02 08:59:00,NOT COLLATERAL
-134711,4668.17,CCD,DER,A,4352.03,45,6,DER,FOLDERZ,LTTRB,2002-09-15 08:00:00,2002-11-02 10:59:00,NOT COLLATERAL
-134722,4668.61,CCE,FVG,A,4355.14,44,5,FVG,FOLDERZ,LTTRA,2002-09-15 09:00:00,2002-11-02 12:59:00,NOT COLLATERAL
-134733,4669.05,CCF,KWE,A,4358.25,43,4,KWE,FOLDERZ,LTTRA,2002-09-15 10:00:00,2002-11-02 14:59:00,NOT COLLATERAL
-134744,4669.49,CCG,WER,A,4361.36,42,3,WER,FOLDERZ,LTTRS,2002-09-15 11:00:00,2002-11-02 16:59:00,NOT COLLATERAL
-134755,4669.93,CCH,GFH,A,4364.47,41,1,GFH,FOLDERZ,LTTRZ,2002-09-15 12:00:00,2002-11-02 18:59:00,NOT COLLATERAL
-134766,4670.37,CCI,BGF,A,4367.58,40,2,BGF,FOLDERZ,LTTRS,2002-09-15 13:00:00,2002-11-02 20:59:00,COLLATERAL
-134777,4670.81,CCJ,XCS,A,4370.69,39,3,XCS,FOLDERX,LTTRS,2002-09-15 14:00:00,2002-11-02 22:59:00,COLLATERAL
-134788,4671.25,DDD,JHK,A,4373.8,38,4,JHK,FOLDERX,LTTRS,2002-09-15 15:00:00,2002-11-03 00:59:00,COLLATERAL
-134799,4671.69,DDA,SFD,A,4376.91,37,5,SFD,FOLDERX,LTTRS,2002-09-15 16:00:00,2002-11-03 02:59:00,NOT COLLATERAL
-134810,4672.13,DAA,WRE,A,4380.02,36,6,WRE,FOLDERX,LTTRS,2002-09-15 17:00:00,2002-11-03 04:59:00,NOT COLLATERAL
-134821,4672.57,DBB,HGV,A,4383.13,35,7,HGV,FOLDERX,LTTRS,2002-09-15 18:00:00,2002-11-03 06:59:00,NOT COLLATERAL
-134832,4673.01,DCC,KLS,A,4386.24,34,8,KLS,FOLDERX,LTTRS,2002-09-15 19:00:00,2002-11-03 08:59:00,NOT COLLATERAL
-134843,4673.45,DEE,SDK,A,4389.35,33,9,SDK,FOLDERX,LTTRS,2002-09-15 20:00:00,2002-11-03 10:59:00,NOT COLLATERAL
-134854,4673.89,DFF,MNV,A,4392.46,32,10,MNV,FOLDERX,LTTRS,2002-09-15 21:00:00,2002-11-03 12:59:00,NOT COLLATERAL
-134865,4674.33,DGG,OKW,A,4395.57,31,11,OKW,FOLDERX,LTTRS,2002-09-15 22:00:00,2002-11-03 14:59:00,NOT COLLATERAL
-134876,4674.77,DHH,ASS,A,4398.68,30,12,ASS,FOLDERX,LTTRS,2002-09-15 23:00:00,2002-11-03 16:59:00,NOT COLLATERAL
-134887,4675.21,AAA,CKA,A,4401.79,29,13,CKA,FOLDERX,LTTRS,2002-09-16 00:00:00,2002-11-03 18:59:00,NOT COLLATERAL
-134898,4675.65,BBB,SWQ,A,4404.9,28,14,SWQ,FOLDERX,LTTRS,2002-09-16 01:00:00,2002-11-03 20:59:00,COLLATERAL
-134909,4676.09,CCC,KUH,A,4408.01,27,15,KUH,FOLDERR,LTTRS,2002-09-16 02:00:00,2002-11-03 22:59:00,COLLATERAL
-134920,4676.53,DDD,XCV,A,4411.12,26,16,XCV,FOLDERS,LTTRZ,2002-09-16 03:00:00,2002-11-04 00:59:00,COLLATERAL
-134931,4676.97,AAB,ZAQ,A,4414.23,25,17,ZAQ,FOLDERX,LTTRA,2002-09-16 04:00:00,2002-11-04 02:59:00,NOT COLLATERAL
-134942,4677.41,AAC,MKO,A,4417.34,24,18,MKO,FOLDERR,LTTRB,2002-09-16 05:00:00,2002-11-04 04:59:00,NOT COLLATERAL
-134953,4677.85,AAD,VFR,A,4420.45,23,19,VFR,FOLDERS,LTTRB,2002-09-16 06:00:00,2002-11-04 06:59:00,NOT COLLATERAL
-134964,4678.29,AAE,YUJ,A,4423.56,22,20,YUJ,FOLDERX,LTTRA,2002-09-16 07:00:00,2002-11-04 08:59:00,NOT COLLATERAL
-134975,4678.73,AAF,MED,A,4426.67,21,21,AAA,FOLDERR,LTTRA,2002-09-16 08:00:00,2002-11-04 10:59:00,NOT COLLATERAL
-134986,4679.17,BBA,SWE,A,4429.78,24,22,BBB,FOLDERS,LTTRS,2002-09-16 09:00:00,2002-11-04 12:59:00,NOT COLLATERAL
-134997,4679.61,BBC,CVF,A,4432.89,27,23,CCC,FOLDERX,LTTRZ,2002-09-16 10:00:00,2002-11-04 14:59:00,NOT COLLATERAL
-135008,4680.05,BBE,DSFG,A,4436,30,24,DDD,FOLDERR,LTTRS,2002-09-16 11:00:00,2002-11-04 16:59:00,NOT COLLATERAL
-135019,4680.49,BBF,ASDRE,A,4439.11,33,25,AAB,FOLDERS,LTTRS,2002-09-16 12:00:00,2002-11-04 18:59:00,NOT COLLATERAL
-135030,4680.93,BBG,HJKSS,A,4442.22,36,26,AAC,FOLDERX,LTTRS,2002-09-16 13:00:00,2002-11-04 20:59:00,COLLATERAL
-135041,4681.37,BBH,KHAA,A,4445.33,39,27,AAD,FOLDERR,LTTRS,2002-09-16 14:00:00,2002-11-04 22:59:00,COLLATERAL
-135052,4681.81,CCA,KSLD,A,4448.44,42,28,AAE,FOLDERS,LTTRS,2002-09-16 15:00:00,2002-11-05 00:59:00,COLLATERAL
-135063,4682.25,CCB,EKID,A,4451.55,45,29,AAF,FOLDERX,LTTRS,2002-09-16 16:00:00,2002-11-05 02:59:00,NOT COLLATERAL
-135074,4682.69,CCD,VNCD,A,4454.66,48,30,BBA,FOLDERD,LTTRS,2002-09-16 17:00:00,2002-11-05 04:59:00,NOT COLLATERAL
-135085,4683.13,CCE,DKD,A,4457.77,51,31,BBC,FOLDERE,LTTRS,2002-09-16 18:00:00,2002-11-05 06:59:00,NOT COLLATERAL
-135096,4683.57,CCF,FKF,A,4460.88,54,32,BBE,FOLDERF,LTTRS,2002-09-16 19:00:00,2002-11-05 08:59:00,NOT COLLATERAL
-135107,4684.01,CCG,LES,A,4463.99,57,33,BBF,FOLDERG,LTTRS,2002-09-16 20:00:00,2002-11-05 10:59:00,NOT COLLATERAL
-135118,4684.45,CCH,KLD,A,4467.1,60,34,BBG,FOLDERH,LTTRS,2002-09-16 21:00:00,2002-11-05 12:59:00,NOT COLLATERAL
-135129,4684.89,CCI,SKL,A,4470.21,63,35,BBH,FOLDERI,LTTRS,2002-09-16 22:00:00,2002-11-05 14:59:00,NOT COLLATERAL
-135140,4685.33,CCJ,SIW,A,4473.32,66,36,CCA,FOLDERJ,LTTRS,2002-09-16 23:00:00,2002-11-05 16:59:00,NOT COLLATERAL
-135151,4685.77,DDD,CKA,A,4476.43,69,37,CCB,FOLDERK,LTTRS,2002-09-17 00:00:00,2002-11-05 18:59:00,NOT COLLATERAL
-135162,4686.21,DDA,LDE,A,4479.54,72,38,CCD,FOLDERL,LTTRZ,2002-09-17 01:00:00,2002-11-05 20:59:00,COLLATERAL
-135173,4686.65,DAA,KFF,A,4482.65,75,39,CCE,FOLDERM,LTTRA,2002-09-17 02:00:00,2002-11-05 22:59:00,COLLATERAL
-135184,4687.09,DBB,EFH,A,4485.76,78,40,CCF,FOLDERN,LTTRB,2002-09-17 03:00:00,2002-11-06 00:59:00,COLLATERAL
-135195,4687.53,DCC,NGC,A,4488.87,81,41,CCG,FOLDERN,LTTRB,2002-09-17 04:00:00,2002-11-06 02:59:00,NOT COLLATERAL
-135206,4687.97,DEE,DER,A,4491.98,84,42,CCH,FOLDERN,LTTRA,2002-09-17 05:00:00,2002-11-06 04:59:00,NOT COLLATERAL
-135217,4688.41,DFF,FVG,A,4495.09,87,43,CCI,FOLDERN,LTTRA,2002-09-17 06:00:00,2002-11-06 06:59:00,NOT COLLATERAL
-135228,4688.85,DGG,KWE,A,4498.2,90,44,CCJ,FOLDERL,LTTRS,2002-09-17 07:00:00,2002-11-06 08:59:00,NOT COLLATERAL
-135239,4689.29,DHH,WER,A,4501.31,93,45,DDD,FOLDERL,LTTRZ,2002-09-17 08:00:00,2002-11-06 10:59:00,NOT COLLATERAL
-135250,4689.73,AAA,GFH,A,4504.42,96,46,DDA,FOLDERL,LTTRS,2002-09-17 09:00:00,2002-11-06 12:59:00,NOT COLLATERAL
-135261,4690.17,BBB,BGF,A,4507.53,99,47,DAA,FOLDERL,LTTRS,2002-09-17 10:00:00,2002-11-06 14:59:00,NOT COLLATERAL
-135272,4690.61,CCC,XCS,A,4510.64,102,48,FKF,FOLDERL,LTTRS,2002-09-17 11:00:00,2002-11-06 16:59:00,NOT COLLATERAL
-135283,4691.05,DDD,JHK,A,4513.75,105,49,LES,FOLDERA,LTTRS,2002-09-17 12:00:00,2002-11-06 18:59:00,NOT COLLATERAL
-135294,4691.49,AAB,SFD,A,4516.86,108,48,KLD,FOLDERB,LTTRS,2002-09-17 13:00:00,2002-11-06 20:59:00,COLLATERAL
-135305,4691.93,AAC,WRE,A,4519.97,111,47,SKL,FOLDERC,LTTRS,2002-09-17 14:00:00,2002-11-06 22:59:00,COLLATERAL
-135316,4692.37,AAD,HGV,A,4523.08,114,46,SIW,FOLDERD,LTTRS,2002-09-17 15:00:00,2002-11-07 00:59:00,COLLATERAL
-135327,4692.81,AAE,KLS,A,4526.19,117,45,CKA,FOLDERE,LTTRS,2002-09-17 16:00:00,2002-11-07 02:59:00,NOT COLLATERAL
-135338,4693.25,AAF,SDK,A,4529.3,120,44,LDE,FOLDERF,LTTRS,2002-09-17 17:00:00,2002-11-07 04:59:00,NOT COLLATERAL
-135349,4693.69,BBA,MNV,A,4532.41,123,43,KFF,FOLDERG,LTTRS,2002-09-17 18:00:00,2002-11-07 06:59:00,NOT COLLATERAL
-135360,4694.13,BBC,OKW,A,4535.52,126,42,EFH,FOLDERH,LTTRS,2002-09-17 18:59:00,2002-11-07 08:59:00,NOT COLLATERAL
-135371,4694.57,BBE,ASS,A,4538.63,129,41,NGC,FOLDERI,LTTRS,2002-09-17 19:59:00,2002-11-07 10:59:00,NOT COLLATERAL
-135382,4695.01,BBF,CKA,A,4541.74,132,40,DER,FOLDERJ,LTTRS,2002-09-17 20:59:00,2002-11-07 12:59:00,NOT COLLATERAL
-135393,4695.45,BBG,SWQ,A,4544.85,135,39,FVG,FOLDERK,LTTRS,2002-09-17 21:59:00,2002-11-07 14:59:00,NOT COLLATERAL
-135404,4695.89,BBH,KUH,A,4547.96,138,38,KWE,FOLDERL,LTTRZ,2002-09-17 22:59:00,2002-11-07 16:59:00,NOT COLLATERAL
-135415,4696.33,CCA,XCV,A,4551.07,141,37,WER,FOLDERM,LTTRA,2002-09-17 23:59:00,2002-11-07 18:59:00,NOT COLLATERAL
-135426,4696.77,CCB,ZAQ,A,4554.18,144,36,GFH,FOLDERN,LTTRB,2002-09-18 00:59:00,2002-11-07 20:59:00,COLLATERAL
-135437,4697.21,CCD,MKO,A,4557.29,147,35,BGF,FOLDERO,LTTRB,2002-09-18 01:59:00,2002-11-07 22:59:00,COLLATERAL
-135448,4697.65,CCE,VFR,A,4560.4,150,34,XCS,FOLDERP,LTTRA,2002-09-18 02:59:00,2002-11-08 00:59:00,COLLATERAL
-135459,4698.09,CCF,YUJ,A,4563.51,153,33,JHK,FOLDERQ,LTTRA,2002-09-18 03:59:00,2002-11-08 02:59:00,NOT COLLATERAL
-135470,4698.53,CCG,MED,A,4566.62,156,32,SFD,FOLDERR,LTTRS,2002-09-18 04:59:00,2002-11-08 04:59:00,NOT COLLATERAL
-135481,4698.97,CCH,SWE,A,4569.73,159,31,WRE,FOLDERS,LTTRZ,2002-09-18 05:59:00,2002-11-08 06:59:00,NOT COLLATERAL
-135492,4699.41,CCI,CVF,A,4572.84,162,30,HGV,FOLDERT,LTTRS,2002-09-18 06:59:00,2002-11-08 08:59:00,NOT COLLATERAL
-135503,4699.85,CCJ,DSFG,A,4575.95,165,29,KLS,FOLDERU,LTTRS,2002-09-18 07:59:00,2002-11-08 10:59:00,NOT COLLATERAL
-135514,4700.29,DDD,ASDRE,A,4579.06,168,28,SDK,FOLDERV,LTTRS,2002-09-18 08:59:00,2002-11-08 12:59:00,NOT COLLATERAL
-135525,4700.73,DDA,HJKSS,A,4582.17,171,27,MNV,FOLDERW,LTTRS,2002-09-18 09:59:00,2002-11-08 14:59:00,NOT COLLATERAL
-135536,4701.17,DAA,KHAA,A,4585.28,174,26,OKW,FOLDERX,LTTRS,2002-09-18 10:59:00,2002-11-08 16:59:00,NOT COLLATERAL
-135547,4701.61,DBB,KSLD,A,4588.39,177,25,ASS,FOLDERY,LTTRS,2002-09-18 11:59:00,2002-11-08 18:59:00,NOT COLLATERAL
-135558,4702.05,DCC,EKID,A,4591.5,180,24,CKA,FOLDERZ,LTTRS,2002-09-18 12:59:00,2002-11-08 20:59:00,COLLATERAL
-135569,4702.49,DEE,VNCD,A,4594.61,183,23,SWQ,FOLDERA,LTTRS,2002-09-18 13:59:00,2002-11-08 22:59:00,COLLATERAL
-135580,4702.93,DFF,DKD,A,4597.72,186,22,KUH,FOLDERB,LTTRS,2002-09-18 14:59:00,2002-11-09 00:59:00,COLLATERAL
-135591,4703.37,DGG,FKF,A,4600.83,189,21,XCV,FOLDERC,LTTRS,2002-09-18 15:59:00,2002-11-09 02:59:00,NOT COLLATERAL
-135602,4703.81,DHH,LES,A,4603.94,192,20,ZAQ,FOLDERD,LTTRS,2002-09-18 16:59:00,2002-11-09 04:59:00,NOT COLLATERAL
-135613,4704.25,AAA,KLD,A,4607.05,195,19,MKO,FOLDERE,LTTRS,2002-09-18 17:59:00,2002-11-09 06:59:00,NOT COLLATERAL
-135624,4704.69,BBB,SKL,A,4610.16,198,18,VFR,FOLDERF,LTTRS,2002-09-18 18:59:00,2002-11-09 08:59:00,NOT COLLATERAL
-135635,4705.13,CCC,SIW,A,4613.27,201,17,YUJ,FOLDERG,LTTRS,2002-09-18 19:59:00,2002-11-09 10:59:00,NOT COLLATERAL
-135646,4705.57,DDD,CKA,A,4616.38,204,16,AAA,FOLDERH,LTTRZ,2002-09-18 20:59:00,2002-11-09 12:59:00,NOT COLLATERAL
-135657,4706.01,AAB,LDE,A,4619.49,207,15,BBB,FOLDERI,LTTRA,2002-09-18 21:59:00,2002-11-09 14:59:00,NOT COLLATERAL
-135668,4706.45,AAC,KFF,A,4622.6,210,14,CCC,FOLDERJ,LTTRB,2002-09-18 22:59:00,2002-11-09 16:59:00,NOT COLLATERAL
-135679,4706.89,AAD,EFH,A,4625.71,213,13,DDD,FOLDERK,LTTRB,2002-09-18 23:59:00,2002-11-09 18:59:00,NOT COLLATERAL
-135690,4707.33,AAE,NGC,A,4628.82,216,12,AAB,FOLDERL,LTTRA,2002-09-19 00:59:00,2002-11-09 20:59:00,COLLATERAL
-135701,4707.77,AAF,DER,A,4631.93,219,11,AAC,FOLDERM,LTTRA,2002-09-19 01:59:00,2002-11-09 22:59:00,COLLATERAL
-135712,4708.21,BBA,FVG,A,4635.04,222,10,AAD,FOLDERN,LTTRS,2002-09-19 02:59:00,2002-11-10 00:59:00,COLLATERAL
-135723,4708.65,BBC,KWE,A,4638.15,225,9,AAE,FOLDERO,LTTRZ,2002-09-19 03:59:00,2002-11-10 02:59:00,NOT COLLATERAL
-135734,4709.09,BBE,WER,A,4641.26,228,8,AAF,FOLDERP,LTTRS,2002-09-19 04:59:00,2002-11-10 04:59:00,NOT COLLATERAL
-135745,4709.53,BBF,GFH,A,4644.37,231,7,BBA,FOLDERQ,LTTRS,2002-09-19 05:59:00,2002-11-10 06:59:00,NOT COLLATERAL
-135756,4709.97,BBG,BGF,A,4647.48,234,6,BBC,FOLDERR,LTTRS,2002-09-19 06:59:00,2002-11-10 08:59:00,NOT COLLATERAL
-135767,4710.41,BBH,XCS,A,4650.59,237,5,BBE,FOLDERS,LTTRS,2002-09-19 07:59:00,2002-11-10 10:59:00,NOT COLLATERAL
-135778,4710.85,CCA,JHK,A,4653.7,240,4,BBF,FOLDERT,LTTRS,2002-09-19 08:59:00,2002-11-10 12:59:00,NOT COLLATERAL
-135789,4711.29,CCB,SFD,A,4656.81,243,3,BBG,FOLDERU,LTTRS,2002-09-19 09:59:00,2002-11-10 14:59:00,NOT COLLATERAL
-135800,4711.73,CCD,WRE,A,4659.92,246,1,BBH,FOLDERV,LTTRS,2002-09-19 10:59:00,2002-11-10 16:59:00,NOT COLLATERAL
-135811,4712.17,CCE,HGV,A,4663.03,249,2,CCA,FOLDERW,LTTRS,2002-09-19 11:59:00,2002-11-10 18:59:00,NOT COLLATERAL
-135822,4712.61,CCF,KLS,A,4666.14,252,3,CCB,FOLDERX,LTTRS,2002-09-19 12:59:00,2002-11-10 20:59:00,COLLATERAL
-135833,4713.05,CCG,SDK,A,4669.25,255,4,CCD,FOLDERY,LTTRS,2002-09-19 13:59:00,2002-11-10 22:59:00,COLLATERAL
-135844,4713.49,CCH,MNV,A,4672.36,258,5,CCE,FOLDERZ,LTTRS,2002-09-19 14:59:00,2002-11-11 00:59:00,COLLATERAL
-135855,4713.93,CCI,OKW,A,4675.47,261,6,CCF,FOLDERZ,LTTRS,2002-09-19 15:59:00,2002-11-11 02:59:00,NOT COLLATERAL
-135866,4714.37,CCJ,ASS,A,4678.58,264,7,CCG,FOLDERZ,LTTRS,2002-09-19 16:59:00,2002-11-11 04:59:00,NOT COLLATERAL
-135877,4714.81,DDD,CKA,A,4681.69,267,8,CCH,FOLDERZ,LTTRS,2002-09-19 17:59:00,2002-11-11 06:59:00,NOT COLLATERAL
-135888,4715.25,DDA,SWQ,A,4684.8,270,9,CCI,FOLDERZ,LTTRZ,2002-09-19 18:59:00,2002-11-11 08:59:00,NOT COLLATERAL
-135899,4715.69,DAA,KUH,A,4687.91,273,10,CCJ,FOLDERZ,LTTRA,2002-09-19 19:59:00,2002-11-11 10:59:00,NOT COLLATERAL
-135910,4716.13,DBB,XCV,A,4691.02,276,11,DDD,FOLDERZ,LTTRB,2002-09-19 20:59:00,2002-11-11 12:59:00,NOT COLLATERAL
-135921,4716.57,DCC,ZAQ,A,4694.13,279,12,DDA,FOLDERZ,LTTRB,2002-09-19 21:59:00,2002-11-11 14:59:00,NOT COLLATERAL
-135932,4717.01,DEE,MKO,A,4697.24,282,13,DAA,FOLDERZ,LTTRA,2002-09-19 22:59:00,2002-11-11 16:59:00,NOT COLLATERAL
-135943,4717.45,DFF,VFR,A,4700.35,285,14,FKF,FOLDERZ,LTTRA,2002-09-19 23:59:00,2002-11-11 18:59:00,NOT COLLATERAL
-135954,4717.89,DGG,YUJ,A,4703.46,288,15,LES,FOLDERZ,LTTRS,2002-09-20 00:59:00,2002-11-11 20:59:00,COLLATERAL
-135965,4718.33,DHH,MED,A,4706.57,291,16,KLD,FOLDERZ,LTTRZ,2002-09-20 01:59:00,2002-11-11 22:59:00,COLLATERAL
-135976,4718.77,AAA,SWE,A,4709.68,294,17,SKL,FOLDERZ,LTTRS,2002-09-20 02:59:00,2002-11-12 00:59:00,COLLATERAL
-135987,4719.21,BBB,CVF,A,4712.79,297,18,SIW,FOLDERZ,LTTRS,2002-09-20 03:59:00,2002-11-12 02:59:00,NOT COLLATERAL
-135998,4719.65,CCC,DSFG,A,4715.9,300,19,CKA,FOLDERX,LTTRS,2002-09-20 04:59:00,2002-11-12 04:59:00,NOT COLLATERAL
-136009,4720.09,DDD,ASDRE,A,4719.01,303,20,LDE,FOLDERX,LTTRS,2002-09-20 05:59:00,2002-11-12 06:59:00,NOT COLLATERAL
-136020,4720.53,AAB,HJKSS,A,4722.12,306,21,KFF,FOLDERX,LTTRS,2002-09-20 06:59:00,2002-11-12 08:59:00,NOT COLLATERAL
-136031,4720.97,AAC,KHAA,A,4725.23,309,22,EFH,FOLDERX,LTTRS,2002-09-20 07:59:00,2002-11-12 10:59:00,NOT COLLATERAL
-136042,4721.41,AAD,KSLD,A,4728.34,312,23,NGC,FOLDERX,LTTRS,2002-09-20 08:59:00,2002-11-12 12:59:00,NOT COLLATERAL
-136053,4721.85,AAE,EKID,A,4731.45,315,24,DER,FOLDERX,LTTRS,2002-09-20 09:59:00,2002-11-12 14:59:00,NOT COLLATERAL
-136064,4722.29,AAF,VNCD,A,4734.56,318,25,FVG,FOLDERX,LTTRS,2002-09-20 10:59:00,2002-11-12 16:59:00,NOT COLLATERAL
-136075,4722.73,BBA,DKD,A,4737.67,321,26,KWE,FOLDERX,LTTRS,2002-09-20 11:59:00,2002-11-12 18:59:00,NOT COLLATERAL
-136086,4723.17,BBC,FKF,A,4740.78,324,27,WER,FOLDERX,LTTRS,2002-09-20 12:59:00,2002-11-12 20:59:00,COLLATERAL
-136097,4723.61,BBE,LES,A,4743.89,327,28,GFH,FOLDERX,LTTRS,2002-09-20 13:59:00,2002-11-12 22:59:00,COLLATERAL
-136108,4724.05,BBF,KLD,A,4747,330,29,BGF,FOLDERX,LTTRS,2002-09-20 14:59:00,2002-11-13 00:59:00,COLLATERAL
-136119,4724.49,BBG,SKL,A,4750.11,333,30,XCS,FOLDERX,LTTRS,2002-09-20 15:59:00,2002-11-13 02:59:00,NOT COLLATERAL
-136130,4724.93,BBH,SIW,A,4753.22,336,31,JHK,FOLDERR,LTTRZ,2002-09-20 16:59:00,2002-11-13 04:59:00,NOT COLLATERAL
-136141,4725.37,CCA,CKA,A,4756.33,339,32,SFD,FOLDERS,LTTRA,2002-09-20 17:59:00,2002-11-13 06:59:00,NOT COLLATERAL
-136152,4725.81,CCB,LDE,A,4759.44,342,33,WRE,FOLDERX,LTTRB,2002-09-20 18:59:00,2002-11-13 08:59:00,NOT COLLATERAL
-136163,4726.25,CCD,KFF,A,4762.55,345,34,HGV,FOLDERR,LTTRB,2002-09-20 19:59:00,2002-11-13 10:59:00,NOT COLLATERAL
-136174,4726.69,CCE,EFH,A,4765.66,348,35,KLS,FOLDERS,LTTRA,2002-09-20 20:59:00,2002-11-13 12:59:00,NOT COLLATERAL
-136185,4727.13,CCF,NGC,A,4768.77,351,36,SDK,FOLDERX,LTTRA,2002-09-20 21:59:00,2002-11-13 14:59:00,NOT COLLATERAL
-136196,4727.57,CCG,DER,A,4771.88,354,37,MNV,FOLDERR,LTTRS,2002-09-20 22:59:00,2002-11-13 16:59:00,NOT COLLATERAL
-136207,4728.01,CCH,FVG,A,4774.99,357,38,OKW,FOLDERS,LTTRZ,2002-09-20 23:59:00,2002-11-13 18:59:00,NOT COLLATERAL
-136218,4728.45,CCI,KWE,A,4778.1,360,39,ASS,FOLDERX,LTTRS,2002-09-21 00:59:00,2002-11-13 20:59:00,COLLATERAL
-136229,4728.89,CCJ,WER,A,4781.21,363,40,CKA,FOLDERR,LTTRS,2002-09-21 01:59:00,2002-11-13 22:59:00,COLLATERAL
-136240,4729.33,DDD,GFH,A,4784.32,366,41,SWQ,FOLDERS,LTTRS,2002-09-21 02:59:00,2002-11-14 00:59:00,COLLATERAL
-136251,4729.77,DDA,BGF,A,4787.43,369,42,KUH,FOLDERX,LTTRS,2002-09-21 03:59:00,2002-11-14 02:59:00,NOT COLLATERAL
-136262,4730.21,DAA,XCS,A,4790.54,372,43,XCV,FOLDERR,LTTRS,2002-09-21 04:59:00,2002-11-14 04:59:00,NOT COLLATERAL
-136273,4730.65,DBB,JHK,A,4793.65,375,44,ZAQ,FOLDERS,LTTRS,2002-09-21 05:59:00,2002-11-14 06:59:00,NOT COLLATERAL
-136284,4731.09,DCC,SFD,A,4796.76,378,45,MKO,FOLDERX,LTTRS,2002-09-21 06:59:00,2002-11-14 08:59:00,NOT COLLATERAL
-136295,4731.53,DEE,WRE,A,4799.87,381,46,VFR,FOLDERD,LTTRS,2002-09-21 07:59:00,2002-11-14 10:59:00,NOT COLLATERAL
-136306,4731.97,DFF,HGV,A,4802.98,384,47,YUJ,FOLDERE,LTTRS,2002-09-21 08:59:00,2002-11-14 12:59:00,NOT COLLATERAL
-136317,4732.41,DGG,KLS,A,4806.09,387,48,AAA,FOLDERF,LTTRS,2002-09-21 09:59:00,2002-11-14 14:59:00,NOT COLLATERAL
-136328,4732.85,DHH,SDK,A,4809.2,390,49,BBB,FOLDERG,LTTRS,2002-09-21 10:59:00,2002-11-14 16:59:00,NOT COLLATERAL
-136339,4733.29,AAA,MNV,A,4812.31,393,48,CCC,FOLDERH,LTTRS,2002-09-21 11:59:00,2002-11-14 18:59:00,NOT COLLATERAL
-136350,4733.73,BBB,OKW,A,4815.42,396,47,DDD,FOLDERI,LTTRS,2002-09-21 12:59:00,2002-11-14 20:59:00,COLLATERAL
-136361,4734.17,CCC,ASS,A,4818.53,399,46,AAB,FOLDERJ,LTTRS,2002-09-21 13:59:00,2002-11-14 22:59:00,COLLATERAL
-136372,4734.61,DDD,CKA,A,4821.64,402,45,AAC,FOLDERK,LTTRZ,2002-09-21 14:59:00,2002-11-15 00:59:00,COLLATERAL
-136383,4735.05,AAB,SWQ,A,4824.75,405,44,AAD,FOLDERL,LTTRA,2002-09-21 15:59:00,2002-11-15 02:59:00,NULL
-136394,4735.49,AAC,KUH,A,4827.86,408,43,AAE,FOLDERM,LTTRB,2002-09-21 16:59:00,2002-11-15 04:59:00,NULL
-136405,4735.93,AAD,XCV,A,4830.97,402,42,AAF,FOLDERN,LTTRB,2002-09-21 17:59:00,2002-11-15 06:59:00,NULL
-136416,4736.37,AAE,ZAQ,A,4834.08,396,41,BBA,FOLDERN,LTTRA,2002-09-21 18:59:00,2002-11-15 08:59:00,NULL
-136427,4736.81,AAF,MKO,A,4837.19,390,40,BBC,FOLDERN,LTTRA,2002-09-21 19:59:00,2002-11-15 10:59:00,NULL
-136438,4737.25,BBA,VFR,A,4840.3,384,39,BBE,FOLDERN,LTTRS,2002-09-21 20:59:00,2002-11-15 12:59:00,NULL
-136449,4737.69,BBC,YUJ,A,4843.41,378,38,BBF,FOLDERL,LTTRZ,2002-09-21 21:59:00,2002-11-15 14:59:00,NULL
-136460,4738.13,BBE,MED,A,4846.52,372,37,BBG,FOLDERL,LTTRS,2002-09-21 22:59:00,2002-11-15 16:59:00,NULL
-136471,4738.57,BBF,SWE,A,4849.63,366,36,BBH,FOLDERL,LTTRS,2002-09-21 23:59:00,2002-11-15 18:59:00,NULL
-136482,4739.01,BBG,CVF,A,4852.74,360,35,CCA,FOLDERL,LTTRS,2002-09-22 00:59:00,2002-11-15 20:59:00,COLLATERAL
-136493,4739.45,BBH,DSFG,A,4855.85,354,34,CCB,FOLDERL,LTTRS,2002-09-22 01:59:00,2002-11-15 22:59:00,COLLATERAL
-136504,4739.89,CCA,ASDRE,A,4858.96,348,33,CCD,FOLDERA,LTTRS,2002-09-22 02:59:00,2002-11-16 00:59:00,COLLATERAL
-136515,4740.33,CCB,HJKSS,A,4862.07,342,32,CCE,FOLDERB,LTTRS,2002-09-22 03:59:00,2002-11-16 02:59:00,NULL
-136526,4740.77,CCD,KHAA,A,4865.18,336,31,CCF,FOLDERC,LTTRS,2002-09-22 04:59:00,2002-11-16 04:59:00,NULL
-136537,4741.21,CCE,KSLD,A,4868.29,330,30,CCG,FOLDERD,LTTRS,2002-09-22 05:59:00,2002-11-16 06:59:00,NULL
-136548,4741.65,CCF,EKID,A,4871.4,324,29,CCH,FOLDERE,LTTRS,2002-09-22 06:59:00,2002-11-16 08:59:00,NULL
-136559,4742.09,CCG,VNCD,A,4874.51,318,28,CCI,FOLDERF,LTTRS,2002-09-22 07:59:00,2002-11-16 10:59:00,NULL
-136570,4742.53,CCH,DKD,A,4877.62,312,27,CCJ,FOLDERG,LTTRS,2002-09-22 08:59:00,2002-11-16 12:59:00,NULL
-136581,4742.97,CCI,FKF,A,4880.73,306,26,DDD,FOLDERH,LTTRS,2002-09-22 09:59:00,2002-11-16 14:59:00,NULL
-136592,4743.41,CCJ,LES,A,4883.84,300,25,DDA,FOLDERI,LTTRS,2002-09-22 10:59:00,2002-11-16 16:59:00,NULL
-136603,4743.85,DDD,KLD,A,4886.95,294,24,DAA,FOLDERJ,LTTRS,2002-09-22 11:59:00,2002-11-16 18:59:00,NULL
-136614,4744.29,DDA,SKL,A,4890.06,288,23,FKF,FOLDERK,LTTRZ,2002-09-22 12:59:00,2002-11-16 20:59:00,COLLATERAL
-136625,4744.73,DAA,SIW,A,4893.17,282,22,LES,FOLDERL,LTTRA,2002-09-22 13:59:00,2002-11-16 22:59:00,COLLATERAL
-136636,4745.17,DBB,CKA,A,4896.28,276,21,KLD,FOLDERM,LTTRB,2002-09-22 14:59:00,2002-11-17 00:59:00,COLLATERAL
-136647,4745.61,DCC,LDE,A,4899.39,270,20,SKL,FOLDERN,LTTRB,2002-09-22 15:59:00,2002-11-17 02:59:00,NOT COLLATERAL
-136658,4746.05,DEE,KFF,A,4902.5,264,19,SIW,FOLDERO,LTTRA,2002-09-22 16:59:00,2002-11-17 04:59:00,NOT COLLATERAL
-136669,4746.49,DFF,EFH,A,4905.61,258,18,CKA,FOLDERP,LTTRA,2002-09-22 17:59:00,2002-11-17 06:59:00,NOT COLLATERAL
-136680,4746.93,DGG,NGC,A,4908.72,252,17,LDE,FOLDERQ,LTTRS,2002-09-22 18:59:00,2002-11-17 08:59:00,NOT COLLATERAL
-136691,4747.37,DHH,DER,A,4911.83,246,16,KFF,FOLDERR,LTTRZ,2002-09-22 19:59:00,2002-11-17 10:59:00,NOT COLLATERAL
-136702,4747.81,AAA,FVG,A,4914.94,240,15,EFH,FOLDERS,LTTRS,2002-09-22 20:59:00,2002-11-17 12:59:00,NOT COLLATERAL
-136713,4748.25,BBB,KWE,A,4918.05,234,14,NGC,FOLDERT,LTTRS,2002-09-22 21:59:00,2002-11-17 14:59:00,NOT COLLATERAL
-136724,4748.69,CCC,WER,A,4921.16,228,13,DER,FOLDERU,LTTRS,2002-09-22 22:59:00,2002-11-17 16:59:00,NOT COLLATERAL
-136735,4749.13,DDD,GFH,A,4924.27,222,12,FVG,FOLDERV,LTTRS,2002-09-22 23:59:00,2002-11-17 18:59:00,NOT COLLATERAL
-136746,4749.57,AAB,BGF,A,4927.38,216,11,KWE,FOLDERW,LTTRS,2002-09-23 00:59:00,2002-11-17 20:59:00,COLLATERAL
-136757,4750.01,AAC,XCS,A,4930.49,210,10,WER,FOLDERX,LTTRS,2002-09-23 01:59:00,2002-11-17 22:59:00,COLLATERAL
-136768,4750.45,AAD,JHK,A,4933.6,204,9,GFH,FOLDERY,LTTRS,2002-09-23 02:59:00,2002-11-18 00:59:00,COLLATERAL
-136779,4750.89,AAE,SFD,A,4936.71,198,8,BGF,FOLDERZ,LTTRS,2002-09-23 03:59:00,2002-11-18 02:59:00,NOT COLLATERAL
-136790,4751.33,AAF,WRE,A,4939.82,192,7,XCS,FOLDERA,LTTRS,2002-09-23 04:59:00,2002-11-18 04:59:00,NOT COLLATERAL
-136801,4751.77,BBA,HGV,A,4942.93,186,6,JHK,FOLDERB,LTTRS,2002-09-23 05:59:00,2002-11-18 06:59:00,NOT COLLATERAL
-136812,4752.21,BBC,KLS,A,4946.04,180,5,SFD,FOLDERC,LTTRS,2002-09-23 06:59:00,2002-11-18 08:59:00,NOT COLLATERAL
-136823,4752.65,BBE,SDK,A,4949.15,174,4,WRE,FOLDERD,LTTRS,2002-09-23 07:59:00,2002-11-18 10:59:00,NOT COLLATERAL
-136834,4753.09,BBF,MNV,A,4952.26,168,3,HGV,FOLDERE,LTTRS,2002-09-23 08:59:00,2002-11-18 12:59:00,NOT COLLATERAL
-136845,4753.53,BBG,OKW,A,4955.37,162,1,KLS,FOLDERF,LTTRS,2002-09-23 09:59:00,2002-11-18 14:59:00,NOT COLLATERAL
-136856,4753.97,BBH,ASS,A,4958.48,156,2,SDK,FOLDERG,LTTRZ,2002-09-23 10:59:00,2002-11-18 16:59:00,NOT COLLATERAL
-136867,4754.41,CCA,CKA,A,4961.59,150,3,MNV,FOLDERH,LTTRA,2002-09-23 11:59:00,2002-11-18 18:59:00,NOT COLLATERAL
-136878,4754.85,CCB,SWQ,A,4964.7,144,4,OKW,FOLDERI,LTTRB,2002-09-23 12:59:00,2002-11-18 20:59:00,COLLATERAL
-136889,4755.29,CCD,KUH,A,4967.81,138,5,ASS,FOLDERJ,LTTRB,2002-09-23 13:59:00,2002-11-18 22:59:00,COLLATERAL
-136900,4755.73,CCE,XCV,A,4970.92,132,6,CKA,FOLDERK,LTTRA,2002-09-23 14:59:00,2002-11-19 00:59:00,COLLATERAL
-136911,4756.17,CCF,ZAQ,A,4974.03,126,7,SWQ,FOLDERL,LTTRA,2002-09-23 15:59:00,2002-11-19 02:59:00,NOT COLLATERAL
-136922,4756.61,CCG,MKO,A,4977.14,120,8,KUH,FOLDERM,LTTRS,2002-09-23 16:59:00,2002-11-19 04:59:00,NOT COLLATERAL
-136933,4757.05,CCH,VFR,A,4980.25,114,9,XCV,FOLDERN,LTTRZ,2002-09-23 17:59:00,2002-11-19 06:59:00,NOT COLLATERAL
-136944,4757.49,CCI,YUJ,A,4983.36,108,10,ZAQ,FOLDERO,LTTRS,2002-09-23 18:59:00,2002-11-19 08:59:00,NOT COLLATERAL
-136955,4757.93,CCJ,MED,A,4986.47,102,11,MKO,FOLDERP,LTTRS,2002-09-23 19:59:00,2002-11-19 10:59:00,NOT COLLATERAL
-136966,4758.37,DDD,SWE,A,4989.58,96,12,VFR,FOLDERQ,LTTRS,2002-09-23 20:59:00,2002-11-19 12:59:00,NOT COLLATERAL
-136977,4758.81,DDA,CVF,A,4992.69,90,13,YUJ,FOLDERR,LTTRS,2002-09-23 21:59:00,2002-11-19 14:59:00,NOT COLLATERAL
-136988,4759.25,DAA,DSFG,A,4995.8,91,14,AAA,FOLDERS,LTTRS,2002-09-23 22:59:00,2002-11-19 16:59:00,NOT COLLATERAL
-136999,4759.69,DBB,ASDRE,A,4998.91,91,15,BBB,FOLDERT,LTTRS,2002-09-23 23:59:00,2002-11-19 18:59:00,NOT COLLATERAL
-137010,4760.13,DCC,HJKSS,A,5002.02,91,16,CCC,FOLDERU,LTTRS,2002-09-24 00:59:00,2002-11-19 20:59:00,COLLATERAL
-137021,4760.57,DEE,KHAA,A,5005.13,91,17,DDD,FOLDERV,LTTRS,2002-09-24 01:59:00,2002-11-19 22:59:00,COLLATERAL
-137032,4761.01,DFF,KSLD,A,5008.24,91,18,AAB,FOLDERW,LTTRS,2002-09-24 02:59:00,2002-11-20 00:59:00,COLLATERAL
-137043,4761.45,DGG,EKID,A,5011.35,91,19,AAC,FOLDERX,LTTRS,2002-09-24 03:59:00,2002-11-20 02:59:00,NOT COLLATERAL
-137054,4761.89,DHH,VNCD,A,5014.46,91,20,AAD,FOLDERY,LTTRS,2002-09-24 04:59:00,2002-11-20 04:59:00,NOT COLLATERAL
-137065,4762.33,AAA,DKD,A,5017.57,91,21,AAE,FOLDERZ,LTTRS,2002-09-24 05:59:00,2002-11-20 06:59:00,NOT COLLATERAL
-137076,4762.77,BBB,FKF,A,5020.68,91,22,AAF,FOLDERZ,LTTRS,2002-09-24 06:59:00,2002-11-20 08:59:00,NOT COLLATERAL
-137087,4763.21,CCC,LES,A,5023.79,91,23,BBA,FOLDERZ,LTTRS,2002-09-24 07:59:00,2002-11-20 10:59:00,NOT COLLATERAL
-137098,4763.65,DDD,KLD,A,5026.9,92,24,BBC,FOLDERZ,LTTRZ,2002-09-24 08:59:00,2002-11-20 12:59:00,NOT COLLATERAL
-137109,4764.09,AAB,SKL,A,5030.01,93,25,BBE,FOLDERZ,LTTRA,2002-09-24 09:59:00,2002-11-20 14:59:00,NOT COLLATERAL
-137120,4764.53,AAC,SIW,A,5033.12,94,26,BBF,FOLDERZ,LTTRB,2002-09-24 10:59:00,2002-11-20 16:59:00,NOT COLLATERAL
-137131,4764.97,AAD,CKA,A,5036.23,95,27,BBG,FOLDERZ,LTTRB,2002-09-24 11:59:00,2002-11-20 18:59:00,NOT COLLATERAL
-137142,4765.41,AAE,LDE,A,5039.34,96,28,BBH,FOLDERZ,LTTRA,2002-09-24 12:59:00,2002-11-20 20:59:00,COLLATERAL
-137153,4765.85,AAF,KFF,A,5042.45,97,29,CCA,FOLDERZ,LTTRA,2002-09-24 13:59:00,2002-11-20 22:59:00,COLLATERAL
-137164,4766.29,BBA,EFH,A,5045.56,98,30,CCB,FOLDERZ,LTTRS,2002-09-24 14:59:00,2002-11-21 00:59:00,COLLATERAL
-137175,4766.73,BBC,NGC,A,5048.67,99,31,CCD,FOLDERZ,LTTRZ,2002-09-24 15:59:00,2002-11-21 02:59:00,NOT COLLATERAL
-137186,4767.17,BBE,DER,A,5051.78,100,32,CCE,FOLDERZ,LTTRS,2002-09-24 16:59:00,2002-11-21 04:59:00,NOT COLLATERAL
-137197,4767.61,BBF,FVG,A,5054.89,101,33,CCF,FOLDERZ,LTTRS,2002-09-24 17:59:00,2002-11-21 06:59:00,NOT COLLATERAL
-137208,4768.05,BBG,KWE,A,5058,102,34,CCG,FOLDERZ,LTTRS,2002-09-24 18:59:00,2002-11-21 08:59:00,NOT COLLATERAL
-137219,4768.49,BBH,WER,A,5061.11,103,35,CCH,FOLDERX,LTTRS,2002-09-24 19:59:00,2002-11-21 10:59:00,NOT COLLATERAL
-137230,4768.93,CCA,GFH,A,5064.22,104,36,CCI,FOLDERX,LTTRS,2002-09-24 20:59:00,2002-11-21 12:59:00,NOT COLLATERAL
-137241,4769.37,CCB,BGF,A,5067.33,105,37,CCJ,FOLDERX,LTTRS,2002-09-24 21:59:00,2002-11-21 14:59:00,NOT COLLATERAL
-137252,4769.81,CCD,XCS,A,5070.44,106,38,DDD,FOLDERX,LTTRS,2002-09-24 22:59:00,2002-11-21 16:59:00,NOT COLLATERAL
-137263,4770.25,CCE,JHK,A,5073.55,107,39,DDA,FOLDERX,LTTRS,2002-09-24 23:59:00,2002-11-21 18:59:00,NOT COLLATERAL
-137274,4770.69,CCF,SFD,A,5076.66,108,40,DAA,FOLDERX,LTTRS,2002-09-25 00:59:00,2002-11-21 20:59:00,COLLATERAL
-137285,4771.13,CCG,WRE,A,5079.77,109,41,FKF,FOLDERX,LTTRS,2002-09-25 01:59:00,2002-11-21 22:59:00,COLLATERAL
-137296,4771.57,CCH,HGV,A,5082.88,110,42,LES,FOLDERX,LTTRS,2002-09-25 02:59:00,2002-11-22 00:59:00,COLLATERAL
-137307,4772.01,CCI,KLS,A,5085.99,111,43,KLD,FOLDERX,LTTRS,2002-09-25 03:59:00,2002-11-22 02:59:00,NOT COLLATERAL
-137318,4772.45,CCJ,SDK,A,5089.1,112,44,SKL,FOLDERX,LTTRS,2002-09-25 04:59:00,2002-11-22 04:59:00,NOT COLLATERAL
-137329,4772.89,DDD,MNV,A,5092.21,113,45,SIW,FOLDERX,LTTRS,2002-09-25 05:59:00,2002-11-22 06:59:00,NOT COLLATERAL
-137340,4773.33,DDA,OKW,A,5095.32,114,46,CKA,FOLDERX,LTTRZ,2002-09-25 06:59:00,2002-11-22 08:59:00,NOT COLLATERAL
-137351,4773.77,DAA,ASS,A,5098.43,115,47,LDE,FOLDERR,LTTRA,2002-09-25 07:59:00,2002-11-22 10:59:00,NOT COLLATERAL
-137362,4774.21,DBB,CKA,A,5101.54,116,48,KFF,FOLDERS,LTTRB,2002-09-25 08:59:00,2002-11-22 12:59:00,NOT COLLATERAL
-137373,4774.65,DCC,SWQ,A,5104.65,117,49,EFH,FOLDERX,LTTRB,2002-09-25 09:59:00,2002-11-22 14:59:00,NOT COLLATERAL
-137384,4775.09,DEE,KUH,A,5107.76,118,48,NGC,FOLDERR,LTTRA,2002-09-25 10:59:00,2002-11-22 16:59:00,NOT COLLATERAL
-137395,4775.53,DFF,XCV,A,5110.87,119,47,DER,FOLDERS,LTTRA,2002-09-25 11:59:00,2002-11-22 18:59:00,NOT COLLATERAL
-137406,4775.97,DGG,ZAQ,A,5113.98,120,46,FVG,FOLDERX,LTTRS,2002-09-25 12:59:00,2002-11-22 20:59:00,COLLATERAL
-137417,4776.41,DHH,MKO,A,5117.09,121,45,KWE,FOLDERR,LTTRZ,2002-09-25 13:59:00,2002-11-22 22:59:00,COLLATERAL
-137428,4776.85,AAA,VFR,A,5120.2,122,44,WER,FOLDERS,LTTRS,2002-09-25 14:59:00,2002-11-23 00:59:00,COLLATERAL
-137439,4777.29,BBB,YUJ,A,5123.31,123,43,GFH,FOLDERX,LTTRS,2002-09-25 15:59:00,2002-11-23 02:59:00,NOT COLLATERAL
-137450,4777.73,CCC,MED,A,5126.42,124,42,BGF,FOLDERR,LTTRS,2002-09-25 16:59:00,2002-11-23 04:59:00,NOT COLLATERAL
-137461,4778.17,DDD,SWE,A,5129.53,125,41,XCS,FOLDERS,LTTRS,2002-09-25 17:59:00,2002-11-23 06:59:00,NOT COLLATERAL
-137472,4778.61,AAB,CVF,A,5132.64,126,40,JHK,FOLDERX,LTTRS,2002-09-25 18:59:00,2002-11-23 08:59:00,NOT COLLATERAL
-137483,4779.05,AAC,DSFG,A,5135.75,127,39,SFD,FOLDERR,LTTRS,2002-09-25 19:59:00,2002-11-23 10:59:00,NOT COLLATERAL
-137494,4779.49,AAD,ASDRE,A,5138.86,128,38,WRE,FOLDERS,LTTRS,2002-09-25 20:59:00,2002-11-23 12:59:00,NOT COLLATERAL
-137505,4779.93,AAE,HJKSS,A,5141.97,129,37,HGV,FOLDERX,LTTRS,2002-09-25 21:59:00,2002-11-23 14:59:00,NOT COLLATERAL
-137516,4780.37,AAF,KHAA,A,5145.08,130,36,KLS,FOLDERD,LTTRS,2002-09-25 22:59:00,2002-11-23 16:59:00,NOT COLLATERAL
-137527,4780.81,BBA,KSLD,A,5148.19,131,35,SDK,FOLDERE,LTTRS,2002-09-25 23:59:00,2002-11-23 18:59:00,NOT COLLATERAL
-137538,4781.25,BBC,EKID,A,5151.3,132,34,MNV,FOLDERF,LTTRS,2002-09-26 00:59:00,2002-11-23 20:59:00,COLLATERAL
-137549,4781.69,BBE,VNCD,A,5154.41,133,33,OKW,FOLDERG,LTTRS,2002-09-26 01:59:00,2002-11-23 22:59:00,COLLATERAL
-137560,4782.13,BBF,DKD,A,5157.52,134,32,ASS,FOLDERH,LTTRS,2002-09-26 02:59:00,2002-11-24 00:59:00,COLLATERAL
-137571,4782.57,BBG,FKF,A,5160.63,135,31,CKA,FOLDERI,LTTRS,2002-09-26 03:59:00,2002-11-24 02:59:00,NOT COLLATERAL
-137582,4783.01,BBH,LES,A,5163.74,136,30,SWQ,FOLDERJ,LTTRZ,2002-09-26 04:59:00,2002-11-24 04:59:00,NOT COLLATERAL
-137593,4783.45,CCA,KLD,A,5166.85,137,29,KUH,FOLDERK,LTTRA,2002-09-26 05:58:00,2002-11-24 06:59:00,NOT COLLATERAL
-137604,4783.89,CCB,SKL,A,5169.96,138,28,XCV,FOLDERL,LTTRB,2002-09-26 06:58:00,2002-11-24 08:59:00,NOT COLLATERAL
-137615,4784.33,CCD,SIW,A,5173.07,139,27,ZAQ,FOLDERM,LTTRB,2002-09-26 07:58:00,2002-11-24 10:59:00,NOT COLLATERAL
-137626,4784.77,CCE,CKA,A,5176.18,140,26,MKO,FOLDERN,LTTRA,2002-09-26 08:58:00,2002-11-24 12:59:00,NOT COLLATERAL
-137637,4785.21,CCF,LDE,A,5179.29,141,25,VFR,FOLDERN,LTTRA,2002-09-26 09:58:00,2002-11-24 14:59:00,NOT COLLATERAL
-137648,4785.65,CCG,KFF,A,5182.4,142,24,YUJ,FOLDERN,LTTRS,2002-09-26 10:58:00,2002-11-24 16:59:00,NOT COLLATERAL
-137659,4786.09,CCH,EFH,A,5185.51,143,23,AAA,FOLDERN,LTTRZ,2002-09-26 11:58:00,2002-11-24 18:59:00,NOT COLLATERAL
-137670,4786.53,CCI,NGC,A,5188.62,144,22,BBB,FOLDERL,LTTRS,2002-09-26 12:58:00,2002-11-24 20:59:00,COLLATERAL
-137681,4786.97,CCJ,DER,A,5191.73,145,21,CCC,FOLDERL,LTTRS,2002-09-26 13:58:00,2002-11-24 22:59:00,COLLATERAL
-137692,4787.41,DDD,FVG,A,5194.84,146,20,DDD,FOLDERL,LTTRS,2002-09-26 14:58:00,2002-11-25 00:59:00,COLLATERAL
-137703,4787.85,DDA,KWE,A,5197.95,147,19,AAB,FOLDERL,LTTRS,2002-09-26 15:58:00,2002-11-25 02:59:00,NULL
-137714,4788.29,DAA,WER,A,5201.06,148,18,AAC,FOLDERL,LTTRS,2002-09-26 16:58:00,2002-11-25 04:59:00,NULL
-137725,4788.73,DBB,GFH,A,5204.17,149,17,AAD,FOLDERA,LTTRS,2002-09-26 17:58:00,2002-11-25 06:59:00,NULL
-137736,4789.17,DCC,BGF,A,5207.28,150,16,AAE,FOLDERB,LTTRS,2002-09-26 18:58:00,2002-11-25 08:59:00,NULL
-137747,4789.61,DEE,XCS,A,5210.39,151,15,AAF,FOLDERC,LTTRS,2002-09-26 19:58:00,2002-11-25 10:59:00,NULL
-137758,4790.05,DFF,JHK,A,5213.5,152,14,BBA,FOLDERD,LTTRS,2002-09-26 20:58:00,2002-11-25 12:59:00,NULL
-137769,4790.49,DGG,SFD,A,5216.61,153,13,BBC,FOLDERE,LTTRS,2002-09-26 21:58:00,2002-11-25 14:59:00,NULL
-137780,4790.93,DHH,WRE,A,5219.72,154,12,BBE,FOLDERF,LTTRS,2002-09-26 22:58:00,2002-11-25 16:59:00,NULL
-137791,4791.37,AAA,HGV,A,5222.83,155,11,BBF,FOLDERG,LTTRS,2002-09-26 23:58:00,2002-11-25 18:59:00,NULL
-137802,4791.81,BBB,KLS,A,5225.94,156,10,BBG,FOLDERH,LTTRS,2002-09-27 00:58:00,2002-11-25 20:59:00,COLLATERAL
-137813,4792.25,CCC,SDK,A,5229.05,157,9,BBH,FOLDERI,LTTRS,2002-09-27 01:58:00,2002-11-25 22:59:00,COLLATERAL
-137824,4792.69,DDD,MNV,A,5232.16,158,8,CCA,FOLDERJ,LTTRZ,2002-09-27 02:58:00,2002-11-26 00:59:00,COLLATERAL
-137835,4793.13,AAB,OKW,A,5235.27,159,7,CCB,FOLDERK,LTTRA,2002-09-27 03:58:00,2002-11-26 02:59:00,NULL
-137846,4793.57,AAC,ASS,A,5238.38,160,6,CCD,FOLDERL,LTTRB,2002-09-27 04:58:00,2002-11-26 04:59:00,NULL
-137857,4794.01,AAD,CKA,A,5241.49,161,5,CCE,FOLDERM,LTTRB,2002-09-27 05:58:00,2002-11-26 06:59:00,NULL
-137868,4794.45,AAE,SWQ,A,5244.6,162,4,CCF,FOLDERN,LTTRA,2002-09-27 06:58:00,2002-11-26 08:59:00,NULL
-137879,4794.89,AAF,KUH,A,5247.71,163,3,CCG,FOLDERO,LTTRA,2002-09-27 07:58:00,2002-11-26 10:59:00,NULL
-137890,4795.33,BBA,XCV,A,5250.82,164,1,CCH,FOLDERP,LTTRS,2002-09-27 08:58:00,2002-11-26 12:59:00,NULL
-137901,4795.77,BBC,ZAQ,A,5253.93,165,2,CCI,FOLDERQ,LTTRZ,2002-09-27 09:58:00,2002-11-26 14:59:00,NULL
-137912,4796.21,BBE,MKO,A,5257.04,166,3,CCJ,FOLDERR,LTTRS,2002-09-27 10:58:00,2002-11-26 16:59:00,NULL
-137923,4796.65,BBF,VFR,A,5260.15,167,4,DDD,FOLDERS,LTTRS,2002-09-27 11:58:00,2002-11-26 18:59:00,NULL
-137934,4797.09,BBG,YUJ,A,5263.26,168,5,DDA,FOLDERT,LTTRS,2002-09-27 12:58:00,2002-11-26 20:59:00,COLLATERAL
-137945,4797.53,BBH,MED,A,5266.37,169,6,DAA,FOLDERU,LTTRS,2002-09-27 13:58:00,2002-11-26 22:59:00,COLLATERAL
-137956,4797.97,CCA,SWE,A,5269.48,170,7,FKF,FOLDERV,LTTRS,2002-09-27 14:58:00,2002-11-27 00:59:00,COLLATERAL
-137967,4798.41,CCB,CVF,A,5272.59,171,8,LES,FOLDERW,LTTRS,2002-09-27 15:58:00,2002-11-27 02:59:00,NULL
-137978,4798.85,CCD,DSFG,A,5275.7,172,9,KLD,FOLDERX,LTTRS,2002-09-27 16:58:00,2002-11-27 04:59:00,NULL
-137989,4799.29,CCE,ASDRE,A,5278.81,173,10,SKL,FOLDERY,LTTRS,2002-09-27 17:58:00,2002-11-27 06:59:00,NULL
-138000,4799.73,CCF,HJKSS,A,5281.92,174,11,SIW,FOLDERZ,LTTRS,2002-09-27 18:58:00,2002-11-27 08:59:00,NULL
-138011,4800.17,CCG,KHAA,A,5285.03,175,12,CKA,FOLDERA,LTTRS,2002-09-27 19:58:00,2002-11-27 10:59:00,NULL
-138022,4800.61,CCH,KSLD,A,5288.14,176,13,LDE,FOLDERB,LTTRS,2002-09-27 20:58:00,2002-11-27 12:59:00,NULL
-138033,4801.05,CCI,EKID,A,5291.25,177,14,KFF,FOLDERC,LTTRS,2002-09-27 21:58:00,2002-11-27 14:59:00,NULL
-138044,4801.49,CCJ,VNCD,A,5294.36,178,15,EFH,FOLDERD,LTTRS,2002-09-27 22:58:00,2002-11-27 16:59:00,NULL
-138055,4801.93,DDD,DKD,A,5297.47,179,16,NGC,FOLDERE,LTTRS,2002-09-27 23:58:00,2002-11-27 18:59:00,NULL
-138066,4802.37,DDA,FKF,A,5300.58,180,17,DER,FOLDERF,LTTRZ,2002-09-28 00:58:00,2002-11-27 20:59:00,COLLATERAL
-138077,4802.81,DAA,LES,A,5303.69,181,18,FVG,FOLDERG,LTTRA,2002-09-28 01:58:00,2002-11-27 22:59:00,COLLATERAL
-138088,4803.25,DBB,KLD,A,5306.8,182,19,KWE,FOLDERH,LTTRB,2002-09-28 02:58:00,2002-11-28 00:59:00,COLLATERAL
-138099,4803.69,DCC,SKL,A,5309.91,183,20,WER,FOLDERI,LTTRB,2002-09-28 03:58:00,2002-11-28 02:59:00,NULL
-138110,4804.13,DEE,SIW,A,5313.02,184,21,GFH,FOLDERJ,LTTRA,2002-09-28 04:58:00,2002-11-28 04:59:00,NULL
-138121,4804.57,DFF,CKA,A,5316.13,185,22,BGF,FOLDERK,LTTRA,2002-09-28 05:58:00,2002-11-28 06:59:00,NULL
-138132,4805.01,DGG,LDE,A,5319.24,186,23,XCS,FOLDERL,LTTRS,2002-09-28 06:58:00,2002-11-28 08:59:00,NULL
-138143,4805.45,DHH,KFF,A,5322.35,187,24,JHK,FOLDERM,LTTRZ,2002-09-28 07:58:00,2002-11-28 10:59:00,NULL
-138154,4805.89,AAA,EFH,A,5325.46,188,25,SFD,FOLDERN,LTTRS,2002-09-28 08:58:00,2002-11-28 12:59:00,NULL
-138165,4806.33,BBB,NGC,A,5328.57,189,26,WRE,FOLDERO,LTTRS,2002-09-28 09:58:00,2002-11-28 14:59:00,NULL
-138176,4806.77,CCC,DER,A,5331.68,190,27,HGV,FOLDERP,LTTRS,2002-09-28 10:58:00,2002-11-28 16:59:00,NULL
-138187,4807.21,DDD,FVG,A,5334.79,191,28,KLS,FOLDERQ,LTTRS,2002-09-28 11:58:00,2002-11-28 18:59:00,NULL
-138198,4807.65,AAB,KWE,A,5337.9,192,29,SDK,FOLDERR,LTTRS,2002-09-28 12:58:00,2002-11-28 20:59:00,COLLATERAL
-138209,4808.09,AAC,WER,A,5341.01,193,30,MNV,FOLDERS,LTTRS,2002-09-28 13:58:00,2002-11-28 22:59:00,COLLATERAL
-138220,4808.53,AAD,GFH,A,5344.12,194,31,OKW,FOLDERT,LTTRS,2002-09-28 14:58:00,2002-11-29 00:59:00,COLLATERAL
-138231,4808.97,AAE,BGF,A,5347.23,195,32,ASS,FOLDERU,LTTRS,2002-09-28 15:58:00,2002-11-29 02:59:00,NULL
-138242,4809.41,AAF,XCS,A,5350.34,196,33,CKA,FOLDERV,LTTRS,2002-09-28 16:58:00,2002-11-29 04:59:00,NULL
-138253,4809.85,BBA,JHK,A,5353.45,197,34,SWQ,FOLDERW,LTTRS,2002-09-28 17:58:00,2002-11-29 06:59:00,NULL
-138264,4810.29,BBC,SFD,A,5356.56,198,35,KUH,FOLDERX,LTTRS,2002-09-28 18:58:00,2002-11-29 08:59:00,NULL
-138275,4810.73,BBE,WRE,A,5359.67,199,36,XCV,FOLDERY,LTTRS,2002-09-28 19:58:00,2002-11-29 10:59:00,NULL
-138286,4811.17,BBF,HGV,A,5362.78,200,37,ZAQ,FOLDERZ,LTTRS,2002-09-28 20:58:00,2002-11-29 12:59:00,NULL
-138297,4811.61,BBG,KLS,A,5365.89,201,38,MKO,FOLDERZ,LTTRS,2002-09-28 21:58:00,2002-11-29 14:59:00,NULL
-138308,4812.05,BBH,SDK,A,5369,202,39,VFR,FOLDERZ,LTTRZ,2002-09-28 22:58:00,2002-11-29 16:59:00,NULL
-138319,4812.49,CCA,MNV,A,5372.11,203,40,YUJ,FOLDERZ,LTTRA,2002-09-28 23:58:00,2002-11-29 18:59:00,NULL
-138330,4812.93,CCB,OKW,A,5375.22,204,41,AAA,FOLDERZ,LTTRB,2002-09-29 00:58:00,2002-11-29 20:59:00,NULL
-138341,4813.37,CCD,ASS,A,5378.33,205,42,BBB,FOLDERZ,LTTRB,2002-09-29 01:58:00,2002-11-29 22:59:00,COLLATERAL
-138352,4813.81,CCE,CKA,A,5381.44,206,43,CCC,FOLDERZ,LTTRA,2002-09-29 02:58:00,2002-11-30 00:59:00,COLLATERAL
-138363,4814.25,CCF,SWQ,A,5384.55,207,44,DDD,FOLDERZ,LTTRA,2002-09-29 03:58:00,2002-11-30 02:59:00,NOT COLLATERAL
-138374,4814.69,CCG,KUH,A,5387.66,208,45,AAB,FOLDERZ,LTTRS,2002-09-29 04:58:00,2002-11-30 04:59:00,NOT COLLATERAL
-138385,4815.13,CCH,XCV,A,5390.77,209,46,AAC,FOLDERZ,LTTRZ,2002-09-29 05:58:00,2002-11-30 06:59:00,NOT COLLATERAL
-138396,4815.57,CCI,ZAQ,A,5393.88,210,47,AAD,FOLDERZ,LTTRS,2002-09-29 06:58:00,2002-11-30 08:59:00,NOT COLLATERAL
-138407,4816.01,CCJ,MKO,A,5396.99,211,48,AAE,FOLDERZ,LTTRS,2002-09-29 07:58:00,2002-11-30 10:59:00,NOT COLLATERAL
-138418,4816.45,DDD,VFR,A,5400.1,212,49,AAF,FOLDERZ,LTTRS,2002-09-29 08:58:00,2002-11-30 12:59:00,NOT COLLATERAL
-138429,4816.89,DDA,YUJ,A,5403.21,213,48,BBA,FOLDERZ,LTTRS,2002-09-29 09:58:00,2002-11-30 14:59:00,NOT COLLATERAL
-138440,4817.33,DAA,MED,A,5406.32,214,47,BBC,FOLDERX,LTTRS,2002-09-29 10:58:00,2002-11-30 16:59:00,NOT COLLATERAL
-138451,4817.77,DBB,SWE,A,5409.43,215,46,BBE,FOLDERX,LTTRS,2002-09-29 11:58:00,2002-11-30 18:59:00,NOT COLLATERAL
-138462,4818.21,DCC,CVF,A,5412.54,216,45,BBF,FOLDERX,LTTRS,2002-09-29 12:58:00,2002-11-30 20:59:00,COLLATERAL
-138473,4818.65,DEE,DSFG,A,5415.65,217,44,BBG,FOLDERX,LTTRS,2002-09-29 13:58:00,2002-11-30 22:59:00,COLLATERAL
-138484,4819.09,DFF,ASDRE,A,5418.76,218,43,BBH,FOLDERX,LTTRS,2002-09-29 14:58:00,2002-12-01 00:59:00,COLLATERAL
-138495,4819.53,DGG,HJKSS,A,5421.87,219,42,CCA,FOLDERX,LTTRS,2002-09-29 15:58:00,2002-12-01 02:59:00,NOT COLLATERAL
-138506,4819.97,DHH,KHAA,A,5424.98,220,41,CCB,FOLDERX,LTTRS,2002-09-29 16:58:00,2002-12-01 04:59:00,NOT COLLATERAL
-138517,4820.41,AAA,KSLD,A,5428.09,221,40,CCD,FOLDERX,LTTRS,2002-09-29 17:58:00,2002-12-01 06:59:00,NOT COLLATERAL
-138528,4820.85,BBB,EKID,A,5431.2,222,39,CCE,FOLDERX,LTTRS,2002-09-29 18:58:00,2002-12-01 08:59:00,NOT COLLATERAL
-138539,4821.29,CCC,VNCD,A,5434.31,223,38,CCF,FOLDERX,LTTRS,2002-09-29 19:58:00,2002-12-01 10:59:00,NOT COLLATERAL
-138550,4821.73,DDD,DKD,A,5437.42,224,37,CCG,FOLDERX,LTTRZ,2002-09-29 20:58:00,2002-12-01 12:59:00,NOT COLLATERAL
-138561,4822.17,AAB,FKF,A,5440.53,225,36,CCH,FOLDERX,LTTRA,2002-09-29 21:58:00,2002-12-01 14:59:00,NOT COLLATERAL
-138572,4822.61,AAC,LES,A,5443.64,226,35,CCI,FOLDERR,LTTRB,2002-09-29 22:58:00,2002-12-01 16:59:00,NOT COLLATERAL
-138583,4823.05,AAD,KLD,A,5446.75,227,34,CCJ,FOLDERS,LTTRB,2002-09-29 23:58:00,2002-12-01 18:59:00,NOT COLLATERAL
-138594,4823.49,AAE,SKL,A,5449.86,228,33,DDD,FOLDERX,LTTRA,2002-09-30 00:58:00,2002-12-01 20:59:00,COLLATERAL
-138605,4823.93,AAF,SIW,A,5452.97,229,32,DDA,FOLDERR,LTTRA,2002-09-30 01:58:00,2002-12-01 22:59:00,COLLATERAL
-138616,4824.37,BBA,CKA,A,5456.08,230,31,DAA,FOLDERS,LTTRS,2002-09-30 02:58:00,2002-12-02 00:59:00,COLLATERAL
-138627,4824.81,BBC,LDE,A,5459.19,231,30,FKF,FOLDERX,LTTRZ,2002-09-30 03:58:00,2002-12-02 02:59:00,NOT COLLATERAL
-138638,4825.25,BBE,KFF,A,5462.3,232,29,LES,FOLDERR,LTTRS,2002-09-30 04:58:00,2002-12-02 04:59:00,NOT COLLATERAL
-138649,4825.69,BBF,EFH,A,5465.41,233,28,KLD,FOLDERS,LTTRS,2002-09-30 05:58:00,2002-12-02 06:59:00,NOT COLLATERAL
-138660,4826.13,BBG,NGC,A,5468.52,234,27,SKL,FOLDERX,LTTRS,2002-09-30 06:58:00,2002-12-02 08:59:00,NOT COLLATERAL
-138671,4826.57,BBH,DER,A,5471.63,235,26,SIW,FOLDERR,LTTRS,2002-09-30 07:58:00,2002-12-02 10:59:00,NOT COLLATERAL
-138682,4827.01,CCA,FVG,A,5474.74,236,25,CKA,FOLDERS,LTTRS,2002-09-30 08:58:00,2002-12-02 12:59:00,NOT COLLATERAL
-138693,4827.45,CCB,KWE,A,5477.85,237,24,LDE,FOLDERX,LTTRS,2002-09-30 09:58:00,2002-12-02 14:59:00,NOT COLLATERAL
-138704,4827.89,CCD,WER,A,5480.96,238,23,KFF,FOLDERR,LTTRS,2002-09-30 10:58:00,2002-12-02 16:59:00,NOT COLLATERAL
-138715,4828.33,CCE,GFH,A,5484.07,239,22,EFH,FOLDERS,LTTRS,2002-09-30 11:58:00,2002-12-02 18:59:00,NOT COLLATERAL
-138726,4828.77,CCF,BGF,A,5487.18,240,21,NGC,FOLDERX,LTTRS,2002-09-30 12:58:00,2002-12-02 20:59:00,COLLATERAL
-138737,4829.21,CCG,XCS,A,5490.29,241,20,DER,FOLDERD,LTTRS,2002-09-30 13:58:00,2002-12-02 22:59:00,COLLATERAL
-138748,4829.65,CCH,JHK,A,5493.4,242,19,FVG,FOLDERE,LTTRS,2002-09-30 14:58:00,2002-12-03 00:59:00,COLLATERAL
-138759,4830.09,CCI,SFD,A,5496.51,243,18,KWE,FOLDERF,LTTRS,2002-09-30 15:58:00,2002-12-03 02:59:00,NOT COLLATERAL
-138770,4830.53,CCJ,WRE,A,5499.62,244,17,WER,FOLDERG,LTTRS,2002-09-30 16:58:00,2002-12-03 04:59:00,NOT COLLATERAL
-138781,4830.97,DDD,HGV,A,5502.73,245,16,GFH,FOLDERH,LTTRS,2002-09-30 17:58:00,2002-12-03 06:59:00,NOT COLLATERAL
-138792,4831.41,DDA,KLS,A,5505.84,246,15,BGF,FOLDERI,LTTRZ,2002-09-30 18:58:00,2002-12-03 08:59:00,NOT COLLATERAL
-138803,4831.85,DAA,SDK,A,5508.95,247,14,XCS,FOLDERJ,LTTRA,2002-09-30 19:58:00,2002-12-03 10:59:00,NOT COLLATERAL
-138814,4832.29,DBB,MNV,A,5512.06,248,13,JHK,FOLDERK,LTTRB,2002-09-30 20:58:00,2002-12-03 12:59:00,NOT COLLATERAL
-138825,4832.73,DCC,OKW,A,5515.17,249,12,SFD,FOLDERL,LTTRB,2002-09-30 21:58:00,2002-12-03 14:59:00,NOT COLLATERAL
-138836,4833.17,DEE,ASS,A,5518.28,250,11,WRE,FOLDERM,LTTRA,2002-09-30 22:58:00,2002-12-03 16:59:00,NOT COLLATERAL
-138847,4833.61,DFF,CKA,A,5521.39,251,10,HGV,FOLDERN,LTTRA,2002-09-30 23:58:00,2002-12-03 18:59:00,NOT COLLATERAL
-138858,4834.05,DGG,SWQ,A,5524.5,252,9,KLS,FOLDERN,LTTRS,2002-10-01 00:58:00,2002-12-03 20:59:00,COLLATERAL
-138869,4834.49,DHH,KUH,A,5527.61,253,8,SDK,FOLDERN,LTTRZ,2002-10-01 01:58:00,2002-12-03 22:59:00,COLLATERAL
-138880,4834.93,AAA,XCV,A,5530.72,254,7,MNV,FOLDERN,LTTRS,2002-10-01 02:58:00,2002-12-04 00:59:00,COLLATERAL
-138891,4835.37,BBB,ZAQ,A,5533.83,255,6,OKW,FOLDERL,LTTRS,2002-10-01 03:58:00,2002-12-04 02:59:00,NOT COLLATERAL
-138902,4835.81,CCC,MKO,A,5536.94,256,5,ASS,FOLDERL,LTTRS,2002-10-01 04:58:00,2002-12-04 04:59:00,NOT COLLATERAL
-138913,4836.25,DDD,VFR,A,5540.05,257,4,CKA,FOLDERL,LTTRS,2002-10-01 05:58:00,2002-12-04 06:59:00,NOT COLLATERAL
-138924,4836.69,AAB,YUJ,A,5543.16,258,3,SWQ,FOLDERL,LTTRS,2002-10-01 06:58:00,2002-12-04 08:59:00,NOT COLLATERAL
-138935,4837.13,AAC,MED,A,5546.27,259,1,KUH,FOLDERL,LTTRS,2002-10-01 07:58:00,2002-12-04 10:59:00,NOT COLLATERAL
-138946,4837.57,AAD,SWE,A,5549.38,260,2,XCV,FOLDERA,LTTRS,2002-10-01 08:58:00,2002-12-04 12:59:00,NOT COLLATERAL
-138957,4838.01,AAE,CVF,A,5552.49,261,3,ZAQ,FOLDERB,LTTRS,2002-10-01 09:58:00,2002-12-04 14:59:00,NOT COLLATERAL
-138968,4838.45,AAF,DSFG,A,5555.6,262,4,MKO,FOLDERC,LTTRS,2002-10-01 10:58:00,2002-12-04 16:59:00,NOT COLLATERAL
-138979,4838.89,BBA,ASDRE,A,5558.71,263,5,VFR,FOLDERD,LTTRS,2002-10-01 11:58:00,2002-12-04 18:59:00,NOT COLLATERAL
-138990,4839.33,BBC,HJKSS,A,5561.82,264,6,YUJ,FOLDERE,LTTRS,2002-10-01 12:58:00,2002-12-04 20:59:00,COLLATERAL
-139001,4839.77,BBE,KHAA,A,5564.93,265,7,AAA,FOLDERF,LTTRS,2002-10-01 13:58:00,2002-12-04 22:59:00,COLLATERAL
-139012,4840.21,BBF,KSLD,A,5568.04,266,8,BBB,FOLDERG,LTTRS,2002-10-01 14:58:00,2002-12-05 00:59:00,COLLATERAL
-139023,4840.65,BBG,EKID,A,5571.15,267,9,CCC,FOLDERH,LTTRS,2002-10-01 15:58:00,2002-12-05 02:59:00,NOT COLLATERAL
-139034,4841.09,BBH,VNCD,A,5574.26,268,10,DDD,FOLDERI,LTTRZ,2002-10-01 16:58:00,2002-12-05 04:59:00,NOT COLLATERAL
-139045,4841.53,CCA,DKD,A,5577.37,269,11,AAB,FOLDERJ,LTTRA,2002-10-01 17:58:00,2002-12-05 06:59:00,NOT COLLATERAL
-139056,4841.97,CCB,FKF,A,5580.48,270,12,AAC,FOLDERK,LTTRB,2002-10-01 18:58:00,2002-12-05 08:59:00,NOT COLLATERAL
-139067,4842.41,CCD,LES,A,5583.59,271,13,AAD,FOLDERL,LTTRB,2002-10-01 19:58:00,2002-12-05 10:59:00,NOT COLLATERAL
-139078,4842.85,CCE,KLD,A,5586.7,272,14,AAE,FOLDERM,LTTRA,2002-10-01 20:58:00,2002-12-05 12:59:00,NOT COLLATERAL
-139089,4843.29,CCF,SKL,A,5589.81,273,15,AAF,FOLDERN,LTTRA,2002-10-01 21:58:00,2002-12-05 14:59:00,NOT COLLATERAL
-139100,4843.73,CCG,SIW,A,5592.92,274,16,BBA,FOLDERO,LTTRS,2002-10-01 22:58:00,2002-12-05 16:59:00,NOT COLLATERAL
-139111,4844.17,CCH,CKA,A,5596.03,275,17,BBC,FOLDERP,LTTRZ,2002-10-01 23:58:00,2002-12-05 18:59:00,NOT COLLATERAL
-139122,4844.61,CCI,LDE,A,5599.14,276,18,BBE,FOLDERQ,LTTRS,2002-10-02 00:58:00,2002-12-05 20:59:00,COLLATERAL
-139133,4845.05,CCJ,KFF,A,5602.25,277,19,BBF,FOLDERR,LTTRS,2002-10-02 01:58:00,2002-12-05 22:59:00,COLLATERAL
-139144,4845.49,DDD,EFH,A,5605.36,278,20,BBG,FOLDERS,LTTRS,2002-10-02 02:58:00,2002-12-06 00:59:00,COLLATERAL
-139155,4845.93,DDA,NGC,A,5608.47,279,21,BBH,FOLDERT,LTTRS,2002-10-02 03:58:00,2002-12-06 02:59:00,NOT COLLATERAL
-139166,4846.37,DAA,DER,A,5611.58,280,22,CCA,FOLDERU,LTTRS,2002-10-02 04:58:00,2002-12-06 04:59:00,NOT COLLATERAL
-139177,4846.81,DBB,FVG,A,5614.69,281,23,CCB,FOLDERV,LTTRS,2002-10-02 05:58:00,2002-12-06 06:59:00,NOT COLLATERAL
-139188,4847.25,DCC,KWE,A,5617.8,282,24,CCD,FOLDERW,LTTRS,2002-10-02 06:58:00,2002-12-06 08:59:00,NOT COLLATERAL
-139199,4847.69,DEE,WER,A,5620.91,283,25,CCE,FOLDERX,LTTRS,2002-10-02 07:58:00,2002-12-06 10:59:00,NOT COLLATERAL
-139210,4848.13,DFF,GFH,A,5624.02,284,26,CCF,FOLDERY,LTTRS,2002-10-02 08:58:00,2002-12-06 12:59:00,NOT COLLATERAL
-139221,4848.57,DGG,BGF,A,5627.13,285,27,CCG,FOLDERZ,LTTRS,2002-10-02 09:58:00,2002-12-06 14:59:00,NOT COLLATERAL
-139232,4849.01,DHH,XCS,A,5630.24,286,28,CCH,FOLDERA,LTTRS,2002-10-02 10:58:00,2002-12-06 16:59:00,NOT COLLATERAL
-139243,4849.45,AAA,JHK,A,5633.35,287,29,CCI,FOLDERB,LTTRS,2002-10-02 11:58:00,2002-12-06 18:59:00,NOT COLLATERAL
-139254,4849.89,BBB,SFD,A,5636.46,288,30,CCJ,FOLDERC,LTTRS,2002-10-02 12:58:00,2002-12-06 20:59:00,COLLATERAL
-139265,4850.33,CCC,WRE,A,5639.57,289,31,DDD,FOLDERD,LTTRS,2002-10-02 13:58:00,2002-12-06 22:59:00,COLLATERAL
-139276,4850.77,DDD,HGV,A,5642.68,290,32,DDA,FOLDERE,LTTRZ,2002-10-02 14:58:00,2002-12-07 00:59:00,COLLATERAL
-139287,4851.21,AAB,KLS,A,5645.79,291,33,DAA,FOLDERF,LTTRA,2002-10-02 15:58:00,2002-12-07 02:59:00,NOT COLLATERAL
-139298,4851.65,AAC,SDK,A,5648.9,292,34,FKF,FOLDERG,LTTRB,2002-10-02 16:58:00,2002-12-07 04:59:00,NOT COLLATERAL
-139309,4852.09,AAD,MNV,A,5652.01,293,35,LES,FOLDERH,LTTRB,2002-10-02 17:58:00,2002-12-07 06:59:00,NOT COLLATERAL
-139320,4852.53,AAE,OKW,A,5655.12,294,36,KLD,FOLDERI,LTTRA,2002-10-02 18:58:00,2002-12-07 08:59:00,NOT COLLATERAL
-139331,4852.97,AAF,ASS,A,5658.23,295,37,SKL,FOLDERJ,LTTRA,2002-10-02 19:58:00,2002-12-07 10:59:00,NOT COLLATERAL
-139342,4853.41,BBA,CKA,A,5661.34,296,38,SIW,FOLDERK,LTTRS,2002-10-02 20:58:00,2002-12-07 12:59:00,NOT COLLATERAL
-139353,4853.85,BBC,SWQ,A,5664.45,297,39,CKA,FOLDERL,LTTRZ,2002-10-02 21:58:00,2002-12-07 14:59:00,NOT COLLATERAL
-139364,4854.29,BBE,KUH,A,5667.56,298,40,LDE,FOLDERM,LTTRS,2002-10-02 22:58:00,2002-12-07 16:59:00,NOT COLLATERAL
-139375,4854.73,BBF,XCV,A,5670.67,299,41,KFF,FOLDERN,LTTRS,2002-10-02 23:58:00,2002-12-07 18:59:00,NOT COLLATERAL
-139386,4855.17,BBG,ZAQ,A,5673.78,300,42,EFH,FOLDERO,LTTRS,2002-10-03 00:58:00,2002-12-07 20:59:00,COLLATERAL
-139397,4855.61,BBH,MKO,A,5676.89,301,43,NGC,FOLDERP,LTTRS,2002-10-03 01:58:00,2002-12-07 22:59:00,COLLATERAL
-139408,4856.05,CCA,VFR,A,5680,302,44,DER,FOLDERQ,LTTRS,2002-10-03 02:58:00,2002-12-08 00:59:00,COLLATERAL
-139419,4856.49,CCB,YUJ,A,5683.11,303,45,FVG,FOLDERR,LTTRS,2002-10-03 03:58:00,2002-12-08 02:59:00,NOT COLLATERAL
-139430,4856.93,CCD,MED,A,5686.22,304,46,KWE,FOLDERS,LTTRS,2002-10-03 04:58:00,2002-12-08 04:59:00,NOT COLLATERAL
-139441,4857.37,CCE,SWE,A,5689.33,305,47,WER,FOLDERT,LTTRS,2002-10-03 05:58:00,2002-12-08 06:59:00,NOT COLLATERAL
-139452,4857.81,CCF,CVF,A,5692.44,306,48,GFH,FOLDERU,LTTRS,2002-10-03 06:58:00,2002-12-08 08:59:00,NOT COLLATERAL
-139463,4858.25,CCG,DSFG,A,5695.55,307,49,BGF,FOLDERV,LTTRS,2002-10-03 07:58:00,2002-12-08 10:59:00,NOT COLLATERAL
-139474,4858.69,CCH,ASDRE,A,5698.66,308,48,XCS,FOLDERW,LTTRS,2002-10-03 08:58:00,2002-12-08 12:59:00,NOT COLLATERAL
-139485,4859.13,CCI,HJKSS,A,5701.77,309,47,JHK,FOLDERX,LTTRS,2002-10-03 09:58:00,2002-12-08 14:59:00,NOT COLLATERAL
-139496,4859.57,CCJ,KHAA,A,5704.88,310,46,SFD,FOLDERY,LTTRS,2002-10-03 10:58:00,2002-12-08 16:59:00,NOT COLLATERAL
-139507,4860.01,DDD,KSLD,A,5707.99,311,45,WRE,FOLDERZ,LTTRS,2002-10-03 11:58:00,2002-12-08 18:59:00,NOT COLLATERAL
-139518,4860.45,DDA,EKID,A,5711.1,312,44,HGV,FOLDERZ,LTTRZ,2002-10-03 12:58:00,2002-12-08 20:59:00,COLLATERAL
-139529,4860.89,DAA,VNCD,A,5714.21,313,43,KLS,FOLDERZ,LTTRA,2002-10-03 13:58:00,2002-12-08 22:59:00,COLLATERAL
-139540,4861.33,DBB,DKD,A,5717.32,314,42,SDK,FOLDERZ,LTTRB,2002-10-03 14:58:00,2002-12-09 00:59:00,COLLATERAL
-139551,4861.77,DCC,FKF,A,5720.43,315,41,MNV,FOLDERZ,LTTRB,2002-10-03 15:58:00,2002-12-09 02:59:00,NOT COLLATERAL
-139562,4862.21,DEE,LES,A,5723.54,316,40,OKW,FOLDERZ,LTTRA,2002-10-03 16:58:00,2002-12-09 04:59:00,NOT COLLATERAL
-139573,4862.65,DFF,KLD,A,5726.65,317,39,ASS,FOLDERZ,LTTRA,2002-10-03 17:58:00,2002-12-09 06:59:00,NOT COLLATERAL
-139584,4863.09,DGG,SKL,A,5729.76,318,38,CKA,FOLDERZ,LTTRS,2002-10-03 18:58:00,2002-12-09 08:59:00,NOT COLLATERAL
-139595,4863.53,DHH,SIW,A,5732.87,319,37,SWQ,FOLDERZ,LTTRZ,2002-10-03 19:58:00,2002-12-09 10:59:00,NOT COLLATERAL
-139606,4863.97,AAA,CKA,A,5735.98,320,36,KUH,FOLDERZ,LTTRS,2002-10-03 20:58:00,2002-12-09 12:59:00,NOT COLLATERAL
-139617,4864.41,BBB,LDE,A,5739.09,321,35,XCV,FOLDERZ,LTTRS,2002-10-03 21:58:00,2002-12-09 14:59:00,NOT COLLATERAL
-139628,4864.85,CCC,KFF,A,5742.2,322,34,ZAQ,FOLDERZ,LTTRS,2002-10-03 22:58:00,2002-12-09 16:59:00,NOT COLLATERAL
-139639,4865.29,DDD,EFH,A,5745.31,323,33,MKO,FOLDERZ,LTTRS,2002-10-03 23:58:00,2002-12-09 18:59:00,NOT COLLATERAL
-139650,4865.73,AAB,NGC,A,5748.42,324,32,VFR,FOLDERZ,LTTRS,2002-10-04 00:58:00,2002-12-09 20:59:00,COLLATERAL
-139661,4866.17,AAC,DER,A,5751.53,325,31,YUJ,FOLDERX,LTTRS,2002-10-04 01:58:00,2002-12-09 22:59:00,COLLATERAL
-139672,4866.61,AAD,FVG,A,5754.64,326,30,AAA,FOLDERX,LTTRS,2002-10-04 02:58:00,2002-12-10 00:59:00,COLLATERAL
-139683,4867.05,AAE,KWE,A,5757.75,327,29,BBB,FOLDERX,LTTRS,2002-10-04 03:58:00,2002-12-10 02:59:00,NOT COLLATERAL
-139694,4867.49,AAF,WER,A,5760.86,328,28,CCC,FOLDERX,LTTRS,2002-10-04 04:58:00,2002-12-10 04:59:00,NOT COLLATERAL
-139705,4867.93,BBA,GFH,A,5763.97,329,27,DDD,FOLDERX,LTTRS,2002-10-04 05:58:00,2002-12-10 06:59:00,NOT COLLATERAL
-139716,4868.37,BBC,BGF,A,5767.08,330,26,AAB,FOLDERX,LTTRS,2002-10-04 06:58:00,2002-12-10 08:59:00,NOT COLLATERAL
-139727,4868.81,BBE,XCS,A,5770.19,331,25,AAC,FOLDERX,LTTRS,2002-10-04 07:58:00,2002-12-10 10:59:00,NOT COLLATERAL
-139738,4869.25,BBF,JHK,A,5773.3,332,24,AAD,FOLDERX,LTTRS,2002-10-04 08:58:00,2002-12-10 12:59:00,NOT COLLATERAL
-139749,4869.69,BBG,SFD,A,5776.41,333,23,AAE,FOLDERX,LTTRS,2002-10-04 09:58:00,2002-12-10 14:59:00,NOT COLLATERAL
-139760,4870.13,BBH,WRE,A,5779.52,334,22,AAF,FOLDERX,LTTRZ,2002-10-04 10:58:00,2002-12-10 16:59:00,NOT COLLATERAL
-139771,4870.57,CCA,HGV,A,5782.63,335,21,BBA,FOLDERX,LTTRA,2002-10-04 11:58:00,2002-12-10 18:59:00,NOT COLLATERAL
-139782,4871.01,CCB,KLS,A,5785.74,336,20,BBC,FOLDERX,LTTRB,2002-10-04 12:58:00,2002-12-10 20:59:00,COLLATERAL
-139793,4871.45,CCD,SDK,A,5788.85,337,19,BBE,FOLDERR,LTTRB,2002-10-04 13:58:00,2002-12-10 22:59:00,COLLATERAL
-139804,4871.89,CCE,MNV,A,5791.96,338,18,BBF,FOLDERS,LTTRA,2002-10-04 14:58:00,2002-12-11 00:59:00,COLLATERAL
-139815,4872.33,CCF,OKW,A,5795.07,339,17,BBG,FOLDERX,LTTRA,2002-10-04 15:58:00,2002-12-11 02:59:00,NOT COLLATERAL
-139826,4872.77,CCG,ASS,A,5798.18,340,16,BBH,FOLDERR,LTTRS,2002-10-04 16:58:00,2002-12-11 04:59:00,NOT COLLATERAL
-139837,4873.21,CCH,CKA,A,5801.29,341,15,CCA,FOLDERS,LTTRZ,2002-10-04 17:57:00,2002-12-11 06:59:00,NOT COLLATERAL
-139848,4873.65,CCI,SWQ,A,5804.4,342,14,CCB,FOLDERX,LTTRS,2002-10-04 18:57:00,2002-12-11 08:59:00,NOT COLLATERAL
-139859,4874.09,CCJ,KUH,A,5807.51,343,13,CCD,FOLDERR,LTTRS,2002-10-04 19:57:00,2002-12-11 10:59:00,NOT COLLATERAL
-139870,4874.53,DDD,XCV,A,5810.62,344,12,CCE,FOLDERS,LTTRS,2002-10-04 20:57:00,2002-12-11 12:59:00,NOT COLLATERAL
-139881,4874.97,DDA,ZAQ,A,5813.73,345,11,CCF,FOLDERX,LTTRS,2002-10-04 21:57:00,2002-12-11 14:59:00,NOT COLLATERAL
-139892,4875.41,DAA,MKO,A,5816.84,346,10,CCG,FOLDERR,LTTRS,2002-10-04 22:57:00,2002-12-11 16:59:00,NOT COLLATERAL
-139903,4875.85,DBB,VFR,A,5819.95,347,9,CCH,FOLDERS,LTTRS,2002-10-04 23:57:00,2002-12-11 18:59:00,NOT COLLATERAL
-139914,4876.29,DCC,YUJ,A,5823.06,348,8,CCI,FOLDERX,LTTRS,2002-10-05 00:57:00,2002-12-11 20:59:00,COLLATERAL
-139925,4876.73,DEE,MED,A,5826.17,349,7,CCJ,FOLDERR,LTTRS,2002-10-05 01:57:00,2002-12-11 22:59:00,COLLATERAL
-139936,4877.17,DFF,SWE,A,5829.28,350,6,DDD,FOLDERS,LTTRS,2002-10-05 02:57:00,2002-12-12 00:59:00,COLLATERAL
-139947,4877.61,DGG,CVF,A,5832.39,351,5,DDA,FOLDERX,LTTRS,2002-10-05 03:57:00,2002-12-12 02:59:00,NOT COLLATERAL
-139958,4878.05,DHH,DSFG,A,5835.5,352,4,DAA,FOLDERD,LTTRS,2002-10-05 04:57:00,2002-12-12 04:59:00,NOT COLLATERAL
-139969,4878.49,AAA,ASDRE,A,5838.61,353,3,FKF,FOLDERE,LTTRS,2002-10-05 05:57:00,2002-12-12 06:59:00,NOT COLLATERAL
-139980,4878.93,BBB,HJKSS,A,5841.72,354,1,LES,FOLDERF,LTTRS,2002-10-05 06:57:00,2002-12-12 08:59:00,NOT COLLATERAL
-139991,4879.37,CCC,KHAA,A,5844.83,355,2,KLD,FOLDERG,LTTRS,2002-10-05 07:57:00,2002-12-12 10:59:00,NOT COLLATERAL
-140002,4879.81,DDD,KSLD,A,5847.94,356,3,SKL,FOLDERH,LTTRZ,2002-10-05 08:57:00,2002-12-12 12:59:00,NOT COLLATERAL
-140013,4880.25,AAB,EKID,A,5851.05,357,4,SIW,FOLDERI,LTTRA,2002-10-05 09:57:00,2002-12-12 14:59:00,NOT COLLATERAL
-140024,4880.69,AAC,VNCD,A,5854.16,358,5,CKA,FOLDERJ,LTTRB,2002-10-05 10:57:00,2002-12-12 16:59:00,NOT COLLATERAL
-140035,4881.13,AAD,DKD,A,5857.27,359,6,LDE,FOLDERK,LTTRB,2002-10-05 11:57:00,2002-12-12 18:59:00,NOT COLLATERAL
-140046,4881.57,AAE,FKF,A,5860.38,360,7,KFF,FOLDERL,LTTRA,2002-10-05 12:57:00,2002-12-12 20:59:00,COLLATERAL
-140057,4882.01,AAF,LES,A,5863.49,361,8,EFH,FOLDERM,LTTRA,2002-10-05 13:57:00,2002-12-12 22:59:00,COLLATERAL
-140068,4882.45,BBA,KLD,A,5866.6,362,9,NGC,FOLDERN,LTTRS,2002-10-05 14:57:00,2002-12-13 00:59:00,COLLATERAL
-140079,4882.89,BBC,SKL,A,5869.71,363,10,DER,FOLDERN,LTTRZ,2002-10-05 15:57:00,2002-12-13 02:59:00,NULL
-140090,4883.33,BBE,SIW,A,5872.82,364,11,FVG,FOLDERN,LTTRS,2002-10-05 16:57:00,2002-12-13 04:59:00,NULL
-140101,4883.77,BBF,CKA,A,5875.93,365,12,KWE,FOLDERN,LTTRS,2002-10-05 17:57:00,2002-12-13 06:59:00,NULL
-140112,4884.21,BBG,LDE,A,5879.04,366,13,WER,FOLDERL,LTTRS,2002-10-05 18:57:00,2002-12-13 08:59:00,NULL
-140123,4884.65,BBH,KFF,A,5882.15,367,14,GFH,FOLDERL,LTTRS,2002-10-05 19:57:00,2002-12-13 10:59:00,NULL
-140134,4885.09,CCA,EFH,A,5885.26,368,15,BGF,FOLDERL,LTTRS,2002-10-05 20:57:00,2002-12-13 12:59:00,NULL
-140145,4885.53,CCB,NGC,A,5888.37,369,16,XCS,FOLDERL,LTTRS,2002-10-05 21:57:00,2002-12-13 14:59:00,NULL
-140156,4885.97,CCD,DER,A,5891.48,370,17,JHK,FOLDERL,LTTRS,2002-10-05 22:57:00,2002-12-13 16:59:00,NULL
-140167,4886.41,CCE,FVG,A,5894.59,371,18,SFD,FOLDERA,LTTRS,2002-10-05 23:57:00,2002-12-13 18:59:00,NULL
-140178,4886.85,CCF,KWE,A,5897.7,372,19,WRE,FOLDERB,LTTRS,2002-10-06 00:57:00,2002-12-13 20:59:00,COLLATERAL
-140189,4887.29,CCG,WER,A,5900.81,373,20,HGV,FOLDERC,LTTRS,2002-10-06 01:57:00,2002-12-13 22:59:00,COLLATERAL
-140200,4887.73,CCH,GFH,A,5903.92,374,21,KLS,FOLDERD,LTTRS,2002-10-06 02:57:00,2002-12-14 00:59:00,COLLATERAL
-140211,4888.17,CCI,BGF,A,5907.03,375,22,SDK,FOLDERE,LTTRS,2002-10-06 03:57:00,2002-12-14 02:59:00,NULL
-140222,4888.61,CCJ,XCS,A,5910.14,376,23,MNV,FOLDERF,LTTRS,2002-10-06 04:57:00,2002-12-14 04:59:00,NULL
-140233,4889.05,DDD,JHK,A,5913.25,377,24,OKW,FOLDERG,LTTRS,2002-10-06 05:57:00,2002-12-14 06:59:00,NULL
-140244,4889.49,DDA,SFD,A,5916.36,378,25,ASS,FOLDERH,LTTRZ,2002-10-06 06:57:00,2002-12-14 08:59:00,NULL
-140255,4889.93,DAA,WRE,A,5919.47,379,26,CKA,FOLDERI,LTTRA,2002-10-06 07:57:00,2002-12-14 10:59:00,NULL
-140266,4890.37,DBB,HGV,A,5922.58,380,27,SWQ,FOLDERJ,LTTRB,2002-10-06 08:57:00,2002-12-14 12:59:00,NULL
-140277,4890.81,DCC,KLS,A,5925.69,381,28,KUH,FOLDERK,LTTRB,2002-10-06 09:57:00,2002-12-14 14:59:00,NULL
-140288,4891.25,DEE,SDK,A,5928.8,382,29,XCV,FOLDERL,LTTRA,2002-10-06 10:57:00,2002-12-14 16:59:00,NULL
-140299,4891.69,DFF,MNV,A,5931.91,383,30,ZAQ,FOLDERM,LTTRA,2002-10-06 11:57:00,2002-12-14 18:59:00,NULL
-140310,4892.13,DGG,OKW,A,5935.02,384,31,MKO,FOLDERN,LTTRS,2002-10-06 12:57:00,2002-12-14 20:59:00,COLLATERAL
-140321,4892.57,DHH,ASS,A,5938.13,385,32,VFR,FOLDERO,LTTRZ,2002-10-06 13:57:00,2002-12-14 22:59:00,COLLATERAL
-140332,4893.01,AAA,CKA,A,5941.24,386,33,YUJ,FOLDERP,LTTRS,2002-10-06 14:57:00,2002-12-15 00:59:00,COLLATERAL
-140343,4893.45,BBB,SWQ,A,5944.35,387,34,AAA,FOLDERQ,LTTRS,2002-10-06 15:57:00,2002-12-15 02:59:00,NOT COLLATERAL
-140354,4893.89,CCC,KUH,A,5947.46,388,35,BBB,FOLDERR,LTTRS,2002-10-06 16:57:00,2002-12-15 04:59:00,NOT COLLATERAL
-140365,4894.33,DDD,XCV,A,5950.57,389,36,CCC,FOLDERS,LTTRS,2002-10-06 17:57:00,2002-12-15 06:59:00,NOT COLLATERAL
-140376,4894.77,AAB,ZAQ,A,5953.68,390,37,DDD,FOLDERT,LTTRS,2002-10-06 18:57:00,2002-12-15 08:59:00,NOT COLLATERAL
-140387,4895.21,AAC,MKO,A,5956.79,391,38,AAB,FOLDERU,LTTRS,2002-10-06 19:57:00,2002-12-15 10:59:00,NOT COLLATERAL
-140398,4895.65,AAD,VFR,A,5959.9,392,39,AAC,FOLDERV,LTTRS,2002-10-06 20:57:00,2002-12-15 12:59:00,NOT COLLATERAL
-140409,4896.09,AAE,YUJ,A,5963.01,390,40,AAD,FOLDERW,LTTRS,2002-10-06 21:57:00,2002-12-15 14:59:00,NOT COLLATERAL
-140420,4896.53,AAF,MED,A,5966.12,388,41,AAE,FOLDERX,LTTRS,2002-10-06 22:57:00,2002-12-15 16:59:00,NOT COLLATERAL
-140431,4896.97,BBA,SWE,A,5969.23,386,42,AAF,FOLDERY,LTTRS,2002-10-06 23:57:00,2002-12-15 18:59:00,NOT COLLATERAL
-140442,4897.41,BBC,CVF,A,5972.34,384,43,BBA,FOLDERZ,LTTRS,2002-10-07 00:57:00,2002-12-15 20:59:00,COLLATERAL
-140453,4897.85,BBE,DSFG,A,5975.45,382,44,BBC,FOLDERA,LTTRS,2002-10-07 01:57:00,2002-12-15 22:59:00,COLLATERAL
-140464,4898.29,BBF,ASDRE,A,5978.56,380,45,BBE,FOLDERB,LTTRS,2002-10-07 02:57:00,2002-12-16 00:59:00,COLLATERAL
-140475,4898.73,BBG,HJKSS,A,5981.67,378,46,BBF,FOLDERC,LTTRS,2002-10-07 03:57:00,2002-12-16 02:59:00,NOT COLLATERAL
-140486,4899.17,BBH,KHAA,A,5984.78,376,47,BBG,FOLDERD,LTTRZ,2002-10-07 04:57:00,2002-12-16 04:59:00,NOT COLLATERAL
-140497,4899.61,CCA,KSLD,A,5987.89,374,48,BBH,FOLDERE,LTTRA,2002-10-07 05:57:00,2002-12-16 06:59:00,NOT COLLATERAL
-140508,4900.05,CCB,EKID,A,5991,372,49,CCA,FOLDERF,LTTRB,2002-10-07 06:57:00,2002-12-16 08:59:00,NOT COLLATERAL
-140519,4900.49,CCD,VNCD,A,5994.11,370,48,CCB,FOLDERG,LTTRB,2002-10-07 07:57:00,2002-12-16 10:59:00,NOT COLLATERAL
-140530,4900.93,CCE,DKD,A,5997.22,368,47,CCD,FOLDERH,LTTRA,2002-10-07 08:57:00,2002-12-16 12:59:00,NOT COLLATERAL
-140541,4901.37,CCF,FKF,A,6000.33,366,46,CCE,FOLDERI,LTTRA,2002-10-07 09:57:00,2002-12-16 14:59:00,NOT COLLATERAL
-140552,4901.81,CCG,LES,A,6003.44,364,45,CCF,FOLDERJ,LTTRS,2002-10-07 10:57:00,2002-12-16 16:59:00,NOT COLLATERAL
-140563,4902.25,CCH,KLD,A,6006.55,362,44,CCG,FOLDERK,LTTRZ,2002-10-07 11:57:00,2002-12-16 18:59:00,NOT COLLATERAL
-140574,4902.69,CCI,SKL,A,6009.66,360,43,CCH,FOLDERL,LTTRS,2002-10-07 12:57:00,2002-12-16 20:59:00,COLLATERAL
-140585,4903.13,CCJ,SIW,A,6012.77,358,42,CCI,FOLDERM,LTTRS,2002-10-07 13:57:00,2002-12-16 22:59:00,COLLATERAL
-140596,4903.57,DDD,CKA,A,6015.88,356,41,CCJ,FOLDERN,LTTRS,2002-10-07 14:57:00,2002-12-17 00:59:00,COLLATERAL
-140607,4904.01,DDA,LDE,A,6018.99,354,40,DDD,FOLDERO,LTTRS,2002-10-07 15:57:00,2002-12-17 02:59:00,NOT COLLATERAL
-140618,4904.45,DAA,KFF,A,6022.1,352,39,DDA,FOLDERP,LTTRS,2002-10-07 16:57:00,2002-12-17 04:59:00,NOT COLLATERAL
-140629,4904.89,DBB,EFH,A,6025.21,350,38,DAA,FOLDERQ,LTTRS,2002-10-07 17:57:00,2002-12-17 06:59:00,NOT COLLATERAL
-140640,4905.33,DCC,NGC,A,6028.32,348,37,FKF,FOLDERR,LTTRS,2002-10-07 18:57:00,2002-12-17 08:59:00,NOT COLLATERAL
-140651,4905.77,DEE,DER,A,6031.43,346,36,LES,FOLDERS,LTTRS,2002-10-07 19:57:00,2002-12-17 10:59:00,NOT COLLATERAL
-140662,4906.21,DFF,FVG,A,6034.54,344,35,KLD,FOLDERT,LTTRS,2002-10-07 20:57:00,2002-12-17 12:59:00,NOT COLLATERAL
-140673,4906.65,DGG,KWE,A,6037.65,342,34,SKL,FOLDERU,LTTRS,2002-10-07 21:57:00,2002-12-17 14:59:00,NOT COLLATERAL
-140684,4907.09,DHH,WER,A,6040.76,340,33,SIW,FOLDERV,LTTRS,2002-10-07 22:57:00,2002-12-17 16:59:00,NOT COLLATERAL
-140695,4907.53,AAA,GFH,A,6043.87,338,32,CKA,FOLDERW,LTTRS,2002-10-07 23:57:00,2002-12-17 18:59:00,NOT COLLATERAL
-140706,4907.97,BBB,BGF,A,6046.98,336,31,LDE,FOLDERX,LTTRS,2002-10-08 00:57:00,2002-12-17 20:59:00,COLLATERAL
-140717,4908.41,CCC,XCS,A,6050.09,334,30,KFF,FOLDERY,LTTRS,2002-10-08 01:57:00,2002-12-17 22:59:00,COLLATERAL
-140728,4908.85,DDD,JHK,A,6053.2,332,29,EFH,FOLDERZ,LTTRZ,2002-10-08 02:57:00,2002-12-18 00:59:00,COLLATERAL
-140739,4909.29,AAB,SFD,A,6056.31,330,28,NGC,FOLDERZ,LTTRA,2002-10-08 03:57:00,2002-12-18 02:59:00,NOT COLLATERAL
-140750,4909.73,AAC,WRE,A,6059.42,328,27,DER,FOLDERZ,LTTRB,2002-10-08 04:57:00,2002-12-18 04:59:00,NOT COLLATERAL
-140761,4910.17,AAD,HGV,A,6062.53,326,26,FVG,FOLDERZ,LTTRB,2002-10-08 05:57:00,2002-12-18 06:59:00,NOT COLLATERAL
-140772,4910.61,AAE,KLS,A,6065.64,324,25,KWE,FOLDERZ,LTTRA,2002-10-08 06:57:00,2002-12-18 08:59:00,NOT COLLATERAL
-140783,4911.05,AAF,SDK,A,6068.75,322,24,WER,FOLDERZ,LTTRA,2002-10-08 07:57:00,2002-12-18 10:59:00,NOT COLLATERAL
-140794,4911.49,BBA,MNV,A,6071.86,320,23,GFH,FOLDERZ,LTTRS,2002-10-08 08:57:00,2002-12-18 12:59:00,NOT COLLATERAL
-140805,4911.93,BBC,OKW,A,6074.97,318,22,BGF,FOLDERZ,LTTRZ,2002-10-08 09:57:00,2002-12-18 14:59:00,NOT COLLATERAL
-140816,4912.37,BBE,ASS,A,6078.08,316,21,XCS,FOLDERZ,LTTRS,2002-10-08 10:57:00,2002-12-18 16:59:00,NOT COLLATERAL
-140827,4912.81,BBF,CKA,A,6081.19,314,20,JHK,FOLDERZ,LTTRS,2002-10-08 11:57:00,2002-12-18 18:59:00,NOT COLLATERAL
-140838,4913.25,BBG,SWQ,A,6084.3,312,19,SFD,FOLDERZ,LTTRS,2002-10-08 12:57:00,2002-12-18 20:59:00,COLLATERAL
-140849,4913.69,BBH,KUH,A,6087.41,310,18,WRE,FOLDERZ,LTTRS,2002-10-08 13:57:00,2002-12-18 22:59:00,COLLATERAL
-140860,4914.13,CCA,XCV,A,6090.52,308,17,HGV,FOLDERZ,LTTRS,2002-10-08 14:57:00,2002-12-19 00:59:00,COLLATERAL
-140871,4914.57,CCB,ZAQ,A,6093.63,306,16,KLS,FOLDERZ,LTTRS,2002-10-08 15:57:00,2002-12-19 02:59:00,NOT COLLATERAL
-140882,4915.01,CCD,MKO,A,6096.74,304,15,SDK,FOLDERX,LTTRS,2002-10-08 16:57:00,2002-12-19 04:59:00,NOT COLLATERAL
-140893,4915.45,CCE,VFR,A,6099.85,302,14,MNV,FOLDERX,LTTRS,2002-10-08 17:57:00,2002-12-19 06:59:00,NOT COLLATERAL
-140904,4915.89,CCF,YUJ,A,6102.96,300,13,OKW,FOLDERX,LTTRS,2002-10-08 18:57:00,2002-12-19 08:59:00,NOT COLLATERAL
-140915,4916.33,CCG,MED,A,6106.07,298,12,ASS,FOLDERX,LTTRS,2002-10-08 19:57:00,2002-12-19 10:59:00,NOT COLLATERAL
-140926,4916.77,CCH,SWE,A,6109.18,296,11,CKA,FOLDERX,LTTRS,2002-10-08 20:57:00,2002-12-19 12:59:00,NOT COLLATERAL
-140937,4917.21,CCI,CVF,A,6112.29,294,10,SWQ,FOLDERX,LTTRS,2002-10-08 21:57:00,2002-12-19 14:59:00,NOT COLLATERAL
-140948,4917.65,CCJ,DSFG,A,6115.4,292,9,KUH,FOLDERX,LTTRS,2002-10-08 22:57:00,2002-12-19 16:59:00,NOT COLLATERAL
-140959,4918.09,DDD,ASDRE,A,6118.51,290,8,XCV,FOLDERX,LTTRS,2002-10-08 23:57:00,2002-12-19 18:59:00,NOT COLLATERAL
-140970,4918.53,DDA,HJKSS,A,6121.62,288,7,ZAQ,FOLDERX,LTTRZ,2002-10-09 00:57:00,2002-12-19 20:59:00,COLLATERAL
-140981,4918.97,DAA,KHAA,A,6124.73,286,6,MKO,FOLDERX,LTTRA,2002-10-09 01:57:00,2002-12-19 22:59:00,COLLATERAL
-140992,4919.41,DBB,KSLD,A,6127.84,284,5,VFR,FOLDERX,LTTRB,2002-10-09 02:57:00,2002-12-20 00:59:00,COLLATERAL
-141003,4919.85,DCC,EKID,A,6130.95,282,4,YUJ,FOLDERX,LTTRB,2002-10-09 03:57:00,2002-12-20 02:59:00,NOT COLLATERAL
-141014,4920.29,DEE,VNCD,A,6134.06,280,3,AAA,FOLDERR,LTTRA,2002-10-09 04:57:00,2002-12-20 04:59:00,NOT COLLATERAL
-141025,4920.73,DFF,DKD,A,6137.17,278,1,BBB,FOLDERS,LTTRA,2002-10-09 05:57:00,2002-12-20 06:59:00,NOT COLLATERAL
-141036,4921.17,DGG,FKF,A,6140.28,276,2,CCC,FOLDERX,LTTRS,2002-10-09 06:57:00,2002-12-20 08:59:00,NOT COLLATERAL
-141047,4921.61,DHH,LES,A,6143.39,274,3,DDD,FOLDERR,LTTRZ,2002-10-09 07:57:00,2002-12-20 10:59:00,NOT COLLATERAL
-141058,4922.05,AAA,KLD,A,6146.5,272,4,AAB,FOLDERS,LTTRS,2002-10-09 08:57:00,2002-12-20 12:59:00,NOT COLLATERAL
-141069,4922.49,BBB,SKL,A,6149.61,270,5,AAC,FOLDERX,LTTRS,2002-10-09 09:57:00,2002-12-20 14:59:00,NOT COLLATERAL
-141080,4922.93,CCC,SIW,A,6152.72,268,6,AAD,FOLDERR,LTTRS,2002-10-09 10:57:00,2002-12-20 16:59:00,NOT COLLATERAL
-141091,4923.37,DDD,CKA,A,6155.83,266,7,AAE,FOLDERS,LTTRS,2002-10-09 11:57:00,2002-12-20 18:59:00,NOT COLLATERAL
-141102,4923.81,AAB,LDE,A,6158.94,264,8,AAF,FOLDERX,LTTRS,2002-10-09 12:57:00,2002-12-20 20:59:00,COLLATERAL
-141113,4924.25,AAC,KFF,A,6162.05,262,9,BBA,FOLDERR,LTTRS,2002-10-09 13:57:00,2002-12-20 22:59:00,COLLATERAL
-141124,4924.69,AAD,EFH,A,6165.16,260,10,BBC,FOLDERS,LTTRS,2002-10-09 14:57:00,2002-12-21 00:59:00,COLLATERAL
-141135,4925.13,AAE,NGC,A,6168.27,258,11,BBE,FOLDERX,LTTRS,2002-10-09 15:57:00,2002-12-21 02:59:00,NOT COLLATERAL
-141146,4925.57,AAF,DER,A,6171.38,256,12,BBF,FOLDERR,LTTRS,2002-10-09 16:57:00,2002-12-21 04:59:00,NOT COLLATERAL
-141157,4926.01,BBA,FVG,A,6174.49,254,13,BBG,FOLDERS,LTTRS,2002-10-09 17:57:00,2002-12-21 06:59:00,NOT COLLATERAL
-141168,4926.45,BBC,KWE,A,6177.6,252,14,BBH,FOLDERX,LTTRS,2002-10-09 18:57:00,2002-12-21 08:59:00,NOT COLLATERAL
-141179,4926.89,BBE,WER,A,6180.71,250,15,CCA,FOLDERD,LTTRS,2002-10-09 19:57:00,2002-12-21 10:59:00,NOT COLLATERAL
-141190,4927.33,BBF,GFH,A,6183.82,248,16,CCB,FOLDERE,LTTRS,2002-10-09 20:57:00,2002-12-21 12:59:00,NOT COLLATERAL
-141201,4927.77,BBG,BGF,A,6186.93,246,17,CCD,FOLDERF,LTTRS,2002-10-09 21:57:00,2002-12-21 14:59:00,NOT COLLATERAL
-141212,4928.21,BBH,XCS,A,6190.04,244,18,CCE,FOLDERG,LTTRZ,2002-10-09 22:57:00,2002-12-21 16:59:00,NOT COLLATERAL
-141223,4928.65,CCA,JHK,A,6193.15,242,19,CCF,FOLDERH,LTTRA,2002-10-09 23:57:00,2002-12-21 18:59:00,NOT COLLATERAL
-141234,4929.09,CCB,SFD,A,6196.26,240,20,CCG,FOLDERI,LTTRB,2002-10-10 00:57:00,2002-12-21 20:59:00,COLLATERAL
-141245,4929.53,CCD,WRE,A,6199.37,238,21,CCH,FOLDERJ,LTTRB,2002-10-10 01:57:00,2002-12-21 22:59:00,COLLATERAL
-141256,4929.97,CCE,HGV,A,6202.48,236,22,CCI,FOLDERK,LTTRA,2002-10-10 02:57:00,2002-12-22 00:59:00,COLLATERAL
-141267,4930.41,CCF,KLS,A,6205.59,234,23,CCJ,FOLDERL,LTTRA,2002-10-10 03:57:00,2002-12-22 02:59:00,NULL
-141278,4930.85,CCG,SDK,A,6208.7,232,24,DDD,FOLDERM,LTTRS,2002-10-10 04:57:00,2002-12-22 04:59:00,NULL
-141289,4931.29,CCH,MNV,A,6211.81,230,25,DDA,FOLDERN,LTTRZ,2002-10-10 05:57:00,2002-12-22 06:59:00,NULL
-141300,4931.73,CCI,OKW,A,6214.92,228,26,DAA,FOLDERN,LTTRS,2002-10-10 06:57:00,2002-12-22 08:59:00,NULL
-141311,4932.17,CCJ,ASS,A,6218.03,226,27,FKF,FOLDERN,LTTRS,2002-10-10 07:57:00,2002-12-22 10:59:00,NULL
-141322,4932.61,DDD,CKA,A,6221.14,224,28,LES,FOLDERN,LTTRS,2002-10-10 08:57:00,2002-12-22 12:59:00,NULL
-141333,4933.05,DDA,SWQ,A,6224.25,222,29,KLD,FOLDERL,LTTRS,2002-10-10 09:57:00,2002-12-22 14:59:00,NULL
-141344,4933.49,DAA,KUH,A,6227.36,220,30,SKL,FOLDERL,LTTRS,2002-10-10 10:57:00,2002-12-22 16:59:00,NULL
-141355,4933.93,DBB,XCV,A,6230.47,218,31,SIW,FOLDERL,LTTRS,2002-10-10 11:57:00,2002-12-22 18:59:00,NULL
-141366,4934.37,DCC,ZAQ,A,6233.58,216,32,CKA,FOLDERL,LTTRS,2002-10-10 12:57:00,2002-12-22 20:59:00,COLLATERAL
-141377,4934.81,DEE,MKO,A,6236.69,214,33,LDE,FOLDERL,LTTRS,2002-10-10 13:57:00,2002-12-22 22:59:00,COLLATERAL
-141388,4935.25,DFF,VFR,A,6239.8,212,34,KFF,FOLDERA,LTTRS,2002-10-10 14:57:00,2002-12-23 00:59:00,COLLATERAL
-141399,4935.69,DGG,YUJ,A,6242.91,210,35,EFH,FOLDERB,LTTRS,2002-10-10 15:57:00,2002-12-23 02:59:00,NULL
-141410,4936.13,DHH,MED,A,6246.02,208,36,NGC,FOLDERC,LTTRS,2002-10-10 16:57:00,2002-12-23 04:59:00,NULL
-141421,4936.57,AAA,SWE,A,6249.13,206,37,DER,FOLDERD,LTTRS,2002-10-10 17:57:00,2002-12-23 06:59:00,NULL
-141432,4937.01,BBB,CVF,A,6252.24,204,38,FVG,FOLDERE,LTTRS,2002-10-10 18:57:00,2002-12-23 08:59:00,NULL
-141443,4937.45,CCC,DSFG,A,6255.35,202,39,KWE,FOLDERF,LTTRS,2002-10-10 19:57:00,2002-12-23 10:59:00,NULL
-141454,4937.89,DDD,ASDRE,A,6258.46,200,40,WER,FOLDERG,LTTRZ,2002-10-10 20:57:00,2002-12-23 12:59:00,NULL
-141465,4938.33,AAB,HJKSS,A,6261.57,198,41,GFH,FOLDERH,LTTRA,2002-10-10 21:57:00,2002-12-23 14:59:00,NULL
-141476,4938.77,AAC,KHAA,A,6264.68,196,42,BGF,FOLDERI,LTTRB,2002-10-10 22:57:00,2002-12-23 16:59:00,NULL
-141487,4939.21,AAD,KSLD,A,6267.79,194,43,XCS,FOLDERJ,LTTRB,2002-10-10 23:57:00,2002-12-23 18:59:00,NULL
-141498,4939.65,AAE,EKID,A,6270.9,192,44,JHK,FOLDERK,LTTRA,2002-10-11 00:57:00,2002-12-23 20:59:00,COLLATERAL
-141509,4940.09,AAF,VNCD,A,6274.01,190,45,SFD,FOLDERL,LTTRA,2002-10-11 01:57:00,2002-12-23 22:59:00,COLLATERAL
-141520,4940.53,BBA,DKD,A,6277.12,188,46,WRE,FOLDERM,LTTRS,2002-10-11 02:57:00,2002-12-24 00:59:00,COLLATERAL
-141531,4940.97,BBC,FKF,A,6280.23,186,47,HGV,FOLDERN,LTTRZ,2002-10-11 03:57:00,2002-12-24 02:59:00,NOT COLLATERAL
-141542,4941.41,BBE,LES,A,6283.34,184,48,KLS,FOLDERO,LTTRS,2002-10-11 04:57:00,2002-12-24 04:59:00,NOT COLLATERAL
-141553,4941.85,BBF,KLD,A,6286.45,182,49,SDK,FOLDERP,LTTRS,2002-10-11 05:57:00,2002-12-24 06:59:00,NOT COLLATERAL
-141564,4942.29,BBG,SKL,A,6289.56,180,48,MNV,FOLDERQ,LTTRS,2002-10-11 06:57:00,2002-12-24 08:59:00,NOT COLLATERAL
-141575,4942.73,BBH,SIW,A,6292.67,178,47,OKW,FOLDERR,LTTRS,2002-10-11 07:57:00,2002-12-24 10:59:00,NOT COLLATERAL
-141586,4943.17,CCA,CKA,A,6295.78,176,46,ASS,FOLDERS,LTTRS,2002-10-11 08:57:00,2002-12-24 12:59:00,NOT COLLATERAL
-141597,4943.61,CCB,LDE,A,6298.89,174,45,CKA,FOLDERT,LTTRS,2002-10-11 09:57:00,2002-12-24 14:59:00,NOT COLLATERAL
-141608,4944.05,CCD,KFF,A,6302,172,44,SWQ,FOLDERU,LTTRS,2002-10-11 10:57:00,2002-12-24 16:59:00,NOT COLLATERAL
-141619,4944.49,CCE,EFH,A,6305.11,170,43,KUH,FOLDERV,LTTRS,2002-10-11 11:57:00,2002-12-24 18:59:00,NOT COLLATERAL
-141630,4944.93,CCF,NGC,A,6308.22,168,42,XCV,FOLDERW,LTTRS,2002-10-11 12:57:00,2002-12-24 20:59:00,COLLATERAL
-141641,4945.37,CCG,DER,A,6311.33,166,41,ZAQ,FOLDERX,LTTRS,2002-10-11 13:57:00,2002-12-24 22:59:00,COLLATERAL
-141652,4945.81,CCH,FVG,A,6314.44,164,40,MKO,FOLDERY,LTTRS,2002-10-11 14:57:00,2002-12-25 00:59:00,COLLATERAL
-141663,4946.25,CCI,KWE,A,6317.55,162,39,VFR,FOLDERZ,LTTRS,2002-10-11 15:57:00,2002-12-25 02:59:00,NOT COLLATERAL
-141674,4946.69,CCJ,WER,A,6320.66,160,38,YUJ,FOLDERA,LTTRS,2002-10-11 16:57:00,2002-12-25 04:59:00,NOT COLLATERAL
-141685,4947.13,DDD,GFH,A,6323.77,158,37,AAA,FOLDERB,LTTRS,2002-10-11 17:57:00,2002-12-25 06:59:00,NOT COLLATERAL
-141696,4947.57,DDA,BGF,A,6326.88,156,36,BBB,FOLDERC,LTTRZ,2002-10-11 18:57:00,2002-12-25 08:59:00,NOT COLLATERAL
-141707,4948.01,DAA,XCS,A,6329.99,154,35,CCC,FOLDERD,LTTRA,2002-10-11 19:57:00,2002-12-25 10:59:00,NOT COLLATERAL
-141718,4948.45,DBB,JHK,A,6333.1,152,34,DDD,FOLDERE,LTTRB,2002-10-11 20:57:00,2002-12-25 12:59:00,NOT COLLATERAL
-141729,4948.89,DCC,SFD,A,6336.21,150,33,AAB,FOLDERF,LTTRB,2002-10-11 21:57:00,2002-12-25 14:59:00,NOT COLLATERAL
-141740,4949.33,DEE,WRE,A,6339.32,148,32,AAC,FOLDERG,LTTRA,2002-10-11 22:57:00,2002-12-25 16:59:00,NOT COLLATERAL
-141751,4949.77,DFF,HGV,A,6342.43,146,31,AAD,FOLDERH,LTTRA,2002-10-11 23:57:00,2002-12-25 18:59:00,NOT COLLATERAL
-141762,4950.21,DGG,KLS,A,6345.54,144,30,AAE,FOLDERI,LTTRS,2002-10-12 00:57:00,2002-12-25 20:59:00,COLLATERAL
-141773,4950.65,DHH,SDK,A,6348.65,142,29,AAF,FOLDERJ,LTTRZ,2002-10-12 01:57:00,2002-12-25 22:59:00,COLLATERAL
-141784,4951.09,AAA,MNV,A,6351.76,140,28,BBA,FOLDERK,LTTRS,2002-10-12 02:57:00,2002-12-26 00:59:00,COLLATERAL
-141795,4951.53,BBB,OKW,A,6354.87,138,27,BBC,FOLDERL,LTTRS,2002-10-12 03:57:00,2002-12-26 02:59:00,NOT COLLATERAL
-141806,4951.97,CCC,ASS,A,6357.98,136,26,BBE,FOLDERM,LTTRS,2002-10-12 04:57:00,2002-12-26 04:59:00,NOT COLLATERAL
-141817,4952.41,DDD,CKA,A,6361.09,134,25,BBF,FOLDERN,LTTRS,2002-10-12 05:57:00,2002-12-26 06:59:00,NOT COLLATERAL
-141828,4952.85,AAB,SWQ,A,6364.2,132,24,BBG,FOLDERO,LTTRS,2002-10-12 06:57:00,2002-12-26 08:59:00,NOT COLLATERAL
-141839,4953.29,AAC,KUH,A,6367.31,130,23,BBH,FOLDERP,LTTRS,2002-10-12 07:57:00,2002-12-26 10:59:00,NOT COLLATERAL
-141850,4953.73,AAD,XCV,A,6370.42,128,22,CCA,FOLDERQ,LTTRS,2002-10-12 08:57:00,2002-12-26 12:59:00,NOT COLLATERAL
-141861,4954.17,AAE,ZAQ,A,6373.53,126,21,CCB,FOLDERR,LTTRS,2002-10-12 09:57:00,2002-12-26 14:59:00,NOT COLLATERAL
-141872,4954.61,AAF,MKO,A,6376.64,124,20,CCD,FOLDERS,LTTRS,2002-10-12 10:57:00,2002-12-26 16:59:00,NOT COLLATERAL
-141883,4955.05,BBA,VFR,A,6379.75,122,19,CCE,FOLDERT,LTTRS,2002-10-12 11:57:00,2002-12-26 18:59:00,NOT COLLATERAL
-141894,4955.49,BBC,YUJ,A,6382.86,120,18,CCF,FOLDERU,LTTRS,2002-10-12 12:57:00,2002-12-26 20:59:00,COLLATERAL
-141905,4955.93,BBE,MED,A,6385.97,118,17,CCG,FOLDERV,LTTRS,2002-10-12 13:57:00,2002-12-26 22:59:00,COLLATERAL
-141916,4956.37,BBF,SWE,A,6389.08,116,16,CCH,FOLDERW,LTTRS,2002-10-12 14:57:00,2002-12-27 00:59:00,COLLATERAL
-141927,4956.81,BBG,CVF,A,6392.19,114,15,CCI,FOLDERX,LTTRS,2002-10-12 15:57:00,2002-12-27 02:59:00,NOT COLLATERAL
-141938,4957.25,BBH,DSFG,A,6395.3,112,14,CCJ,FOLDERY,LTTRZ,2002-10-12 16:57:00,2002-12-27 04:59:00,NOT COLLATERAL
-141949,4957.69,CCA,ASDRE,A,6398.41,110,13,DDD,FOLDERZ,LTTRA,2002-10-12 17:57:00,2002-12-27 06:59:00,NOT COLLATERAL
-141960,4958.13,CCB,HJKSS,A,6401.52,108,12,DDA,FOLDERZ,LTTRB,2002-10-12 18:57:00,2002-12-27 08:59:00,NOT COLLATERAL
-141971,4958.57,CCD,KHAA,A,6404.63,106,11,DAA,FOLDERZ,LTTRB,2002-10-12 19:57:00,2002-12-27 10:59:00,NOT COLLATERAL
-141982,4959.01,CCE,KSLD,A,6407.74,104,10,FKF,FOLDERZ,LTTRA,2002-10-12 20:57:00,2002-12-27 12:59:00,NOT COLLATERAL
-141993,4959.45,CCF,EKID,A,6410.85,102,9,LES,FOLDERZ,LTTRA,2002-10-12 21:57:00,2002-12-27 14:59:00,NOT COLLATERAL
-142004,4959.89,CCG,VNCD,A,6413.96,100,8,KLD,FOLDERZ,LTTRS,2002-10-12 22:57:00,2002-12-27 16:59:00,NOT COLLATERAL
-142015,4960.33,CCH,DKD,A,6417.07,98,7,SKL,FOLDERZ,LTTRZ,2002-10-12 23:57:00,2002-12-27 18:59:00,NOT COLLATERAL
-142026,4960.77,CCI,FKF,A,6420.18,96,6,SIW,FOLDERZ,LTTRS,2002-10-13 00:57:00,2002-12-27 20:59:00,COLLATERAL
-142037,4961.21,CCJ,LES,A,6423.29,94,5,CKA,FOLDERZ,LTTRS,2002-10-13 01:57:00,2002-12-27 22:59:00,COLLATERAL
-142048,4961.65,DDD,KLD,A,6426.4,92,4,LDE,FOLDERZ,LTTRS,2002-10-13 02:57:00,2002-12-28 00:59:00,COLLATERAL
-142059,4962.09,DDA,SKL,A,6429.51,90,3,KFF,FOLDERZ,LTTRS,2002-10-13 03:57:00,2002-12-28 02:59:00,NOT COLLATERAL
-142070,4962.53,DAA,SIW,A,6432.62,88,1,EFH,FOLDERZ,LTTRS,2002-10-13 04:56:00,2002-12-28 04:59:00,NOT COLLATERAL
-142081,4962.97,DBB,CKA,A,6435.73,86,2,NGC,FOLDERZ,LTTRS,2002-10-13 05:56:00,2002-12-28 06:59:00,NOT COLLATERAL
-142092,4963.41,DCC,LDE,A,6438.84,84,3,DER,FOLDERZ,LTTRS,2002-10-13 06:56:00,2002-12-28 08:59:00,NOT COLLATERAL
-142103,4963.85,DEE,KFF,A,6441.95,82,4,FVG,FOLDERX,LTTRS,2002-10-13 07:56:00,2002-12-28 10:59:00,NOT COLLATERAL
-142114,4964.29,DFF,EFH,A,6445.06,82,5,KWE,FOLDERX,LTTRS,2002-10-13 08:56:00,2002-12-28 12:59:00,NOT COLLATERAL
-142125,4964.73,DGG,NGC,A,6448.17,82,6,WER,FOLDERX,LTTRS,2002-10-13 09:56:00,2002-12-28 14:59:00,NOT COLLATERAL
-142136,4965.17,DHH,DER,A,6451.28,82,7,GFH,FOLDERX,LTTRS,2002-10-13 10:56:00,2002-12-28 16:59:00,NOT COLLATERAL
-142147,4965.61,AAA,FVG,A,6454.39,82,8,BGF,FOLDERX,LTTRS,2002-10-13 11:56:00,2002-12-28 18:59:00,NOT COLLATERAL
-142158,4966.05,BBB,KWE,A,6457.5,82,9,XCS,FOLDERX,LTTRS,2002-10-13 12:56:00,2002-12-28 20:59:00,COLLATERAL
-142169,4966.49,CCC,WER,A,6460.61,82,10,JHK,FOLDERX,LTTRS,2002-10-13 13:56:00,2002-12-28 22:59:00,COLLATERAL
-142180,4966.93,DDD,GFH,A,6463.72,82,11,SFD,FOLDERX,LTTRZ,2002-10-13 14:56:00,2002-12-29 00:59:00,COLLATERAL
-142191,4967.37,AAB,BGF,A,6466.83,82,12,WRE,FOLDERX,LTTRA,2002-10-13 15:56:00,2002-12-29 02:59:00,NOT COLLATERAL
-142202,4967.81,AAC,XCS,A,6469.94,82,13,HGV,FOLDERX,LTTRB,2002-10-13 16:56:00,2002-12-29 04:59:00,NOT COLLATERAL
-142213,4968.25,AAD,JHK,A,6473.05,82,14,KLS,FOLDERX,LTTRB,2002-10-13 17:56:00,2002-12-29 06:59:00,NOT COLLATERAL
-142224,4968.69,AAE,SFD,A,6476.16,82,15,SDK,FOLDERX,LTTRA,2002-10-13 18:56:00,2002-12-29 08:59:00,NOT COLLATERAL
-142235,4969.13,AAF,WRE,A,6479.27,82,16,MNV,FOLDERR,LTTRA,2002-10-13 19:56:00,2002-12-29 10:59:00,NOT COLLATERAL
-142246,4969.57,BBA,HGV,A,6482.38,82,17,OKW,FOLDERS,LTTRS,2002-10-13 20:56:00,2002-12-29 12:59:00,NOT COLLATERAL
-142257,4970.01,BBC,KLS,A,6485.49,82,18,ASS,FOLDERX,LTTRZ,2002-10-13 21:56:00,2002-12-29 14:59:00,NOT COLLATERAL
-142268,4970.45,BBE,SDK,A,6488.6,82,19,CKA,FOLDERR,LTTRS,2002-10-13 22:56:00,2002-12-29 16:59:00,NOT COLLATERAL
-142279,4970.89,BBF,MNV,A,6491.71,82,20,SWQ,FOLDERS,LTTRS,2002-10-13 23:56:00,2002-12-29 18:59:00,NOT COLLATERAL
-142290,4971.33,BBG,OKW,A,6494.82,82,21,KUH,FOLDERX,LTTRS,2002-10-14 00:56:00,2002-12-29 20:59:00,COLLATERAL
-142301,4971.77,BBH,ASS,A,6497.93,82,22,XCV,FOLDERR,LTTRS,2002-10-14 01:56:00,2002-12-29 22:59:00,COLLATERAL
-142312,4972.21,CCA,CKA,A,6501.04,82,23,ZAQ,FOLDERS,LTTRS,2002-10-14 02:56:00,2002-12-30 00:59:00,COLLATERAL
-142323,4972.65,CCB,SWQ,A,6504.15,82,24,MKO,FOLDERX,LTTRS,2002-10-14 03:56:00,2002-12-30 02:59:00,NOT COLLATERAL
-142334,4973.09,CCD,KUH,A,6507.26,82,25,VFR,FOLDERR,LTTRS,2002-10-14 04:56:00,2002-12-30 04:59:00,NOT COLLATERAL
-142345,4973.53,CCE,XCV,A,6510.37,82,26,YUJ,FOLDERS,LTTRS,2002-10-14 05:56:00,2002-12-30 06:59:00,NOT COLLATERAL
-142356,4973.97,CCF,ZAQ,A,6513.48,82,27,AAA,FOLDERX,LTTRS,2002-10-14 06:56:00,2002-12-30 08:59:00,NOT COLLATERAL
-142367,4974.41,CCG,MKO,A,6516.59,82,28,BBB,FOLDERR,LTTRS,2002-10-14 07:56:00,2002-12-30 10:59:00,NOT COLLATERAL
-142378,4974.85,CCH,VFR,A,6519.7,82,29,CCC,FOLDERS,LTTRS,2002-10-14 08:56:00,2002-12-30 12:59:00,NOT COLLATERAL
-142389,4975.29,CCI,YUJ,A,6522.81,82,30,DDD,FOLDERX,LTTRS,2002-10-14 09:56:00,2002-12-30 14:59:00,NOT COLLATERAL
-142400,4975.73,CCJ,MED,A,6525.92,82,31,AAB,FOLDERD,LTTRS,2002-10-14 10:56:00,2002-12-30 16:59:00,NOT COLLATERAL
-142411,4976.17,DDD,SWE,A,6529.03,82,32,AAC,FOLDERE,LTTRS,2002-10-14 11:56:00,2002-12-30 18:59:00,NOT COLLATERAL
-142422,4976.61,DDA,CVF,A,6532.14,82,33,AAD,FOLDERF,LTTRZ,2002-10-14 12:56:00,2002-12-30 20:59:00,COLLATERAL
-142433,4977.05,DAA,DSFG,A,6535.25,82,34,AAE,FOLDERG,LTTRA,2002-10-14 13:56:00,2002-12-30 22:59:00,COLLATERAL
-142444,4977.49,DBB,ASDRE,A,6538.36,82,35,AAF,FOLDERH,LTTRB,2002-10-14 14:56:00,2002-12-31 00:59:00,COLLATERAL
-142455,4977.93,DCC,HJKSS,A,6541.47,82,36,BBA,FOLDERI,LTTRB,2002-10-14 15:56:00,2002-12-31 02:59:00,NOT COLLATERAL
-142466,4978.37,DEE,KHAA,A,6544.58,82,37,BBC,FOLDERJ,LTTRA,2002-10-14 16:56:00,2002-12-31 04:59:00,NOT COLLATERAL
-142477,4978.81,DFF,KSLD,A,6547.69,82,38,BBE,FOLDERK,LTTRA,2002-10-14 17:56:00,2002-12-31 06:59:00,NOT COLLATERAL
-142488,4979.25,DGG,EKID,A,6550.8,82,39,BBF,FOLDERL,LTTRS,2002-10-14 18:56:00,2002-12-31 08:59:00,NOT COLLATERAL
-142499,4979.69,DHH,VNCD,A,6553.91,82,40,BBG,FOLDERM,LTTRZ,2002-10-14 19:56:00,2002-12-31 10:59:00,NOT COLLATERAL
-142510,4980.13,AAA,DKD,A,6557.02,82,41,BBH,FOLDERN,LTTRS,2002-10-14 20:56:00,2002-12-31 12:59:00,NOT COLLATERAL
-142521,4980.57,BBB,FKF,A,6560.13,82,42,CCA,FOLDERN,LTTRS,2002-10-14 21:56:00,2002-12-31 14:59:00,NOT COLLATERAL
-142532,4981.01,CCC,LES,A,6563.24,82,43,CCB,FOLDERN,LTTRS,2002-10-14 22:56:00,2002-12-31 16:59:00,NOT COLLATERAL
-142543,4981.45,DDD,KLD,A,6566.35,82,44,CCD,FOLDERN,LTTRS,2002-10-14 23:56:00,2002-12-31 18:59:00,NOT COLLATERAL
-142554,4981.89,AAB,SKL,A,6569.46,82,45,CCE,FOLDERL,LTTRS,2002-10-15 00:56:00,2002-12-31 20:59:00,COLLATERAL
-142565,4982.33,AAC,SIW,A,6572.57,82,46,CCF,FOLDERL,LTTRS,2002-10-15 01:56:00,2002-12-31 22:59:00,COLLATERAL
-142576,4982.77,AAD,CKA,A,6575.68,82,47,CCG,FOLDERL,LTTRS,2002-10-15 02:56:00,2003-01-01 00:59:00,COLLATERAL
-142587,4983.21,AAE,LDE,A,6578.79,82,48,CCH,FOLDERL,LTTRS,2002-10-15 03:56:00,2003-01-01 02:59:00,NOT COLLATERAL
-142598,4983.65,AAF,KFF,A,6581.9,82,49,CCI,FOLDERL,LTTRS,2002-10-15 04:56:00,2003-01-01 04:59:00,NOT COLLATERAL
-142609,4984.09,BBA,EFH,A,6585.01,82,48,CCJ,FOLDERA,LTTRS,2002-10-15 05:56:00,2003-01-01 06:59:00,NOT COLLATERAL
-142620,4984.53,BBC,NGC,A,6588.12,82,47,DDD,FOLDERB,LTTRS,2002-10-15 06:56:00,2003-01-01 08:59:00,NOT COLLATERAL
-142631,4984.97,BBE,DER,A,6591.23,82,46,DDA,FOLDERC,LTTRS,2002-10-15 07:56:00,2003-01-01 10:59:00,NOT COLLATERAL
-142642,4985.41,BBF,FVG,A,6594.34,82,45,DAA,FOLDERD,LTTRS,2002-10-15 08:56:00,2003-01-01 12:59:00,NOT COLLATERAL
-142653,4985.85,BBG,KWE,A,6597.45,82,44,FKF,FOLDERE,LTTRS,2002-10-15 09:56:00,2003-01-01 14:59:00,NOT COLLATERAL
-142664,4986.29,BBH,WER,A,6600.56,82,43,LES,FOLDERF,LTTRZ,2002-10-15 10:56:00,2003-01-01 16:59:00,NOT COLLATERAL
-142675,4986.73,CCA,GFH,A,6603.67,82,42,KLD,FOLDERG,LTTRA,2002-10-15 11:56:00,2003-01-01 18:59:00,NOT COLLATERAL
-142686,4987.17,CCB,BGF,A,6606.78,82,41,SKL,FOLDERH,LTTRB,2002-10-15 12:56:00,2003-01-01 20:59:00,COLLATERAL
-142697,4987.61,CCD,XCS,A,6609.89,82,40,SIW,FOLDERI,LTTRB,2002-10-15 13:56:00,2003-01-01 22:59:00,COLLATERAL
-142708,4988.05,CCE,JHK,A,6613,82,39,CKA,FOLDERJ,LTTRA,2002-10-15 14:56:00,2003-01-02 00:59:00,COLLATERAL
-142719,4988.49,CCF,SFD,A,6616.11,82,38,LDE,FOLDERK,LTTRA,2002-10-15 15:56:00,2003-01-02 02:59:00,NOT COLLATERAL
-142730,4988.93,CCG,WRE,A,6619.22,82,37,KFF,FOLDERL,LTTRS,2002-10-15 16:56:00,2003-01-02 04:59:00,NULL
-142741,4989.37,CCH,HGV,A,6622.33,82,36,EFH,FOLDERM,LTTRZ,2002-10-15 17:56:00,2003-01-02 06:59:00,NULL
-142752,4989.81,CCI,KLS,A,6625.44,82,35,NGC,FOLDERN,LTTRS,2002-10-15 18:56:00,2003-01-02 08:59:00,NULL
-142763,4990.25,CCJ,SDK,A,6628.55,82,34,DER,FOLDERO,LTTRS,2002-10-15 19:56:00,2003-01-02 10:59:00,NULL
-142774,4990.69,DDD,MNV,A,6631.66,82,33,FVG,FOLDERP,LTTRS,2002-10-15 20:56:00,2003-01-02 12:59:00,NULL
-142785,4991.13,DDA,OKW,A,6634.77,82,32,KWE,FOLDERQ,LTTRS,2002-10-15 21:56:00,2003-01-02 14:59:00,NULL
-142796,4991.57,DAA,ASS,A,6637.88,87,31,WER,FOLDERR,LTTRS,2002-10-15 22:56:00,2003-01-02 16:59:00,NULL
-142807,4992.01,DBB,CKA,A,6640.99,92,30,GFH,FOLDERS,LTTRS,2002-10-15 23:56:00,2003-01-02 18:59:00,NULL
-142818,4992.45,DCC,SWQ,A,6644.1,97,29,BGF,FOLDERT,LTTRS,2002-10-16 00:56:00,2003-01-02 20:59:00,COLLATERAL
-142829,4992.89,DEE,KUH,A,6647.21,102,28,XCS,FOLDERU,LTTRS,2002-10-16 01:56:00,2003-01-02 22:59:00,COLLATERAL
-142840,4993.33,DFF,XCV,A,6650.32,107,27,JHK,FOLDERV,LTTRS,2002-10-16 02:56:00,2003-01-03 00:59:00,COLLATERAL
-142851,4993.77,DGG,ZAQ,A,6653.43,112,26,SFD,FOLDERW,LTTRS,2002-10-16 03:56:00,2003-01-03 02:59:00,NULL
-142862,4994.21,DHH,MKO,A,6656.54,117,25,WRE,FOLDERX,LTTRS,2002-10-16 04:56:00,2003-01-03 04:59:00,NULL
-142873,4994.65,AAA,VFR,A,6659.65,122,24,HGV,FOLDERY,LTTRS,2002-10-16 05:56:00,2003-01-03 06:59:00,NULL
-142884,4995.09,BBB,YUJ,A,6662.76,127,23,KLS,FOLDERZ,LTTRS,2002-10-16 06:56:00,2003-01-03 08:59:00,NULL
-142895,4995.53,CCC,MED,A,6665.87,132,22,SDK,FOLDERA,LTTRS,2002-10-16 07:56:00,2003-01-03 10:59:00,NULL
-142906,4995.97,DDD,SWE,A,6668.98,137,21,MNV,FOLDERB,LTTRZ,2002-10-16 08:56:00,2003-01-03 12:59:00,NULL
-142917,4996.41,AAB,CVF,A,6672.09,142,20,OKW,FOLDERC,LTTRA,2002-10-16 09:56:00,2003-01-03 14:59:00,NULL
-142928,4996.85,AAC,DSFG,A,6675.2,147,19,ASS,FOLDERD,LTTRB,2002-10-16 10:56:00,2003-01-03 16:59:00,NULL
-142939,4997.29,AAD,ASDRE,A,6678.31,152,18,CKA,FOLDERE,LTTRB,2002-10-16 11:56:00,2003-01-03 18:59:00,NULL
-142950,4997.73,AAE,HJKSS,A,6681.42,157,17,SWQ,FOLDERF,LTTRA,2002-10-16 12:56:00,2003-01-03 20:59:00,NULL
-142961,4998.17,AAF,KHAA,A,6684.53,162,16,KUH,FOLDERG,LTTRA,2002-10-16 13:56:00,2003-01-03 22:59:00,COLLATERAL
-142972,4998.61,BBA,KSLD,A,6687.64,167,15,XCV,FOLDERH,LTTRS,2002-10-16 14:56:00,2003-01-04 00:59:00,COLLATERAL
-142983,4999.05,BBC,EKID,A,6690.75,172,14,ZAQ,FOLDERI,LTTRZ,2002-10-16 15:56:00,2003-01-04 02:59:00,NULL
-142994,4999.49,BBE,VNCD,A,6693.86,177,13,MKO,FOLDERJ,LTTRS,2002-10-16 16:56:00,2003-01-04 04:59:00,NULL
-143005,4999.93,BBF,DKD,A,6696.97,182,12,VFR,FOLDERK,LTTRS,2002-10-16 17:56:00,2003-01-04 06:59:00,NULL
-143016,5000.37,BBG,FKF,A,6700.08,187,11,YUJ,FOLDERL,LTTRS,2002-10-16 18:56:00,2003-01-04 08:59:00,NULL
-143027,5000.81,BBH,LES,A,6703.19,192,10,AAA,FOLDERM,LTTRS,2002-10-16 19:56:00,2003-01-04 10:59:00,NULL
-143038,5001.25,CCA,KLD,A,6706.3,197,9,BBB,FOLDERN,LTTRS,2002-10-16 20:56:00,2003-01-04 12:59:00,NULL
-143049,5001.69,CCB,SKL,A,6709.41,202,8,CCC,FOLDERO,LTTRS,2002-10-16 21:56:00,2003-01-04 14:59:00,NULL
-143060,5002.13,CCD,SIW,A,6712.52,207,7,DDD,FOLDERP,LTTRS,2002-10-16 22:56:00,2003-01-04 16:59:00,NULL
-143071,5002.57,CCE,CKA,A,6715.63,212,6,AAB,FOLDERQ,LTTRS,2002-10-16 23:56:00,2003-01-04 18:59:00,NULL
-143082,5003.01,CCF,LDE,A,6718.74,217,5,AAC,FOLDERR,LTTRS,2002-10-17 00:56:00,2003-01-04 20:59:00,NULL
-143093,5003.45,CCG,KFF,A,6721.85,222,4,AAD,FOLDERS,LTTRS,2002-10-17 01:56:00,2003-01-04 22:59:00,COLLATERAL
-143104,5003.89,CCH,EFH,A,6724.96,227,3,AAE,FOLDERT,LTTRS,2002-10-17 02:56:00,2003-01-05 00:59:00,COLLATERAL
-143115,5004.33,CCI,NGC,A,6728.07,232,1,AAF,FOLDERU,LTTRS,2002-10-17 03:56:00,2003-01-05 02:59:00,NOT COLLATERAL
-143126,5004.77,CCJ,DER,A,6731.18,237,2,BBA,FOLDERV,LTTRS,2002-10-17 04:56:00,2003-01-05 04:59:00,NOT COLLATERAL
-143137,5005.21,DDD,FVG,A,6734.29,242,3,BBC,FOLDERW,LTTRS,2002-10-17 05:56:00,2003-01-05 06:59:00,NOT COLLATERAL
-143148,5005.65,DDA,KWE,A,6737.4,247,4,BBE,FOLDERX,LTTRZ,2002-10-17 06:56:00,2003-01-05 08:59:00,NOT COLLATERAL
-143159,5006.09,DAA,WER,A,6740.51,252,5,BBF,FOLDERY,LTTRA,2002-10-17 07:56:00,2003-01-05 10:59:00,NOT COLLATERAL
-143170,5006.53,DBB,GFH,A,6743.62,257,6,BBG,FOLDERZ,LTTRB,2002-10-17 08:56:00,2003-01-05 12:59:00,NOT COLLATERAL
-143181,5006.97,DCC,BGF,A,6746.73,262,7,BBH,FOLDERZ,LTTRB,2002-10-17 09:56:00,2003-01-05 14:59:00,NOT COLLATERAL
-143192,5007.41,DEE,XCS,A,6749.84,267,8,CCA,FOLDERZ,LTTRA,2002-10-17 10:56:00,2003-01-05 16:59:00,NOT COLLATERAL
-143203,5007.85,DFF,JHK,A,6752.95,272,9,CCB,FOLDERZ,LTTRA,2002-10-17 11:56:00,2003-01-05 18:59:00,NOT COLLATERAL
-143214,5008.29,DGG,SFD,A,6756.06,277,10,CCD,FOLDERZ,LTTRS,2002-10-17 12:56:00,2003-01-05 20:59:00,COLLATERAL
-143225,5008.73,DHH,WRE,A,6759.17,282,11,CCE,FOLDERZ,LTTRZ,2002-10-17 13:56:00,2003-01-05 22:59:00,COLLATERAL
-143236,5009.17,AAA,HGV,A,6762.28,287,12,CCF,FOLDERZ,LTTRS,2002-10-17 14:56:00,2003-01-06 00:59:00,COLLATERAL
-143247,5009.61,BBB,KLS,A,6765.39,292,13,CCG,FOLDERZ,LTTRS,2002-10-17 15:56:00,2003-01-06 02:59:00,NOT COLLATERAL
-143258,5010.05,CCC,SDK,A,6768.5,297,14,CCH,FOLDERZ,LTTRS,2002-10-17 16:56:00,2003-01-06 04:59:00,NOT COLLATERAL
-143269,5010.49,DDD,MNV,A,6771.61,302,15,CCI,FOLDERZ,LTTRS,2002-10-17 17:56:00,2003-01-06 06:59:00,NOT COLLATERAL
-143280,5010.93,AAB,OKW,A,6774.72,307,16,CCJ,FOLDERZ,LTTRS,2002-10-17 18:56:00,2003-01-06 08:59:00,NOT COLLATERAL
-143291,5011.37,AAC,ASS,A,6777.83,312,17,DDD,FOLDERZ,LTTRS,2002-10-17 19:56:00,2003-01-06 10:59:00,NOT COLLATERAL
-143302,5011.81,AAD,CKA,A,6780.94,317,18,DDA,FOLDERZ,LTTRS,2002-10-17 20:56:00,2003-01-06 12:59:00,NOT COLLATERAL
-143313,5012.25,AAE,SWQ,A,6784.05,322,19,DAA,FOLDERZ,LTTRS,2002-10-17 21:56:00,2003-01-06 14:59:00,NOT COLLATERAL
-143324,5012.69,AAF,KUH,A,6787.16,327,20,FKF,FOLDERX,LTTRS,2002-10-17 22:56:00,2003-01-06 16:59:00,NOT COLLATERAL
-143335,5013.13,BBA,XCV,A,6790.27,332,21,LES,FOLDERX,LTTRS,2002-10-17 23:56:00,2003-01-06 18:59:00,NOT COLLATERAL
-143346,5013.57,BBC,ZAQ,A,6793.38,337,22,KLD,FOLDERX,LTTRS,2002-10-18 00:56:00,2003-01-06 20:59:00,COLLATERAL
-143357,5014.01,BBE,MKO,A,6796.49,342,23,SKL,FOLDERX,LTTRS,2002-10-18 01:56:00,2003-01-06 22:59:00,COLLATERAL
-143368,5014.45,BBF,VFR,A,6799.6,347,24,SIW,FOLDERX,LTTRS,2002-10-18 02:56:00,2003-01-07 00:59:00,COLLATERAL
-143379,5014.89,BBG,YUJ,A,6802.71,352,25,CKA,FOLDERX,LTTRS,2002-10-18 03:56:00,2003-01-07 02:59:00,NOT COLLATERAL
-143390,5015.33,BBH,MED,A,6805.82,357,26,LDE,FOLDERX,LTTRZ,2002-10-18 04:56:00,2003-01-07 04:59:00,NOT COLLATERAL
-143401,5015.77,CCA,SWE,A,6808.93,362,27,KFF,FOLDERX,LTTRA,2002-10-18 05:56:00,2003-01-07 06:59:00,NOT COLLATERAL
-143412,5016.21,CCB,CVF,A,6812.04,367,28,EFH,FOLDERX,LTTRB,2002-10-18 06:56:00,2003-01-07 08:59:00,NOT COLLATERAL
-143423,5016.65,CCD,DSFG,A,6815.15,372,29,NGC,FOLDERX,LTTRB,2002-10-18 07:56:00,2003-01-07 10:59:00,NOT COLLATERAL
-143434,5017.09,CCE,ASDRE,A,6818.26,377,30,DER,FOLDERX,LTTRA,2002-10-18 08:56:00,2003-01-07 12:59:00,NOT COLLATERAL
-143445,5017.53,CCF,HJKSS,A,6821.37,382,31,FVG,FOLDERX,LTTRA,2002-10-18 09:56:00,2003-01-07 14:59:00,NOT COLLATERAL
-143456,5017.97,CCG,KHAA,A,6824.48,387,32,KWE,FOLDERR,LTTRS,2002-10-18 10:56:00,2003-01-07 16:59:00,NOT COLLATERAL
-143467,5018.41,CCH,KSLD,A,6827.59,392,33,WER,FOLDERS,LTTRZ,2002-10-18 11:56:00,2003-01-07 18:59:00,NOT COLLATERAL
-143478,5018.85,CCI,EKID,A,6830.7,397,34,GFH,FOLDERX,LTTRS,2002-10-18 12:56:00,2003-01-07 20:59:00,COLLATERAL
-143489,5019.29,CCJ,VNCD,A,6833.81,402,35,BGF,FOLDERR,LTTRS,2002-10-18 13:56:00,2003-01-07 22:59:00,COLLATERAL
-143500,5019.73,DDD,DKD,A,6836.92,407,36,XCS,FOLDERS,LTTRS,2002-10-18 14:56:00,2003-01-08 00:59:00,COLLATERAL
-143511,5020.17,DDA,FKF,A,6840.03,412,37,JHK,FOLDERX,LTTRS,2002-10-18 15:56:00,2003-01-08 02:59:00,NOT COLLATERAL
-143522,5020.61,DAA,LES,A,6843.14,417,38,SFD,FOLDERR,LTTRS,2002-10-18 16:56:00,2003-01-08 04:59:00,NOT COLLATERAL
-143533,5021.05,DBB,KLD,A,6846.25,422,39,WRE,FOLDERS,LTTRS,2002-10-18 17:56:00,2003-01-08 06:59:00,NOT COLLATERAL
-143544,5021.49,DCC,SKL,A,6849.36,427,40,HGV,FOLDERX,LTTRS,2002-10-18 18:56:00,2003-01-08 08:59:00,NOT COLLATERAL
-143555,5021.93,DEE,SIW,A,6852.47,432,41,KLS,FOLDERR,LTTRS,2002-10-18 19:56:00,2003-01-08 10:59:00,NOT COLLATERAL
-143566,5022.37,DFF,CKA,A,6855.58,437,42,SDK,FOLDERS,LTTRS,2002-10-18 20:56:00,2003-01-08 12:59:00,NOT COLLATERAL
-143577,5022.81,DGG,LDE,A,6858.69,442,43,MNV,FOLDERX,LTTRS,2002-10-18 21:56:00,2003-01-08 14:59:00,NOT COLLATERAL
-143588,5023.25,DHH,KFF,A,6861.8,447,44,OKW,FOLDERR,LTTRS,2002-10-18 22:56:00,2003-01-08 16:59:00,NOT COLLATERAL
-143599,5023.69,AAA,EFH,A,6864.91,452,45,ASS,FOLDERS,LTTRS,2002-10-18 23:56:00,2003-01-08 18:59:00,NOT COLLATERAL
-143610,5024.13,BBB,NGC,A,6868.02,457,46,CKA,FOLDERX,LTTRS,2002-10-19 00:56:00,2003-01-08 20:59:00,COLLATERAL
-143621,5024.57,CCC,DER,A,6871.13,462,47,SWQ,FOLDERD,LTTRS,2002-10-19 01:56:00,2003-01-08 22:59:00,COLLATERAL
-143632,5025.01,DDD,FVG,A,6874.24,467,48,KUH,FOLDERE,LTTRZ,2002-10-19 02:56:00,2003-01-09 00:59:00,COLLATERAL
-143643,5025.45,AAB,KWE,A,6877.35,472,49,XCV,FOLDERF,LTTRA,2002-10-19 03:56:00,2003-01-09 02:59:00,NOT COLLATERAL
-143654,5025.89,AAC,WER,A,6880.46,477,48,ZAQ,FOLDERG,LTTRB,2002-10-19 04:56:00,2003-01-09 04:59:00,NOT COLLATERAL
-143665,5026.33,AAD,GFH,A,6883.57,482,47,MKO,FOLDERH,LTTRB,2002-10-19 05:56:00,2003-01-09 06:59:00,NOT COLLATERAL
-143676,5026.77,AAE,BGF,A,6886.68,487,46,VFR,FOLDERI,LTTRA,2002-10-19 06:56:00,2003-01-09 08:59:00,NOT COLLATERAL
-143687,5027.21,AAF,XCS,A,6889.79,492,45,YUJ,FOLDERJ,LTTRA,2002-10-19 07:56:00,2003-01-09 10:59:00,NOT COLLATERAL
-143698,5027.65,BBA,JHK,A,6892.9,497,44,AAA,FOLDERK,LTTRS,2002-10-19 08:56:00,2003-01-09 12:59:00,NOT COLLATERAL
-143709,5028.09,BBC,SFD,A,6896.01,502,43,BBB,FOLDERL,LTTRZ,2002-10-19 09:56:00,2003-01-09 14:59:00,NOT COLLATERAL
-143720,5028.53,BBE,WRE,A,6899.12,507,42,CCC,FOLDERM,LTTRS,2002-10-19 10:56:00,2003-01-09 16:59:00,NOT COLLATERAL
-143731,5028.97,BBF,HGV,A,6902.23,507,41,DDD,FOLDERN,LTTRS,2002-10-19 11:56:00,2003-01-09 18:59:00,NOT COLLATERAL
-143742,5029.41,BBG,KLS,A,6905.34,507,40,AAB,FOLDERN,LTTRS,2002-10-19 12:56:00,2003-01-09 20:59:00,COLLATERAL
-143753,5029.85,BBH,SDK,A,6908.45,507,39,AAC,FOLDERN,LTTRS,2002-10-19 13:56:00,2003-01-09 22:59:00,COLLATERAL
-143764,5030.29,CCA,MNV,A,6911.56,507,38,AAD,FOLDERN,LTTRS,2002-10-19 14:56:00,2003-01-10 00:59:00,COLLATERAL
-143775,5030.73,CCB,OKW,A,6914.67,507,37,AAE,FOLDERL,LTTRS,2002-10-19 15:56:00,2003-01-10 02:59:00,NOT COLLATERAL
-143786,5031.17,CCD,ASS,A,6917.78,507,36,AAF,FOLDERL,LTTRS,2002-10-19 16:56:00,2003-01-10 04:59:00,NOT COLLATERAL
-143797,5031.61,CCE,CKA,A,6920.89,507,35,BBA,FOLDERL,LTTRS,2002-10-19 17:56:00,2003-01-10 06:59:00,NOT COLLATERAL
-143808,5032.05,CCF,SWQ,A,6924,507,34,BBC,FOLDERL,LTTRS,2002-10-19 18:56:00,2003-01-10 08:59:00,NOT COLLATERAL
-143819,5032.49,CCG,KUH,A,6927.11,507,33,BBE,FOLDERL,LTTRS,2002-10-19 19:56:00,2003-01-10 10:59:00,NOT COLLATERAL
-143830,5032.93,CCH,XCV,A,6930.22,507,32,BBF,FOLDERA,LTTRS,2002-10-19 20:56:00,2003-01-10 12:59:00,NOT COLLATERAL
-143841,5033.37,CCI,ZAQ,A,6933.33,507,31,BBG,FOLDERB,LTTRS,2002-10-19 21:56:00,2003-01-10 14:59:00,NOT COLLATERAL
-143852,5033.81,CCJ,MKO,A,6936.44,507,30,BBH,FOLDERC,LTTRS,2002-10-19 22:56:00,2003-01-10 16:59:00,NOT COLLATERAL
-143863,5034.25,DDD,VFR,A,6939.55,507,29,CCA,FOLDERD,LTTRS,2002-10-19 23:56:00,2003-01-10 18:59:00,NOT COLLATERAL
-143874,5034.69,DDA,YUJ,A,6942.66,507,28,CCB,FOLDERE,LTTRZ,2002-10-20 00:56:00,2003-01-10 20:59:00,COLLATERAL
-143885,5035.13,DAA,MED,A,6945.77,507,27,CCD,FOLDERF,LTTRA,2002-10-20 01:56:00,2003-01-10 22:59:00,COLLATERAL
-143896,5035.57,DBB,SWE,A,6948.88,507,26,CCE,FOLDERG,LTTRB,2002-10-20 02:56:00,2003-01-11 00:59:00,COLLATERAL
-143907,5036.01,DCC,CVF,A,6951.99,507,25,CCF,FOLDERH,LTTRB,2002-10-20 03:56:00,2003-01-11 02:59:00,NOT COLLATERAL
-143918,5036.45,DEE,DSFG,A,6955.1,507,24,CCG,FOLDERI,LTTRA,2002-10-20 04:56:00,2003-01-11 04:59:00,NULL
-143929,5036.89,DFF,ASDRE,A,6958.21,507,23,CCH,FOLDERJ,LTTRA,2002-10-20 05:56:00,2003-01-11 06:59:00,NULL
-143940,5037.33,DGG,HJKSS,A,6961.32,507,22,CCI,FOLDERK,LTTRS,2002-10-20 06:56:00,2003-01-11 08:59:00,NULL
-143951,5037.77,DHH,KHAA,A,6964.43,507,21,CCJ,FOLDERL,LTTRZ,2002-10-20 07:56:00,2003-01-11 10:59:00,NULL
-143962,5038.21,AAA,KSLD,A,6967.54,507,20,DDD,FOLDERM,LTTRS,2002-10-20 08:56:00,2003-01-11 12:59:00,NULL
-143973,5038.65,BBB,EKID,A,6970.65,507,19,DDA,FOLDERN,LTTRS,2002-10-20 09:56:00,2003-01-11 14:59:00,NULL
-143984,5039.09,CCC,VNCD,A,6973.76,507,18,DAA,FOLDERO,LTTRS,2002-10-20 10:56:00,2003-01-11 16:59:00,NULL
-143995,5039.53,DDD,DKD,A,6976.87,507,17,FKF,FOLDERP,LTTRS,2002-10-20 11:56:00,2003-01-11 18:59:00,NULL
-144006,5039.97,AAB,FKF,A,6979.98,507,16,LES,FOLDERQ,LTTRS,2002-10-20 12:56:00,2003-01-11 20:59:00,COLLATERAL
-144017,5040.41,AAC,LES,A,6983.09,507,15,KLD,FOLDERR,LTTRS,2002-10-20 13:56:00,2003-01-11 22:59:00,COLLATERAL
-144028,5040.85,AAD,KLD,A,6986.2,507,14,SKL,FOLDERS,LTTRS,2002-10-20 14:56:00,2003-01-12 00:59:00,COLLATERAL
-144039,5041.29,AAE,SKL,A,6989.31,507,13,SIW,FOLDERT,LTTRS,2002-10-20 15:56:00,2003-01-12 02:59:00,NULL
-144050,5041.73,AAF,SIW,A,6992.42,507,12,CKA,FOLDERU,LTTRS,2002-10-20 16:56:00,2003-01-12 04:59:00,NULL
-144061,5042.17,BBA,CKA,A,6995.53,507,11,LDE,FOLDERV,LTTRS,2002-10-20 17:56:00,2003-01-12 06:59:00,NULL
-144072,5042.61,BBC,LDE,A,6998.64,507,10,KFF,FOLDERW,LTTRS,2002-10-20 18:56:00,2003-01-12 08:59:00,NULL
-144083,5043.05,BBE,KFF,A,7001.75,507,9,EFH,FOLDERX,LTTRS,2002-10-20 19:56:00,2003-01-12 10:59:00,NULL
-144094,5043.49,BBF,EFH,A,7004.86,507,8,NGC,FOLDERY,LTTRS,2002-10-20 20:56:00,2003-01-12 12:59:00,NULL
-144105,5043.93,BBG,NGC,A,7007.97,507,7,DER,FOLDERZ,LTTRS,2002-10-20 21:56:00,2003-01-12 14:59:00,NULL
-144116,5044.37,BBH,DER,A,7011.08,507,6,FVG,FOLDERA,LTTRZ,2002-10-20 22:56:00,2003-01-12 16:59:00,NULL
-144127,5044.81,CCA,FVG,A,7014.19,507,5,KWE,FOLDERB,LTTRA,2002-10-20 23:56:00,2003-01-12 18:59:00,NULL
-144138,5045.25,CCB,KWE,A,7017.3,507,4,WER,FOLDERC,LTTRB,2002-10-21 00:56:00,2003-01-12 20:59:00,COLLATERAL
-144149,5045.69,CCD,WER,A,7020.41,507,3,GFH,FOLDERD,LTTRB,2002-10-21 01:56:00,2003-01-12 22:59:00,COLLATERAL
-144160,5046.13,CCE,GFH,A,7023.52,507,1,BGF,FOLDERE,LTTRA,2002-10-21 02:56:00,2003-01-13 00:59:00,COLLATERAL
-144171,5046.57,CCF,BGF,A,7026.63,507,2,XCS,FOLDERF,LTTRA,2002-10-21 03:56:00,2003-01-13 02:59:00,NULL
-144182,5047.01,CCG,XCS,A,7029.74,507,3,JHK,FOLDERG,LTTRS,2002-10-21 04:56:00,2003-01-13 04:59:00,NULL
-144193,5047.45,CCH,JHK,A,7032.85,507,4,SFD,FOLDERH,LTTRZ,2002-10-21 05:56:00,2003-01-13 06:59:00,NULL
-144204,5047.89,CCI,SFD,A,7035.96,507,5,WRE,FOLDERI,LTTRS,2002-10-21 06:56:00,2003-01-13 08:59:00,NULL
-144215,5048.33,CCJ,WRE,A,7039.07,507,6,HGV,FOLDERJ,LTTRS,2002-10-21 07:56:00,2003-01-13 10:59:00,NULL
-144226,5048.77,DDD,HGV,A,7042.18,507,7,KLS,FOLDERK,LTTRS,2002-10-21 08:56:00,2003-01-13 12:59:00,NULL
-144237,5049.21,DDA,KLS,A,7045.29,507,8,SDK,FOLDERL,LTTRS,2002-10-21 09:56:00,2003-01-13 14:59:00,NULL
-144248,5049.65,DAA,SDK,A,7048.4,507,9,MNV,FOLDERM,LTTRS,2002-10-21 10:56:00,2003-01-13 16:59:00,NULL
-144259,5050.09,DBB,MNV,A,7051.51,507,10,OKW,FOLDERN,LTTRS,2002-10-21 11:56:00,2003-01-13 18:59:00,NULL
-144270,5050.53,DCC,OKW,A,7054.62,507,11,ASS,FOLDERO,LTTRS,2002-10-21 12:56:00,2003-01-13 20:59:00,NULL
-144281,5050.97,DEE,ASS,A,7057.73,507,12,CKA,FOLDERP,LTTRS,2002-10-21 13:56:00,2003-01-13 22:59:00,COLLATERAL
-144292,5051.41,DFF,CKA,A,7060.84,507,13,SWQ,FOLDERQ,LTTRS,2002-10-21 14:56:00,2003-01-14 00:59:00,COLLATERAL
-144303,5051.85,DGG,SWQ,A,7063.95,507,14,KUH,FOLDERR,LTTRS,2002-10-21 15:55:00,2003-01-14 02:59:00,NOT COLLATERAL
-144314,5052.29,DHH,KUH,A,7067.06,507,15,XCV,FOLDERS,LTTRS,2002-10-21 16:55:00,2003-01-14 04:59:00,NOT COLLATERAL
-144325,5052.73,AAA,XCV,A,7070.17,507,16,ZAQ,FOLDERT,LTTRS,2002-10-21 17:55:00,2003-01-14 06:59:00,NOT COLLATERAL
-144336,5053.17,BBB,ZAQ,A,7073.28,507,17,MKO,FOLDERU,LTTRS,2002-10-21 18:55:00,2003-01-14 08:59:00,NOT COLLATERAL
-144347,5053.61,CCC,MKO,A,7076.39,507,18,VFR,FOLDERV,LTTRS,2002-10-21 19:55:00,2003-01-14 10:59:00,NOT COLLATERAL
-144358,5054.05,DDD,VFR,A,7079.5,507,19,YUJ,FOLDERW,LTTRZ,2002-10-21 20:55:00,2003-01-14 12:59:00,NOT COLLATERAL
-144369,5054.49,AAB,YUJ,A,7082.61,507,20,AAA,FOLDERX,LTTRA,2002-10-21 21:55:00,2003-01-14 14:59:00,NOT COLLATERAL
-144380,5054.93,AAC,MED,A,7085.72,507,21,BBB,FOLDERY,LTTRB,2002-10-21 22:55:00,2003-01-14 16:59:00,NOT COLLATERAL
-144391,5055.37,AAD,SWE,A,7088.83,507,22,CCC,FOLDERZ,LTTRB,2002-10-21 23:55:00,2003-01-14 18:59:00,NOT COLLATERAL
-144402,5055.81,AAE,CVF,A,7091.94,507,23,DDD,FOLDERZ,LTTRA,2002-10-22 00:55:00,2003-01-14 20:59:00,COLLATERAL
-144413,5056.25,AAF,DSFG,A,7095.05,507,24,AAB,FOLDERZ,LTTRA,2002-10-22 01:55:00,2003-01-14 22:59:00,COLLATERAL
-144424,5056.69,BBA,ASDRE,A,7098.16,507,25,AAC,FOLDERZ,LTTRS,2002-10-22 02:55:00,2003-01-15 00:59:00,COLLATERAL
-144435,5057.13,BBC,HJKSS,A,7101.27,507,26,AAD,FOLDERZ,LTTRZ,2002-10-22 03:55:00,2003-01-15 02:59:00,NOT COLLATERAL
-144446,5057.57,BBE,KHAA,A,7104.38,507,27,AAE,FOLDERZ,LTTRS,2002-10-22 04:55:00,2003-01-15 04:59:00,NOT COLLATERAL
-144457,5058.01,BBF,KSLD,A,7107.49,507,28,AAF,FOLDERZ,LTTRS,2002-10-22 05:55:00,2003-01-15 06:59:00,NOT COLLATERAL
-144468,5058.45,BBG,EKID,A,7110.6,507,29,BBA,FOLDERZ,LTTRS,2002-10-22 06:55:00,2003-01-15 08:59:00,NOT COLLATERAL
-144479,5058.89,BBH,VNCD,A,7113.71,507,30,BBC,FOLDERZ,LTTRS,2002-10-22 07:55:00,2003-01-15 10:59:00,NOT COLLATERAL
-144490,5059.33,CCA,DKD,A,7116.82,507,31,BBE,FOLDERZ,LTTRS,2002-10-22 08:55:00,2003-01-15 12:59:00,NOT COLLATERAL
-144501,5059.77,CCB,FKF,A,7119.93,507,32,BBF,FOLDERZ,LTTRS,2002-10-22 09:55:00,2003-01-15 14:59:00,NOT COLLATERAL
-144512,5060.21,CCD,LES,A,7123.04,507,33,BBG,FOLDERZ,LTTRS,2002-10-22 10:55:00,2003-01-15 16:59:00,NOT COLLATERAL
-144523,5060.65,CCE,KLD,A,7126.15,507,34,BBH,FOLDERZ,LTTRS,2002-10-22 11:55:00,2003-01-15 18:59:00,NOT COLLATERAL
-144534,5061.09,CCF,SKL,A,7129.26,507,35,CCA,FOLDERZ,LTTRS,2002-10-22 12:55:00,2003-01-15 20:59:00,COLLATERAL
-144545,5061.53,CCG,SIW,A,7132.37,507,36,CCB,FOLDERX,LTTRS,2002-10-22 13:55:00,2003-01-15 22:59:00,COLLATERAL
-144556,5061.97,CCH,CKA,A,7135.48,507,37,CCD,FOLDERX,LTTRS,2002-10-22 14:55:00,2003-01-16 00:59:00,COLLATERAL
-144567,5062.41,CCI,LDE,A,7138.59,507,38,CCE,FOLDERX,LTTRS,2002-10-22 15:55:00,2003-01-16 02:59:00,NOT COLLATERAL
-144578,5062.85,CCJ,KFF,A,7141.7,507,39,CCF,FOLDERX,LTTRS,2002-10-22 16:55:00,2003-01-16 04:59:00,NOT COLLATERAL
-144589,5063.29,DDD,EFH,A,7144.81,507,40,CCG,FOLDERX,LTTRS,2002-10-22 17:55:00,2003-01-16 06:59:00,NOT COLLATERAL
-144600,5063.73,DDA,NGC,A,7147.92,507,41,CCH,FOLDERX,LTTRZ,2002-10-22 18:55:00,2003-01-16 08:59:00,NOT COLLATERAL
-144611,5064.17,DAA,DER,A,7151.03,507,42,CCI,FOLDERX,LTTRA,2002-10-22 19:55:00,2003-01-16 10:59:00,NOT COLLATERAL
-144622,5064.61,DBB,FVG,A,7154.14,507,43,CCJ,FOLDERX,LTTRB,2002-10-22 20:55:00,2003-01-16 12:59:00,NOT COLLATERAL
-144633,5065.05,DCC,KWE,A,7157.25,507,44,DDD,FOLDERX,LTTRB,2002-10-22 21:55:00,2003-01-16 14:59:00,NOT COLLATERAL
-144644,5065.49,DEE,WER,A,7160.36,507,45,DDA,FOLDERX,LTTRA,2002-10-22 22:55:00,2003-01-16 16:59:00,NOT COLLATERAL
-144655,5065.93,DFF,GFH,A,7163.47,507,46,DAA,FOLDERX,LTTRA,2002-10-22 23:55:00,2003-01-16 18:59:00,NOT COLLATERAL
-144666,5066.37,DGG,BGF,A,7166.58,507,47,FKF,FOLDERX,LTTRS,2002-10-23 00:55:00,2003-01-16 20:59:00,COLLATERAL
-144677,5066.81,DHH,XCS,A,7169.69,507,48,LES,FOLDERR,LTTRZ,2002-10-23 01:55:00,2003-01-16 22:59:00,COLLATERAL
-144688,5067.25,AAA,JHK,A,7172.8,507,49,KLD,FOLDERS,LTTRS,2002-10-23 02:55:00,2003-01-17 00:59:00,COLLATERAL
-144699,5067.69,BBB,SFD,A,7175.91,507,48,SKL,FOLDERX,LTTRS,2002-10-23 03:55:00,2003-01-17 02:59:00,NOT COLLATERAL
-144710,5068.13,CCC,WRE,A,7179.02,507,47,SIW,FOLDERR,LTTRS,2002-10-23 04:55:00,2003-01-17 04:59:00,NOT COLLATERAL
-144721,5068.57,DDD,HGV,A,7182.13,507,46,CKA,FOLDERS,LTTRS,2002-10-23 05:55:00,2003-01-17 06:59:00,NOT COLLATERAL
-144732,5069.01,AAB,KLS,A,7185.24,507,45,LDE,FOLDERX,LTTRS,2002-10-23 06:55:00,2003-01-17 08:59:00,NOT COLLATERAL
-144743,5069.45,AAC,SDK,A,7188.35,507,44,KFF,FOLDERR,LTTRS,2002-10-23 07:55:00,2003-01-17 10:59:00,NOT COLLATERAL
-144754,5069.89,AAD,MNV,A,7191.46,507,43,EFH,FOLDERS,LTTRS,2002-10-23 08:55:00,2003-01-17 12:59:00,NOT COLLATERAL
-144765,5070.33,AAE,OKW,A,7194.57,507,42,NGC,FOLDERX,LTTRS,2002-10-23 09:55:00,2003-01-17 14:59:00,NOT COLLATERAL
-144776,5070.77,AAF,ASS,A,7197.68,507,41,DER,FOLDERR,LTTRS,2002-10-23 10:55:00,2003-01-17 16:59:00,NOT COLLATERAL
-144787,5071.21,BBA,CKA,A,7200.79,507,40,FVG,FOLDERS,LTTRS,2002-10-23 11:55:00,2003-01-17 18:59:00,NOT COLLATERAL
-144798,5071.65,BBC,SWQ,A,7203.9,507,39,KWE,FOLDERX,LTTRS,2002-10-23 12:55:00,2003-01-17 20:59:00,COLLATERAL
-144809,5072.09,BBE,KUH,A,7207.01,507,38,WER,FOLDERR,LTTRS,2002-10-23 13:55:00,2003-01-17 22:59:00,COLLATERAL
-144820,5072.53,BBF,XCV,A,7210.12,507,37,GFH,FOLDERS,LTTRS,2002-10-23 14:55:00,2003-01-18 00:59:00,COLLATERAL
-144831,5072.97,BBG,ZAQ,A,7213.23,507,36,BGF,FOLDERX,LTTRS,2002-10-23 15:55:00,2003-01-18 02:59:00,NOT COLLATERAL
-144842,5073.41,BBH,MKO,A,7216.34,507,35,XCS,FOLDERD,LTTRZ,2002-10-23 16:55:00,2003-01-18 04:59:00,NOT COLLATERAL
-144853,5073.85,CCA,VFR,A,7219.45,507,34,JHK,FOLDERE,LTTRA,2002-10-23 17:55:00,2003-01-18 06:59:00,NOT COLLATERAL
-144864,5074.29,CCB,YUJ,A,7222.56,507,33,SFD,FOLDERF,LTTRB,2002-10-23 18:55:00,2003-01-18 08:59:00,NOT COLLATERAL
-144875,5074.73,CCD,MED,A,7225.67,507,32,WRE,FOLDERG,LTTRB,2002-10-23 19:55:00,2003-01-18 10:59:00,NOT COLLATERAL
-144886,5075.17,CCE,SWE,A,7228.78,507,31,HGV,FOLDERH,LTTRA,2002-10-23 20:55:00,2003-01-18 12:59:00,NOT COLLATERAL
-144897,5075.61,CCF,CVF,A,7231.89,507,30,KLS,FOLDERI,LTTRA,2002-10-23 21:55:00,2003-01-18 14:59:00,NOT COLLATERAL
-144908,5076.05,CCG,DSFG,A,7235,507,29,SDK,FOLDERJ,LTTRS,2002-10-23 22:55:00,2003-01-18 16:59:00,NOT COLLATERAL
-144919,5076.49,CCH,ASDRE,A,7238.11,507,28,MNV,FOLDERK,LTTRZ,2002-10-23 23:55:00,2003-01-18 18:59:00,NOT COLLATERAL
-144930,5076.93,CCI,HJKSS,A,7241.22,507,27,OKW,FOLDERL,LTTRS,2002-10-24 00:55:00,2003-01-18 20:59:00,COLLATERAL
-144941,5077.37,CCJ,KHAA,A,7244.33,507,26,ASS,FOLDERM,LTTRS,2002-10-24 01:55:00,2003-01-18 22:59:00,COLLATERAL
-144952,5077.81,DDD,KSLD,A,7247.44,507,25,CKA,FOLDERN,LTTRS,2002-10-24 02:55:00,2003-01-19 00:59:00,COLLATERAL
-144963,5078.25,DDA,EKID,A,7250.55,507,24,SWQ,FOLDERN,LTTRS,2002-10-24 03:55:00,2003-01-19 02:59:00,NOT COLLATERAL
-144974,5078.69,DAA,VNCD,A,7253.66,507,23,KUH,FOLDERN,LTTRS,2002-10-24 04:55:00,2003-01-19 04:59:00,NOT COLLATERAL
-144985,5079.13,DBB,DKD,A,7256.77,507,22,XCV,FOLDERN,LTTRS,2002-10-24 05:55:00,2003-01-19 06:59:00,NOT COLLATERAL
-144996,5079.57,DCC,FKF,A,7259.88,507,21,ZAQ,FOLDERL,LTTRS,2002-10-24 06:55:00,2003-01-19 08:59:00,NOT COLLATERAL
-145007,5080.01,DEE,LES,A,7262.99,507,20,MKO,FOLDERL,LTTRS,2002-10-24 07:55:00,2003-01-19 10:59:00,NOT COLLATERAL
-145018,5080.45,DFF,KLD,A,7266.1,507,19,VFR,FOLDERL,LTTRS,2002-10-24 08:55:00,2003-01-19 12:59:00,NOT COLLATERAL
-145029,5080.89,DGG,SKL,A,7269.21,507,18,YUJ,FOLDERL,LTTRS,2002-10-24 09:55:00,2003-01-19 14:59:00,NOT COLLATERAL
-145040,5081.33,DHH,SIW,A,7272.32,507,17,AAA,FOLDERL,LTTRS,2002-10-24 10:55:00,2003-01-19 16:59:00,NOT COLLATERAL
-145051,5081.77,AAA,CKA,A,7275.43,507,16,BBB,FOLDERA,LTTRS,2002-10-24 11:55:00,2003-01-19 18:59:00,NOT COLLATERAL
-145062,5082.21,BBB,LDE,A,7278.54,507,15,CCC,FOLDERB,LTTRS,2002-10-24 12:55:00,2003-01-19 20:59:00,COLLATERAL
-145073,5082.65,CCC,KFF,A,7281.65,507,14,DDD,FOLDERC,LTTRS,2002-10-24 13:55:00,2003-01-19 22:59:00,COLLATERAL
-145084,5083.09,DDD,EFH,A,7284.76,507,13,AAB,FOLDERD,LTTRZ,2002-10-24 14:55:00,2003-01-20 00:59:00,COLLATERAL
-145095,5083.53,AAB,NGC,A,7287.87,507,12,AAC,FOLDERE,LTTRA,2002-10-24 15:55:00,2003-01-20 02:59:00,NOT COLLATERAL
-145106,5083.97,AAC,DER,A,7290.98,507,11,AAD,FOLDERF,LTTRB,2002-10-24 16:55:00,2003-01-20 04:59:00,NOT COLLATERAL
-145117,5084.41,AAD,FVG,A,7294.09,507,10,AAE,FOLDERG,LTTRB,2002-10-24 17:55:00,2003-01-20 06:59:00,NOT COLLATERAL
-145128,5084.85,AAE,KWE,A,7297.2,507,9,AAF,FOLDERH,LTTRA,2002-10-24 18:55:00,2003-01-20 08:59:00,NOT COLLATERAL
-145139,5085.29,AAF,WER,A,7300.31,507,8,BBA,FOLDERI,LTTRA,2002-10-24 19:55:00,2003-01-20 10:59:00,NOT COLLATERAL
-145150,5085.73,BBA,GFH,A,7303.42,507,7,BBC,FOLDERJ,LTTRS,2002-10-24 20:55:00,2003-01-20 12:59:00,NOT COLLATERAL
-145161,5086.17,BBC,BGF,A,7306.53,507,6,BBE,FOLDERK,LTTRZ,2002-10-24 21:55:00,2003-01-20 14:59:00,NOT COLLATERAL
-145172,5086.61,BBE,XCS,A,7309.64,507,5,BBF,FOLDERL,LTTRS,2002-10-24 22:55:00,2003-01-20 16:59:00,NOT COLLATERAL
-145183,5087.05,BBF,JHK,A,7312.75,507,4,BBG,FOLDERM,LTTRS,2002-10-24 23:55:00,2003-01-20 18:59:00,NOT COLLATERAL
-145194,5087.49,BBG,SFD,A,7315.86,507,3,BBH,FOLDERN,LTTRS,2002-10-25 00:55:00,2003-01-20 20:59:00,COLLATERAL
-145205,5087.93,BBH,WRE,A,7318.97,507,1,CCA,FOLDERO,LTTRS,2002-10-25 01:55:00,2003-01-20 22:59:00,COLLATERAL
-145216,5088.37,CCA,HGV,A,7322.08,507,2,CCB,FOLDERP,LTTRS,2002-10-25 02:55:00,2003-01-21 00:59:00,COLLATERAL
-145227,5088.81,CCB,KLS,A,7325.19,507,3,CCD,FOLDERQ,LTTRS,2002-10-25 03:55:00,2003-01-21 02:59:00,NOT COLLATERAL
-145238,5089.25,CCD,SDK,A,7328.3,507,4,CCE,FOLDERR,LTTRS,2002-10-25 04:55:00,2003-01-21 04:59:00,NOT COLLATERAL
-145249,5089.69,CCE,MNV,A,7331.41,507,5,CCF,FOLDERS,LTTRS,2002-10-25 05:55:00,2003-01-21 06:59:00,NOT COLLATERAL
-145260,5090.13,CCF,OKW,A,7334.52,507,6,CCG,FOLDERT,LTTRS,2002-10-25 06:55:00,2003-01-21 08:59:00,NOT COLLATERAL
-145271,5090.57,CCG,ASS,A,7337.63,507,7,CCH,FOLDERU,LTTRS,2002-10-25 07:55:00,2003-01-21 10:59:00,NOT COLLATERAL
-145282,5091.01,CCH,CKA,A,7340.74,507,8,CCI,FOLDERV,LTTRS,2002-10-25 08:55:00,2003-01-21 12:59:00,NOT COLLATERAL
-145293,5091.45,CCI,SWQ,A,7343.85,507,9,CCJ,FOLDERW,LTTRS,2002-10-25 09:55:00,2003-01-21 14:59:00,NOT COLLATERAL
-145304,5091.89,CCJ,KUH,A,7346.96,507,10,DDD,FOLDERX,LTTRS,2002-10-25 10:55:00,2003-01-21 16:59:00,NOT COLLATERAL
-145315,5092.33,DDD,XCV,A,7350.07,507,11,DDA,FOLDERY,LTTRS,2002-10-25 11:55:00,2003-01-21 18:59:00,NOT COLLATERAL
-145326,5092.77,DDA,ZAQ,A,7353.18,507,12,DAA,FOLDERZ,LTTRZ,2002-10-25 12:55:00,2003-01-21 20:59:00,COLLATERAL
-145337,5093.21,DAA,MKO,A,7356.29,507,13,FKF,FOLDERA,LTTRA,2002-10-25 13:55:00,2003-01-21 22:59:00,COLLATERAL
-145348,5093.65,DBB,VFR,A,7359.4,507,14,LES,FOLDERB,LTTRB,2002-10-25 14:55:00,2003-01-22 00:59:00,COLLATERAL
-145359,5094.09,DCC,YUJ,A,7362.51,507,15,KLD,FOLDERC,LTTRB,2002-10-25 15:55:00,2003-01-22 02:59:00,NOT COLLATERAL
-145370,5094.53,DEE,MED,A,7365.62,507,16,SKL,FOLDERD,LTTRA,2002-10-25 16:55:00,2003-01-22 04:59:00,NOT COLLATERAL
-145381,5094.97,DFF,SWE,A,7368.73,507,17,SIW,FOLDERE,LTTRA,2002-10-25 17:55:00,2003-01-22 06:59:00,NOT COLLATERAL
-145392,5095.41,DGG,CVF,A,7371.84,507,18,CKA,FOLDERF,LTTRS,2002-10-25 18:55:00,2003-01-22 08:59:00,NOT COLLATERAL
-145403,5095.85,DHH,DSFG,A,7374.95,507,19,LDE,FOLDERG,LTTRZ,2002-10-25 19:55:00,2003-01-22 10:59:00,NOT COLLATERAL
-145414,5096.29,AAA,ASDRE,A,7378.06,507,20,KFF,FOLDERH,LTTRS,2002-10-25 20:55:00,2003-01-22 12:59:00,NOT COLLATERAL
-145425,5096.73,BBB,HJKSS,A,7381.17,507,21,EFH,FOLDERI,LTTRS,2002-10-25 21:55:00,2003-01-22 14:59:00,NOT COLLATERAL
-145436,5097.17,CCC,KHAA,A,7384.28,507,22,NGC,FOLDERJ,LTTRS,2002-10-25 22:55:00,2003-01-22 16:59:00,NOT COLLATERAL
-145447,5097.61,DDD,KSLD,A,7387.39,507,23,DER,FOLDERK,LTTRS,2002-10-25 23:55:00,2003-01-22 18:59:00,NOT COLLATERAL
-145458,5098.05,AAB,EKID,A,7390.5,507,24,FVG,FOLDERL,LTTRS,2002-10-26 00:55:00,2003-01-22 20:59:00,COLLATERAL
-145469,5098.49,AAC,VNCD,A,7393.61,507,25,KWE,FOLDERM,LTTRS,2002-10-26 01:55:00,2003-01-22 22:59:00,COLLATERAL
-145480,5098.93,AAD,DKD,A,7396.72,507,26,WER,FOLDERN,LTTRS,2002-10-26 02:55:00,2003-01-23 00:59:00,COLLATERAL
-145491,5099.37,AAE,FKF,A,7399.83,507,27,GFH,FOLDERO,LTTRS,2002-10-26 03:55:00,2003-01-23 02:59:00,NOT COLLATERAL
-145502,5099.81,AAF,LES,A,7402.94,507,28,BGF,FOLDERP,LTTRS,2002-10-26 04:55:00,2003-01-23 04:59:00,NOT COLLATERAL
-145513,5100.25,BBA,KLD,A,7406.05,507,29,XCS,FOLDERQ,LTTRS,2002-10-26 05:55:00,2003-01-23 06:59:00,NOT COLLATERAL
-145524,5100.69,BBC,SKL,A,7409.16,507,30,JHK,FOLDERR,LTTRS,2002-10-26 06:55:00,2003-01-23 08:59:00,NOT COLLATERAL
-145535,5101.13,BBE,SIW,A,7412.27,507,31,SFD,FOLDERS,LTTRS,2002-10-26 07:55:00,2003-01-23 10:59:00,NOT COLLATERAL
-145546,5101.57,BBF,CKA,A,7415.38,507,32,WRE,FOLDERT,LTTRS,2002-10-26 08:55:00,2003-01-23 12:59:00,NOT COLLATERAL
-145557,5102.01,BBG,LDE,A,7418.49,507,33,HGV,FOLDERU,LTTRS,2002-10-26 09:55:00,2003-01-23 14:59:00,NOT COLLATERAL
-145568,5102.45,BBH,KFF,A,7421.6,507,34,KLS,FOLDERV,LTTRZ,2002-10-26 10:55:00,2003-01-23 16:59:00,NOT COLLATERAL
-145579,5102.89,CCA,EFH,A,7424.71,507,35,SDK,FOLDERW,LTTRA,2002-10-26 11:55:00,2003-01-23 18:59:00,NOT COLLATERAL
-145590,5103.33,CCB,NGC,A,7427.82,507,36,MNV,FOLDERX,LTTRB,2002-10-26 12:55:00,2003-01-23 20:59:00,COLLATERAL
-145601,5103.77,CCD,DER,A,7430.93,507,37,OKW,FOLDERY,LTTRB,2002-10-26 13:55:00,2003-01-23 22:59:00,COLLATERAL
-145612,5104.21,CCE,FVG,A,7434.04,507,38,ASS,FOLDERZ,LTTRA,2002-10-26 14:55:00,2003-01-24 00:59:00,COLLATERAL
-145623,5104.65,CCF,KWE,A,7437.15,507,39,CKA,FOLDERZ,LTTRA,2002-10-26 15:55:00,2003-01-24 02:59:00,NOT COLLATERAL
-145634,5105.09,CCG,WER,A,7440.26,507,40,SWQ,FOLDERZ,LTTRS,2002-10-26 16:55:00,2003-01-24 04:59:00,NOT COLLATERAL
-145645,5105.53,CCH,GFH,A,7443.37,507,41,KUH,FOLDERZ,LTTRZ,2002-10-26 17:55:00,2003-01-24 06:59:00,NOT COLLATERAL
-145656,5105.97,CCI,BGF,A,7446.48,507,42,XCV,FOLDERZ,LTTRS,2002-10-26 18:55:00,2003-01-24 08:59:00,NOT COLLATERAL
-145667,5106.41,CCJ,XCS,A,7449.59,507,43,ZAQ,FOLDERZ,LTTRS,2002-10-26 19:55:00,2003-01-24 10:59:00,NOT COLLATERAL
-145678,5106.85,DDD,JHK,A,7452.7,507,44,MKO,FOLDERZ,LTTRS,2002-10-26 20:55:00,2003-01-24 12:59:00,NOT COLLATERAL
-145689,5107.29,DDA,SFD,A,7455.81,507,45,VFR,FOLDERZ,LTTRS,2002-10-26 21:55:00,2003-01-24 14:59:00,NOT COLLATERAL
-145700,5107.73,DAA,WRE,A,7458.92,507,46,YUJ,FOLDERZ,LTTRS,2002-10-26 22:55:00,2003-01-24 16:59:00,NOT COLLATERAL
-145711,5108.17,DBB,HGV,A,7462.03,507,47,AAA,FOLDERZ,LTTRS,2002-10-26 23:55:00,2003-01-24 18:59:00,NOT COLLATERAL
-145722,5108.61,DCC,KLS,A,7465.14,507,48,BBB,FOLDERZ,LTTRS,2002-10-27 00:55:00,2003-01-24 20:59:00,COLLATERAL
-145733,5109.05,DEE,SDK,A,7468.25,507,49,CCC,FOLDERZ,LTTRS,2002-10-27 01:55:00,2003-01-24 22:59:00,COLLATERAL
-145744,5109.49,DFF,MNV,A,7471.36,507,48,DDD,FOLDERZ,LTTRS,2002-10-27 02:55:00,2003-01-25 00:59:00,COLLATERAL
-145755,5109.93,DGG,OKW,A,7474.47,507,47,AAB,FOLDERZ,LTTRS,2002-10-27 03:55:00,2003-01-25 02:59:00,NOT COLLATERAL
-145766,5110.37,DHH,ASS,A,7477.58,507,46,AAC,FOLDERX,LTTRS,2002-10-27 04:55:00,2003-01-25 04:59:00,NOT COLLATERAL
-145777,5110.81,AAA,CKA,A,7480.69,507,45,AAD,FOLDERX,LTTRS,2002-10-27 05:55:00,2003-01-25 06:59:00,NOT COLLATERAL
-145788,5111.25,BBB,SWQ,A,7483.8,507,44,AAE,FOLDERX,LTTRS,2002-10-27 06:55:00,2003-01-25 08:59:00,NOT COLLATERAL
-145799,5111.69,CCC,KUH,A,7486.91,507,43,AAF,FOLDERX,LTTRS,2002-10-27 07:55:00,2003-01-25 10:59:00,NOT COLLATERAL
-145810,5112.13,DDD,XCV,A,7490.02,507,42,BBA,FOLDERX,LTTRZ,2002-10-27 08:55:00,2003-01-25 12:59:00,NOT COLLATERAL
-145821,5112.57,AAB,ZAQ,A,7493.13,507,41,BBC,FOLDERX,LTTRA,2002-10-27 09:55:00,2003-01-25 14:59:00,NOT COLLATERAL
-145832,5113.01,AAC,MKO,A,7496.24,507,40,BBE,FOLDERX,LTTRB,2002-10-27 10:55:00,2003-01-25 16:59:00,NOT COLLATERAL
-145843,5113.45,AAD,VFR,A,7499.35,507,39,BBF,FOLDERX,LTTRB,2002-10-27 11:55:00,2003-01-25 18:59:00,NOT COLLATERAL
-145854,5113.89,AAE,YUJ,A,7502.46,507,38,BBG,FOLDERX,LTTRA,2002-10-27 12:55:00,2003-01-25 20:59:00,COLLATERAL
-145865,5114.33,AAF,MED,A,7505.57,507,37,BBH,FOLDERX,LTTRA,2002-10-27 13:55:00,2003-01-25 22:59:00,COLLATERAL
-145876,5114.77,BBA,SWE,A,7508.68,507,36,CCA,FOLDERX,LTTRS,2002-10-27 14:55:00,2003-01-26 00:59:00,COLLATERAL
-145887,5115.21,BBC,CVF,A,7511.79,507,35,CCB,FOLDERX,LTTRZ,2002-10-27 15:55:00,2003-01-26 02:59:00,NOT COLLATERAL
-145898,5115.65,BBE,DSFG,A,7514.9,507,34,CCD,FOLDERR,LTTRS,2002-10-27 16:55:00,2003-01-26 04:59:00,NOT COLLATERAL
-145909,5116.09,BBF,ASDRE,A,7518.01,507,33,CCE,FOLDERS,LTTRS,2002-10-27 17:55:00,2003-01-26 06:59:00,NOT COLLATERAL
-145920,5116.53,BBG,HJKSS,A,7521.12,507,32,CCF,FOLDERX,LTTRS,2002-10-27 18:55:00,2003-01-26 08:59:00,NOT COLLATERAL
-145931,5116.97,BBH,KHAA,A,7524.23,507,31,CCG,FOLDERR,LTTRS,2002-10-27 19:55:00,2003-01-26 10:59:00,NOT COLLATERAL
-145942,5117.41,CCA,KSLD,A,7527.34,507,30,CCH,FOLDERS,LTTRS,2002-10-27 20:55:00,2003-01-26 12:59:00,NOT COLLATERAL
-145953,5117.85,CCB,EKID,A,7530.45,507,29,CCI,FOLDERX,LTTRS,2002-10-27 21:55:00,2003-01-26 14:59:00,NOT COLLATERAL
-145964,5118.29,CCD,VNCD,A,7533.56,507,28,CCJ,FOLDERR,LTTRS,2002-10-27 22:55:00,2003-01-26 16:59:00,NOT COLLATERAL
-145975,5118.73,CCE,DKD,A,7536.67,507,27,DDD,FOLDERS,LTTRS,2002-10-27 23:55:00,2003-01-26 18:59:00,NOT COLLATERAL
-145986,5119.17,CCF,FKF,A,7539.78,507,26,DDA,FOLDERX,LTTRS,2002-10-28 00:55:00,2003-01-26 20:59:00,COLLATERAL
-145997,5119.61,CCG,LES,A,7542.89,507,25,DAA,FOLDERR,LTTRS,2002-10-28 01:55:00,2003-01-26 22:59:00,COLLATERAL
-146008,5120.05,CCH,KLD,A,7546,507,24,FKF,FOLDERS,LTTRS,2002-10-28 02:55:00,2003-01-27 00:59:00,COLLATERAL
-146019,5120.49,CCI,SKL,A,7549.11,507,23,LES,FOLDERX,LTTRS,2002-10-28 03:55:00,2003-01-27 02:59:00,NOT COLLATERAL
-146030,5120.93,CCJ,SIW,A,7552.22,507,22,KLD,FOLDERR,LTTRS,2002-10-28 04:55:00,2003-01-27 04:59:00,NOT COLLATERAL
-146041,5121.37,DDD,CKA,A,7555.33,507,21,SKL,FOLDERS,LTTRS,2002-10-28 05:55:00,2003-01-27 06:59:00,NOT COLLATERAL
-146052,5121.81,DDA,LDE,A,7558.44,507,20,SIW,FOLDERX,LTTRZ,2002-10-28 06:55:00,2003-01-27 08:59:00,NOT COLLATERAL
-146063,5122.25,DAA,KFF,A,7561.55,507,19,CKA,FOLDERD,LTTRA,2002-10-28 07:55:00,2003-01-27 10:59:00,NOT COLLATERAL
-146074,5122.69,DBB,EFH,A,7564.66,507,18,LDE,FOLDERE,LTTRB,2002-10-28 08:55:00,2003-01-27 12:59:00,NOT COLLATERAL
-146085,5123.13,DCC,NGC,A,7567.77,507,17,KFF,FOLDERF,LTTRB,2002-10-28 09:55:00,2003-01-27 14:59:00,NOT COLLATERAL
-146096,5123.57,DEE,DER,A,7570.88,507,16,EFH,FOLDERG,LTTRA,2002-10-28 10:55:00,2003-01-27 16:59:00,NOT COLLATERAL
-146107,5124.01,DFF,FVG,A,7573.99,507,15,NGC,FOLDERH,LTTRA,2002-10-28 11:55:00,2003-01-27 18:59:00,NOT COLLATERAL
-146118,5124.45,DGG,KWE,A,7577.1,507,14,DER,FOLDERI,LTTRS,2002-10-28 12:55:00,2003-01-27 20:59:00,COLLATERAL
-146129,5124.89,DHH,WER,A,7580.21,507,13,FVG,FOLDERJ,LTTRZ,2002-10-28 13:55:00,2003-01-27 22:59:00,COLLATERAL
-146140,5125.33,AAA,GFH,A,7583.32,507,12,KWE,FOLDERK,LTTRS,2002-10-28 14:55:00,2003-01-28 00:59:00,COLLATERAL
-146151,5125.77,BBB,BGF,A,7586.43,507,11,WER,FOLDERL,LTTRS,2002-10-28 15:55:00,2003-01-28 02:59:00,NOT COLLATERAL
-146162,5126.21,CCC,XCS,A,7589.54,507,10,GFH,FOLDERM,LTTRS,2002-10-28 16:55:00,2003-01-28 04:59:00,NOT COLLATERAL
-146173,5126.65,DDD,JHK,A,7592.65,507,9,BGF,FOLDERN,LTTRS,2002-10-28 17:55:00,2003-01-28 06:59:00,NOT COLLATERAL
-146184,5127.09,AAB,SFD,A,7595.76,507,8,XCS,FOLDERN,LTTRS,2002-10-28 18:55:00,2003-01-28 08:59:00,NOT COLLATERAL
-146195,5127.53,AAC,WRE,A,7598.87,507,7,JHK,FOLDERN,LTTRS,2002-10-28 19:55:00,2003-01-28 10:59:00,NOT COLLATERAL
-146206,5127.97,AAD,HGV,A,7601.98,507,6,SFD,FOLDERN,LTTRS,2002-10-28 20:55:00,2003-01-28 12:59:00,NOT COLLATERAL
-146217,5128.41,AAE,KLS,A,7605.09,507,5,WRE,FOLDERL,LTTRS,2002-10-28 21:55:00,2003-01-28 14:59:00,NOT COLLATERAL
-146228,5128.85,AAF,SDK,A,7608.2,507,4,HGV,FOLDERL,LTTRS,2002-10-28 22:55:00,2003-01-28 16:59:00,NOT COLLATERAL
-146239,5129.29,BBA,MNV,A,7611.31,507,3,KLS,FOLDERL,LTTRS,2002-10-28 23:55:00,2003-01-28 18:59:00,NOT COLLATERAL
-146250,5129.73,BBC,OKW,A,7614.42,507,1,SDK,FOLDERL,LTTRS,2002-10-29 00:55:00,2003-01-28 20:59:00,COLLATERAL
-146261,5130.17,BBE,ASS,A,7617.53,507,2,MNV,FOLDERL,LTTRS,2002-10-29 01:55:00,2003-01-28 22:59:00,COLLATERAL
-146272,5130.61,BBF,CKA,A,7620.64,507,3,OKW,FOLDERA,LTTRS,2002-10-29 02:55:00,2003-01-29 00:59:00,COLLATERAL
-146283,5131.05,BBG,SWQ,A,7623.75,507,4,ASS,FOLDERB,LTTRS,2002-10-29 03:55:00,2003-01-29 02:59:00,NOT COLLATERAL
-146294,5131.49,BBH,KUH,A,7626.86,507,5,CKA,FOLDERC,LTTRZ,2002-10-29 04:55:00,2003-01-29 04:59:00,NOT COLLATERAL
-146305,5131.93,CCA,XCV,A,7629.97,507,6,SWQ,FOLDERD,LTTRA,2002-10-29 05:55:00,2003-01-29 06:59:00,NOT COLLATERAL
-146316,5132.37,CCB,ZAQ,A,7633.08,507,7,KUH,FOLDERE,LTTRB,2002-10-29 06:55:00,2003-01-29 08:59:00,NOT COLLATERAL
-146327,5132.81,CCD,MKO,A,7636.19,507,8,XCV,FOLDERF,LTTRB,2002-10-29 07:55:00,2003-01-29 10:59:00,NOT COLLATERAL
-146338,5133.25,CCE,VFR,A,7639.3,507,9,ZAQ,FOLDERG,LTTRA,2002-10-29 08:55:00,2003-01-29 12:59:00,NOT COLLATERAL
-146349,5133.69,CCF,YUJ,A,7642.41,507,10,MKO,FOLDERH,LTTRA,2002-10-29 09:55:00,2003-01-29 14:59:00,NOT COLLATERAL
-146360,5134.13,CCG,MED,A,7645.52,507,11,VFR,FOLDERI,LTTRS,2002-10-29 10:55:00,2003-01-29 16:59:00,NOT COLLATERAL
-146371,5134.57,CCH,SWE,A,7648.63,507,12,YUJ,FOLDERJ,LTTRZ,2002-10-29 11:55:00,2003-01-29 18:59:00,NOT COLLATERAL
-146382,5135.01,CCI,CVF,A,7651.74,507,13,AAA,FOLDERK,LTTRS,2002-10-29 12:55:00,2003-01-29 20:59:00,COLLATERAL
-146393,5135.45,CCJ,DSFG,A,7654.85,507,14,BBB,FOLDERL,LTTRS,2002-10-29 13:55:00,2003-01-29 22:59:00,COLLATERAL
-146404,5135.89,DDD,ASDRE,A,7657.96,507,15,CCC,FOLDERM,LTTRS,2002-10-29 14:55:00,2003-01-30 00:59:00,COLLATERAL
-146415,5136.33,DDA,HJKSS,A,7661.07,507,16,DDD,FOLDERN,LTTRS,2002-10-29 15:55:00,2003-01-30 02:59:00,NOT COLLATERAL
-146426,5136.77,DAA,KHAA,A,7664.18,507,17,AAB,FOLDERO,LTTRS,2002-10-29 16:55:00,2003-01-30 04:59:00,NOT COLLATERAL
-146437,5137.21,DBB,KSLD,A,7667.29,507,18,AAC,FOLDERP,LTTRS,2002-10-29 17:55:00,2003-01-30 06:59:00,NOT COLLATERAL
-146448,5137.65,DCC,EKID,A,7670.4,507,19,AAD,FOLDERQ,LTTRS,2002-10-29 18:55:00,2003-01-30 08:59:00,NOT COLLATERAL
-146459,5138.09,DEE,VNCD,A,7673.51,507,20,AAE,FOLDERR,LTTRS,2002-10-29 19:55:00,2003-01-30 10:59:00,NOT COLLATERAL
-146470,5138.53,DFF,DKD,A,7676.62,507,21,AAF,FOLDERS,LTTRS,2002-10-29 20:55:00,2003-01-30 12:59:00,NOT COLLATERAL
-146481,5138.97,DGG,FKF,A,7679.73,507,22,BBA,FOLDERT,LTTRS,2002-10-29 21:55:00,2003-01-30 14:59:00,NOT COLLATERAL
-146492,5139.41,DHH,LES,A,7682.84,507,23,BBC,FOLDERU,LTTRS,2002-10-29 22:55:00,2003-01-30 16:59:00,NOT COLLATERAL
-146503,5139.85,AAA,KLD,A,7685.95,507,24,BBE,FOLDERV,LTTRS,2002-10-29 23:55:00,2003-01-30 18:59:00,NOT COLLATERAL
-146514,5140.29,BBB,SKL,A,7689.06,507,25,BBF,FOLDERW,LTTRS,2002-10-30 00:55:00,2003-01-30 20:59:00,COLLATERAL
-146525,5140.73,CCC,SIW,A,7692.17,507,26,BBG,FOLDERX,LTTRS,2002-10-30 01:55:00,2003-01-30 22:59:00,COLLATERAL
-146536,5141.17,DDD,CKA,A,7695.28,507,27,BBH,FOLDERY,LTTRZ,2002-10-30 02:55:00,2003-01-31 00:59:00,COLLATERAL
-146547,5141.61,AAB,LDE,A,7698.39,507,28,CCA,FOLDERZ,LTTRA,2002-10-30 03:54:00,2003-01-31 02:59:00,NOT COLLATERAL
-146558,5142.05,AAC,KFF,A,7701.5,507,29,CCB,FOLDERA,LTTRB,2002-10-30 04:54:00,2003-01-31 04:59:00,NOT COLLATERAL
-146569,5142.49,AAD,EFH,A,7704.61,507,30,CCD,FOLDERB,LTTRB,2002-10-30 05:54:00,2003-01-31 06:59:00,NOT COLLATERAL
-146580,5142.93,AAE,NGC,A,7707.72,507,31,CCE,FOLDERC,LTTRA,2002-10-30 06:54:00,2003-01-31 08:59:00,NOT COLLATERAL
-146591,5143.37,AAF,DER,A,7710.83,507,32,CCF,FOLDERD,LTTRA,2002-10-30 07:54:00,2003-01-31 10:59:00,NOT COLLATERAL
-146602,5143.81,BBA,FVG,A,7713.94,507,33,CCG,FOLDERE,LTTRS,2002-10-30 08:54:00,2003-01-31 12:59:00,NOT COLLATERAL
-146613,5144.25,BBC,KWE,A,7717.05,507,34,CCH,FOLDERF,LTTRZ,2002-10-30 09:54:00,2003-01-31 14:59:00,NOT COLLATERAL
-146624,5144.69,BBE,WER,A,7720.16,507,35,CCI,FOLDERG,LTTRS,2002-10-30 10:54:00,2003-01-31 16:59:00,NOT COLLATERAL
-146635,5145.13,BBF,GFH,A,7723.27,507,36,CCJ,FOLDERH,LTTRS,2002-10-30 11:54:00,2003-01-31 18:59:00,NOT COLLATERAL
-146646,5145.57,BBG,BGF,A,7726.38,507,37,DDD,FOLDERI,LTTRS,2002-10-30 12:54:00,2003-01-31 20:59:00,COLLATERAL
-146657,5146.01,BBH,XCS,A,7729.49,507,38,DDA,FOLDERJ,LTTRS,2002-10-30 13:54:00,2003-01-31 22:59:00,COLLATERAL
-146668,5146.45,CCA,JHK,A,7732.6,507,39,DAA,FOLDERK,LTTRS,2002-10-30 14:54:00,2003-02-01 00:59:00,COLLATERAL
-146679,5146.89,CCB,SFD,A,7735.71,507,40,FKF,FOLDERL,LTTRS,2002-10-30 15:54:00,2003-02-01 02:59:00,NOT COLLATERAL
-146690,5147.33,CCD,WRE,A,7738.82,507,41,LES,FOLDERM,LTTRS,2002-10-30 16:54:00,2003-02-01 04:59:00,NOT COLLATERAL
-146701,5147.77,CCE,HGV,A,7741.93,507,42,KLD,FOLDERN,LTTRS,2002-10-30 17:54:00,2003-02-01 06:59:00,NOT COLLATERAL
-146712,5148.21,CCF,KLS,A,7745.04,507,43,SKL,FOLDERO,LTTRS,2002-10-30 18:54:00,2003-02-01 08:59:00,NOT COLLATERAL
-146723,5148.65,CCG,SDK,A,7748.15,507,44,SIW,FOLDERP,LTTRS,2002-10-30 19:54:00,2003-02-01 10:59:00,NOT COLLATERAL
-146734,5149.09,CCH,MNV,A,7751.26,507,45,CKA,FOLDERQ,LTTRS,2002-10-30 20:54:00,2003-02-01 12:59:00,NOT COLLATERAL
-146745,5149.53,CCI,OKW,A,7754.37,507,46,LDE,FOLDERR,LTTRS,2002-10-30 21:54:00,2003-02-01 14:59:00,NOT COLLATERAL
-146756,5149.97,CCJ,ASS,A,7757.48,507,47,KFF,FOLDERS,LTTRS,2002-10-30 22:54:00,2003-02-01 16:59:00,NOT COLLATERAL
-146767,5150.41,DDD,CKA,A,7760.59,507,48,EFH,FOLDERT,LTTRS,2002-10-30 23:54:00,2003-02-01 18:59:00,NOT COLLATERAL
-146778,5150.85,DDA,SWQ,A,7763.7,507,49,NGC,FOLDERU,LTTRZ,2002-10-31 00:54:00,2003-02-01 20:59:00,COLLATERAL
-146789,5151.29,DAA,KUH,A,7766.81,507,48,DER,FOLDERV,LTTRA,2002-10-31 01:54:00,2003-02-01 22:59:00,COLLATERAL
-146800,5151.73,DBB,XCV,A,7769.92,507,47,FVG,FOLDERW,LTTRB,2002-10-31 02:54:00,2003-02-02 00:59:00,COLLATERAL
-146811,5152.17,DCC,ZAQ,A,7773.03,507,46,KWE,FOLDERX,LTTRB,2002-10-31 03:54:00,2003-02-02 02:59:00,NOT COLLATERAL
-146822,5152.61,DEE,MKO,A,7776.14,507,45,WER,FOLDERY,LTTRA,2002-10-31 04:54:00,2003-02-02 04:59:00,NOT COLLATERAL
-146833,5153.05,DFF,VFR,A,7779.25,507,44,GFH,FOLDERZ,LTTRA,2002-10-31 05:54:00,2003-02-02 06:59:00,NOT COLLATERAL
-146844,5153.49,DGG,YUJ,A,7782.36,507,43,BGF,FOLDERZ,LTTRS,2002-10-31 06:54:00,2003-02-02 08:59:00,NOT COLLATERAL
-146855,5153.93,DHH,MED,A,7785.47,507,42,XCS,FOLDERZ,LTTRZ,2002-10-31 07:54:00,2003-02-02 10:59:00,NOT COLLATERAL
-146866,5154.37,AAA,SWE,A,7788.58,507,41,JHK,FOLDERZ,LTTRS,2002-10-31 08:54:00,2003-02-02 12:59:00,NOT COLLATERAL
-146877,5154.81,BBB,CVF,A,7791.69,507,40,SFD,FOLDERZ,LTTRS,2002-10-31 09:54:00,2003-02-02 14:59:00,NOT COLLATERAL
-146888,5155.25,CCC,DSFG,A,7794.8,507,39,WRE,FOLDERZ,LTTRS,2002-10-31 10:54:00,2003-02-02 16:59:00,NOT COLLATERAL
-146899,5155.69,DDD,ASDRE,A,7797.91,507,38,HGV,FOLDERZ,LTTRS,2002-10-31 11:54:00,2003-02-02 18:59:00,NOT COLLATERAL
-146910,5156.13,AAB,HJKSS,A,7801.02,507,37,KLS,FOLDERZ,LTTRS,2002-10-31 12:54:00,2003-02-02 20:59:00,COLLATERAL
-146921,5156.57,AAC,KHAA,A,7804.13,507,36,SDK,FOLDERZ,LTTRS,2002-10-31 13:54:00,2003-02-02 22:59:00,COLLATERAL
-146932,5157.01,AAD,KSLD,A,7807.24,507,35,MNV,FOLDERZ,LTTRS,2002-10-31 14:54:00,2003-02-03 00:59:00,COLLATERAL
-146943,5157.45,AAE,EKID,A,7810.35,507,34,OKW,FOLDERZ,LTTRS,2002-10-31 15:54:00,2003-02-03 02:59:00,NOT COLLATERAL
-146954,5157.89,AAF,VNCD,A,7813.46,507,33,ASS,FOLDERZ,LTTRS,2002-10-31 16:54:00,2003-02-03 04:59:00,NOT COLLATERAL
-146965,5158.33,BBA,DKD,A,7816.57,507,32,CKA,FOLDERZ,LTTRS,2002-10-31 17:54:00,2003-02-03 06:59:00,NOT COLLATERAL
-146976,5158.77,BBC,FKF,A,7819.68,507,31,SWQ,FOLDERZ,LTTRS,2002-10-31 18:54:00,2003-02-03 08:59:00,NOT COLLATERAL
-146987,5159.21,BBE,LES,A,7822.79,507,30,KUH,FOLDERX,LTTRS,2002-10-31 19:54:00,2003-02-03 10:59:00,NOT COLLATERAL
-146998,5159.65,BBF,KLD,A,7825.9,507,29,XCV,FOLDERX,LTTRS,2002-10-31 20:54:00,2003-02-03 12:59:00,NOT COLLATERAL
-147009,5160.09,BBG,SKL,A,7829.01,507,28,ZAQ,FOLDERX,LTTRS,2002-10-31 21:54:00,2003-02-03 14:59:00,NOT COLLATERAL
-147020,5160.53,BBH,SIW,A,7832.12,507,27,MKO,FOLDERX,LTTRZ,2002-10-31 22:54:00,2003-02-03 16:59:00,NOT COLLATERAL
-147031,5160.97,CCA,CKA,A,7835.23,507,26,VFR,FOLDERX,LTTRA,2002-10-31 23:54:00,2003-02-03 18:59:00,NOT COLLATERAL
-147042,5161.41,CCB,LDE,A,7838.34,507,25,YUJ,FOLDERX,LTTRB,2002-11-01 00:54:00,2003-02-03 20:59:00,COLLATERAL
-147053,5161.85,CCD,KFF,A,7841.45,507,24,AAA,FOLDERX,LTTRB,2002-11-01 01:54:00,2003-02-03 22:59:00,COLLATERAL
-147064,5162.29,CCE,EFH,A,7844.56,507,23,BBB,FOLDERX,LTTRA,2002-11-01 02:54:00,2003-02-04 00:59:00,COLLATERAL
-147075,5162.73,CCF,NGC,A,7847.67,507,22,CCC,FOLDERX,LTTRA,2002-11-01 03:54:00,2003-02-04 02:59:00,NOT COLLATERAL
-147086,5163.17,CCG,DER,A,7850.78,507,21,DDD,FOLDERX,LTTRS,2002-11-01 04:54:00,2003-02-04 04:59:00,NOT COLLATERAL
-147097,5163.61,CCH,FVG,A,7853.89,507,20,AAB,FOLDERX,LTTRZ,2002-11-01 05:54:00,2003-02-04 06:59:00,NOT COLLATERAL
-147108,5164.05,CCI,KWE,A,7857,507,19,AAC,FOLDERX,LTTRS,2002-11-01 06:54:00,2003-02-04 08:59:00,NOT COLLATERAL
-147119,5164.49,CCJ,WER,A,7860.11,507,18,AAD,FOLDERR,LTTRS,2002-11-01 07:54:00,2003-02-04 10:59:00,NOT COLLATERAL
-147130,5164.93,DDD,GFH,A,7863.22,507,17,AAE,FOLDERS,LTTRS,2002-11-01 08:54:00,2003-02-04 12:59:00,NOT COLLATERAL
-147141,5165.37,DDA,BGF,A,7866.33,507,16,AAF,FOLDERX,LTTRS,2002-11-01 09:54:00,2003-02-04 14:59:00,NOT COLLATERAL
-147152,5165.81,DAA,XCS,A,7869.44,507,15,BBA,FOLDERR,LTTRS,2002-11-01 10:54:00,2003-02-04 16:59:00,NOT COLLATERAL
-147163,5166.25,DBB,JHK,A,7872.55,507,14,BBC,FOLDERS,LTTRS,2002-11-01 11:54:00,2003-02-04 18:59:00,NOT COLLATERAL
-147174,5166.69,DCC,SFD,A,7875.66,507,13,BBE,FOLDERX,LTTRS,2002-11-01 12:54:00,2003-02-04 20:59:00,COLLATERAL
-147185,5167.13,DEE,WRE,A,7878.77,507,12,BBF,FOLDERR,LTTRS,2002-11-01 13:54:00,2003-02-04 22:59:00,COLLATERAL
-147196,5167.57,DFF,HGV,A,7881.88,507,11,BBG,FOLDERS,LTTRS,2002-11-01 14:54:00,2003-02-05 00:59:00,COLLATERAL
-147207,5168.01,DGG,KLS,A,7884.99,507,10,BBH,FOLDERX,LTTRS,2002-11-01 15:54:00,2003-02-05 02:59:00,NOT COLLATERAL
-147218,5168.45,DHH,SDK,A,7888.1,507,9,CCA,FOLDERR,LTTRS,2002-11-01 16:54:00,2003-02-05 04:59:00,NOT COLLATERAL
-147229,5168.89,AAA,MNV,A,7891.21,507,8,CCB,FOLDERS,LTTRS,2002-11-01 17:54:00,2003-02-05 06:59:00,NOT COLLATERAL
-147240,5169.33,BBB,OKW,A,7894.32,507,7,CCD,FOLDERX,LTTRS,2002-11-01 18:54:00,2003-02-05 08:59:00,NOT COLLATERAL
-147251,5169.77,CCC,ASS,A,7897.43,507,6,CCE,FOLDERR,LTTRS,2002-11-01 19:54:00,2003-02-05 10:59:00,NOT COLLATERAL
-147262,5170.21,DDD,CKA,A,7900.54,507,5,CCF,FOLDERS,LTTRZ,2002-11-01 20:54:00,2003-02-05 12:59:00,NOT COLLATERAL
-147273,5170.65,AAB,SWQ,A,7903.65,507,4,CCG,FOLDERX,LTTRA,2002-11-01 21:54:00,2003-02-05 14:59:00,NOT COLLATERAL
-147284,5171.09,AAC,KUH,A,7906.76,507,3,CCH,FOLDERD,LTTRB,2002-11-01 22:54:00,2003-02-05 16:59:00,NOT COLLATERAL
-147295,5171.53,AAD,XCV,A,7909.87,507,1,CCI,FOLDERE,LTTRB,2002-11-01 23:54:00,2003-02-05 18:59:00,NOT COLLATERAL
-147306,5171.97,AAE,ZAQ,A,7912.98,507,2,CCJ,FOLDERF,LTTRA,2002-11-02 00:54:00,2003-02-05 20:59:00,COLLATERAL
-147317,5172.41,AAF,MKO,A,7916.09,507,3,DDD,FOLDERG,LTTRA,2002-11-02 01:54:00,2003-02-05 22:59:00,COLLATERAL
-147328,5172.85,BBA,VFR,A,7919.2,507,4,DDA,FOLDERH,LTTRS,2002-11-02 02:54:00,2003-02-06 00:59:00,COLLATERAL
-147339,5173.29,BBC,YUJ,A,7922.31,507,5,DAA,FOLDERI,LTTRZ,2002-11-02 03:54:00,2003-02-06 02:59:00,NOT COLLATERAL
-147350,5173.73,BBE,MED,A,7925.42,507,6,FKF,FOLDERJ,LTTRS,2002-11-02 04:54:00,2003-02-06 04:59:00,NOT COLLATERAL
-147361,5174.17,BBF,SWE,A,7928.53,507,7,LES,FOLDERK,LTTRS,2002-11-02 05:54:00,2003-02-06 06:59:00,NOT COLLATERAL
-147372,5174.61,BBG,CVF,A,7931.64,507,8,KLD,FOLDERL,LTTRS,2002-11-02 06:54:00,2003-02-06 08:59:00,NOT COLLATERAL
-147383,5175.05,BBH,DSFG,A,7934.75,507,9,SKL,FOLDERM,LTTRS,2002-11-02 07:54:00,2003-02-06 10:59:00,NOT COLLATERAL
-147394,5175.49,CCA,ASDRE,A,7937.86,507,10,SIW,FOLDERN,LTTRS,2002-11-02 08:54:00,2003-02-06 12:59:00,NOT COLLATERAL
-147405,5175.93,CCB,HJKSS,A,7940.97,507,11,CKA,FOLDERN,LTTRS,2002-11-02 09:54:00,2003-02-06 14:59:00,NOT COLLATERAL
-147416,5176.37,CCD,KHAA,A,7944.08,507,12,LDE,FOLDERN,LTTRS,2002-11-02 10:54:00,2003-02-06 16:59:00,NOT COLLATERAL
-147427,5176.81,CCE,KSLD,A,7947.19,507,13,KFF,FOLDERN,LTTRS,2002-11-02 11:54:00,2003-02-06 18:59:00,NOT COLLATERAL
-147438,5177.25,CCF,EKID,A,7950.3,507,14,EFH,FOLDERL,LTTRS,2002-11-02 12:54:00,2003-02-06 20:59:00,COLLATERAL
-147449,5177.69,CCG,VNCD,A,7953.41,507,15,NGC,FOLDERL,LTTRS,2002-11-02 13:54:00,2003-02-06 22:59:00,COLLATERAL
-147460,5178.13,CCH,DKD,A,7956.52,507,16,DER,FOLDERL,LTTRS,2002-11-02 14:54:00,2003-02-07 00:59:00,COLLATERAL
-147471,5178.57,CCI,FKF,A,7959.63,507,17,FVG,FOLDERL,LTTRS,2002-11-02 15:54:00,2003-02-07 02:59:00,NOT COLLATERAL
-147482,5179.01,CCJ,LES,A,7962.74,507,18,KWE,FOLDERL,LTTRS,2002-11-02 16:54:00,2003-02-07 04:59:00,NOT COLLATERAL
-147493,5179.45,DDD,KLD,A,7965.85,507,19,WER,FOLDERA,LTTRS,2002-11-02 17:54:00,2003-02-07 06:59:00,NOT COLLATERAL
-147504,5179.89,DDA,SKL,A,7968.96,507,20,GFH,FOLDERB,LTTRZ,2002-11-02 18:54:00,2003-02-07 08:59:00,NOT COLLATERAL
-147515,5180.33,DAA,SIW,A,7972.07,507,21,BGF,FOLDERC,LTTRA,2002-11-02 19:54:00,2003-02-07 10:59:00,NOT COLLATERAL
-147526,5180.77,DBB,CKA,A,7975.18,507,22,XCS,FOLDERD,LTTRB,2002-11-02 20:54:00,2003-02-07 12:59:00,NOT COLLATERAL
-147537,5181.21,DCC,LDE,A,7978.29,507,23,JHK,FOLDERE,LTTRB,2002-11-02 21:54:00,2003-02-07 14:59:00,NOT COLLATERAL
-147548,5181.65,DEE,KFF,A,7981.4,507,24,SFD,FOLDERF,LTTRA,2002-11-02 22:54:00,2003-02-07 16:59:00,NOT COLLATERAL
-147559,5182.09,DFF,EFH,A,7984.51,507,25,WRE,FOLDERG,LTTRA,2002-11-02 23:54:00,2003-02-07 18:59:00,NOT COLLATERAL
-147570,5182.53,DGG,NGC,A,7987.62,507,26,HGV,FOLDERH,LTTRS,2002-11-03 00:54:00,2003-02-07 20:59:00,COLLATERAL
-147581,5182.97,DHH,DER,A,7990.73,507,27,KLS,FOLDERI,LTTRZ,2002-11-03 01:54:00,2003-02-07 22:59:00,COLLATERAL
-147592,5183.41,AAA,FVG,A,7993.84,507,28,SDK,FOLDERJ,LTTRS,2002-11-03 02:54:00,2003-02-08 00:59:00,COLLATERAL
-147603,5183.85,BBB,KWE,A,7996.95,507,29,MNV,FOLDERK,LTTRS,2002-11-03 03:54:00,2003-02-08 02:59:00,NOT COLLATERAL
-147614,5184.29,CCC,WER,A,8000.06,507,30,OKW,FOLDERL,LTTRS,2002-11-03 04:54:00,2003-02-08 04:59:00,NOT COLLATERAL
-147625,5184.73,DDD,GFH,A,8003.17,507,31,ASS,FOLDERM,LTTRS,2002-11-03 05:54:00,2003-02-08 06:59:00,NOT COLLATERAL
-147636,5185.17,AAB,BGF,A,8006.28,507,32,CKA,FOLDERN,LTTRS,2002-11-03 06:54:00,2003-02-08 08:59:00,NOT COLLATERAL
-147647,5185.61,AAC,XCS,A,8009.39,507,33,SWQ,FOLDERO,LTTRS,2002-11-03 07:54:00,2003-02-08 10:59:00,NOT COLLATERAL
-147658,5186.05,AAD,JHK,A,8012.5,507,34,KUH,FOLDERP,LTTRS,2002-11-03 08:54:00,2003-02-08 12:59:00,NOT COLLATERAL
-147669,5186.49,AAE,SFD,A,8015.61,507,35,XCV,FOLDERQ,LTTRS,2002-11-03 09:54:00,2003-02-08 14:59:00,NOT COLLATERAL
-147680,5186.93,AAF,WRE,A,8018.72,507,36,ZAQ,FOLDERR,LTTRS,2002-11-03 10:54:00,2003-02-08 16:59:00,NOT COLLATERAL
-147691,5187.37,BBA,HGV,A,8021.83,507,37,MKO,FOLDERS,LTTRS,2002-11-03 11:54:00,2003-02-08 18:59:00,NOT COLLATERAL
-147702,5187.81,BBC,KLS,A,8024.94,507,38,VFR,FOLDERT,LTTRS,2002-11-03 12:54:00,2003-02-08 20:59:00,COLLATERAL
-147713,5188.25,BBE,SDK,A,8028.05,507,39,YUJ,FOLDERU,LTTRS,2002-11-03 13:54:00,2003-02-08 22:59:00,COLLATERAL
-147724,5188.69,BBF,MNV,A,8031.16,507,40,AAA,FOLDERV,LTTRS,2002-11-03 14:54:00,2003-02-09 00:59:00,COLLATERAL
-147735,5189.13,BBG,OKW,A,8034.27,507,41,BBB,FOLDERW,LTTRS,2002-11-03 15:54:00,2003-02-09 02:59:00,NOT COLLATERAL
-147746,5189.57,BBH,ASS,A,8037.38,507,42,CCC,FOLDERX,LTTRZ,2002-11-03 16:54:00,2003-02-09 04:59:00,NOT COLLATERAL
-147757,5190.01,CCA,CKA,A,8040.49,507,43,DDD,FOLDERY,LTTRA,2002-11-03 17:54:00,2003-02-09 06:59:00,NOT COLLATERAL
-147768,5190.45,CCB,SWQ,A,8043.6,507,44,AAB,FOLDERZ,LTTRB,2002-11-03 18:54:00,2003-02-09 08:59:00,NOT COLLATERAL
-147779,5190.89,CCD,KUH,A,8046.71,507,45,AAC,FOLDERA,LTTRB,2002-11-03 19:54:00,2003-02-09 10:59:00,NOT COLLATERAL
-147790,5191.33,CCE,XCV,A,8049.82,507,46,AAD,FOLDERB,LTTRA,2002-11-03 20:54:00,2003-02-09 12:59:00,NOT COLLATERAL
-147801,5191.77,CCF,ZAQ,A,8052.93,507,47,AAE,FOLDERC,LTTRA,2002-11-03 21:54:00,2003-02-09 14:59:00,NOT COLLATERAL
-147812,5192.21,CCG,MKO,A,8056.04,507,48,AAF,FOLDERD,LTTRS,2002-11-03 22:54:00,2003-02-09 16:59:00,NOT COLLATERAL
-147823,5192.65,CCH,VFR,A,8059.15,507,49,BBA,FOLDERE,LTTRZ,2002-11-03 23:54:00,2003-02-09 18:59:00,NOT COLLATERAL
-147834,5193.09,CCI,YUJ,A,8062.26,507,48,BBC,FOLDERF,LTTRS,2002-11-04 00:54:00,2003-02-09 20:59:00,COLLATERAL
-147845,5193.53,CCJ,MED,A,8065.37,507,47,BBE,FOLDERG,LTTRS,2002-11-04 01:54:00,2003-02-09 22:59:00,COLLATERAL
-147856,5193.97,DDD,SWE,A,8068.48,507,46,BBF,FOLDERH,LTTRS,2002-11-04 02:54:00,2003-02-10 00:59:00,COLLATERAL
-147867,5194.41,DDA,CVF,A,8071.59,507,45,BBG,FOLDERI,LTTRS,2002-11-04 03:54:00,2003-02-10 02:59:00,NOT COLLATERAL
-147878,5194.85,DAA,DSFG,A,8074.7,507,44,BBH,FOLDERJ,LTTRS,2002-11-04 04:54:00,2003-02-10 04:59:00,NOT COLLATERAL
-147889,5195.29,DBB,ASDRE,A,8077.81,507,43,CCA,FOLDERK,LTTRS,2002-11-04 05:54:00,2003-02-10 06:59:00,NOT COLLATERAL
-147900,5195.73,DCC,HJKSS,A,8080.92,507,42,CCB,FOLDERL,LTTRS,2002-11-04 06:54:00,2003-02-10 08:59:00,NOT COLLATERAL
-147911,5196.17,DEE,KHAA,A,8084.03,507,41,CCD,FOLDERM,LTTRS,2002-11-04 07:54:00,2003-02-10 10:59:00,NOT COLLATERAL
-147922,5196.61,DFF,KSLD,A,8087.14,507,40,CCE,FOLDERN,LTTRS,2002-11-04 08:54:00,2003-02-10 12:59:00,NOT COLLATERAL
-147933,5197.05,DGG,EKID,A,8090.25,507,39,CCF,FOLDERO,LTTRS,2002-11-04 09:54:00,2003-02-10 14:59:00,NOT COLLATERAL
-147944,5197.49,DHH,VNCD,A,8093.36,507,38,CCG,FOLDERP,LTTRS,2002-11-04 10:54:00,2003-02-10 16:59:00,NOT COLLATERAL
-147955,5197.93,AAA,DKD,A,8096.47,502,37,CCH,FOLDERQ,LTTRS,2002-11-04 11:54:00,2003-02-10 18:59:00,NOT COLLATERAL
-147966,5198.37,BBB,FKF,A,8099.58,497,36,CCI,FOLDERR,LTTRS,2002-11-04 12:54:00,2003-02-10 20:59:00,COLLATERAL
-147977,5198.81,CCC,LES,A,8102.69,492,35,CCJ,FOLDERS,LTTRS,2002-11-04 13:54:00,2003-02-10 22:59:00,COLLATERAL
-147988,5199.25,DDD,KLD,A,8105.8,487,34,DDD,FOLDERT,LTTRZ,2002-11-04 14:54:00,2003-02-11 00:59:00,COLLATERAL
-147999,5199.69,AAB,SKL,A,8108.91,482,33,DDA,FOLDERU,LTTRA,2002-11-04 15:54:00,2003-02-11 02:59:00,NOT COLLATERAL
-148010,5200.13,AAC,SIW,A,8112.02,477,32,DAA,FOLDERV,LTTRB,2002-11-04 16:54:00,2003-02-11 04:59:00,NOT COLLATERAL
-148021,5200.57,AAD,CKA,A,8115.13,472,31,FKF,FOLDERW,LTTRB,2002-11-04 17:54:00,2003-02-11 06:59:00,NOT COLLATERAL
-148032,5201.01,AAE,LDE,A,8118.24,467,30,LES,FOLDERX,LTTRA,2002-11-04 18:54:00,2003-02-11 08:59:00,NOT COLLATERAL
-148043,5201.45,AAF,KFF,A,8121.35,462,29,KLD,FOLDERY,LTTRA,2002-11-04 19:54:00,2003-02-11 10:59:00,NOT COLLATERAL
-148054,5201.89,BBA,EFH,A,8124.46,457,28,SKL,FOLDERZ,LTTRS,2002-11-04 20:54:00,2003-02-11 12:59:00,NOT COLLATERAL
-148065,5202.33,BBC,NGC,A,8127.57,452,27,SIW,FOLDERZ,LTTRZ,2002-11-04 21:54:00,2003-02-11 14:59:00,NOT COLLATERAL
-148076,5202.77,BBE,DER,A,8130.68,447,26,CKA,FOLDERZ,LTTRS,2002-11-04 22:54:00,2003-02-11 16:59:00,NOT COLLATERAL
-148087,5203.21,BBF,FVG,A,8133.79,442,25,LDE,FOLDERZ,LTTRS,2002-11-04 23:54:00,2003-02-11 18:59:00,NOT COLLATERAL
-148098,5203.65,BBG,KWE,A,8136.9,437,24,KFF,FOLDERZ,LTTRS,2002-11-05 00:54:00,2003-02-11 20:59:00,COLLATERAL
-148109,5204.09,BBH,WER,A,8140.01,432,23,EFH,FOLDERZ,LTTRS,2002-11-05 01:54:00,2003-02-11 22:59:00,COLLATERAL
-148120,5204.53,CCA,GFH,A,8143.12,427,22,NGC,FOLDERZ,LTTRS,2002-11-05 02:54:00,2003-02-12 00:59:00,COLLATERAL
-148131,5204.97,CCB,BGF,A,8146.23,422,21,DER,FOLDERZ,LTTRS,2002-11-05 03:54:00,2003-02-12 02:59:00,NOT COLLATERAL
-148142,5205.41,CCD,XCS,A,8149.34,417,20,FVG,FOLDERZ,LTTRS,2002-11-05 04:54:00,2003-02-12 04:59:00,NOT COLLATERAL
-148153,5205.85,CCE,JHK,A,8152.45,412,19,KWE,FOLDERZ,LTTRS,2002-11-05 05:54:00,2003-02-12 06:59:00,NOT COLLATERAL
-148164,5206.29,CCF,SFD,A,8155.56,407,18,WER,FOLDERZ,LTTRS,2002-11-05 06:54:00,2003-02-12 08:59:00,NOT COLLATERAL
-148175,5206.73,CCG,WRE,A,8158.67,402,17,GFH,FOLDERZ,LTTRS,2002-11-05 07:54:00,2003-02-12 10:59:00,NOT COLLATERAL
-148186,5207.17,CCH,HGV,A,8161.78,397,16,BGF,FOLDERZ,LTTRS,2002-11-05 08:54:00,2003-02-12 12:59:00,NOT COLLATERAL
-148197,5207.61,CCI,KLS,A,8164.89,392,15,XCS,FOLDERZ,LTTRS,2002-11-05 09:54:00,2003-02-12 14:59:00,NOT COLLATERAL
-148208,5208.05,CCJ,SDK,A,8168,387,14,JHK,FOLDERX,LTTRS,2002-11-05 10:54:00,2003-02-12 16:59:00,NOT COLLATERAL
-148219,5208.49,DDD,MNV,A,8171.11,382,13,SFD,FOLDERX,LTTRS,2002-11-05 11:54:00,2003-02-12 18:59:00,NOT COLLATERAL
-148230,5208.93,DDA,OKW,A,8174.22,377,12,WRE,FOLDERX,LTTRZ,2002-11-05 12:54:00,2003-02-12 20:59:00,COLLATERAL
-148241,5209.37,DAA,ASS,A,8177.33,372,11,HGV,FOLDERX,LTTRA,2002-11-05 13:54:00,2003-02-12 22:59:00,COLLATERAL
-148252,5209.81,DBB,CKA,A,8180.44,367,10,KLS,FOLDERX,LTTRB,2002-11-05 14:54:00,2003-02-13 00:59:00,COLLATERAL
-148263,5210.25,DCC,SWQ,A,8183.55,362,9,SDK,FOLDERX,LTTRB,2002-11-05 15:54:00,2003-02-13 02:59:00,NOT COLLATERAL
-148274,5210.69,DEE,KUH,A,8186.66,357,8,MNV,FOLDERX,LTTRA,2002-11-05 16:54:00,2003-02-13 04:59:00,NOT COLLATERAL
-148285,5211.13,DFF,XCV,A,8189.77,352,7,OKW,FOLDERX,LTTRA,2002-11-05 17:54:00,2003-02-13 06:59:00,NOT COLLATERAL
-148296,5211.57,DGG,ZAQ,A,8192.88,347,6,ASS,FOLDERX,LTTRS,2002-11-05 18:54:00,2003-02-13 08:59:00,NOT COLLATERAL
-148307,5212.01,DHH,MKO,A,8195.99,342,5,CKA,FOLDERX,LTTRZ,2002-11-05 19:54:00,2003-02-13 10:59:00,NOT COLLATERAL
-148318,5212.45,AAA,VFR,A,8199.1,337,4,SWQ,FOLDERX,LTTRS,2002-11-05 20:54:00,2003-02-13 12:59:00,NOT COLLATERAL
-148329,5212.89,BBB,YUJ,A,8202.21,332,3,KUH,FOLDERX,LTTRS,2002-11-05 21:54:00,2003-02-13 14:59:00,NOT COLLATERAL
-148340,5213.33,CCC,MED,A,8205.32,327,1,XCV,FOLDERR,LTTRS,2002-11-05 22:54:00,2003-02-13 16:59:00,NOT COLLATERAL
-148351,5213.77,DDD,SWE,A,8208.43,322,2,ZAQ,FOLDERS,LTTRS,2002-11-05 23:54:00,2003-02-13 18:59:00,NOT COLLATERAL
-148362,5214.21,AAB,CVF,A,8211.54,317,3,MKO,FOLDERX,LTTRS,2002-11-06 00:54:00,2003-02-13 20:59:00,COLLATERAL
-148373,5214.65,AAC,DSFG,A,8214.65,312,4,VFR,FOLDERR,LTTRS,2002-11-06 01:54:00,2003-02-13 22:59:00,COLLATERAL
-148384,5215.09,AAD,ASDRE,A,8217.76,307,5,YUJ,FOLDERS,LTTRS,2002-11-06 02:54:00,2003-02-14 00:59:00,COLLATERAL
-148395,5215.53,AAE,HJKSS,A,8220.87,302,6,AAA,FOLDERX,LTTRS,2002-11-06 03:54:00,2003-02-14 02:59:00,NOT COLLATERAL
-148406,5215.97,AAF,KHAA,A,8223.98,297,7,BBB,FOLDERR,LTTRS,2002-11-06 04:54:00,2003-02-14 04:59:00,NOT COLLATERAL
-148417,5216.41,BBA,KSLD,A,8227.09,292,8,CCC,FOLDERS,LTTRS,2002-11-06 05:54:00,2003-02-14 06:59:00,NOT COLLATERAL
-148428,5216.85,BBC,EKID,A,8230.2,287,9,DDD,FOLDERX,LTTRS,2002-11-06 06:54:00,2003-02-14 08:59:00,NOT COLLATERAL
-148439,5217.29,BBE,VNCD,A,8233.31,282,10,AAB,FOLDERR,LTTRS,2002-11-06 07:54:00,2003-02-14 10:59:00,NOT COLLATERAL
-148450,5217.73,BBF,DKD,A,8236.42,277,11,AAC,FOLDERS,LTTRS,2002-11-06 08:54:00,2003-02-14 12:59:00,NOT COLLATERAL
-148461,5218.17,BBG,FKF,A,8239.53,272,12,AAD,FOLDERX,LTTRS,2002-11-06 09:54:00,2003-02-14 14:59:00,NOT COLLATERAL
-148472,5218.61,BBH,LES,A,8242.64,267,13,AAE,FOLDERR,LTTRZ,2002-11-06 10:54:00,2003-02-14 16:59:00,NOT COLLATERAL
-148483,5219.05,CCA,KLD,A,8245.75,262,14,AAF,FOLDERS,LTTRA,2002-11-06 11:54:00,2003-02-14 18:59:00,NOT COLLATERAL
-148494,5219.49,CCB,SKL,A,8248.86,257,15,BBA,FOLDERX,LTTRB,2002-11-06 12:54:00,2003-02-14 20:59:00,COLLATERAL
-148505,5219.93,CCD,SIW,A,8251.97,252,16,BBC,FOLDERD,LTTRB,2002-11-06 13:54:00,2003-02-14 22:59:00,COLLATERAL
-148516,5220.37,CCE,CKA,A,8255.08,247,17,BBE,FOLDERE,LTTRA,2002-11-06 14:54:00,2003-02-15 00:59:00,COLLATERAL
-148527,5220.81,CCF,LDE,A,8258.19,242,18,BBF,FOLDERF,LTTRA,2002-11-06 15:54:00,2003-02-15 02:59:00,NOT COLLATERAL
-148538,5221.25,CCG,KFF,A,8261.3,237,19,BBG,FOLDERG,LTTRS,2002-11-06 16:54:00,2003-02-15 04:59:00,NOT COLLATERAL
-148549,5221.69,CCH,EFH,A,8264.41,232,20,BBH,FOLDERH,LTTRZ,2002-11-06 17:54:00,2003-02-15 06:59:00,NOT COLLATERAL
-148560,5222.13,CCI,NGC,A,8267.52,227,21,CCA,FOLDERI,LTTRS,2002-11-06 18:54:00,2003-02-15 08:59:00,NOT COLLATERAL
-148571,5222.57,CCJ,DER,A,8270.63,222,22,CCB,FOLDERJ,LTTRS,2002-11-06 19:54:00,2003-02-15 10:59:00,NOT COLLATERAL
-148582,5223.01,DDD,FVG,A,8273.74,217,23,CCD,FOLDERK,LTTRS,2002-11-06 20:54:00,2003-02-15 12:59:00,NOT COLLATERAL
-148593,5223.45,DDA,KWE,A,8276.85,212,24,CCE,FOLDERL,LTTRS,2002-11-06 21:54:00,2003-02-15 14:59:00,NOT COLLATERAL
-148604,5223.89,DAA,WER,A,8279.96,207,25,CCF,FOLDERM,LTTRS,2002-11-06 22:54:00,2003-02-15 16:59:00,NOT COLLATERAL
-148615,5224.33,DBB,GFH,A,8283.07,202,26,CCG,FOLDERN,LTTRS,2002-11-06 23:54:00,2003-02-15 18:59:00,NOT COLLATERAL
-148626,5224.77,DCC,BGF,A,8286.18,197,27,CCH,FOLDERN,LTTRS,2002-11-07 00:54:00,2003-02-15 20:59:00,COLLATERAL
-148637,5225.21,DEE,XCS,A,8289.29,192,28,CCI,FOLDERN,LTTRS,2002-11-07 01:54:00,2003-02-15 22:59:00,COLLATERAL
-148648,5225.65,DFF,JHK,A,8292.4,187,29,CCJ,FOLDERN,LTTRS,2002-11-07 02:54:00,2003-02-16 00:59:00,COLLATERAL
-148659,5226.09,DGG,SFD,A,8295.51,182,30,DDD,FOLDERL,LTTRS,2002-11-07 03:54:00,2003-02-16 02:59:00,NOT COLLATERAL
-148670,5226.53,DHH,WRE,A,8298.62,177,31,DDA,FOLDERL,LTTRS,2002-11-07 04:54:00,2003-02-16 04:59:00,NOT COLLATERAL
-148681,5226.97,AAA,HGV,A,8301.73,172,32,DAA,FOLDERL,LTTRS,2002-11-07 05:54:00,2003-02-16 06:59:00,NOT COLLATERAL
-148692,5227.41,BBB,KLS,A,8304.84,167,33,FKF,FOLDERL,LTTRS,2002-11-07 06:54:00,2003-02-16 08:59:00,NOT COLLATERAL
-148703,5227.85,CCC,SDK,A,8307.95,162,34,LES,FOLDERL,LTTRS,2002-11-07 07:54:00,2003-02-16 10:59:00,NOT COLLATERAL
-148714,5228.29,DDD,MNV,A,8311.06,157,35,KLD,FOLDERA,LTTRZ,2002-11-07 08:54:00,2003-02-16 12:59:00,NOT COLLATERAL
-148725,5228.73,AAB,OKW,A,8314.17,152,36,SKL,FOLDERB,LTTRA,2002-11-07 09:54:00,2003-02-16 14:59:00,NOT COLLATERAL
-148736,5229.17,AAC,ASS,A,8317.28,147,37,SIW,FOLDERC,LTTRB,2002-11-07 10:54:00,2003-02-16 16:59:00,NOT COLLATERAL
-148747,5229.61,AAD,CKA,A,8320.39,142,38,CKA,FOLDERD,LTTRB,2002-11-07 11:54:00,2003-02-16 18:59:00,NOT COLLATERAL
-148758,5230.05,AAE,SWQ,A,8323.5,137,39,LDE,FOLDERE,LTTRA,2002-11-07 12:54:00,2003-02-16 20:59:00,COLLATERAL
-148769,5230.49,AAF,KUH,A,8326.61,132,40,KFF,FOLDERF,LTTRA,2002-11-07 13:54:00,2003-02-16 22:59:00,COLLATERAL
-148780,5230.93,BBA,XCV,A,8329.72,127,41,EFH,FOLDERG,LTTRS,2002-11-07 14:53:00,2003-02-17 00:59:00,COLLATERAL
-148791,5231.37,BBC,ZAQ,A,8332.83,122,42,NGC,FOLDERH,LTTRZ,2002-11-07 15:53:00,2003-02-17 02:59:00,NOT COLLATERAL
-148802,5231.81,BBE,MKO,A,8335.94,117,43,DER,FOLDERI,LTTRS,2002-11-07 16:53:00,2003-02-17 04:59:00,NOT COLLATERAL
-148813,5232.25,BBF,VFR,A,8339.05,112,44,FVG,FOLDERJ,LTTRS,2002-11-07 17:53:00,2003-02-17 06:59:00,NOT COLLATERAL
-148824,5232.69,BBG,YUJ,A,8342.16,107,45,KWE,FOLDERK,LTTRS,2002-11-07 18:53:00,2003-02-17 08:59:00,NOT COLLATERAL
-148835,5233.13,BBH,MED,A,8345.27,102,46,WER,FOLDERL,LTTRS,2002-11-07 19:53:00,2003-02-17 10:59:00,NOT COLLATERAL
-148846,5233.57,CCA,SWE,A,8348.38,97,47,GFH,FOLDERM,LTTRS,2002-11-07 20:53:00,2003-02-17 12:59:00,NOT COLLATERAL
-148857,5234.01,CCB,CVF,A,8351.49,92,48,BGF,FOLDERN,LTTRS,2002-11-07 21:53:00,2003-02-17 14:59:00,NOT COLLATERAL
-148868,5234.45,CCD,DSFG,A,8354.6,87,49,XCS,FOLDERO,LTTRS,2002-11-07 22:53:00,2003-02-17 16:59:00,NOT COLLATERAL
-148879,5234.89,CCE,ASDRE,A,8357.71,82,48,JHK,FOLDERP,LTTRS,2002-11-07 23:53:00,2003-02-17 18:59:00,NOT COLLATERAL
-148890,5235.33,CCF,HJKSS,A,8360.82,77,47,SFD,FOLDERQ,LTTRS,2002-11-08 00:53:00,2003-02-17 20:59:00,COLLATERAL
-148901,5235.77,CCG,KHAA,A,8363.93,72,46,WRE,FOLDERR,LTTRS,2002-11-08 01:53:00,2003-02-17 22:59:00,COLLATERAL
-148912,5236.21,CCH,KSLD,A,8367.04,67,45,HGV,FOLDERS,LTTRS,2002-11-08 02:53:00,2003-02-18 00:59:00,COLLATERAL
-148923,5236.65,CCI,EKID,A,8370.15,62,44,KLS,FOLDERT,LTTRS,2002-11-08 03:53:00,2003-02-18 02:59:00,NOT COLLATERAL
-148934,5237.09,CCJ,VNCD,A,8373.26,57,43,SDK,FOLDERU,LTTRS,2002-11-08 04:53:00,2003-02-18 04:59:00,NOT COLLATERAL
-148945,5237.53,DDD,DKD,A,8376.37,52,42,MNV,FOLDERV,LTTRS,2002-11-08 05:53:00,2003-02-18 06:59:00,NOT COLLATERAL
-148956,5237.97,DDA,FKF,A,8379.48,47,41,OKW,FOLDERW,LTTRZ,2002-11-08 06:53:00,2003-02-18 08:59:00,NOT COLLATERAL
-148967,5238.41,DAA,LES,A,8382.59,42,40,ASS,FOLDERX,LTTRA,2002-11-08 07:53:00,2003-02-18 10:59:00,NOT COLLATERAL
-148978,5238.85,DBB,KLD,A,8385.7,43,39,CKA,FOLDERY,LTTRB,2002-11-08 08:53:00,2003-02-18 12:59:00,NOT COLLATERAL
-148989,5239.29,DCC,SKL,A,8388.81,44,38,SWQ,FOLDERZ,LTTRB,2002-11-08 09:53:00,2003-02-18 14:59:00,NOT COLLATERAL
-149000,5239.73,DEE,SIW,A,8391.92,45,37,KUH,FOLDERA,LTTRA,2002-11-08 10:53:00,2003-02-18 16:59:00,NOT COLLATERAL
-149011,5240.17,DFF,CKA,A,8395.03,46,36,XCV,FOLDERB,LTTRA,2002-11-08 11:53:00,2003-02-18 18:59:00,NOT COLLATERAL
-149022,5240.61,DGG,LDE,A,8398.14,47,35,ZAQ,FOLDERC,LTTRS,2002-11-08 12:53:00,2003-02-18 20:59:00,COLLATERAL
-149033,5241.05,DHH,KFF,A,8401.25,48,34,MKO,FOLDERD,LTTRZ,2002-11-08 13:53:00,2003-02-18 22:59:00,COLLATERAL
-149044,5241.49,AAA,EFH,A,8404.36,49,33,VFR,FOLDERE,LTTRS,2002-11-08 14:53:00,2003-02-19 00:59:00,COLLATERAL
-149055,5241.93,BBB,NGC,A,8407.47,50,32,YUJ,FOLDERF,LTTRS,2002-11-08 15:53:00,2003-02-19 02:59:00,NOT COLLATERAL
-149066,5242.37,CCC,DER,A,8410.58,51,31,AAA,FOLDERG,LTTRS,2002-11-08 16:53:00,2003-02-19 04:59:00,NOT COLLATERAL
-149077,5242.81,DDD,FVG,A,8413.69,52,30,BBB,FOLDERH,LTTRS,2002-11-08 17:53:00,2003-02-19 06:59:00,NOT COLLATERAL
-149088,5243.25,AAB,KWE,A,8416.8,53,29,CCC,FOLDERI,LTTRS,2002-11-08 18:53:00,2003-02-19 08:59:00,NOT COLLATERAL
-149099,5243.69,AAC,WER,A,8419.91,54,28,DDD,FOLDERJ,LTTRS,2002-11-08 19:53:00,2003-02-19 10:59:00,NOT COLLATERAL
-149110,5244.13,AAD,GFH,A,8423.02,55,27,AAB,FOLDERK,LTTRS,2002-11-08 20:53:00,2003-02-19 12:59:00,NOT COLLATERAL
-149121,5244.57,AAE,BGF,A,8426.13,56,26,AAC,FOLDERL,LTTRS,2002-11-08 21:53:00,2003-02-19 14:59:00,NOT COLLATERAL
-149132,5245.01,AAF,XCS,A,8429.24,57,25,AAD,FOLDERM,LTTRS,2002-11-08 22:53:00,2003-02-19 16:59:00,NOT COLLATERAL
-149143,5245.45,BBA,JHK,A,8432.35,58,24,AAE,FOLDERN,LTTRS,2002-11-08 23:53:00,2003-02-19 18:59:00,NOT COLLATERAL
-149154,5245.89,BBC,SFD,A,8435.46,59,23,AAF,FOLDERO,LTTRS,2002-11-09 00:53:00,2003-02-19 20:59:00,COLLATERAL
-149165,5246.33,BBE,WRE,A,8438.57,60,22,BBA,FOLDERP,LTTRS,2002-11-09 01:53:00,2003-02-19 22:59:00,COLLATERAL
-149176,5246.77,BBF,HGV,A,8441.68,61,21,BBC,FOLDERQ,LTTRS,2002-11-09 02:53:00,2003-02-20 00:59:00,COLLATERAL
-149187,5247.21,BBG,KLS,A,8444.79,62,20,BBE,FOLDERR,LTTRS,2002-11-09 03:53:00,2003-02-20 02:59:00,NOT COLLATERAL
-149198,5247.65,BBH,SDK,A,8447.9,63,19,BBF,FOLDERS,LTTRZ,2002-11-09 04:53:00,2003-02-20 04:59:00,NOT COLLATERAL
-149209,5248.09,CCA,MNV,A,8451.01,64,18,BBG,FOLDERT,LTTRA,2002-11-09 05:53:00,2003-02-20 06:59:00,NOT COLLATERAL
-149220,5248.53,CCB,OKW,A,8454.12,65,17,BBH,FOLDERU,LTTRB,2002-11-09 06:53:00,2003-02-20 08:59:00,NOT COLLATERAL
-149231,5248.97,CCD,ASS,A,8457.23,66,16,CCA,FOLDERV,LTTRB,2002-11-09 07:53:00,2003-02-20 10:59:00,NOT COLLATERAL
-149242,5249.41,CCE,CKA,A,8460.34,67,15,CCB,FOLDERW,LTTRA,2002-11-09 08:53:00,2003-02-20 12:59:00,NOT COLLATERAL
-149253,5249.85,CCF,SWQ,A,8463.45,68,14,CCD,FOLDERX,LTTRA,2002-11-09 09:53:00,2003-02-20 14:59:00,NOT COLLATERAL
-149264,5250.29,CCG,KUH,A,8466.56,69,13,CCE,FOLDERY,LTTRS,2002-11-09 10:53:00,2003-02-20 16:59:00,NOT COLLATERAL
-149275,5250.73,CCH,XCV,A,8469.67,70,12,CCF,FOLDERZ,LTTRZ,2002-11-09 11:53:00,2003-02-20 18:59:00,NOT COLLATERAL
-149286,5251.17,CCI,ZAQ,A,8472.78,71,11,CCG,FOLDERZ,LTTRS,2002-11-09 12:53:00,2003-02-20 20:59:00,COLLATERAL
-149297,5251.61,CCJ,MKO,A,8475.89,72,10,CCH,FOLDERZ,LTTRS,2002-11-09 13:53:00,2003-02-20 22:59:00,COLLATERAL
-149308,5252.05,DDD,VFR,A,8479,73,9,CCI,FOLDERZ,LTTRS,2002-11-09 14:53:00,2003-02-21 00:59:00,COLLATERAL
-149319,5252.49,DDA,YUJ,A,8482.11,74,8,CCJ,FOLDERZ,LTTRS,2002-11-09 15:53:00,2003-02-21 02:59:00,NOT COLLATERAL
-149330,5252.93,DAA,MED,A,8485.22,75,7,DDD,FOLDERZ,LTTRS,2002-11-09 16:53:00,2003-02-21 04:59:00,NOT COLLATERAL
-149341,5253.37,DBB,SWE,A,8488.33,76,6,DDA,FOLDERZ,LTTRS,2002-11-09 17:53:00,2003-02-21 06:59:00,NOT COLLATERAL
-149352,5253.81,DCC,CVF,A,8491.44,77,5,DAA,FOLDERZ,LTTRS,2002-11-09 18:53:00,2003-02-21 08:59:00,NOT COLLATERAL
-149363,5254.25,DEE,DSFG,A,8494.55,78,4,FKF,FOLDERZ,LTTRS,2002-11-09 19:53:00,2003-02-21 10:59:00,NOT COLLATERAL
-149374,5254.69,DFF,ASDRE,A,8497.66,79,3,LES,FOLDERZ,LTTRS,2002-11-09 20:53:00,2003-02-21 12:59:00,NOT COLLATERAL
-149385,5255.13,DGG,HJKSS,A,8500.77,80,1,KLD,FOLDERZ,LTTRS,2002-11-09 21:53:00,2003-02-21 14:59:00,NOT COLLATERAL
-149396,5255.57,DHH,KHAA,A,8503.88,81,2,SKL,FOLDERZ,LTTRS,2002-11-09 22:53:00,2003-02-21 16:59:00,NOT COLLATERAL
-149407,5256.01,AAA,KSLD,A,8506.99,82,3,SIW,FOLDERZ,LTTRS,2002-11-09 23:53:00,2003-02-21 18:59:00,NOT COLLATERAL
-149418,5256.45,BBB,EKID,A,8510.1,83,4,CKA,FOLDERZ,LTTRS,2002-11-10 00:53:00,2003-02-21 20:59:00,COLLATERAL
-149429,5256.89,CCC,VNCD,A,8513.21,84,5,LDE,FOLDERX,LTTRS,2002-11-10 01:53:00,2003-02-21 22:59:00,COLLATERAL
-149440,5257.33,DDD,DKD,A,8516.32,85,6,KFF,FOLDERX,LTTRZ,2002-11-10 02:53:00,2003-02-22 00:59:00,COLLATERAL
-149451,5257.77,AAB,FKF,A,8519.43,86,7,EFH,FOLDERX,LTTRA,2002-11-10 03:53:00,2003-02-22 02:59:00,NOT COLLATERAL
-149462,5258.21,AAC,LES,A,8522.54,87,8,NGC,FOLDERX,LTTRB,2002-11-10 04:53:00,2003-02-22 04:59:00,NOT COLLATERAL
-149473,5258.65,AAD,KLD,A,8525.65,88,9,DER,FOLDERX,LTTRB,2002-11-10 05:53:00,2003-02-22 06:59:00,NOT COLLATERAL
-149484,5259.09,AAE,SKL,A,8528.76,89,10,FVG,FOLDERX,LTTRA,2002-11-10 06:53:00,2003-02-22 08:59:00,NOT COLLATERAL
-149495,5259.53,AAF,SIW,A,8531.87,90,11,KWE,FOLDERX,LTTRA,2002-11-10 07:53:00,2003-02-22 10:59:00,NOT COLLATERAL
-149506,5259.97,BBA,CKA,A,8534.98,91,12,WER,FOLDERX,LTTRS,2002-11-10 08:53:00,2003-02-22 12:59:00,NOT COLLATERAL
-149517,5260.41,BBC,LDE,A,8538.09,92,13,GFH,FOLDERX,LTTRZ,2002-11-10 09:53:00,2003-02-22 14:59:00,NOT COLLATERAL
-149528,5260.85,BBE,KFF,A,8541.2,93,14,BGF,FOLDERX,LTTRS,2002-11-10 10:53:00,2003-02-22 16:59:00,NOT COLLATERAL
-149539,5261.29,BBF,EFH,A,8544.31,94,15,XCS,FOLDERX,LTTRS,2002-11-10 11:53:00,2003-02-22 18:59:00,NOT COLLATERAL
-149550,5261.73,BBG,NGC,A,8547.42,95,16,JHK,FOLDERX,LTTRS,2002-11-10 12:53:00,2003-02-22 20:59:00,COLLATERAL
-149561,5262.17,BBH,DER,A,8550.53,96,17,SFD,FOLDERR,LTTRS,2002-11-10 13:53:00,2003-02-22 22:59:00,COLLATERAL
-149572,5262.61,CCA,FVG,A,8553.64,97,18,WRE,FOLDERS,LTTRS,2002-11-10 14:53:00,2003-02-23 00:59:00,COLLATERAL
-149583,5263.05,CCB,KWE,A,8556.75,98,19,HGV,FOLDERX,LTTRS,2002-11-10 15:53:00,2003-02-23 02:59:00,NOT COLLATERAL
-149594,5263.49,CCD,WER,A,8559.86,99,20,KLS,FOLDERR,LTTRS,2002-11-10 16:53:00,2003-02-23 04:59:00,NOT COLLATERAL
-149605,5263.93,CCE,GFH,A,8562.97,100,21,SDK,FOLDERS,LTTRS,2002-11-10 17:53:00,2003-02-23 06:59:00,NOT COLLATERAL
-149616,5264.37,CCF,BGF,A,8566.08,101,22,MNV,FOLDERX,LTTRS,2002-11-10 18:53:00,2003-02-23 08:59:00,NOT COLLATERAL
-149627,5264.81,CCG,XCS,A,8569.19,102,23,OKW,FOLDERR,LTTRS,2002-11-10 19:53:00,2003-02-23 10:59:00,NOT COLLATERAL
-149638,5265.25,CCH,JHK,A,8572.3,103,24,ASS,FOLDERS,LTTRS,2002-11-10 20:53:00,2003-02-23 12:59:00,NOT COLLATERAL
-149649,5265.69,CCI,SFD,A,8575.41,104,25,CKA,FOLDERX,LTTRS,2002-11-10 21:53:00,2003-02-23 14:59:00,NOT COLLATERAL
-149660,5266.13,CCJ,WRE,A,8578.52,105,26,SWQ,FOLDERR,LTTRS,2002-11-10 22:53:00,2003-02-23 16:59:00,NOT COLLATERAL
-149671,5266.57,DDD,HGV,A,8581.63,106,27,KUH,FOLDERS,LTTRS,2002-11-10 23:53:00,2003-02-23 18:59:00,NOT COLLATERAL
-149682,5267.01,DDA,KLS,A,8584.74,107,28,XCV,FOLDERX,LTTRZ,2002-11-11 00:53:00,2003-02-23 20:59:00,COLLATERAL
-149693,5267.45,DAA,SDK,A,8587.85,108,29,ZAQ,FOLDERR,LTTRA,2002-11-11 01:53:00,2003-02-23 22:59:00,COLLATERAL
-149704,5267.89,DBB,MNV,A,8590.96,109,30,MKO,FOLDERS,LTTRB,2002-11-11 02:53:00,2003-02-24 00:59:00,COLLATERAL
-149715,5268.33,DCC,OKW,A,8594.07,110,31,VFR,FOLDERX,LTTRB,2002-11-11 03:53:00,2003-02-24 02:59:00,NOT COLLATERAL
-149726,5268.77,DEE,ASS,A,8597.18,111,32,YUJ,FOLDERD,LTTRA,2002-11-11 04:53:00,2003-02-24 04:59:00,NOT COLLATERAL
-149737,5269.21,DFF,CKA,A,8600.29,112,33,AAA,FOLDERE,LTTRA,2002-11-11 05:53:00,2003-02-24 06:59:00,NOT COLLATERAL
-149748,5269.65,DGG,SWQ,A,8603.4,113,34,BBB,FOLDERF,LTTRS,2002-11-11 06:53:00,2003-02-24 08:59:00,NOT COLLATERAL
-149759,5270.09,DHH,KUH,A,8606.51,114,35,CCC,FOLDERG,LTTRZ,2002-11-11 07:53:00,2003-02-24 10:59:00,NOT COLLATERAL
-149770,5270.53,AAA,XCV,A,8609.62,115,36,DDD,FOLDERH,LTTRS,2002-11-11 08:53:00,2003-02-24 12:59:00,NOT COLLATERAL
-149781,5270.97,BBB,ZAQ,A,8612.73,116,37,AAB,FOLDERI,LTTRS,2002-11-11 09:53:00,2003-02-24 14:59:00,NOT COLLATERAL
-149792,5271.41,CCC,MKO,A,8615.84,117,38,AAC,FOLDERJ,LTTRS,2002-11-11 10:53:00,2003-02-24 16:59:00,NOT COLLATERAL
-149803,5271.85,DDD,VFR,A,8618.95,118,39,AAD,FOLDERK,LTTRS,2002-11-11 11:53:00,2003-02-24 18:59:00,NOT COLLATERAL
-149814,5272.29,AAB,YUJ,A,8622.06,119,40,AAE,FOLDERL,LTTRS,2002-11-11 12:53:00,2003-02-24 20:59:00,COLLATERAL
-149825,5272.73,AAC,MED,A,8625.17,120,41,AAF,FOLDERM,LTTRS,2002-11-11 13:53:00,2003-02-24 22:59:00,COLLATERAL
-149836,5273.17,AAD,SWE,A,8628.28,121,42,BBA,FOLDERN,LTTRS,2002-11-11 14:53:00,2003-02-25 00:59:00,COLLATERAL
-149847,5273.61,AAE,CVF,A,8631.39,122,43,BBC,FOLDERN,LTTRS,2002-11-11 15:53:00,2003-02-25 02:59:00,NOT COLLATERAL
-149858,5274.05,AAF,DSFG,A,8634.5,123,44,BBE,FOLDERN,LTTRS,2002-11-11 16:53:00,2003-02-25 04:59:00,NOT COLLATERAL
-149869,5274.49,BBA,ASDRE,A,8637.61,124,45,BBF,FOLDERN,LTTRS,2002-11-11 17:53:00,2003-02-25 06:59:00,NOT COLLATERAL
-149880,5274.93,BBC,HJKSS,A,8640.72,125,46,BBG,FOLDERL,LTTRS,2002-11-11 18:53:00,2003-02-25 08:59:00,NOT COLLATERAL
-149891,5275.37,BBE,KHAA,A,8643.83,126,47,BBH,FOLDERL,LTTRS,2002-11-11 19:53:00,2003-02-25 10:59:00,NOT COLLATERAL
-149902,5275.81,BBF,KSLD,A,8646.94,127,48,CCA,FOLDERL,LTTRS,2002-11-11 20:53:00,2003-02-25 12:59:00,NOT COLLATERAL
-149913,5276.25,BBG,EKID,A,8650.05,128,49,CCB,FOLDERL,LTTRS,2002-11-11 21:53:00,2003-02-25 14:59:00,NOT COLLATERAL
-149924,5276.69,BBH,VNCD,A,8653.16,129,48,CCD,FOLDERL,LTTRZ,2002-11-11 22:53:00,2003-02-25 16:59:00,NOT COLLATERAL
-149935,5277.13,CCA,DKD,A,8656.27,130,47,CCE,FOLDERA,LTTRA,2002-11-11 23:53:00,2003-02-25 18:59:00,NOT COLLATERAL
-149946,5277.57,CCB,FKF,A,8659.38,131,46,CCF,FOLDERB,LTTRB,2002-11-12 00:53:00,2003-02-25 20:59:00,COLLATERAL
-149957,5278.01,CCD,LES,A,8662.49,132,45,CCG,FOLDERC,LTTRB,2002-11-12 01:53:00,2003-02-25 22:59:00,COLLATERAL
-149968,5278.45,CCE,KLD,A,8665.6,133,44,CCH,FOLDERD,LTTRA,2002-11-12 02:53:00,2003-02-26 00:59:00,COLLATERAL
-149979,5278.89,CCF,SKL,A,8668.71,134,43,CCI,FOLDERE,LTTRA,2002-11-12 03:53:00,2003-02-26 02:59:00,NOT COLLATERAL
-149990,5279.33,CCG,SIW,A,8671.82,135,42,CCJ,FOLDERF,LTTRS,2002-11-12 04:53:00,2003-02-26 04:59:00,NOT COLLATERAL
-150001,5279.77,CCH,CKA,A,8674.93,136,41,DDD,FOLDERG,LTTRZ,2002-11-12 05:53:00,2003-02-26 06:59:00,NOT COLLATERAL
-150012,5280.21,CCI,LDE,A,8678.04,137,40,DDA,FOLDERH,LTTRS,2002-11-12 06:53:00,2003-02-26 08:59:00,NOT COLLATERAL
-150023,5280.65,CCJ,KFF,A,8681.15,138,39,DAA,FOLDERI,LTTRS,2002-11-12 07:53:00,2003-02-26 10:59:00,NOT COLLATERAL
-150034,5281.09,DDD,EFH,A,8684.26,139,38,FKF,FOLDERJ,LTTRS,2002-11-12 08:53:00,2003-02-26 12:59:00,NOT COLLATERAL
-150045,5281.53,DDA,NGC,A,8687.37,140,37,LES,FOLDERK,LTTRS,2002-11-12 09:53:00,2003-02-26 14:59:00,NOT COLLATERAL
-150056,5281.97,DAA,DER,A,8690.48,141,36,KLD,FOLDERL,LTTRS,2002-11-12 10:53:00,2003-02-26 16:59:00,NOT COLLATERAL
-150067,5282.41,DBB,FVG,A,8693.59,142,35,SKL,FOLDERM,LTTRS,2002-11-12 11:53:00,2003-02-26 18:59:00,NOT COLLATERAL
-150078,5282.85,DCC,KWE,A,8696.7,143,34,SIW,FOLDERN,LTTRS,2002-11-12 12:53:00,2003-02-26 20:59:00,COLLATERAL
-150089,5283.29,DEE,WER,A,8699.81,144,33,CKA,FOLDERO,LTTRS,2002-11-12 13:53:00,2003-02-26 22:59:00,COLLATERAL
-150100,5283.73,DFF,GFH,A,8702.92,145,32,LDE,FOLDERP,LTTRS,2002-11-12 14:53:00,2003-02-27 00:59:00,COLLATERAL
-150111,5284.17,DGG,BGF,A,8706.03,146,31,KFF,FOLDERQ,LTTRS,2002-11-12 15:53:00,2003-02-27 02:59:00,NOT COLLATERAL
-150122,5284.61,DHH,XCS,A,8709.14,147,30,EFH,FOLDERR,LTTRS,2002-11-12 16:53:00,2003-02-27 04:59:00,NOT COLLATERAL
-150133,5285.05,AAA,JHK,A,8712.25,148,29,NGC,FOLDERS,LTTRS,2002-11-12 17:53:00,2003-02-27 06:59:00,NOT COLLATERAL
-150144,5285.49,BBB,SFD,A,8715.36,149,28,DER,FOLDERT,LTTRS,2002-11-12 18:53:00,2003-02-27 08:59:00,NOT COLLATERAL
-150155,5285.93,CCC,WRE,A,8718.47,150,27,FVG,FOLDERU,LTTRS,2002-11-12 19:53:00,2003-02-27 10:59:00,NOT COLLATERAL
-150166,5286.37,DDD,HGV,A,8721.58,151,26,KWE,FOLDERV,LTTRZ,2002-11-12 20:53:00,2003-02-27 12:59:00,NOT COLLATERAL
-150177,5286.81,AAB,KLS,A,8724.69,152,25,WER,FOLDERW,LTTRA,2002-11-12 21:53:00,2003-02-27 14:59:00,NOT COLLATERAL
-150188,5287.25,AAC,SDK,A,8727.8,153,24,GFH,FOLDERX,LTTRB,2002-11-12 22:53:00,2003-02-27 16:59:00,NOT COLLATERAL
-150199,5287.69,AAD,MNV,A,8730.91,154,23,BGF,FOLDERY,LTTRB,2002-11-12 23:53:00,2003-02-27 18:59:00,NOT COLLATERAL
-150210,5288.13,AAE,OKW,A,8734.02,155,22,XCS,FOLDERZ,LTTRA,2002-11-13 00:53:00,2003-02-27 20:59:00,COLLATERAL
-150221,5288.57,AAF,ASS,A,8737.13,156,21,JHK,FOLDERA,LTTRA,2002-11-13 01:53:00,2003-02-27 22:59:00,COLLATERAL
-150232,5289.01,BBA,CKA,A,8740.24,157,20,SFD,FOLDERB,LTTRS,2002-11-13 02:53:00,2003-02-28 00:59:00,COLLATERAL
-150243,5289.45,BBC,SWQ,A,8743.35,158,19,WRE,FOLDERC,LTTRZ,2002-11-13 03:53:00,2003-02-28 02:59:00,NOT COLLATERAL
-150254,5289.89,BBE,KUH,A,8746.46,159,18,HGV,FOLDERD,LTTRS,2002-11-13 04:53:00,2003-02-28 04:59:00,NOT COLLATERAL
-150265,5290.33,BBF,XCV,A,8749.57,160,17,KLS,FOLDERE,LTTRS,2002-11-13 05:53:00,2003-02-28 06:59:00,NOT COLLATERAL
-150276,5290.77,BBG,ZAQ,A,8752.68,161,16,SDK,FOLDERF,LTTRS,2002-11-13 06:53:00,2003-02-28 08:59:00,NOT COLLATERAL
-150287,5291.21,BBH,MKO,A,8755.79,162,15,MNV,FOLDERG,LTTRS,2002-11-13 07:53:00,2003-02-28 10:59:00,NOT COLLATERAL
-150298,5291.65,CCA,VFR,A,8758.9,163,14,OKW,FOLDERH,LTTRS,2002-11-13 08:53:00,2003-02-28 12:59:00,NOT COLLATERAL
-150309,5292.09,CCB,YUJ,A,8762.01,164,13,ASS,FOLDERI,LTTRS,2002-11-13 09:53:00,2003-02-28 14:59:00,NOT COLLATERAL
-150320,5292.53,CCD,MED,A,8765.12,165,12,CKA,FOLDERJ,LTTRS,2002-11-13 10:53:00,2003-02-28 16:59:00,NOT COLLATERAL
-150331,5292.97,CCE,SWE,A,8768.23,166,11,SWQ,FOLDERK,LTTRS,2002-11-13 11:53:00,2003-02-28 18:59:00,NOT COLLATERAL
-150342,5293.41,CCF,CVF,A,8771.34,167,10,KUH,FOLDERL,LTTRS,2002-11-13 12:53:00,2003-02-28 20:59:00,COLLATERAL
-150353,5293.85,CCG,DSFG,A,8774.45,168,9,XCV,FOLDERM,LTTRS,2002-11-13 13:53:00,2003-02-28 22:59:00,COLLATERAL
-150364,5294.29,CCH,ASDRE,A,8777.56,169,8,ZAQ,FOLDERN,LTTRS,2002-11-13 14:53:00,2003-03-01 00:59:00,COLLATERAL
-150375,5294.73,CCI,HJKSS,A,8780.67,170,7,MKO,FOLDERO,LTTRS,2002-11-13 15:53:00,2003-03-01 02:59:00,NOT COLLATERAL
-150386,5295.17,CCJ,KHAA,A,8783.78,171,6,VFR,FOLDERP,LTTRS,2002-11-13 16:53:00,2003-03-01 04:59:00,NOT COLLATERAL
-150397,5295.61,DDD,KSLD,A,8786.89,172,5,YUJ,FOLDERQ,LTTRS,2002-11-13 17:53:00,2003-03-01 06:59:00,NOT COLLATERAL
-150408,5296.05,DDA,EKID,A,8790,173,4,AAA,FOLDERR,LTTRZ,2002-11-13 18:53:00,2003-03-01 08:59:00,NOT COLLATERAL
-150419,5296.49,DAA,VNCD,A,8793.11,174,3,BBB,FOLDERS,LTTRA,2002-11-13 19:53:00,2003-03-01 10:59:00,NOT COLLATERAL
-150430,5296.93,DBB,DKD,A,8796.22,175,1,CCC,FOLDERT,LTTRB,2002-11-13 20:53:00,2003-03-01 12:59:00,NOT COLLATERAL
-150441,5297.37,DCC,FKF,A,8799.33,176,2,DDD,FOLDERU,LTTRB,2002-11-13 21:53:00,2003-03-01 14:59:00,NOT COLLATERAL
-150452,5297.81,DEE,LES,A,8802.44,177,3,AAB,FOLDERV,LTTRA,2002-11-13 22:53:00,2003-03-01 16:59:00,NOT COLLATERAL
-150463,5298.25,DFF,KLD,A,8805.55,178,4,AAC,FOLDERW,LTTRA,2002-11-13 23:53:00,2003-03-01 18:59:00,NOT COLLATERAL
-150474,5298.69,DGG,SKL,A,8808.66,179,5,AAD,FOLDERX,LTTRS,2002-11-14 00:53:00,2003-03-01 20:59:00,COLLATERAL
-150485,5299.13,DHH,SIW,A,8811.77,180,6,AAE,FOLDERY,LTTRZ,2002-11-14 01:53:00,2003-03-01 22:59:00,COLLATERAL
-150496,5299.57,AAA,CKA,A,8814.88,181,7,AAF,FOLDERZ,LTTRS,2002-11-14 02:53:00,2003-03-02 00:59:00,COLLATERAL
-150507,5300.01,BBB,LDE,A,8817.99,182,8,BBA,FOLDERZ,LTTRS,2002-11-14 03:53:00,2003-03-02 02:59:00,NOT COLLATERAL
-150518,5300.45,CCC,KFF,A,8821.1,183,9,BBC,FOLDERZ,LTTRS,2002-11-14 04:53:00,2003-03-02 04:59:00,NOT COLLATERAL
-150529,5300.89,DDD,EFH,A,8824.21,184,10,BBE,FOLDERZ,LTTRS,2002-11-14 05:53:00,2003-03-02 06:59:00,NOT COLLATERAL
-150540,5301.33,AAB,NGC,A,8827.32,185,11,BBF,FOLDERZ,LTTRS,2002-11-14 06:53:00,2003-03-02 08:59:00,NOT COLLATERAL
-150551,5301.77,AAC,DER,A,8830.43,186,12,BBG,FOLDERZ,LTTRS,2002-11-14 07:53:00,2003-03-02 10:59:00,NOT COLLATERAL
-150562,5302.21,AAD,FVG,A,8833.54,187,13,BBH,FOLDERZ,LTTRS,2002-11-14 08:53:00,2003-03-02 12:59:00,NOT COLLATERAL
-150573,5302.65,AAE,KWE,A,8836.65,188,14,CCA,FOLDERZ,LTTRS,2002-11-14 09:53:00,2003-03-02 14:59:00,NOT COLLATERAL
-150584,5303.09,AAF,WER,A,8839.76,189,15,CCB,FOLDERZ,LTTRS,2002-11-14 10:53:00,2003-03-02 16:59:00,NOT COLLATERAL
-150595,5303.53,BBA,GFH,A,8842.87,190,16,CCD,FOLDERZ,LTTRS,2002-11-14 11:53:00,2003-03-02 18:59:00,NOT COLLATERAL
-150606,5303.97,BBC,BGF,A,8845.98,191,17,CCE,FOLDERZ,LTTRS,2002-11-14 12:53:00,2003-03-02 20:59:00,COLLATERAL
-150617,5304.41,BBE,XCS,A,8849.09,192,18,CCF,FOLDERZ,LTTRS,2002-11-14 13:53:00,2003-03-02 22:59:00,COLLATERAL
-150628,5304.85,BBF,JHK,A,8852.2,193,19,CCG,FOLDERZ,LTTRS,2002-11-14 14:53:00,2003-03-03 00:59:00,COLLATERAL
-150639,5305.29,BBG,SFD,A,8855.31,194,20,CCH,FOLDERZ,LTTRS,2002-11-14 15:53:00,2003-03-03 02:59:00,NOT COLLATERAL
-150650,5305.73,BBH,WRE,A,8858.42,195,21,CCI,FOLDERX,LTTRZ,2002-11-14 16:53:00,2003-03-03 04:59:00,NOT COLLATERAL
-150661,5306.17,CCA,HGV,A,8861.53,196,22,CCJ,FOLDERX,LTTRA,2002-11-14 17:53:00,2003-03-03 06:59:00,NOT COLLATERAL
-150672,5306.61,CCB,KLS,A,8864.64,197,23,DDD,FOLDERX,LTTRB,2002-11-14 18:53:00,2003-03-03 08:59:00,NOT COLLATERAL
-150683,5307.05,CCD,SDK,A,8867.75,198,24,DDA,FOLDERX,LTTRB,2002-11-14 19:53:00,2003-03-03 10:59:00,NOT COLLATERAL
-150694,5307.49,CCE,MNV,A,8870.86,199,25,DAA,FOLDERX,LTTRA,2002-11-14 20:53:00,2003-03-03 12:59:00,NOT COLLATERAL
-150705,5307.93,CCF,OKW,A,8873.97,200,26,FKF,FOLDERX,LTTRA,2002-11-14 21:53:00,2003-03-03 14:59:00,NOT COLLATERAL
-150716,5308.37,CCG,ASS,A,8877.08,201,27,LES,FOLDERX,LTTRS,2002-11-14 22:53:00,2003-03-03 16:59:00,NOT COLLATERAL
-150727,5308.81,CCH,CKA,A,8880.19,202,28,KLD,FOLDERX,LTTRZ,2002-11-14 23:53:00,2003-03-03 18:59:00,NOT COLLATERAL
-150738,5309.25,CCI,SWQ,A,8883.3,203,29,SKL,FOLDERX,LTTRS,2002-11-15 00:53:00,2003-03-03 20:59:00,COLLATERAL
-150749,5309.69,CCJ,KUH,A,8886.41,204,30,SIW,FOLDERX,LTTRS,2002-11-15 01:53:00,2003-03-03 22:59:00,COLLATERAL
-150760,5310.13,DDD,XCV,A,8889.52,205,31,CKA,FOLDERX,LTTRS,2002-11-15 02:53:00,2003-03-04 00:59:00,COLLATERAL
-150771,5310.57,DDA,ZAQ,A,8892.63,206,32,LDE,FOLDERX,LTTRS,2002-11-15 03:53:00,2003-03-04 02:59:00,NOT COLLATERAL
-150782,5311.01,DAA,MKO,A,8895.74,207,33,KFF,FOLDERR,LTTRS,2002-11-15 04:53:00,2003-03-04 04:59:00,NOT COLLATERAL
-150793,5311.45,DBB,VFR,A,8898.85,208,34,EFH,FOLDERS,LTTRS,2002-11-15 05:53:00,2003-03-04 06:59:00,NOT COLLATERAL
-150804,5311.89,DCC,YUJ,A,8901.96,209,35,NGC,FOLDERX,LTTRS,2002-11-15 06:53:00,2003-03-04 08:59:00,NOT COLLATERAL
-150815,5312.33,DEE,MED,A,8905.07,210,36,DER,FOLDERR,LTTRS,2002-11-15 07:53:00,2003-03-04 10:59:00,NOT COLLATERAL
-150826,5312.77,DFF,SWE,A,8908.18,211,37,FVG,FOLDERS,LTTRS,2002-11-15 08:53:00,2003-03-04 12:59:00,NOT COLLATERAL
-150837,5313.21,DGG,CVF,A,8911.29,212,38,KWE,FOLDERX,LTTRS,2002-11-15 09:53:00,2003-03-04 14:59:00,NOT COLLATERAL
-150848,5313.65,DHH,DSFG,A,8914.4,213,39,WER,FOLDERR,LTTRS,2002-11-15 10:53:00,2003-03-04 16:59:00,NOT COLLATERAL
-150859,5314.09,AAA,ASDRE,A,8917.51,214,40,GFH,FOLDERS,LTTRS,2002-11-15 11:53:00,2003-03-04 18:59:00,NOT COLLATERAL
-150870,5314.53,BBB,HJKSS,A,8920.62,215,41,BGF,FOLDERX,LTTRS,2002-11-15 12:53:00,2003-03-04 20:59:00,COLLATERAL
-150881,5314.97,CCC,KHAA,A,8923.73,216,42,XCS,FOLDERR,LTTRS,2002-11-15 13:53:00,2003-03-04 22:59:00,COLLATERAL
-150892,5315.41,DDD,KSLD,A,8926.84,217,43,JHK,FOLDERS,LTTRZ,2002-11-15 14:53:00,2003-03-05 00:59:00,COLLATERAL
-150903,5315.85,AAB,EKID,A,8929.95,218,44,SFD,FOLDERX,LTTRA,2002-11-15 15:53:00,2003-03-05 02:59:00,NOT COLLATERAL
-150914,5316.29,AAC,VNCD,A,8933.06,219,45,WRE,FOLDERR,LTTRB,2002-11-15 16:53:00,2003-03-05 04:59:00,NOT COLLATERAL
-150925,5316.73,AAD,DKD,A,12433.16,220,46,HGV,FOLDERS,LTTRB,2002-11-15 17:53:00,2003-03-05 06:59:00,NOT COLLATERAL
-150936,5317.17,AAE,FKF,A,12433,221,47,KLS,FOLDERX,LTTRA,2002-11-15 18:53:00,2003-03-05 08:59:00,NOT COLLATERAL
-150947,5317.61,AAF,LES,A,12432.84,222,48,SDK,FOLDERD,LTTRA,2002-11-15 19:53:00,2003-03-05 10:59:00,NOT COLLATERAL
-150958,5318.05,BBA,KLD,A,12432.68,223,49,MNV,FOLDERE,LTTRS,2002-11-15 20:53:00,2003-03-05 12:59:00,NOT COLLATERAL
-150969,5318.49,BBC,SKL,A,12432.52,224,48,OKW,FOLDERF,LTTRZ,2002-11-15 21:53:00,2003-03-05 14:59:00,NOT COLLATERAL
-150980,5318.93,BBE,SIW,A,12432.36,225,47,ASS,FOLDERG,LTTRS,2002-11-15 22:53:00,2003-03-05 16:59:00,NOT COLLATERAL
-150991,5319.37,BBF,CKA,A,12432.2,226,46,CKA,FOLDERH,LTTRS,2002-11-15 23:53:00,2003-03-05 18:59:00,NOT COLLATERAL
-151002,5319.81,BBG,LDE,A,12432.04,227,45,SWQ,FOLDERI,LTTRS,2002-11-16 00:53:00,2003-03-05 20:59:00,COLLATERAL
-151013,5320.25,BBH,KFF,A,12431.88,228,44,KUH,FOLDERJ,LTTRS,2002-11-16 01:53:00,2003-03-05 22:59:00,COLLATERAL
-151024,5320.69,CCA,EFH,A,12431.72,229,43,XCV,FOLDERK,LTTRS,2002-11-16 02:52:00,2003-03-06 00:59:00,COLLATERAL
-151035,5321.13,CCB,NGC,A,12431.56,230,42,ZAQ,FOLDERL,LTTRS,2002-11-16 03:52:00,2003-03-06 02:59:00,NOT COLLATERAL
-151046,5321.57,CCD,DER,A,12431.4,231,41,MKO,FOLDERM,LTTRS,2002-11-16 04:52:00,2003-03-06 04:59:00,NOT COLLATERAL
-151057,5322.01,CCE,FVG,A,12431.24,232,40,VFR,FOLDERN,LTTRS,2002-11-16 05:52:00,2003-03-06 06:59:00,NOT COLLATERAL
-151068,5322.45,CCF,KWE,A,12431.08,233,39,YUJ,FOLDERN,LTTRS,2002-11-16 06:52:00,2003-03-06 08:59:00,NOT COLLATERAL
-151079,5322.89,CCG,WER,A,12430.92,234,38,AAA,FOLDERN,LTTRS,2002-11-16 07:52:00,2003-03-06 10:59:00,NOT COLLATERAL
-151090,5323.33,CCH,GFH,A,12430.76,235,37,BBB,FOLDERN,LTTRS,2002-11-16 08:52:00,2003-03-06 12:59:00,NOT COLLATERAL
-151101,5323.77,CCI,BGF,A,12430.6,236,36,CCC,FOLDERL,LTTRS,2002-11-16 09:52:00,2003-03-06 14:59:00,NOT COLLATERAL
-151112,5324.21,CCJ,XCS,A,12430.44,237,35,DDD,FOLDERL,LTTRS,2002-11-16 10:52:00,2003-03-06 16:59:00,NOT COLLATERAL
-151123,5324.65,DDD,JHK,A,12430.28,238,34,AAB,FOLDERL,LTTRS,2002-11-16 11:52:00,2003-03-06 18:59:00,NOT COLLATERAL
-151134,5325.09,DDA,SFD,A,12430.12,239,33,AAC,FOLDERL,LTTRZ,2002-11-16 12:52:00,2003-03-06 20:59:00,COLLATERAL
-151145,5325.53,DAA,WRE,A,12429.96,240,32,AAD,FOLDERL,LTTRA,2002-11-16 13:52:00,2003-03-06 22:59:00,COLLATERAL
-151156,5325.97,DBB,HGV,A,12429.8,241,31,AAE,FOLDERA,LTTRB,2002-11-16 14:52:00,2003-03-07 00:59:00,COLLATERAL
-151167,5326.41,DCC,KLS,A,12429.64,242,30,AAF,FOLDERB,LTTRB,2002-11-16 15:52:00,2003-03-07 02:59:00,NOT COLLATERAL
-151178,5326.85,DEE,SDK,A,12429.48,243,29,BBA,FOLDERC,LTTRA,2002-11-16 16:52:00,2003-03-07 04:59:00,NOT COLLATERAL
-151189,5327.29,DFF,MNV,A,12429.32,244,28,BBC,FOLDERD,LTTRA,2002-11-16 17:52:00,2003-03-07 06:59:00,NOT COLLATERAL
-151200,5327.73,DGG,OKW,A,12429.16,245,27,BBE,FOLDERE,LTTRS,2002-11-16 18:52:00,2003-03-07 08:59:00,NOT COLLATERAL
-151211,5328.17,DHH,ASS,A,12429,246,26,BBF,FOLDERF,LTTRZ,2002-11-16 19:52:00,2003-03-07 10:59:00,NOT COLLATERAL
-151222,5328.61,AAA,CKA,A,12428.84,247,25,BBG,FOLDERG,LTTRS,2002-11-16 20:52:00,2003-03-07 12:59:00,NOT COLLATERAL
-151233,5329.05,BBB,SWQ,A,12428.68,248,24,BBH,FOLDERH,LTTRS,2002-11-16 21:52:00,2003-03-07 14:59:00,NOT COLLATERAL
-151244,5329.49,CCC,KUH,A,12428.52,249,23,CCA,FOLDERI,LTTRS,2002-11-16 22:52:00,2003-03-07 16:59:00,NOT COLLATERAL
-151255,5329.93,DDD,XCV,A,12428.36,250,22,CCB,FOLDERJ,LTTRS,2002-11-16 23:52:00,2003-03-07 18:59:00,NOT COLLATERAL
-151266,5330.37,AAB,ZAQ,A,12428.2,251,21,CCD,FOLDERK,LTTRS,2002-11-17 00:52:00,2003-03-07 20:59:00,COLLATERAL
-151277,5330.81,AAC,MKO,A,12428.04,252,20,CCE,FOLDERL,LTTRS,2002-11-17 01:52:00,2003-03-07 22:59:00,COLLATERAL
-151288,5331.25,AAD,VFR,A,12427.88,253,19,CCF,FOLDERM,LTTRS,2002-11-17 02:52:00,2003-03-08 00:59:00,COLLATERAL
-151299,5331.69,AAE,YUJ,A,12427.72,254,18,CCG,FOLDERN,LTTRS,2002-11-17 03:52:00,2003-03-08 02:59:00,NOT COLLATERAL
-151310,5332.13,AAF,MED,A,12427.56,255,17,CCH,FOLDERO,LTTRS,2002-11-17 04:52:00,2003-03-08 04:59:00,NOT COLLATERAL
-151321,5332.57,BBA,SWE,A,12427.4,256,16,CCI,FOLDERP,LTTRS,2002-11-17 05:52:00,2003-03-08 06:59:00,NOT COLLATERAL
-151332,5333.01,BBC,CVF,A,12427.24,257,15,CCJ,FOLDERQ,LTTRS,2002-11-17 06:52:00,2003-03-08 08:59:00,NOT COLLATERAL
-151343,5333.45,BBE,DSFG,A,12427.08,258,14,DDD,FOLDERR,LTTRS,2002-11-17 07:52:00,2003-03-08 10:59:00,NOT COLLATERAL
-151354,5333.89,BBF,ASDRE,A,12426.92,259,13,DDA,FOLDERS,LTTRS,2002-11-17 08:52:00,2003-03-08 12:59:00,NOT COLLATERAL
-151365,5334.33,BBG,HJKSS,A,12426.76,260,12,DAA,FOLDERT,LTTRS,2002-11-17 09:52:00,2003-03-08 14:59:00,NOT COLLATERAL
-151376,5334.77,BBH,KHAA,A,12426.6,261,11,FKF,FOLDERU,LTTRZ,2002-11-17 10:52:00,2003-03-08 16:59:00,NOT COLLATERAL
-151387,5335.21,CCA,KSLD,A,12426.44,262,10,LES,FOLDERV,LTTRA,2002-11-17 11:52:00,2003-03-08 18:59:00,NOT COLLATERAL
-151398,5335.65,CCB,EKID,A,12426.28,263,9,KLD,FOLDERW,LTTRB,2002-11-17 12:52:00,2003-03-08 20:59:00,COLLATERAL
-151409,5336.09,CCD,VNCD,A,12426.12,264,8,SKL,FOLDERX,LTTRB,2002-11-17 13:52:00,2003-03-08 22:59:00,COLLATERAL
-151420,5336.53,CCE,DKD,A,12425.96,265,7,SIW,FOLDERY,LTTRA,2002-11-17 14:52:00,2003-03-09 00:59:00,COLLATERAL
-151431,5336.97,CCF,FKF,A,12425.8,266,6,CKA,FOLDERZ,LTTRA,2002-11-17 15:52:00,2003-03-09 02:59:00,NOT COLLATERAL
-151442,5337.41,CCG,LES,A,12425.64,267,5,LDE,FOLDERA,LTTRS,2002-11-17 16:52:00,2003-03-09 04:59:00,NOT COLLATERAL
-151453,5337.85,CCH,KLD,A,12425.48,268,4,KFF,FOLDERB,LTTRZ,2002-11-17 17:52:00,2003-03-09 06:59:00,NOT COLLATERAL
-151464,5338.29,CCI,SKL,A,12425.32,269,3,EFH,FOLDERC,LTTRS,2002-11-17 18:52:00,2003-03-09 08:59:00,NOT COLLATERAL
-151475,5338.73,CCJ,SIW,A,12425.16,270,1,NGC,FOLDERD,LTTRS,2002-11-17 19:52:00,2003-03-09 10:59:00,NOT COLLATERAL
-151486,5339.17,DDD,CKA,A,12425,271,2,DER,FOLDERE,LTTRS,2002-11-17 20:52:00,2003-03-09 12:59:00,NOT COLLATERAL
-151497,5339.61,DDA,LDE,A,12424.84,272,3,FVG,FOLDERF,LTTRS,2002-11-17 21:52:00,2003-03-09 14:59:00,NOT COLLATERAL
-151508,5340.05,DAA,KFF,A,12424.68,273,4,KWE,FOLDERG,LTTRS,2002-11-17 22:52:00,2003-03-09 16:59:00,NOT COLLATERAL
-151519,5340.49,DBB,EFH,A,12424.52,274,5,WER,FOLDERH,LTTRS,2002-11-17 23:52:00,2003-03-09 18:59:00,NOT COLLATERAL
-151530,5340.93,DCC,NGC,A,12424.36,275,6,GFH,FOLDERI,LTTRS,2002-11-18 00:52:00,2003-03-09 20:59:00,COLLATERAL
-151541,5341.37,DEE,DER,A,12424.2,276,7,BGF,FOLDERJ,LTTRS,2002-11-18 01:52:00,2003-03-09 22:59:00,COLLATERAL
-151552,5341.81,DFF,FVG,A,12424.04,277,8,XCS,FOLDERK,LTTRS,2002-11-18 02:52:00,2003-03-10 00:59:00,COLLATERAL
-151563,5342.25,DGG,KWE,A,12423.88,278,9,JHK,FOLDERL,LTTRS,2002-11-18 03:52:00,2003-03-10 02:59:00,NOT COLLATERAL
-151574,5342.69,DHH,WER,A,12423.72,279,10,SFD,FOLDERM,LTTRS,2002-11-18 04:52:00,2003-03-10 04:59:00,NOT COLLATERAL
-151585,5343.13,AAA,GFH,A,12423.56,280,11,WRE,FOLDERN,LTTRS,2002-11-18 05:52:00,2003-03-10 06:59:00,NOT COLLATERAL
-151596,5343.57,BBB,BGF,A,12423.4,281,12,HGV,FOLDERO,LTTRS,2002-11-18 06:52:00,2003-03-10 08:59:00,NOT COLLATERAL
-151607,5344.01,CCC,XCS,A,12423.24,282,13,KLS,FOLDERP,LTTRS,2002-11-18 07:52:00,2003-03-10 10:59:00,NOT COLLATERAL
-151618,5344.45,DDD,JHK,A,12423.08,283,14,SDK,FOLDERQ,LTTRZ,2002-11-18 08:52:00,2003-03-10 12:59:00,NOT COLLATERAL
-151629,5344.89,AAB,SFD,A,12422.92,284,15,MNV,FOLDERR,LTTRA,2002-11-18 09:52:00,2003-03-10 14:59:00,NOT COLLATERAL
-151640,5345.33,AAC,WRE,A,12422.76,285,16,OKW,FOLDERS,LTTRB,2002-11-18 10:52:00,2003-03-10 16:59:00,NOT COLLATERAL
-151651,5345.77,AAD,HGV,A,12422.6,286,17,ASS,FOLDERT,LTTRB,2002-11-18 11:52:00,2003-03-10 18:59:00,NOT COLLATERAL
-151662,5346.21,AAE,KLS,A,12422.44,287,18,CKA,FOLDERU,LTTRA,2002-11-18 12:52:00,2003-03-10 20:59:00,COLLATERAL
-151673,5346.65,AAF,SDK,A,12422.28,288,19,SWQ,FOLDERV,LTTRA,2002-11-18 13:52:00,2003-03-10 22:59:00,COLLATERAL
-151684,5347.09,BBA,MNV,A,12422.12,289,20,KUH,FOLDERW,LTTRS,2002-11-18 14:52:00,2003-03-11 00:59:00,COLLATERAL
-151695,5347.53,BBC,OKW,A,12421.96,290,21,XCV,FOLDERX,LTTRZ,2002-11-18 15:52:00,2003-03-11 02:59:00,NOT COLLATERAL
-151706,5347.97,BBE,ASS,A,12421.8,291,22,ZAQ,FOLDERY,LTTRS,2002-11-18 16:52:00,2003-03-11 04:59:00,NOT COLLATERAL
-151717,5348.41,BBF,CKA,A,12421.64,292,23,MKO,FOLDERZ,LTTRS,2002-11-18 17:52:00,2003-03-11 06:59:00,NOT COLLATERAL
-151728,5348.85,BBG,SWQ,A,12421.48,293,24,VFR,FOLDERZ,LTTRS,2002-11-18 18:52:00,2003-03-11 08:59:00,NOT COLLATERAL
-151739,5349.29,BBH,KUH,A,12421.32,294,25,YUJ,FOLDERZ,LTTRS,2002-11-18 19:52:00,2003-03-11 10:59:00,NOT COLLATERAL
-151750,5349.73,CCA,XCV,A,12421.16,295,26,AAA,FOLDERZ,LTTRS,2002-11-18 20:52:00,2003-03-11 12:59:00,NOT COLLATERAL
-151761,5350.17,CCB,ZAQ,A,12421,296,27,BBB,FOLDERZ,LTTRS,2002-11-18 21:52:00,2003-03-11 14:59:00,NOT COLLATERAL
-151772,5350.61,CCD,MKO,A,12420.84,297,28,CCC,FOLDERZ,LTTRS,2002-11-18 22:52:00,2003-03-11 16:59:00,NOT COLLATERAL
-151783,5351.05,CCE,VFR,A,12420.68,298,29,DDD,FOLDERZ,LTTRS,2002-11-18 23:52:00,2003-03-11 18:59:00,NOT COLLATERAL
-151794,5351.49,CCF,YUJ,A,12420.52,299,30,AAB,FOLDERZ,LTTRS,2002-11-19 00:52:00,2003-03-11 20:59:00,COLLATERAL
-151805,5351.93,CCG,MED,A,12420.36,300,31,AAC,FOLDERZ,LTTRS,2002-11-19 01:52:00,2003-03-11 22:59:00,COLLATERAL
-151816,5352.37,CCH,SWE,A,12420.2,301,32,AAD,FOLDERZ,LTTRS,2002-11-19 02:52:00,2003-03-12 00:59:00,COLLATERAL
-151827,5352.81,CCI,CVF,A,12420.04,302,33,AAE,FOLDERZ,LTTRS,2002-11-19 03:52:00,2003-03-12 02:59:00,NOT COLLATERAL
-151838,5353.25,CCJ,DSFG,A,12419.88,303,34,AAF,FOLDERZ,LTTRS,2002-11-19 04:52:00,2003-03-12 04:59:00,NOT COLLATERAL
-151849,5353.69,DDD,ASDRE,A,12419.72,304,35,BBA,FOLDERZ,LTTRS,2002-11-19 05:52:00,2003-03-12 06:59:00,NOT COLLATERAL
-151860,5354.13,DDA,HJKSS,A,12419.56,305,36,BBC,FOLDERZ,LTTRZ,2002-11-19 06:52:00,2003-03-12 08:59:00,NOT COLLATERAL
-151871,5354.57,DAA,KHAA,A,12419.4,306,37,BBE,FOLDERX,LTTRA,2002-11-19 07:52:00,2003-03-12 10:59:00,NOT COLLATERAL
-151882,5355.01,DBB,KSLD,A,12419.24,307,38,BBF,FOLDERX,LTTRB,2002-11-19 08:52:00,2003-03-12 12:59:00,NOT COLLATERAL
-151893,5355.45,DCC,EKID,A,12419.08,308,39,BBG,FOLDERX,LTTRB,2002-11-19 09:52:00,2003-03-12 14:59:00,NOT COLLATERAL
-151904,5355.89,DEE,VNCD,A,12418.92,309,40,BBH,FOLDERX,LTTRA,2002-11-19 10:52:00,2003-03-12 16:59:00,NOT COLLATERAL
-151915,5356.33,DFF,DKD,A,12418.76,310,41,CCA,FOLDERX,LTTRA,2002-11-19 11:52:00,2003-03-12 18:59:00,NOT COLLATERAL
-151926,5356.77,DGG,FKF,A,12418.6,311,42,CCB,FOLDERX,LTTRS,2002-11-19 12:52:00,2003-03-12 20:59:00,COLLATERAL
-151937,5357.21,DHH,LES,A,12418.44,312,43,CCD,FOLDERX,LTTRZ,2002-11-19 13:52:00,2003-03-12 22:59:00,COLLATERAL
-151948,5357.65,AAA,KLD,A,12418.28,313,44,CCE,FOLDERX,LTTRS,2002-11-19 14:52:00,2003-03-13 00:59:00,COLLATERAL
-151959,5358.09,BBB,SKL,A,12418.12,314,45,CCF,FOLDERX,LTTRS,2002-11-19 15:52:00,2003-03-13 02:59:00,NOT COLLATERAL
-151970,5358.53,CCC,SIW,A,12417.96,315,46,CCG,FOLDERX,LTTRS,2002-11-19 16:52:00,2003-03-13 04:59:00,NOT COLLATERAL
-151981,5358.97,DDD,CKA,A,12417.8,316,47,CCH,FOLDERX,LTTRS,2002-11-19 17:52:00,2003-03-13 06:59:00,NOT COLLATERAL
-151992,5359.41,AAB,LDE,A,12417.64,317,48,CCI,FOLDERX,LTTRS,2002-11-19 18:52:00,2003-03-13 08:59:00,NOT COLLATERAL
-152003,5359.85,AAC,KFF,A,12417.48,318,49,CCJ,FOLDERR,LTTRS,2002-11-19 19:52:00,2003-03-13 10:59:00,NOT COLLATERAL
-152014,5360.29,AAD,EFH,A,12417.32,319,48,DDD,FOLDERS,LTTRS,2002-11-19 20:52:00,2003-03-13 12:59:00,NOT COLLATERAL
-152025,5360.73,AAE,NGC,A,12417.16,320,47,DDA,FOLDERX,LTTRS,2002-11-19 21:52:00,2003-03-13 14:59:00,NOT COLLATERAL
-152036,5361.17,AAF,DER,A,12417,321,46,DAA,FOLDERR,LTTRS,2002-11-19 22:52:00,2003-03-13 16:59:00,NOT COLLATERAL
-152047,5361.61,BBA,FVG,A,12416.84,322,45,FKF,FOLDERS,LTTRS,2002-11-19 23:52:00,2003-03-13 18:59:00,NOT COLLATERAL
-152058,5362.05,BBC,KWE,A,12416.68,323,44,LES,FOLDERX,LTTRS,2002-11-20 00:52:00,2003-03-13 20:59:00,COLLATERAL
-152069,5362.49,BBE,WER,A,12416.52,324,43,KLD,FOLDERR,LTTRS,2002-11-20 01:52:00,2003-03-13 22:59:00,COLLATERAL
-152080,5362.93,BBF,GFH,A,12416.36,325,42,SKL,FOLDERS,LTTRS,2002-11-20 02:52:00,2003-03-14 00:59:00,COLLATERAL
-152091,5363.37,BBG,BGF,A,12416.2,326,41,SIW,FOLDERX,LTTRS,2002-11-20 03:52:00,2003-03-14 02:59:00,NOT COLLATERAL
-152102,5363.81,BBH,XCS,A,12416.04,327,40,CKA,FOLDERR,LTTRZ,2002-11-20 04:52:00,2003-03-14 04:59:00,NOT COLLATERAL
-152113,5364.25,CCA,JHK,A,12415.88,328,39,LDE,FOLDERS,LTTRA,2002-11-20 05:52:00,2003-03-14 06:59:00,NOT COLLATERAL
-152124,5364.69,CCB,SFD,A,12415.72,329,38,KFF,FOLDERX,LTTRB,2002-11-20 06:52:00,2003-03-14 08:59:00,NOT COLLATERAL
-152135,5365.13,CCD,WRE,A,12415.56,330,37,EFH,FOLDERR,LTTRB,2002-11-20 07:52:00,2003-03-14 10:59:00,NOT COLLATERAL
-152146,5365.57,CCE,HGV,A,12415.4,331,36,NGC,FOLDERS,LTTRA,2002-11-20 08:52:00,2003-03-14 12:59:00,NOT COLLATERAL
-152157,5366.01,CCF,KLS,A,12415.24,332,35,DER,FOLDERX,LTTRA,2002-11-20 09:52:00,2003-03-14 14:59:00,NOT COLLATERAL
-152168,5366.45,CCG,SDK,A,12415.08,333,34,FVG,FOLDERD,LTTRS,2002-11-20 10:52:00,2003-03-14 16:59:00,NOT COLLATERAL
-152179,5366.89,CCH,MNV,A,12414.92,334,33,KWE,FOLDERE,LTTRZ,2002-11-20 11:52:00,2003-03-14 18:59:00,NOT COLLATERAL
-152190,5367.33,CCI,OKW,A,12414.76,335,32,WER,FOLDERF,LTTRS,2002-11-20 12:52:00,2003-03-14 20:59:00,COLLATERAL
-152201,5367.77,CCJ,ASS,A,12414.6,336,31,GFH,FOLDERG,LTTRS,2002-11-20 13:52:00,2003-03-14 22:59:00,COLLATERAL
-152212,5368.21,DDD,CKA,A,12414.44,337,30,BGF,FOLDERH,LTTRS,2002-11-20 14:52:00,2003-03-15 00:59:00,COLLATERAL
-152223,5368.65,DDA,SWQ,A,12414.28,338,29,XCS,FOLDERI,LTTRS,2002-11-20 15:52:00,2003-03-15 02:59:00,NOT COLLATERAL
-152234,5369.09,DAA,KUH,A,12414.12,339,28,JHK,FOLDERJ,LTTRS,2002-11-20 16:52:00,2003-03-15 04:59:00,NOT COLLATERAL
-152245,5369.53,DBB,XCV,A,12413.96,340,27,SFD,FOLDERK,LTTRS,2002-11-20 17:52:00,2003-03-15 06:59:00,NOT COLLATERAL
-152256,5369.97,DCC,ZAQ,A,12413.8,341,26,WRE,FOLDERL,LTTRS,2002-11-20 18:52:00,2003-03-15 08:59:00,NOT COLLATERAL
-152267,5370.41,DEE,MKO,A,12413.64,342,25,HGV,FOLDERM,LTTRS,2002-11-20 19:52:00,2003-03-15 10:59:00,NOT COLLATERAL
-152278,5370.85,DFF,VFR,A,12413.48,343,24,KLS,FOLDERN,LTTRS,2002-11-20 20:52:00,2003-03-15 12:59:00,NOT COLLATERAL
-152289,5371.29,DGG,YUJ,A,12413.32,344,23,SDK,FOLDERN,LTTRS,2002-11-20 21:52:00,2003-03-15 14:59:00,NOT COLLATERAL
-152300,5371.73,DHH,MED,A,12413.16,345,22,MNV,FOLDERN,LTTRS,2002-11-20 22:52:00,2003-03-15 16:59:00,NOT COLLATERAL
-152311,5372.17,AAA,SWE,A,12413,346,21,OKW,FOLDERN,LTTRS,2002-11-20 23:52:00,2003-03-15 18:59:00,NOT COLLATERAL
-152322,5372.61,BBB,CVF,A,12412.84,347,20,ASS,FOLDERL,LTTRS,2002-11-21 00:52:00,2003-03-15 20:59:00,COLLATERAL
-152333,5373.05,CCC,DSFG,A,12412.68,348,19,CKA,FOLDERL,LTTRS,2002-11-21 01:52:00,2003-03-15 22:59:00,COLLATERAL
-152344,5373.49,DDD,ASDRE,A,12412.52,349,18,SWQ,FOLDERL,LTTRZ,2002-11-21 02:52:00,2003-03-16 00:59:00,COLLATERAL
-152355,5373.93,AAB,HJKSS,A,12412.36,350,17,KUH,FOLDERL,LTTRA,2002-11-21 03:52:00,2003-03-16 02:59:00,NOT COLLATERAL
-152366,5374.37,AAC,KHAA,A,12412.2,351,16,XCV,FOLDERL,LTTRB,2002-11-21 04:52:00,2003-03-16 04:59:00,NOT COLLATERAL
-152377,5374.81,AAD,KSLD,A,12412.04,352,15,ZAQ,FOLDERA,LTTRB,2002-11-21 05:52:00,2003-03-16 06:59:00,NOT COLLATERAL
-152388,5375.25,AAE,EKID,A,12411.88,353,14,MKO,FOLDERB,LTTRA,2002-11-21 06:52:00,2003-03-16 08:59:00,NOT COLLATERAL
-152399,5375.69,AAF,VNCD,A,12411.72,354,13,VFR,FOLDERC,LTTRA,2002-11-21 07:52:00,2003-03-16 10:59:00,NOT COLLATERAL
-152410,5376.13,BBA,DKD,A,12411.56,355,12,YUJ,FOLDERD,LTTRS,2002-11-21 08:52:00,2003-03-16 12:59:00,NOT COLLATERAL
-152421,5376.57,BBC,FKF,A,12411.4,356,11,AAA,FOLDERE,LTTRZ,2002-11-21 09:52:00,2003-03-16 14:59:00,NOT COLLATERAL
-152432,5377.01,BBE,LES,A,12411.24,357,10,BBB,FOLDERF,LTTRS,2002-11-21 10:52:00,2003-03-16 16:59:00,NOT COLLATERAL
-152443,5377.45,BBF,KLD,A,12411.08,358,9,CCC,FOLDERG,LTTRS,2002-11-21 11:52:00,2003-03-16 18:59:00,NOT COLLATERAL
-152454,5377.89,BBG,SKL,A,12410.92,359,8,DDD,FOLDERH,LTTRS,2002-11-21 12:52:00,2003-03-16 20:59:00,COLLATERAL
-152465,5378.33,BBH,SIW,A,12410.76,360,7,AAB,FOLDERI,LTTRS,2002-11-21 13:52:00,2003-03-16 22:59:00,COLLATERAL
-152476,5378.77,CCA,CKA,A,12410.6,361,6,AAC,FOLDERJ,LTTRS,2002-11-21 14:52:00,2003-03-17 00:59:00,COLLATERAL
-152487,5379.21,CCB,LDE,A,12410.44,362,5,AAD,FOLDERK,LTTRS,2002-11-21 15:52:00,2003-03-17 02:59:00,NOT COLLATERAL
-152498,5379.65,CCD,KFF,A,12410.28,363,4,AAE,FOLDERL,LTTRS,2002-11-21 16:52:00,2003-03-17 04:59:00,NOT COLLATERAL
-152509,5380.09,CCE,EFH,A,12410.12,364,3,AAF,FOLDERM,LTTRS,2002-11-21 17:52:00,2003-03-17 06:59:00,NOT COLLATERAL
-152520,5380.53,CCF,NGC,A,12409.96,365,1,BBA,FOLDERN,LTTRS,2002-11-21 18:52:00,2003-03-17 08:59:00,NOT COLLATERAL
-152531,5380.97,CCG,DER,A,12409.8,366,2,BBC,FOLDERO,LTTRS,2002-11-21 19:52:00,2003-03-17 10:59:00,NOT COLLATERAL
-152542,5381.41,CCH,FVG,A,12409.64,367,3,BBE,FOLDERP,LTTRS,2002-11-21 20:52:00,2003-03-17 12:59:00,NOT COLLATERAL
-152553,5381.85,CCI,KWE,A,12409.48,368,4,BBF,FOLDERQ,LTTRS,2002-11-21 21:52:00,2003-03-17 14:59:00,NOT COLLATERAL
-152564,5382.29,CCJ,WER,A,12409.32,369,5,BBG,FOLDERR,LTTRS,2002-11-21 22:52:00,2003-03-17 16:59:00,NOT COLLATERAL
-152575,5382.73,DDD,GFH,A,12409.16,370,6,BBH,FOLDERS,LTTRS,2002-11-21 23:52:00,2003-03-17 18:59:00,NOT COLLATERAL
-152586,5383.17,DDA,BGF,A,12409,371,7,CCA,FOLDERT,LTTRZ,2002-11-22 00:52:00,2003-03-17 20:59:00,COLLATERAL
-152597,5383.61,DAA,XCS,A,12408.84,372,8,CCB,FOLDERU,LTTRA,2002-11-22 01:52:00,2003-03-17 22:59:00,COLLATERAL
-152608,5384.05,DBB,JHK,A,12408.68,373,9,CCD,FOLDERV,LTTRB,2002-11-22 02:52:00,2003-03-18 00:59:00,COLLATERAL
-152619,5576.45,DCC,SFD,A,12408.52,374,10,CCE,FOLDERW,LTTRB,2002-11-22 03:52:00,2003-03-18 02:59:00,NOT COLLATERAL
-152630,5768.85,DEE,WRE,A,12408.36,375,11,CCF,FOLDERX,LTTRA,2002-11-22 04:52:00,2003-03-18 04:59:00,NOT COLLATERAL
-152641,5961.25,DFF,HGV,A,12408.2,376,12,CCG,FOLDERY,LTTRA,2002-11-22 05:52:00,2003-03-18 06:59:00,NOT COLLATERAL
-152652,6153.65,DGG,KLS,A,12408.04,377,13,CCH,FOLDERZ,LTTRS,2002-11-22 06:52:00,2003-03-18 08:59:00,NOT COLLATERAL
-152663,6346.05,DHH,SDK,A,12407.88,378,14,CCI,FOLDERA,LTTRZ,2002-11-22 07:52:00,2003-03-18 10:59:00,NOT COLLATERAL
-152674,6538.45,AAA,MNV,A,12407.72,379,15,CCJ,FOLDERB,LTTRS,2002-11-22 08:52:00,2003-03-18 12:59:00,NOT COLLATERAL
-152685,6730.85,BBB,OKW,A,12407.56,380,16,DDD,FOLDERC,LTTRS,2002-11-22 09:52:00,2003-03-18 14:59:00,NOT COLLATERAL
-152696,6923.25,CCC,ASS,A,12407.4,381,17,DDA,FOLDERD,LTTRS,2002-11-22 10:52:00,2003-03-18 16:59:00,NOT COLLATERAL
-152707,7115.65,DDD,CKA,A,12407.24,382,18,DAA,FOLDERE,LTTRS,2002-11-22 11:52:00,2003-03-18 18:59:00,NOT COLLATERAL
-152718,7308.05,AAB,SWQ,A,12407.08,383,19,FKF,FOLDERF,LTTRS,2002-11-22 12:52:00,2003-03-18 20:59:00,COLLATERAL
-152729,7500.45,AAC,KUH,A,12406.92,384,20,LES,FOLDERG,LTTRS,2002-11-22 13:52:00,2003-03-18 22:59:00,COLLATERAL
-152740,7692.85,AAD,XCV,A,12406.76,385,21,KLD,FOLDERH,LTTRS,2002-11-22 14:52:00,2003-03-19 00:59:00,COLLATERAL
-152751,7885.25,AAE,ZAQ,A,12406.6,386,22,SKL,FOLDERI,LTTRS,2002-11-22 15:52:00,2003-03-19 02:59:00,NOT COLLATERAL
-152762,8077.65,AAF,MKO,A,12406.44,387,23,SIW,FOLDERJ,LTTRS,2002-11-22 16:52:00,2003-03-19 04:59:00,NOT COLLATERAL
-152773,8270.05,BBA,VFR,A,12406.28,388,24,CKA,FOLDERK,LTTRS,2002-11-22 17:52:00,2003-03-19 06:59:00,NOT COLLATERAL
-152784,8462.45,BBC,YUJ,A,12406.12,389,25,LDE,FOLDERL,LTTRS,2002-11-22 18:52:00,2003-03-19 08:59:00,NOT COLLATERAL
-152795,8654.85,BBE,MED,A,12405.96,390,26,KFF,FOLDERM,LTTRS,2002-11-22 19:52:00,2003-03-19 10:59:00,NOT COLLATERAL
-152806,8847.25,BBF,SWE,A,12405.8,391,27,EFH,FOLDERN,LTTRS,2002-11-22 20:52:00,2003-03-19 12:59:00,NOT COLLATERAL
-152817,9039.65,BBG,CVF,A,12405.64,392,28,NGC,FOLDERO,LTTRS,2002-11-22 21:52:00,2003-03-19 14:59:00,NOT COLLATERAL
-152828,9232.05,BBH,DSFG,A,12405.48,393,29,DER,FOLDERP,LTTRZ,2002-11-22 22:52:00,2003-03-19 16:59:00,NOT COLLATERAL
-152839,9424.45,CCA,ASDRE,A,12405.32,394,30,FVG,FOLDERQ,LTTRA,2002-11-22 23:52:00,2003-03-19 18:59:00,NOT COLLATERAL
-152850,9616.85,CCB,HJKSS,A,12405.16,395,31,KWE,FOLDERR,LTTRB,2002-11-23 00:52:00,2003-03-19 20:59:00,COLLATERAL
-152861,9809.25,CCD,KHAA,A,12405,396,32,WER,FOLDERS,LTTRB,2002-11-23 01:52:00,2003-03-19 22:59:00,COLLATERAL
-152872,10001.65,CCE,KSLD,A,12404.84,397,33,GFH,FOLDERT,LTTRA,2002-11-23 02:52:00,2003-03-20 00:59:00,COLLATERAL
-152883,10194.05,CCF,EKID,A,12404.68,398,34,BGF,FOLDERU,LTTRA,2002-11-23 03:52:00,2003-03-20 02:59:00,NOT COLLATERAL
-152894,10386.45,CCG,VNCD,A,12404.52,399,35,XCS,FOLDERV,LTTRS,2002-11-23 04:52:00,2003-03-20 04:59:00,NOT COLLATERAL
-152905,10578.85,CCH,DKD,A,12404.36,400,36,JHK,FOLDERW,LTTRZ,2002-11-23 05:52:00,2003-03-20 06:59:00,NOT COLLATERAL
-152916,10771.25,CCI,FKF,A,12404.2,401,37,SFD,FOLDERX,LTTRS,2002-11-23 06:52:00,2003-03-20 08:59:00,NOT COLLATERAL
-152927,10963.65,CCJ,LES,A,12404.04,402,38,WRE,FOLDERY,LTTRS,2002-11-23 07:52:00,2003-03-20 10:59:00,NOT COLLATERAL
-152938,11156.05,DDD,KLD,A,12403.88,403,39,HGV,FOLDERZ,LTTRS,2002-11-23 08:52:00,2003-03-20 12:59:00,NOT COLLATERAL
-152949,11348.45,DDA,SKL,A,12403.72,404,40,KLS,FOLDERZ,LTTRS,2002-11-23 09:52:00,2003-03-20 14:59:00,NOT COLLATERAL
-152960,11540.85,DAA,SIW,A,12403.56,405,41,SDK,FOLDERZ,LTTRS,2002-11-23 10:52:00,2003-03-20 16:59:00,NOT COLLATERAL
-152971,11733.25,DBB,CKA,A,12403.4,406,42,MNV,FOLDERZ,LTTRS,2002-11-23 11:52:00,2003-03-20 18:59:00,NOT COLLATERAL
-152982,11925.65,DCC,LDE,A,12403.24,407,43,OKW,FOLDERZ,LTTRS,2002-11-23 12:52:00,2003-03-20 20:59:00,COLLATERAL
-152993,12118.05,DEE,KFF,A,12403.08,408,44,ASS,FOLDERZ,LTTRS,2002-11-23 13:52:00,2003-03-20 22:59:00,COLLATERAL
-153004,12310.45,DFF,EFH,A,12402.92,409,45,CKA,FOLDERZ,LTTRS,2002-11-23 14:52:00,2003-03-21 00:59:00,COLLATERAL
-153015,12502.85,DGG,NGC,A,12402.76,410,46,SWQ,FOLDERZ,LTTRS,2002-11-23 15:52:00,2003-03-21 02:59:00,NOT COLLATERAL
-153026,12695.25,DHH,DER,A,12402.6,411,47,KUH,FOLDERZ,LTTRS,2002-11-23 16:52:00,2003-03-21 04:59:00,NOT COLLATERAL
-153037,12887.65,AAA,FVG,A,12402.44,412,48,XCV,FOLDERZ,LTTRS,2002-11-23 17:52:00,2003-03-21 06:59:00,NOT COLLATERAL
-153048,13080.05,BBB,KWE,A,12402.28,413,49,ZAQ,FOLDERZ,LTTRS,2002-11-23 18:52:00,2003-03-21 08:59:00,NOT COLLATERAL
-153059,13272.45,CCC,WER,A,12402.12,414,48,MKO,FOLDERZ,LTTRS,2002-11-23 19:52:00,2003-03-21 10:59:00,NOT COLLATERAL
-153070,13270.6788,DDD,GFH,A,12401.96,415,47,VFR,FOLDERZ,LTTRZ,2002-11-23 20:52:00,2003-03-21 12:59:00,NOT COLLATERAL
-153081,13268.9076,AAB,BGF,A,12401.8,416,46,YUJ,FOLDERZ,LTTRA,2002-11-23 21:52:00,2003-03-21 14:59:00,NOT COLLATERAL
-153092,13267.1364,AAC,XCS,A,12401.64,417,45,AAA,FOLDERX,LTTRB,2002-11-23 22:52:00,2003-03-21 16:59:00,NOT COLLATERAL
-153103,13263.1244,AAD,JHK,A,12401.48,418,44,BBB,FOLDERX,LTTRB,2002-11-23 23:52:00,2003-03-21 18:59:00,NOT COLLATERAL
-153114,13259.1124,AAE,SFD,A,12401.32,419,43,CCC,FOLDERX,LTTRA,2002-11-24 00:52:00,2003-03-21 20:59:00,COLLATERAL
-153125,13255.1004,AAF,WRE,A,12401.16,420,42,DDD,FOLDERX,LTTRA,2002-11-24 01:52:00,2003-03-21 22:59:00,COLLATERAL
-153136,13251.0884,BBA,HGV,A,12401,421,41,AAB,FOLDERX,LTTRS,2002-11-24 02:52:00,2003-03-22 00:59:00,COLLATERAL
-153147,13247.0764,BBC,KLS,A,12400.84,422,40,AAC,FOLDERX,LTTRZ,2002-11-24 03:52:00,2003-03-22 02:59:00,NOT COLLATERAL
-153158,13243.0644,BBE,SDK,A,12400.68,423,39,AAD,FOLDERX,LTTRS,2002-11-24 04:52:00,2003-03-22 04:59:00,NOT COLLATERAL
-153169,13239.0524,BBF,MNV,A,12400.52,424,38,AAE,FOLDERX,LTTRS,2002-11-24 05:52:00,2003-03-22 06:59:00,NOT COLLATERAL
-153180,13235.0404,BBG,OKW,A,12400.36,425,37,AAF,FOLDERX,LTTRS,2002-11-24 06:52:00,2003-03-22 08:59:00,NOT COLLATERAL
-153191,13231.0284,BBH,ASS,A,12400.2,426,36,BBA,FOLDERX,LTTRS,2002-11-24 07:52:00,2003-03-22 10:59:00,NOT COLLATERAL
-153202,13227.0164,CCA,CKA,A,12400.04,427,35,BBC,FOLDERX,LTTRS,2002-11-24 08:52:00,2003-03-22 12:59:00,NOT COLLATERAL
-153213,12237.345,CCB,SWQ,A,12399.88,428,34,BBE,FOLDERX,LTTRS,2002-11-24 09:52:00,2003-03-22 14:59:00,NOT COLLATERAL
-153224,12240.456,CCD,KUH,A,12399.72,429,33,BBF,FOLDERR,LTTRS,2002-11-24 10:52:00,2003-03-22 16:59:00,NOT COLLATERAL
-153235,12243.567,CCE,XCV,A,12399.56,430,32,BBG,FOLDERS,LTTRS,2002-11-24 11:52:00,2003-03-22 18:59:00,NOT COLLATERAL
-153246,12246.678,CCF,ZAQ,A,12399.4,431,31,BBH,FOLDERX,LTTRS,2002-11-24 12:52:00,2003-03-22 20:59:00,COLLATERAL
-153257,12249.789,CCG,MKO,A,12399.24,432,30,CCA,FOLDERR,LTTRS,2002-11-24 13:51:00,2003-03-22 22:59:00,COLLATERAL
-153268,12252.9,CCH,VFR,A,12399.08,433,29,CCB,FOLDERS,LTTRS,2002-11-24 14:51:00,2003-03-23 00:59:00,COLLATERAL
-153279,12256.011,CCI,YUJ,A,12398.92,434,28,CCD,FOLDERX,LTTRS,2002-11-24 15:51:00,2003-03-23 02:59:00,NOT COLLATERAL
-153290,12259.122,CCJ,MED,A,12398.76,435,27,CCE,FOLDERR,LTTRS,2002-11-24 16:51:00,2003-03-23 04:59:00,NOT COLLATERAL
-153301,12262.233,DDD,SWE,A,12398.6,436,26,CCF,FOLDERS,LTTRS,2002-11-24 17:51:00,2003-03-23 06:59:00,NOT COLLATERAL
-153312,12265.344,DDA,CVF,A,12398.44,437,25,CCG,FOLDERX,LTTRZ,2002-11-24 18:51:00,2003-03-23 08:59:00,NOT COLLATERAL
-153323,12268.455,DAA,DSFG,A,12398.28,438,24,CCH,FOLDERR,LTTRA,2002-11-24 19:51:00,2003-03-23 10:59:00,NOT COLLATERAL
-153334,12271.566,DBB,ASDRE,A,12398.12,439,23,CCI,FOLDERS,LTTRB,2002-11-24 20:51:00,2003-03-23 12:59:00,NOT COLLATERAL
-153345,12274.677,DCC,HJKSS,A,12397.96,440,22,CCJ,FOLDERX,LTTRB,2002-11-24 21:51:00,2003-03-23 14:59:00,NOT COLLATERAL
-153356,12277.788,DEE,KHAA,A,12397.8,441,21,DDD,FOLDERR,LTTRA,2002-11-24 22:51:00,2003-03-23 16:59:00,NOT COLLATERAL
-153367,12280.899,DFF,KSLD,A,12397.64,442,20,DDA,FOLDERS,LTTRA,2002-11-24 23:51:00,2003-03-23 18:59:00,NOT COLLATERAL
-153378,12284.01,DGG,EKID,A,12397.48,443,19,DAA,FOLDERX,LTTRS,2002-11-25 00:51:00,2003-03-23 20:59:00,COLLATERAL
-153389,12287.121,DHH,VNCD,A,12397.32,444,18,FKF,FOLDERD,LTTRZ,2002-11-25 01:51:00,2003-03-23 22:59:00,COLLATERAL
-153400,12290.232,AAA,DKD,A,12397.16,445,17,LES,FOLDERE,LTTRS,2002-11-25 02:51:00,2003-03-24 00:59:00,COLLATERAL
-153411,12293.343,BBB,FKF,A,12397,446,16,KLD,FOLDERF,LTTRS,2002-11-25 03:51:00,2003-03-24 02:59:00,NOT COLLATERAL
-153422,12296.454,CCC,LES,A,12396.84,447,15,SKL,FOLDERG,LTTRS,2002-11-25 04:51:00,2003-03-24 04:59:00,NOT COLLATERAL
-153433,12299.565,DDD,KLD,A,12396.68,448,14,SIW,FOLDERH,LTTRS,2002-11-25 05:51:00,2003-03-24 06:59:00,NOT COLLATERAL
-153444,12302.676,AAB,SKL,A,12396.52,449,13,CKA,FOLDERI,LTTRS,2002-11-25 06:51:00,2003-03-24 08:59:00,NOT COLLATERAL
-153455,12305.787,AAC,SIW,A,12396.36,450,12,LDE,FOLDERJ,LTTRS,2002-11-25 07:51:00,2003-03-24 10:59:00,NOT COLLATERAL
-153466,12308.898,AAD,CKA,A,12396.2,451,11,KFF,FOLDERK,LTTRS,2002-11-25 08:51:00,2003-03-24 12:59:00,NOT COLLATERAL
-153477,12312.009,AAE,LDE,A,12396.04,452,10,EFH,FOLDERL,LTTRS,2002-11-25 09:51:00,2003-03-24 14:59:00,NOT COLLATERAL
-153488,12315.12,AAF,KFF,A,12395.88,103,9,NGC,FOLDERM,LTTRS,2002-11-25 10:51:00,2003-03-24 16:59:00,NOT COLLATERAL
-153499,12318.231,BBA,EFH,A,12395.72,102,8,DER,FOLDERN,LTTRS,2002-11-25 11:51:00,2003-03-24 18:59:00,NOT COLLATERAL
-153510,12321.342,BBC,NGC,A,12395.56,101,7,FVG,FOLDERN,LTTRS,2002-11-25 12:51:00,2003-03-24 20:59:00,COLLATERAL
-153521,12324.453,BBE,DER,A,12395.4,100,6,KWE,FOLDERN,LTTRS,2002-11-25 13:51:00,2003-03-24 22:59:00,COLLATERAL
-153532,12327.564,BBF,FVG,A,12395.24,99,5,WER,FOLDERN,LTTRS,2002-11-25 14:51:00,2003-03-25 00:59:00,COLLATERAL
-153543,12330.675,BBG,KWE,A,12395.08,98,4,GFH,FOLDERL,LTTRS,2002-11-25 15:51:00,2003-03-25 02:59:00,NOT COLLATERAL
-153554,12333.786,BBH,WER,A,12394.92,97,3,BGF,FOLDERL,LTTRZ,2002-11-25 16:51:00,2003-03-25 04:59:00,NOT COLLATERAL
-153565,12336.897,CCA,GFH,A,12394.76,96,1,XCS,FOLDERL,LTTRA,2002-11-25 17:51:00,2003-03-25 06:59:00,NOT COLLATERAL
-153576,12340.008,CCB,BGF,A,12394.6,95,2,JHK,FOLDERL,LTTRB,2002-11-25 18:51:00,2003-03-25 08:59:00,NOT COLLATERAL
-153587,12343.119,CCD,XCS,A,12394.44,94,3,SFD,FOLDERL,LTTRB,2002-11-25 19:51:00,2003-03-25 10:59:00,NOT COLLATERAL
-153598,12346.23,CCE,JHK,A,12394.28,93,4,WRE,FOLDERA,LTTRA,2002-11-25 20:51:00,2003-03-25 12:59:00,NOT COLLATERAL
-153609,12349.341,CCF,SFD,A,12394.12,92,5,HGV,FOLDERB,LTTRA,2002-11-25 21:51:00,2003-03-25 14:59:00,NOT COLLATERAL
-153620,12352.452,CCG,WRE,A,12393.96,91,6,KLS,FOLDERC,LTTRS,2002-11-25 22:51:00,2003-03-25 16:59:00,NOT COLLATERAL
-153631,12355.563,CCH,HGV,A,12393.8,90,7,SDK,FOLDERD,LTTRZ,2002-11-25 23:51:00,2003-03-25 18:59:00,NOT COLLATERAL
-153642,12358.674,CCI,KLS,A,12393.64,89,8,MNV,FOLDERE,LTTRS,2002-11-26 00:51:00,2003-03-25 20:59:00,COLLATERAL
-153653,12361.785,CCJ,SDK,A,12393.48,88,9,OKW,FOLDERF,LTTRS,2002-11-26 01:51:00,2003-03-25 22:59:00,COLLATERAL
-153664,12364.896,DDD,MNV,A,12393.32,87,10,ASS,FOLDERG,LTTRS,2002-11-26 02:51:00,2003-03-26 00:59:00,COLLATERAL
-153675,12368.007,DDA,OKW,A,12393.16,86,11,CKA,FOLDERH,LTTRS,2002-11-26 03:51:00,2003-03-26 02:59:00,NOT COLLATERAL
-153686,12371.118,DAA,ASS,A,12393,85,12,SWQ,FOLDERI,LTTRS,2002-11-26 04:51:00,2003-03-26 04:59:00,NOT COLLATERAL
-153697,12374.229,DBB,CKA,A,12392.84,84,13,KUH,FOLDERJ,LTTRS,2002-11-26 05:51:00,2003-03-26 06:59:00,NOT COLLATERAL
-153708,12377.34,DCC,SWQ,A,12392.68,83,14,XCV,FOLDERK,LTTRS,2002-11-26 06:51:00,2003-03-26 08:59:00,NOT COLLATERAL
-153719,12380.451,DEE,KUH,A,12392.52,82,15,ZAQ,FOLDERL,LTTRS,2002-11-26 07:51:00,2003-03-26 10:59:00,NOT COLLATERAL
-153730,12383.562,DFF,XCV,A,12392.36,81,16,MKO,FOLDERM,LTTRS,2002-11-26 08:51:00,2003-03-26 12:59:00,NOT COLLATERAL
-153741,12386.673,DGG,ZAQ,A,12392.2,80,17,VFR,FOLDERN,LTTRS,2002-11-26 09:51:00,2003-03-26 14:59:00,NOT COLLATERAL
-153752,12389.784,DHH,MKO,A,12392.04,79,18,YUJ,FOLDERO,LTTRS,2002-11-26 10:51:00,2003-03-26 16:59:00,NOT COLLATERAL
-153763,12392.895,AAA,VFR,A,12391.88,78,19,AAA,FOLDERP,LTTRS,2002-11-26 11:51:00,2003-03-26 18:59:00,NOT COLLATERAL
-153774,12396.006,BBB,YUJ,A,12391.72,77,20,BBB,FOLDERQ,LTTRS,2002-11-26 12:51:00,2003-03-26 20:59:00,COLLATERAL
-153785,12399.117,CCC,MED,A,12391.56,76,21,CCC,FOLDERR,LTTRS,2002-11-26 13:51:00,2003-03-26 22:59:00,COLLATERAL
-153796,12402.228,DDD,SWE,A,12391.4,75,22,DDD,FOLDERS,LTTRZ,2002-11-26 14:51:00,2003-03-27 00:59:00,COLLATERAL
-153807,12405.339,AAB,CVF,A,12391.24,74,23,AAB,FOLDERT,LTTRA,2002-11-26 15:51:00,2003-03-27 02:59:00,NOT COLLATERAL
-153818,12408.45,AAC,DSFG,A,12391.08,73,24,AAC,FOLDERU,LTTRB,2002-11-26 16:51:00,2003-03-27 04:59:00,NOT COLLATERAL
-153829,12411.561,AAD,ASDRE,A,12390.92,72,25,AAD,FOLDERV,LTTRB,2002-11-26 17:51:00,2003-03-27 06:59:00,NOT COLLATERAL
-153840,12414.672,AAE,HJKSS,A,12390.76,71,26,AAE,FOLDERW,LTTRA,2002-11-26 18:51:00,2003-03-27 08:59:00,NOT COLLATERAL
-153851,12417.783,AAF,KHAA,A,12390.6,70,27,AAF,FOLDERX,LTTRA,2002-11-26 19:51:00,2003-03-27 10:59:00,NOT COLLATERAL
-153862,12420.894,BBA,KSLD,A,12390.44,69,28,BBA,FOLDERY,LTTRS,2002-11-26 20:51:00,2003-03-27 12:59:00,NOT COLLATERAL
-153873,12424.005,BBC,EKID,A,12390.28,68,29,BBC,FOLDERZ,LTTRZ,2002-11-26 21:51:00,2003-03-27 14:59:00,NOT COLLATERAL
-153884,12427.116,BBE,VNCD,A,12390.12,67,30,BBE,FOLDERA,LTTRS,2002-11-26 22:51:00,2003-03-27 16:59:00,NOT COLLATERAL
-153895,12430.227,BBF,DKD,A,12389.96,66,31,BBF,FOLDERB,LTTRS,2002-11-26 23:51:00,2003-03-27 18:59:00,NOT COLLATERAL
-153906,12433.338,BBG,FKF,A,12389.8,65,32,BBG,FOLDERC,LTTRS,2002-11-27 00:51:00,2003-03-27 20:59:00,COLLATERAL
-153917,12436.449,BBH,LES,A,12389.64,64,33,BBH,FOLDERD,LTTRS,2002-11-27 01:51:00,2003-03-27 22:59:00,COLLATERAL
-153928,12439.56,CCA,KLD,A,12389.48,63,34,CCA,FOLDERE,LTTRS,2002-11-27 02:51:00,2003-03-28 00:59:00,COLLATERAL
-153939,12442.671,CCB,SKL,A,12389.32,62,35,CCB,FOLDERF,LTTRS,2002-11-27 03:51:00,2003-03-28 02:59:00,NOT COLLATERAL
-153950,12445.782,CCD,SIW,A,12389.16,61,36,CCD,FOLDERG,LTTRS,2002-11-27 04:51:00,2003-03-28 04:59:00,NULL
-153961,12448.893,CCE,CKA,A,12389,60,37,CCE,FOLDERH,LTTRS,2002-11-27 05:51:00,2003-03-28 06:59:00,NULL
-153972,12452.004,CCF,LDE,A,12388.84,59,38,CCF,FOLDERI,LTTRS,2002-11-27 06:51:00,2003-03-28 08:59:00,NULL
-153983,12455.115,CCG,KFF,A,12388.68,58,39,CCG,FOLDERJ,LTTRS,2002-11-27 07:51:00,2003-03-28 10:59:00,NULL
-153994,12458.226,CCH,EFH,A,12388.52,57,40,CCH,FOLDERK,LTTRS,2002-11-27 08:51:00,2003-03-28 12:59:00,NULL
-154005,12461.337,CCI,NGC,A,12388.36,56,41,CCI,FOLDERL,LTTRS,2002-11-27 09:51:00,2003-03-28 14:59:00,NULL
-154016,12464.448,CCJ,DER,A,12388.2,55,42,CCJ,FOLDERM,LTTRS,2002-11-27 10:51:00,2003-03-28 16:59:00,NULL
-154027,12467.559,DDD,FVG,A,12388.04,54,43,DDD,FOLDERN,LTTRS,2002-11-27 11:51:00,2003-03-28 18:59:00,NOT COLLATERAL
-154038,12470.67,DDA,KWE,A,12387.88,53,44,DDA,FOLDERO,LTTRZ,2002-11-27 12:51:00,2003-03-28 20:59:00,COLLATERAL
-154049,12473.781,DAA,WER,A,12387.72,52,45,DAA,FOLDERP,LTTRA,2002-11-27 13:51:00,2003-03-28 22:59:00,COLLATERAL
-154060,12476.892,DBB,GFH,A,12387.56,51,46,FKF,FOLDERQ,LTTRB,2002-11-27 14:51:00,2003-03-29 00:59:00,COLLATERAL
-154071,12480.003,DCC,BGF,A,12387.4,50,47,LES,FOLDERR,LTTRB,2002-11-27 15:51:00,2003-03-29 02:59:00,NOT COLLATERAL
-154082,12483.114,DEE,XCS,A,12387.24,49,48,KLD,FOLDERS,LTTRA,2002-11-27 16:51:00,2003-03-29 04:59:00,NOT COLLATERAL
-154093,12486.225,DFF,JHK,A,12387.08,48,49,SKL,FOLDERT,LTTRA,2002-11-27 17:51:00,2003-03-29 06:59:00,NULL
-154104,12489.336,DGG,SFD,A,12386.92,47,48,SIW,FOLDERU,LTTRS,2002-11-27 18:51:00,2003-03-29 08:59:00,NULL
-154115,12492.447,DHH,WRE,A,12386.76,46,47,CKA,FOLDERV,LTTRZ,2002-11-27 19:51:00,2003-03-29 10:59:00,NULL
-154126,12495.558,AAA,HGV,A,12386.6,45,46,LDE,FOLDERW,LTTRS,2002-11-27 20:51:00,2003-03-29 12:59:00,NULL
-154137,12498.669,BBB,KLS,A,12386.44,44,45,KFF,FOLDERX,LTTRS,2002-11-27 21:51:00,2003-03-29 14:59:00,NULL
-154148,12501.78,CCC,SDK,A,12386.28,43,44,EFH,FOLDERY,LTTRS,2002-11-27 22:51:00,2003-03-29 16:59:00,NULL
-154159,12504.891,DDD,MNV,A,12386.12,42,43,NGC,FOLDERZ,LTTRS,2002-11-27 23:51:00,2003-03-29 18:59:00,NULL
-154170,12508.002,AAB,OKW,A,12385.96,41,42,DER,FOLDERZ,LTTRS,2002-11-28 00:51:00,2003-03-29 20:59:00,NULL
-154181,12511.113,AAC,ASS,A,12385.8,40,41,FVG,FOLDERZ,LTTRS,2002-11-28 01:51:00,2003-03-29 22:59:00,COLLATERAL
-154192,12514.224,AAD,CKA,A,12385.64,39,40,KWE,FOLDERZ,LTTRS,2002-11-28 02:51:00,2003-03-30 00:59:00,COLLATERAL
-154203,12517.335,AAE,SWQ,A,12385.48,38,39,WER,FOLDERZ,LTTRS,2002-11-28 03:51:00,2003-03-30 02:59:00,NOT COLLATERAL
-154214,12520.446,AAF,KUH,A,12385.32,37,38,GFH,FOLDERZ,LTTRS,2002-11-28 04:51:00,2003-03-30 04:59:00,NOT COLLATERAL
-154225,12523.557,BBA,XCV,A,12385.16,36,37,BGF,FOLDERZ,LTTRS,2002-11-28 05:51:00,2003-03-30 06:59:00,NOT COLLATERAL
-154236,12526.668,BBC,ZAQ,A,12385,35,36,XCS,FOLDERZ,LTTRS,2002-11-28 06:51:00,2003-03-30 08:59:00,NOT COLLATERAL
-154247,12529.779,BBE,MKO,A,12384.84,34,35,JHK,FOLDERZ,LTTRS,2002-11-28 07:51:00,2003-03-30 10:59:00,NOT COLLATERAL
-154258,12532.89,BBF,VFR,A,12384.68,33,34,SFD,FOLDERZ,LTTRS,2002-11-28 08:51:00,2003-03-30 12:59:00,NOT COLLATERAL
-154269,12536.001,BBG,YUJ,A,12384.52,32,33,WRE,FOLDERZ,LTTRS,2002-11-28 09:51:00,2003-03-30 14:59:00,NOT COLLATERAL
-154280,12539.112,BBH,MED,A,12384.36,31,32,HGV,FOLDERZ,LTTRZ,2002-11-28 10:51:00,2003-03-30 16:59:00,NOT COLLATERAL
-154291,12542.223,CCA,SWE,A,12384.2,30,31,KLS,FOLDERZ,LTTRA,2002-11-28 11:51:00,2003-03-30 18:59:00,NOT COLLATERAL
-154302,12545.334,CCB,CVF,A,12384.04,29,30,SDK,FOLDERZ,LTTRB,2002-11-28 12:51:00,2003-03-30 20:59:00,COLLATERAL
-154313,12548.445,CCD,DSFG,A,12383.88,28,29,MNV,FOLDERX,LTTRB,2002-11-28 13:51:00,2003-03-30 22:59:00,COLLATERAL
-154324,12551.556,CCE,ASDRE,A,12383.72,27,28,OKW,FOLDERX,LTTRA,2002-11-28 14:51:00,2003-03-31 00:59:00,COLLATERAL
-154335,12554.667,CCF,HJKSS,A,12383.56,26,27,ASS,FOLDERX,LTTRA,2002-11-28 15:51:00,2003-03-31 02:59:00,NOT COLLATERAL
-154346,12557.778,CCG,KHAA,A,12383.4,25,26,CKA,FOLDERX,LTTRS,2002-11-28 16:51:00,2003-03-31 04:59:00,NOT COLLATERAL
-154357,12560.889,CCH,KSLD,A,12383.24,24,25,SWQ,FOLDERX,LTTRZ,2002-11-28 17:51:00,2003-03-31 06:59:00,NOT COLLATERAL
-154368,12564,CCI,EKID,A,12383.08,23,24,KUH,FOLDERX,LTTRS,2002-11-28 18:51:00,2003-03-31 08:59:00,NOT COLLATERAL
-154379,12567.111,CCJ,VNCD,A,12382.92,22,23,XCV,FOLDERX,LTTRS,2002-11-28 19:51:00,2003-03-31 10:59:00,NOT COLLATERAL
-154390,12570.222,DDD,DKD,A,12382.76,21,22,ZAQ,FOLDERX,LTTRS,2002-11-28 20:51:00,2003-03-31 12:59:00,NOT COLLATERAL
-154401,12573.333,DDA,FKF,A,12382.6,24,21,MKO,FOLDERX,LTTRS,2002-11-28 21:51:00,2003-03-31 14:59:00,NOT COLLATERAL
-154412,12576.444,DAA,LES,A,12382.44,27,20,VFR,FOLDERX,LTTRS,2002-11-28 22:51:00,2003-03-31 16:59:00,NOT COLLATERAL
-154423,12579.555,DBB,KLD,A,12382.28,30,19,YUJ,FOLDERX,LTTRS,2002-11-28 23:51:00,2003-03-31 18:59:00,NOT COLLATERAL
-154434,12582.666,DCC,SKL,A,12382.12,33,18,AAA,FOLDERX,LTTRS,2002-11-29 00:51:00,2003-03-31 20:59:00,COLLATERAL
-154445,12585.777,DEE,SIW,A,12381.96,36,17,BBB,FOLDERR,LTTRS,2002-11-29 01:51:00,2003-03-31 22:59:00,COLLATERAL
-154456,12588.888,DFF,CKA,A,12381.8,39,16,CCC,FOLDERS,LTTRS,2002-11-29 02:51:00,2003-04-01 00:59:00,COLLATERAL
-154467,12591.999,DGG,LDE,A,12381.64,42,15,DDD,FOLDERX,LTTRS,2002-11-29 03:51:00,2003-04-01 02:59:00,NOT COLLATERAL
-154478,12595.11,DHH,KFF,A,12381.48,45,14,AAB,FOLDERR,LTTRS,2002-11-29 04:51:00,2003-04-01 04:59:00,NOT COLLATERAL
-154489,12598.221,AAA,EFH,A,12381.32,48,13,AAC,FOLDERS,LTTRS,2002-11-29 05:51:00,2003-04-01 06:59:00,NOT COLLATERAL
-154500,12601.332,BBB,NGC,A,12381.16,51,12,AAD,FOLDERX,LTTRS,2002-11-29 06:51:00,2003-04-01 08:59:00,NOT COLLATERAL
-154511,12604.443,CCC,DER,A,12381,54,11,AAE,FOLDERR,LTTRS,2002-11-29 07:51:00,2003-04-01 10:59:00,NOT COLLATERAL
-154522,12607.554,DDD,FVG,A,12380.84,57,10,AAF,FOLDERS,LTTRZ,2002-11-29 08:51:00,2003-04-01 12:59:00,NOT COLLATERAL
-154533,12610.665,AAB,KWE,A,12380.68,60,9,BBA,FOLDERX,LTTRA,2002-11-29 09:51:00,2003-04-01 14:59:00,NOT COLLATERAL
-154544,12613.776,AAC,WER,A,12380.52,63,8,BBC,FOLDERR,LTTRB,2002-11-29 10:51:00,2003-04-01 16:59:00,NOT COLLATERAL
-154555,12616.887,AAD,GFH,A,12380.36,66,7,BBE,FOLDERS,LTTRB,2002-11-29 11:51:00,2003-04-01 18:59:00,NOT COLLATERAL
-154566,12619.998,AAE,BGF,A,12380.2,69,6,BBF,FOLDERX,LTTRA,2002-11-29 12:51:00,2003-04-01 20:59:00,COLLATERAL
-154577,12623.109,AAF,XCS,A,12380.04,72,5,BBG,FOLDERR,LTTRA,2002-11-29 13:51:00,2003-04-01 22:59:00,COLLATERAL
-154588,12626.22,BBA,JHK,A,12379.88,75,4,BBH,FOLDERS,LTTRS,2002-11-29 14:51:00,2003-04-02 00:59:00,COLLATERAL
-154599,12629.331,BBC,SFD,A,12379.72,78,3,CCA,FOLDERX,LTTRZ,2002-11-29 15:51:00,2003-04-02 02:59:00,NOT COLLATERAL
-154610,12632.442,BBE,WRE,A,12379.56,81,1,CCB,FOLDERD,LTTRS,2002-11-29 16:51:00,2003-04-02 04:59:00,NOT COLLATERAL
-154621,12635.553,BBF,HGV,A,12379.4,84,2,CCD,FOLDERE,LTTRS,2002-11-29 17:51:00,2003-04-02 06:59:00,NOT COLLATERAL
-154632,12638.664,BBG,KLS,A,12379.24,87,3,CCE,FOLDERF,LTTRS,2002-11-29 18:51:00,2003-04-02 08:59:00,NOT COLLATERAL
-154643,12641.775,BBH,SDK,A,12379.08,90,4,CCF,FOLDERG,LTTRS,2002-11-29 19:51:00,2003-04-02 10:59:00,NOT COLLATERAL
-154654,12644.886,CCA,MNV,A,12378.92,93,5,CCG,FOLDERH,LTTRS,2002-11-29 20:51:00,2003-04-02 12:59:00,NOT COLLATERAL
-154665,12647.997,CCB,OKW,A,12378.76,96,6,CCH,FOLDERI,LTTRS,2002-11-29 21:51:00,2003-04-02 14:59:00,NOT COLLATERAL
-154676,12651.108,CCD,ASS,A,12378.6,99,7,CCI,FOLDERJ,LTTRS,2002-11-29 22:51:00,2003-04-02 16:59:00,NOT COLLATERAL
-154687,12654.219,CCE,CKA,A,12378.44,102,8,CCJ,FOLDERK,LTTRS,2002-11-29 23:51:00,2003-04-02 18:59:00,NOT COLLATERAL
-154698,12657.33,CCF,SWQ,A,12378.28,105,9,DDD,FOLDERL,LTTRS,2002-11-30 00:51:00,2003-04-02 20:59:00,COLLATERAL
-154709,12660.441,CCG,KUH,A,12378.12,108,10,DDA,FOLDERM,LTTRS,2002-11-30 01:51:00,2003-04-02 22:59:00,COLLATERAL
-154720,12663.552,CCH,XCV,A,12377.96,111,11,DAA,FOLDERN,LTTRS,2002-11-30 02:51:00,2003-04-03 00:59:00,COLLATERAL
-154731,12666.663,CCI,ZAQ,A,12377.8,114,12,FKF,FOLDERN,LTTRS,2002-11-30 03:51:00,2003-04-03 02:59:00,NOT COLLATERAL
-154742,12669.774,CCJ,MKO,A,12377.64,117,13,LES,FOLDERN,LTTRS,2002-11-30 04:51:00,2003-04-03 04:59:00,NOT COLLATERAL
-154753,12672.885,DDD,VFR,A,12377.48,120,14,KLD,FOLDERN,LTTRS,2002-11-30 05:51:00,2003-04-03 06:59:00,NOT COLLATERAL
-154764,12675.996,DDA,YUJ,A,12377.32,123,15,SKL,FOLDERL,LTTRZ,2002-11-30 06:51:00,2003-04-03 08:59:00,NOT COLLATERAL
-154775,12679.107,DAA,MED,A,12377.16,126,16,SIW,FOLDERL,LTTRA,2002-11-30 07:51:00,2003-04-03 10:59:00,NOT COLLATERAL
-154786,12682.218,DBB,SWE,A,12377,129,17,CKA,FOLDERL,LTTRB,2002-11-30 08:51:00,2003-04-03 12:59:00,NOT COLLATERAL
-154797,12685.329,DCC,CVF,A,12376.84,132,18,LDE,FOLDERL,LTTRB,2002-11-30 09:51:00,2003-04-03 14:59:00,NOT COLLATERAL
-154808,12688.44,DEE,DSFG,A,12376.68,135,19,KFF,FOLDERL,LTTRA,2002-11-30 10:51:00,2003-04-03 16:59:00,NOT COLLATERAL
-154819,12691.551,DFF,ASDRE,A,12376.52,138,20,EFH,FOLDERA,LTTRA,2002-11-30 11:51:00,2003-04-03 18:59:00,NOT COLLATERAL
-154830,12694.662,DGG,HJKSS,A,12376.36,141,21,NGC,FOLDERB,LTTRS,2002-11-30 12:51:00,2003-04-03 20:59:00,COLLATERAL
-154841,12697.773,DHH,KHAA,A,12376.2,144,22,DER,FOLDERC,LTTRZ,2002-11-30 13:51:00,2003-04-03 22:59:00,COLLATERAL
-154852,12700.884,AAA,KSLD,A,12376.04,147,23,FVG,FOLDERD,LTTRS,2002-11-30 14:51:00,2003-04-04 00:59:00,COLLATERAL
-154863,12703.995,BBB,EKID,A,12375.88,150,24,KWE,FOLDERE,LTTRS,2002-11-30 15:51:00,2003-04-04 02:59:00,NOT COLLATERAL
-154874,12707.106,CCC,VNCD,A,12375.72,153,25,WER,FOLDERF,LTTRS,2002-11-30 16:51:00,2003-04-04 04:59:00,NOT COLLATERAL
-154885,12710.217,DDD,DKD,A,12375.56,156,26,GFH,FOLDERG,LTTRS,2002-11-30 17:51:00,2003-04-04 06:59:00,NOT COLLATERAL
-154896,12713.328,AAB,FKF,A,12375.4,159,27,BGF,FOLDERH,LTTRS,2002-11-30 18:51:00,2003-04-04 08:59:00,NOT COLLATERAL
-154907,12716.439,AAC,LES,A,12375.24,162,28,XCS,FOLDERI,LTTRS,2002-11-30 19:51:00,2003-04-04 10:59:00,NOT COLLATERAL
-154918,12719.55,AAD,KLD,A,12375.08,165,29,JHK,FOLDERJ,LTTRS,2002-11-30 20:51:00,2003-04-04 12:59:00,NOT COLLATERAL
-154929,12722.661,AAE,SKL,A,12374.92,168,30,SFD,FOLDERK,LTTRS,2002-11-30 21:51:00,2003-04-04 14:59:00,NOT COLLATERAL
-154940,12725.772,AAF,SIW,A,12374.76,171,31,WRE,FOLDERL,LTTRS,2002-11-30 22:51:00,2003-04-04 16:59:00,NOT COLLATERAL
-154951,12728.883,BBA,CKA,A,12374.6,174,32,HGV,FOLDERM,LTTRS,2002-11-30 23:51:00,2003-04-04 18:59:00,NOT COLLATERAL
-154962,12731.994,BBC,LDE,A,12374.44,177,33,KLS,FOLDERN,LTTRS,2002-12-01 00:51:00,2003-04-04 20:59:00,COLLATERAL
-154973,12735.105,BBE,KFF,A,12374.28,180,34,SDK,FOLDERO,LTTRS,2002-12-01 01:51:00,2003-04-04 22:59:00,COLLATERAL
-154984,12738.216,BBF,EFH,A,12374.12,183,35,MNV,FOLDERP,LTTRS,2002-12-01 02:51:00,2003-04-05 00:59:00,COLLATERAL
-154995,12741.327,BBG,NGC,A,12373.96,186,36,OKW,FOLDERQ,LTTRS,2002-12-01 03:51:00,2003-04-05 02:59:00,NOT COLLATERAL
-155006,12744.438,BBH,DER,A,12373.8,189,37,ASS,FOLDERR,LTTRZ,2002-12-01 04:51:00,2003-04-05 04:59:00,NOT COLLATERAL
-155017,12747.549,CCA,FVG,A,12373.64,192,38,CKA,FOLDERS,LTTRA,2002-12-01 05:51:00,2003-04-05 06:59:00,NOT COLLATERAL
-155028,12750.66,CCB,KWE,A,12373.48,195,39,SWQ,FOLDERT,LTTRB,2002-12-01 06:51:00,2003-04-05 08:59:00,NOT COLLATERAL
-155039,12753.771,CCD,WER,A,12373.32,198,40,KUH,FOLDERU,LTTRB,2002-12-01 07:51:00,2003-04-05 10:59:00,NOT COLLATERAL
-155050,12756.882,CCE,GFH,A,12373.16,201,41,XCV,FOLDERV,LTTRA,2002-12-01 08:51:00,2003-04-05 12:59:00,NOT COLLATERAL
-155061,12759.993,CCF,BGF,A,12373,204,42,ZAQ,FOLDERW,LTTRA,2002-12-01 09:51:00,2003-04-05 14:59:00,NOT COLLATERAL
-155072,12763.104,CCG,XCS,A,12372.84,207,43,MKO,FOLDERX,LTTRS,2002-12-01 10:51:00,2003-04-05 16:59:00,NOT COLLATERAL
-155083,12766.215,CCH,JHK,A,12372.68,210,44,VFR,FOLDERY,LTTRZ,2002-12-01 11:51:00,2003-04-05 18:59:00,NOT COLLATERAL
-155094,12769.326,CCI,SFD,A,12372.52,213,45,YUJ,FOLDERZ,LTTRS,2002-12-01 12:51:00,2003-04-05 20:59:00,COLLATERAL
-155105,12772.437,CCJ,WRE,A,12372.36,216,46,AAA,FOLDERA,LTTRS,2002-12-01 13:51:00,2003-04-05 22:59:00,COLLATERAL
-155116,12775.548,DDD,HGV,A,12372.2,219,47,BBB,FOLDERB,LTTRS,2002-12-01 14:51:00,2003-04-06 00:59:00,COLLATERAL
-155127,12778.659,DDA,KLS,A,12372.04,222,48,CCC,FOLDERC,LTTRS,2002-12-01 15:51:00,2003-04-06 02:59:00,NOT COLLATERAL
-155138,12781.77,DAA,SDK,A,12371.88,225,49,DDD,FOLDERD,LTTRS,2002-12-01 16:51:00,2003-04-06 04:59:00,NOT COLLATERAL
-155149,12784.881,DBB,MNV,A,12371.72,228,48,AAB,FOLDERE,LTTRS,2002-12-01 17:51:00,2003-04-06 06:59:00,NOT COLLATERAL
-155160,12787.992,DCC,OKW,A,12371.56,231,47,AAC,FOLDERF,LTTRS,2002-12-01 18:51:00,2003-04-06 08:59:00,NOT COLLATERAL
-155171,12791.103,DEE,ASS,A,12371.4,234,46,AAD,FOLDERG,LTTRS,2002-12-01 19:51:00,2003-04-06 10:59:00,NOT COLLATERAL
-155182,12794.214,DFF,CKA,A,12371.24,237,45,AAE,FOLDERH,LTTRS,2002-12-01 20:51:00,2003-04-06 12:59:00,NOT COLLATERAL
-155193,12797.325,DGG,SWQ,A,12371.08,240,44,AAF,FOLDERI,LTTRS,2002-12-01 21:51:00,2003-04-06 14:59:00,NOT COLLATERAL
-155204,12800.436,DHH,KUH,A,12370.92,243,43,BBA,FOLDERJ,LTTRS,2002-12-01 22:51:00,2003-04-06 16:59:00,NOT COLLATERAL
-155215,12803.547,AAA,XCV,A,12370.76,246,42,BBC,FOLDERK,LTTRS,2002-12-01 23:51:00,2003-04-06 18:59:00,NOT COLLATERAL
-155226,12806.658,BBB,ZAQ,A,12370.6,249,41,BBE,FOLDERL,LTTRS,2002-12-02 00:51:00,2003-04-06 20:59:00,COLLATERAL
-155237,12809.769,CCC,MKO,A,12370.44,252,40,BBF,FOLDERM,LTTRS,2002-12-02 01:51:00,2003-04-06 22:59:00,COLLATERAL
-155248,12812.88,DDD,VFR,A,12370.28,255,39,BBG,FOLDERN,LTTRZ,2002-12-02 02:51:00,2003-04-07 00:59:00,COLLATERAL
-155259,12815.991,AAB,YUJ,A,12370.12,258,38,BBH,FOLDERO,LTTRA,2002-12-02 03:51:00,2003-04-07 02:59:00,NOT COLLATERAL
-155270,12819.102,AAC,MED,A,12369.96,261,37,CCA,FOLDERP,LTTRB,2002-12-02 04:51:00,2003-04-07 04:59:00,NOT COLLATERAL
-155281,12822.213,AAD,SWE,A,12369.8,264,36,CCB,FOLDERQ,LTTRB,2002-12-02 05:51:00,2003-04-07 06:59:00,NOT COLLATERAL
-155292,12825.324,AAE,CVF,A,12369.64,267,35,CCD,FOLDERR,LTTRA,2002-12-02 06:51:00,2003-04-07 08:59:00,NOT COLLATERAL
-155303,12828.435,AAF,DSFG,A,12369.48,270,34,CCE,FOLDERS,LTTRA,2002-12-02 07:51:00,2003-04-07 10:59:00,NOT COLLATERAL
-155314,12831.546,BBA,ASDRE,A,12369.32,273,33,CCF,FOLDERT,LTTRS,2002-12-02 08:51:00,2003-04-07 12:59:00,NOT COLLATERAL
-155325,12834.657,BBC,HJKSS,A,12369.16,276,32,CCG,FOLDERU,LTTRZ,2002-12-02 09:51:00,2003-04-07 14:59:00,NOT COLLATERAL
-155336,12837.768,BBE,KHAA,A,12369,279,31,CCH,FOLDERV,LTTRS,2002-12-02 10:51:00,2003-04-07 16:59:00,NOT COLLATERAL
-155347,12840.879,BBF,KSLD,A,12368.84,282,30,CCI,FOLDERW,LTTRS,2002-12-02 11:51:00,2003-04-07 18:59:00,NOT COLLATERAL
-155358,12843.99,BBG,EKID,A,12368.68,285,29,CCJ,FOLDERX,LTTRS,2002-12-02 12:51:00,2003-04-07 20:59:00,COLLATERAL
-155369,12847.101,BBH,VNCD,A,12368.52,288,28,DDD,FOLDERY,LTTRS,2002-12-02 13:51:00,2003-04-07 22:59:00,COLLATERAL
-155380,12850.212,CCA,DKD,A,12368.36,291,27,DDA,FOLDERZ,LTTRS,2002-12-02 14:51:00,2003-04-08 00:59:00,COLLATERAL
-155391,12853.323,CCB,FKF,A,12368.2,294,26,DAA,FOLDERZ,LTTRS,2002-12-02 15:51:00,2003-04-08 02:59:00,NOT COLLATERAL
-155402,12856.434,CCD,LES,A,12368.04,297,25,FKF,FOLDERZ,LTTRS,2002-12-02 16:51:00,2003-04-08 04:59:00,NOT COLLATERAL
-155413,12859.545,CCE,KLD,A,12367.88,300,24,LES,FOLDERZ,LTTRS,2002-12-02 17:51:00,2003-04-08 06:59:00,NOT COLLATERAL
-155424,12862.656,CCF,SKL,A,12367.72,303,23,KLD,FOLDERZ,LTTRS,2002-12-02 18:51:00,2003-04-08 08:59:00,NOT COLLATERAL
-155435,12865.767,CCG,SIW,A,12367.56,306,22,SKL,FOLDERZ,LTTRS,2002-12-02 19:51:00,2003-04-08 10:59:00,NOT COLLATERAL
-155446,12868.878,CCH,CKA,A,12367.4,309,21,SIW,FOLDERZ,LTTRS,2002-12-02 20:51:00,2003-04-08 12:59:00,NOT COLLATERAL
-155457,12871.989,CCI,LDE,A,12367.24,312,20,CKA,FOLDERZ,LTTRS,2002-12-02 21:51:00,2003-04-08 14:59:00,NOT COLLATERAL
-155468,12875.1,CCJ,KFF,A,12367.08,315,19,LDE,FOLDERZ,LTTRS,2002-12-02 22:51:00,2003-04-08 16:59:00,NOT COLLATERAL
-155479,12878.211,DDD,EFH,A,12366.92,318,18,KFF,FOLDERZ,LTTRS,2002-12-02 23:51:00,2003-04-08 18:59:00,NOT COLLATERAL
-155490,12881.322,DDA,NGC,A,12366.76,321,17,EFH,FOLDERZ,LTTRZ,2002-12-03 00:50:00,2003-04-08 20:59:00,COLLATERAL
-155501,12884.433,DAA,DER,A,12366.6,324,16,NGC,FOLDERZ,LTTRA,2002-12-03 01:50:00,2003-04-08 22:59:00,COLLATERAL
-155512,12887.544,DBB,FVG,A,12366.44,327,15,DER,FOLDERZ,LTTRB,2002-12-03 02:50:00,2003-04-09 00:59:00,COLLATERAL
-155523,12890.655,DCC,KWE,A,12366.28,330,14,FVG,FOLDERZ,LTTRB,2002-12-03 03:50:00,2003-04-09 02:59:00,NOT COLLATERAL
-155534,12893.766,DEE,WER,A,12366.12,333,13,KWE,FOLDERX,LTTRA,2002-12-03 04:50:00,2003-04-09 04:59:00,NOT COLLATERAL
-155545,12896.877,DFF,GFH,A,12365.96,336,12,WER,FOLDERX,LTTRA,2002-12-03 05:50:00,2003-04-09 06:59:00,NOT COLLATERAL
-155556,12899.988,DGG,BGF,A,12365.8,339,11,GFH,FOLDERX,LTTRS,2002-12-03 06:50:00,2003-04-09 08:59:00,NOT COLLATERAL
-155567,12903.099,DHH,XCS,A,12365.64,342,10,BGF,FOLDERX,LTTRZ,2002-12-03 07:50:00,2003-04-09 10:59:00,NOT COLLATERAL
-155578,12906.21,AAA,JHK,A,12365.48,345,9,XCS,FOLDERX,LTTRS,2002-12-03 08:50:00,2003-04-09 12:59:00,NOT COLLATERAL
-155589,12909.321,BBB,SFD,A,12365.32,348,8,JHK,FOLDERX,LTTRS,2002-12-03 09:50:00,2003-04-09 14:59:00,NOT COLLATERAL
-155600,12912.432,CCC,WRE,A,12365.16,351,7,SFD,FOLDERX,LTTRS,2002-12-03 10:50:00,2003-04-09 16:59:00,NOT COLLATERAL
-155611,12915.543,DDD,HGV,A,12365,354,6,WRE,FOLDERX,LTTRS,2002-12-03 11:50:00,2003-04-09 18:59:00,NOT COLLATERAL
-155622,12918.654,AAB,KLS,A,12364.84,357,5,HGV,FOLDERX,LTTRS,2002-12-03 12:50:00,2003-04-09 20:59:00,COLLATERAL
-155633,12921.765,AAC,SDK,A,12364.68,360,4,KLS,FOLDERX,LTTRS,2002-12-03 13:50:00,2003-04-09 22:59:00,COLLATERAL
-155644,12924.876,AAD,MNV,A,12364.52,363,3,SDK,FOLDERX,LTTRS,2002-12-03 14:50:00,2003-04-10 00:59:00,COLLATERAL
-155655,12927.987,AAE,OKW,A,12364.36,366,1,MNV,FOLDERX,LTTRS,2002-12-03 15:50:00,2003-04-10 02:59:00,NOT COLLATERAL
-155666,12931.098,AAF,ASS,A,12364.2,369,2,OKW,FOLDERR,LTTRS,2002-12-03 16:50:00,2003-04-10 04:59:00,NOT COLLATERAL
-155677,12934.209,BBA,CKA,A,12364.04,372,3,ASS,FOLDERS,LTTRS,2002-12-03 17:50:00,2003-04-10 06:59:00,NOT COLLATERAL
-155688,12937.32,BBC,SWQ,A,12363.88,375,4,CKA,FOLDERX,LTTRS,2002-12-03 18:50:00,2003-04-10 08:59:00,NOT COLLATERAL
-155699,12940.431,BBE,KUH,A,12363.72,378,5,SWQ,FOLDERR,LTTRS,2002-12-03 19:50:00,2003-04-10 10:59:00,NOT COLLATERAL
-155710,12943.542,BBF,XCV,A,12363.56,381,6,KUH,FOLDERS,LTTRS,2002-12-03 20:50:00,2003-04-10 12:59:00,NOT COLLATERAL
-155721,12946.653,BBG,ZAQ,A,12363.4,384,7,XCV,FOLDERX,LTTRS,2002-12-03 21:50:00,2003-04-10 14:59:00,NOT COLLATERAL
-155732,12949.764,BBH,MKO,A,12363.24,387,8,ZAQ,FOLDERR,LTTRZ,2002-12-03 22:50:00,2003-04-10 16:59:00,NOT COLLATERAL
-155743,12952.875,CCA,VFR,A,12363.08,390,9,MKO,FOLDERS,LTTRA,2002-12-03 23:50:00,2003-04-10 18:59:00,NOT COLLATERAL
-155754,12955.986,CCB,YUJ,A,12362.92,393,10,VFR,FOLDERX,LTTRB,2002-12-04 00:50:00,2003-04-10 20:59:00,COLLATERAL
-155765,12959.097,CCD,MED,A,12362.76,396,11,YUJ,FOLDERR,LTTRB,2002-12-04 01:50:00,2003-04-10 22:59:00,COLLATERAL
-155776,12962.208,CCE,SWE,A,12362.6,399,12,AAA,FOLDERS,LTTRA,2002-12-04 02:50:00,2003-04-11 00:59:00,COLLATERAL
-155787,12965.319,CCF,CVF,A,12362.44,402,13,BBB,FOLDERX,LTTRA,2002-12-04 03:50:00,2003-04-11 02:59:00,NOT COLLATERAL
-155798,12968.43,CCG,DSFG,A,12362.28,405,14,CCC,FOLDERR,LTTRS,2002-12-04 04:50:00,2003-04-11 04:59:00,NOT COLLATERAL
-155809,12971.541,CCH,ASDRE,A,12362.12,408,15,DDD,FOLDERS,LTTRZ,2002-12-04 05:50:00,2003-04-11 06:59:00,NOT COLLATERAL
-155820,12974.652,CCI,HJKSS,A,12361.96,402,16,AAB,FOLDERX,LTTRS,2002-12-04 06:50:00,2003-04-11 08:59:00,NOT COLLATERAL
-155831,12977.763,CCJ,KHAA,A,12361.8,396,17,AAC,FOLDERD,LTTRS,2002-12-04 07:50:00,2003-04-11 10:59:00,NOT COLLATERAL
-155842,12980.874,DDD,KSLD,A,12361.64,390,18,AAD,FOLDERE,LTTRS,2002-12-04 08:50:00,2003-04-11 12:59:00,NOT COLLATERAL
-155853,12983.985,DDA,EKID,A,12361.48,384,19,AAE,FOLDERF,LTTRS,2002-12-04 09:50:00,2003-04-11 14:59:00,NOT COLLATERAL
-155864,12987.096,DAA,VNCD,A,12361.32,378,20,AAF,FOLDERG,LTTRS,2002-12-04 10:50:00,2003-04-11 16:59:00,NOT COLLATERAL
-155875,12990.207,DBB,DKD,A,12361.16,372,21,BBA,FOLDERH,LTTRS,2002-12-04 11:50:00,2003-04-11 18:59:00,NOT COLLATERAL
-155886,12993.318,DCC,FKF,A,12361,366,22,BBC,FOLDERI,LTTRS,2002-12-04 12:50:00,2003-04-11 20:59:00,COLLATERAL
-155897,12996.429,DEE,LES,A,12360.84,360,23,BBE,FOLDERJ,LTTRS,2002-12-04 13:50:00,2003-04-11 22:59:00,COLLATERAL
-155908,12999.54,DFF,KLD,A,12360.68,354,24,BBF,FOLDERK,LTTRS,2002-12-04 14:50:00,2003-04-12 00:59:00,COLLATERAL
-155919,13002.651,DGG,SKL,A,12360.52,348,25,BBG,FOLDERL,LTTRS,2002-12-04 15:50:00,2003-04-12 02:59:00,NOT COLLATERAL
-155930,13005.762,DHH,SIW,A,12360.36,342,26,BBH,FOLDERM,LTTRS,2002-12-04 16:50:00,2003-04-12 04:59:00,NOT COLLATERAL
-155941,13008.873,AAA,CKA,A,12360.2,336,27,CCA,FOLDERN,LTTRS,2002-12-04 17:50:00,2003-04-12 06:59:00,NOT COLLATERAL
-155952,13011.984,BBB,LDE,A,12360.04,330,28,CCB,FOLDERN,LTTRS,2002-12-04 18:50:00,2003-04-12 08:59:00,NOT COLLATERAL
-155963,13015.095,CCC,KFF,A,12359.88,324,29,CCD,FOLDERN,LTTRS,2002-12-04 19:50:00,2003-04-12 10:59:00,NOT COLLATERAL
-155974,13018.206,DDD,EFH,A,12359.72,318,30,CCE,FOLDERN,LTTRZ,2002-12-04 20:50:00,2003-04-12 12:59:00,NOT COLLATERAL
-155985,13021.317,AAB,NGC,A,12359.56,312,31,CCF,FOLDERL,LTTRA,2002-12-04 21:50:00,2003-04-12 14:59:00,NOT COLLATERAL
-155996,13024.428,AAC,DER,A,12359.4,306,32,CCG,FOLDERL,LTTRB,2002-12-04 22:50:00,2003-04-12 16:59:00,NOT COLLATERAL
-156007,13027.539,AAD,FVG,A,12359.24,300,33,CCH,FOLDERL,LTTRB,2002-12-04 23:50:00,2003-04-12 18:59:00,NOT COLLATERAL
-156018,13030.65,AAE,KWE,A,12359.08,294,34,CCI,FOLDERL,LTTRA,2002-12-05 00:50:00,2003-04-12 20:59:00,COLLATERAL
-156029,13033.761,AAF,WER,A,12358.92,288,35,CCJ,FOLDERL,LTTRA,2002-12-05 01:50:00,2003-04-12 22:59:00,COLLATERAL
-156040,13036.872,BBA,GFH,A,12358.76,282,36,DDD,FOLDERA,LTTRS,2002-12-05 02:50:00,2003-04-13 00:59:00,COLLATERAL
-156051,13039.983,BBC,BGF,A,12358.6,276,37,DDA,FOLDERB,LTTRZ,2002-12-05 03:50:00,2003-04-13 02:59:00,NOT COLLATERAL
-156062,13043.094,BBE,XCS,A,12358.44,270,38,DAA,FOLDERC,LTTRS,2002-12-05 04:50:00,2003-04-13 04:59:00,NOT COLLATERAL
-156073,13046.205,BBF,JHK,A,12358.28,264,39,FKF,FOLDERD,LTTRS,2002-12-05 05:50:00,2003-04-13 06:59:00,NOT COLLATERAL
-156084,13049.316,BBG,SFD,A,12358.12,258,40,LES,FOLDERE,LTTRS,2002-12-05 06:50:00,2003-04-13 08:59:00,NOT COLLATERAL
-156095,13052.427,BBH,WRE,A,12357.96,252,41,KLD,FOLDERF,LTTRS,2002-12-05 07:50:00,2003-04-13 10:59:00,NOT COLLATERAL
-156106,13055.538,CCA,HGV,A,12357.8,246,42,SKL,FOLDERG,LTTRS,2002-12-05 08:50:00,2003-04-13 12:59:00,NOT COLLATERAL
-156117,13058.649,CCB,KLS,A,12357.64,240,43,SIW,FOLDERH,LTTRS,2002-12-05 09:50:00,2003-04-13 14:59:00,NOT COLLATERAL
-156128,13061.76,CCD,SDK,A,12357.48,234,44,CKA,FOLDERI,LTTRS,2002-12-05 10:50:00,2003-04-13 16:59:00,NOT COLLATERAL
-156139,13064.871,CCE,MNV,A,12357.32,228,45,LDE,FOLDERJ,LTTRS,2002-12-05 11:50:00,2003-04-13 18:59:00,NOT COLLATERAL
-156150,13067.982,CCF,OKW,A,12357.16,222,46,KFF,FOLDERK,LTTRS,2002-12-05 12:50:00,2003-04-13 20:59:00,COLLATERAL
-156161,13071.093,CCG,ASS,A,12357,216,47,EFH,FOLDERL,LTTRS,2002-12-05 13:50:00,2003-04-13 22:59:00,COLLATERAL
-156172,13074.204,CCH,CKA,A,12356.84,210,48,NGC,FOLDERM,LTTRS,2002-12-05 14:50:00,2003-04-14 00:59:00,COLLATERAL
-156183,13077.315,CCI,SWQ,A,12356.68,204,49,DER,FOLDERN,LTTRS,2002-12-05 15:50:00,2003-04-14 02:59:00,NOT COLLATERAL
-156194,13080.426,CCJ,KUH,A,12356.52,198,48,FVG,FOLDERO,LTTRS,2002-12-05 16:50:00,2003-04-14 04:59:00,NOT COLLATERAL
-156205,13083.537,DDD,XCV,A,12356.36,192,47,KWE,FOLDERP,LTTRS,2002-12-05 17:50:00,2003-04-14 06:59:00,NOT COLLATERAL
-156216,13086.648,DDA,ZAQ,A,12356.2,186,46,WER,FOLDERQ,LTTRZ,2002-12-05 18:50:00,2003-04-14 08:59:00,NOT COLLATERAL
-156227,13089.759,DAA,MKO,A,12356.04,180,45,GFH,FOLDERR,LTTRA,2002-12-05 19:50:00,2003-04-14 10:59:00,NOT COLLATERAL
-156238,13092.87,DBB,VFR,A,12355.88,174,44,BGF,FOLDERS,LTTRB,2002-12-05 20:50:00,2003-04-14 12:59:00,NOT COLLATERAL
-156249,13095.981,DCC,YUJ,A,12355.72,168,43,XCS,FOLDERT,LTTRB,2002-12-05 21:50:00,2003-04-14 14:59:00,NOT COLLATERAL
-156260,13099.092,DEE,MED,A,12355.56,162,42,JHK,FOLDERU,LTTRA,2002-12-05 22:50:00,2003-04-14 16:59:00,NOT COLLATERAL
-156271,13102.203,DFF,SWE,A,12355.4,156,41,SFD,FOLDERV,LTTRA,2002-12-05 23:50:00,2003-04-14 18:59:00,NOT COLLATERAL
-156282,13105.314,DGG,CVF,A,12355.24,150,40,WRE,FOLDERW,LTTRS,2002-12-06 00:50:00,2003-04-14 20:59:00,COLLATERAL
-156293,13108.425,DHH,DSFG,A,12355.08,144,39,HGV,FOLDERX,LTTRZ,2002-12-06 01:50:00,2003-04-14 22:59:00,COLLATERAL
-156304,13111.536,AAA,ASDRE,A,12354.92,138,38,KLS,FOLDERY,LTTRS,2002-12-06 02:50:00,2003-04-15 00:59:00,COLLATERAL
-156315,13114.647,BBB,HJKSS,A,12354.76,132,37,SDK,FOLDERZ,LTTRS,2002-12-06 03:50:00,2003-04-15 02:59:00,NOT COLLATERAL
-156326,13117.758,CCC,KHAA,A,12354.6,126,36,MNV,FOLDERA,LTTRS,2002-12-06 04:50:00,2003-04-15 04:59:00,NOT COLLATERAL
-156337,13120.869,DDD,KSLD,A,12354.44,120,35,OKW,FOLDERB,LTTRS,2002-12-06 05:50:00,2003-04-15 06:59:00,NOT COLLATERAL
-156348,13123.98,AAB,EKID,A,12354.28,114,34,ASS,FOLDERC,LTTRS,2002-12-06 06:50:00,2003-04-15 08:59:00,NOT COLLATERAL
-156359,13127.091,AAC,VNCD,A,12354.12,108,33,CKA,FOLDERD,LTTRS,2002-12-06 07:50:00,2003-04-15 10:59:00,NOT COLLATERAL
-156370,13130.202,AAD,DKD,A,12353.96,102,32,SWQ,FOLDERE,LTTRS,2002-12-06 08:50:00,2003-04-15 12:59:00,NOT COLLATERAL
-156381,13133.313,AAE,FKF,A,12353.8,96,31,KUH,FOLDERF,LTTRS,2002-12-06 09:50:00,2003-04-15 14:59:00,NOT COLLATERAL
-156392,13136.424,AAF,LES,A,12353.64,90,30,XCV,FOLDERG,LTTRS,2002-12-06 10:50:00,2003-04-15 16:59:00,NOT COLLATERAL
-156403,13139.535,BBA,KLD,A,12353.48,91,29,ZAQ,FOLDERH,LTTRS,2002-12-06 11:50:00,2003-04-15 18:59:00,NOT COLLATERAL
-156414,13142.646,BBC,SKL,A,12353.32,91,28,MKO,FOLDERI,LTTRS,2002-12-06 12:50:00,2003-04-15 20:59:00,COLLATERAL
-156425,13145.757,BBE,SIW,A,12353.16,91,27,VFR,FOLDERJ,LTTRS,2002-12-06 13:50:00,2003-04-15 22:59:00,COLLATERAL
-156436,13148.868,BBF,CKA,A,12353,91,26,YUJ,FOLDERK,LTTRS,2002-12-06 14:50:00,2003-04-16 00:59:00,COLLATERAL
-156447,13151.979,BBG,LDE,A,12352.84,91,25,AAA,FOLDERL,LTTRS,2002-12-06 15:50:00,2003-04-16 02:59:00,NOT COLLATERAL
-156458,13155.09,BBH,KFF,A,12352.68,91,24,BBB,FOLDERM,LTTRZ,2002-12-06 16:50:00,2003-04-16 04:59:00,NOT COLLATERAL
-156469,13158.201,CCA,EFH,A,12352.52,91,23,CCC,FOLDERN,LTTRA,2002-12-06 17:50:00,2003-04-16 06:59:00,NOT COLLATERAL
-156480,13161.312,CCB,NGC,A,12352.36,91,22,DDD,FOLDERO,LTTRB,2002-12-06 18:50:00,2003-04-16 08:59:00,NOT COLLATERAL
-156491,13164.423,CCD,DER,A,12352.2,91,21,AAB,FOLDERP,LTTRB,2002-12-06 19:50:00,2003-04-16 10:59:00,NOT COLLATERAL
-156502,13167.534,CCE,FVG,A,12352.04,91,20,AAC,FOLDERQ,LTTRA,2002-12-06 20:50:00,2003-04-16 12:59:00,NOT COLLATERAL
-156513,13170.645,CCF,KWE,A,12351.88,92,19,AAD,FOLDERR,LTTRA,2002-12-06 21:50:00,2003-04-16 14:59:00,NOT COLLATERAL
-156524,13173.756,CCG,WER,A,12351.72,93,18,AAE,FOLDERS,LTTRS,2002-12-06 22:50:00,2003-04-16 16:59:00,NOT COLLATERAL
-156535,13176.867,CCH,GFH,A,12351.56,94,17,AAF,FOLDERT,LTTRZ,2002-12-06 23:50:00,2003-04-16 18:59:00,NOT COLLATERAL
-156546,13179.978,CCI,BGF,A,12351.4,95,16,BBA,FOLDERU,LTTRS,2002-12-07 00:50:00,2003-04-16 20:59:00,COLLATERAL
-156557,13183.089,CCJ,XCS,A,12351.24,96,15,BBC,FOLDERV,LTTRS,2002-12-07 01:50:00,2003-04-16 22:59:00,COLLATERAL
-156568,13186.2,DDD,JHK,A,12351.08,97,14,BBE,FOLDERW,LTTRS,2002-12-07 02:50:00,2003-04-17 00:59:00,COLLATERAL
-156579,13189.311,DDA,SFD,A,12350.92,98,13,BBF,FOLDERX,LTTRS,2002-12-07 03:50:00,2003-04-17 02:59:00,NOT COLLATERAL
-156590,13192.422,DAA,WRE,A,12350.76,99,12,BBG,FOLDERY,LTTRS,2002-12-07 04:50:00,2003-04-17 04:59:00,NULL
-156601,13195.533,DBB,HGV,A,12350.6,100,11,BBH,FOLDERZ,LTTRS,2002-12-07 05:50:00,2003-04-17 06:59:00,NULL
-156612,13198.644,DCC,KLS,A,12350.44,101,10,CCA,FOLDERZ,LTTRS,2002-12-07 06:50:00,2003-04-17 08:59:00,NULL
-156623,13201.755,DEE,SDK,A,12350.28,102,9,CCB,FOLDERZ,LTTRS,2002-12-07 07:50:00,2003-04-17 10:59:00,NULL
-156634,13204.866,DFF,MNV,A,12350.12,103,8,CCD,FOLDERZ,LTTRS,2002-12-07 08:50:00,2003-04-17 12:59:00,NULL
-156645,13207.977,DGG,OKW,A,12349.96,104,7,CCE,FOLDERZ,LTTRS,2002-12-07 09:50:00,2003-04-17 14:59:00,NOT COLLATERAL
-156656,13211.088,DHH,ASS,A,12349.8,105,6,CCF,FOLDERZ,LTTRS,2002-12-07 10:50:00,2003-04-17 16:59:00,NOT COLLATERAL
-156667,13214.199,AAA,CKA,A,12349.64,106,5,CCG,FOLDERZ,LTTRS,2002-12-07 11:50:00,2003-04-17 18:59:00,NOT COLLATERAL
-156678,13217.31,BBB,SWQ,A,12349.48,107,4,CCH,FOLDERZ,LTTRS,2002-12-07 12:50:00,2003-04-17 20:59:00,COLLATERAL
-156689,13220.421,CCC,KUH,A,12349.32,108,3,CCI,FOLDERZ,LTTRS,2002-12-07 13:50:00,2003-04-17 22:59:00,COLLATERAL
-156700,13223.532,DDD,XCV,A,12349.16,109,11,CCJ,FOLDERZ,LTTRZ,2002-12-07 14:50:00,2003-04-18 00:59:00,COLLATERAL
-156711,13226.643,AAB,ZAQ,A,12349,110,12,DDD,FOLDERZ,LTTRA,2002-12-07 15:50:00,2003-04-18 02:59:00,NOT COLLATERAL
-156722,13229.754,AAC,MKO,A,12348.84,111,13,DDA,FOLDERZ,LTTRB,2002-12-07 16:50:00,2003-04-18 04:59:00,NOT COLLATERAL
-156733,13232.865,AAD,VFR,A,12348.68,112,14,DAA,FOLDERZ,LTTRB,2002-12-07 17:50:00,2003-04-18 06:59:00,NOT COLLATERAL
-156744,13235.976,AAE,YUJ,A,12348.52,113,15,FKF,FOLDERZ,LTTRA,2002-12-07 18:50:00,2003-04-18 08:59:00,NOT COLLATERAL
-156755,13239.087,AAF,MED,A,12348.36,114,16,LES,FOLDERX,LTTRA,2002-12-07 19:50:00,2003-04-18 10:59:00,NULL
-156766,13242.198,BBA,SWE,A,12348.2,115,17,KLD,FOLDERX,LTTRS,2002-12-07 20:50:00,2003-04-18 12:59:00,NULL
-156777,13245.309,BBC,CVF,A,12348.04,116,18,SKL,FOLDERX,LTTRZ,2002-12-07 21:50:00,2003-04-18 14:59:00,NULL
-156788,13248.42,BBE,DSFG,A,12347.88,117,19,SIW,FOLDERX,LTTRS,2002-12-07 22:50:00,2003-04-18 16:59:00,NULL
-156799,13251.531,BBF,ASDRE,A,12347.72,118,20,CKA,FOLDERX,LTTRS,2002-12-07 23:50:00,2003-04-18 18:59:00,NULL
-156810,13254.642,BBG,HJKSS,A,12347.56,119,21,LDE,FOLDERX,LTTRS,2002-12-08 00:50:00,2003-04-18 20:59:00,COLLATERAL
-156821,13257.753,BBH,KHAA,A,12347.4,120,22,KFF,FOLDERX,LTTRS,2002-12-08 01:50:00,2003-04-18 22:59:00,COLLATERAL
-156832,13260.864,CCA,KSLD,A,12347.24,121,23,EFH,FOLDERX,LTTRS,2002-12-08 02:50:00,2003-04-19 00:59:00,COLLATERAL
-156843,13263.975,CCB,EKID,A,12347.08,122,24,NGC,FOLDERX,LTTRS,2002-12-08 03:50:00,2003-04-19 02:59:00,NOT COLLATERAL
-156854,13267.086,CCD,VNCD,A,12346.92,123,25,DER,FOLDERX,LTTRS,2002-12-08 04:50:00,2003-04-19 04:59:00,NULL
-156865,13270.197,CCE,DKD,A,12346.76,124,26,FVG,FOLDERX,LTTRS,2002-12-08 05:50:00,2003-04-19 06:59:00,NULL
-156876,13273.308,CCF,FKF,A,12346.6,125,27,KWE,FOLDERX,LTTRS,2002-12-08 06:50:00,2003-04-19 08:59:00,NULL
-156887,13276.419,CCG,LES,A,12346.44,126,28,WER,FOLDERR,LTTRS,2002-12-08 07:50:00,2003-04-19 10:59:00,NULL
-156898,13279.53,CCH,KLD,A,12346.28,127,29,GFH,FOLDERS,LTTRS,2002-12-08 08:50:00,2003-04-19 12:59:00,NULL
-156909,13282.641,CCI,SKL,A,12346.12,128,30,BGF,FOLDERX,LTTRS,2002-12-08 09:50:00,2003-04-19 14:59:00,NOT COLLATERAL
-156920,13285.752,CCJ,SIW,A,12345.96,129,31,XCS,FOLDERR,LTTRS,2002-12-08 10:50:00,2003-04-19 16:59:00,NOT COLLATERAL
-156931,13288.863,DDD,CKA,A,12345.8,130,32,JHK,FOLDERS,LTTRS,2002-12-08 11:50:00,2003-04-19 18:59:00,NOT COLLATERAL
-156942,13291.974,DDA,LDE,A,12345.64,131,33,SFD,FOLDERX,LTTRZ,2002-12-08 12:50:00,2003-04-19 20:59:00,COLLATERAL
-156953,13295.085,DAA,KFF,A,12345.48,132,34,WRE,FOLDERR,LTTRA,2002-12-08 13:50:00,2003-04-19 22:59:00,COLLATERAL
-156964,13298.196,DBB,EFH,A,12345.32,133,35,HGV,FOLDERS,LTTRB,2002-12-08 14:50:00,2003-04-20 00:59:00,COLLATERAL
-156975,13301.307,DCC,NGC,A,12345.16,134,36,KLS,FOLDERX,LTTRB,2002-12-08 15:50:00,2003-04-20 02:59:00,NOT COLLATERAL
-156986,13304.418,DEE,DER,A,12345,135,37,SDK,FOLDERR,LTTRA,2002-12-08 16:50:00,2003-04-20 04:59:00,NOT COLLATERAL
-156997,13307.529,DFF,FVG,A,12344.84,136,38,MNV,FOLDERS,LTTRA,2002-12-08 17:50:00,2003-04-20 06:59:00,NOT COLLATERAL
-157008,13310.64,DGG,KWE,A,12344.68,137,39,OKW,FOLDERX,LTTRS,2002-12-08 18:50:00,2003-04-20 08:59:00,NOT COLLATERAL
-157019,13313.751,DHH,WER,A,12344.52,138,40,ASS,FOLDERR,LTTRZ,2002-12-08 19:50:00,2003-04-20 10:59:00,NOT COLLATERAL
-157030,13316.862,AAA,GFH,A,12344.36,139,41,CKA,FOLDERS,LTTRS,2002-12-08 20:50:00,2003-04-20 12:59:00,NOT COLLATERAL
-157041,13319.973,BBB,BGF,A,12344.2,140,42,SWQ,FOLDERX,LTTRS,2002-12-08 21:50:00,2003-04-20 14:59:00,NOT COLLATERAL
-157052,13323.084,CCC,XCS,A,12344.04,141,43,KUH,FOLDERD,LTTRS,2002-12-08 22:50:00,2003-04-20 16:59:00,NOT COLLATERAL
-157063,13326.195,DDD,JHK,A,12343.88,142,44,XCV,FOLDERE,LTTRS,2002-12-08 23:50:00,2003-04-20 18:59:00,NOT COLLATERAL
-157074,13329.306,AAB,SFD,A,12343.72,143,45,ZAQ,FOLDERF,LTTRS,2002-12-09 00:50:00,2003-04-20 20:59:00,COLLATERAL
-157085,13332.417,AAC,WRE,A,12343.56,144,46,MKO,FOLDERG,LTTRS,2002-12-09 01:50:00,2003-04-20 22:59:00,COLLATERAL
-157096,13335.528,AAD,HGV,A,12343.4,145,47,VFR,FOLDERH,LTTRS,2002-12-09 02:50:00,2003-04-21 00:59:00,COLLATERAL
-157107,13338.639,AAE,KLS,A,12343.24,146,48,YUJ,FOLDERI,LTTRS,2002-12-09 03:50:00,2003-04-21 02:59:00,NOT COLLATERAL
-157118,13341.75,AAF,SDK,A,12343.08,147,49,AAA,FOLDERJ,LTTRS,2002-12-09 04:50:00,2003-04-21 04:59:00,NOT COLLATERAL
-157129,13344.861,BBA,MNV,A,12342.92,148,48,BBB,FOLDERK,LTTRS,2002-12-09 05:50:00,2003-04-21 06:59:00,NOT COLLATERAL
-157140,13347.972,BBC,OKW,A,12342.76,149,47,CCC,FOLDERL,LTTRS,2002-12-09 06:50:00,2003-04-21 08:59:00,NOT COLLATERAL
-157151,13351.083,BBE,ASS,A,12342.6,150,46,DDD,FOLDERM,LTTRS,2002-12-09 07:50:00,2003-04-21 10:59:00,NOT COLLATERAL
-157162,13354.194,BBF,CKA,A,12342.44,151,45,AAB,FOLDERN,LTTRS,2002-12-09 08:50:00,2003-04-21 12:59:00,NOT COLLATERAL
-157173,13357.305,BBG,SWQ,A,12342.28,152,44,AAC,FOLDERN,LTTRS,2002-12-09 09:50:00,2003-04-21 14:59:00,NOT COLLATERAL
-157184,13360.416,BBH,KUH,A,12342.12,153,43,AAD,FOLDERN,LTTRZ,2002-12-09 10:50:00,2003-04-21 16:59:00,NOT COLLATERAL
-157195,13363.527,CCA,XCV,A,12341.96,154,42,AAE,FOLDERN,LTTRA,2002-12-09 11:50:00,2003-04-21 18:59:00,NOT COLLATERAL
-157206,13366.638,CCB,ZAQ,A,12341.8,155,41,AAF,FOLDERL,LTTRB,2002-12-09 12:50:00,2003-04-21 20:59:00,COLLATERAL
-157217,13369.749,CCD,MKO,A,12341.64,156,40,BBA,FOLDERL,LTTRB,2002-12-09 13:50:00,2003-04-21 22:59:00,COLLATERAL
-157228,13372.86,CCE,VFR,A,12341.48,157,39,BBC,FOLDERL,LTTRA,2002-12-09 14:50:00,2003-04-22 00:59:00,COLLATERAL
-157239,13375.971,CCF,YUJ,A,12341.32,158,38,BBE,FOLDERL,LTTRA,2002-12-09 15:50:00,2003-04-22 02:59:00,NOT COLLATERAL
-157250,13379.082,CCG,MED,A,12341.16,159,37,BBF,FOLDERL,LTTRS,2002-12-09 16:50:00,2003-04-22 04:59:00,NOT COLLATERAL
-157261,13382.193,CCH,SWE,A,12341,160,36,BBG,FOLDERA,LTTRZ,2002-12-09 17:50:00,2003-04-22 06:59:00,NOT COLLATERAL
-157272,13385.304,CCI,CVF,A,12340.84,161,35,BBH,FOLDERB,LTTRS,2002-12-09 18:50:00,2003-04-22 08:59:00,NOT COLLATERAL
-157283,13388.415,CCJ,DSFG,A,12340.68,162,34,CCA,FOLDERC,LTTRS,2002-12-09 19:50:00,2003-04-22 10:59:00,NOT COLLATERAL
-157294,13391.526,DDD,ASDRE,A,12340.52,163,33,CCB,FOLDERD,LTTRS,2002-12-09 20:50:00,2003-04-22 12:59:00,NOT COLLATERAL
-157305,13394.637,DDA,HJKSS,A,12340.36,164,32,CCD,FOLDERE,LTTRS,2002-12-09 21:50:00,2003-04-22 14:59:00,NOT COLLATERAL
-157316,13397.748,DAA,KHAA,A,12340.2,165,31,CCE,FOLDERF,LTTRS,2002-12-09 22:50:00,2003-04-22 16:59:00,NOT COLLATERAL
-157327,13400.859,DBB,KSLD,A,12340.04,166,30,CCF,FOLDERG,LTTRS,2002-12-09 23:50:00,2003-04-22 18:59:00,NOT COLLATERAL
-157338,13403.97,DCC,EKID,A,12339.88,167,29,CCG,FOLDERH,LTTRS,2002-12-10 00:50:00,2003-04-22 20:59:00,COLLATERAL
-157349,13407.081,DEE,VNCD,A,12339.72,168,28,CCH,FOLDERI,LTTRS,2002-12-10 01:50:00,2003-04-22 22:59:00,COLLATERAL
-157360,13410.192,DFF,DKD,A,12339.56,169,27,CCI,FOLDERJ,LTTRS,2002-12-10 02:50:00,2003-04-23 00:59:00,COLLATERAL
-157371,13413.303,DGG,FKF,A,12339.4,170,26,CCJ,FOLDERK,LTTRS,2002-12-10 03:50:00,2003-04-23 02:59:00,NOT COLLATERAL
-157382,13416.414,DHH,LES,A,12339.24,171,25,DDD,FOLDERL,LTTRS,2002-12-10 04:50:00,2003-04-23 04:59:00,NOT COLLATERAL
-157393,13419.525,AAA,KLD,A,12339.08,172,24,DDA,FOLDERM,LTTRS,2002-12-10 05:50:00,2003-04-23 06:59:00,NOT COLLATERAL
-157404,13422.636,BBB,SKL,A,12338.92,173,23,DAA,FOLDERN,LTTRS,2002-12-10 06:50:00,2003-04-23 08:59:00,NOT COLLATERAL
-157415,13425.747,CCC,SIW,A,12338.76,174,22,FKF,FOLDERO,LTTRS,2002-12-10 07:50:00,2003-04-23 10:59:00,NOT COLLATERAL
-157426,13428.858,DDD,CKA,A,12338.6,175,21,LES,FOLDERP,LTTRZ,2002-12-10 08:50:00,2003-04-23 12:59:00,NOT COLLATERAL
-157437,13431.969,AAB,LDE,A,12338.44,176,20,KLD,FOLDERQ,LTTRA,2002-12-10 09:50:00,2003-04-23 14:59:00,NOT COLLATERAL
-157448,13435.08,AAC,KFF,A,12338.28,177,19,SKL,FOLDERR,LTTRB,2002-12-10 10:50:00,2003-04-23 16:59:00,NOT COLLATERAL
-157459,13438.191,AAD,EFH,A,12338.12,178,18,SIW,FOLDERS,LTTRB,2002-12-10 11:50:00,2003-04-23 18:59:00,NOT COLLATERAL
-157470,13441.302,AAE,NGC,A,12337.96,179,17,CKA,FOLDERT,LTTRA,2002-12-10 12:50:00,2003-04-23 20:59:00,COLLATERAL
-157481,13444.413,AAF,DER,A,12337.8,180,16,LDE,FOLDERU,LTTRA,2002-12-10 13:50:00,2003-04-23 22:59:00,COLLATERAL
-157492,13447.524,BBA,FVG,A,12337.64,181,15,KFF,FOLDERV,LTTRS,2002-12-10 14:50:00,2003-04-24 00:59:00,COLLATERAL
-157503,13450.635,BBC,KWE,A,12337.48,182,14,EFH,FOLDERW,LTTRZ,2002-12-10 15:50:00,2003-04-24 02:59:00,NOT COLLATERAL
-157514,13453.746,BBE,WER,A,12337.32,183,13,NGC,FOLDERX,LTTRS,2002-12-10 16:50:00,2003-04-24 04:59:00,NOT COLLATERAL
-157525,13456.857,BBF,GFH,A,12337.16,184,12,DER,FOLDERY,LTTRS,2002-12-10 17:50:00,2003-04-24 06:59:00,NOT COLLATERAL
-157536,13459.968,BBG,BGF,A,12337,185,11,FVG,FOLDERZ,LTTRS,2002-12-10 18:50:00,2003-04-24 08:59:00,NOT COLLATERAL
-157547,13463.079,BBH,XCS,A,12336.84,186,10,KWE,FOLDERA,LTTRS,2002-12-10 19:50:00,2003-04-24 10:59:00,NOT COLLATERAL
-157558,13466.19,CCA,JHK,A,12336.68,187,9,WER,FOLDERB,LTTRS,2002-12-10 20:50:00,2003-04-24 12:59:00,NOT COLLATERAL
-157569,13469.301,CCB,SFD,A,12336.52,188,8,GFH,FOLDERC,LTTRS,2002-12-10 21:50:00,2003-04-24 14:59:00,NOT COLLATERAL
-157580,13472.412,CCD,WRE,A,12336.36,189,7,BGF,FOLDERD,LTTRS,2002-12-10 22:50:00,2003-04-24 16:59:00,NOT COLLATERAL
-157591,13475.523,CCE,HGV,A,12336.2,190,6,XCS,FOLDERE,LTTRS,2002-12-10 23:50:00,2003-04-24 18:59:00,NOT COLLATERAL
-157602,13478.634,CCF,KLS,A,12336.04,191,5,JHK,FOLDERF,LTTRS,2002-12-11 00:50:00,2003-04-24 20:59:00,COLLATERAL
-157613,13481.745,CCG,SDK,A,12335.88,192,4,SFD,FOLDERG,LTTRS,2002-12-11 01:50:00,2003-04-24 22:59:00,COLLATERAL
-157624,13484.856,CCH,MNV,A,12335.72,193,3,WRE,FOLDERH,LTTRS,2002-12-11 02:50:00,2003-04-25 00:59:00,COLLATERAL
-157635,13487.967,CCI,OKW,A,12335.56,194,1,HGV,FOLDERI,LTTRS,2002-12-11 03:50:00,2003-04-25 02:59:00,NOT COLLATERAL
-157646,13491.078,CCJ,ASS,A,12335.4,195,2,KLS,FOLDERJ,LTTRS,2002-12-11 04:50:00,2003-04-25 04:59:00,NOT COLLATERAL
-157657,13494.189,DDD,CKA,A,12335.24,196,3,SDK,FOLDERK,LTTRS,2002-12-11 05:50:00,2003-04-25 06:59:00,NOT COLLATERAL
-157668,13497.3,DDA,SWQ,A,12335.08,197,4,MNV,FOLDERL,LTTRZ,2002-12-11 06:50:00,2003-04-25 08:59:00,NOT COLLATERAL
-157679,13500.411,DAA,KUH,A,12334.92,198,5,OKW,FOLDERM,LTTRA,2002-12-11 07:50:00,2003-04-25 10:59:00,NOT COLLATERAL
-157690,13503.522,DBB,XCV,A,12334.76,199,6,ASS,FOLDERN,LTTRB,2002-12-11 08:50:00,2003-04-25 12:59:00,NOT COLLATERAL
-157701,13506.633,DCC,ZAQ,A,12334.6,200,7,CKA,FOLDERO,LTTRB,2002-12-11 09:50:00,2003-04-25 14:59:00,NOT COLLATERAL
-157712,13509.744,DEE,MKO,A,12334.44,201,8,SWQ,FOLDERP,LTTRA,2002-12-11 10:50:00,2003-04-25 16:59:00,NOT COLLATERAL
-157723,13512.855,DFF,VFR,A,12334.28,202,9,KUH,FOLDERQ,LTTRA,2002-12-11 11:50:00,2003-04-25 18:59:00,NOT COLLATERAL
-157734,13515.966,DGG,YUJ,A,12334.12,203,10,XCV,FOLDERR,LTTRS,2002-12-11 12:49:00,2003-04-25 20:59:00,COLLATERAL
-157745,13519.077,DHH,MED,A,12333.96,204,11,ZAQ,FOLDERS,LTTRZ,2002-12-11 13:49:00,2003-04-25 22:59:00,COLLATERAL
-157756,13522.188,AAA,SWE,A,12333.8,205,12,MKO,FOLDERT,LTTRS,2002-12-11 14:49:00,2003-04-26 00:59:00,COLLATERAL
-157767,13525.299,BBB,CVF,A,12333.64,206,13,VFR,FOLDERU,LTTRS,2002-12-11 15:49:00,2003-04-26 02:59:00,NOT COLLATERAL
-157778,13528.41,CCC,DSFG,A,12333.48,207,14,YUJ,FOLDERV,LTTRS,2002-12-11 16:49:00,2003-04-26 04:59:00,NOT COLLATERAL
-157789,13531.521,DDD,ASDRE,A,12333.32,208,15,AAA,FOLDERW,LTTRS,2002-12-11 17:49:00,2003-04-26 06:59:00,NOT COLLATERAL
-157800,13534.632,AAB,HJKSS,A,12333.16,209,16,BBB,FOLDERX,LTTRS,2002-12-11 18:49:00,2003-04-26 08:59:00,NOT COLLATERAL
-157811,13537.743,AAC,KHAA,A,12333,210,17,CCC,FOLDERY,LTTRS,2002-12-11 19:49:00,2003-04-26 10:59:00,NOT COLLATERAL
-157822,13540.854,AAD,KSLD,A,12332.84,211,18,DDD,FOLDERZ,LTTRS,2002-12-11 20:49:00,2003-04-26 12:59:00,NOT COLLATERAL
-157833,13543.965,AAE,EKID,A,12332.68,212,19,AAB,FOLDERZ,LTTRS,2002-12-11 21:49:00,2003-04-26 14:59:00,NOT COLLATERAL
-157844,13547.076,AAF,VNCD,A,12332.52,213,20,AAC,FOLDERZ,LTTRS,2002-12-11 22:49:00,2003-04-26 16:59:00,NOT COLLATERAL
-157855,13550.187,BBA,DKD,A,12332.36,214,21,AAD,FOLDERZ,LTTRS,2002-12-11 23:49:00,2003-04-26 18:59:00,NOT COLLATERAL
-157866,13553.298,BBC,FKF,A,12332.2,215,22,AAE,FOLDERZ,LTTRS,2002-12-12 00:49:00,2003-04-26 20:59:00,COLLATERAL
-157877,13556.409,BBE,LES,A,12332.04,216,23,AAF,FOLDERZ,LTTRS,2002-12-12 01:49:00,2003-04-26 22:59:00,COLLATERAL
-157888,13559.52,BBF,KLD,A,12331.88,217,24,BBA,FOLDERZ,LTTRS,2002-12-12 02:49:00,2003-04-27 00:59:00,COLLATERAL
-157899,13562.631,BBG,SKL,A,12331.72,218,25,BBC,FOLDERZ,LTTRS,2002-12-12 03:49:00,2003-04-27 02:59:00,NOT COLLATERAL
-157910,13565.742,BBH,SIW,A,12331.56,219,26,BBE,FOLDERZ,LTTRZ,2002-12-12 04:49:00,2003-04-27 04:59:00,NOT COLLATERAL
-157921,13568.853,CCA,CKA,A,12331.4,220,27,BBF,FOLDERZ,LTTRA,2002-12-12 05:49:00,2003-04-27 06:59:00,NOT COLLATERAL
-157932,13571.964,CCB,LDE,A,12331.24,221,28,BBG,FOLDERZ,LTTRB,2002-12-12 06:49:00,2003-04-27 08:59:00,NOT COLLATERAL
-157943,13575.075,CCD,KFF,A,12331.08,222,29,BBH,FOLDERZ,LTTRB,2002-12-12 07:49:00,2003-04-27 10:59:00,NOT COLLATERAL
-157954,13578.186,CCE,EFH,A,12330.92,223,30,CCA,FOLDERZ,LTTRA,2002-12-12 08:49:00,2003-04-27 12:59:00,NOT COLLATERAL
-157965,13581.297,CCF,NGC,A,12330.76,224,31,CCB,FOLDERZ,LTTRA,2002-12-12 09:49:00,2003-04-27 14:59:00,NOT COLLATERAL
-157976,13584.408,CCG,DER,A,12330.6,225,32,CCD,FOLDERX,LTTRS,2002-12-12 10:49:00,2003-04-27 16:59:00,NOT COLLATERAL
-157987,13587.519,CCH,FVG,A,12330.44,226,33,CCE,FOLDERX,LTTRZ,2002-12-12 11:49:00,2003-04-27 18:59:00,NOT COLLATERAL
-157998,13590.63,CCI,KWE,A,12330.28,227,34,CCF,FOLDERX,LTTRS,2002-12-12 12:49:00,2003-04-27 20:59:00,COLLATERAL
-158009,13593.741,CCJ,WER,A,12330.12,228,35,CCG,FOLDERX,LTTRS,2002-12-12 13:49:00,2003-04-27 22:59:00,COLLATERAL
-158020,13596.852,DDD,GFH,A,12329.96,229,36,CCH,FOLDERX,LTTRS,2002-12-12 14:49:00,2003-04-28 00:59:00,COLLATERAL
-158031,13599.963,DDA,BGF,A,12329.8,230,37,CCI,FOLDERX,LTTRS,2002-12-12 15:49:00,2003-04-28 02:59:00,NOT COLLATERAL
-158042,13603.074,DAA,XCS,A,12329.64,231,38,CCJ,FOLDERX,LTTRS,2002-12-12 16:49:00,2003-04-28 04:59:00,NOT COLLATERAL
-158053,13606.185,DBB,JHK,A,12329.48,232,39,DDD,FOLDERX,LTTRS,2002-12-12 17:49:00,2003-04-28 06:59:00,NOT COLLATERAL
-158064,13609.296,DCC,SFD,A,12329.32,233,40,DDA,FOLDERX,LTTRS,2002-12-12 18:49:00,2003-04-28 08:59:00,NOT COLLATERAL
-158075,13612.407,DEE,WRE,A,12329.16,234,41,DAA,FOLDERX,LTTRS,2002-12-12 19:49:00,2003-04-28 10:59:00,NOT COLLATERAL
-158086,13615.518,DFF,HGV,A,12329,235,42,FKF,FOLDERX,LTTRS,2002-12-12 20:49:00,2003-04-28 12:59:00,NOT COLLATERAL
-158097,13618.629,DGG,KLS,A,12328.84,236,43,LES,FOLDERX,LTTRS,2002-12-12 21:49:00,2003-04-28 14:59:00,NOT COLLATERAL
-158108,13621.74,DHH,SDK,A,12328.68,237,44,KLD,FOLDERR,LTTRS,2002-12-12 22:49:00,2003-04-28 16:59:00,NOT COLLATERAL
-158119,13624.851,AAA,MNV,A,12328.52,238,45,SKL,FOLDERS,LTTRS,2002-12-12 23:49:00,2003-04-28 18:59:00,NOT COLLATERAL
-158130,13627.962,BBB,OKW,A,12328.36,239,46,SIW,FOLDERX,LTTRS,2002-12-13 00:49:00,2003-04-28 20:59:00,COLLATERAL
-158141,13631.073,CCC,ASS,A,12328.2,240,47,CKA,FOLDERR,LTTRS,2002-12-13 01:49:00,2003-04-28 22:59:00,COLLATERAL
-158152,13634.184,DDD,CKA,A,12328.04,241,48,LDE,FOLDERS,LTTRZ,2002-12-13 02:49:00,2003-04-29 00:59:00,COLLATERAL
-158163,13637.295,AAB,SWQ,A,12327.88,242,49,KFF,FOLDERX,LTTRA,2002-12-13 03:49:00,2003-04-29 02:59:00,NOT COLLATERAL
-158174,13640.406,AAC,KUH,A,12327.72,243,48,EFH,FOLDERR,LTTRB,2002-12-13 04:49:00,2003-04-29 04:59:00,NULL
-158185,13643.517,AAD,XCV,A,12327.56,244,47,NGC,FOLDERS,LTTRB,2002-12-13 05:49:00,2003-04-29 06:59:00,NULL
-158196,13646.628,AAE,ZAQ,A,12327.4,245,46,DER,FOLDERX,LTTRA,2002-12-13 06:49:00,2003-04-29 08:59:00,NULL
-158207,13649.739,AAF,MKO,A,12327.24,246,45,FVG,FOLDERR,LTTRA,2002-12-13 07:49:00,2003-04-29 10:59:00,NULL
-158218,13652.85,BBA,VFR,A,12327.08,247,44,KWE,FOLDERS,LTTRS,2002-12-13 08:49:00,2003-04-29 12:59:00,NULL
-158229,13655.961,BBC,YUJ,A,12326.92,248,43,WER,FOLDERX,LTTRZ,2002-12-13 09:49:00,2003-04-29 14:59:00,NULL
-158240,13659.072,BBE,MED,A,12326.76,249,42,GFH,FOLDERR,LTTRS,2002-12-13 10:49:00,2003-04-29 16:59:00,NOT COLLATERAL
-158251,13662.183,BBF,SWE,A,12326.6,250,41,BGF,FOLDERS,LTTRS,2002-12-13 11:49:00,2003-04-29 18:59:00,NOT COLLATERAL
-158262,13665.294,BBG,CVF,A,12326.44,251,40,XCS,FOLDERX,LTTRS,2002-12-13 12:49:00,2003-04-29 20:59:00,COLLATERAL
-158273,13668.405,BBH,DSFG,A,12326.28,252,39,JHK,FOLDERD,LTTRS,2002-12-13 13:49:00,2003-04-29 22:59:00,COLLATERAL
-158284,13671.516,CCA,ASDRE,A,12326.12,253,38,SFD,FOLDERE,LTTRS,2002-12-13 14:49:00,2003-04-30 00:59:00,COLLATERAL
-158295,13674.627,CCB,HJKSS,A,12325.96,254,37,WRE,FOLDERF,LTTRS,2002-12-13 15:49:00,2003-04-30 02:59:00,NOT COLLATERAL
-158306,13677.738,CCD,KHAA,A,12325.8,255,36,HGV,FOLDERG,LTTRS,2002-12-13 16:49:00,2003-04-30 04:59:00,NOT COLLATERAL
-158317,13680.849,CCE,KSLD,A,12325.64,256,35,KLS,FOLDERH,LTTRS,2002-12-13 17:49:00,2003-04-30 06:59:00,NULL
-158328,13683.96,CCF,EKID,A,12325.48,257,34,SDK,FOLDERI,LTTRS,2002-12-13 18:49:00,2003-04-30 08:59:00,NULL
-158339,13687.071,CCG,VNCD,A,12325.32,258,33,MNV,FOLDERJ,LTTRS,2002-12-13 19:49:00,2003-04-30 10:59:00,NULL
-158350,13690.182,CCH,DKD,A,12325.16,259,32,OKW,FOLDERK,LTTRS,2002-12-13 20:49:00,2003-04-30 12:59:00,NULL
-158361,13693.293,CCI,FKF,A,12325,260,31,ASS,FOLDERL,LTTRS,2002-12-13 21:49:00,2003-04-30 14:59:00,NULL
-158372,13696.404,CCJ,LES,A,12324.84,261,30,CKA,FOLDERM,LTTRS,2002-12-13 22:49:00,2003-04-30 16:59:00,NOT COLLATERAL
-158383,13699.515,DDD,KLD,A,12324.68,262,29,SWQ,FOLDERN,LTTRS,2002-12-13 23:49:00,2003-04-30 18:59:00,NOT COLLATERAL
-158394,13702.626,DDA,SKL,A,12324.52,263,28,KUH,FOLDERN,LTTRZ,2002-12-14 00:49:00,2003-04-30 20:59:00,COLLATERAL
-158405,13705.737,DAA,SIW,A,12324.36,264,27,XCV,FOLDERN,LTTRA,2002-12-14 01:49:00,2003-04-30 22:59:00,COLLATERAL
-158416,13708.848,DBB,CKA,A,12324.2,265,26,ZAQ,FOLDERN,LTTRB,2002-12-14 02:49:00,2003-05-01 00:59:00,COLLATERAL
-158427,13711.959,DCC,LDE,A,12324.04,266,25,MKO,FOLDERL,LTTRB,2002-12-14 03:49:00,2003-05-01 02:59:00,NOT COLLATERAL
-158438,13715.07,DEE,KFF,A,12323.88,267,24,VFR,FOLDERL,LTTRA,2002-12-14 04:49:00,2003-05-01 04:59:00,NOT COLLATERAL
-158449,13718.181,DFF,EFH,A,12323.72,268,23,YUJ,FOLDERL,LTTRA,2002-12-14 05:49:00,2003-05-01 06:59:00,NULL
-158460,13721.292,DGG,NGC,A,12323.56,269,22,AAA,FOLDERL,LTTRS,2002-12-14 06:49:00,2003-05-01 08:59:00,NULL
-158471,13724.403,DHH,DER,A,12323.4,270,21,BBB,FOLDERL,LTTRZ,2002-12-14 07:49:00,2003-05-01 10:59:00,NULL
-158482,13727.514,AAA,FVG,A,12323.24,271,20,CCC,FOLDERA,LTTRS,2002-12-14 08:49:00,2003-05-01 12:59:00,NULL
-158493,13730.625,BBB,KWE,A,12323.08,272,19,DDD,FOLDERB,LTTRS,2002-12-14 09:49:00,2003-05-01 14:59:00,NULL
-158504,13733.736,CCC,WER,A,12322.92,273,18,AAB,FOLDERC,LTTRS,2002-12-14 10:49:00,2003-05-01 16:59:00,NOT COLLATERAL
-158515,13736.847,DDD,GFH,A,12322.76,274,17,AAC,FOLDERD,LTTRS,2002-12-14 11:49:00,2003-05-01 18:59:00,NOT COLLATERAL
-158526,13739.958,AAB,BGF,A,12322.6,275,16,AAD,FOLDERE,LTTRS,2002-12-14 12:49:00,2003-05-01 20:59:00,COLLATERAL
-158537,13743.069,AAC,XCS,A,12322.44,276,15,AAE,FOLDERF,LTTRS,2002-12-14 13:49:00,2003-05-01 22:59:00,COLLATERAL
-158548,13746.18,AAD,JHK,A,12322.28,277,14,AAF,FOLDERG,LTTRS,2002-12-14 14:49:00,2003-05-02 00:59:00,COLLATERAL
-158559,13749.291,AAE,SFD,A,12322.12,278,13,BBA,FOLDERH,LTTRS,2002-12-14 15:49:00,2003-05-02 02:59:00,NOT COLLATERAL
-158570,13752.402,AAF,WRE,A,12321.96,279,12,BBC,FOLDERI,LTTRS,2002-12-14 16:49:00,2003-05-02 04:59:00,NOT COLLATERAL
-158581,13755.513,BBA,HGV,A,12321.8,280,11,BBE,FOLDERJ,LTTRS,2002-12-14 17:49:00,2003-05-02 06:59:00,NOT COLLATERAL
-158592,13758.624,BBC,KLS,A,12321.64,281,10,BBF,FOLDERK,LTTRS,2002-12-14 18:49:00,2003-05-02 08:59:00,NOT COLLATERAL
-158603,13761.735,BBE,SDK,A,12321.48,282,9,BBG,FOLDERL,LTTRS,2002-12-14 19:49:00,2003-05-02 10:59:00,NOT COLLATERAL
-158614,13764.846,BBF,MNV,A,12321.32,283,8,BBH,FOLDERM,LTTRS,2002-12-14 20:49:00,2003-05-02 12:59:00,NOT COLLATERAL
-158625,13767.957,BBG,OKW,A,12321.16,284,7,CCA,FOLDERN,LTTRS,2002-12-14 21:49:00,2003-05-02 14:59:00,NOT COLLATERAL
-158636,13771.068,BBH,ASS,A,12321,285,6,CCB,FOLDERO,LTTRZ,2002-12-14 22:49:00,2003-05-02 16:59:00,NOT COLLATERAL
-158647,13774.179,CCA,CKA,A,12320.84,286,5,CCD,FOLDERP,LTTRA,2002-12-14 23:49:00,2003-05-02 18:59:00,NOT COLLATERAL
-158658,13777.29,CCB,SWQ,A,12320.68,287,4,CCE,FOLDERQ,LTTRB,2002-12-15 00:49:00,2003-05-02 20:59:00,COLLATERAL
-158669,13780.401,CCD,KUH,A,12320.52,288,3,CCF,FOLDERR,LTTRB,2002-12-15 01:49:00,2003-05-02 22:59:00,COLLATERAL
-158680,13783.512,CCE,XCV,A,12320.36,289,1,CCG,FOLDERS,LTTRA,2002-12-15 02:49:00,2003-05-03 00:59:00,COLLATERAL
-158691,13786.623,CCF,ZAQ,A,12320.2,290,2,CCH,FOLDERT,LTTRA,2002-12-15 03:49:00,2003-05-03 02:59:00,NOT COLLATERAL
-158702,13789.734,CCG,MKO,A,12320.04,291,3,CCI,FOLDERU,LTTRS,2002-12-15 04:49:00,2003-05-03 04:59:00,NOT COLLATERAL
-158713,13792.845,CCH,VFR,A,12319.88,292,4,CCJ,FOLDERV,LTTRZ,2002-12-15 05:49:00,2003-05-03 06:59:00,NOT COLLATERAL
-158724,13795.956,CCI,YUJ,A,12319.72,293,5,DDD,FOLDERW,LTTRS,2002-12-15 06:49:00,2003-05-03 08:59:00,NOT COLLATERAL
-158735,13799.067,CCJ,MED,A,12319.56,294,6,DDA,FOLDERX,LTTRS,2002-12-15 07:49:00,2003-05-03 10:59:00,NOT COLLATERAL
-158746,13802.178,DDD,SWE,A,12319.4,295,7,DAA,FOLDERY,LTTRS,2002-12-15 08:49:00,2003-05-03 12:59:00,NOT COLLATERAL
-158757,13805.289,DDA,CVF,A,12319.24,296,8,FKF,FOLDERZ,LTTRS,2002-12-15 09:49:00,2003-05-03 14:59:00,NOT COLLATERAL
-158768,13808.4,DAA,DSFG,A,12319.08,297,9,LES,FOLDERA,LTTRS,2002-12-15 10:49:00,2003-05-03 16:59:00,NOT COLLATERAL
-158779,13811.511,DBB,ASDRE,A,12318.92,298,10,KLD,FOLDERB,LTTRS,2002-12-15 11:49:00,2003-05-03 18:59:00,NOT COLLATERAL
-158790,13814.622,DCC,HJKSS,A,12318.76,299,11,SKL,FOLDERC,LTTRS,2002-12-15 12:49:00,2003-05-03 20:59:00,COLLATERAL
-158801,13817.733,DEE,KHAA,A,12318.6,300,12,SIW,FOLDERD,LTTRS,2002-12-15 13:49:00,2003-05-03 22:59:00,COLLATERAL
-158812,13820.844,DFF,KSLD,A,12318.44,301,13,CKA,FOLDERE,LTTRS,2002-12-15 14:49:00,2003-05-04 00:59:00,COLLATERAL
-158823,13823.955,DGG,EKID,A,12318.28,302,14,LDE,FOLDERF,LTTRS,2002-12-15 15:49:00,2003-05-04 02:59:00,NOT COLLATERAL
-158834,13827.066,DHH,VNCD,A,12318.12,303,15,KFF,FOLDERG,LTTRS,2002-12-15 16:49:00,2003-05-04 04:59:00,NOT COLLATERAL
-158845,13830.177,AAA,DKD,A,12317.96,304,16,EFH,FOLDERH,LTTRS,2002-12-15 17:49:00,2003-05-04 06:59:00,NOT COLLATERAL
-158856,13833.288,BBB,FKF,A,12317.8,305,17,NGC,FOLDERI,LTTRS,2002-12-15 18:49:00,2003-05-04 08:59:00,NOT COLLATERAL
-158867,13836.399,CCC,LES,A,12317.64,306,18,DER,FOLDERJ,LTTRS,2002-12-15 19:49:00,2003-05-04 10:59:00,NOT COLLATERAL
-158878,13839.51,DDD,KLD,A,12317.48,307,19,FVG,FOLDERK,LTTRZ,2002-12-15 20:49:00,2003-05-04 12:59:00,NOT COLLATERAL
-158889,13842.621,AAB,SKL,A,12317.32,308,20,KWE,FOLDERL,LTTRA,2002-12-15 21:49:00,2003-05-04 14:59:00,NOT COLLATERAL
-158900,13845.732,AAC,SIW,A,12317.16,309,21,WER,FOLDERM,LTTRB,2002-12-15 22:49:00,2003-05-04 16:59:00,NOT COLLATERAL
-158911,13848.843,AAD,CKA,A,12317,310,22,GFH,FOLDERN,LTTRB,2002-12-15 23:49:00,2003-05-04 18:59:00,NOT COLLATERAL
-158922,13851.954,AAE,LDE,A,12316.84,311,23,BGF,FOLDERO,LTTRA,2002-12-16 00:49:00,2003-05-04 20:59:00,COLLATERAL
-158933,13855.065,AAF,KFF,A,12316.68,312,24,XCS,FOLDERP,LTTRA,2002-12-16 01:49:00,2003-05-04 22:59:00,COLLATERAL
-158944,13858.176,BBA,EFH,A,12316.52,313,25,JHK,FOLDERQ,LTTRS,2002-12-16 02:49:00,2003-05-05 00:59:00,COLLATERAL
-158955,13861.287,BBC,NGC,A,12316.36,314,26,SFD,FOLDERR,LTTRZ,2002-12-16 03:49:00,2003-05-05 02:59:00,NOT COLLATERAL
-158966,13864.398,BBE,DER,A,12316.2,315,27,WRE,FOLDERS,LTTRS,2002-12-16 04:49:00,2003-05-05 04:59:00,NOT COLLATERAL
-158977,13867.509,BBF,FVG,A,12316.04,316,28,HGV,FOLDERT,LTTRS,2002-12-16 05:49:00,2003-05-05 06:59:00,NOT COLLATERAL
-158988,13870.62,BBG,KWE,A,12315.88,317,29,KLS,FOLDERU,LTTRS,2002-12-16 06:49:00,2003-05-05 08:59:00,NOT COLLATERAL
-158999,13873.731,BBH,WER,A,12315.72,318,30,SDK,FOLDERV,LTTRS,2002-12-16 07:49:00,2003-05-05 10:59:00,NOT COLLATERAL
-159010,13876.842,CCA,GFH,A,12315.56,319,31,MNV,FOLDERW,LTTRS,2002-12-16 08:49:00,2003-05-05 12:59:00,NOT COLLATERAL
-159021,13879.953,CCB,BGF,A,12315.4,320,32,OKW,FOLDERX,LTTRS,2002-12-16 09:49:00,2003-05-05 14:59:00,NOT COLLATERAL
-159032,13883.064,CCD,XCS,A,12315.24,321,33,ASS,FOLDERY,LTTRS,2002-12-16 10:49:00,2003-05-05 16:59:00,NOT COLLATERAL
-159043,13886.175,CCE,JHK,A,12315.08,322,34,CKA,FOLDERZ,LTTRS,2002-12-16 11:49:00,2003-05-05 18:59:00,NOT COLLATERAL
-159054,13889.286,CCF,SFD,A,12314.92,323,35,SWQ,FOLDERZ,LTTRS,2002-12-16 12:49:00,2003-05-05 20:59:00,COLLATERAL
-159065,13892.397,CCG,WRE,A,12314.76,324,36,KUH,FOLDERZ,LTTRS,2002-12-16 13:49:00,2003-05-05 22:59:00,COLLATERAL
-159076,13895.508,CCH,HGV,A,12314.6,325,37,XCV,FOLDERZ,LTTRS,2002-12-16 14:49:00,2003-05-06 00:59:00,COLLATERAL
-159087,13898.619,CCI,KLS,A,12314.44,326,38,ZAQ,FOLDERZ,LTTRS,2002-12-16 15:49:00,2003-05-06 02:59:00,NOT COLLATERAL
-159098,13901.73,CCJ,SDK,A,12314.28,327,39,MKO,FOLDERZ,LTTRS,2002-12-16 16:49:00,2003-05-06 04:59:00,NOT COLLATERAL
-159109,13904.841,DDD,MNV,A,12314.12,328,40,VFR,FOLDERZ,LTTRS,2002-12-16 17:49:00,2003-05-06 06:59:00,NOT COLLATERAL
-159120,13907.952,DDA,OKW,A,12313.96,329,41,YUJ,FOLDERZ,LTTRZ,2002-12-16 18:49:00,2003-05-06 08:59:00,NOT COLLATERAL
-159131,13911.063,DAA,ASS,A,12313.8,330,42,AAA,FOLDERZ,LTTRA,2002-12-16 19:49:00,2003-05-06 10:59:00,NOT COLLATERAL
-159142,13914.174,DBB,CKA,A,12313.64,331,43,BBB,FOLDERZ,LTTRB,2002-12-16 20:49:00,2003-05-06 12:59:00,NOT COLLATERAL
-159153,13917.285,DCC,SWQ,A,12313.48,332,44,CCC,FOLDERZ,LTTRB,2002-12-16 21:49:00,2003-05-06 14:59:00,NOT COLLATERAL
-159164,13920.396,DEE,KUH,A,12313.32,333,45,DDD,FOLDERZ,LTTRA,2002-12-16 22:49:00,2003-05-06 16:59:00,NOT COLLATERAL
-159175,13923.507,DFF,XCV,A,12313.16,334,46,AAB,FOLDERZ,LTTRA,2002-12-16 23:49:00,2003-05-06 18:59:00,NOT COLLATERAL
-159186,13926.618,DGG,ZAQ,A,12313,335,47,AAC,FOLDERZ,LTTRS,2002-12-17 00:49:00,2003-05-06 20:59:00,COLLATERAL
-159197,13929.729,DHH,MKO,A,12312.84,336,48,AAD,FOLDERX,LTTRZ,2002-12-17 01:49:00,2003-05-06 22:59:00,COLLATERAL
-159208,13932.84,AAA,VFR,A,12312.68,337,49,AAE,FOLDERX,LTTRS,2002-12-17 02:49:00,2003-05-07 00:59:00,COLLATERAL
-159219,13935.951,BBB,YUJ,A,12312.52,338,48,AAF,FOLDERX,LTTRS,2002-12-17 03:49:00,2003-05-07 02:59:00,NOT COLLATERAL
-159230,13939.062,CCC,MED,A,12312.36,339,47,BBA,FOLDERX,LTTRS,2002-12-17 04:49:00,2003-05-07 04:59:00,NOT COLLATERAL
-159241,13942.173,DDD,SWE,A,12312.2,340,46,BBC,FOLDERX,LTTRS,2002-12-17 05:49:00,2003-05-07 06:59:00,NOT COLLATERAL
-159252,13945.284,AAB,CVF,A,12312.04,341,45,BBE,FOLDERX,LTTRS,2002-12-17 06:49:00,2003-05-07 08:59:00,NOT COLLATERAL
-159263,13948.395,AAC,DSFG,A,12311.88,342,44,BBF,FOLDERX,LTTRS,2002-12-17 07:49:00,2003-05-07 10:59:00,NOT COLLATERAL
-159274,13951.506,AAD,ASDRE,A,12311.72,343,43,BBG,FOLDERX,LTTRS,2002-12-17 08:49:00,2003-05-07 12:59:00,NOT COLLATERAL
-159285,13954.617,AAE,HJKSS,A,12311.56,344,42,BBH,FOLDERX,LTTRS,2002-12-17 09:49:00,2003-05-07 14:59:00,NOT COLLATERAL
-159296,13957.728,AAF,KHAA,A,12311.4,345,41,CCA,FOLDERX,LTTRS,2002-12-17 10:49:00,2003-05-07 16:59:00,NOT COLLATERAL
-159307,13960.839,BBA,KSLD,A,12311.24,346,40,CCB,FOLDERX,LTTRS,2002-12-17 11:49:00,2003-05-07 18:59:00,NOT COLLATERAL
-159318,13963.95,BBC,EKID,A,12311.08,347,39,CCD,FOLDERX,LTTRS,2002-12-17 12:49:00,2003-05-07 20:59:00,COLLATERAL
-159329,13967.061,BBE,VNCD,A,12310.92,348,38,CCE,FOLDERR,LTTRS,2002-12-17 13:49:00,2003-05-07 22:59:00,COLLATERAL
-159340,13970.172,BBF,DKD,A,12310.76,349,37,CCF,FOLDERS,LTTRS,2002-12-17 14:49:00,2003-05-08 00:59:00,COLLATERAL
-159351,13973.283,BBG,FKF,A,12310.6,350,36,CCG,FOLDERX,LTTRS,2002-12-17 15:49:00,2003-05-08 02:59:00,NOT COLLATERAL
-159362,13976.394,BBH,LES,A,12310.44,351,35,CCH,FOLDERR,LTTRZ,2002-12-17 16:49:00,2003-05-08 04:59:00,NULL
-159373,13979.505,CCA,KLD,A,12310.28,352,34,CCI,FOLDERS,LTTRA,2002-12-17 17:49:00,2003-05-08 06:59:00,NULL
-159384,13982.616,CCB,SKL,A,12310.12,353,33,CCJ,FOLDERX,LTTRB,2002-12-17 18:49:00,2003-05-08 08:59:00,NULL
-159395,13985.727,CCD,SIW,A,12309.96,354,32,DDD,FOLDERR,LTTRB,2002-12-17 19:49:00,2003-05-08 10:59:00,NULL
-159406,13988.838,CCE,CKA,A,12309.8,355,31,DDA,FOLDERS,LTTRA,2002-12-17 20:49:00,2003-05-08 12:59:00,NULL
-159417,13991.949,CCF,LDE,A,12309.64,356,30,DAA,FOLDERX,LTTRA,2002-12-17 21:49:00,2003-05-08 14:59:00,NULL
-159428,13995.06,CCG,KFF,A,12309.48,357,29,FKF,FOLDERR,LTTRS,2002-12-17 22:49:00,2003-05-08 16:59:00,NOT COLLATERAL
-159439,13998.171,CCH,EFH,A,12309.32,358,28,LES,FOLDERS,LTTRZ,2002-12-17 23:49:00,2003-05-08 18:59:00,NOT COLLATERAL
-159450,14001.282,CCI,NGC,A,12309.16,359,27,KLD,FOLDERX,LTTRS,2002-12-18 00:49:00,2003-05-08 20:59:00,COLLATERAL
-159461,14004.393,CCJ,DER,A,12309,360,26,SKL,FOLDERR,LTTRS,2002-12-18 01:49:00,2003-05-08 22:59:00,COLLATERAL
-159472,14007.504,DDD,FVG,A,12308.84,361,25,SIW,FOLDERS,LTTRS,2002-12-18 02:49:00,2003-05-09 00:59:00,COLLATERAL
-159483,14010.615,DDA,KWE,A,12308.68,362,24,CKA,FOLDERX,LTTRS,2002-12-18 03:49:00,2003-05-09 02:59:00,NOT COLLATERAL
-159494,14013.726,DAA,WER,A,12308.52,363,23,LDE,FOLDERD,LTTRS,2002-12-18 04:49:00,2003-05-09 04:59:00,NOT COLLATERAL
-159505,14016.837,DBB,GFH,A,12308.36,364,22,KFF,FOLDERE,LTTRS,2002-12-18 05:49:00,2003-05-09 06:59:00,NULL
-159516,14019.948,DCC,BGF,A,12308.2,365,21,EFH,FOLDERF,LTTRS,2002-12-18 06:49:00,2003-05-09 08:59:00,NULL
-159527,14023.059,DEE,XCS,A,12308.04,366,20,NGC,FOLDERG,LTTRS,2002-12-18 07:49:00,2003-05-09 10:59:00,NULL
-159538,14026.17,DFF,JHK,A,12307.88,367,19,DER,FOLDERH,LTTRS,2002-12-18 08:49:00,2003-05-09 12:59:00,NULL
-159549,14029.281,DGG,SFD,A,12307.72,368,18,FVG,FOLDERI,LTTRS,2002-12-18 09:49:00,2003-05-09 14:59:00,NULL
-159560,14032.392,DHH,WRE,A,12307.56,369,17,KWE,FOLDERJ,LTTRS,2002-12-18 10:49:00,2003-05-09 16:59:00,NULL
-159571,14035.503,AAA,HGV,A,12307.4,370,16,WER,FOLDERK,LTTRS,2002-12-18 11:49:00,2003-05-09 18:59:00,NOT COLLATERAL
-159582,14038.614,BBB,KLS,A,12307.24,371,15,GFH,FOLDERL,LTTRS,2002-12-18 12:49:00,2003-05-09 20:59:00,COLLATERAL
-159593,14041.725,CCC,SDK,A,12307.08,372,14,BGF,FOLDERM,LTTRS,2002-12-18 13:49:00,2003-05-09 22:59:00,COLLATERAL
-159604,14044.836,DDD,MNV,A,12306.92,373,13,XCS,FOLDERN,LTTRZ,2002-12-18 14:49:00,2003-05-10 00:59:00,COLLATERAL
-159615,14047.947,AAB,OKW,A,12306.76,374,12,JHK,FOLDERN,LTTRA,2002-12-18 15:49:00,2003-05-10 02:59:00,NOT COLLATERAL
-159626,14051.058,AAC,ASS,A,12306.6,375,11,SFD,FOLDERN,LTTRB,2002-12-18 16:49:00,2003-05-10 04:59:00,NOT COLLATERAL
-159637,14054.169,AAD,CKA,A,12306.44,376,10,WRE,FOLDERN,LTTRB,2002-12-18 17:49:00,2003-05-10 06:59:00,NULL
-159648,14057.28,AAE,SWQ,A,12306.28,377,9,HGV,FOLDERL,LTTRA,2002-12-18 18:49:00,2003-05-10 08:59:00,NULL
-159659,14060.391,AAF,KUH,A,12306.12,378,8,KLS,FOLDERL,LTTRA,2002-12-18 19:49:00,2003-05-10 10:59:00,NULL
-159670,14063.502,BBA,XCV,A,12305.96,379,7,SDK,FOLDERL,LTTRS,2002-12-18 20:49:00,2003-05-10 12:59:00,NULL
-159681,14066.613,BBC,ZAQ,A,12305.8,380,6,MNV,FOLDERL,LTTRZ,2002-12-18 21:49:00,2003-05-10 14:59:00,NULL
-159692,14069.724,BBE,MKO,A,12305.64,381,5,OKW,FOLDERL,LTTRS,2002-12-18 22:49:00,2003-05-10 16:59:00,NULL
-159703,14072.835,BBF,VFR,A,12305.48,382,4,ASS,FOLDERA,LTTRS,2002-12-18 23:49:00,2003-05-10 18:59:00,NOT COLLATERAL
-159714,14075.946,BBG,YUJ,A,12305.32,383,3,CKA,FOLDERB,LTTRS,2002-12-19 00:49:00,2003-05-10 20:59:00,COLLATERAL
-159725,14079.057,BBH,MED,A,12305.16,384,1,SWQ,FOLDERC,LTTRS,2002-12-19 01:49:00,2003-05-10 22:59:00,COLLATERAL
-159736,14082.168,CCA,SWE,A,12305,385,2,KUH,FOLDERD,LTTRS,2002-12-19 02:49:00,2003-05-11 00:59:00,COLLATERAL
-159747,14085.279,CCB,CVF,A,12304.84,386,3,XCV,FOLDERE,LTTRS,2002-12-19 03:49:00,2003-05-11 02:59:00,NOT COLLATERAL
-159758,14088.39,CCD,DSFG,A,12304.68,387,4,ZAQ,FOLDERF,LTTRS,2002-12-19 04:49:00,2003-05-11 04:59:00,NOT COLLATERAL
-159769,14091.501,CCE,ASDRE,A,12304.52,388,5,MKO,FOLDERG,LTTRS,2002-12-19 05:49:00,2003-05-11 06:59:00,NOT COLLATERAL
-159780,14094.612,CCF,HJKSS,A,12304.36,389,6,VFR,FOLDERH,LTTRS,2002-12-19 06:49:00,2003-05-11 08:59:00,NOT COLLATERAL
-159791,14097.723,CCG,KHAA,A,12304.2,390,7,YUJ,FOLDERI,LTTRS,2002-12-19 07:49:00,2003-05-11 10:59:00,NOT COLLATERAL
-159802,14100.834,CCH,KSLD,A,12304.04,391,8,AAA,FOLDERJ,LTTRS,2002-12-19 08:49:00,2003-05-11 12:59:00,NOT COLLATERAL
-159813,14103.945,CCI,EKID,A,12303.88,392,9,BBB,FOLDERK,LTTRS,2002-12-19 09:49:00,2003-05-11 14:59:00,NOT COLLATERAL
-159824,14107.056,CCJ,VNCD,A,12303.72,390,10,CCC,FOLDERL,LTTRS,2002-12-19 10:49:00,2003-05-11 16:59:00,NOT COLLATERAL
-159835,14110.167,DDD,DKD,A,12303.56,388,11,DDD,FOLDERM,LTTRS,2002-12-19 11:49:00,2003-05-11 18:59:00,NOT COLLATERAL
-159846,14113.278,DDA,FKF,A,12303.4,386,12,AAB,FOLDERN,LTTRZ,2002-12-19 12:49:00,2003-05-11 20:59:00,COLLATERAL
-159857,14116.389,DAA,LES,A,12303.24,384,13,AAC,FOLDERO,LTTRA,2002-12-19 13:49:00,2003-05-11 22:59:00,COLLATERAL
-159868,14119.5,DBB,KLD,A,12303.08,382,14,AAD,FOLDERP,LTTRB,2002-12-19 14:49:00,2003-05-12 00:59:00,COLLATERAL
-159879,14122.611,DCC,SKL,A,12302.92,380,15,AAE,FOLDERQ,LTTRB,2002-12-19 15:49:00,2003-05-12 02:59:00,NOT COLLATERAL
-159890,14125.722,DEE,SIW,A,12302.76,378,16,AAF,FOLDERR,LTTRA,2002-12-19 16:49:00,2003-05-12 04:59:00,NOT COLLATERAL
-159901,14128.833,DFF,CKA,A,12302.6,376,17,BBA,FOLDERS,LTTRA,2002-12-19 17:49:00,2003-05-12 06:59:00,NOT COLLATERAL
-159912,14131.944,DGG,LDE,A,12302.44,374,18,BBC,FOLDERT,LTTRS,2002-12-19 18:49:00,2003-05-12 08:59:00,NOT COLLATERAL
-159923,14135.055,DHH,KFF,A,12302.28,372,19,BBE,FOLDERU,LTTRZ,2002-12-19 19:49:00,2003-05-12 10:59:00,NOT COLLATERAL
-159934,14138.166,AAA,EFH,A,12302.12,370,20,BBF,FOLDERV,LTTRS,2002-12-19 20:49:00,2003-05-12 12:59:00,NOT COLLATERAL
-159945,14141.277,BBB,NGC,A,12301.96,368,21,BBG,FOLDERW,LTTRS,2002-12-19 21:49:00,2003-05-12 14:59:00,NOT COLLATERAL
-159956,14144.388,CCC,DER,A,12301.8,366,22,BBH,FOLDERX,LTTRS,2002-12-19 22:49:00,2003-05-12 16:59:00,NOT COLLATERAL
-159967,14147.499,DDD,FVG,A,12301.64,364,23,CCA,FOLDERY,LTTRS,2002-12-19 23:48:00,2003-05-12 18:59:00,NOT COLLATERAL
-159978,14150.61,AAB,KWE,A,12301.48,362,24,CCB,FOLDERZ,LTTRS,2002-12-20 00:48:00,2003-05-12 20:59:00,COLLATERAL
-159989,14153.721,AAC,WER,A,12301.32,360,25,CCD,FOLDERA,LTTRS,2002-12-20 01:48:00,2003-05-12 22:59:00,COLLATERAL
-160000,14156.832,AAD,GFH,A,12301.16,358,26,CCE,FOLDERB,LTTRS,2002-12-20 02:48:00,2003-05-13 00:59:00,COLLATERAL
-160011,14159.943,AAE,BGF,A,12301,356,27,CCF,FOLDERC,LTTRS,2002-12-20 03:48:00,2003-05-13 02:59:00,NOT COLLATERAL
-160022,14163.054,AAF,XCS,A,12300.84,354,28,CCG,FOLDERD,LTTRS,2002-12-20 04:48:00,2003-05-13 04:59:00,NOT COLLATERAL
-160033,14166.165,BBA,JHK,A,12300.68,352,29,CCH,FOLDERE,LTTRS,2002-12-20 05:48:00,2003-05-13 06:59:00,NOT COLLATERAL
-160044,14169.276,BBC,SFD,A,12300.52,350,30,CCI,FOLDERF,LTTRS,2002-12-20 06:48:00,2003-05-13 08:59:00,NOT COLLATERAL
-160055,14172.387,BBE,WRE,A,12300.36,348,31,CCJ,FOLDERG,LTTRS,2002-12-20 07:48:00,2003-05-13 10:59:00,NOT COLLATERAL
-160066,14175.498,BBF,HGV,A,12300.2,346,32,DDD,FOLDERH,LTTRS,2002-12-20 08:48:00,2003-05-13 12:59:00,NOT COLLATERAL
-160077,14178.609,BBG,KLS,A,12300.04,344,33,DDA,FOLDERI,LTTRS,2002-12-20 09:48:00,2003-05-13 14:59:00,NOT COLLATERAL
-160088,14181.72,BBH,SDK,A,12299.88,342,34,DAA,FOLDERJ,LTTRZ,2002-12-20 10:48:00,2003-05-13 16:59:00,NOT COLLATERAL
-160099,14184.831,CCA,MNV,A,12299.72,340,35,FKF,FOLDERK,LTTRA,2002-12-20 11:48:00,2003-05-13 18:59:00,NOT COLLATERAL
-160110,14187.942,CCB,OKW,A,12299.56,338,36,LES,FOLDERL,LTTRB,2002-12-20 12:48:00,2003-05-13 20:59:00,COLLATERAL
-160121,14191.053,CCD,ASS,A,12299.4,336,37,KLD,FOLDERM,LTTRB,2002-12-20 13:48:00,2003-05-13 22:59:00,COLLATERAL
-160132,14194.164,CCE,CKA,A,12299.24,334,38,SKL,FOLDERN,LTTRA,2002-12-20 14:48:00,2003-05-14 00:59:00,COLLATERAL
-160143,14197.275,CCF,SWQ,A,12299.08,332,39,SIW,FOLDERO,LTTRA,2002-12-20 15:48:00,2003-05-14 02:59:00,NOT COLLATERAL
-160154,14200.386,CCG,KUH,A,12298.92,330,40,CKA,FOLDERP,LTTRS,2002-12-20 16:48:00,2003-05-14 04:59:00,NOT COLLATERAL
-160165,14203.497,CCH,XCV,A,12298.76,328,41,LDE,FOLDERQ,LTTRZ,2002-12-20 17:48:00,2003-05-14 06:59:00,NOT COLLATERAL
-160176,14206.608,CCI,ZAQ,A,12298.6,326,42,KFF,FOLDERR,LTTRS,2002-12-20 18:48:00,2003-05-14 08:59:00,NOT COLLATERAL
-160187,14209.719,CCJ,MKO,A,12298.44,324,43,EFH,FOLDERS,LTTRS,2002-12-20 19:48:00,2003-05-14 10:59:00,NOT COLLATERAL
-160198,14212.83,DDD,VFR,A,12298.28,322,44,NGC,FOLDERT,LTTRS,2002-12-20 20:48:00,2003-05-14 12:59:00,NOT COLLATERAL
-160209,14215.941,DDA,YUJ,A,12298.12,320,45,DER,FOLDERU,LTTRS,2002-12-20 21:48:00,2003-05-14 14:59:00,NOT COLLATERAL
-160220,14219.052,DAA,MED,A,12297.96,318,46,FVG,FOLDERV,LTTRS,2002-12-20 22:48:00,2003-05-14 16:59:00,NOT COLLATERAL
-160231,14222.163,DBB,SWE,A,12297.8,316,47,KWE,FOLDERW,LTTRS,2002-12-20 23:48:00,2003-05-14 18:59:00,NOT COLLATERAL
-160242,14225.274,DCC,CVF,A,12297.64,314,48,WER,FOLDERX,LTTRS,2002-12-21 00:48:00,2003-05-14 20:59:00,COLLATERAL
-160253,14228.385,DEE,DSFG,A,12297.48,312,49,GFH,FOLDERY,LTTRS,2002-12-21 01:48:00,2003-05-14 22:59:00,COLLATERAL
-160264,14231.496,DFF,ASDRE,A,12297.32,310,48,BGF,FOLDERZ,LTTRS,2002-12-21 02:48:00,2003-05-15 00:59:00,COLLATERAL
-160275,14234.607,DGG,HJKSS,A,12297.16,308,47,XCS,FOLDERZ,LTTRS,2002-12-21 03:48:00,2003-05-15 02:59:00,NOT COLLATERAL
-160286,14237.718,DHH,KHAA,A,12297,306,46,JHK,FOLDERZ,LTTRS,2002-12-21 04:48:00,2003-05-15 04:59:00,NOT COLLATERAL
-160297,14240.829,AAA,KSLD,A,12296.84,304,45,SFD,FOLDERZ,LTTRS,2002-12-21 05:48:00,2003-05-15 06:59:00,NOT COLLATERAL
-160308,14243.94,BBB,EKID,A,12296.68,302,44,WRE,FOLDERZ,LTTRS,2002-12-21 06:48:00,2003-05-15 08:59:00,NOT COLLATERAL
-160319,14247.051,CCC,VNCD,A,12296.52,300,43,HGV,FOLDERZ,LTTRS,2002-12-21 07:48:00,2003-05-15 10:59:00,NOT COLLATERAL
-160330,14250.162,DDD,DKD,A,12296.36,298,42,KLS,FOLDERZ,LTTRZ,2002-12-21 08:48:00,2003-05-15 12:59:00,NOT COLLATERAL
-160341,14253.273,AAB,FKF,A,12296.2,296,41,SDK,FOLDERZ,LTTRA,2002-12-21 09:48:00,2003-05-15 14:59:00,NOT COLLATERAL
-160352,14256.384,AAC,LES,A,12296.04,294,40,MNV,FOLDERZ,LTTRB,2002-12-21 10:48:00,2003-05-15 16:59:00,NOT COLLATERAL
-160363,14259.495,AAD,KLD,A,12295.88,292,39,OKW,FOLDERZ,LTTRB,2002-12-21 11:48:00,2003-05-15 18:59:00,NOT COLLATERAL
-160374,14262.606,AAE,SKL,A,12295.72,290,38,ASS,FOLDERZ,LTTRA,2002-12-21 12:48:00,2003-05-15 20:59:00,COLLATERAL
-160385,14265.717,AAF,SIW,A,12295.56,288,37,CKA,FOLDERZ,LTTRA,2002-12-21 13:48:00,2003-05-15 22:59:00,COLLATERAL
-160396,14268.828,BBA,CKA,A,12295.4,286,36,SWQ,FOLDERZ,LTTRS,2002-12-21 14:48:00,2003-05-16 00:59:00,COLLATERAL
-160407,14271.939,BBC,LDE,A,12295.24,284,35,KUH,FOLDERZ,LTTRZ,2002-12-21 15:48:00,2003-05-16 02:59:00,NOT COLLATERAL
-160418,14275.05,BBE,KFF,A,12295.08,282,34,XCV,FOLDERX,LTTRS,2002-12-21 16:48:00,2003-05-16 04:59:00,NOT COLLATERAL
-160429,14278.161,BBF,EFH,A,12294.92,280,33,ZAQ,FOLDERX,LTTRS,2002-12-21 17:48:00,2003-05-16 06:59:00,NOT COLLATERAL
-160440,14281.272,BBG,NGC,A,12294.76,278,32,MKO,FOLDERX,LTTRS,2002-12-21 18:48:00,2003-05-16 08:59:00,NOT COLLATERAL
-160451,14284.383,BBH,DER,A,12294.6,276,31,VFR,FOLDERX,LTTRS,2002-12-21 19:48:00,2003-05-16 10:59:00,NOT COLLATERAL
-160462,14287.494,CCA,FVG,A,12294.44,274,30,YUJ,FOLDERX,LTTRS,2002-12-21 20:48:00,2003-05-16 12:59:00,NOT COLLATERAL
-160473,14290.605,CCB,KWE,A,12294.28,272,29,AAA,FOLDERX,LTTRS,2002-12-21 21:48:00,2003-05-16 14:59:00,NOT COLLATERAL
-160484,14293.716,CCD,WER,A,12294.12,270,28,BBB,FOLDERX,LTTRS,2002-12-21 22:48:00,2003-05-16 16:59:00,NOT COLLATERAL
-160495,14296.827,CCE,GFH,A,12293.96,268,27,CCC,FOLDERX,LTTRS,2002-12-21 23:48:00,2003-05-16 18:59:00,NOT COLLATERAL
-160506,14299.938,CCF,BGF,A,12293.8,266,26,DDD,FOLDERX,LTTRS,2002-12-22 00:48:00,2003-05-16 20:59:00,COLLATERAL
-160517,14303.049,CCG,XCS,A,12293.64,264,25,AAB,FOLDERX,LTTRS,2002-12-22 01:48:00,2003-05-16 22:59:00,COLLATERAL
-160528,14306.16,CCH,JHK,A,12293.48,262,24,AAC,FOLDERX,LTTRS,2002-12-22 02:48:00,2003-05-17 00:59:00,COLLATERAL
-160539,14309.271,CCI,SFD,A,12293.32,260,23,AAD,FOLDERX,LTTRS,2002-12-22 03:48:00,2003-05-17 02:59:00,NOT COLLATERAL
-160550,14312.382,CCJ,WRE,A,12293.16,258,22,AAE,FOLDERR,LTTRS,2002-12-22 04:48:00,2003-05-17 04:59:00,NOT COLLATERAL
-160561,14315.493,DDD,HGV,A,12293,256,21,AAF,FOLDERS,LTTRS,2002-12-22 05:48:00,2003-05-17 06:59:00,NOT COLLATERAL
-160572,14318.604,DDA,KLS,A,12292.84,254,20,BBA,FOLDERX,LTTRZ,2002-12-22 06:48:00,2003-05-17 08:59:00,NOT COLLATERAL
-160583,14321.715,DAA,SDK,A,12292.68,252,19,BBC,FOLDERR,LTTRA,2002-12-22 07:48:00,2003-05-17 10:59:00,NOT COLLATERAL
-160594,14324.826,DBB,MNV,A,12292.52,250,18,BBE,FOLDERS,LTTRB,2002-12-22 08:48:00,2003-05-17 12:59:00,NOT COLLATERAL
-160605,14327.937,DCC,OKW,A,12292.36,248,17,BBF,FOLDERX,LTTRB,2002-12-22 09:48:00,2003-05-17 14:59:00,NOT COLLATERAL
-160616,14331.048,DEE,ASS,A,12292.2,246,16,BBG,FOLDERR,LTTRA,2002-12-22 10:48:00,2003-05-17 16:59:00,NOT COLLATERAL
-160627,14334.159,DFF,CKA,A,12292.04,244,15,BBH,FOLDERS,LTTRA,2002-12-22 11:48:00,2003-05-17 18:59:00,NOT COLLATERAL
-160638,14337.27,DGG,SWQ,A,12291.88,242,14,CCA,FOLDERX,LTTRS,2002-12-22 12:48:00,2003-05-17 20:59:00,COLLATERAL
-160649,14340.381,DHH,KUH,A,12291.72,240,13,CCB,FOLDERR,LTTRZ,2002-12-22 13:48:00,2003-05-17 22:59:00,COLLATERAL
-160660,14343.492,AAA,XCV,A,12291.56,238,12,CCD,FOLDERS,LTTRS,2002-12-22 14:48:00,2003-05-18 00:59:00,COLLATERAL
-160671,14346.603,BBB,ZAQ,A,12291.4,236,11,CCE,FOLDERX,LTTRS,2002-12-22 15:48:00,2003-05-18 02:59:00,NOT COLLATERAL
-160682,14349.714,CCC,MKO,A,12291.24,234,10,CCF,FOLDERR,LTTRS,2002-12-22 16:48:00,2003-05-18 04:59:00,NOT COLLATERAL
-160693,14352.825,DDD,VFR,A,12291.08,232,9,CCG,FOLDERS,LTTRS,2002-12-22 17:48:00,2003-05-18 06:59:00,NOT COLLATERAL
-160704,14355.936,AAB,YUJ,A,12290.92,230,8,CCH,FOLDERX,LTTRS,2002-12-22 18:48:00,2003-05-18 08:59:00,NOT COLLATERAL
-160715,14359.047,AAC,MED,A,12290.76,228,7,CCI,FOLDERD,LTTRS,2002-12-22 19:48:00,2003-05-18 10:59:00,NOT COLLATERAL
-160726,14362.158,AAD,SWE,A,12290.6,226,6,CCJ,FOLDERE,LTTRS,2002-12-22 20:48:00,2003-05-18 12:59:00,NOT COLLATERAL
-160737,14365.269,AAE,CVF,A,12290.44,224,5,DDD,FOLDERF,LTTRS,2002-12-22 21:48:00,2003-05-18 14:59:00,NOT COLLATERAL
-160748,14368.38,AAF,DSFG,A,12290.28,222,4,DDA,FOLDERG,LTTRS,2002-12-22 22:48:00,2003-05-18 16:59:00,NOT COLLATERAL
-160759,14371.491,BBA,ASDRE,A,12290.12,220,3,DAA,FOLDERH,LTTRS,2002-12-22 23:48:00,2003-05-18 18:59:00,NOT COLLATERAL
-160770,14374.602,BBC,HJKSS,A,12289.96,218,1,FKF,FOLDERI,LTTRS,2002-12-23 00:48:00,2003-05-18 20:59:00,COLLATERAL
-160781,14377.713,BBE,KHAA,A,12289.8,216,2,LES,FOLDERJ,LTTRS,2002-12-23 01:48:00,2003-05-18 22:59:00,COLLATERAL
-160792,14380.824,BBF,KSLD,A,12289.64,214,3,KLD,FOLDERK,LTTRS,2002-12-23 02:48:00,2003-05-19 00:59:00,COLLATERAL
-160803,14383.935,BBG,EKID,A,12289.48,212,4,SKL,FOLDERL,LTTRS,2002-12-23 03:48:00,2003-05-19 02:59:00,NOT COLLATERAL
-160814,14387.046,BBH,VNCD,A,12289.32,210,5,SIW,FOLDERM,LTTRZ,2002-12-23 04:48:00,2003-05-19 04:59:00,NOT COLLATERAL
-160825,14390.157,CCA,DKD,A,12289.16,208,6,CKA,FOLDERN,LTTRA,2002-12-23 05:48:00,2003-05-19 06:59:00,NOT COLLATERAL
-160836,14393.268,CCB,FKF,A,12289,206,7,LDE,FOLDERN,LTTRB,2002-12-23 06:48:00,2003-05-19 08:59:00,NOT COLLATERAL
-160847,14396.379,CCD,LES,A,12288.84,204,8,KFF,FOLDERN,LTTRB,2002-12-23 07:48:00,2003-05-19 10:59:00,NOT COLLATERAL
-160858,14399.49,CCE,KLD,A,12288.68,202,9,EFH,FOLDERN,LTTRA,2002-12-23 08:48:00,2003-05-19 12:59:00,NOT COLLATERAL
-160869,14402.601,CCF,SKL,A,12288.52,200,10,NGC,FOLDERL,LTTRA,2002-12-23 09:48:00,2003-05-19 14:59:00,NOT COLLATERAL
-160880,14405.712,CCG,SIW,A,12288.36,198,11,DER,FOLDERL,LTTRS,2002-12-23 10:48:00,2003-05-19 16:59:00,NOT COLLATERAL
-160891,14408.823,CCH,CKA,A,12288.2,196,12,FVG,FOLDERL,LTTRZ,2002-12-23 11:48:00,2003-05-19 18:59:00,NOT COLLATERAL
-160902,14411.934,CCI,LDE,A,12288.04,194,13,KWE,FOLDERL,LTTRS,2002-12-23 12:48:00,2003-05-19 20:59:00,COLLATERAL
-160913,14415.045,CCJ,KFF,A,12287.88,192,14,WER,FOLDERL,LTTRS,2002-12-23 13:48:00,2003-05-19 22:59:00,COLLATERAL
-160924,14418.156,DDD,EFH,A,12287.72,190,15,GFH,FOLDERZ,LTTRS,2002-12-23 14:48:00,2003-05-20 00:59:00,COLLATERAL
-160935,14421.267,DDA,NGC,A,12287.56,188,16,BGF,FOLDERZ,LTTRS,2002-12-23 15:48:00,2003-05-20 02:59:00,NOT COLLATERAL
-160946,14424.378,DAA,DER,A,12287.4,186,17,XCS,FOLDERZ,LTTRS,2002-12-23 16:48:00,2003-05-20 04:59:00,NOT COLLATERAL
-160957,14427.489,DBB,FVG,A,12287.24,184,18,JHK,FOLDERZ,LTTRS,2002-12-23 17:48:00,2003-05-20 06:59:00,NOT COLLATERAL
-160968,14430.6,DCC,KWE,A,12287.08,182,19,SFD,FOLDERZ,LTTRS,2002-12-23 18:48:00,2003-05-20 08:59:00,NOT COLLATERAL
-160979,14433.711,DEE,WER,A,12286.92,180,20,WRE,FOLDERZ,LTTRS,2002-12-23 19:48:00,2003-05-20 10:59:00,NOT COLLATERAL
-160990,14436.822,DFF,GFH,A,12286.76,178,21,HGV,FOLDERZ,LTTRS,2002-12-23 20:48:00,2003-05-20 12:59:00,NOT COLLATERAL
-161001,14439.933,DGG,BGF,A,12286.6,176,22,KLS,FOLDERZ,LTTRS,2002-12-23 21:48:00,2003-05-20 14:59:00,NOT COLLATERAL
-161012,14443.044,DHH,XCS,A,12286.44,174,23,SDK,FOLDERZ,LTTRS,2002-12-23 22:48:00,2003-05-20 16:59:00,NOT COLLATERAL
-161023,14446.155,AAA,JHK,A,12286.28,172,24,MNV,FOLDERZ,LTTRS,2002-12-23 23:48:00,2003-05-20 18:59:00,NOT COLLATERAL
-161034,14449.266,BBB,SFD,A,12286.12,170,25,OKW,FOLDERZ,LTTRS,2002-12-24 00:48:00,2003-05-20 20:59:00,COLLATERAL
-161045,14452.377,CCC,WRE,A,12285.96,168,26,ASS,FOLDERZ,LTTRS,2002-12-24 01:48:00,2003-05-20 22:59:00,COLLATERAL
-161056,14455.488,DDD,HGV,A,12285.8,166,27,CKA,FOLDERX,LTTRZ,2002-12-24 02:48:00,2003-05-21 00:59:00,COLLATERAL
-161067,14458.599,AAB,KLS,A,12285.64,164,28,SWQ,FOLDERX,LTTRA,2002-12-24 03:48:00,2003-05-21 02:59:00,NOT COLLATERAL
-161078,14461.71,AAC,SDK,A,12285.48,162,29,KUH,FOLDERX,LTTRB,2002-12-24 04:48:00,2003-05-21 04:59:00,NOT COLLATERAL
-161089,14464.821,AAD,MNV,A,12285.32,160,30,XCV,FOLDERX,LTTRB,2002-12-24 05:48:00,2003-05-21 06:59:00,NOT COLLATERAL
-161100,14467.932,AAE,OKW,A,12285.16,158,31,ZAQ,FOLDERX,LTTRA,2002-12-24 06:48:00,2003-05-21 08:59:00,NOT COLLATERAL
-161111,14471.043,AAF,ASS,A,12285,156,32,MKO,FOLDERX,LTTRA,2002-12-24 07:48:00,2003-05-21 10:59:00,NOT COLLATERAL
-161122,14474.154,BBA,CKA,A,12284.84,154,33,VFR,FOLDERX,LTTRS,2002-12-24 08:48:00,2003-05-21 12:59:00,NOT COLLATERAL
-161133,14477.265,BBC,SWQ,A,12284.68,152,34,YUJ,FOLDERX,LTTRZ,2002-12-24 09:48:00,2003-05-21 14:59:00,NOT COLLATERAL
-161144,14480.376,BBE,KUH,A,12284.52,150,35,AAA,FOLDERX,LTTRS,2002-12-24 10:48:00,2003-05-21 16:59:00,NOT COLLATERAL
-161155,14483.487,BBF,XCV,A,12284.36,148,36,BBB,FOLDERX,LTTRS,2002-12-24 11:48:00,2003-05-21 18:59:00,NOT COLLATERAL
-161166,14486.598,BBG,ZAQ,A,12284.2,146,37,CCC,FOLDERX,LTTRS,2002-12-24 12:48:00,2003-05-21 20:59:00,COLLATERAL
-161177,14489.709,BBH,MKO,A,12284.04,144,38,DDD,FOLDERX,LTTRS,2002-12-24 13:48:00,2003-05-21 22:59:00,COLLATERAL
-161188,14492.82,CCA,VFR,A,12283.88,142,39,AAB,FOLDERR,LTTRS,2002-12-24 14:48:00,2003-05-22 00:59:00,COLLATERAL
-161199,14495.931,CCB,YUJ,A,12283.72,140,40,AAC,FOLDERS,LTTRS,2002-12-24 15:48:00,2003-05-22 02:59:00,NOT COLLATERAL
-161210,14499.042,CCD,MED,A,12283.56,138,41,AAD,FOLDERX,LTTRS,2002-12-24 16:48:00,2003-05-22 04:59:00,NOT COLLATERAL
-161221,14502.153,CCE,SWE,A,12283.4,136,42,AAE,FOLDERR,LTTRS,2002-12-24 17:48:00,2003-05-22 06:59:00,NOT COLLATERAL
-161232,14505.264,CCF,CVF,A,12283.24,134,43,AAF,FOLDERS,LTTRS,2002-12-24 18:48:00,2003-05-22 08:59:00,NOT COLLATERAL
-161243,14508.375,CCG,DSFG,A,12283.08,132,44,BBA,FOLDERX,LTTRS,2002-12-24 19:48:00,2003-05-22 10:59:00,NOT COLLATERAL
-161254,14511.486,CCH,ASDRE,A,12282.92,130,45,BBC,FOLDERR,LTTRS,2002-12-24 20:48:00,2003-05-22 12:59:00,NOT COLLATERAL
-161265,14514.597,CCI,HJKSS,A,12282.76,128,46,BBE,FOLDERS,LTTRS,2002-12-24 21:48:00,2003-05-22 14:59:00,NOT COLLATERAL
-161276,14517.708,CCJ,KHAA,A,12282.6,126,47,BBF,FOLDERX,LTTRS,2002-12-24 22:48:00,2003-05-22 16:59:00,NOT COLLATERAL
-161287,14520.819,DDD,KSLD,A,12282.44,124,48,BBG,FOLDERR,LTTRS,2002-12-24 23:48:00,2003-05-22 18:59:00,NOT COLLATERAL
-161298,14523.93,DDA,EKID,A,12282.28,122,49,BBH,FOLDERS,LTTRZ,2002-12-25 00:48:00,2003-05-22 20:59:00,COLLATERAL
-161309,14527.041,DAA,VNCD,A,12282.12,120,48,CCA,FOLDERX,LTTRA,2002-12-25 01:48:00,2003-05-22 22:59:00,COLLATERAL
-161320,14530.152,DBB,DKD,A,12281.96,118,47,CCB,FOLDERR,LTTRB,2002-12-25 02:48:00,2003-05-23 00:59:00,COLLATERAL
-161331,14533.263,DCC,FKF,A,12281.8,116,46,CCD,FOLDERS,LTTRB,2002-12-25 03:48:00,2003-05-23 02:59:00,NOT COLLATERAL
-161342,14536.374,DEE,LES,A,12281.64,114,45,CCE,FOLDERX,LTTRA,2002-12-25 04:48:00,2003-05-23 04:59:00,NULL
-161353,14539.485,DFF,KLD,A,12281.48,112,44,CCF,FOLDERD,LTTRA,2002-12-25 05:48:00,2003-05-23 06:59:00,NULL
-161364,14542.596,DGG,SKL,A,12281.32,110,43,CCG,FOLDERE,LTTRS,2002-12-25 06:48:00,2003-05-23 08:59:00,NULL
-161375,14545.707,DHH,SIW,A,12281.16,108,42,CCH,FOLDERF,LTTRZ,2002-12-25 07:48:00,2003-05-23 10:59:00,NULL
-161386,14548.818,AAA,CKA,A,12281,106,41,CCI,FOLDERG,LTTRS,2002-12-25 08:48:00,2003-05-23 12:59:00,NULL
-161397,14551.929,BBB,LDE,A,12280.84,104,40,CCJ,FOLDERH,LTTRS,2002-12-25 09:48:00,2003-05-23 14:59:00,NOT COLLATERAL
-161408,14555.04,CCC,KFF,A,12280.68,102,39,DDD,FOLDERI,LTTRS,2002-12-25 10:48:00,2003-05-23 16:59:00,NOT COLLATERAL
-161419,14558.151,DDD,EFH,A,12280.52,100,38,DDA,FOLDERJ,LTTRS,2002-12-25 11:48:00,2003-05-23 18:59:00,NOT COLLATERAL
-161430,14561.262,AAB,NGC,A,12280.36,98,37,DAA,FOLDERK,LTTRS,2002-12-25 12:48:00,2003-05-23 20:59:00,COLLATERAL
-161441,14564.373,AAC,DER,A,12280.2,96,36,FKF,FOLDERL,LTTRS,2002-12-25 13:48:00,2003-05-23 22:59:00,COLLATERAL
-161452,14567.484,AAD,FVG,A,12280.04,94,35,LES,FOLDERM,LTTRS,2002-12-25 14:48:00,2003-05-24 00:59:00,COLLATERAL
-161463,14570.595,AAE,KWE,A,12279.88,92,34,KLD,FOLDERN,LTTRS,2002-12-25 15:48:00,2003-05-24 02:59:00,NOT COLLATERAL
-161474,14573.706,AAF,WER,A,12279.72,90,33,SKL,FOLDERN,LTTRS,2002-12-25 16:48:00,2003-05-24 04:59:00,NULL
-161485,14576.817,BBA,GFH,A,12279.56,88,32,SIW,FOLDERN,LTTRS,2002-12-25 17:48:00,2003-05-24 06:59:00,NULL
-161496,14579.928,BBC,BGF,A,12279.4,86,31,CKA,FOLDERN,LTTRS,2002-12-25 18:48:00,2003-05-24 08:59:00,NULL
-161507,14583.039,BBE,XCS,A,12279.24,84,30,LDE,FOLDERL,LTTRS,2002-12-25 19:48:00,2003-05-24 10:59:00,NULL
-161518,14586.15,BBF,JHK,A,12279.08,82,29,KFF,FOLDERL,LTTRS,2002-12-25 20:48:00,2003-05-24 12:59:00,NULL
-161529,14589.261,BBG,SFD,A,12278.92,82,28,EFH,FOLDERL,LTTRS,2002-12-25 21:48:00,2003-05-24 14:59:00,NULL
-161540,14592.372,BBH,WRE,A,12278.76,82,27,NGC,FOLDERL,LTTRZ,2002-12-25 22:48:00,2003-05-24 16:59:00,NULL
-161551,14595.483,CCA,HGV,A,12278.6,82,26,DER,FOLDERL,LTTRA,2002-12-25 23:48:00,2003-05-24 18:59:00,NULL
-161562,14598.594,CCB,KLS,A,12278.44,82,25,FVG,FOLDERA,LTTRB,2002-12-26 00:48:00,2003-05-24 20:59:00,COLLATERAL
-161573,14601.705,CCD,SDK,A,12278.28,82,24,KWE,FOLDERB,LTTRB,2002-12-26 01:48:00,2003-05-24 22:59:00,COLLATERAL
-161584,14604.816,CCE,MNV,A,12278.12,82,23,WER,FOLDERC,LTTRA,2002-12-26 02:48:00,2003-05-25 00:59:00,COLLATERAL
-161595,14607.927,CCF,OKW,A,12277.96,82,22,GFH,FOLDERD,LTTRA,2002-12-26 03:48:00,2003-05-25 02:59:00,NOT COLLATERAL
-161606,14611.038,CCG,ASS,A,12277.8,82,21,BGF,FOLDERE,LTTRS,2002-12-26 04:48:00,2003-05-25 04:59:00,NOT COLLATERAL
-161617,14614.149,CCH,CKA,A,12277.64,82,20,XCS,FOLDERF,LTTRZ,2002-12-26 05:48:00,2003-05-25 06:59:00,NOT COLLATERAL
-161628,14617.26,CCI,SWQ,A,12277.48,82,19,JHK,FOLDERG,LTTRS,2002-12-26 06:48:00,2003-05-25 08:59:00,NULL
-161639,14620.371,CCJ,KUH,A,12277.32,82,18,SFD,FOLDERH,LTTRS,2002-12-26 07:48:00,2003-05-25 10:59:00,NULL
-161650,14623.482,DDD,XCV,A,12277.16,82,17,WRE,FOLDERI,LTTRS,2002-12-26 08:48:00,2003-05-25 12:59:00,NULL
-161661,14626.593,DDA,ZAQ,A,12277,82,16,HGV,FOLDERJ,LTTRS,2002-12-26 09:48:00,2003-05-25 14:59:00,NULL
-161672,14629.704,DAA,MKO,A,12276.84,82,15,KLS,FOLDERK,LTTRS,2002-12-26 10:48:00,2003-05-25 16:59:00,NULL
-161683,14632.815,DBB,VFR,A,12276.68,82,14,SDK,FOLDERL,LTTRS,2002-12-26 11:48:00,2003-05-25 18:59:00,NOT COLLATERAL
-161694,14635.926,DCC,YUJ,A,12276.52,82,13,MNV,FOLDERM,LTTRS,2002-12-26 12:48:00,2003-05-25 20:59:00,COLLATERAL
-161705,14639.037,DEE,MED,A,12276.36,82,12,OKW,FOLDERN,LTTRS,2002-12-26 13:48:00,2003-05-25 22:59:00,COLLATERAL
-161716,14642.148,DFF,SWE,A,12276.2,82,11,ASS,FOLDERO,LTTRS,2002-12-26 14:48:00,2003-05-26 00:59:00,COLLATERAL
-161727,14645.259,DGG,CVF,A,12276.04,82,10,CKA,FOLDERP,LTTRS,2002-12-26 15:48:00,2003-05-26 02:59:00,NOT COLLATERAL
-161738,14648.37,DHH,DSFG,A,12275.88,82,9,SWQ,FOLDERQ,LTTRS,2002-12-26 16:48:00,2003-05-26 04:59:00,NOT COLLATERAL
-161749,14651.481,AAA,ASDRE,A,12275.72,82,8,KUH,FOLDERR,LTTRS,2002-12-26 17:48:00,2003-05-26 06:59:00,NOT COLLATERAL
-161760,14654.592,BBB,HJKSS,A,12275.56,82,7,XCV,FOLDERS,LTTRS,2002-12-26 18:48:00,2003-05-26 08:59:00,NOT COLLATERAL
-161771,14657.703,CCC,KHAA,A,12275.4,82,6,ZAQ,FOLDERT,LTTRS,2002-12-26 19:48:00,2003-05-26 10:59:00,NOT COLLATERAL
-161782,14660.814,DDD,KSLD,A,12275.24,82,5,MKO,FOLDERU,LTTRZ,2002-12-26 20:48:00,2003-05-26 12:59:00,NOT COLLATERAL
-161793,14663.925,AAB,EKID,A,12275.08,82,4,VFR,FOLDERV,LTTRA,2002-12-26 21:48:00,2003-05-26 14:59:00,NOT COLLATERAL
-161804,14667.036,AAC,VNCD,A,12274.92,82,3,YUJ,FOLDERW,LTTRB,2002-12-26 22:48:00,2003-05-26 16:59:00,NOT COLLATERAL
-161815,14670.147,AAD,DKD,A,12274.76,82,1,AAA,FOLDERX,LTTRB,2002-12-26 23:48:00,2003-05-26 18:59:00,NOT COLLATERAL
-161826,14673.258,AAE,FKF,A,12274.6,82,2,BBB,FOLDERY,LTTRA,2002-12-27 00:48:00,2003-05-26 20:59:00,COLLATERAL
-161837,14676.369,AAF,LES,A,12274.44,82,3,CCC,FOLDERZ,LTTRA,2002-12-27 01:48:00,2003-05-26 22:59:00,COLLATERAL
-161848,14679.48,BBA,KLD,A,12274.28,82,4,DDD,FOLDERA,LTTRS,2002-12-27 02:48:00,2003-05-27 00:59:00,COLLATERAL
-161859,14682.591,BBC,SKL,A,12274.12,82,5,AAB,FOLDERB,LTTRZ,2002-12-27 03:48:00,2003-05-27 02:59:00,NOT COLLATERAL
-161870,14685.702,BBE,SIW,A,12273.96,82,6,AAC,FOLDERC,LTTRS,2002-12-27 04:48:00,2003-05-27 04:59:00,NOT COLLATERAL
-161881,14688.813,BBF,CKA,A,12273.8,82,7,AAD,FOLDERD,LTTRS,2002-12-27 05:48:00,2003-05-27 06:59:00,NOT COLLATERAL
-161892,14691.924,BBG,LDE,A,12273.64,82,8,AAE,FOLDERE,LTTRS,2002-12-27 06:48:00,2003-05-27 08:59:00,NOT COLLATERAL
-161903,14695.035,BBH,KFF,A,12273.48,82,9,AAF,FOLDERF,LTTRS,2002-12-27 07:48:00,2003-05-27 10:59:00,NOT COLLATERAL
-161914,14698.146,CCA,EFH,A,12273.32,82,10,BBA,FOLDERG,LTTRS,2002-12-27 08:48:00,2003-05-27 12:59:00,NOT COLLATERAL
-161925,14701.257,CCB,NGC,A,12273.16,82,11,BBC,FOLDERH,LTTRS,2002-12-27 09:48:00,2003-05-27 14:59:00,NOT COLLATERAL
-161936,14704.368,CCD,DER,A,12273,82,12,BBE,FOLDERI,LTTRS,2002-12-27 10:48:00,2003-05-27 16:59:00,NOT COLLATERAL
-161947,14707.479,CCE,FVG,A,12272.84,82,13,BBF,FOLDERJ,LTTRS,2002-12-27 11:48:00,2003-05-27 18:59:00,NOT COLLATERAL
-161958,14710.59,CCF,KWE,A,12272.68,82,14,BBG,FOLDERK,LTTRS,2002-12-27 12:48:00,2003-05-27 20:59:00,COLLATERAL
-161969,14713.701,CCG,WER,A,12272.52,82,15,BBH,FOLDERL,LTTRS,2002-12-27 13:48:00,2003-05-27 22:59:00,COLLATERAL
-161980,14716.812,CCH,GFH,A,12272.36,82,16,CCA,FOLDERM,LTTRS,2002-12-27 14:48:00,2003-05-28 00:59:00,COLLATERAL
-161991,14719.923,CCI,BGF,A,12272.2,82,17,CCB,FOLDERN,LTTRS,2002-12-27 15:48:00,2003-05-28 02:59:00,NOT COLLATERAL
-162002,14723.034,CCJ,XCS,A,12272.04,82,18,CCD,FOLDERO,LTTRS,2002-12-27 16:48:00,2003-05-28 04:59:00,NOT COLLATERAL
-162013,14726.145,DDD,JHK,A,12271.88,82,19,CCE,FOLDERP,LTTRS,2002-12-27 17:48:00,2003-05-28 06:59:00,NOT COLLATERAL
-162024,14729.256,DDA,SFD,A,12271.72,82,20,CCF,FOLDERQ,LTTRZ,2002-12-27 18:48:00,2003-05-28 08:59:00,NOT COLLATERAL
-162035,14732.367,DAA,WRE,A,12271.56,82,21,CCG,FOLDERR,LTTRA,2002-12-27 19:48:00,2003-05-28 10:59:00,NOT COLLATERAL
-162046,14735.478,DBB,HGV,A,12271.4,82,22,CCH,FOLDERS,LTTRB,2002-12-27 20:48:00,2003-05-28 12:59:00,NOT COLLATERAL
-162057,14738.589,DCC,KLS,A,12271.24,82,23,CCI,FOLDERT,LTTRB,2002-12-27 21:48:00,2003-05-28 14:59:00,NOT COLLATERAL
-162068,14741.7,DEE,SDK,A,12271.08,82,24,CCJ,FOLDERU,LTTRA,2002-12-27 22:48:00,2003-05-28 16:59:00,NOT COLLATERAL
-162079,14744.811,DFF,MNV,A,12270.92,82,25,DDD,FOLDERV,LTTRA,2002-12-27 23:48:00,2003-05-28 18:59:00,NOT COLLATERAL
-162090,14747.922,DGG,OKW,A,12270.76,82,26,DDA,FOLDERW,LTTRS,2002-12-28 00:48:00,2003-05-28 20:59:00,COLLATERAL
-162101,14751.033,DHH,ASS,A,12270.6,82,27,DAA,FOLDERX,LTTRZ,2002-12-28 01:48:00,2003-05-28 22:59:00,COLLATERAL
-162112,14754.144,AAA,CKA,A,12270.44,82,28,FKF,FOLDERY,LTTRS,2002-12-28 02:48:00,2003-05-29 00:59:00,COLLATERAL
-162123,14757.255,BBB,SWQ,A,12270.28,82,29,LES,FOLDERZ,LTTRS,2002-12-28 03:48:00,2003-05-29 02:59:00,NOT COLLATERAL
-162134,14760.366,CCC,KUH,A,12270.12,82,30,KLD,FOLDERZ,LTTRS,2002-12-28 04:48:00,2003-05-29 04:59:00,NOT COLLATERAL
-162145,14763.477,DDD,XCV,A,12269.96,82,31,SKL,FOLDERZ,LTTRS,2002-12-28 05:48:00,2003-05-29 06:59:00,NOT COLLATERAL
-162156,14766.588,AAB,ZAQ,A,12269.8,82,32,SIW,FOLDERZ,LTTRS,2002-12-28 06:48:00,2003-05-29 08:59:00,NOT COLLATERAL
-162167,14769.699,AAC,MKO,A,12269.64,82,33,CKA,FOLDERZ,LTTRS,2002-12-28 07:48:00,2003-05-29 10:59:00,NOT COLLATERAL
-162178,14772.81,AAD,VFR,A,12269.48,82,34,LDE,FOLDERZ,LTTRS,2002-12-28 08:48:00,2003-05-29 12:59:00,NOT COLLATERAL
-162189,14775.921,AAE,YUJ,A,12269.32,82,35,KFF,FOLDERZ,LTTRS,2002-12-28 09:48:00,2003-05-29 14:59:00,NOT COLLATERAL
-162200,14779.032,AAF,MED,A,12269.16,82,36,EFH,FOLDERZ,LTTRS,2002-12-28 10:48:00,2003-05-29 16:59:00,NOT COLLATERAL
-162211,14782.143,BBA,SWE,A,12269,87,37,NGC,FOLDERZ,LTTRS,2002-12-28 11:47:00,2003-05-29 18:59:00,NOT COLLATERAL
-162222,14785.254,BBC,CVF,A,12268.84,92,38,DER,FOLDERZ,LTTRS,2002-12-28 12:47:00,2003-05-29 20:59:00,COLLATERAL
-162233,14788.365,BBE,DSFG,A,12268.68,97,39,FVG,FOLDERZ,LTTRS,2002-12-28 13:47:00,2003-05-29 22:59:00,COLLATERAL
-162244,14791.476,BBF,ASDRE,A,12268.52,102,40,KWE,FOLDERZ,LTTRS,2002-12-28 14:47:00,2003-05-30 00:59:00,COLLATERAL
-162255,14794.587,BBG,HJKSS,A,12268.36,107,41,WER,FOLDERZ,LTTRS,2002-12-28 15:47:00,2003-05-30 02:59:00,NOT COLLATERAL
-162266,14797.698,BBH,KHAA,A,12268.2,112,42,GFH,FOLDERZ,LTTRZ,2002-12-28 16:47:00,2003-05-30 04:59:00,NOT COLLATERAL
-162277,14800.809,CCA,KSLD,A,12268.04,117,43,BGF,FOLDERX,LTTRA,2002-12-28 17:47:00,2003-05-30 06:59:00,NOT COLLATERAL
-162288,14803.92,CCB,EKID,A,12267.88,122,44,XCS,FOLDERX,LTTRB,2002-12-28 18:47:00,2003-05-30 08:59:00,NOT COLLATERAL
-162299,14807.031,CCD,VNCD,A,12267.72,127,45,JHK,FOLDERX,LTTRB,2002-12-28 19:47:00,2003-05-30 10:59:00,NOT COLLATERAL
-162310,14810.142,CCE,DKD,A,12267.56,132,46,SFD,FOLDERX,LTTRA,2002-12-28 20:47:00,2003-05-30 12:59:00,NOT COLLATERAL
-162321,14813.253,CCF,FKF,A,12267.4,137,47,WRE,FOLDERX,LTTRA,2002-12-28 21:47:00,2003-05-30 14:59:00,NOT COLLATERAL
-162332,14816.364,CCG,LES,A,12267.24,142,48,HGV,FOLDERX,LTTRS,2002-12-28 22:47:00,2003-05-30 16:59:00,NOT COLLATERAL
-162343,14819.475,CCH,KLD,A,12267.08,147,49,KLS,FOLDERX,LTTRZ,2002-12-28 23:47:00,2003-05-30 18:59:00,NOT COLLATERAL
-162354,14822.586,CCI,SKL,A,12266.92,152,48,SDK,FOLDERX,LTTRS,2002-12-29 00:47:00,2003-05-30 20:59:00,COLLATERAL
-162365,14825.697,CCJ,SIW,A,12266.76,157,47,MNV,FOLDERX,LTTRS,2002-12-29 01:47:00,2003-05-30 22:59:00,COLLATERAL
-162376,14828.808,DDD,CKA,A,12266.6,162,46,OKW,FOLDERX,LTTRS,2002-12-29 02:47:00,2003-05-31 00:59:00,COLLATERAL
-162387,14831.919,DDA,LDE,A,12266.44,167,45,ASS,FOLDERX,LTTRS,2002-12-29 03:47:00,2003-05-31 02:59:00,NOT COLLATERAL
-162398,14835.03,DAA,KFF,A,12266.28,172,44,CKA,FOLDERX,LTTRS,2002-12-29 04:47:00,2003-05-31 04:59:00,NOT COLLATERAL
-162409,14838.141,DBB,EFH,A,12266.12,177,43,SWQ,FOLDERR,LTTRS,2002-12-29 05:47:00,2003-05-31 06:59:00,NOT COLLATERAL
-162420,14841.252,DCC,NGC,A,12265.96,182,42,KUH,FOLDERS,LTTRS,2002-12-29 06:47:00,2003-05-31 08:59:00,NOT COLLATERAL
-162431,14844.363,DEE,DER,A,12265.8,187,41,XCV,FOLDERX,LTTRS,2002-12-29 07:47:00,2003-05-31 10:59:00,NOT COLLATERAL
-162442,14847.474,DFF,FVG,A,12265.64,192,40,ZAQ,FOLDERR,LTTRS,2002-12-29 08:47:00,2003-05-31 12:59:00,NOT COLLATERAL
-162453,14850.585,DGG,KWE,A,12265.48,197,39,MKO,FOLDERS,LTTRS,2002-12-29 09:47:00,2003-05-31 14:59:00,NOT COLLATERAL
-162464,14853.696,DHH,WER,A,12265.32,202,38,VFR,FOLDERX,LTTRS,2002-12-29 10:47:00,2003-05-31 16:59:00,NOT COLLATERAL
-162475,14856.807,AAA,GFH,A,12265.16,207,37,YUJ,FOLDERR,LTTRS,2002-12-29 11:47:00,2003-05-31 18:59:00,NOT COLLATERAL
-162486,14859.918,BBB,BGF,A,12265,212,36,AAA,FOLDERS,LTTRS,2002-12-29 12:47:00,2003-05-31 20:59:00,COLLATERAL
-162497,14863.029,CCC,XCS,A,12264.84,217,35,BBB,FOLDERX,LTTRS,2002-12-29 13:47:00,2003-05-31 22:59:00,COLLATERAL
-162508,14866.14,DDD,JHK,A,12264.68,222,34,CCC,FOLDERR,LTTRZ,2002-12-29 14:47:00,2003-06-01 00:59:00,COLLATERAL
-162519,14869.251,AAB,SFD,A,12264.52,227,33,DDD,FOLDERS,LTTRA,2002-12-29 15:47:00,2003-06-01 02:59:00,NOT COLLATERAL
-162530,14872.362,AAC,WRE,A,12264.36,232,32,AAB,FOLDERX,LTTRB,2002-12-29 16:47:00,2003-06-01 04:59:00,NOT COLLATERAL
-162541,14875.473,AAD,HGV,A,12264.2,237,31,AAC,FOLDERR,LTTRB,2002-12-29 17:47:00,2003-06-01 06:59:00,NOT COLLATERAL
-162552,14878.584,AAE,KLS,A,12264.04,242,30,AAD,FOLDERS,LTTRA,2002-12-29 18:47:00,2003-06-01 08:59:00,NOT COLLATERAL
-162563,14881.695,AAF,SDK,A,12263.88,247,29,AAE,FOLDERX,LTTRA,2002-12-29 19:47:00,2003-06-01 10:59:00,NOT COLLATERAL
-162574,14884.806,BBA,MNV,A,12263.72,252,28,AAF,FOLDERD,LTTRS,2002-12-29 20:47:00,2003-06-01 12:59:00,NOT COLLATERAL
-162585,14887.917,BBC,OKW,A,12263.56,257,27,BBA,FOLDERE,LTTRZ,2002-12-29 21:47:00,2003-06-01 14:59:00,NOT COLLATERAL
-162596,14891.028,BBE,ASS,A,12263.4,262,26,BBC,FOLDERF,LTTRS,2002-12-29 22:47:00,2003-06-01 16:59:00,NOT COLLATERAL
-162607,14894.139,BBF,CKA,A,12263.24,267,25,BBE,FOLDERG,LTTRS,2002-12-29 23:47:00,2003-06-01 18:59:00,NOT COLLATERAL
-162618,14897.25,BBG,SWQ,A,12263.08,272,24,BBF,FOLDERH,LTTRS,2002-12-30 00:47:00,2003-06-01 20:59:00,COLLATERAL
-162629,14900.361,BBH,KUH,A,12262.92,277,23,BBG,FOLDERI,LTTRS,2002-12-30 01:47:00,2003-06-01 22:59:00,COLLATERAL
-162640,14903.472,CCA,XCV,A,12262.76,282,22,BBH,FOLDERJ,LTTRS,2002-12-30 02:47:00,2003-06-02 00:59:00,COLLATERAL
-162651,14906.583,CCB,ZAQ,A,12262.6,287,21,CCA,FOLDERK,LTTRS,2002-12-30 03:47:00,2003-06-02 02:59:00,NOT COLLATERAL
-162662,14909.694,CCD,MKO,A,12262.44,292,20,CCB,FOLDERL,LTTRS,2002-12-30 04:47:00,2003-06-02 04:59:00,NOT COLLATERAL
-162673,14912.805,CCE,VFR,A,12262.28,297,19,CCD,FOLDERM,LTTRS,2002-12-30 05:47:00,2003-06-02 06:59:00,NOT COLLATERAL
-162684,14915.916,CCF,YUJ,A,12262.12,302,18,CCE,FOLDERN,LTTRS,2002-12-30 06:47:00,2003-06-02 08:59:00,NOT COLLATERAL
-162695,14919.027,CCG,MED,A,12261.96,307,17,CCF,FOLDERN,LTTRS,2002-12-30 07:47:00,2003-06-02 10:59:00,NOT COLLATERAL
-162706,14922.138,CCH,SWE,A,12261.8,312,16,CCG,FOLDERN,LTTRS,2002-12-30 08:47:00,2003-06-02 12:59:00,NOT COLLATERAL
-162717,14925.249,CCI,CVF,A,12261.64,317,15,CCH,FOLDERN,LTTRS,2002-12-30 09:47:00,2003-06-02 14:59:00,NOT COLLATERAL
-162728,14928.36,CCJ,DSFG,A,12261.48,322,14,CCI,FOLDERL,LTTRS,2002-12-30 10:47:00,2003-06-02 16:59:00,NOT COLLATERAL
-162739,14931.471,DDD,ASDRE,A,12261.32,327,13,CCJ,FOLDERL,LTTRS,2002-12-30 11:47:00,2003-06-02 18:59:00,NOT COLLATERAL
-162750,14934.582,DDA,HJKSS,A,12261.16,332,12,DDD,FOLDERL,LTTRZ,2002-12-30 12:47:00,2003-06-02 20:59:00,COLLATERAL
-162761,14937.693,DAA,KHAA,A,12261,337,11,DDA,FOLDERL,LTTRA,2002-12-30 13:47:00,2003-06-02 22:59:00,COLLATERAL
-162772,14940.804,DBB,KSLD,A,12260.84,342,10,DAA,FOLDERL,LTTRB,2002-12-30 14:47:00,2003-06-03 00:59:00,COLLATERAL
-162783,14943.915,DCC,EKID,A,12260.68,347,9,FKF,FOLDERA,LTTRB,2002-12-30 15:47:00,2003-06-03 02:59:00,NOT COLLATERAL
-162794,14947.026,DEE,VNCD,A,12260.52,352,8,LES,FOLDERB,LTTRA,2002-12-30 16:47:00,2003-06-03 04:59:00,NOT COLLATERAL
-162805,14950.137,DFF,DKD,A,12260.36,357,7,KLD,FOLDERC,LTTRA,2002-12-30 17:47:00,2003-06-03 06:59:00,NOT COLLATERAL
-162816,14953.248,DGG,FKF,A,12260.2,362,6,SKL,FOLDERD,LTTRS,2002-12-30 18:47:00,2003-06-03 08:59:00,NOT COLLATERAL
-162827,14956.359,DHH,LES,A,12260.04,367,5,SIW,FOLDERE,LTTRZ,2002-12-30 19:47:00,2003-06-03 10:59:00,NOT COLLATERAL
-162838,14959.47,AAA,KLD,A,12259.88,372,4,CKA,FOLDERF,LTTRS,2002-12-30 20:47:00,2003-06-03 12:59:00,NOT COLLATERAL
-162849,14962.581,BBB,SKL,A,12259.72,377,3,LDE,FOLDERG,LTTRS,2002-12-30 21:47:00,2003-06-03 14:59:00,NOT COLLATERAL
-162860,14965.692,CCC,SIW,A,12259.56,382,1,KFF,FOLDERH,LTTRS,2002-12-30 22:47:00,2003-06-03 16:59:00,NOT COLLATERAL
-162871,14968.803,DDD,CKA,A,12259.4,387,2,EFH,FOLDERI,LTTRS,2002-12-30 23:47:00,2003-06-03 18:59:00,NOT COLLATERAL
-162882,14971.914,AAB,LDE,A,12259.24,392,3,NGC,FOLDERJ,LTTRS,2002-12-31 00:47:00,2003-06-03 20:59:00,COLLATERAL
-162893,14975.025,AAC,KFF,A,12259.08,397,4,DER,FOLDERK,LTTRS,2002-12-31 01:47:00,2003-06-03 22:59:00,COLLATERAL
-162904,14978.136,AAD,EFH,A,12258.92,402,5,FVG,FOLDERL,LTTRS,2002-12-31 02:47:00,2003-06-04 00:59:00,COLLATERAL
-162915,14981.247,AAE,NGC,A,12258.76,407,6,KWE,FOLDERM,LTTRS,2002-12-31 03:47:00,2003-06-04 02:59:00,NOT COLLATERAL
-162926,14984.358,AAF,DER,A,12258.6,412,7,WER,FOLDERN,LTTRS,2002-12-31 04:47:00,2003-06-04 04:59:00,NOT COLLATERAL
-162937,14987.469,BBA,FVG,A,12258.44,417,8,GFH,FOLDERO,LTTRS,2002-12-31 05:47:00,2003-06-04 06:59:00,NOT COLLATERAL
-162948,14990.58,BBC,KWE,A,12258.28,422,9,BGF,FOLDERP,LTTRS,2002-12-31 06:47:00,2003-06-04 08:59:00,NOT COLLATERAL
-162959,14993.691,BBE,WER,A,12258.12,427,10,XCS,FOLDERQ,LTTRS,2002-12-31 07:47:00,2003-06-04 10:59:00,NOT COLLATERAL
-162970,14996.802,BBF,GFH,A,12257.96,432,11,JHK,FOLDERR,LTTRS,2002-12-31 08:47:00,2003-06-04 12:59:00,NOT COLLATERAL
-162981,14999.913,BBG,BGF,A,12257.8,437,12,SFD,FOLDERS,LTTRS,2002-12-31 09:47:00,2003-06-04 14:59:00,NOT COLLATERAL
-162992,15003.024,BBH,XCS,A,12257.64,442,13,WRE,FOLDERT,LTTRZ,2002-12-31 10:47:00,2003-06-04 16:59:00,NOT COLLATERAL
-163003,15006.135,CCA,JHK,A,12257.48,447,14,HGV,FOLDERU,LTTRA,2002-12-31 11:47:00,2003-06-04 18:59:00,NOT COLLATERAL
-163014,15009.246,CCB,SFD,A,12257.32,452,15,KLS,FOLDERV,LTTRB,2002-12-31 12:47:00,2003-06-04 20:59:00,COLLATERAL
-163025,15012.357,CCD,WRE,A,12257.16,457,16,SDK,FOLDERW,LTTRB,2002-12-31 13:47:00,2003-06-04 22:59:00,COLLATERAL
-163036,15015.468,CCE,HGV,A,12257,462,17,MNV,FOLDERX,LTTRA,2002-12-31 14:47:00,2003-06-05 00:59:00,COLLATERAL
-163047,15018.579,CCF,KLS,A,12256.84,467,18,OKW,FOLDERY,LTTRA,2002-12-31 15:47:00,2003-06-05 02:59:00,NOT COLLATERAL
-163058,15021.69,CCG,SDK,A,12256.68,472,19,ASS,FOLDERZ,LTTRS,2002-12-31 16:47:00,2003-06-05 04:59:00,NOT COLLATERAL
-163069,15024.801,CCH,MNV,A,12256.52,477,20,CKA,FOLDERA,LTTRZ,2002-12-31 17:47:00,2003-06-05 06:59:00,NOT COLLATERAL
-163080,15027.912,CCI,OKW,A,12256.36,482,21,SWQ,FOLDERB,LTTRS,2002-12-31 18:47:00,2003-06-05 08:59:00,NOT COLLATERAL
-163091,15031.023,CCJ,ASS,A,12256.2,487,22,KUH,FOLDERC,LTTRS,2002-12-31 19:47:00,2003-06-05 10:59:00,NOT COLLATERAL
-163102,15034.134,DDD,CKA,A,12256.04,492,23,XCV,FOLDERD,LTTRS,2002-12-31 20:47:00,2003-06-05 12:59:00,NOT COLLATERAL
-163113,15037.245,DDA,SWQ,A,12255.88,497,24,ZAQ,FOLDERE,LTTRS,2002-12-31 21:47:00,2003-06-05 14:59:00,NOT COLLATERAL
-163124,15040.356,DAA,KUH,A,12255.72,502,25,MKO,FOLDERF,LTTRS,2002-12-31 22:47:00,2003-06-05 16:59:00,NOT COLLATERAL
-163135,15043.467,DBB,XCV,A,12255.56,507,26,VFR,FOLDERG,LTTRS,2002-12-31 23:47:00,2003-06-05 18:59:00,NOT COLLATERAL
-163146,15046.578,DCC,ZAQ,A,12255.4,507,27,YUJ,FOLDERH,LTTRS,2003-01-01 00:47:00,2003-06-05 20:59:00,COLLATERAL
-163157,15049.689,DEE,MKO,A,12255.24,507,28,AAA,FOLDERI,LTTRS,2003-01-01 01:47:00,2003-06-05 22:59:00,COLLATERAL
-163168,15052.8,DFF,VFR,A,12255.08,507,29,BBB,FOLDERJ,LTTRS,2003-01-01 02:47:00,2003-06-06 00:59:00,COLLATERAL
-163179,15055.911,DGG,YUJ,A,12254.92,507,30,CCC,FOLDERK,LTTRS,2003-01-01 03:47:00,2003-06-06 02:59:00,NOT COLLATERAL
-163190,15059.022,DHH,MED,A,12254.76,507,31,DDD,FOLDERL,LTTRS,2003-01-01 04:47:00,2003-06-06 04:59:00,NOT COLLATERAL
-163201,15062.133,AAA,SWE,A,12254.6,507,32,AAB,FOLDERM,LTTRS,2003-01-01 05:47:00,2003-06-06 06:59:00,NOT COLLATERAL
-163212,15065.244,BBB,CVF,A,12254.44,507,33,AAC,FOLDERN,LTTRS,2003-01-01 06:47:00,2003-06-06 08:59:00,NOT COLLATERAL
-163223,15068.355,CCC,DSFG,A,12254.28,507,34,AAD,FOLDERO,LTTRS,2003-01-01 07:47:00,2003-06-06 10:59:00,NOT COLLATERAL
-163234,15071.466,DDD,ASDRE,A,12254.12,507,35,AAE,FOLDERP,LTTRZ,2003-01-01 08:47:00,2003-06-06 12:59:00,NOT COLLATERAL
-163245,15074.577,AAB,HJKSS,A,12253.96,507,36,AAF,FOLDERQ,LTTRA,2003-01-01 09:47:00,2003-06-06 14:59:00,NOT COLLATERAL
-163256,15077.688,AAC,KHAA,A,12253.8,507,37,BBA,FOLDERR,LTTRB,2003-01-01 10:47:00,2003-06-06 16:59:00,NOT COLLATERAL
-163267,15080.799,AAD,KSLD,A,12253.64,507,38,BBC,FOLDERS,LTTRB,2003-01-01 11:47:00,2003-06-06 18:59:00,NOT COLLATERAL
-163278,15083.91,AAE,EKID,A,12253.48,507,39,BBE,FOLDERT,LTTRA,2003-01-01 12:47:00,2003-06-06 20:59:00,COLLATERAL
-163289,15087.021,AAF,VNCD,A,12253.32,507,40,BBF,FOLDERU,LTTRA,2003-01-01 13:47:00,2003-06-06 22:59:00,COLLATERAL
-163300,15090.132,BBA,DKD,A,12253.16,507,41,BBG,FOLDERV,LTTRS,2003-01-01 14:47:00,2003-06-07 00:59:00,COLLATERAL
-163311,15093.243,BBC,FKF,A,12253,507,42,BBH,FOLDERW,LTTRZ,2003-01-01 15:47:00,2003-06-07 02:59:00,NOT COLLATERAL
-163322,15096.354,BBE,LES,A,12252.84,507,43,CCA,FOLDERX,LTTRS,2003-01-01 16:47:00,2003-06-07 04:59:00,NOT COLLATERAL
-163333,15099.465,BBF,KLD,A,12252.68,507,44,CCB,FOLDERY,LTTRS,2003-01-01 17:47:00,2003-06-07 06:59:00,NOT COLLATERAL
-163344,15102.576,BBG,SKL,A,12252.52,507,45,CCD,FOLDERZ,LTTRS,2003-01-01 18:47:00,2003-06-07 08:59:00,NOT COLLATERAL
-163355,15105.687,BBH,SIW,A,12252.36,507,46,CCE,FOLDERZ,LTTRS,2003-01-01 19:47:00,2003-06-07 10:59:00,NOT COLLATERAL
-163366,15108.798,CCA,CKA,A,12252.2,507,47,CCF,FOLDERZ,LTTRS,2003-01-01 20:47:00,2003-06-07 12:59:00,NOT COLLATERAL
-163377,15111.909,CCB,LDE,A,12252.04,507,48,CCG,FOLDERZ,LTTRS,2003-01-01 21:47:00,2003-06-07 14:59:00,NOT COLLATERAL
-163388,15115.02,CCD,KFF,A,12251.88,507,49,CCH,FOLDERZ,LTTRS,2003-01-01 22:47:00,2003-06-07 16:59:00,NOT COLLATERAL
-163399,15118.131,CCE,EFH,A,12251.72,507,48,CCI,FOLDERZ,LTTRS,2003-01-01 23:47:00,2003-06-07 18:59:00,NOT COLLATERAL
-163410,15121.242,CCF,NGC,A,12251.56,507,47,CCJ,FOLDERZ,LTTRS,2003-01-02 00:47:00,2003-06-07 20:59:00,COLLATERAL
-163421,15124.353,CCG,DER,A,12251.4,507,46,DDD,FOLDERZ,LTTRS,2003-01-02 01:47:00,2003-06-07 22:59:00,COLLATERAL
-163432,15127.464,CCH,FVG,A,12251.24,507,45,DDA,FOLDERZ,LTTRS,2003-01-02 02:47:00,2003-06-08 00:59:00,COLLATERAL
-163443,15130.575,CCI,KWE,A,12251.08,507,44,DAA,FOLDERZ,LTTRS,2003-01-02 03:47:00,2003-06-08 02:59:00,NOT COLLATERAL
-163454,15133.686,CCJ,WER,A,12250.92,507,43,FKF,FOLDERZ,LTTRS,2003-01-02 04:47:00,2003-06-08 04:59:00,NOT COLLATERAL
-163465,15136.797,DDD,GFH,A,12250.76,507,42,LES,FOLDERZ,LTTRS,2003-01-02 05:47:00,2003-06-08 06:59:00,NOT COLLATERAL
-163476,15139.908,DDA,BGF,A,12250.6,507,41,KLD,FOLDERZ,LTTRZ,2003-01-02 06:47:00,2003-06-08 08:59:00,NOT COLLATERAL
-163487,15143.019,DAA,XCS,A,12250.44,507,40,SKL,FOLDERZ,LTTRA,2003-01-02 07:47:00,2003-06-08 10:59:00,NOT COLLATERAL
-163498,15146.13,DBB,JHK,A,12250.28,507,39,SIW,FOLDERX,LTTRB,2003-01-02 08:47:00,2003-06-08 12:59:00,NOT COLLATERAL
-163509,15149.241,DCC,SFD,A,12250.12,507,38,CKA,FOLDERX,LTTRB,2003-01-02 09:47:00,2003-06-08 14:59:00,NOT COLLATERAL
-163520,15152.352,DEE,WRE,A,12249.96,507,37,LDE,FOLDERX,LTTRA,2003-01-02 10:47:00,2003-06-08 16:59:00,NOT COLLATERAL
-163531,15155.463,DFF,HGV,A,12249.8,507,36,KFF,FOLDERX,LTTRA,2003-01-02 11:47:00,2003-06-08 18:59:00,NOT COLLATERAL
-163542,15158.574,DGG,KLS,A,12249.64,507,35,EFH,FOLDERX,LTTRS,2003-01-02 12:47:00,2003-06-08 20:59:00,COLLATERAL
-163553,15161.685,DHH,SDK,A,12249.48,507,34,NGC,FOLDERX,LTTRZ,2003-01-02 13:47:00,2003-06-08 22:59:00,COLLATERAL
-163564,15164.796,AAA,MNV,A,12249.32,507,33,DER,FOLDERX,LTTRS,2003-01-02 14:47:00,2003-06-09 00:59:00,COLLATERAL
-163575,15167.907,BBB,OKW,A,12249.16,507,32,FVG,FOLDERX,LTTRS,2003-01-02 15:47:00,2003-06-09 02:59:00,NOT COLLATERAL
-163586,15171.018,CCC,ASS,A,12249,507,31,KWE,FOLDERX,LTTRS,2003-01-02 16:47:00,2003-06-09 04:59:00,NOT COLLATERAL
-163597,15174.129,DDD,CKA,A,12248.84,507,30,WER,FOLDERX,LTTRS,2003-01-02 17:47:00,2003-06-09 06:59:00,NOT COLLATERAL
-163608,15177.24,AAB,SWQ,A,12248.68,507,29,GFH,FOLDERX,LTTRS,2003-01-02 18:47:00,2003-06-09 08:59:00,NOT COLLATERAL
-163619,15180.351,AAC,KUH,A,12248.52,507,28,BGF,FOLDERX,LTTRS,2003-01-02 19:47:00,2003-06-09 10:59:00,NOT COLLATERAL
-163630,15183.462,AAD,XCV,A,12248.36,507,27,XCS,FOLDERR,LTTRS,2003-01-02 20:47:00,2003-06-09 12:59:00,NOT COLLATERAL
-163641,15186.573,AAE,ZAQ,A,12248.2,507,26,JHK,FOLDERS,LTTRS,2003-01-02 21:47:00,2003-06-09 14:59:00,NOT COLLATERAL
-163652,15189.684,AAF,MKO,A,12248.04,507,25,SFD,FOLDERX,LTTRS,2003-01-02 22:47:00,2003-06-09 16:59:00,NOT COLLATERAL
-163663,15192.795,BBA,VFR,A,12247.88,507,24,WRE,FOLDERR,LTTRS,2003-01-02 23:47:00,2003-06-09 18:59:00,NOT COLLATERAL
-163674,15195.906,BBC,YUJ,A,12247.72,507,23,HGV,FOLDERS,LTTRS,2003-01-03 00:47:00,2003-06-09 20:59:00,COLLATERAL
-163685,15199.017,BBE,MED,A,12247.56,507,22,KLS,FOLDERX,LTTRS,2003-01-03 01:47:00,2003-06-09 22:59:00,COLLATERAL
-163696,15202.128,BBF,SWE,A,12247.4,507,21,SDK,FOLDERR,LTTRS,2003-01-03 02:47:00,2003-06-10 00:59:00,COLLATERAL
-163707,15205.239,BBG,CVF,A,12247.24,507,20,MNV,FOLDERS,LTTRS,2003-01-03 03:47:00,2003-06-10 02:59:00,NOT COLLATERAL
-163718,15208.35,BBH,DSFG,A,12247.08,507,19,OKW,FOLDERX,LTTRZ,2003-01-03 04:47:00,2003-06-10 04:59:00,NOT COLLATERAL
-163729,15211.461,CCA,ASDRE,A,12246.92,507,18,ASS,FOLDERR,LTTRA,2003-01-03 05:47:00,2003-06-10 06:59:00,NOT COLLATERAL
-163740,15214.572,CCB,HJKSS,A,12246.76,507,17,CKA,FOLDERS,LTTRB,2003-01-03 06:47:00,2003-06-10 08:59:00,NOT COLLATERAL
-163751,15217.683,CCD,KHAA,A,12246.6,507,16,SWQ,FOLDERX,LTTRB,2003-01-03 07:47:00,2003-06-10 10:59:00,NOT COLLATERAL
-163762,15220.794,CCE,KSLD,A,12246.44,507,15,KUH,FOLDERR,LTTRA,2003-01-03 08:47:00,2003-06-10 12:59:00,NOT COLLATERAL
-163773,15223.905,CCF,EKID,A,12246.28,507,14,XCV,FOLDERS,LTTRA,2003-01-03 09:47:00,2003-06-10 14:59:00,NOT COLLATERAL
-163784,15227.016,CCG,VNCD,A,12246.12,507,13,ZAQ,FOLDERX,LTTRS,2003-01-03 10:47:00,2003-06-10 16:59:00,NOT COLLATERAL
-163795,15230.127,CCH,DKD,A,12245.96,507,12,MKO,FOLDERD,LTTRZ,2003-01-03 11:47:00,2003-06-10 18:59:00,NOT COLLATERAL
-163806,15233.238,CCI,FKF,A,12245.8,507,11,VFR,FOLDERE,LTTRS,2003-01-03 12:47:00,2003-06-10 20:59:00,COLLATERAL
-163817,15236.349,CCJ,LES,A,12245.64,507,10,YUJ,FOLDERF,LTTRS,2003-01-03 13:47:00,2003-06-10 22:59:00,COLLATERAL
-163828,15239.46,DDD,KLD,A,12245.48,507,9,AAA,FOLDERG,LTTRS,2003-01-03 14:47:00,2003-06-11 00:59:00,COLLATERAL
-163839,15242.571,DDA,SKL,A,12245.32,507,8,BBB,FOLDERH,LTTRS,2003-01-03 15:47:00,2003-06-11 02:59:00,NOT COLLATERAL
-163850,15245.682,DAA,SIW,A,12245.16,507,7,CCC,FOLDERI,LTTRS,2003-01-03 16:47:00,2003-06-11 04:59:00,NOT COLLATERAL
-163861,15248.793,DBB,CKA,A,12245,507,6,DDD,FOLDERJ,LTTRS,2003-01-03 17:47:00,2003-06-11 06:59:00,NOT COLLATERAL
-163872,15251.904,DCC,LDE,A,12244.84,507,5,AAB,FOLDERK,LTTRS,2003-01-03 18:47:00,2003-06-11 08:59:00,NOT COLLATERAL
-163883,15255.015,DEE,KFF,A,12244.68,507,4,AAC,FOLDERL,LTTRS,2003-01-03 19:47:00,2003-06-11 10:59:00,NOT COLLATERAL
-163894,15258.126,DFF,EFH,A,12244.52,507,3,AAD,FOLDERM,LTTRS,2003-01-03 20:47:00,2003-06-11 12:59:00,NOT COLLATERAL
-163905,15261.237,DGG,NGC,A,12244.36,507,1,AAE,FOLDERN,LTTRS,2003-01-03 21:47:00,2003-06-11 14:59:00,NOT COLLATERAL
-163916,15264.348,DHH,DER,A,12244.2,507,2,AAF,FOLDERN,LTTRS,2003-01-03 22:47:00,2003-06-11 16:59:00,NOT COLLATERAL
-163927,15267.459,AAA,FVG,A,12244.04,507,3,BBA,FOLDERN,LTTRS,2003-01-03 23:47:00,2003-06-11 18:59:00,NOT COLLATERAL
-163938,15270.57,BBB,KWE,A,12243.88,507,4,BBC,FOLDERN,LTTRS,2003-01-04 00:47:00,2003-06-11 20:59:00,COLLATERAL
-163949,15273.681,CCC,WER,A,12243.72,507,5,BBE,FOLDERL,LTTRS,2003-01-04 01:47:00,2003-06-11 22:59:00,COLLATERAL
-163960,15276.792,DDD,GFH,A,12243.56,507,6,BBF,FOLDERL,LTTRZ,2003-01-04 02:47:00,2003-06-12 00:59:00,COLLATERAL
-163971,15279.903,AAB,BGF,A,12243.4,507,7,BBG,FOLDERL,LTTRA,2003-01-04 03:47:00,2003-06-12 02:59:00,NOT COLLATERAL
-163982,15283.014,AAC,XCS,A,12243.24,507,8,BBH,FOLDERL,LTTRB,2003-01-04 04:47:00,2003-06-12 04:59:00,NOT COLLATERAL
-163993,15286.125,AAD,JHK,A,12243.08,507,9,CCA,FOLDERL,LTTRB,2003-01-04 05:47:00,2003-06-12 06:59:00,NOT COLLATERAL
-164004,15289.236,AAE,SFD,A,12242.92,507,10,CCB,FOLDERA,LTTRA,2003-01-04 06:47:00,2003-06-12 08:59:00,NOT COLLATERAL
-164015,15292.347,AAF,WRE,A,12242.76,507,11,CCD,FOLDERB,LTTRA,2003-01-04 07:47:00,2003-06-12 10:59:00,NOT COLLATERAL
-164026,15295.458,BBA,HGV,A,12242.6,507,12,CCE,FOLDERC,LTTRS,2003-01-04 08:47:00,2003-06-12 12:59:00,NOT COLLATERAL
-164037,15298.569,BBC,KLS,A,12242.44,507,13,CCF,FOLDERD,LTTRZ,2003-01-04 09:47:00,2003-06-12 14:59:00,NOT COLLATERAL
-164048,15301.68,BBE,SDK,A,12242.28,507,14,CCG,FOLDERE,LTTRS,2003-01-04 10:47:00,2003-06-12 16:59:00,NOT COLLATERAL
-164059,15304.791,BBF,MNV,A,12242.12,507,15,CCH,FOLDERF,LTTRS,2003-01-04 11:47:00,2003-06-12 18:59:00,NOT COLLATERAL
-164070,15307.902,BBG,OKW,A,12241.96,507,16,CCI,FOLDERG,LTTRS,2003-01-04 12:47:00,2003-06-12 20:59:00,COLLATERAL
-164081,15311.013,BBH,ASS,A,12241.8,507,17,CCJ,FOLDERH,LTTRS,2003-01-04 13:47:00,2003-06-12 22:59:00,COLLATERAL
-164092,15314.124,CCA,CKA,A,12241.64,507,18,DDD,FOLDERI,LTTRS,2003-01-04 14:47:00,2003-06-13 00:59:00,COLLATERAL
-164103,15317.235,CCB,SWQ,A,12241.48,507,19,DDA,FOLDERJ,LTTRS,2003-01-04 15:47:00,2003-06-13 02:59:00,NOT COLLATERAL
-164114,15320.346,CCD,KUH,A,12241.32,507,20,DAA,FOLDERK,LTTRS,2003-01-04 16:47:00,2003-06-13 04:59:00,NOT COLLATERAL
-164125,15323.457,CCE,XCV,A,12241.16,507,21,FKF,FOLDERL,LTTRS,2003-01-04 17:47:00,2003-06-13 06:59:00,NOT COLLATERAL
-164136,15326.568,CCF,ZAQ,A,12241,507,22,LES,FOLDERM,LTTRS,2003-01-04 18:47:00,2003-06-13 08:59:00,NOT COLLATERAL
-164147,15329.679,CCG,MKO,A,12240.84,507,23,KLD,FOLDERN,LTTRS,2003-01-04 19:47:00,2003-06-13 10:59:00,NOT COLLATERAL
-164158,15332.79,CCH,VFR,A,12240.68,507,24,SKL,FOLDERO,LTTRS,2003-01-04 20:47:00,2003-06-13 12:59:00,NOT COLLATERAL
-164169,15335.901,CCI,YUJ,A,12240.52,507,25,SIW,FOLDERP,LTTRS,2003-01-04 21:47:00,2003-06-13 14:59:00,NOT COLLATERAL
-164180,15339.012,CCJ,MED,A,12240.36,507,26,CKA,FOLDERQ,LTTRS,2003-01-04 22:47:00,2003-06-13 16:59:00,NOT COLLATERAL
-164191,15342.123,DDD,SWE,A,12240.2,507,27,LDE,FOLDERR,LTTRS,2003-01-04 23:47:00,2003-06-13 18:59:00,NOT COLLATERAL
-164202,15345.234,DDA,CVF,A,12240.04,507,28,KFF,FOLDERS,LTTRZ,2003-01-05 00:47:00,2003-06-13 20:59:00,COLLATERAL
-164213,15348.345,DAA,DSFG,A,12239.88,507,29,EFH,FOLDERT,LTTRA,2003-01-05 01:47:00,2003-06-13 22:59:00,COLLATERAL
-164224,15351.456,DBB,ASDRE,A,12239.72,507,30,NGC,FOLDERU,LTTRB,2003-01-05 02:47:00,2003-06-14 00:59:00,COLLATERAL
-164235,15354.567,DCC,HJKSS,A,12239.56,507,31,DER,FOLDERV,LTTRB,2003-01-05 03:47:00,2003-06-14 02:59:00,NOT COLLATERAL
-164246,15357.678,DEE,KHAA,A,12239.4,507,32,FVG,FOLDERW,LTTRA,2003-01-05 04:47:00,2003-06-14 04:59:00,NOT COLLATERAL
-164257,15360.789,DFF,KSLD,A,12239.24,507,33,KWE,FOLDERX,LTTRA,2003-01-05 05:47:00,2003-06-14 06:59:00,NOT COLLATERAL
-164268,15363.9,DGG,EKID,A,12239.08,507,34,WER,FOLDERY,LTTRS,2003-01-05 06:47:00,2003-06-14 08:59:00,NOT COLLATERAL
-164279,15367.011,DHH,VNCD,A,12238.92,507,35,GFH,FOLDERZ,LTTRZ,2003-01-05 07:47:00,2003-06-14 10:59:00,NOT COLLATERAL
-164290,15370.122,AAA,DKD,A,12238.76,507,36,BGF,FOLDERA,LTTRS,2003-01-05 08:47:00,2003-06-14 12:59:00,NOT COLLATERAL
-164301,15373.233,BBB,FKF,A,12238.6,507,37,XCS,FOLDERB,LTTRS,2003-01-05 09:47:00,2003-06-14 14:59:00,NOT COLLATERAL
-164312,15376.344,CCC,LES,A,12238.44,507,38,JHK,FOLDERC,LTTRS,2003-01-05 10:47:00,2003-06-14 16:59:00,NOT COLLATERAL
-164323,15379.455,DDD,KLD,A,12238.28,507,39,SFD,FOLDERD,LTTRS,2003-01-05 11:47:00,2003-06-14 18:59:00,NOT COLLATERAL
-164334,15382.566,AAB,SKL,A,12238.12,507,40,WRE,FOLDERE,LTTRS,2003-01-05 12:47:00,2003-06-14 20:59:00,COLLATERAL
-164345,15385.677,AAC,SIW,A,12237.96,507,41,HGV,FOLDERF,LTTRS,2003-01-05 13:47:00,2003-06-14 22:59:00,COLLATERAL
-164356,15388.788,AAD,CKA,A,12237.8,507,42,KLS,FOLDERG,LTTRS,2003-01-05 14:47:00,2003-06-15 00:59:00,COLLATERAL
-164367,15391.899,AAE,LDE,A,12237.64,507,43,SDK,FOLDERH,LTTRS,2003-01-05 15:47:00,2003-06-15 02:59:00,NOT COLLATERAL
-164378,15395.01,AAF,KFF,A,12237.48,507,44,MNV,FOLDERI,LTTRS,2003-01-05 16:47:00,2003-06-15 04:59:00,NOT COLLATERAL
-164389,15398.121,BBA,EFH,A,12237.32,507,45,OKW,FOLDERJ,LTTRS,2003-01-05 17:47:00,2003-06-15 06:59:00,NOT COLLATERAL
-164400,15401.232,BBC,NGC,A,12237.16,507,46,ASS,FOLDERK,LTTRS,2003-01-05 18:47:00,2003-06-15 08:59:00,NOT COLLATERAL
-164411,15404.343,BBE,DER,A,12237,507,47,CKA,FOLDERL,LTTRS,2003-01-05 19:47:00,2003-06-15 10:59:00,NOT COLLATERAL
-164422,15407.454,BBF,FVG,A,12236.84,507,48,SWQ,FOLDERM,LTTRS,2003-01-05 20:47:00,2003-06-15 12:59:00,NOT COLLATERAL
-164433,15410.565,BBG,KWE,A,12236.68,507,49,KUH,FOLDERN,LTTRS,2003-01-05 21:47:00,2003-06-15 14:59:00,NOT COLLATERAL
-164444,15413.676,BBH,WER,A,12236.52,507,48,XCV,FOLDERO,LTTRZ,2003-01-05 22:46:00,2003-06-15 16:59:00,NOT COLLATERAL
-164455,15416.787,CCA,GFH,A,12236.36,507,47,ZAQ,FOLDERP,LTTRA,2003-01-05 23:46:00,2003-06-15 18:59:00,NOT COLLATERAL
-164466,15419.898,CCB,BGF,A,12236.2,507,46,MKO,FOLDERQ,LTTRB,2003-01-06 00:46:00,2003-06-15 20:59:00,COLLATERAL
-164477,15423.009,CCD,XCS,A,12236.04,507,45,VFR,FOLDERR,LTTRB,2003-01-06 01:46:00,2003-06-15 22:59:00,COLLATERAL
-164488,15426.12,CCE,JHK,A,12235.88,507,44,YUJ,FOLDERS,LTTRA,2003-01-06 02:46:00,2003-06-16 00:59:00,COLLATERAL
-164499,15429.231,CCF,SFD,A,12235.72,507,43,AAA,FOLDERT,LTTRA,2003-01-06 03:46:00,2003-06-16 02:59:00,NOT COLLATERAL
-164510,15432.342,CCG,WRE,A,12235.56,507,42,BBB,FOLDERU,LTTRS,2003-01-06 04:46:00,2003-06-16 04:59:00,NOT COLLATERAL
-164521,15435.453,CCH,HGV,A,12235.4,507,41,CCC,FOLDERV,LTTRZ,2003-01-06 05:46:00,2003-06-16 06:59:00,NOT COLLATERAL
-164532,15438.564,CCI,KLS,A,12235.24,507,40,DDD,FOLDERW,LTTRS,2003-01-06 06:46:00,2003-06-16 08:59:00,NOT COLLATERAL
-164543,15441.675,CCJ,SDK,A,12235.08,507,39,AAB,FOLDERX,LTTRS,2003-01-06 07:46:00,2003-06-16 10:59:00,NOT COLLATERAL
-164554,15444.786,DDD,MNV,A,12234.92,507,38,AAC,FOLDERY,LTTRS,2003-01-06 08:46:00,2003-06-16 12:59:00,NOT COLLATERAL
-164565,15447.897,DDA,OKW,A,12234.76,507,37,AAD,FOLDERZ,LTTRS,2003-01-06 09:46:00,2003-06-16 14:59:00,NOT COLLATERAL
-164576,15451.008,DAA,ASS,A,12234.6,507,36,AAE,FOLDERZ,LTTRS,2003-01-06 10:46:00,2003-06-16 16:59:00,NOT COLLATERAL
-164587,15454.119,DBB,CKA,A,12234.44,507,35,AAF,FOLDERZ,LTTRS,2003-01-06 11:46:00,2003-06-16 18:59:00,NOT COLLATERAL
-164598,15457.23,DCC,SWQ,A,12234.28,507,34,BBA,FOLDERZ,LTTRS,2003-01-06 12:46:00,2003-06-16 20:59:00,COLLATERAL
-164609,15460.341,DEE,KUH,A,12234.12,507,33,BBC,FOLDERZ,LTTRS,2003-01-06 13:46:00,2003-06-16 22:59:00,COLLATERAL
-164620,15463.452,DFF,XCV,A,12233.96,507,32,BBE,FOLDERZ,LTTRS,2003-01-06 14:46:00,2003-06-17 00:59:00,COLLATERAL
-164631,15466.563,DGG,ZAQ,A,12233.8,507,31,BBF,FOLDERZ,LTTRS,2003-01-06 15:46:00,2003-06-17 02:59:00,NOT COLLATERAL
-164642,15469.674,DHH,MKO,A,12233.64,507,30,BBG,FOLDERZ,LTTRS,2003-01-06 16:46:00,2003-06-17 04:59:00,NOT COLLATERAL
-164653,15472.785,AAA,VFR,A,12233.48,507,29,BBH,FOLDERZ,LTTRS,2003-01-06 17:46:00,2003-06-17 06:59:00,NOT COLLATERAL
-164664,15475.896,BBB,YUJ,A,12233.32,507,28,CCA,FOLDERZ,LTTRS,2003-01-06 18:46:00,2003-06-17 08:59:00,NOT COLLATERAL
-164675,15479.007,CCC,MED,A,12233.16,507,27,CCB,FOLDERZ,LTTRS,2003-01-06 19:46:00,2003-06-17 10:59:00,NOT COLLATERAL
-164686,15482.118,DDD,SWE,A,12233,507,26,CCD,FOLDERZ,LTTRZ,2003-01-06 20:46:00,2003-06-17 12:59:00,NOT COLLATERAL
-164697,15485.229,AAB,CVF,A,12232.84,507,25,CCE,FOLDERZ,LTTRA,2003-01-06 21:46:00,2003-06-17 14:59:00,NOT COLLATERAL
-164708,15488.34,AAC,DSFG,A,12232.68,507,24,CCF,FOLDERZ,LTTRB,2003-01-06 22:46:00,2003-06-17 16:59:00,NOT COLLATERAL
-164719,15491.451,AAD,ASDRE,A,12232.52,507,23,CCG,FOLDERX,LTTRB,2003-01-06 23:46:00,2003-06-17 18:59:00,NOT COLLATERAL
-164730,15494.562,AAE,HJKSS,A,12232.36,507,22,CCH,FOLDERX,LTTRA,2003-01-07 00:46:00,2003-06-17 20:59:00,COLLATERAL
-164741,15497.673,AAF,KHAA,A,12232.2,507,21,CCI,FOLDERX,LTTRA,2003-01-07 01:46:00,2003-06-17 22:59:00,COLLATERAL
-164752,15500.784,BBA,KSLD,A,12232.04,507,20,CCJ,FOLDERX,LTTRS,2003-01-07 02:46:00,2003-06-18 00:59:00,COLLATERAL
-164763,15503.895,BBC,EKID,A,12231.88,507,19,DDD,FOLDERX,LTTRZ,2003-01-07 03:46:00,2003-06-18 02:59:00,NOT COLLATERAL
-164774,15507.006,BBE,VNCD,A,12231.72,507,18,DDA,FOLDERX,LTTRS,2003-01-07 04:46:00,2003-06-18 04:59:00,NOT COLLATERAL
-164785,15510.117,BBF,DKD,A,12231.56,507,17,DAA,FOLDERX,LTTRS,2003-01-07 05:46:00,2003-06-18 06:59:00,NOT COLLATERAL
-164796,15513.228,BBG,FKF,A,12231.4,507,16,FKF,FOLDERX,LTTRS,2003-01-07 06:46:00,2003-06-18 08:59:00,NOT COLLATERAL
-164807,15516.339,BBH,LES,A,12231.24,507,15,LES,FOLDERX,LTTRS,2003-01-07 07:46:00,2003-06-18 10:59:00,NOT COLLATERAL
-164818,15519.45,CCA,KLD,A,12231.08,507,14,KLD,FOLDERX,LTTRS,2003-01-07 08:46:00,2003-06-18 12:59:00,NOT COLLATERAL
-164829,15522.561,CCB,SKL,A,12230.92,507,13,SKL,FOLDERX,LTTRS,2003-01-07 09:46:00,2003-06-18 14:59:00,NOT COLLATERAL
-164840,15525.672,CCD,SIW,A,12230.76,507,12,SIW,FOLDERX,LTTRS,2003-01-07 10:46:00,2003-06-18 16:59:00,NOT COLLATERAL
-164851,15528.783,CCE,CKA,A,12230.6,507,11,CKA,FOLDERR,LTTRS,2003-01-07 11:46:00,2003-06-18 18:59:00,NOT COLLATERAL
-164862,15531.894,CCF,LDE,A,12230.44,507,10,LDE,FOLDERS,LTTRS,2003-01-07 12:46:00,2003-06-18 20:59:00,COLLATERAL
-164873,15535.005,CCG,KFF,A,12230.28,507,9,KFF,FOLDERX,LTTRS,2003-01-07 13:46:00,2003-06-18 22:59:00,COLLATERAL
-164884,15538.116,CCH,EFH,A,12230.12,507,8,EFH,FOLDERR,LTTRS,2003-01-07 14:46:00,2003-06-19 00:59:00,COLLATERAL
-164895,15541.227,CCI,NGC,A,12229.96,507,7,NGC,FOLDERS,LTTRS,2003-01-07 15:46:00,2003-06-19 02:59:00,NOT COLLATERAL
-164906,15544.338,CCJ,DER,A,12229.8,507,6,DER,FOLDERX,LTTRS,2003-01-07 16:46:00,2003-06-19 04:59:00,NULL
-164917,15547.449,DDD,FVG,A,12229.64,507,5,FVG,FOLDERR,LTTRS,2003-01-07 17:46:00,2003-06-19 06:59:00,NULL
-164928,15550.56,DDA,KWE,A,12229.48,507,4,KWE,FOLDERS,LTTRZ,2003-01-07 18:46:00,2003-06-19 08:59:00,NULL
-164939,15553.671,DAA,WER,A,12229.32,507,3,WER,FOLDERX,LTTRA,2003-01-07 19:46:00,2003-06-19 10:59:00,NULL
-164950,15556.782,DBB,GFH,A,12229.16,507,1,GFH,FOLDERR,LTTRB,2003-01-07 20:46:00,2003-06-19 12:59:00,NULL
-164961,15559.893,DCC,BGF,A,12229,507,2,BGF,FOLDERS,LTTRB,2003-01-07 21:46:00,2003-06-19 14:59:00,NULL
-164972,15563.004,DEE,XCS,A,12228.84,507,3,XCS,FOLDERX,LTTRA,2003-01-07 22:46:00,2003-06-19 16:59:00,NOT COLLATERAL
-164983,15566.115,DFF,JHK,A,12228.68,507,4,JHK,FOLDERR,LTTRA,2003-01-07 23:46:00,2003-06-19 18:59:00,NOT COLLATERAL
-164994,15569.226,DGG,SFD,A,12228.52,507,5,SFD,FOLDERS,LTTRS,2003-01-08 00:46:00,2003-06-19 20:59:00,COLLATERAL
-165005,15572.337,DHH,WRE,A,12228.36,507,6,WRE,FOLDERX,LTTRZ,2003-01-08 01:46:00,2003-06-19 22:59:00,COLLATERAL
-165016,15575.448,AAA,HGV,A,12228.2,507,7,HGV,FOLDERD,LTTRS,2003-01-08 02:46:00,2003-06-20 00:59:00,COLLATERAL
-165027,15578.559,BBB,KLS,A,12228.04,507,8,KLS,FOLDERE,LTTRS,2003-01-08 03:46:00,2003-06-20 02:59:00,NOT COLLATERAL
-165038,15581.67,CCC,SDK,A,12227.88,507,9,SDK,FOLDERF,LTTRS,2003-01-08 04:46:00,2003-06-20 04:59:00,NULL
-165049,15584.781,DDD,MNV,A,12227.72,507,10,MNV,FOLDERG,LTTRS,2003-01-08 05:46:00,2003-06-20 06:59:00,NULL
-165060,15587.892,AAB,OKW,A,12227.56,507,11,OKW,FOLDERH,LTTRS,2003-01-08 06:46:00,2003-06-20 08:59:00,NULL
-165071,15591.003,AAC,ASS,A,12227.4,507,12,ASS,FOLDERI,LTTRS,2003-01-08 07:46:00,2003-06-20 10:59:00,NULL
-165082,15594.114,AAD,CKA,A,12227.24,507,13,CKA,FOLDERJ,LTTRS,2003-01-08 08:46:00,2003-06-20 12:59:00,NULL
-165093,15597.225,AAE,SWQ,A,12227.08,507,14,SWQ,FOLDERK,LTTRS,2003-01-08 09:46:00,2003-06-20 14:59:00,NOT COLLATERAL
-165104,15600.336,AAF,KUH,A,12226.92,507,15,KUH,FOLDERL,LTTRS,2003-01-08 10:46:00,2003-06-20 16:59:00,NOT COLLATERAL
-165115,15603.447,BBA,XCV,A,12226.76,507,16,XCV,FOLDERM,LTTRS,2003-01-08 11:46:00,2003-06-20 18:59:00,NOT COLLATERAL
-165126,15606.558,BBC,ZAQ,A,12226.6,507,17,ZAQ,FOLDERN,LTTRS,2003-01-08 12:46:00,2003-06-20 20:59:00,COLLATERAL
-165137,15609.669,BBE,MKO,A,12226.44,507,18,MKO,FOLDERN,LTTRS,2003-01-08 13:46:00,2003-06-20 22:59:00,COLLATERAL
-165148,15612.78,BBF,VFR,A,12226.28,507,19,VFR,FOLDERN,LTTRS,2003-01-08 14:46:00,2003-06-21 00:59:00,COLLATERAL
-165159,15615.891,BBG,YUJ,A,12226.12,507,20,YUJ,FOLDERN,LTTRS,2003-01-08 15:46:00,2003-06-21 02:59:00,NULL
-165170,15619.002,BBH,MED,A,12225.96,507,21,AAA,FOLDERL,LTTRZ,2003-01-08 16:46:00,2003-06-21 04:59:00,NULL
-165181,15622.113,CCA,SWE,A,12225.8,507,22,BBB,FOLDERL,LTTRA,2003-01-08 17:46:00,2003-06-21 06:59:00,NULL
-165192,15625.224,CCB,CVF,A,12225.64,507,23,CCC,FOLDERL,LTTRB,2003-01-08 18:46:00,2003-06-21 08:59:00,NULL
-165203,15628.335,CCD,DSFG,A,12225.48,507,24,DDD,FOLDERL,LTTRB,2003-01-08 19:46:00,2003-06-21 10:59:00,NULL
-165214,15631.446,CCE,ASDRE,A,12225.32,507,25,AAB,FOLDERL,LTTRA,2003-01-08 20:46:00,2003-06-21 12:59:00,NOT COLLATERAL
-165225,15634.557,CCF,HJKSS,A,12225.16,507,26,AAC,FOLDERA,LTTRA,2003-01-08 21:46:00,2003-06-21 14:59:00,NOT COLLATERAL
-165236,15637.668,CCG,KHAA,A,12225,507,27,AAD,FOLDERB,LTTRS,2003-01-08 22:46:00,2003-06-21 16:59:00,NOT COLLATERAL
-165247,15640.779,CCH,KSLD,A,12224.84,507,28,AAE,FOLDERC,LTTRZ,2003-01-08 23:46:00,2003-06-21 18:59:00,NOT COLLATERAL
-165258,15643.89,CCI,EKID,A,12224.68,507,29,AAF,FOLDERD,LTTRS,2003-01-09 00:46:00,2003-06-21 20:59:00,COLLATERAL
-165269,15647.001,CCJ,VNCD,A,12224.52,507,30,BBA,FOLDERE,LTTRS,2003-01-09 01:46:00,2003-06-21 22:59:00,COLLATERAL
-165280,15650.112,DDD,DKD,A,12224.36,507,31,BBC,FOLDERF,LTTRS,2003-01-09 02:46:00,2003-06-22 00:59:00,COLLATERAL
-165291,15653.223,DDA,FKF,A,12224.2,507,32,BBE,FOLDERG,LTTRS,2003-01-09 03:46:00,2003-06-22 02:59:00,NOT COLLATERAL
-165302,15656.334,DAA,LES,A,12224.04,507,33,BBF,FOLDERH,LTTRS,2003-01-09 04:46:00,2003-06-22 04:59:00,NOT COLLATERAL
-165313,15659.445,DBB,KLD,A,12223.88,507,34,BBG,FOLDERI,LTTRS,2003-01-09 05:46:00,2003-06-22 06:59:00,NOT COLLATERAL
-165324,15662.556,DCC,SKL,A,12223.72,507,35,BBH,FOLDERJ,LTTRS,2003-01-09 06:46:00,2003-06-22 08:59:00,NOT COLLATERAL
-165335,15665.667,DEE,SIW,A,12223.56,507,36,CCA,FOLDERK,LTTRS,2003-01-09 07:46:00,2003-06-22 10:59:00,NOT COLLATERAL
-165346,15668.778,DFF,CKA,A,12223.4,507,37,CCB,FOLDERL,LTTRS,2003-01-09 08:46:00,2003-06-22 12:59:00,NOT COLLATERAL
-165357,15671.889,DGG,LDE,A,12223.24,507,38,CCD,FOLDERM,LTTRS,2003-01-09 09:46:00,2003-06-22 14:59:00,NOT COLLATERAL
-165368,15675,DHH,KFF,A,12223.08,507,39,CCE,FOLDERN,LTTRS,2003-01-09 10:46:00,2003-06-22 16:59:00,NOT COLLATERAL
-165379,15678.111,AAA,EFH,A,12222.92,507,40,CCF,FOLDERO,LTTRS,2003-01-09 11:46:00,2003-06-22 18:59:00,NOT COLLATERAL
-165390,15681.222,BBB,NGC,A,12222.76,507,41,CCG,FOLDERP,LTTRS,2003-01-09 12:46:00,2003-06-22 20:59:00,COLLATERAL
-165401,15684.333,CCC,DER,A,12222.6,507,42,CCH,FOLDERQ,LTTRS,2003-01-09 13:46:00,2003-06-22 22:59:00,COLLATERAL
-165412,15687.444,DDD,FVG,A,12222.44,507,43,CCI,FOLDERR,LTTRZ,2003-01-09 14:46:00,2003-06-23 00:59:00,COLLATERAL
-165423,15690.555,AAB,KWE,A,12222.28,507,44,CCJ,FOLDERS,LTTRA,2003-01-09 15:46:00,2003-06-23 02:59:00,NOT COLLATERAL
-165434,15693.666,AAC,WER,A,12222.12,507,45,DDD,FOLDERT,LTTRB,2003-01-09 16:46:00,2003-06-23 04:59:00,NOT COLLATERAL
-165445,15696.777,AAD,GFH,A,12221.96,507,46,DDA,FOLDERU,LTTRB,2003-01-09 17:46:00,2003-06-23 06:59:00,NOT COLLATERAL
-165456,15699.888,AAE,BGF,A,12221.8,507,47,DAA,FOLDERV,LTTRA,2003-01-09 18:46:00,2003-06-23 08:59:00,NOT COLLATERAL
-165467,15702.999,AAF,XCS,A,12221.64,507,48,FKF,FOLDERW,LTTRA,2003-01-09 19:46:00,2003-06-23 10:59:00,NOT COLLATERAL
-165478,15706.11,BBA,JHK,A,12221.48,507,49,LES,FOLDERX,LTTRS,2003-01-09 20:46:00,2003-06-23 12:59:00,NOT COLLATERAL
-165489,15709.221,BBC,SFD,A,12221.32,507,48,KLD,FOLDERY,LTTRZ,2003-01-09 21:46:00,2003-06-23 14:59:00,NOT COLLATERAL
-165500,15712.332,BBE,WRE,A,12221.16,507,47,SKL,FOLDERZ,LTTRS,2003-01-09 22:46:00,2003-06-23 16:59:00,NOT COLLATERAL
-165511,15715.443,BBF,HGV,A,12221,507,46,SIW,FOLDERA,LTTRS,2003-01-09 23:46:00,2003-06-23 18:59:00,NOT COLLATERAL
-165522,15718.554,BBG,KLS,A,12220.84,507,45,CKA,FOLDERB,LTTRS,2003-01-10 00:46:00,2003-06-23 20:58:00,COLLATERAL
-165533,15721.665,BBH,SDK,A,12220.68,507,44,LDE,FOLDERC,LTTRS,2003-01-10 01:46:00,2003-06-23 22:58:00,COLLATERAL
-165544,15724.776,CCA,MNV,A,12220.52,507,43,KFF,FOLDERD,LTTRS,2003-01-10 02:46:00,2003-06-24 00:58:00,COLLATERAL
-165555,15727.887,CCB,OKW,A,12220.36,507,42,EFH,FOLDERE,LTTRS,2003-01-10 03:46:00,2003-06-24 02:58:00,NOT COLLATERAL
-165566,15730.998,CCD,ASS,A,12220.2,507,41,NGC,FOLDERF,LTTRS,2003-01-10 04:46:00,2003-06-24 04:58:00,NOT COLLATERAL
-165577,15734.109,CCE,CKA,A,12220.04,507,40,DER,FOLDERG,LTTRS,2003-01-10 05:46:00,2003-06-24 06:58:00,NOT COLLATERAL
-165588,15737.22,CCF,SWQ,A,12219.88,507,39,FVG,FOLDERH,LTTRS,2003-01-10 06:46:00,2003-06-24 08:58:00,NOT COLLATERAL
-165599,15740.331,CCG,KUH,A,12219.72,507,38,KWE,FOLDERI,LTTRS,2003-01-10 07:46:00,2003-06-24 10:58:00,NOT COLLATERAL
-165610,15743.442,CCH,XCV,A,12219.56,507,37,WER,FOLDERJ,LTTRS,2003-01-10 08:46:00,2003-06-24 12:58:00,NOT COLLATERAL
-165621,15746.553,CCI,ZAQ,A,12219.4,507,36,GFH,FOLDERK,LTTRS,2003-01-10 09:46:00,2003-06-24 14:58:00,NOT COLLATERAL
-165632,15749.664,CCJ,MKO,A,12219.24,507,35,BGF,FOLDERL,LTTRS,2003-01-10 10:46:00,2003-06-24 16:58:00,NOT COLLATERAL
-165643,15752.775,DDD,VFR,A,12219.08,507,34,XCS,FOLDERM,LTTRS,2003-01-10 11:46:00,2003-06-24 18:58:00,NOT COLLATERAL
-165654,15755.886,DDA,YUJ,A,12218.92,507,33,JHK,FOLDERN,LTTRZ,2003-01-10 12:46:00,2003-06-24 20:58:00,COLLATERAL
-165665,15758.997,DAA,MED,A,12218.76,507,32,SFD,FOLDERO,LTTRA,2003-01-10 13:46:00,2003-06-24 22:58:00,COLLATERAL
-165676,15762.108,DBB,SWE,A,12218.6,507,31,WRE,FOLDERP,LTTRB,2003-01-10 14:46:00,2003-06-25 00:58:00,COLLATERAL
-165687,15765.219,DCC,CVF,A,12218.44,507,30,HGV,FOLDERQ,LTTRB,2003-01-10 15:46:00,2003-06-25 02:58:00,NOT COLLATERAL
-165698,15768.33,DEE,DSFG,A,12218.28,507,29,KLS,FOLDERR,LTTRA,2003-01-10 16:46:00,2003-06-25 04:58:00,NOT COLLATERAL
-165709,15771.441,DFF,ASDRE,A,12218.12,507,28,SDK,FOLDERS,LTTRA,2003-01-10 17:46:00,2003-06-25 06:58:00,NOT COLLATERAL
-165720,15774.552,DGG,HJKSS,A,12217.96,507,27,MNV,FOLDERT,LTTRS,2003-01-10 18:46:00,2003-06-25 08:58:00,NOT COLLATERAL
-165731,15777.663,DHH,KHAA,A,12217.8,507,26,OKW,FOLDERU,LTTRZ,2003-01-10 19:46:00,2003-06-25 10:58:00,NULL
-165742,15780.774,AAA,KSLD,A,12217.64,507,25,ASS,FOLDERV,LTTRS,2003-01-10 20:46:00,2003-06-25 12:58:00,NULL
-165753,15783.885,BBB,EKID,A,12217.48,507,24,CKA,FOLDERW,LTTRS,2003-01-10 21:46:00,2003-06-25 14:58:00,NULL
-165764,15786.996,CCC,VNCD,A,12217.32,507,23,SWQ,FOLDERX,LTTRS,2003-01-10 22:46:00,2003-06-25 16:58:00,NULL
-165775,15790.107,DDD,DKD,A,12217.16,507,22,KUH,FOLDERY,LTTRS,2003-01-10 23:46:00,2003-06-25 18:58:00,NULL
-165786,15793.218,AAB,FKF,A,12217,507,21,XCV,FOLDERZ,LTTRS,2003-01-11 00:46:00,2003-06-25 20:58:00,COLLATERAL
-165797,15796.329,AAC,LES,A,12216.84,507,20,ZAQ,FOLDERZ,LTTRS,2003-01-11 01:46:00,2003-06-25 22:58:00,COLLATERAL
-165808,15799.44,AAD,KLD,A,12216.68,507,19,MKO,FOLDERZ,LTTRS,2003-01-11 02:46:00,2003-06-26 00:58:00,COLLATERAL
-165819,15802.551,AAE,SKL,A,12216.52,507,18,VFR,FOLDERZ,LTTRS,2003-01-11 03:46:00,2003-06-26 02:58:00,NOT COLLATERAL
-165830,15805.662,AAF,SIW,A,12216.36,507,17,YUJ,FOLDERZ,LTTRS,2003-01-11 04:46:00,2003-06-26 04:58:00,NULL
-165841,15808.773,BBA,CKA,A,12216.2,507,16,AAA,FOLDERZ,LTTRS,2003-01-11 05:46:00,2003-06-26 06:58:00,NULL
-165852,15811.884,BBC,LDE,A,12216.04,507,15,BBB,FOLDERZ,LTTRS,2003-01-11 06:46:00,2003-06-26 08:58:00,NULL
-165863,15814.995,BBE,KFF,A,12215.88,507,14,CCC,FOLDERZ,LTTRS,2003-01-11 07:46:00,2003-06-26 10:58:00,NULL
-165874,15818.106,BBF,EFH,A,12215.72,507,13,DDD,FOLDERZ,LTTRS,2003-01-11 08:46:00,2003-06-26 12:58:00,NULL
-165885,15821.217,BBG,NGC,A,12215.56,507,12,AAB,FOLDERZ,LTTRS,2003-01-11 09:46:00,2003-06-26 14:58:00,NULL
-165896,15824.328,BBH,DER,A,12215.4,507,11,AAC,FOLDERZ,LTTRZ,2003-01-11 10:46:00,2003-06-26 16:58:00,NULL
-165907,15827.439,CCA,FVG,A,12215.24,507,10,AAD,FOLDERZ,LTTRA,2003-01-11 11:46:00,2003-06-26 18:58:00,NULL
-165918,15830.55,CCB,KWE,A,12215.08,507,9,AAE,FOLDERZ,LTTRB,2003-01-11 12:46:00,2003-06-26 20:58:00,COLLATERAL
-165929,15833.661,CCD,WER,A,12214.92,507,8,AAF,FOLDERZ,LTTRB,2003-01-11 13:46:00,2003-06-26 22:58:00,COLLATERAL
-165940,15836.772,CCE,GFH,A,12214.76,507,7,BBA,FOLDERX,LTTRA,2003-01-11 14:46:00,2003-06-27 00:58:00,COLLATERAL
-165951,15839.883,CCF,BGF,A,12214.6,507,6,BBC,FOLDERX,LTTRA,2003-01-11 15:46:00,2003-06-27 02:58:00,NOT COLLATERAL
-165962,15842.994,CCG,XCS,A,12214.44,507,5,BBE,FOLDERX,LTTRS,2003-01-11 16:46:00,2003-06-27 04:58:00,NOT COLLATERAL
-165973,15846.105,CCH,JHK,A,12214.28,507,4,BBF,FOLDERX,LTTRZ,2003-01-11 17:46:00,2003-06-27 06:58:00,NULL
-165984,15849.216,CCI,SFD,A,12214.12,507,3,BBG,FOLDERX,LTTRS,2003-01-11 18:46:00,2003-06-27 08:58:00,NULL
-165995,15852.327,CCJ,WRE,A,12213.96,507,1,BBH,FOLDERX,LTTRS,2003-01-11 19:46:00,2003-06-27 10:58:00,NULL
-166006,15855.438,DDD,HGV,A,12213.8,507,2,CCA,FOLDERX,LTTRS,2003-01-11 20:46:00,2003-06-27 12:58:00,NULL
-166017,15858.549,DDA,KLS,A,12213.64,507,3,CCB,FOLDERX,LTTRS,2003-01-11 21:46:00,2003-06-27 14:58:00,NULL
-166028,15861.66,DAA,SDK,A,12213.48,507,4,CCD,FOLDERX,LTTRS,2003-01-11 22:46:00,2003-06-27 16:58:00,NOT COLLATERAL
-166039,15864.771,DBB,MNV,A,12213.32,507,5,CCE,FOLDERX,LTTRS,2003-01-11 23:46:00,2003-06-27 18:58:00,NOT COLLATERAL
-166050,15867.882,DCC,OKW,A,12213.16,507,6,CCF,FOLDERX,LTTRS,2003-01-12 00:46:00,2003-06-27 20:58:00,COLLATERAL
-166061,15870.993,DEE,ASS,A,12213,507,7,CCG,FOLDERX,LTTRS,2003-01-12 01:46:00,2003-06-27 22:58:00,COLLATERAL
-166072,15874.104,DFF,CKA,A,12212.84,507,8,CCH,FOLDERR,LTTRS,2003-01-12 02:46:00,2003-06-28 00:58:00,COLLATERAL
-166083,15877.215,DGG,SWQ,A,12212.68,507,9,CCI,FOLDERS,LTTRS,2003-01-12 03:46:00,2003-06-28 02:58:00,NOT COLLATERAL
-166094,15880.326,DHH,KUH,A,12212.52,507,10,CCJ,FOLDERX,LTTRS,2003-01-12 04:46:00,2003-06-28 04:58:00,NOT COLLATERAL
-166105,15883.437,AAA,XCV,A,12212.36,507,11,DDD,FOLDERR,LTTRS,2003-01-12 05:46:00,2003-06-28 06:58:00,NOT COLLATERAL
-166116,15886.548,BBB,ZAQ,A,12212.2,507,12,DDA,FOLDERS,LTTRS,2003-01-12 06:46:00,2003-06-28 08:58:00,NOT COLLATERAL
-166127,15889.659,CCC,MKO,A,12212.04,507,13,DAA,FOLDERX,LTTRS,2003-01-12 07:46:00,2003-06-28 10:58:00,NOT COLLATERAL
-166138,15892.77,DDD,VFR,A,12211.88,507,14,FKF,FOLDERR,LTTRZ,2003-01-12 08:46:00,2003-06-28 12:58:00,NOT COLLATERAL
-166149,15895.881,AAB,YUJ,A,12211.72,507,15,LES,FOLDERS,LTTRA,2003-01-12 09:46:00,2003-06-28 14:58:00,NOT COLLATERAL
-166160,15898.992,AAC,MED,A,12211.56,507,16,KLD,FOLDERX,LTTRB,2003-01-12 10:46:00,2003-06-28 16:58:00,NOT COLLATERAL
-166171,15902.103,AAD,SWE,A,12211.4,507,17,SKL,FOLDERR,LTTRB,2003-01-12 11:46:00,2003-06-28 18:58:00,NOT COLLATERAL
-166182,15905.214,AAE,CVF,A,12211.24,507,18,SIW,FOLDERS,LTTRA,2003-01-12 12:46:00,2003-06-28 20:58:00,COLLATERAL
-166193,15908.325,AAF,DSFG,A,12211.08,507,19,CKA,FOLDERX,LTTRA,2003-01-12 13:46:00,2003-06-28 22:58:00,COLLATERAL
-166204,15911.436,BBA,ASDRE,A,12210.92,507,20,LDE,FOLDERR,LTTRS,2003-01-12 14:46:00,2003-06-29 00:58:00,COLLATERAL
-166215,15914.547,BBC,HJKSS,A,12210.76,507,21,KFF,FOLDERS,LTTRZ,2003-01-12 15:46:00,2003-06-29 02:58:00,NOT COLLATERAL
-166226,15917.658,BBE,KHAA,A,12210.6,507,22,EFH,FOLDERX,LTTRS,2003-01-12 16:46:00,2003-06-29 04:58:00,NOT COLLATERAL
-166237,15920.769,BBF,KSLD,A,12210.44,507,23,NGC,FOLDERD,LTTRS,2003-01-12 17:46:00,2003-06-29 06:58:00,NOT COLLATERAL
-166248,15923.88,BBG,EKID,A,12210.28,507,24,DER,FOLDERE,LTTRS,2003-01-12 18:46:00,2003-06-29 08:58:00,NOT COLLATERAL
-166259,15926.991,BBH,VNCD,A,12210.12,507,25,FVG,FOLDERF,LTTRS,2003-01-12 19:46:00,2003-06-29 10:58:00,NOT COLLATERAL
-166270,15930.102,CCA,DKD,A,12209.96,507,26,KWE,FOLDERG,LTTRS,2003-01-12 20:46:00,2003-06-29 12:58:00,NOT COLLATERAL
-166281,15933.213,CCB,FKF,A,12209.8,507,27,WER,FOLDERH,LTTRS,2003-01-12 21:46:00,2003-06-29 14:58:00,NOT COLLATERAL
-166292,15936.324,CCD,LES,A,12209.64,507,28,GFH,FOLDERI,LTTRS,2003-01-12 22:46:00,2003-06-29 16:58:00,NOT COLLATERAL
-166303,15939.435,CCE,KLD,A,12209.48,507,29,BGF,FOLDERJ,LTTRS,2003-01-12 23:46:00,2003-06-29 18:58:00,NOT COLLATERAL
-166314,15942.546,CCF,SKL,A,12209.32,507,30,XCS,FOLDERK,LTTRS,2003-01-13 00:46:00,2003-06-29 20:58:00,COLLATERAL
-166325,15945.657,CCG,SIW,A,12209.16,507,31,JHK,FOLDERL,LTTRS,2003-01-13 01:46:00,2003-06-29 22:58:00,COLLATERAL
-166336,15948.768,CCH,CKA,A,12209,507,32,SFD,FOLDERM,LTTRS,2003-01-13 02:46:00,2003-06-30 00:58:00,COLLATERAL
-166347,15951.879,CCI,LDE,A,12208.84,507,33,WRE,FOLDERN,LTTRS,2003-01-13 03:46:00,2003-06-30 02:58:00,NOT COLLATERAL
-166358,15954.99,CCJ,KFF,A,12208.68,507,34,HGV,FOLDERN,LTTRS,2003-01-13 04:46:00,2003-06-30 04:58:00,NOT COLLATERAL
-166369,15958.101,DDD,EFH,A,12208.52,507,35,KLS,FOLDERN,LTTRS,2003-01-13 05:46:00,2003-06-30 06:58:00,NOT COLLATERAL
-166380,15961.212,DDA,NGC,A,12208.36,507,36,SDK,FOLDERN,LTTRZ,2003-01-13 06:46:00,2003-06-30 08:58:00,NOT COLLATERAL
-166391,15964.323,DAA,DER,A,12208.2,507,37,MNV,FOLDERL,LTTRA,2003-01-13 07:46:00,2003-06-30 10:58:00,NOT COLLATERAL
-166402,15967.434,DBB,FVG,A,12208.04,507,38,OKW,FOLDERL,LTTRB,2003-01-13 08:46:00,2003-06-30 12:58:00,NOT COLLATERAL
-166413,15970.545,DCC,KWE,A,12207.88,507,39,ASS,FOLDERL,LTTRB,2003-01-13 09:46:00,2003-06-30 14:58:00,NOT COLLATERAL
-166424,15973.656,DEE,WER,A,12207.72,507,40,CKA,FOLDERL,LTTRA,2003-01-13 10:46:00,2003-06-30 16:58:00,NOT COLLATERAL
-166435,15976.767,DFF,GFH,A,12207.56,507,41,SWQ,FOLDERL,LTTRA,2003-01-13 11:46:00,2003-06-30 18:58:00,NOT COLLATERAL
-166446,15979.878,DGG,BGF,A,12207.4,507,42,KUH,FOLDERA,LTTRS,2003-01-13 12:46:00,2003-06-30 20:58:00,COLLATERAL
-166457,15982.989,DHH,XCS,A,12207.24,507,43,XCV,FOLDERB,LTTRZ,2003-01-13 13:46:00,2003-06-30 22:58:00,COLLATERAL
-166468,15986.1,AAA,JHK,A,12207.08,507,44,ZAQ,FOLDERC,LTTRS,2003-01-13 14:46:00,2003-07-01 00:58:00,COLLATERAL
-166479,15989.211,BBB,SFD,A,12206.92,507,45,MKO,FOLDERD,LTTRS,2003-01-13 15:46:00,2003-07-01 02:58:00,NOT COLLATERAL
-166490,15992.322,CCC,WRE,A,12206.76,507,46,VFR,FOLDERE,LTTRS,2003-01-13 16:46:00,2003-07-01 04:58:00,NOT COLLATERAL
-166501,15995.433,DDD,HGV,A,12206.6,507,47,YUJ,FOLDERF,LTTRS,2003-01-13 17:46:00,2003-07-01 06:58:00,NOT COLLATERAL
-166512,15998.544,AAB,KLS,A,12206.44,507,48,AAA,FOLDERG,LTTRS,2003-01-13 18:46:00,2003-07-01 08:58:00,NOT COLLATERAL
-166523,16001.655,AAC,SDK,A,12206.28,507,49,BBB,FOLDERH,LTTRS,2003-01-13 19:46:00,2003-07-01 10:58:00,NOT COLLATERAL
-166534,16004.766,AAD,MNV,A,12206.12,507,48,CCC,FOLDERI,LTTRS,2003-01-13 20:46:00,2003-07-01 12:58:00,NOT COLLATERAL
-166545,16007.877,AAE,OKW,A,12205.96,507,47,DDD,FOLDERJ,LTTRS,2003-01-13 21:46:00,2003-07-01 14:58:00,NOT COLLATERAL
-166556,16010.988,AAF,ASS,A,12205.8,507,46,AAB,FOLDERK,LTTRS,2003-01-13 22:46:00,2003-07-01 16:58:00,NOT COLLATERAL
-166567,16014.099,BBA,CKA,A,12205.64,507,45,AAC,FOLDERL,LTTRS,2003-01-13 23:46:00,2003-07-01 18:58:00,NOT COLLATERAL
-166578,16017.21,BBC,SWQ,A,12205.48,507,44,AAD,FOLDERM,LTTRS,2003-01-14 00:46:00,2003-07-01 20:58:00,COLLATERAL
-166589,16020.321,BBE,KUH,A,12205.32,507,43,AAE,FOLDERN,LTTRS,2003-01-14 01:46:00,2003-07-01 22:58:00,COLLATERAL
-166600,16023.432,BBF,XCV,A,12205.16,507,42,AAF,FOLDERO,LTTRS,2003-01-14 02:46:00,2003-07-02 00:58:00,COLLATERAL
-166611,16026.543,BBG,ZAQ,A,12205,507,41,BBA,FOLDERP,LTTRS,2003-01-14 03:46:00,2003-07-02 02:58:00,NOT COLLATERAL
-166622,16029.654,BBH,MKO,A,12204.84,507,40,BBC,FOLDERQ,LTTRZ,2003-01-14 04:46:00,2003-07-02 04:58:00,NOT COLLATERAL
-166633,16032.765,CCA,VFR,A,12204.68,507,39,BBE,FOLDERR,LTTRA,2003-01-14 05:46:00,2003-07-02 06:58:00,NOT COLLATERAL
-166644,16035.876,CCB,YUJ,A,12204.52,507,38,BBF,FOLDERS,LTTRB,2003-01-14 06:46:00,2003-07-02 08:58:00,NOT COLLATERAL
-166655,16038.987,CCD,MED,A,12204.36,507,37,BBG,FOLDERT,LTTRB,2003-01-14 07:46:00,2003-07-02 10:58:00,NOT COLLATERAL
-166666,16042.098,CCE,SWE,A,12204.2,507,36,BBH,FOLDERU,LTTRA,2003-01-14 08:46:00,2003-07-02 12:58:00,NOT COLLATERAL
-166677,16045.209,CCF,CVF,A,12204.04,507,35,CCA,FOLDERV,LTTRA,2003-01-14 09:45:00,2003-07-02 14:58:00,NOT COLLATERAL
-166688,16048.32,CCG,DSFG,A,12203.88,507,34,CCB,FOLDERW,LTTRS,2003-01-14 10:45:00,2003-07-02 16:58:00,NOT COLLATERAL
-166699,16051.431,CCH,ASDRE,A,12203.72,507,33,CCD,FOLDERX,LTTRZ,2003-01-14 11:45:00,2003-07-02 18:58:00,NOT COLLATERAL
-166710,16054.542,CCI,HJKSS,A,12203.56,507,32,CCE,FOLDERY,LTTRS,2003-01-14 12:45:00,2003-07-02 20:58:00,COLLATERAL
-166721,16057.653,CCJ,KHAA,A,12203.4,507,31,CCF,FOLDERZ,LTTRS,2003-01-14 13:45:00,2003-07-02 22:58:00,COLLATERAL
-166732,16060.764,DDD,KSLD,A,12203.24,507,30,CCG,FOLDERA,LTTRS,2003-01-14 14:45:00,2003-07-03 00:58:00,COLLATERAL
-166743,16063.875,DDA,EKID,A,12203.08,507,29,CCH,FOLDERB,LTTRS,2003-01-14 15:45:00,2003-07-03 02:58:00,NOT COLLATERAL
-166754,16066.986,DAA,VNCD,A,12202.92,507,28,CCI,FOLDERC,LTTRS,2003-01-14 16:45:00,2003-07-03 04:58:00,NOT COLLATERAL
-166765,16070.097,DBB,DKD,A,12202.76,507,27,CCJ,FOLDERD,LTTRS,2003-01-14 17:45:00,2003-07-03 06:58:00,NOT COLLATERAL
-166776,16073.208,DCC,FKF,A,12202.6,507,26,DDD,FOLDERE,LTTRS,2003-01-14 18:45:00,2003-07-03 08:58:00,NOT COLLATERAL
-166787,16076.319,DEE,LES,A,12202.44,507,25,DDA,FOLDERF,LTTRS,2003-01-14 19:45:00,2003-07-03 10:58:00,NOT COLLATERAL
-166798,16079.43,DFF,KLD,A,12202.28,507,24,DAA,FOLDERG,LTTRS,2003-01-14 20:45:00,2003-07-03 12:58:00,NOT COLLATERAL
-166809,16082.541,DGG,SKL,A,12202.12,507,23,FKF,FOLDERH,LTTRS,2003-01-14 21:45:00,2003-07-03 14:58:00,NOT COLLATERAL
-166820,16085.652,DHH,SIW,A,12201.96,507,22,LES,FOLDERI,LTTRS,2003-01-14 22:45:00,2003-07-03 16:58:00,NOT COLLATERAL
-166831,16088.763,AAA,CKA,A,12201.8,507,21,KLD,FOLDERJ,LTTRS,2003-01-14 23:45:00,2003-07-03 18:58:00,NOT COLLATERAL
-166842,16091.874,BBB,LDE,A,12201.64,507,20,SKL,FOLDERK,LTTRS,2003-01-15 00:45:00,2003-07-03 20:58:00,COLLATERAL
-166853,16094.985,CCC,KFF,A,12201.48,507,19,SIW,FOLDERL,LTTRS,2003-01-15 01:45:00,2003-07-03 22:58:00,COLLATERAL
-166864,16098.096,DDD,EFH,A,12201.32,507,18,CKA,FOLDERM,LTTRZ,2003-01-15 02:45:00,2003-07-04 00:58:00,COLLATERAL
-166875,16101.207,AAB,NGC,A,12201.16,507,17,LDE,FOLDERN,LTTRA,2003-01-15 03:45:00,2003-07-04 02:58:00,NOT COLLATERAL
-166886,16104.318,AAC,DER,A,12201,507,16,KFF,FOLDERO,LTTRB,2003-01-15 04:45:00,2003-07-04 04:58:00,NULL
-166897,16107.429,AAD,FVG,A,12200.84,507,15,EFH,FOLDERP,LTTRB,2003-01-15 05:45:00,2003-07-04 06:58:00,NULL
-166908,16110.54,AAE,KWE,A,12200.68,507,14,NGC,FOLDERQ,LTTRA,2003-01-15 06:45:00,2003-07-04 08:58:00,NULL
-166919,16113.651,AAF,WER,A,12200.52,507,13,DER,FOLDERR,LTTRA,2003-01-15 07:45:00,2003-07-04 10:58:00,NULL
-166930,16116.762,BBA,GFH,A,12200.36,507,12,FVG,FOLDERS,LTTRS,2003-01-15 08:45:00,2003-07-04 12:58:00,NULL
-166941,16119.873,BBC,BGF,A,12200.2,507,11,KWE,FOLDERT,LTTRZ,2003-01-15 09:45:00,2003-07-04 14:58:00,NULL
-166952,16122.984,BBE,XCS,A,12200.04,507,10,WER,FOLDERU,LTTRS,2003-01-15 10:45:00,2003-07-04 16:58:00,NULL
-166963,16126.095,BBF,JHK,A,12199.88,507,9,GFH,FOLDERV,LTTRS,2003-01-15 11:45:00,2003-07-04 18:58:00,NOT COLLATERAL
-166974,16129.206,BBG,SFD,A,12199.72,507,8,BGF,FOLDERW,LTTRS,2003-01-15 12:45:00,2003-07-04 20:58:00,COLLATERAL
-166985,16132.317,BBH,WRE,A,12199.56,507,7,XCS,FOLDERX,LTTRS,2003-01-15 13:45:00,2003-07-04 22:58:00,COLLATERAL
-166996,16135.428,CCA,HGV,A,12199.4,507,6,JHK,FOLDERY,LTTRS,2003-01-15 14:45:00,2003-07-05 00:58:00,COLLATERAL
-167007,16138.539,CCB,KLS,A,12199.24,507,5,SFD,FOLDERZ,LTTRS,2003-01-15 15:45:00,2003-07-05 02:58:00,NULL
-167018,16141.65,CCD,SDK,A,12199.08,507,4,WRE,FOLDERZ,LTTRS,2003-01-15 16:45:00,2003-07-05 04:58:00,NULL
-167029,16144.761,CCE,MNV,A,12198.92,507,3,HGV,FOLDERZ,LTTRS,2003-01-15 17:45:00,2003-07-05 06:58:00,NULL
-167040,16147.872,CCF,OKW,A,12198.76,507,1,KLS,FOLDERZ,LTTRS,2003-01-15 18:45:00,2003-07-05 08:58:00,NULL
-167051,16150.983,CCG,ASS,A,12198.6,507,2,SDK,FOLDERZ,LTTRS,2003-01-15 19:45:00,2003-07-05 10:58:00,NULL
-167062,16154.094,CCH,CKA,A,12198.44,507,3,MNV,FOLDERZ,LTTRS,2003-01-15 20:45:00,2003-07-05 12:58:00,NULL
-167073,16157.205,CCI,SWQ,A,12198.28,507,4,OKW,FOLDERZ,LTTRS,2003-01-15 21:45:00,2003-07-05 14:58:00,NULL
-167084,16160.316,CCJ,KUH,A,12198.12,507,5,ASS,FOLDERZ,LTTRS,2003-01-15 22:45:00,2003-07-05 16:58:00,NULL
-167095,16163.427,DDD,XCV,A,12197.96,507,6,CKA,FOLDERZ,LTTRS,2003-01-15 23:45:00,2003-07-05 18:58:00,NULL
-167106,16166.538,DDA,ZAQ,A,12197.8,507,7,SWQ,FOLDERZ,LTTRZ,2003-01-16 00:45:00,2003-07-05 20:58:00,NULL
-167117,16169.649,DAA,MKO,A,12197.64,507,8,KUH,FOLDERZ,LTTRA,2003-01-16 01:45:00,2003-07-05 22:58:00,COLLATERAL
-167128,16172.76,DBB,VFR,A,12197.48,507,9,XCV,FOLDERZ,LTTRB,2003-01-16 02:45:00,2003-07-06 00:58:00,COLLATERAL
-167139,16175.871,DCC,YUJ,A,12197.32,507,10,ZAQ,FOLDERZ,LTTRB,2003-01-16 03:45:00,2003-07-06 02:58:00,NULL
-167150,16178.982,DEE,MED,A,12197.16,507,11,MKO,FOLDERZ,LTTRA,2003-01-16 04:45:00,2003-07-06 04:58:00,NULL
-167161,16182.093,DFF,SWE,A,12197,507,12,VFR,FOLDERX,LTTRA,2003-01-16 05:45:00,2003-07-06 06:58:00,NULL
-167172,16185.204,DGG,CVF,A,12196.84,507,13,YUJ,FOLDERX,LTTRS,2003-01-16 06:45:00,2003-07-06 08:58:00,NULL
-167183,16188.315,DHH,DSFG,A,12196.68,507,14,AAA,FOLDERX,LTTRZ,2003-01-16 07:45:00,2003-07-06 10:58:00,NULL
-167194,16191.426,AAA,ASDRE,A,12196.52,507,15,BBB,FOLDERX,LTTRS,2003-01-16 08:45:00,2003-07-06 12:58:00,NOT COLLATERAL
-167205,16194.537,BBB,HJKSS,A,12196.36,507,16,CCC,FOLDERX,LTTRS,2003-01-16 09:45:00,2003-07-06 14:58:00,NOT COLLATERAL
-167216,16197.648,CCC,KHAA,A,12196.2,507,17,DDD,FOLDERX,LTTRS,2003-01-16 10:45:00,2003-07-06 16:58:00,NOT COLLATERAL
-167227,16200.759,DDD,KSLD,A,12196.04,507,18,AAB,FOLDERX,LTTRS,2003-01-16 11:45:00,2003-07-06 18:58:00,NOT COLLATERAL
-167238,16203.87,AAB,EKID,A,12195.88,507,19,AAC,FOLDERX,LTTRS,2003-01-16 12:45:00,2003-07-06 20:58:00,COLLATERAL
-167249,16206.981,AAC,VNCD,A,12195.72,507,20,AAD,FOLDERX,LTTRS,2003-01-16 13:45:00,2003-07-06 22:58:00,COLLATERAL
-167260,16210.092,AAD,DKD,A,12195.56,507,21,AAE,FOLDERX,LTTRS,2003-01-16 14:45:00,2003-07-07 00:58:00,COLLATERAL
-167271,16213.203,AAE,FKF,A,12195.4,507,22,AAF,FOLDERX,LTTRS,2003-01-16 15:45:00,2003-07-07 02:58:00,NOT COLLATERAL
-167282,16216.314,AAF,LES,A,12195.24,507,23,BBA,FOLDERX,LTTRS,2003-01-16 16:45:00,2003-07-07 04:58:00,NOT COLLATERAL
-167293,16219.425,BBA,KLD,A,12195.08,507,24,BBC,FOLDERR,LTTRS,2003-01-16 17:45:00,2003-07-07 06:58:00,NOT COLLATERAL
-167304,16222.536,BBC,SKL,A,12194.92,507,25,BBE,FOLDERS,LTTRS,2003-01-16 18:45:00,2003-07-07 08:58:00,NOT COLLATERAL
-167315,16225.647,BBE,SIW,A,12194.76,507,26,BBF,FOLDERX,LTTRS,2003-01-16 19:45:00,2003-07-07 10:58:00,NOT COLLATERAL
-167326,16228.758,BBF,CKA,A,12194.6,507,27,BBG,FOLDERR,LTTRS,2003-01-16 20:45:00,2003-07-07 12:58:00,NOT COLLATERAL
-167337,16231.869,BBG,LDE,A,12194.44,507,28,BBH,FOLDERS,LTTRS,2003-01-16 21:45:00,2003-07-07 14:58:00,NOT COLLATERAL
-167348,16234.98,BBH,KFF,A,12194.28,507,29,CCA,FOLDERX,LTTRZ,2003-01-16 22:45:00,2003-07-07 16:58:00,NOT COLLATERAL
-167359,16238.091,CCA,EFH,A,12194.12,507,30,CCB,FOLDERR,LTTRA,2003-01-16 23:45:00,2003-07-07 18:58:00,NOT COLLATERAL
-167370,16241.202,CCB,NGC,A,12193.96,502,31,CCD,FOLDERS,LTTRB,2003-01-17 00:45:00,2003-07-07 20:58:00,COLLATERAL
-167381,16244.313,CCD,DER,A,12193.8,497,32,CCE,FOLDERX,LTTRB,2003-01-17 01:45:00,2003-07-07 22:58:00,COLLATERAL
-167392,16247.424,CCE,FVG,A,12193.64,492,33,CCF,FOLDERR,LTTRA,2003-01-17 02:45:00,2003-07-08 00:58:00,COLLATERAL
-167403,16250.535,CCF,KWE,A,12193.48,487,34,CCG,FOLDERS,LTTRA,2003-01-17 03:45:00,2003-07-08 02:58:00,NOT COLLATERAL
-167414,16253.646,CCG,WER,A,12193.32,482,35,CCH,FOLDERX,LTTRS,2003-01-17 04:45:00,2003-07-08 04:58:00,NOT COLLATERAL
-167425,16256.757,CCH,GFH,A,12193.16,477,36,CCI,FOLDERR,LTTRZ,2003-01-17 05:45:00,2003-07-08 06:58:00,NOT COLLATERAL
-167436,16259.868,CCI,BGF,A,12193,472,37,CCJ,FOLDERS,LTTRS,2003-01-17 06:45:00,2003-07-08 08:58:00,NOT COLLATERAL
-167447,16262.979,CCJ,XCS,A,12192.84,467,38,DDD,FOLDERX,LTTRS,2003-01-17 07:45:00,2003-07-08 10:58:00,NOT COLLATERAL
-167458,16266.09,DDD,JHK,A,12192.68,462,39,DDA,FOLDERD,LTTRS,2003-01-17 08:45:00,2003-07-08 12:58:00,NOT COLLATERAL
-167469,16269.201,DDA,SFD,A,12192.52,457,40,DAA,FOLDERE,LTTRS,2003-01-17 09:45:00,2003-07-08 14:58:00,NOT COLLATERAL
-167480,16272.312,DAA,WRE,A,12192.36,452,41,FKF,FOLDERF,LTTRS,2003-01-17 10:45:00,2003-07-08 16:58:00,NOT COLLATERAL
-167491,16275.423,DBB,HGV,A,12192.2,447,42,LES,FOLDERG,LTTRS,2003-01-17 11:45:00,2003-07-08 18:58:00,NOT COLLATERAL
-167502,16278.534,DCC,KLS,A,12192.04,442,43,KLD,FOLDERH,LTTRS,2003-01-17 12:45:00,2003-07-08 20:58:00,COLLATERAL
-167513,16281.645,DEE,SDK,A,12191.88,437,44,SKL,FOLDERI,LTTRS,2003-01-17 13:45:00,2003-07-08 22:58:00,COLLATERAL
-167524,16284.756,DFF,MNV,A,12191.72,432,45,SIW,FOLDERJ,LTTRS,2003-01-17 14:45:00,2003-07-09 00:58:00,COLLATERAL
-167535,16287.867,DGG,OKW,A,12191.56,427,46,CKA,FOLDERK,LTTRS,2003-01-17 15:45:00,2003-07-09 02:58:00,NOT COLLATERAL
-167546,16290.978,DHH,ASS,A,12191.4,422,47,LDE,FOLDERL,LTTRS,2003-01-17 16:45:00,2003-07-09 04:58:00,NOT COLLATERAL
-167557,16294.089,AAA,CKA,A,12191.24,417,48,KFF,FOLDERM,LTTRS,2003-01-17 17:45:00,2003-07-09 06:58:00,NOT COLLATERAL
-167568,16297.2,BBB,SWQ,A,12191.08,412,49,EFH,FOLDERN,LTTRS,2003-01-17 18:45:00,2003-07-09 08:58:00,NOT COLLATERAL
-167579,16300.311,CCC,KUH,A,12190.92,407,48,NGC,FOLDERN,LTTRS,2003-01-17 19:45:00,2003-07-09 10:58:00,NOT COLLATERAL
-167590,16303.422,DDD,XCV,A,12190.76,402,47,DER,FOLDERN,LTTRZ,2003-01-17 20:45:00,2003-07-09 12:58:00,NOT COLLATERAL
-167601,16306.533,AAB,ZAQ,A,12190.6,397,46,FVG,FOLDERN,LTTRA,2003-01-17 21:45:00,2003-07-09 14:58:00,NOT COLLATERAL
-167612,16309.644,AAC,MKO,A,12190.44,392,45,KWE,FOLDERL,LTTRB,2003-01-17 22:45:00,2003-07-09 16:58:00,NOT COLLATERAL
-167623,16312.755,AAD,VFR,A,12190.28,387,44,WER,FOLDERL,LTTRB,2003-01-17 23:45:00,2003-07-09 18:58:00,NOT COLLATERAL
-167634,16315.866,AAE,YUJ,A,12190.12,382,43,GFH,FOLDERL,LTTRA,2003-01-18 00:45:00,2003-07-09 20:58:00,COLLATERAL
-167645,16318.977,AAF,MED,A,12189.96,377,42,BGF,FOLDERL,LTTRA,2003-01-18 01:45:00,2003-07-09 22:58:00,COLLATERAL
-167656,16322.088,BBA,SWE,A,12189.8,372,41,XCS,FOLDERL,LTTRS,2003-01-18 02:45:00,2003-07-10 00:58:00,COLLATERAL
-167667,16325.199,BBC,CVF,A,12189.64,367,40,JHK,FOLDERR,LTTRZ,2003-01-18 03:45:00,2003-07-10 02:58:00,NOT COLLATERAL
-167678,16328.31,BBE,DSFG,A,12189.48,362,39,SFD,FOLDERS,LTTRS,2003-01-18 04:45:00,2003-07-10 04:58:00,NOT COLLATERAL
-167689,16331.421,BBF,ASDRE,A,12189.32,357,38,WRE,FOLDERX,LTTRS,2003-01-18 05:45:00,2003-07-10 06:58:00,NOT COLLATERAL
-167700,16334.532,BBG,HJKSS,A,12189.16,352,37,HGV,FOLDERR,LTTRS,2003-01-18 06:45:00,2003-07-10 08:58:00,NOT COLLATERAL
-167711,16337.643,BBH,KHAA,A,12189,347,36,KLS,FOLDERS,LTTRS,2003-01-18 07:45:00,2003-07-10 10:58:00,NOT COLLATERAL
-167722,16340.754,CCA,KSLD,A,12188.84,342,35,SDK,FOLDERX,LTTRS,2003-01-18 08:45:00,2003-07-10 12:58:00,NOT COLLATERAL
-167733,16343.865,CCB,EKID,A,12188.68,337,34,MNV,FOLDERD,LTTRS,2003-01-18 09:45:00,2003-07-10 14:58:00,NOT COLLATERAL
-167744,16346.976,CCD,VNCD,A,12188.52,332,33,OKW,FOLDERE,LTTRS,2003-01-18 10:45:00,2003-07-10 16:58:00,NOT COLLATERAL
-167755,16350.087,CCE,DKD,A,12188.36,327,32,ASS,FOLDERF,LTTRS,2003-01-18 11:45:00,2003-07-10 18:58:00,NOT COLLATERAL
-167766,16353.198,CCF,FKF,A,12188.2,322,31,CKA,FOLDERG,LTTRS,2003-01-18 12:45:00,2003-07-10 20:58:00,COLLATERAL
-167777,16356.309,CCG,LES,A,12188.04,317,30,SWQ,FOLDERH,LTTRS,2003-01-18 13:45:00,2003-07-10 22:58:00,COLLATERAL
-167788,16359.42,CCH,KLD,A,12187.88,312,29,KUH,FOLDERI,LTTRS,2003-01-18 14:45:00,2003-07-11 00:58:00,COLLATERAL
-167799,16362.531,CCI,SKL,A,12187.72,307,28,XCV,FOLDERJ,LTTRS,2003-01-18 15:45:00,2003-07-11 02:58:00,NOT COLLATERAL
-167810,16365.642,CCJ,SIW,A,12187.56,302,27,ZAQ,FOLDERK,LTTRS,2003-01-18 16:45:00,2003-07-11 04:58:00,NOT COLLATERAL
-167821,16368.753,DDD,CKA,A,12187.4,297,26,MKO,FOLDERL,LTTRS,2003-01-18 17:45:00,2003-07-11 06:58:00,NOT COLLATERAL
-167832,16371.864,DDA,LDE,A,12187.24,292,25,VFR,FOLDERM,LTTRZ,2003-01-18 18:45:00,2003-07-11 08:58:00,NOT COLLATERAL
-167843,16374.975,DAA,KFF,A,12187.08,287,24,YUJ,FOLDERN,LTTRA,2003-01-18 19:45:00,2003-07-11 10:58:00,NOT COLLATERAL
-167854,16378.086,DBB,EFH,A,12186.92,282,23,AAA,FOLDERN,LTTRB,2003-01-18 20:45:00,2003-07-11 12:58:00,NOT COLLATERAL
-167865,16381.197,DCC,NGC,A,12186.76,277,22,BBB,FOLDERN,LTTRB,2003-01-18 21:45:00,2003-07-11 14:58:00,NOT COLLATERAL
-167876,16384.308,DEE,DER,A,12186.6,272,21,CCC,FOLDERN,LTTRA,2003-01-18 22:45:00,2003-07-11 16:58:00,NOT COLLATERAL
-167887,16387.419,DFF,FVG,A,12186.44,267,20,DDD,FOLDERL,LTTRA,2003-01-18 23:45:00,2003-07-11 18:58:00,NOT COLLATERAL
-167898,16390.53,DGG,KWE,A,12186.28,262,19,AAB,FOLDERL,LTTRS,2003-01-19 00:45:00,2003-07-11 20:58:00,COLLATERAL
-167909,16393.641,DHH,WER,A,12186.12,257,18,AAC,FOLDERL,LTTRZ,2003-01-19 01:45:00,2003-07-11 22:58:00,COLLATERAL
-167920,16396.752,AAA,GFH,A,12185.96,252,17,AAD,FOLDERL,LTTRS,2003-01-19 02:45:00,2003-07-12 00:58:00,COLLATERAL
-167931,16399.863,BBB,BGF,A,12185.8,247,16,AAE,FOLDERL,LTTRS,2003-01-19 03:45:00,2003-07-12 02:58:00,NOT COLLATERAL
-167942,16402.974,CCC,XCS,A,12185.64,242,15,AAF,FOLDERA,LTTRS,2003-01-19 04:45:00,2003-07-12 04:58:00,NOT COLLATERAL
-167953,16406.085,DDD,JHK,A,12185.48,237,14,BBA,FOLDERB,LTTRS,2003-01-19 05:45:00,2003-07-12 06:58:00,NOT COLLATERAL
-167964,16409.196,AAB,SFD,A,12185.32,232,13,BBC,FOLDERC,LTTRS,2003-01-19 06:45:00,2003-07-12 08:58:00,NOT COLLATERAL
-167975,16412.307,AAC,WRE,A,12185.16,227,12,BBE,FOLDERD,LTTRS,2003-01-19 07:45:00,2003-07-12 10:58:00,NOT COLLATERAL
-167986,16415.418,AAD,HGV,A,12185,222,11,BBF,FOLDERE,LTTRS,2003-01-19 08:45:00,2003-07-12 12:58:00,NOT COLLATERAL
-167997,16418.529,AAE,KLS,A,12184.84,217,10,BBG,FOLDERF,LTTRS,2003-01-19 09:45:00,2003-07-12 14:58:00,NOT COLLATERAL
-168008,16421.64,AAF,SDK,A,12184.68,212,9,BBH,FOLDERG,LTTRS,2003-01-19 10:45:00,2003-07-12 16:58:00,NOT COLLATERAL
-168019,16424.751,BBA,MNV,A,12184.52,207,8,CCA,FOLDERH,LTTRS,2003-01-19 11:45:00,2003-07-12 18:58:00,NOT COLLATERAL
-168030,16427.862,BBC,OKW,A,12184.36,202,7,CCB,FOLDERI,LTTRS,2003-01-19 12:45:00,2003-07-12 20:58:00,COLLATERAL
-168041,16430.973,BBE,ASS,A,12184.2,197,6,CCD,FOLDERJ,LTTRS,2003-01-19 13:45:00,2003-07-12 22:58:00,COLLATERAL
-168052,16434.084,BBF,CKA,A,12184.04,192,5,CCE,FOLDERK,LTTRS,2003-01-19 14:45:00,2003-07-13 00:58:00,COLLATERAL
-168063,16437.195,BBG,SWQ,A,12183.88,187,4,CCF,FOLDERL,LTTRS,2003-01-19 15:45:00,2003-07-13 02:58:00,NOT COLLATERAL
-168074,16440.306,BBH,KUH,A,12183.72,182,3,CCG,FOLDERM,LTTRZ,2003-01-19 16:45:00,2003-07-13 04:58:00,NOT COLLATERAL
-168085,16443.417,CCA,XCV,A,12183.56,177,1,CCH,FOLDERN,LTTRA,2003-01-19 17:45:00,2003-07-13 06:58:00,NOT COLLATERAL
-168096,16446.528,CCB,ZAQ,A,12183.4,172,2,CCI,FOLDERO,LTTRB,2003-01-19 18:45:00,2003-07-13 08:58:00,NOT COLLATERAL
-168107,16449.639,CCD,MKO,A,12183.24,167,3,CCJ,FOLDERP,LTTRB,2003-01-19 19:45:00,2003-07-13 10:58:00,NOT COLLATERAL
-168118,16452.75,CCE,VFR,A,12183.08,162,4,DDD,FOLDERQ,LTTRA,2003-01-19 20:45:00,2003-07-13 12:58:00,NOT COLLATERAL
-168129,16455.861,CCF,YUJ,A,12182.92,157,5,DDA,FOLDERR,LTTRA,2003-01-19 21:45:00,2003-07-13 14:58:00,NOT COLLATERAL
-168140,16458.972,CCG,MED,A,12182.76,152,6,DAA,FOLDERS,LTTRS,2003-01-19 22:45:00,2003-07-13 16:58:00,NOT COLLATERAL
-168151,16462.083,CCH,SWE,A,12182.6,147,7,FKF,FOLDERT,LTTRZ,2003-01-19 23:45:00,2003-07-13 18:58:00,NOT COLLATERAL
-168162,16465.194,CCI,CVF,A,12182.44,142,8,LES,FOLDERU,LTTRS,2003-01-20 00:45:00,2003-07-13 20:58:00,COLLATERAL
-168173,16468.305,CCJ,DSFG,A,12182.28,137,9,KLD,FOLDERV,LTTRS,2003-01-20 01:45:00,2003-07-13 22:58:00,COLLATERAL
-168184,16471.416,DDD,ASDRE,A,12182.12,132,10,SKL,FOLDERW,LTTRS,2003-01-20 02:45:00,2003-07-14 00:58:00,COLLATERAL
-168195,16474.527,DDA,HJKSS,A,12181.96,127,11,SIW,FOLDERX,LTTRS,2003-01-20 03:45:00,2003-07-14 02:58:00,NOT COLLATERAL
-168206,16477.638,DAA,KHAA,A,12181.8,122,12,CKA,FOLDERY,LTTRS,2003-01-20 04:45:00,2003-07-14 04:58:00,NOT COLLATERAL
-168217,16480.749,DBB,KSLD,A,12181.64,117,13,LDE,FOLDERZ,LTTRS,2003-01-20 05:45:00,2003-07-14 06:58:00,NOT COLLATERAL
-168228,16483.86,DCC,EKID,A,12181.48,112,14,KFF,FOLDERA,LTTRS,2003-01-20 06:45:00,2003-07-14 08:58:00,NOT COLLATERAL
-168239,16486.971,DEE,VNCD,A,12181.32,107,15,EFH,FOLDERB,LTTRS,2003-01-20 07:45:00,2003-07-14 10:58:00,NOT COLLATERAL
-168250,16490.082,DFF,DKD,A,12181.16,102,16,NGC,FOLDERC,LTTRS,2003-01-20 08:45:00,2003-07-14 12:58:00,NOT COLLATERAL
-168261,16493.193,DGG,FKF,A,12181,97,17,DER,FOLDERD,LTTRS,2003-01-20 09:45:00,2003-07-14 14:58:00,NOT COLLATERAL
-168272,16496.304,DHH,LES,A,12180.84,92,18,FVG,FOLDERE,LTTRS,2003-01-20 10:45:00,2003-07-14 16:58:00,NOT COLLATERAL
-168283,16499.415,AAA,KLD,A,12180.68,87,19,KWE,FOLDERF,LTTRS,2003-01-20 11:45:00,2003-07-14 18:58:00,NOT COLLATERAL
-168294,16502.526,BBB,SKL,A,12180.52,82,20,WER,FOLDERG,LTTRS,2003-01-20 12:45:00,2003-07-14 20:58:00,COLLATERAL
-168305,16505.637,CCC,SIW,A,12180.36,77,21,GFH,FOLDERH,LTTRS,2003-01-20 13:45:00,2003-07-14 22:58:00,COLLATERAL
-168316,16508.748,DDD,CKA,A,12180.2,72,22,BGF,FOLDERI,LTTRZ,2003-01-20 14:45:00,2003-07-15 00:58:00,COLLATERAL
-168327,16511.859,AAB,LDE,A,12180.04,67,23,XCS,FOLDERJ,LTTRA,2003-01-20 15:45:00,2003-07-15 02:58:00,NOT COLLATERAL
-168338,16514.97,AAC,KFF,A,12179.88,62,24,JHK,FOLDERK,LTTRB,2003-01-20 16:45:00,2003-07-15 04:58:00,NOT COLLATERAL
-168349,16518.081,AAD,EFH,A,12179.72,57,25,SFD,FOLDERL,LTTRB,2003-01-20 17:45:00,2003-07-15 06:58:00,NOT COLLATERAL
-168360,16521.192,AAE,NGC,A,12179.56,52,26,WRE,FOLDERM,LTTRA,2003-01-20 18:45:00,2003-07-15 08:58:00,NOT COLLATERAL
-168371,16524.303,AAF,DER,A,12179.4,47,27,HGV,FOLDERN,LTTRA,2003-01-20 19:45:00,2003-07-15 10:58:00,NOT COLLATERAL
-168382,16527.414,BBA,FVG,A,12179.24,42,28,KLS,FOLDERO,LTTRS,2003-01-20 20:45:00,2003-07-15 12:58:00,NOT COLLATERAL
-168393,16530.525,BBC,KWE,A,12179.08,43,29,SDK,FOLDERP,LTTRZ,2003-01-20 21:45:00,2003-07-15 14:58:00,NOT COLLATERAL
-168404,16533.636,BBE,WER,A,12178.92,44,30,MNV,FOLDERQ,LTTRS,2003-01-20 22:45:00,2003-07-15 16:58:00,NOT COLLATERAL
-168415,16536.747,BBF,GFH,A,12178.76,45,31,OKW,FOLDERR,LTTRS,2003-01-20 23:45:00,2003-07-15 18:58:00,NOT COLLATERAL
-168426,16539.858,BBG,BGF,A,12178.6,46,32,ASS,FOLDERS,LTTRS,2003-01-21 00:45:00,2003-07-15 20:58:00,COLLATERAL
-168437,16542.969,BBH,XCS,A,12178.44,47,33,CKA,FOLDERT,LTTRS,2003-01-21 01:45:00,2003-07-15 22:58:00,COLLATERAL
-168448,16546.08,CCA,JHK,A,12178.28,48,34,SWQ,FOLDERU,LTTRS,2003-01-21 02:45:00,2003-07-16 00:58:00,COLLATERAL
-168459,16549.191,CCB,SFD,A,12178.12,49,35,KUH,FOLDERV,LTTRS,2003-01-21 03:45:00,2003-07-16 02:58:00,NOT COLLATERAL
-168470,16552.302,CCD,WRE,A,12177.96,50,36,XCV,FOLDERW,LTTRS,2003-01-21 04:45:00,2003-07-16 04:58:00,NOT COLLATERAL
-168481,16555.413,CCE,HGV,A,12177.8,51,37,ZAQ,FOLDERX,LTTRS,2003-01-21 05:45:00,2003-07-16 06:58:00,NOT COLLATERAL
-168492,16558.524,CCF,KLS,A,12177.64,52,38,MKO,FOLDERY,LTTRS,2003-01-21 06:45:00,2003-07-16 08:58:00,NOT COLLATERAL
-168503,16561.635,CCG,SDK,A,12177.48,53,39,VFR,FOLDERZ,LTTRS,2003-01-21 07:45:00,2003-07-16 10:58:00,NOT COLLATERAL
-168514,16564.746,CCH,MNV,A,12177.32,54,40,YUJ,FOLDERZ,LTTRS,2003-01-21 08:45:00,2003-07-16 12:58:00,NOT COLLATERAL
-168525,16567.857,CCI,OKW,A,12177.16,55,41,AAA,FOLDERZ,LTTRS,2003-01-21 09:45:00,2003-07-16 14:58:00,NOT COLLATERAL
-168536,16570.968,CCJ,ASS,A,12177,56,42,BBB,FOLDERZ,LTTRS,2003-01-21 10:45:00,2003-07-16 16:58:00,NOT COLLATERAL
-168547,16574.079,DDD,CKA,A,12176.84,57,43,CCC,FOLDERZ,LTTRS,2003-01-21 11:45:00,2003-07-16 18:58:00,NOT COLLATERAL
-168558,16577.19,DDA,SWQ,A,12176.68,58,44,DDD,FOLDERZ,LTTRZ,2003-01-21 12:45:00,2003-07-16 20:58:00,COLLATERAL
-168569,16580.301,DAA,KUH,A,12176.52,59,45,AAB,FOLDERZ,LTTRA,2003-01-21 13:45:00,2003-07-16 22:58:00,COLLATERAL
-168580,16583.412,DBB,XCV,A,12176.36,60,46,AAC,FOLDERZ,LTTRB,2003-01-21 14:45:00,2003-07-17 00:58:00,COLLATERAL
-168591,16586.523,DCC,ZAQ,A,12176.2,61,47,AAD,FOLDERZ,LTTRB,2003-01-21 15:45:00,2003-07-17 02:58:00,NOT COLLATERAL
-168602,16589.634,DEE,MKO,A,12176.04,62,48,AAE,FOLDERZ,LTTRA,2003-01-21 16:45:00,2003-07-17 04:58:00,NOT COLLATERAL
-168613,16592.745,DFF,VFR,A,12175.88,63,49,AAF,FOLDERZ,LTTRA,2003-01-21 17:45:00,2003-07-17 06:58:00,NOT COLLATERAL
-168624,16595.856,DGG,YUJ,A,12175.72,64,48,BBA,FOLDERZ,LTTRS,2003-01-21 18:45:00,2003-07-17 08:58:00,NOT COLLATERAL
-168635,16598.967,DHH,MED,A,12175.56,65,47,BBC,FOLDERZ,LTTRZ,2003-01-21 19:45:00,2003-07-17 10:58:00,NOT COLLATERAL
-168646,16602.078,AAA,SWE,A,12175.4,66,46,BBE,FOLDERZ,LTTRS,2003-01-21 20:45:00,2003-07-17 12:58:00,NOT COLLATERAL
-168657,16605.189,BBB,CVF,A,12175.24,67,45,BBF,FOLDERX,LTTRS,2003-01-21 21:45:00,2003-07-17 14:58:00,NOT COLLATERAL
-168668,16608.3,CCC,DSFG,A,12175.08,68,44,BBG,FOLDERX,LTTRS,2003-01-21 22:45:00,2003-07-17 16:58:00,NOT COLLATERAL
-168679,16611.411,DDD,ASDRE,A,12174.92,69,43,BBH,FOLDERX,LTTRS,2003-01-21 23:45:00,2003-07-17 18:58:00,NOT COLLATERAL
-168690,16614.522,AAB,HJKSS,A,12174.76,70,42,CCA,FOLDERX,LTTRS,2003-01-22 00:45:00,2003-07-17 20:58:00,COLLATERAL
-168701,16617.633,AAC,KHAA,A,12174.6,71,41,CCB,FOLDERX,LTTRS,2003-01-22 01:45:00,2003-07-17 22:58:00,COLLATERAL
-168712,16620.744,AAD,KSLD,A,12174.44,72,40,CCD,FOLDERX,LTTRS,2003-01-22 02:45:00,2003-07-18 00:58:00,COLLATERAL
-168723,16623.855,AAE,EKID,A,12174.28,73,39,CCE,FOLDERX,LTTRS,2003-01-22 03:45:00,2003-07-18 02:58:00,NOT COLLATERAL
-168734,16626.966,AAF,VNCD,A,12174.12,74,38,CCF,FOLDERX,LTTRS,2003-01-22 04:45:00,2003-07-18 04:58:00,NOT COLLATERAL
-168745,16630.077,BBA,DKD,A,12173.96,75,37,CCG,FOLDERX,LTTRS,2003-01-22 05:45:00,2003-07-18 06:58:00,NOT COLLATERAL
-168756,16633.188,BBC,FKF,A,12173.8,76,36,CCH,FOLDERX,LTTRS,2003-01-22 06:45:00,2003-07-18 08:58:00,NOT COLLATERAL
-168767,16636.299,BBE,LES,A,12173.64,77,35,CCI,FOLDERX,LTTRS,2003-01-22 07:45:00,2003-07-18 10:58:00,NOT COLLATERAL
-168778,16639.41,BBF,KLD,A,12173.48,78,34,CCJ,FOLDERX,LTTRS,2003-01-22 08:45:00,2003-07-18 12:58:00,NOT COLLATERAL
-168789,16642.521,BBG,SKL,A,12173.32,79,33,DDD,FOLDERR,LTTRS,2003-01-22 09:45:00,2003-07-18 14:58:00,NOT COLLATERAL
-168800,16645.632,BBH,SIW,A,12173.16,80,32,DDA,FOLDERS,LTTRZ,2003-01-22 10:45:00,2003-07-18 16:58:00,NOT COLLATERAL
-168811,16648.743,CCA,CKA,A,12173,81,31,DAA,FOLDERX,LTTRA,2003-01-22 11:45:00,2003-07-18 18:58:00,NOT COLLATERAL
-168822,16651.854,CCB,LDE,A,12172.84,82,30,FKF,FOLDERR,LTTRB,2003-01-22 12:45:00,2003-07-18 20:58:00,COLLATERAL
-168833,16654.965,CCD,KFF,A,12172.68,83,29,LES,FOLDERS,LTTRB,2003-01-22 13:45:00,2003-07-18 22:58:00,COLLATERAL
-168844,16658.076,CCE,EFH,A,12172.52,84,28,KLD,FOLDERX,LTTRA,2003-01-22 14:45:00,2003-07-19 00:58:00,COLLATERAL
-168855,16661.187,CCF,NGC,A,12172.36,85,27,SKL,FOLDERR,LTTRA,2003-01-22 15:45:00,2003-07-19 02:58:00,NOT COLLATERAL
-168866,16664.298,CCG,DER,A,12172.2,86,26,SIW,FOLDERS,LTTRS,2003-01-22 16:45:00,2003-07-19 04:58:00,NOT COLLATERAL
-168877,16667.409,CCH,FVG,A,12172.04,87,25,CKA,FOLDERX,LTTRZ,2003-01-22 17:45:00,2003-07-19 06:58:00,NOT COLLATERAL
-168888,16670.52,CCI,KWE,A,12171.88,88,24,LDE,FOLDERR,LTTRS,2003-01-22 18:45:00,2003-07-19 08:58:00,NOT COLLATERAL
-168899,16673.631,CCJ,WER,A,12171.72,89,23,KFF,FOLDERS,LTTRS,2003-01-22 19:45:00,2003-07-19 10:58:00,NOT COLLATERAL
-168910,16676.742,DDD,GFH,A,12171.56,90,22,EFH,FOLDERX,LTTRS,2003-01-22 20:45:00,2003-07-19 12:58:00,NOT COLLATERAL
-168921,16679.853,DDA,BGF,A,12171.4,91,21,NGC,FOLDERR,LTTRS,2003-01-22 21:44:00,2003-07-19 14:58:00,NOT COLLATERAL
-168932,16682.964,DAA,XCS,A,12171.24,92,20,DER,FOLDERS,LTTRS,2003-01-22 22:44:00,2003-07-19 16:58:00,NOT COLLATERAL
-168943,16686.075,DBB,JHK,A,12171.08,93,19,FVG,FOLDERX,LTTRS,2003-01-22 23:44:00,2003-07-19 18:58:00,NOT COLLATERAL
-168954,16689.186,DCC,SFD,A,12170.92,94,18,KWE,FOLDERD,LTTRS,2003-01-23 00:44:00,2003-07-19 20:58:00,COLLATERAL
-168965,16692.297,DEE,WRE,A,12170.76,95,17,WER,FOLDERE,LTTRS,2003-01-23 01:44:00,2003-07-19 22:58:00,COLLATERAL
-168976,16695.408,DFF,HGV,A,12170.6,96,16,GFH,FOLDERF,LTTRS,2003-01-23 02:44:00,2003-07-20 00:58:00,COLLATERAL
-168987,16698.519,DGG,KLS,A,12170.44,97,15,BGF,FOLDERG,LTTRS,2003-01-23 03:44:00,2003-07-20 02:58:00,NOT COLLATERAL
-168998,16701.63,DHH,SDK,A,12170.28,98,14,XCS,FOLDERH,LTTRS,2003-01-23 04:44:00,2003-07-20 04:58:00,NOT COLLATERAL
-169009,16704.741,AAA,MNV,A,12170.12,99,13,JHK,FOLDERI,LTTRS,2003-01-23 05:44:00,2003-07-20 06:58:00,NOT COLLATERAL
-169020,16707.852,BBB,OKW,A,12169.96,100,12,SFD,FOLDERJ,LTTRS,2003-01-23 06:44:00,2003-07-20 08:58:00,NOT COLLATERAL
-169031,16710.963,CCC,ASS,A,12169.8,101,11,WRE,FOLDERK,LTTRS,2003-01-23 07:44:00,2003-07-20 10:58:00,NOT COLLATERAL
-169042,16714.074,DDD,CKA,A,12169.64,102,10,HGV,FOLDERL,LTTRZ,2003-01-23 08:44:00,2003-07-20 12:58:00,NOT COLLATERAL
-169053,16717.185,AAB,SWQ,A,12169.48,103,9,KLS,FOLDERM,LTTRA,2003-01-23 09:44:00,2003-07-20 14:58:00,NOT COLLATERAL
-169064,16720.296,AAC,KUH,A,12169.32,104,8,SDK,FOLDERN,LTTRB,2003-01-23 10:44:00,2003-07-20 16:58:00,NOT COLLATERAL
-169075,16723.407,AAD,XCV,A,12169.16,105,7,MNV,FOLDERN,LTTRB,2003-01-23 11:44:00,2003-07-20 18:58:00,NOT COLLATERAL
-169086,16726.518,AAE,ZAQ,A,12169,106,6,OKW,FOLDERN,LTTRA,2003-01-23 12:44:00,2003-07-20 20:58:00,COLLATERAL
-169097,16729.629,AAF,MKO,A,12168.84,107,5,ASS,FOLDERN,LTTRA,2003-01-23 13:44:00,2003-07-20 22:58:00,COLLATERAL
-169108,16732.74,BBA,VFR,A,12168.68,108,4,CKA,FOLDERL,LTTRS,2003-01-23 14:44:00,2003-07-21 00:58:00,COLLATERAL
-169119,16735.851,BBC,YUJ,A,12168.52,109,3,SWQ,FOLDERL,LTTRZ,2003-01-23 15:44:00,2003-07-21 02:58:00,NOT COLLATERAL
-169130,16738.962,BBE,MED,A,12168.36,110,1,KUH,FOLDERL,LTTRS,2003-01-23 16:44:00,2003-07-21 04:58:00,NOT COLLATERAL
-169141,16742.073,BBF,SWE,A,12168.2,111,2,XCV,FOLDERL,LTTRS,2003-01-23 17:44:00,2003-07-21 06:58:00,NOT COLLATERAL
-169152,16745.184,BBG,CVF,A,12168.04,112,3,ZAQ,FOLDERL,LTTRS,2003-01-23 18:44:00,2003-07-21 08:58:00,NOT COLLATERAL
-169163,16748.295,BBH,DSFG,A,12167.88,113,4,MKO,FOLDERA,LTTRS,2003-01-23 19:44:00,2003-07-21 10:58:00,NOT COLLATERAL
-169174,16751.406,CCA,ASDRE,A,12167.72,114,5,VFR,FOLDERB,LTTRS,2003-01-23 20:44:00,2003-07-21 12:58:00,NOT COLLATERAL
-169185,16754.517,CCB,HJKSS,A,12167.56,115,6,YUJ,FOLDERC,LTTRS,2003-01-23 21:44:00,2003-07-21 14:58:00,NOT COLLATERAL
-169196,16757.628,CCD,KHAA,A,12167.4,116,7,AAA,FOLDERD,LTTRS,2003-01-23 22:44:00,2003-07-21 16:58:00,NOT COLLATERAL
-169207,16760.739,CCE,KSLD,A,12167.24,117,8,BBB,FOLDERE,LTTRS,2003-01-23 23:44:00,2003-07-21 18:58:00,NOT COLLATERAL
-169218,16763.85,CCF,EKID,A,12167.08,118,9,CCC,FOLDERF,LTTRS,2003-01-24 00:44:00,2003-07-21 20:58:00,COLLATERAL
-169229,16766.961,CCG,VNCD,A,12166.92,119,10,DDD,FOLDERG,LTTRS,2003-01-24 01:44:00,2003-07-21 22:58:00,COLLATERAL
-169240,16770.072,CCH,DKD,A,12166.76,120,11,AAB,FOLDERH,LTTRS,2003-01-24 02:44:00,2003-07-22 00:58:00,COLLATERAL
-169251,16773.183,CCI,FKF,A,12166.6,121,12,AAC,FOLDERI,LTTRS,2003-01-24 03:44:00,2003-07-22 02:58:00,NOT COLLATERAL
-169262,16776.294,CCJ,LES,A,12166.44,122,13,AAD,FOLDERJ,LTTRS,2003-01-24 04:44:00,2003-07-22 04:58:00,NULL
-169273,16779.405,DDD,KLD,A,12166.28,123,14,AAE,FOLDERK,LTTRS,2003-01-24 05:44:00,2003-07-22 06:58:00,NULL
-169284,16782.516,DDA,SKL,A,12166.12,124,15,AAF,FOLDERL,LTTRZ,2003-01-24 06:44:00,2003-07-22 08:58:00,NULL
-169295,16785.627,DAA,SIW,A,12165.96,125,16,BBA,FOLDERM,LTTRA,2003-01-24 07:44:00,2003-07-22 10:58:00,NULL
-169306,16788.738,DBB,CKA,A,12165.8,126,17,BBC,FOLDERN,LTTRB,2003-01-24 08:44:00,2003-07-22 12:58:00,NULL
-169317,16791.849,DCC,LDE,A,12165.64,127,18,BBE,FOLDERO,LTTRB,2003-01-24 09:44:00,2003-07-22 14:58:00,NULL
-169328,16794.96,DEE,KFF,A,12165.48,128,19,BBF,FOLDERP,LTTRA,2003-01-24 10:44:00,2003-07-22 16:58:00,NOT COLLATERAL
-169339,16798.071,DFF,EFH,A,12165.32,129,20,BBG,FOLDERQ,LTTRA,2003-01-24 11:44:00,2003-07-22 18:58:00,NOT COLLATERAL
-169350,16801.182,DGG,NGC,A,12165.16,130,21,BBH,FOLDERR,LTTRS,2003-01-24 12:44:00,2003-07-22 20:58:00,COLLATERAL
-169361,16804.293,DHH,DER,A,12165,131,22,CCA,FOLDERS,LTTRZ,2003-01-24 13:44:00,2003-07-22 22:58:00,COLLATERAL
-169372,16807.404,AAA,FVG,A,12164.84,132,23,CCB,FOLDERT,LTTRS,2003-01-24 14:44:00,2003-07-23 00:58:00,COLLATERAL
-169383,16810.515,BBB,KWE,A,12164.68,133,24,CCD,FOLDERU,LTTRS,2003-01-24 15:44:00,2003-07-23 02:58:00,NULL
-169394,16813.626,CCC,WER,A,12164.52,134,25,CCE,FOLDERV,LTTRS,2003-01-24 16:44:00,2003-07-23 04:58:00,NULL
-169405,16816.737,DDD,GFH,A,12164.36,135,26,CCF,FOLDERW,LTTRS,2003-01-24 17:44:00,2003-07-23 06:58:00,NULL
-169416,16819.848,AAB,BGF,A,12164.2,136,27,CCG,FOLDERX,LTTRS,2003-01-24 18:44:00,2003-07-23 08:58:00,NULL
-169427,16822.959,AAC,XCS,A,12164.04,137,28,CCH,FOLDERY,LTTRS,2003-01-24 19:44:00,2003-07-23 10:58:00,NULL
-169438,16826.07,AAD,JHK,A,12163.88,138,29,CCI,FOLDERZ,LTTRS,2003-01-24 20:44:00,2003-07-23 12:58:00,NULL
-169449,16829.181,AAE,SFD,A,12163.72,139,30,CCJ,FOLDERA,LTTRS,2003-01-24 21:44:00,2003-07-23 14:58:00,NOT COLLATERAL
-169460,16832.292,AAF,WRE,A,12163.56,140,31,DDD,FOLDERB,LTTRS,2003-01-24 22:44:00,2003-07-23 16:58:00,NOT COLLATERAL
-169471,16835.403,BBA,HGV,A,12163.4,141,32,DDA,FOLDERC,LTTRS,2003-01-24 23:44:00,2003-07-23 18:58:00,NOT COLLATERAL
-169482,16838.514,BBC,KLS,A,12163.24,142,33,DAA,FOLDERD,LTTRS,2003-01-25 00:44:00,2003-07-23 20:58:00,COLLATERAL
-169493,16841.625,BBE,SDK,A,12163.08,143,34,FKF,FOLDERE,LTTRS,2003-01-25 01:44:00,2003-07-23 22:58:00,COLLATERAL
-169504,16844.736,BBF,MNV,A,12162.92,144,35,LES,FOLDERF,LTTRS,2003-01-25 02:44:00,2003-07-24 00:58:00,COLLATERAL
-169515,16847.847,BBG,OKW,A,12162.76,145,36,KLD,FOLDERG,LTTRS,2003-01-25 03:44:00,2003-07-24 02:58:00,NULL
-169526,16850.958,BBH,ASS,A,12162.6,146,37,SKL,FOLDERH,LTTRZ,2003-01-25 04:44:00,2003-07-24 04:58:00,NULL
-169537,16854.069,CCA,CKA,A,12162.44,147,38,SIW,FOLDERI,LTTRA,2003-01-25 05:44:00,2003-07-24 06:58:00,NULL
-169548,16857.18,CCB,SWQ,A,12162.28,148,39,CKA,FOLDERJ,LTTRB,2003-01-25 06:44:00,2003-07-24 08:58:00,NULL
-169559,16860.291,CCD,KUH,A,12162.12,149,40,LDE,FOLDERK,LTTRB,2003-01-25 07:44:00,2003-07-24 10:58:00,NULL
-169570,16863.402,CCE,XCV,A,12161.96,150,41,KFF,FOLDERL,LTTRA,2003-01-25 08:44:00,2003-07-24 12:58:00,NULL
-169581,16866.513,CCF,ZAQ,A,12161.8,151,42,EFH,FOLDERM,LTTRA,2003-01-25 09:44:00,2003-07-24 14:58:00,NULL
-169592,16869.624,CCG,MKO,A,12161.64,152,43,NGC,FOLDERN,LTTRS,2003-01-25 10:44:00,2003-07-24 16:58:00,NULL
-169603,16872.735,CCH,VFR,A,12161.48,153,44,DER,FOLDERO,LTTRZ,2003-01-25 11:44:00,2003-07-24 18:58:00,NULL
-169614,16875.846,CCI,YUJ,A,12161.32,154,45,FVG,FOLDERP,LTTRS,2003-01-25 12:44:00,2003-07-24 20:58:00,COLLATERAL
-169625,16878.957,CCJ,MED,A,12161.16,155,46,KWE,FOLDERQ,LTTRS,2003-01-25 13:44:00,2003-07-24 22:58:00,COLLATERAL
-169636,16882.068,DDD,SWE,A,12161,156,47,WER,FOLDERR,LTTRS,2003-01-25 14:44:00,2003-07-25 00:58:00,COLLATERAL
-169647,16885.179,DDA,CVF,A,12160.84,157,48,GFH,FOLDERS,LTTRS,2003-01-25 15:44:00,2003-07-25 02:58:00,NOT COLLATERAL
-169658,16888.29,DAA,DSFG,A,12160.68,158,49,BGF,FOLDERT,LTTRS,2003-01-25 16:44:00,2003-07-25 04:58:00,NOT COLLATERAL
-169669,16891.401,DBB,ASDRE,A,12160.52,159,48,XCS,FOLDERU,LTTRS,2003-01-25 17:44:00,2003-07-25 06:58:00,NOT COLLATERAL
-169680,16894.512,DCC,HJKSS,A,12160.36,160,47,JHK,FOLDERV,LTTRS,2003-01-25 18:44:00,2003-07-25 08:58:00,NOT COLLATERAL
-169691,16897.623,DEE,KHAA,A,12160.2,161,46,SFD,FOLDERW,LTTRS,2003-01-25 19:44:00,2003-07-25 10:58:00,NOT COLLATERAL
-169702,16900.734,DFF,KSLD,A,12160.04,162,45,WRE,FOLDERX,LTTRS,2003-01-25 20:44:00,2003-07-25 12:58:00,NOT COLLATERAL
-169713,16903.845,DGG,EKID,A,12159.88,163,44,HGV,FOLDERY,LTTRS,2003-01-25 21:44:00,2003-07-25 14:58:00,NOT COLLATERAL
-169724,16906.956,DHH,VNCD,A,12159.72,164,43,KLS,FOLDERZ,LTTRS,2003-01-25 22:44:00,2003-07-25 16:58:00,NOT COLLATERAL
-169735,16910.067,AAA,DKD,A,12159.56,165,42,SDK,FOLDERZ,LTTRS,2003-01-25 23:44:00,2003-07-25 18:58:00,NOT COLLATERAL
-169746,16913.178,BBB,FKF,A,12159.4,166,41,MNV,FOLDERZ,LTTRS,2003-01-26 00:44:00,2003-07-25 20:58:00,COLLATERAL
-169757,16916.289,CCC,LES,A,12159.24,167,40,OKW,FOLDERZ,LTTRS,2003-01-26 01:44:00,2003-07-25 22:58:00,COLLATERAL
-169768,16919.4,DDD,KLD,A,12159.08,168,39,ASS,FOLDERZ,LTTRZ,2003-01-26 02:44:00,2003-07-26 00:58:00,COLLATERAL
-169779,16922.511,AAB,SKL,A,12158.92,169,38,CKA,FOLDERZ,LTTRA,2003-01-26 03:44:00,2003-07-26 02:58:00,NOT COLLATERAL
-169790,16925.622,AAC,SIW,A,12158.76,170,37,SWQ,FOLDERZ,LTTRB,2003-01-26 04:44:00,2003-07-26 04:58:00,NOT COLLATERAL
-169801,16928.733,AAD,CKA,A,12158.6,171,36,KUH,FOLDERZ,LTTRB,2003-01-26 05:44:00,2003-07-26 06:58:00,NOT COLLATERAL
-169812,16931.844,AAE,LDE,A,12158.44,172,35,XCV,FOLDERZ,LTTRA,2003-01-26 06:44:00,2003-07-26 08:58:00,NOT COLLATERAL
-169823,16934.955,AAF,KFF,A,12158.28,173,34,ZAQ,FOLDERZ,LTTRA,2003-01-26 07:44:00,2003-07-26 10:58:00,NOT COLLATERAL
-169834,16938.066,BBA,EFH,A,12158.12,174,33,MKO,FOLDERZ,LTTRS,2003-01-26 08:44:00,2003-07-26 12:58:00,NOT COLLATERAL
-169845,16941.177,BBC,NGC,A,12157.96,175,32,VFR,FOLDERZ,LTTRZ,2003-01-26 09:44:00,2003-07-26 14:58:00,NOT COLLATERAL
-169856,16944.288,BBE,DER,A,12157.8,176,31,YUJ,FOLDERZ,LTTRS,2003-01-26 10:44:00,2003-07-26 16:58:00,NOT COLLATERAL
-169867,16947.399,BBF,FVG,A,12157.64,177,30,AAA,FOLDERZ,LTTRS,2003-01-26 11:44:00,2003-07-26 18:58:00,NOT COLLATERAL
-169878,16950.51,BBG,KWE,A,12157.48,178,29,BBB,FOLDERX,LTTRS,2003-01-26 12:44:00,2003-07-26 20:58:00,COLLATERAL
-169889,16953.621,BBH,WER,A,12157.32,179,28,CCC,FOLDERX,LTTRS,2003-01-26 13:44:00,2003-07-26 22:58:00,COLLATERAL
-169900,16956.732,CCA,GFH,A,12157.16,180,27,DDD,FOLDERX,LTTRS,2003-01-26 14:44:00,2003-07-27 00:58:00,COLLATERAL
-169911,16959.843,CCB,BGF,A,12157,181,26,AAB,FOLDERX,LTTRS,2003-01-26 15:44:00,2003-07-27 02:58:00,NOT COLLATERAL
-169922,16962.954,CCD,XCS,A,12156.84,182,25,AAC,FOLDERX,LTTRS,2003-01-26 16:44:00,2003-07-27 04:58:00,NOT COLLATERAL
-169933,16966.065,CCE,JHK,A,12156.68,183,24,AAD,FOLDERX,LTTRS,2003-01-26 17:44:00,2003-07-27 06:58:00,NOT COLLATERAL
-169944,16969.176,CCF,SFD,A,12156.52,184,23,AAE,FOLDERX,LTTRS,2003-01-26 18:44:00,2003-07-27 08:58:00,NOT COLLATERAL
-169955,16972.287,CCG,WRE,A,12156.36,185,22,AAF,FOLDERX,LTTRS,2003-01-26 19:44:00,2003-07-27 10:58:00,NOT COLLATERAL
-169966,16975.398,CCH,HGV,A,12156.2,186,21,BBA,FOLDERX,LTTRS,2003-01-26 20:44:00,2003-07-27 12:58:00,NOT COLLATERAL
-169977,16978.509,CCI,KLS,A,12156.04,187,20,BBC,FOLDERX,LTTRS,2003-01-26 21:44:00,2003-07-27 14:58:00,NOT COLLATERAL
-169988,16981.62,CCJ,SDK,A,12155.88,188,19,BBE,FOLDERX,LTTRS,2003-01-26 22:44:00,2003-07-27 16:58:00,NOT COLLATERAL
-169999,16984.731,DDD,MNV,A,12155.72,189,18,BBF,FOLDERX,LTTRS,2003-01-26 23:44:00,2003-07-27 18:58:00,NOT COLLATERAL
-170010,16987.842,DDA,OKW,A,12155.56,190,17,BBG,FOLDERR,LTTRZ,2003-01-27 00:44:00,2003-07-27 20:58:00,COLLATERAL
-170021,16990.953,DAA,ASS,A,12155.4,191,16,BBH,FOLDERS,LTTRA,2003-01-27 01:44:00,2003-07-27 22:58:00,COLLATERAL
-170032,16994.064,DBB,CKA,A,12155.24,192,15,CCA,FOLDERX,LTTRB,2003-01-27 02:44:00,2003-07-28 00:58:00,COLLATERAL
-170043,16997.175,DCC,SWQ,A,12155.08,193,14,CCB,FOLDERR,LTTRB,2003-01-27 03:44:00,2003-07-28 02:58:00,NOT COLLATERAL
-170054,17000.286,DEE,KUH,A,12154.92,194,13,CCD,FOLDERS,LTTRA,2003-01-27 04:44:00,2003-07-28 04:58:00,NOT COLLATERAL
-170065,17003.397,DFF,XCV,A,12154.76,195,12,CCE,FOLDERX,LTTRA,2003-01-27 05:44:00,2003-07-28 06:58:00,NOT COLLATERAL
-170076,17006.508,DGG,ZAQ,A,12154.6,196,11,CCF,FOLDERR,LTTRS,2003-01-27 06:44:00,2003-07-28 08:58:00,NOT COLLATERAL
-170087,17009.619,DHH,MKO,A,12154.44,197,10,CCG,FOLDERS,LTTRZ,2003-01-27 07:44:00,2003-07-28 10:58:00,NOT COLLATERAL
-170098,17012.73,AAA,VFR,A,12154.28,198,9,CCH,FOLDERX,LTTRS,2003-01-27 08:44:00,2003-07-28 12:58:00,NOT COLLATERAL
-170109,17015.841,BBB,YUJ,A,12154.12,199,8,CCI,FOLDERR,LTTRS,2003-01-27 09:44:00,2003-07-28 14:58:00,NOT COLLATERAL
-170120,17018.952,CCC,MED,A,12153.96,200,7,CCJ,FOLDERS,LTTRS,2003-01-27 10:44:00,2003-07-28 16:58:00,NOT COLLATERAL
-170131,17022.063,DDD,SWE,A,12153.8,201,6,DDD,FOLDERX,LTTRS,2003-01-27 11:44:00,2003-07-28 18:58:00,NOT COLLATERAL
-170142,17025.174,AAB,CVF,A,12153.64,202,5,DDA,FOLDERR,LTTRS,2003-01-27 12:44:00,2003-07-28 20:58:00,COLLATERAL
-170153,17028.285,AAC,DSFG,A,12153.48,203,4,DAA,FOLDERS,LTTRS,2003-01-27 13:44:00,2003-07-28 22:58:00,COLLATERAL
-170164,17031.396,AAD,ASDRE,A,12153.32,204,3,FKF,FOLDERX,LTTRS,2003-01-27 14:44:00,2003-07-29 00:58:00,COLLATERAL
-170175,17034.507,AAE,HJKSS,A,12153.16,205,1,LES,FOLDERD,LTTRS,2003-01-27 15:44:00,2003-07-29 02:58:00,NOT COLLATERAL
-170186,17037.618,AAF,KHAA,A,12153,206,2,KLD,FOLDERE,LTTRS,2003-01-27 16:44:00,2003-07-29 04:58:00,NOT COLLATERAL
-170197,17040.729,BBA,KSLD,A,12152.84,207,3,SKL,FOLDERF,LTTRS,2003-01-27 17:44:00,2003-07-29 06:58:00,NOT COLLATERAL
-170208,17043.84,BBC,EKID,A,12152.68,208,4,SIW,FOLDERG,LTTRS,2003-01-27 18:44:00,2003-07-29 08:58:00,NOT COLLATERAL
-170219,17046.951,BBE,VNCD,A,12152.52,209,5,CKA,FOLDERH,LTTRS,2003-01-27 19:44:00,2003-07-29 10:58:00,NOT COLLATERAL
-170230,17050.062,BBF,DKD,A,12152.36,210,6,LDE,FOLDERI,LTTRS,2003-01-27 20:44:00,2003-07-29 12:58:00,NOT COLLATERAL
-170241,17053.173,BBG,FKF,A,12152.2,211,7,KFF,FOLDERJ,LTTRS,2003-01-27 21:44:00,2003-07-29 14:58:00,NOT COLLATERAL
-170252,17056.284,BBH,LES,A,12152.04,212,8,EFH,FOLDERK,LTTRZ,2003-01-27 22:44:00,2003-07-29 16:58:00,NOT COLLATERAL
-170263,17059.395,CCA,KLD,A,12151.88,213,9,NGC,FOLDERL,LTTRA,2003-01-27 23:44:00,2003-07-29 18:58:00,NOT COLLATERAL
-170274,17062.506,CCB,SKL,A,12151.72,214,10,DER,FOLDERM,LTTRB,2003-01-28 00:44:00,2003-07-29 20:58:00,COLLATERAL
-170285,17065.617,CCD,SIW,A,12151.56,215,11,FVG,FOLDERN,LTTRB,2003-01-28 01:44:00,2003-07-29 22:58:00,COLLATERAL
-170296,17068.728,CCE,CKA,A,12151.4,216,12,KWE,FOLDERN,LTTRA,2003-01-28 02:44:00,2003-07-30 00:58:00,COLLATERAL
-170307,17071.839,CCF,LDE,A,12151.24,217,13,WER,FOLDERN,LTTRA,2003-01-28 03:44:00,2003-07-30 02:58:00,NOT COLLATERAL
-170318,17074.95,CCG,KFF,A,12151.08,218,14,GFH,FOLDERN,LTTRS,2003-01-28 04:44:00,2003-07-30 04:58:00,NOT COLLATERAL
-170329,17078.061,CCH,EFH,A,12150.92,219,15,BGF,FOLDERL,LTTRZ,2003-01-28 05:44:00,2003-07-30 06:58:00,NOT COLLATERAL
-170340,17081.172,CCI,NGC,A,12150.76,220,16,XCS,FOLDERL,LTTRS,2003-01-28 06:44:00,2003-07-30 08:58:00,NOT COLLATERAL
-170351,17084.283,CCJ,DER,A,12150.6,221,17,JHK,FOLDERL,LTTRS,2003-01-28 07:44:00,2003-07-30 10:58:00,NOT COLLATERAL
-170362,17087.394,DDD,FVG,A,12150.44,222,18,SFD,FOLDERL,LTTRS,2003-01-28 08:44:00,2003-07-30 12:58:00,NOT COLLATERAL
-170373,17090.505,DDA,KWE,A,12150.28,223,19,WRE,FOLDERL,LTTRS,2003-01-28 09:44:00,2003-07-30 14:58:00,NOT COLLATERAL
-170384,17093.616,DAA,WER,A,12150.12,224,20,HGV,FOLDERA,LTTRS,2003-01-28 10:44:00,2003-07-30 16:58:00,NOT COLLATERAL
-170395,17096.727,DBB,GFH,A,12149.96,225,21,KLS,FOLDERB,LTTRS,2003-01-28 11:44:00,2003-07-30 18:58:00,NOT COLLATERAL
-170406,17099.838,DCC,BGF,A,12149.8,226,22,SDK,FOLDERC,LTTRS,2003-01-28 12:44:00,2003-07-30 20:58:00,COLLATERAL
-170417,17102.949,DEE,XCS,A,12149.64,227,23,MNV,FOLDERD,LTTRS,2003-01-28 13:44:00,2003-07-30 22:58:00,COLLATERAL
-170428,17106.06,DFF,JHK,A,12149.48,228,24,OKW,FOLDERE,LTTRS,2003-01-28 14:44:00,2003-07-31 00:58:00,COLLATERAL
-170439,17109.171,DGG,SFD,A,12135.66,229,25,ASS,FOLDERF,LTTRS,2003-01-28 15:44:00,2003-07-31 02:58:00,NOT COLLATERAL
-170450,17112.282,DHH,WRE,A,12121.84,230,26,CKA,FOLDERG,LTTRS,2003-01-28 16:44:00,2003-07-31 04:58:00,NOT COLLATERAL
-170461,17115.393,AAA,HGV,A,12108.02,231,27,SWQ,FOLDERH,LTTRS,2003-01-28 17:44:00,2003-07-31 06:58:00,NOT COLLATERAL
-170472,17118.504,BBB,KLS,A,12094.2,232,28,KUH,FOLDERI,LTTRS,2003-01-28 18:44:00,2003-07-31 08:58:00,NOT COLLATERAL
-170483,17121.615,CCC,SDK,A,12080.38,233,29,XCV,FOLDERJ,LTTRS,2003-01-28 19:44:00,2003-07-31 10:58:00,NOT COLLATERAL
-170494,17124.726,DDD,MNV,A,12066.56,234,30,ZAQ,FOLDERK,LTTRZ,2003-01-28 20:44:00,2003-07-31 12:58:00,NOT COLLATERAL
-170505,17127.837,AAB,OKW,A,12052.74,235,31,MKO,FOLDERL,LTTRA,2003-01-28 21:44:00,2003-07-31 14:58:00,NOT COLLATERAL
-170516,17130.948,AAC,ASS,A,12038.92,236,32,VFR,FOLDERM,LTTRB,2003-01-28 22:44:00,2003-07-31 16:58:00,NOT COLLATERAL
-170527,17134.059,AAD,CKA,A,12025.1,237,33,YUJ,FOLDERN,LTTRB,2003-01-28 23:44:00,2003-07-31 18:58:00,NOT COLLATERAL
-170538,17137.17,AAE,SWQ,A,12011.28,238,34,AAA,FOLDERO,LTTRA,2003-01-29 00:44:00,2003-07-31 20:58:00,COLLATERAL
-170549,17140.281,AAF,KUH,A,11997.46,239,35,BBB,FOLDERP,LTTRA,2003-01-29 01:44:00,2003-07-31 22:58:00,COLLATERAL
-170560,17143.392,BBA,XCV,A,11983.64,240,36,CCC,FOLDERQ,LTTRS,2003-01-29 02:44:00,2003-08-01 00:58:00,COLLATERAL
-170571,17146.503,BBC,ZAQ,A,11969.82,241,37,DDD,FOLDERR,LTTRZ,2003-01-29 03:44:00,2003-08-01 02:58:00,NOT COLLATERAL
-170582,17149.614,BBE,MKO,A,11956,242,38,AAB,FOLDERS,LTTRS,2003-01-29 04:44:00,2003-08-01 04:58:00,NOT COLLATERAL
-170593,17152.725,BBF,VFR,A,11942.18,243,39,AAC,FOLDERT,LTTRS,2003-01-29 05:44:00,2003-08-01 06:58:00,NOT COLLATERAL
-170604,17155.836,BBG,YUJ,A,11928.36,244,40,AAD,FOLDERU,LTTRS,2003-01-29 06:44:00,2003-08-01 08:58:00,NOT COLLATERAL
-170615,17158.947,BBH,MED,A,11914.54,245,41,AAE,FOLDERV,LTTRS,2003-01-29 07:44:00,2003-08-01 10:58:00,NOT COLLATERAL
-170626,17162.058,CCA,SWE,A,11900.72,246,42,AAF,FOLDERW,LTTRS,2003-01-29 08:44:00,2003-08-01 12:58:00,NOT COLLATERAL
-170637,17165.169,CCB,CVF,A,11886.9,247,43,BBA,FOLDERX,LTTRS,2003-01-29 09:44:00,2003-08-01 14:58:00,NOT COLLATERAL
-170648,17168.28,CCD,DSFG,A,11873.08,248,44,BBC,FOLDERY,LTTRS,2003-01-29 10:44:00,2003-08-01 16:58:00,NOT COLLATERAL
-170659,17171.391,CCE,ASDRE,A,11859.26,249,45,BBE,FOLDERZ,LTTRS,2003-01-29 11:44:00,2003-08-01 18:58:00,NOT COLLATERAL
-170670,17174.502,CCF,HJKSS,A,11845.44,250,46,BBF,FOLDERA,LTTRS,2003-01-29 12:44:00,2003-08-01 20:58:00,COLLATERAL
-170681,17177.613,CCG,KHAA,A,11831.62,251,47,BBG,FOLDERB,LTTRS,2003-01-29 13:44:00,2003-08-01 22:58:00,COLLATERAL
-170692,17180.724,CCH,KSLD,A,11817.8,252,48,BBH,FOLDERC,LTTRS,2003-01-29 14:44:00,2003-08-02 00:58:00,COLLATERAL
-170703,17183.835,CCI,EKID,A,11803.98,253,49,CCA,FOLDERD,LTTRS,2003-01-29 15:44:00,2003-08-02 02:58:00,NOT COLLATERAL
-170714,17186.946,CCJ,VNCD,A,11790.16,254,48,CCB,FOLDERE,LTTRS,2003-01-29 16:44:00,2003-08-02 04:58:00,NOT COLLATERAL
-170725,17190.057,DDD,DKD,A,11776.34,255,47,CCD,FOLDERF,LTTRS,2003-01-29 17:44:00,2003-08-02 06:58:00,NOT COLLATERAL
-170736,17193.168,DDA,FKF,A,11762.52,256,46,CCE,FOLDERG,LTTRZ,2003-01-29 18:44:00,2003-08-02 08:58:00,NOT COLLATERAL
-170747,17196.279,DAA,LES,A,11748.7,257,45,CCF,FOLDERH,LTTRA,2003-01-29 19:44:00,2003-08-02 10:58:00,NOT COLLATERAL
-170758,17199.39,DBB,KLD,A,11734.88,258,44,CCG,FOLDERI,LTTRB,2003-01-29 20:44:00,2003-08-02 12:58:00,NOT COLLATERAL
-170769,17202.501,DCC,SKL,A,11721.06,259,43,CCH,FOLDERJ,LTTRB,2003-01-29 21:44:00,2003-08-02 14:58:00,NOT COLLATERAL
-170780,17205.612,DEE,SIW,A,11707.24,260,42,CCI,FOLDERK,LTTRA,2003-01-29 22:44:00,2003-08-02 16:58:00,NOT COLLATERAL
-170791,17208.723,DFF,CKA,A,11693.42,261,41,CCJ,FOLDERL,LTTRA,2003-01-29 23:44:00,2003-08-02 18:58:00,NOT COLLATERAL
-170802,17211.834,DGG,LDE,A,11679.6,262,40,DDD,FOLDERM,LTTRS,2003-01-30 00:44:00,2003-08-02 20:58:00,COLLATERAL
-170813,17214.945,DHH,KFF,A,11665.78,263,39,DDA,FOLDERN,LTTRZ,2003-01-30 01:44:00,2003-08-02 22:58:00,COLLATERAL
-170824,17218.056,AAA,EFH,A,11651.96,264,38,DAA,FOLDERO,LTTRS,2003-01-30 02:44:00,2003-08-03 00:58:00,COLLATERAL
-170835,17221.167,BBB,NGC,A,11638.14,265,37,FKF,FOLDERP,LTTRS,2003-01-30 03:44:00,2003-08-03 02:58:00,NOT COLLATERAL
-170846,17224.278,CCC,DER,A,11624.32,266,36,LES,FOLDERQ,LTTRS,2003-01-30 04:44:00,2003-08-03 04:58:00,NOT COLLATERAL
-170857,17227.389,DDD,FVG,A,11610.5,267,35,KLD,FOLDERR,LTTRS,2003-01-30 05:44:00,2003-08-03 06:58:00,NOT COLLATERAL
-170868,17230.5,AAB,KWE,A,11596.68,268,34,SKL,FOLDERS,LTTRS,2003-01-30 06:44:00,2003-08-03 08:58:00,NOT COLLATERAL
-170879,17233.611,AAC,WER,A,11582.86,269,33,SIW,FOLDERT,LTTRS,2003-01-30 07:44:00,2003-08-03 10:58:00,NOT COLLATERAL
-170890,17236.722,AAD,GFH,A,11569.04,270,32,CKA,FOLDERU,LTTRS,2003-01-30 08:44:00,2003-08-03 12:58:00,NOT COLLATERAL
-170901,17239.833,AAE,BGF,A,11555.22,271,31,LDE,FOLDERV,LTTRS,2003-01-30 09:44:00,2003-08-03 14:58:00,NOT COLLATERAL
-170912,17242.944,AAF,XCS,A,11541.4,272,30,KFF,FOLDERW,LTTRS,2003-01-30 10:44:00,2003-08-03 16:58:00,NOT COLLATERAL
-170923,17246.055,BBA,JHK,A,11527.58,273,29,EFH,FOLDERX,LTTRS,2003-01-30 11:44:00,2003-08-03 18:58:00,NOT COLLATERAL
-170934,17249.166,BBC,SFD,A,11513.76,274,28,NGC,FOLDERY,LTTRS,2003-01-30 12:44:00,2003-08-03 20:58:00,COLLATERAL
-170945,17252.277,BBE,WRE,A,11499.94,275,27,DER,FOLDERZ,LTTRS,2003-01-30 13:44:00,2003-08-03 22:58:00,COLLATERAL
-170956,17255.388,BBF,HGV,A,11486.12,276,26,FVG,FOLDERZ,LTTRS,2003-01-30 14:44:00,2003-08-04 00:58:00,COLLATERAL
-170967,17258.499,BBG,KLS,A,11472.3,277,25,KWE,FOLDERZ,LTTRS,2003-01-30 15:44:00,2003-08-04 02:58:00,NOT COLLATERAL
-170978,17261.61,BBH,SDK,A,11458.48,278,24,WER,FOLDERZ,LTTRZ,2003-01-30 16:44:00,2003-08-04 04:58:00,NOT COLLATERAL
-170989,17264.721,CCA,MNV,A,11444.66,279,23,GFH,FOLDERZ,LTTRA,2003-01-30 17:44:00,2003-08-04 06:58:00,NOT COLLATERAL
-171000,17267.832,CCB,OKW,A,11430.84,280,22,BGF,FOLDERZ,LTTRB,2003-01-30 18:44:00,2003-08-04 08:58:00,NOT COLLATERAL
-171011,17270.943,CCD,ASS,A,11417.02,281,21,XCS,FOLDERZ,LTTRB,2003-01-30 19:44:00,2003-08-04 10:58:00,NOT COLLATERAL
-171022,17274.054,CCE,CKA,A,11403.2,282,20,JHK,FOLDERZ,LTTRA,2003-01-30 20:44:00,2003-08-04 12:58:00,NOT COLLATERAL
-171033,17277.165,CCF,SWQ,A,11389.38,283,19,SFD,FOLDERZ,LTTRA,2003-01-30 21:44:00,2003-08-04 14:58:00,NOT COLLATERAL
-171044,17280.276,CCG,KUH,A,11375.56,284,18,WRE,FOLDERZ,LTTRS,2003-01-30 22:44:00,2003-08-04 16:58:00,NOT COLLATERAL
-171055,17283.387,CCH,XCV,A,11361.74,285,17,HGV,FOLDERZ,LTTRZ,2003-01-30 23:44:00,2003-08-04 18:58:00,NOT COLLATERAL
-171066,17286.498,CCI,ZAQ,A,11347.92,286,16,KLS,FOLDERZ,LTTRS,2003-01-31 00:44:00,2003-08-04 20:58:00,COLLATERAL
-171077,17289.609,CCJ,MKO,A,11334.1,287,15,SDK,FOLDERZ,LTTRS,2003-01-31 01:44:00,2003-08-04 22:58:00,COLLATERAL
-171088,17292.72,DDD,VFR,A,11320.28,288,14,MNV,FOLDERZ,LTTRS,2003-01-31 02:44:00,2003-08-05 00:58:00,COLLATERAL
-171099,17295.831,DDA,YUJ,A,11306.46,289,13,OKW,FOLDERX,LTTRS,2003-01-31 03:44:00,2003-08-05 02:58:00,NOT COLLATERAL
-171110,17298.942,DAA,MED,A,11292.64,290,12,ASS,FOLDERX,LTTRS,2003-01-31 04:44:00,2003-08-05 04:58:00,NOT COLLATERAL
-171121,17302.053,DBB,SWE,A,11278.82,291,11,CKA,FOLDERX,LTTRS,2003-01-31 05:44:00,2003-08-05 06:58:00,NOT COLLATERAL
-171132,17305.164,DCC,CVF,A,11265,292,10,SWQ,FOLDERX,LTTRS,2003-01-31 06:44:00,2003-08-05 08:58:00,NOT COLLATERAL
-171143,17308.275,DEE,DSFG,A,11251.18,293,9,KUH,FOLDERX,LTTRS,2003-01-31 07:44:00,2003-08-05 10:58:00,NOT COLLATERAL
-171154,17311.386,DFF,ASDRE,A,11237.36,294,8,XCV,FOLDERX,LTTRS,2003-01-31 08:43:00,2003-08-05 12:58:00,NOT COLLATERAL
-171165,17314.497,DGG,HJKSS,A,11223.54,295,7,ZAQ,FOLDERX,LTTRS,2003-01-31 09:43:00,2003-08-05 14:58:00,NOT COLLATERAL
-171176,17317.608,DHH,KHAA,A,11209.72,296,6,MKO,FOLDERX,LTTRS,2003-01-31 10:43:00,2003-08-05 16:58:00,NOT COLLATERAL
-171187,17320.719,AAA,KSLD,A,11195.9,297,5,VFR,FOLDERX,LTTRS,2003-01-31 11:43:00,2003-08-05 18:58:00,NOT COLLATERAL
-171198,17323.83,BBB,EKID,A,11182.08,298,4,YUJ,FOLDERX,LTTRS,2003-01-31 12:43:00,2003-08-05 20:58:00,COLLATERAL
-171209,17326.941,CCC,VNCD,A,11168.26,299,3,AAA,FOLDERX,LTTRS,2003-01-31 13:43:00,2003-08-05 22:58:00,COLLATERAL
-171220,17330.052,DDD,DKD,A,11154.44,300,1,BBB,FOLDERX,LTTRZ,2003-01-31 14:43:00,2003-08-06 00:58:00,COLLATERAL
-171231,17333.163,AAB,FKF,A,11140.62,301,2,CCC,FOLDERR,LTTRA,2003-01-31 15:43:00,2003-08-06 02:58:00,NOT COLLATERAL
-171242,17336.274,AAC,LES,A,11126.8,302,3,DDD,FOLDERS,LTTRB,2003-01-31 16:43:00,2003-08-06 04:58:00,NOT COLLATERAL
-171253,17339.385,AAD,KLD,A,11112.98,303,4,AAB,FOLDERX,LTTRB,2003-01-31 17:43:00,2003-08-06 06:58:00,NOT COLLATERAL
-171264,17342.496,AAE,SKL,A,11099.16,304,5,AAC,FOLDERR,LTTRA,2003-01-31 18:43:00,2003-08-06 08:58:00,NOT COLLATERAL
-171275,17345.607,AAF,SIW,A,11085.34,305,6,AAD,FOLDERS,LTTRA,2003-01-31 19:43:00,2003-08-06 10:58:00,NOT COLLATERAL
-171286,17348.718,BBA,CKA,A,11071.52,306,7,AAE,FOLDERX,LTTRS,2003-01-31 20:43:00,2003-08-06 12:58:00,NOT COLLATERAL
-171297,17351.829,BBC,LDE,A,11057.7,307,8,AAF,FOLDERR,LTTRZ,2003-01-31 21:43:00,2003-08-06 14:58:00,NOT COLLATERAL
-171308,17354.94,BBE,KFF,A,11043.88,308,9,BBA,FOLDERS,LTTRS,2003-01-31 22:43:00,2003-08-06 16:58:00,NOT COLLATERAL
-171319,17358.051,BBF,EFH,A,11030.06,309,10,BBC,FOLDERX,LTTRS,2003-01-31 23:43:00,2003-08-06 18:58:00,NOT COLLATERAL
-171330,17361.162,BBG,NGC,A,11016.24,310,11,BBE,FOLDERR,LTTRS,2003-02-01 00:43:00,2003-08-06 20:58:00,COLLATERAL
-171341,17364.273,BBH,DER,A,11002.42,311,12,BBF,FOLDERS,LTTRS,2003-02-01 01:43:00,2003-08-06 22:58:00,COLLATERAL
-171352,17367.384,CCA,FVG,A,10988.6,312,13,BBG,FOLDERX,LTTRS,2003-02-01 02:43:00,2003-08-07 00:58:00,COLLATERAL
-171363,17370.495,CCB,KWE,A,10974.78,313,14,BBH,FOLDERR,LTTRS,2003-02-01 03:43:00,2003-08-07 02:58:00,NOT COLLATERAL
-171374,17373.606,CCD,WER,A,10960.96,314,15,CCA,FOLDERS,LTTRS,2003-02-01 04:43:00,2003-08-07 04:58:00,NOT COLLATERAL
-171385,17376.717,CCE,GFH,A,10947.14,315,16,CCB,FOLDERX,LTTRS,2003-02-01 05:43:00,2003-08-07 06:58:00,NOT COLLATERAL
-171396,17379.828,CCF,BGF,A,10933.32,316,17,CCD,FOLDERD,LTTRS,2003-02-01 06:43:00,2003-08-07 08:58:00,NOT COLLATERAL
-171407,17382.939,CCG,XCS,A,10919.5,317,18,CCE,FOLDERE,LTTRS,2003-02-01 07:43:00,2003-08-07 10:58:00,NOT COLLATERAL
-171418,17386.05,CCH,JHK,A,10905.68,318,19,CCF,FOLDERF,LTTRS,2003-02-01 08:43:00,2003-08-07 12:58:00,NOT COLLATERAL
-171429,17389.161,CCI,SFD,A,10891.86,319,20,CCG,FOLDERG,LTTRS,2003-02-01 09:43:00,2003-08-07 14:58:00,NOT COLLATERAL
-171440,17392.272,CCJ,WRE,A,10878.04,320,21,CCH,FOLDERH,LTTRS,2003-02-01 10:43:00,2003-08-07 16:58:00,NOT COLLATERAL
-171451,17395.383,DDD,HGV,A,10864.22,321,22,CCI,FOLDERI,LTTRS,2003-02-01 11:43:00,2003-08-07 18:58:00,NOT COLLATERAL
-171462,17398.494,DDA,KLS,A,10850.4,322,23,CCJ,FOLDERJ,LTTRZ,2003-02-01 12:43:00,2003-08-07 20:58:00,COLLATERAL
-171473,17401.605,DAA,SDK,A,10836.58,323,24,DDD,FOLDERK,LTTRA,2003-02-01 13:43:00,2003-08-07 22:58:00,COLLATERAL
-171484,17404.716,DBB,MNV,A,10822.76,324,25,DDA,FOLDERL,LTTRB,2003-02-01 14:43:00,2003-08-08 00:58:00,COLLATERAL
-171495,17407.827,DCC,OKW,A,10808.94,325,26,DAA,FOLDERM,LTTRB,2003-02-01 15:43:00,2003-08-08 02:58:00,NOT COLLATERAL
-171506,17410.938,DEE,ASS,A,10795.12,326,27,FKF,FOLDERN,LTTRA,2003-02-01 16:43:00,2003-08-08 04:58:00,NOT COLLATERAL
-171517,17414.049,DFF,CKA,A,10781.3,327,28,LES,FOLDERN,LTTRA,2003-02-01 17:43:00,2003-08-08 06:58:00,NOT COLLATERAL
-171528,17417.16,DGG,SWQ,A,10767.48,328,29,KLD,FOLDERN,LTTRS,2003-02-01 18:43:00,2003-08-08 08:58:00,NOT COLLATERAL
-171539,17420.271,DHH,KUH,A,10753.66,329,30,SKL,FOLDERN,LTTRZ,2003-02-01 19:43:00,2003-08-08 10:58:00,NOT COLLATERAL
-171550,17423.382,AAA,XCV,A,10739.84,330,31,SIW,FOLDERL,LTTRS,2003-02-01 20:43:00,2003-08-08 12:58:00,NOT COLLATERAL
-171561,17426.493,BBB,ZAQ,A,10726.02,331,32,CKA,FOLDERL,LTTRS,2003-02-01 21:43:00,2003-08-08 14:58:00,NOT COLLATERAL
-171572,17429.604,CCC,MKO,A,10712.2,332,33,LDE,FOLDERL,LTTRS,2003-02-01 22:43:00,2003-08-08 16:58:00,NOT COLLATERAL
-171583,17432.715,DDD,VFR,A,10698.38,333,34,KFF,FOLDERL,LTTRS,2003-02-01 23:43:00,2003-08-08 18:58:00,NOT COLLATERAL
-171594,17435.826,AAB,YUJ,A,10684.56,334,35,EFH,FOLDERL,LTTRS,2003-02-02 00:43:00,2003-08-08 20:58:00,COLLATERAL
-171605,17438.937,AAC,MED,A,10670.74,335,36,NGC,FOLDERA,LTTRS,2003-02-02 01:43:00,2003-08-08 22:58:00,COLLATERAL
-171616,17442.048,AAD,SWE,A,10656.92,336,37,DER,FOLDERB,LTTRS,2003-02-02 02:43:00,2003-08-09 00:58:00,COLLATERAL
-171627,17445.159,AAE,CVF,A,10643.1,337,38,FVG,FOLDERC,LTTRS,2003-02-02 03:43:00,2003-08-09 02:58:00,NOT COLLATERAL
-171638,17448.27,AAF,DSFG,A,10629.28,338,39,KWE,FOLDERD,LTTRS,2003-02-02 04:43:00,2003-08-09 04:58:00,NOT COLLATERAL
-171649,17451.381,BBA,ASDRE,A,10615.46,339,40,WER,FOLDERE,LTTRS,2003-02-02 05:43:00,2003-08-09 06:58:00,NOT COLLATERAL
-171660,17454.492,BBC,HJKSS,A,10601.64,340,41,GFH,FOLDERF,LTTRS,2003-02-02 06:43:00,2003-08-09 08:58:00,NOT COLLATERAL
-171671,17457.603,BBE,KHAA,A,10587.82,341,42,BGF,FOLDERG,LTTRS,2003-02-02 07:43:00,2003-08-09 10:58:00,NOT COLLATERAL
-171682,17460.714,BBF,KSLD,A,10574,342,43,XCS,FOLDERH,LTTRS,2003-02-02 08:43:00,2003-08-09 12:58:00,NOT COLLATERAL
-171693,17463.825,BBG,EKID,A,10560.18,343,44,JHK,FOLDERI,LTTRS,2003-02-02 09:43:00,2003-08-09 14:58:00,NOT COLLATERAL
-171704,17466.936,BBH,VNCD,A,10546.36,344,45,SFD,FOLDERJ,LTTRZ,2003-02-02 10:43:00,2003-08-09 16:58:00,NOT COLLATERAL
-171715,17470.047,CCA,DKD,A,10532.54,345,46,WRE,FOLDERK,LTTRA,2003-02-02 11:43:00,2003-08-09 18:58:00,NOT COLLATERAL
-171726,17473.158,CCB,FKF,A,10518.72,346,47,HGV,FOLDERL,LTTRB,2003-02-02 12:43:00,2003-08-09 20:58:00,COLLATERAL
-171737,17476.269,CCD,LES,A,10504.9,347,48,KLS,FOLDERM,LTTRB,2003-02-02 13:43:00,2003-08-09 22:58:00,COLLATERAL
-171748,17479.38,CCE,KLD,A,10491.08,348,49,SDK,FOLDERN,LTTRA,2003-02-02 14:43:00,2003-08-10 00:58:00,COLLATERAL
-171759,17482.491,CCF,SKL,A,10477.26,349,48,MNV,FOLDERO,LTTRA,2003-02-02 15:43:00,2003-08-10 02:58:00,NOT COLLATERAL
-171770,17485.602,CCG,SIW,A,10463.44,350,47,OKW,FOLDERP,LTTRS,2003-02-02 16:43:00,2003-08-10 04:58:00,NOT COLLATERAL
-171781,17488.713,CCH,CKA,A,10449.62,351,46,ASS,FOLDERQ,LTTRZ,2003-02-02 17:43:00,2003-08-10 06:58:00,NOT COLLATERAL
-171792,17491.824,CCI,LDE,A,10435.8,352,45,CKA,FOLDERR,LTTRS,2003-02-02 18:43:00,2003-08-10 08:58:00,NOT COLLATERAL
-171803,17494.935,CCJ,KFF,A,10421.98,353,44,SWQ,FOLDERS,LTTRS,2003-02-02 19:43:00,2003-08-10 10:58:00,NOT COLLATERAL
-171814,17498.046,DDD,EFH,A,10408.16,354,43,KUH,FOLDERT,LTTRS,2003-02-02 20:43:00,2003-08-10 12:58:00,NOT COLLATERAL
-171825,17501.157,DDA,NGC,A,10394.34,355,42,XCV,FOLDERU,LTTRS,2003-02-02 21:43:00,2003-08-10 14:58:00,NOT COLLATERAL
-171836,17504.268,DAA,DER,A,10380.52,356,41,ZAQ,FOLDERV,LTTRS,2003-02-02 22:43:00,2003-08-10 16:58:00,NOT COLLATERAL
-171847,17507.379,DBB,FVG,A,10366.7,357,40,MKO,FOLDERW,LTTRS,2003-02-02 23:43:00,2003-08-10 18:58:00,NOT COLLATERAL
-171858,17510.49,DCC,KWE,A,10352.88,358,39,VFR,FOLDERX,LTTRS,2003-02-03 00:43:00,2003-08-10 20:58:00,COLLATERAL
-171869,17513.601,DEE,WER,A,10339.06,359,38,YUJ,FOLDERY,LTTRS,2003-02-03 01:43:00,2003-08-10 22:58:00,COLLATERAL
-171880,17516.712,DFF,GFH,A,10325.24,360,37,AAA,FOLDERZ,LTTRS,2003-02-03 02:43:00,2003-08-11 00:58:00,COLLATERAL
-171891,17519.823,DGG,BGF,A,10311.42,361,36,BBB,FOLDERA,LTTRS,2003-02-03 03:43:00,2003-08-11 02:58:00,NOT COLLATERAL
-171902,17522.934,DHH,XCS,A,10297.6,362,35,CCC,FOLDERB,LTTRS,2003-02-03 04:43:00,2003-08-11 04:58:00,NOT COLLATERAL
-171913,17526.045,AAA,JHK,A,10283.78,363,34,DDD,FOLDERC,LTTRS,2003-02-03 05:43:00,2003-08-11 06:58:00,NOT COLLATERAL
-171924,17529.156,BBB,SFD,A,10269.96,364,33,AAB,FOLDERD,LTTRS,2003-02-03 06:43:00,2003-08-11 08:58:00,NOT COLLATERAL
-171935,17532.267,CCC,WRE,A,10256.14,365,32,AAC,FOLDERE,LTTRS,2003-02-03 07:43:00,2003-08-11 10:58:00,NOT COLLATERAL
-171946,17535.378,DDD,HGV,A,10242.32,366,31,AAD,FOLDERF,LTTRZ,2003-02-03 08:43:00,2003-08-11 12:58:00,NOT COLLATERAL
-171957,17538.489,AAB,KLS,A,10228.5,367,30,AAE,FOLDERG,LTTRA,2003-02-03 09:43:00,2003-08-11 14:58:00,NOT COLLATERAL
-171968,17541.6,AAC,SDK,A,10214.68,368,29,AAF,FOLDERH,LTTRB,2003-02-03 10:43:00,2003-08-11 16:58:00,NOT COLLATERAL
-171979,17544.711,AAD,MNV,A,10200.86,369,28,BBA,FOLDERI,LTTRB,2003-02-03 11:43:00,2003-08-11 18:58:00,NOT COLLATERAL
-171990,17547.822,AAE,OKW,A,10187.04,370,27,BBC,FOLDERJ,LTTRA,2003-02-03 12:43:00,2003-08-11 20:58:00,COLLATERAL
-172001,17550.933,AAF,ASS,A,10173.22,371,26,BBE,FOLDERK,LTTRA,2003-02-03 13:43:00,2003-08-11 22:58:00,COLLATERAL
-172012,17554.044,BBA,CKA,A,10159.4,372,25,BBF,FOLDERL,LTTRS,2003-02-03 14:43:00,2003-08-12 00:58:00,COLLATERAL
-172023,17557.155,BBC,SWQ,A,10145.58,373,24,BBG,FOLDERM,LTTRZ,2003-02-03 15:43:00,2003-08-12 02:58:00,NOT COLLATERAL
-172034,17560.266,BBE,KUH,A,10131.76,374,23,BBH,FOLDERN,LTTRS,2003-02-03 16:43:00,2003-08-12 04:58:00,NOT COLLATERAL
-172045,17563.377,BBF,XCV,A,10117.94,375,22,CCA,FOLDERO,LTTRS,2003-02-03 17:43:00,2003-08-12 06:58:00,NOT COLLATERAL
-172056,17566.488,BBG,ZAQ,A,10104.12,376,21,CCB,FOLDERP,LTTRS,2003-02-03 18:43:00,2003-08-12 08:58:00,NOT COLLATERAL
-172067,17569.599,BBH,MKO,A,10090.3,377,20,CCD,FOLDERQ,LTTRS,2003-02-03 19:43:00,2003-08-12 10:58:00,NOT COLLATERAL
-172078,17572.71,CCA,VFR,A,10076.48,378,19,CCE,FOLDERR,LTTRS,2003-02-03 20:43:00,2003-08-12 12:58:00,NOT COLLATERAL
-172089,17575.821,CCB,YUJ,A,10062.66,379,18,CCF,FOLDERS,LTTRS,2003-02-03 21:43:00,2003-08-12 14:58:00,NOT COLLATERAL
-172100,17578.932,CCD,MED,A,10048.84,380,17,CCG,FOLDERT,LTTRS,2003-02-03 22:43:00,2003-08-12 16:58:00,NOT COLLATERAL
-172111,17582.043,CCE,SWE,A,10035.02,381,16,CCH,FOLDERU,LTTRS,2003-02-03 23:43:00,2003-08-12 18:58:00,NOT COLLATERAL
-172122,17585.154,CCF,CVF,A,10021.2,382,15,CCI,FOLDERV,LTTRS,2003-02-04 00:43:00,2003-08-12 20:58:00,COLLATERAL
-172133,17588.265,CCG,DSFG,A,10007.38,383,14,CCJ,FOLDERW,LTTRS,2003-02-04 01:43:00,2003-08-12 22:58:00,COLLATERAL
-172144,17591.376,CCH,ASDRE,A,9993.56,384,13,DDD,FOLDERX,LTTRS,2003-02-04 02:43:00,2003-08-13 00:58:00,COLLATERAL
-172155,17594.487,CCI,HJKSS,A,9979.74,385,12,DDA,FOLDERY,LTTRS,2003-02-04 03:43:00,2003-08-13 02:58:00,NOT COLLATERAL
-172166,17597.598,CCJ,KHAA,A,9965.92,386,11,DAA,FOLDERZ,LTTRS,2003-02-04 04:43:00,2003-08-13 04:58:00,NOT COLLATERAL
-172177,17600.709,DDD,KSLD,A,9952.1,387,10,FKF,FOLDERZ,LTTRS,2003-02-04 05:43:00,2003-08-13 06:58:00,NOT COLLATERAL
-172188,17603.82,DDA,EKID,A,9938.28,388,9,LES,FOLDERZ,LTTRZ,2003-02-04 06:43:00,2003-08-13 08:58:00,NOT COLLATERAL
-172199,17606.931,DAA,VNCD,A,9924.46,389,8,KLD,FOLDERZ,LTTRA,2003-02-04 07:43:00,2003-08-13 10:58:00,NOT COLLATERAL
-172210,17610.042,DBB,DKD,A,9910.64,390,7,SKL,FOLDERZ,LTTRB,2003-02-04 08:43:00,2003-08-13 12:58:00,NOT COLLATERAL
-172221,17613.153,DCC,FKF,A,9896.82,391,6,SIW,FOLDERZ,LTTRB,2003-02-04 09:43:00,2003-08-13 14:58:00,NOT COLLATERAL
-172232,17616.264,DEE,LES,A,9883,392,5,CKA,FOLDERZ,LTTRA,2003-02-04 10:43:00,2003-08-13 16:58:00,NOT COLLATERAL
-172243,17619.375,DFF,KLD,A,9869.18,393,4,LDE,FOLDERZ,LTTRA,2003-02-04 11:43:00,2003-08-13 18:58:00,NOT COLLATERAL
-172254,17622.486,DGG,SKL,A,9855.36,394,3,KFF,FOLDERZ,LTTRS,2003-02-04 12:43:00,2003-08-13 20:58:00,COLLATERAL
-172265,17625.597,DHH,SIW,A,9841.54,395,1,EFH,FOLDERZ,LTTRZ,2003-02-04 13:43:00,2003-08-13 22:58:00,COLLATERAL
-172276,17628.708,AAA,CKA,A,9827.72,396,2,NGC,FOLDERZ,LTTRS,2003-02-04 14:43:00,2003-08-14 00:58:00,COLLATERAL
-172287,17631.819,BBB,LDE,A,9813.9,397,3,DER,FOLDERZ,LTTRS,2003-02-04 15:43:00,2003-08-14 02:58:00,NOT COLLATERAL
-172298,17634.93,CCC,KFF,A,9800.08,398,4,FVG,FOLDERZ,LTTRS,2003-02-04 16:43:00,2003-08-14 04:58:00,NOT COLLATERAL
-172309,17638.041,DDD,EFH,A,9786.26,399,5,KWE,FOLDERZ,LTTRS,2003-02-04 17:43:00,2003-08-14 06:58:00,NOT COLLATERAL
-172320,17641.152,AAB,NGC,A,9772.44,400,6,WER,FOLDERX,LTTRS,2003-02-04 18:43:00,2003-08-14 08:58:00,NOT COLLATERAL
-172331,17644.263,AAC,DER,A,9758.62,401,7,GFH,FOLDERX,LTTRS,2003-02-04 19:43:00,2003-08-14 10:58:00,NOT COLLATERAL
-172342,17647.374,AAD,FVG,A,9744.8,402,8,BGF,FOLDERX,LTTRS,2003-02-04 20:43:00,2003-08-14 12:58:00,NOT COLLATERAL
-172353,17650.485,AAE,KWE,A,9730.98,403,9,XCS,FOLDERX,LTTRS,2003-02-04 21:43:00,2003-08-14 14:58:00,NOT COLLATERAL
-172364,17653.596,AAF,WER,A,9717.16,404,10,JHK,FOLDERX,LTTRS,2003-02-04 22:43:00,2003-08-14 16:58:00,NOT COLLATERAL
-172375,17656.707,BBA,GFH,A,9703.34,405,11,SFD,FOLDERX,LTTRS,2003-02-04 23:43:00,2003-08-14 18:58:00,NOT COLLATERAL
-172386,17659.818,BBC,BGF,A,9689.52,406,12,WRE,FOLDERX,LTTRS,2003-02-05 00:43:00,2003-08-14 20:58:00,COLLATERAL
-172397,17662.929,BBE,XCS,A,9675.7,407,13,HGV,FOLDERX,LTTRS,2003-02-05 01:43:00,2003-08-14 22:58:00,COLLATERAL
-172408,17666.04,BBF,JHK,A,9661.88,408,14,KLS,FOLDERX,LTTRS,2003-02-05 02:43:00,2003-08-15 00:58:00,COLLATERAL
-172419,17669.151,BBG,SFD,A,9648.06,409,15,SDK,FOLDERX,LTTRS,2003-02-05 03:43:00,2003-08-15 02:58:00,NOT COLLATERAL
-172430,17672.262,BBH,WRE,A,9634.24,410,16,MNV,FOLDERX,LTTRZ,2003-02-05 04:43:00,2003-08-15 04:58:00,NOT COLLATERAL
-172441,17675.373,CCA,HGV,A,9620.42,411,17,OKW,FOLDERX,LTTRA,2003-02-05 05:43:00,2003-08-15 06:58:00,NOT COLLATERAL
-172452,17678.484,CCB,KLS,A,9606.6,412,18,ASS,FOLDERR,LTTRB,2003-02-05 06:43:00,2003-08-15 08:58:00,NOT COLLATERAL
-172463,17681.595,CCD,SDK,A,9592.78,413,19,CKA,FOLDERS,LTTRB,2003-02-05 07:43:00,2003-08-15 10:58:00,NOT COLLATERAL
-172474,17684.706,CCE,MNV,A,9578.96,414,20,SWQ,FOLDERX,LTTRA,2003-02-05 08:43:00,2003-08-15 12:58:00,NOT COLLATERAL
-172485,17687.817,CCF,OKW,A,9565.14,415,21,KUH,FOLDERR,LTTRA,2003-02-05 09:43:00,2003-08-15 14:58:00,NOT COLLATERAL
-172496,17690.928,CCG,ASS,A,9551.32,416,22,XCV,FOLDERS,LTTRS,2003-02-05 10:43:00,2003-08-15 16:58:00,NOT COLLATERAL
-172507,17694.039,CCH,CKA,A,9537.5,417,23,ZAQ,FOLDERX,LTTRZ,2003-02-05 11:43:00,2003-08-15 18:58:00,NOT COLLATERAL
-172518,17697.15,CCI,SWQ,A,9523.68,418,24,MKO,FOLDERR,LTTRS,2003-02-05 00:43:00,2003-08-15 20:58:00,COLLATERAL
-172529,17700.261,CCJ,KUH,A,9509.86,419,25,VFR,FOLDERS,LTTRS,2003-02-04 13:43:00,2003-08-15 22:58:00,COLLATERAL
-172540,17703.372,DDD,XCV,A,9496.04,420,26,YUJ,FOLDERX,LTTRS,2003-02-04 02:43:00,2003-08-16 00:58:00,COLLATERAL
-172551,17706.483,DDA,ZAQ,A,9482.22,421,27,AAA,FOLDERR,LTTRS,2003-02-03 15:43:00,2003-08-16 02:58:00,NOT COLLATERAL
-172562,17709.594,DAA,MKO,A,9468.4,422,28,BBB,FOLDERS,LTTRS,2003-02-03 04:43:00,2003-08-16 04:58:00,NOT COLLATERAL
-172573,17712.705,DBB,VFR,A,9454.58,423,29,CCC,FOLDERX,LTTRS,2003-02-02 17:43:00,2003-08-16 06:58:00,NOT COLLATERAL
-172584,17715.816,DCC,YUJ,A,9440.76,424,30,DDD,FOLDERR,LTTRS,2003-02-02 06:43:00,2003-08-16 08:58:00,NOT COLLATERAL
-172595,17718.927,DEE,MED,A,9426.94,425,31,AAB,FOLDERS,LTTRS,2003-02-01 19:43:00,2003-08-16 10:58:00,NOT COLLATERAL
-172606,17722.038,DFF,SWE,A,9413.12,426,32,AAC,FOLDERX,LTTRS,2003-02-01 08:43:00,2003-08-16 12:58:00,NOT COLLATERAL
-172617,17725.149,DGG,CVF,A,9399.3,427,33,AAD,FOLDERD,LTTRS,2003-01-31 21:43:00,2003-08-16 14:58:00,NOT COLLATERAL
-172628,17728.26,DHH,DSFG,A,9385.48,428,34,AAE,FOLDERE,LTTRS,2003-01-31 10:43:00,2003-08-16 16:58:00,NOT COLLATERAL
-172639,17731.371,AAA,ASDRE,A,9371.66,429,35,AAF,FOLDERF,LTTRS,2003-01-30 23:43:00,2003-08-16 18:58:00,NOT COLLATERAL
-172650,17734.482,BBB,HJKSS,A,9357.84,430,36,BBA,FOLDERG,LTTRS,2003-01-30 12:43:00,2003-08-16 20:58:00,COLLATERAL
-172661,17737.593,CCC,KHAA,A,9344.02,431,37,BBC,FOLDERH,LTTRS,2003-01-30 01:43:00,2003-08-16 22:58:00,COLLATERAL
-172672,17740.704,DDD,KSLD,A,9330.2,432,38,BBE,FOLDERI,LTTRZ,2003-01-29 14:43:00,2003-08-17 00:58:00,COLLATERAL
-172683,17743.815,AAB,EKID,A,9316.38,433,39,BBF,FOLDERJ,LTTRA,2003-01-29 03:43:00,2003-08-17 02:58:00,NOT COLLATERAL
-172694,17746.926,AAC,VNCD,A,9302.56,434,40,BBG,FOLDERK,LTTRB,2003-01-28 16:43:00,2003-08-17 04:58:00,NOT COLLATERAL
-172705,17750.037,AAD,DKD,A,9288.74,435,41,BBH,FOLDERL,LTTRB,2003-01-28 05:43:00,2003-08-17 06:58:00,NOT COLLATERAL
-172716,17753.148,AAE,FKF,A,9274.92,436,42,CCA,FOLDERM,LTTRA,2003-01-27 18:43:00,2003-08-17 08:58:00,NOT COLLATERAL
-172727,17756.259,AAF,LES,A,9261.1,437,43,CCB,FOLDERN,LTTRA,2003-01-27 07:43:00,2003-08-17 10:58:00,NOT COLLATERAL
-172738,17759.37,BBA,KLD,A,9247.28,438,44,CCD,FOLDERN,LTTRS,2003-01-26 20:43:00,2003-08-17 12:58:00,NOT COLLATERAL
-172749,17762.481,BBC,SKL,A,9233.46,439,45,CCE,FOLDERN,LTTRZ,2003-01-26 09:43:00,2003-08-17 14:58:00,NOT COLLATERAL
-172760,17765.592,BBE,SIW,A,9219.64,440,46,CCF,FOLDERN,LTTRS,2003-01-25 22:43:00,2003-08-17 16:58:00,NOT COLLATERAL
-172771,17768.703,BBF,CKA,A,9205.82,441,47,CCG,FOLDERL,LTTRS,2003-01-25 11:43:00,2003-08-17 18:58:00,NOT COLLATERAL
-172782,17771.814,BBG,LDE,A,9192,442,48,CCH,FOLDERL,LTTRS,2003-01-25 00:43:00,2003-08-17 20:58:00,COLLATERAL
-172793,17774.925,BBH,KFF,A,9178.18,443,49,CCI,FOLDERL,LTTRS,2003-01-24 13:43:00,2003-08-17 22:58:00,COLLATERAL
-172804,17778.036,CCA,EFH,A,9164.36,444,48,CCJ,FOLDERL,LTTRS,2003-01-24 02:43:00,2003-08-18 00:58:00,COLLATERAL
-172815,17781.147,CCB,NGC,A,9150.54,445,47,DDD,FOLDERL,LTTRS,2003-01-23 15:43:00,2003-08-18 02:58:00,NOT COLLATERAL
-172826,17784.258,CCD,DER,A,9136.72,446,46,DDA,FOLDERD,LTTRS,2003-01-23 04:43:00,2003-08-18 04:58:00,NOT COLLATERAL
-172837,17787.369,CCE,FVG,A,9122.9,447,45,DAA,FOLDERE,LTTRS,2003-01-22 17:43:00,2003-08-18 06:58:00,NOT COLLATERAL
-172848,17790.48,CCF,KWE,A,9109.08,448,44,FKF,FOLDERF,LTTRS,2003-01-22 06:43:00,2003-08-18 08:58:00,NOT COLLATERAL
-172859,17793.591,CCG,WER,A,9095.26,449,43,LES,FOLDERG,LTTRS,2003-01-21 19:43:00,2003-08-18 10:58:00,NOT COLLATERAL
-172870,17796.702,CCH,GFH,A,9081.44,450,42,KLD,FOLDERH,LTTRS,2003-01-21 08:43:00,2003-08-18 12:58:00,NOT COLLATERAL
-172881,17799.813,CCI,BGF,A,9067.62,451,41,SKL,FOLDERI,LTTRS,2003-01-20 21:43:00,2003-08-18 14:58:00,NOT COLLATERAL
-172892,17802.924,CCJ,XCS,A,9053.8,452,40,SIW,FOLDERJ,LTTRS,2003-01-20 10:43:00,2003-08-18 16:58:00,NOT COLLATERAL
-172903,17806.035,DDD,JHK,A,9039.98,103,39,CKA,FOLDERK,LTTRS,2003-01-19 23:43:00,2003-08-18 18:58:00,NOT COLLATERAL
-172914,17809.146,DDA,SFD,A,9026.16,102,38,LDE,FOLDERL,LTTRZ,2003-01-19 12:43:00,2003-08-18 20:58:00,COLLATERAL
-172925,17812.257,DAA,WRE,A,9012.34,101,37,KFF,FOLDERM,LTTRA,2003-01-19 01:43:00,2003-08-18 22:58:00,COLLATERAL
-172936,17815.368,DBB,HGV,A,8998.52,100,36,EFH,FOLDERN,LTTRB,2003-01-18 14:43:00,2003-08-19 00:58:00,COLLATERAL
-172947,17818.479,DCC,KLS,A,8984.7,99,35,NGC,FOLDERO,LTTRB,2003-01-18 03:43:00,2003-08-19 02:58:00,NOT COLLATERAL
-172958,17821.59,DEE,SDK,A,8970.88,98,34,DER,FOLDERP,LTTRA,2003-01-17 16:43:00,2003-08-19 04:58:00,NOT COLLATERAL
-172969,17824.701,DFF,MNV,A,8957.06,97,33,FVG,FOLDERQ,LTTRA,2003-01-17 05:43:00,2003-08-19 06:58:00,NOT COLLATERAL
-172980,17827.812,DGG,OKW,A,8943.24,96,32,KWE,FOLDERR,LTTRS,2003-01-16 18:43:00,2003-08-19 08:58:00,NOT COLLATERAL
-172991,17830.923,DHH,ASS,A,8929.42,95,31,WER,FOLDERS,LTTRZ,2003-01-16 07:43:00,2003-08-19 10:58:00,NOT COLLATERAL
-173002,17834.034,AAA,CKA,A,8915.6,94,30,GFH,FOLDERT,LTTRS,2003-01-15 20:43:00,2003-08-19 12:58:00,NOT COLLATERAL
-173013,17837.145,BBB,SWQ,A,8901.78,93,29,BGF,FOLDERU,LTTRS,2003-01-15 09:43:00,2003-08-19 14:58:00,NOT COLLATERAL
-173024,17840.256,CCC,KUH,A,8887.96,92,28,XCS,FOLDERV,LTTRS,2003-01-14 22:43:00,2003-08-19 16:58:00,NOT COLLATERAL
-173035,17843.367,DDD,XCV,A,8874.14,91,27,JHK,FOLDERW,LTTRS,2003-01-14 11:43:00,2003-08-19 18:58:00,NOT COLLATERAL
-173046,17846.478,AAB,ZAQ,A,8860.32,90,26,SFD,FOLDERX,LTTRS,2003-01-14 00:43:00,2003-08-19 20:58:00,COLLATERAL
-173057,17849.589,AAC,MKO,A,8846.5,89,25,WRE,FOLDERY,LTTRS,2003-01-13 13:43:00,2003-08-19 22:58:00,COLLATERAL
-173068,17852.7,AAD,VFR,A,8832.68,88,24,HGV,FOLDERZ,LTTRS,2003-01-13 02:43:00,2003-08-20 00:58:00,COLLATERAL
-173079,17855.811,AAE,YUJ,A,8818.86,87,23,KLS,FOLDERA,LTTRS,2003-01-12 15:43:00,2003-08-20 02:58:00,NOT COLLATERAL
-173090,17858.922,AAF,MED,A,8805.04,86,22,SDK,FOLDERB,LTTRS,2003-01-12 04:43:00,2003-08-20 04:58:00,NOT COLLATERAL
-173101,17862.033,BBA,SWE,A,8791.22,85,21,MNV,FOLDERC,LTTRS,2003-01-11 17:43:00,2003-08-20 06:58:00,NOT COLLATERAL
-173112,17865.144,BBC,CVF,A,8777.4,84,20,OKW,FOLDERD,LTTRS,2003-01-11 06:43:00,2003-08-20 08:58:00,NOT COLLATERAL
-173123,17868.255,BBE,DSFG,A,8763.58,83,19,ASS,FOLDERE,LTTRS,2003-01-10 19:43:00,2003-08-20 10:58:00,NOT COLLATERAL
-173134,17871.366,BBF,ASDRE,A,8749.76,82,18,CKA,FOLDERF,LTTRS,2003-01-10 08:43:00,2003-08-20 12:58:00,NOT COLLATERAL
-173145,17874.477,BBG,HJKSS,A,8735.94,81,17,SWQ,FOLDERG,LTTRS,2003-01-09 21:43:00,2003-08-20 14:58:00,NOT COLLATERAL
-173156,17877.588,BBH,KHAA,A,8722.12,80,16,KUH,FOLDERH,LTTRZ,2003-01-09 10:43:00,2003-08-20 16:58:00,NOT COLLATERAL
-173167,17880.699,CCA,KSLD,A,8708.3,79,15,XCV,FOLDERI,LTTRA,2003-01-08 23:43:00,2003-08-20 18:58:00,NOT COLLATERAL
-173178,17883.81,CCB,EKID,A,8694.48,78,14,ZAQ,FOLDERJ,LTTRB,2003-01-08 12:43:00,2003-08-20 20:58:00,COLLATERAL
-173189,17886.921,CCD,VNCD,A,8680.66,77,13,MKO,FOLDERK,LTTRB,2003-01-08 01:43:00,2003-08-20 22:58:00,COLLATERAL
-173200,17890.032,CCE,DKD,A,8666.84,76,12,VFR,FOLDERL,LTTRA,2003-01-07 14:43:00,2003-08-21 00:58:00,COLLATERAL
-173211,17893.143,CCF,FKF,A,8653.02,75,11,YUJ,FOLDERM,LTTRA,2003-01-07 03:43:00,2003-08-21 02:58:00,NOT COLLATERAL
-173222,17896.254,CCG,LES,A,8639.2,74,10,AAA,FOLDERN,LTTRS,2003-01-06 16:43:00,2003-08-21 04:58:00,NOT COLLATERAL
-173233,17899.365,CCH,KLD,A,8625.38,73,9,BBB,FOLDERO,LTTRZ,2003-01-06 05:43:00,2003-08-21 06:58:00,NOT COLLATERAL
-173244,17902.476,CCI,SKL,A,8611.56,72,8,CCC,FOLDERP,LTTRS,2003-01-05 18:43:00,2003-08-21 08:58:00,NOT COLLATERAL
-173255,17905.587,CCJ,SIW,A,8597.74,71,7,DDD,FOLDERQ,LTTRS,2003-01-05 07:43:00,2003-08-21 10:58:00,NOT COLLATERAL
-173266,17908.698,DDD,CKA,A,8583.92,70,6,AAB,FOLDERR,LTTRS,2003-01-04 20:43:00,2003-08-21 12:58:00,NOT COLLATERAL
-173277,17911.809,DDA,LDE,A,8570.1,69,5,AAC,FOLDERS,LTTRS,2003-01-04 09:43:00,2003-08-21 14:58:00,NOT COLLATERAL
-173288,17914.92,DAA,KFF,A,8556.28,68,4,AAD,FOLDERT,LTTRS,2003-01-03 22:43:00,2003-08-21 16:58:00,NOT COLLATERAL
-173299,17918.031,DBB,EFH,A,8542.46,67,3,AAE,FOLDERU,LTTRS,2003-01-03 11:43:00,2003-08-21 18:58:00,NOT COLLATERAL
-173310,17921.142,DCC,NGC,A,8528.64,66,1,AAF,FOLDERV,LTTRS,2003-01-03 00:43:00,2003-08-21 20:58:00,COLLATERAL
-173321,17924.253,DEE,DER,A,8514.82,65,2,BBA,FOLDERW,LTTRS,2003-01-02 13:43:00,2003-08-21 22:58:00,COLLATERAL
-173332,17927.364,DFF,FVG,A,8501,64,3,BBC,FOLDERX,LTTRS,2003-01-02 02:43:00,2003-08-22 00:58:00,COLLATERAL
-173343,17930.475,DGG,KWE,A,8487.18,63,4,BBE,FOLDERY,LTTRS,2003-01-01 15:43:00,2003-08-22 02:58:00,NOT COLLATERAL
-173354,17933.586,DHH,WER,A,8473.36,62,5,BBF,FOLDERZ,LTTRS,2003-01-01 04:43:00,2003-08-22 04:58:00,NOT COLLATERAL
-173365,17936.697,AAA,GFH,A,8459.54,61,6,BBG,FOLDERZ,LTTRS,2002-12-31 17:43:00,2003-08-22 06:58:00,NOT COLLATERAL
-173376,17939.808,BBB,BGF,A,8445.72,60,7,BBH,FOLDERZ,LTTRS,2002-12-31 06:43:00,2003-08-22 08:58:00,NOT COLLATERAL
-173387,17942.919,CCC,XCS,A,8431.9,59,8,CCA,FOLDERZ,LTTRS,2002-12-30 19:43:00,2003-08-22 10:58:00,NOT COLLATERAL
-173398,17946.03,DDD,JHK,A,8418.08,58,9,CCB,FOLDERZ,LTTRZ,2002-12-30 08:43:00,2003-08-22 12:58:00,NOT COLLATERAL
-173409,17949.141,AAB,SFD,A,8404.26,57,10,CCD,FOLDERZ,LTTRA,2002-12-29 21:43:00,2003-08-22 14:58:00,NOT COLLATERAL
-173420,17952.252,AAC,WRE,A,8390.44,56,11,CCE,FOLDERZ,LTTRB,2002-12-29 10:43:00,2003-08-22 16:58:00,NOT COLLATERAL
-173431,17955.363,AAD,HGV,A,8376.62,55,12,CCF,FOLDERZ,LTTRB,2002-12-28 23:43:00,2003-08-22 18:58:00,NOT COLLATERAL
-173442,17958.474,AAE,KLS,A,8362.8,54,13,CCG,FOLDERZ,LTTRA,2002-12-28 12:43:00,2003-08-22 20:58:00,COLLATERAL
-173453,17961.585,AAF,SDK,A,8348.98,53,14,CCH,FOLDERZ,LTTRA,2002-12-28 01:43:00,2003-08-22 22:58:00,COLLATERAL
-173464,17964.696,BBA,MNV,A,8335.16,52,15,CCI,FOLDERZ,LTTRS,2002-12-27 14:43:00,2003-08-23 00:58:00,COLLATERAL
-173475,17967.807,BBC,OKW,A,8321.34,51,16,CCJ,FOLDERZ,LTTRZ,2002-12-27 03:43:00,2003-08-23 02:58:00,NOT COLLATERAL
-173486,17970.918,BBE,ASS,A,8307.52,50,17,DDD,FOLDERZ,LTTRS,2002-12-26 16:43:00,2003-08-23 04:58:00,NOT COLLATERAL
-173497,17974.029,BBF,CKA,A,8293.7,49,18,DDA,FOLDERZ,LTTRS,2002-12-26 05:43:00,2003-08-23 06:58:00,NOT COLLATERAL
-173508,17977.14,BBG,SWQ,A,8279.88,48,19,DAA,FOLDERX,LTTRS,2002-12-25 18:43:00,2003-08-23 08:58:00,NOT COLLATERAL
-173519,17980.251,BBH,KUH,A,8266.06,47,20,FKF,FOLDERX,LTTRS,2002-12-25 07:43:00,2003-08-23 10:58:00,NOT COLLATERAL
-173530,17983.362,CCA,XCV,A,8252.24,46,21,LES,FOLDERX,LTTRS,2002-12-24 20:43:00,2003-08-23 12:58:00,NOT COLLATERAL
-173541,17986.473,CCB,ZAQ,A,8238.42,45,22,KLD,FOLDERX,LTTRS,2002-12-24 09:43:00,2003-08-23 14:58:00,NOT COLLATERAL
-173552,17989.584,CCD,MKO,A,8224.6,44,23,SKL,FOLDERX,LTTRS,2002-12-23 22:43:00,2003-08-23 16:58:00,NOT COLLATERAL
-173563,17992.695,CCE,VFR,A,8210.78,43,24,SIW,FOLDERX,LTTRS,2002-12-23 11:43:00,2003-08-23 18:58:00,NOT COLLATERAL
-173574,17995.806,CCF,YUJ,A,8196.96,42,25,CKA,FOLDERX,LTTRS,2002-12-23 00:43:00,2003-08-23 20:58:00,COLLATERAL
-173585,17998.917,CCG,MED,A,8183.14,41,26,LDE,FOLDERX,LTTRS,2002-12-22 13:43:00,2003-08-23 22:58:00,COLLATERAL
-173596,18002.028,CCH,SWE,A,8169.32,40,27,KFF,FOLDERX,LTTRS,2002-12-22 02:43:00,2003-08-24 00:58:00,COLLATERAL
-173607,18005.139,CCI,CVF,A,8155.5,39,28,EFH,FOLDERX,LTTRS,2002-12-21 15:43:00,2003-08-24 02:58:00,NOT COLLATERAL
-173618,18008.25,CCJ,DSFG,A,8141.68,38,29,NGC,FOLDERX,LTTRS,2002-12-21 04:43:00,2003-08-24 04:58:00,NOT COLLATERAL
-173629,18011.361,DDD,ASDRE,A,8127.86,37,30,DER,FOLDERX,LTTRS,2002-12-20 17:43:00,2003-08-24 06:58:00,NOT COLLATERAL
-173640,18014.472,DDA,HJKSS,A,8114.04,36,31,FVG,FOLDERR,LTTRZ,2002-12-20 06:43:00,2003-08-24 08:58:00,NOT COLLATERAL
-173651,18017.583,DAA,KHAA,A,8100.22,35,32,KWE,FOLDERS,LTTRA,2002-12-19 19:43:00,2003-08-24 10:58:00,NOT COLLATERAL
-173662,18020.694,DBB,KSLD,A,8086.4,34,33,WER,FOLDERX,LTTRB,2002-12-19 08:43:00,2003-08-24 12:58:00,NOT COLLATERAL
-173673,18023.805,DCC,EKID,A,8072.58,33,34,GFH,FOLDERR,LTTRB,2002-12-18 21:43:00,2003-08-24 14:58:00,NOT COLLATERAL
-173684,18026.916,DEE,VNCD,A,8058.76,32,35,BGF,FOLDERS,LTTRA,2002-12-18 10:43:00,2003-08-24 16:58:00,NOT COLLATERAL
-173695,18030.027,DFF,DKD,A,8044.94,31,36,XCS,FOLDERX,LTTRA,2002-12-17 23:43:00,2003-08-24 18:58:00,NOT COLLATERAL
-173706,18033.138,DGG,FKF,A,8031.12,30,37,JHK,FOLDERR,LTTRS,2002-12-17 12:43:00,2003-08-24 20:58:00,COLLATERAL
-173717,18036.249,DHH,LES,A,8017.3,29,38,SFD,FOLDERS,LTTRZ,2002-12-17 01:43:00,2003-08-24 22:58:00,COLLATERAL
-173728,18039.36,AAA,KLD,A,8003.48,28,39,WRE,FOLDERX,LTTRS,2002-12-16 14:43:00,2003-08-25 00:58:00,COLLATERAL
-173739,18042.471,BBB,SKL,A,7989.66,27,40,HGV,FOLDERR,LTTRS,2002-12-16 03:43:00,2003-08-25 02:58:00,NOT COLLATERAL
-173750,18045.582,CCC,SIW,A,7975.84,26,41,KLS,FOLDERS,LTTRS,2002-12-15 16:43:00,2003-08-25 04:58:00,NOT COLLATERAL
-173761,18048.693,DDD,CKA,A,7962.02,25,42,SDK,FOLDERX,LTTRS,2002-12-15 05:43:00,2003-08-25 06:58:00,NOT COLLATERAL
-173772,18051.804,AAB,LDE,A,7948.2,24,43,MNV,FOLDERR,LTTRS,2002-12-14 18:43:00,2003-08-25 08:58:00,NOT COLLATERAL
-173783,18054.915,AAC,KFF,A,7934.38,23,44,OKW,FOLDERS,LTTRS,2002-12-14 07:43:00,2003-08-25 10:58:00,NOT COLLATERAL
-173794,18058.026,AAD,EFH,A,7920.56,22,45,ASS,FOLDERX,LTTRS,2002-12-13 20:43:00,2003-08-25 12:58:00,NOT COLLATERAL
-173805,18061.137,AAE,NGC,A,7906.74,21,46,CKA,FOLDERD,LTTRS,2002-12-13 09:43:00,2003-08-25 14:58:00,NOT COLLATERAL
-173816,18064.248,AAF,DER,A,7892.92,24,47,SWQ,FOLDERE,LTTRS,2002-12-12 22:43:00,2003-08-25 16:58:00,NOT COLLATERAL
-173827,18067.359,BBA,FVG,A,7879.1,27,48,KUH,FOLDERF,LTTRS,2002-12-12 11:43:00,2003-08-25 18:58:00,NOT COLLATERAL
-173838,18070.47,BBC,KWE,A,7865.28,30,49,XCV,FOLDERG,LTTRS,2002-12-12 00:43:00,2003-08-25 20:58:00,COLLATERAL
-173849,18073.581,BBE,WER,A,7851.46,33,48,ZAQ,FOLDERH,LTTRS,2002-12-11 13:43:00,2003-08-25 22:58:00,COLLATERAL
-173860,18076.692,BBF,GFH,A,7837.64,36,47,MKO,FOLDERI,LTTRS,2002-12-11 02:43:00,2003-08-26 00:58:00,COLLATERAL
-173871,18079.803,BBG,BGF,A,7823.82,39,46,VFR,FOLDERJ,LTTRS,2002-12-10 15:43:00,2003-08-26 02:58:00,NOT COLLATERAL
-173882,18082.914,BBH,XCS,A,7810,42,45,YUJ,FOLDERK,LTTRZ,2002-12-10 04:43:00,2003-08-26 04:58:00,NOT COLLATERAL
-173893,18086.025,CCA,JHK,A,7796.18,45,44,AAA,FOLDERL,LTTRA,2002-12-09 17:43:00,2003-08-26 06:58:00,NOT COLLATERAL
-173904,18089.136,CCB,SFD,A,7782.36,48,43,BBB,FOLDERM,LTTRB,2002-12-09 06:43:00,2003-08-26 08:58:00,NOT COLLATERAL
-173915,18092.247,CCD,WRE,A,7768.54,51,42,CCC,FOLDERN,LTTRB,2002-12-08 19:43:00,2003-08-26 10:58:00,NOT COLLATERAL
-173926,18095.358,CCE,HGV,A,7754.72,54,41,DDD,FOLDERN,LTTRA,2002-12-08 08:43:00,2003-08-26 12:58:00,NOT COLLATERAL
-173937,18098.469,CCF,KLS,A,7740.9,57,40,AAB,FOLDERN,LTTRA,2002-12-07 21:43:00,2003-08-26 14:58:00,NOT COLLATERAL
-173948,18101.58,CCG,SDK,A,7727.08,60,39,AAC,FOLDERN,LTTRS,2002-12-07 10:43:00,2003-08-26 16:58:00,NOT COLLATERAL
-173959,18104.691,CCH,MNV,A,7713.26,63,38,AAD,FOLDERL,LTTRZ,2002-12-06 23:43:00,2003-08-26 18:58:00,NOT COLLATERAL
-173970,18107.802,CCI,OKW,A,7699.44,66,37,AAE,FOLDERL,LTTRS,2002-12-06 12:43:00,2003-08-26 20:58:00,COLLATERAL
-173981,18110.913,CCJ,ASS,A,7685.62,69,36,AAF,FOLDERL,LTTRS,2002-12-06 01:43:00,2003-08-26 22:58:00,COLLATERAL
-173992,18114.024,DDD,CKA,A,7671.8,72,35,BBA,FOLDERL,LTTRS,2002-12-05 14:43:00,2003-08-27 00:58:00,COLLATERAL
-174003,18117.135,DDA,SWQ,A,7657.98,75,34,BBC,FOLDERL,LTTRS,2002-12-05 03:43:00,2003-08-27 02:58:00,NOT COLLATERAL
-174014,18120.246,DAA,KUH,A,7644.16,78,33,BBE,FOLDERR,LTTRS,2002-12-04 16:43:00,2003-08-27 04:58:00,NOT COLLATERAL
-174025,18123.357,DBB,XCV,A,7630.34,81,32,BBF,FOLDERS,LTTRS,2002-12-04 05:43:00,2003-08-27 06:58:00,NOT COLLATERAL
-174036,18126.468,DCC,ZAQ,A,7616.52,84,31,BBG,FOLDERX,LTTRS,2002-12-03 18:43:00,2003-08-27 08:58:00,NOT COLLATERAL
-174047,18129.579,DEE,MKO,A,7602.7,87,30,BBH,FOLDERR,LTTRS,2002-12-03 07:43:00,2003-08-27 10:58:00,NOT COLLATERAL
-174058,18132.69,DFF,VFR,A,7588.88,90,29,CCA,FOLDERS,LTTRS,2002-12-02 20:43:00,2003-08-27 12:58:00,NOT COLLATERAL
-174069,18135.801,DGG,YUJ,A,7575.06,93,28,CCB,FOLDERX,LTTRS,2002-12-02 09:43:00,2003-08-27 14:58:00,NOT COLLATERAL
-174080,18138.912,DHH,MED,A,7561.24,96,27,CCD,FOLDERD,LTTRS,2002-12-01 22:43:00,2003-08-27 16:58:00,NOT COLLATERAL
-174091,18142.023,AAA,SWE,A,7547.42,99,26,CCE,FOLDERE,LTTRS,2002-12-01 11:43:00,2003-08-27 18:58:00,NOT COLLATERAL
-174102,18145.134,BBB,CVF,A,7533.6,102,25,CCF,FOLDERF,LTTRS,2002-12-01 00:43:00,2003-08-27 20:58:00,COLLATERAL
-174113,18148.245,CCC,DSFG,A,7519.78,105,24,CCG,FOLDERG,LTTRS,2002-11-30 13:43:00,2003-08-27 22:58:00,COLLATERAL
-174124,18151.356,DDD,ASDRE,A,7505.96,108,23,CCH,FOLDERH,LTTRZ,2002-11-30 02:43:00,2003-08-28 00:58:00,COLLATERAL
-174135,18154.467,AAB,HJKSS,A,7492.14,111,22,CCI,FOLDERI,LTTRA,2002-11-29 15:43:00,2003-08-28 02:58:00,NOT COLLATERAL
-174146,18157.578,AAC,KHAA,A,7478.32,114,21,CCJ,FOLDERJ,LTTRB,2002-11-29 04:43:00,2003-08-28 04:58:00,NOT COLLATERAL
-174157,18160.689,AAD,KSLD,A,7464.5,117,20,DDD,FOLDERK,LTTRB,2002-11-28 17:43:00,2003-08-28 06:58:00,NOT COLLATERAL
-174168,18163.8,AAE,EKID,A,7450.68,120,19,DDA,FOLDERL,LTTRA,2002-11-28 06:43:00,2003-08-28 08:58:00,NOT COLLATERAL
-174179,18166.911,AAF,VNCD,A,7436.86,123,18,DAA,FOLDERM,LTTRA,2002-11-27 19:43:00,2003-08-28 10:58:00,NOT COLLATERAL
-174190,18170.022,BBA,DKD,A,7423.04,126,17,FKF,FOLDERN,LTTRS,2002-11-27 08:43:00,2003-08-28 12:58:00,NOT COLLATERAL
-174201,18173.133,BBC,FKF,A,7409.22,129,16,LES,FOLDERN,LTTRZ,2002-11-26 21:43:00,2003-08-28 14:58:00,NOT COLLATERAL
-174212,18176.244,BBE,LES,A,7395.4,132,15,KLD,FOLDERN,LTTRS,2002-11-26 10:43:00,2003-08-28 16:58:00,NOT COLLATERAL
-174223,18179.355,BBF,KLD,A,7381.58,135,14,SKL,FOLDERN,LTTRS,2002-11-25 23:43:00,2003-08-28 18:58:00,NOT COLLATERAL
-174234,18182.466,BBG,SKL,A,7367.76,138,13,SIW,FOLDERL,LTTRS,2002-11-25 12:43:00,2003-08-28 20:58:00,COLLATERAL
-174245,18185.577,BBH,SIW,A,7353.94,141,12,CKA,FOLDERL,LTTRS,2002-11-25 01:43:00,2003-08-28 22:58:00,COLLATERAL
-174256,18188.688,CCA,CKA,A,7340.12,144,11,LDE,FOLDERL,LTTRS,2002-11-24 14:43:00,2003-08-29 00:58:00,COLLATERAL
-174267,18191.799,CCB,LDE,A,7326.3,147,10,KFF,FOLDERL,LTTRS,2002-11-24 03:43:00,2003-08-29 02:58:00,NOT COLLATERAL
-174278,18194.91,CCD,KFF,A,7312.48,150,9,EFH,FOLDERL,LTTRS,2002-11-23 16:43:00,2003-08-29 04:58:00,NOT COLLATERAL
-174289,18198.021,CCE,EFH,A,7298.66,153,8,NGC,FOLDERA,LTTRS,2002-11-23 05:43:00,2003-08-29 06:58:00,NOT COLLATERAL
-174300,18201.132,CCF,NGC,A,7284.84,156,7,DER,FOLDERB,LTTRS,2002-11-22 18:43:00,2003-08-29 08:58:00,NOT COLLATERAL
-174311,18204.243,CCG,DER,A,7271.02,159,6,FVG,FOLDERC,LTTRS,2002-11-22 07:43:00,2003-08-29 10:58:00,NOT COLLATERAL
-174322,18207.354,CCH,FVG,A,7257.2,162,5,KWE,FOLDERD,LTTRS,2002-11-21 20:43:00,2003-08-29 12:58:00,NOT COLLATERAL
-174333,18210.465,CCI,KWE,A,7243.38,165,4,WER,FOLDERE,LTTRS,2002-11-21 09:43:00,2003-08-29 14:58:00,NOT COLLATERAL
-174344,18213.576,CCJ,WER,A,7229.56,168,3,GFH,FOLDERF,LTTRS,2002-11-20 22:43:00,2003-08-29 16:58:00,NOT COLLATERAL
-174355,18216.687,DDD,GFH,A,7215.74,171,1,BGF,FOLDERG,LTTRS,2002-11-20 11:43:00,2003-08-29 18:58:00,NOT COLLATERAL
-174366,18219.798,DDA,BGF,A,7201.92,174,2,XCS,FOLDERH,LTTRZ,2002-11-20 00:43:00,2003-08-29 20:58:00,COLLATERAL
-174377,18222.909,DAA,XCS,A,7188.1,177,3,JHK,FOLDERI,LTTRA,2002-11-19 13:43:00,2003-08-29 22:58:00,COLLATERAL
-174388,18226.02,DBB,JHK,A,7174.28,180,4,SFD,FOLDERJ,LTTRB,2002-11-19 02:43:00,2003-08-30 00:58:00,COLLATERAL
-174399,18229.131,DCC,SFD,A,7160.46,183,5,WRE,FOLDERK,LTTRB,2002-11-18 15:43:00,2003-08-30 02:58:00,NOT COLLATERAL
-174410,18232.242,DEE,WRE,A,7146.64,186,6,HGV,FOLDERL,LTTRA,2002-11-18 04:43:00,2003-08-30 04:58:00,NULL
-174421,18235.353,DFF,HGV,A,7132.82,189,7,KLS,FOLDERM,LTTRA,2002-11-17 17:43:00,2003-08-30 06:58:00,NULL
-174432,18238.464,DGG,KLS,A,7119,192,8,SDK,FOLDERN,LTTRS,2002-11-17 06:43:00,2003-08-30 08:58:00,NULL
-174443,18241.575,DHH,SDK,A,7105.18,195,9,MNV,FOLDERO,LTTRZ,2002-11-16 19:43:00,2003-08-30 10:58:00,NULL
-174454,18244.686,AAA,MNV,A,7091.36,198,10,OKW,FOLDERP,LTTRS,2002-11-16 08:43:00,2003-08-30 12:58:00,NULL
-174465,18247.797,BBB,OKW,A,7077.54,201,11,ASS,FOLDERQ,LTTRS,2002-11-15 21:43:00,2003-08-30 14:58:00,NULL
-174476,18250.908,CCC,ASS,A,7063.72,204,12,CKA,FOLDERR,LTTRS,2002-11-15 10:43:00,2003-08-30 16:58:00,NULL
-174487,18254.019,DDD,CKA,A,7049.9,207,13,SWQ,FOLDERS,LTTRS,2002-11-14 23:43:00,2003-08-30 18:58:00,NULL
-174498,18257.13,AAB,SWQ,A,7036.08,210,14,KUH,FOLDERT,LTTRS,2002-11-14 12:43:00,2003-08-30 20:58:00,COLLATERAL
-174509,18260.241,AAC,KUH,A,7022.26,213,15,XCV,FOLDERU,LTTRS,2002-11-14 01:43:00,2003-08-30 22:58:00,COLLATERAL
-174520,18263.352,AAD,XCV,A,7008.44,216,16,ZAQ,FOLDERV,LTTRS,2002-11-13 14:43:00,2003-08-31 00:58:00,COLLATERAL
-174531,18266.463,AAE,ZAQ,A,6994.62,219,17,MKO,FOLDERW,LTTRS,2002-11-13 03:43:00,2003-08-31 02:58:00,NOT COLLATERAL
-174542,18269.574,AAF,MKO,A,6980.8,222,18,VFR,FOLDERX,LTTRS,2002-11-12 16:43:00,2003-08-31 04:58:00,NOT COLLATERAL
-174553,18272.685,BBA,VFR,A,6966.98,225,19,YUJ,FOLDERY,LTTRS,2002-11-12 05:43:00,2003-08-31 06:58:00,NULL
-174564,18275.796,BBC,YUJ,A,6953.16,228,20,XCV,FOLDERZ,LTTRS,2002-11-11 18:43:00,2003-08-31 08:58:00,NULL
-174575,18278.907,BBE,MED,A,6939.34,231,21,ZAQ,FOLDERA,LTTRS,2002-11-11 07:43:00,2003-08-31 10:58:00,NULL
-174586,18282.018,BBF,SWE,A,6925.52,234,22,MKO,FOLDERB,LTTRS,2002-11-10 20:43:00,2003-08-31 12:58:00,NULL
-174597,18285.129,BBG,CVF,A,6911.7,237,23,VFR,FOLDERC,LTTRS,2002-11-10 09:43:00,2003-08-31 14:58:00,NULL
-174608,18288.24,BBH,DSFG,A,6897.88,240,24,YUJ,FOLDERD,LTTRZ,2002-11-09 22:43:00,2003-08-31 16:58:00,NULL
-174619,18291.351,CCA,ASDRE,A,6884.06,243,25,AAA,FOLDERE,LTTRA,2002-11-09 11:43:00,2003-08-31 18:58:00,NULL
-174630,18294.462,CCB,HJKSS,A,6870.24,246,26,BBB,FOLDERF,LTTRB,2002-11-09 00:43:00,2003-08-31 20:58:00,NULL
-174641,18297.573,CCD,KHAA,A,6856.42,249,27,CCC,FOLDERG,LTTRB,2002-11-08 13:43:00,2003-08-31 22:58:00,COLLATERAL
-174652,18300.684,CCE,KSLD,A,6842.6,252,28,DDD,FOLDERH,LTTRA,2002-11-08 02:43:00,2003-09-01 00:58:00,COLLATERAL
-174663,18303.795,CCF,EKID,A,6828.78,255,29,AAB,FOLDERI,LTTRA,2002-11-07 15:43:00,2003-09-01 02:58:00,NOT COLLATERAL
-174674,18306.906,CCG,VNCD,A,6814.96,258,30,AAC,FOLDERJ,LTTRS,2002-11-07 04:43:00,2003-09-01 04:58:00,NULL
-174685,18310.017,CCH,DKD,A,6801.14,261,31,AAD,FOLDERK,LTTRZ,2002-11-06 17:43:00,2003-09-01 06:58:00,NULL
-174696,18313.128,CCI,FKF,A,6787.32,264,32,AAE,FOLDERL,LTTRS,2002-11-06 06:43:00,2003-09-01 08:58:00,NULL
-174707,18316.239,CCJ,LES,A,6773.5,267,33,AAF,FOLDERM,LTTRS,2002-11-05 19:43:00,2003-09-01 10:58:00,NULL
-174718,18319.35,DDD,KLD,A,6759.68,270,34,BBA,FOLDERN,LTTRS,2002-11-05 08:43:00,2003-09-01 12:58:00,NULL
-174729,18322.461,DDA,SKL,A,6745.86,273,35,BBC,FOLDERO,LTTRS,2002-11-04 21:43:00,2003-09-01 14:58:00,NULL
-174740,18325.572,DAA,SIW,A,6732.04,276,36,BBE,FOLDERP,LTTRS,2002-11-04 10:43:00,2003-09-01 16:58:00,NOT COLLATERAL
-174751,18328.683,DBB,CKA,A,6718.22,279,37,BBF,FOLDERQ,LTTRS,2002-11-03 23:43:00,2003-09-01 18:58:00,NOT COLLATERAL
-174762,18331.794,DCC,LDE,A,6704.4,282,38,BBG,FOLDERR,LTTRS,2002-11-03 12:43:00,2003-09-01 20:58:00,COLLATERAL
-174773,18334.905,DEE,KFF,A,6690.58,285,39,BBH,FOLDERS,LTTRS,2002-11-03 01:43:00,2003-09-01 22:58:00,COLLATERAL
-174784,18338.016,DFF,EFH,A,6676.76,288,40,CCA,FOLDERT,LTTRS,2002-11-02 14:43:00,2003-09-02 00:58:00,COLLATERAL
-174795,18341.127,DGG,NGC,A,6662.94,291,41,CCB,FOLDERU,LTTRS,2002-11-02 03:43:00,2003-09-02 02:58:00,NOT COLLATERAL
-174806,18344.238,DHH,DER,A,6649.12,294,42,CCD,FOLDERV,LTTRS,2002-11-01 16:43:00,2003-09-02 04:58:00,NOT COLLATERAL
-174817,18347.349,AAA,FVG,A,6635.3,297,43,CCE,FOLDERW,LTTRS,2002-11-01 05:43:00,2003-09-02 06:58:00,NOT COLLATERAL
-174828,18350.46,BBB,KWE,A,6621.48,300,44,CCF,FOLDERX,LTTRS,2002-10-31 18:43:00,2003-09-02 08:58:00,NOT COLLATERAL
-174839,18353.571,CCC,WER,A,6607.66,303,45,CCG,FOLDERY,LTTRS,2002-10-31 07:43:00,2003-09-02 10:58:00,NOT COLLATERAL
-174850,18356.682,DDD,GFH,A,6593.84,306,46,CCH,FOLDERZ,LTTRZ,2002-10-30 20:43:00,2003-09-02 12:58:00,NOT COLLATERAL
-174861,18359.793,AAB,BGF,A,6580.02,309,47,CCI,FOLDERZ,LTTRA,2002-10-30 09:43:00,2003-09-02 14:58:00,NOT COLLATERAL
-174872,18362.904,AAC,XCS,A,6566.2,312,48,CCJ,FOLDERZ,LTTRB,2002-10-29 22:43:00,2003-09-02 16:58:00,NOT COLLATERAL
-174883,18366.015,AAD,JHK,A,6552.38,315,49,DDD,FOLDERZ,LTTRB,2002-10-29 11:43:00,2003-09-02 18:58:00,NOT COLLATERAL
-174894,18369.126,AAE,SFD,A,6538.56,318,48,DDA,FOLDERZ,LTTRA,2002-10-29 00:43:00,2003-09-02 20:58:00,COLLATERAL
-174905,18372.237,AAF,WRE,A,6524.74,321,47,DAA,FOLDERZ,LTTRA,2002-10-28 13:43:00,2003-09-02 22:58:00,COLLATERAL
-174916,18375.348,BBA,HGV,A,6510.92,324,46,FKF,FOLDERZ,LTTRS,2002-10-28 02:43:00,2003-09-03 00:58:00,COLLATERAL
-174927,18378.459,BBC,KLS,A,6497.1,327,45,LES,FOLDERZ,LTTRZ,2002-10-27 15:43:00,2003-09-03 02:58:00,NOT COLLATERAL
-174938,18381.57,BBE,SDK,A,6483.28,330,44,KLD,FOLDERZ,LTTRS,2002-10-27 04:43:00,2003-09-03 04:58:00,NOT COLLATERAL
-174949,18384.681,BBF,MNV,A,6469.46,333,43,SKL,FOLDERZ,LTTRS,2002-10-26 17:43:00,2003-09-03 06:58:00,NOT COLLATERAL
-174960,18387.792,BBG,OKW,A,6455.64,336,42,SIW,FOLDERZ,LTTRS,2002-10-26 06:43:00,2003-09-03 08:58:00,NOT COLLATERAL
-174971,18390.903,BBH,ASS,A,6441.82,339,41,CKA,FOLDERZ,LTTRS,2002-10-25 19:43:00,2003-09-03 10:58:00,NOT COLLATERAL
-174982,18394.014,CCA,CKA,A,6428,342,40,LDE,FOLDERZ,LTTRS,2002-10-25 08:43:00,2003-09-03 12:58:00,NOT COLLATERAL
-174993,18397.125,CCB,SWQ,A,6414.18,345,39,KFF,FOLDERZ,LTTRS,2002-10-24 21:43:00,2003-09-03 14:58:00,NOT COLLATERAL
-175004,18400.236,CCD,KUH,A,6400.36,348,38,EFH,FOLDERX,LTTRS,2002-10-24 10:43:00,2003-09-03 16:58:00,NOT COLLATERAL
-175015,18403.347,CCE,XCV,A,6386.54,351,37,NGC,FOLDERX,LTTRS,2002-10-23 23:43:00,2003-09-03 18:58:00,NOT COLLATERAL
-175026,18406.458,CCF,ZAQ,A,6372.72,354,36,DER,FOLDERX,LTTRS,2002-10-23 12:43:00,2003-09-03 20:58:00,COLLATERAL
-175037,18409.569,CCG,MKO,A,6358.9,357,35,FVG,FOLDERX,LTTRS,2002-10-23 01:43:00,2003-09-03 22:58:00,COLLATERAL
-175048,18412.68,CCH,VFR,A,6345.08,360,34,KWE,FOLDERX,LTTRS,2002-10-22 14:43:00,2003-09-04 00:58:00,COLLATERAL
-175059,18415.791,CCI,YUJ,A,6331.26,363,33,WER,FOLDERX,LTTRS,2002-10-22 03:43:00,2003-09-04 02:58:00,NOT COLLATERAL
-175070,18418.902,CCJ,MED,A,6317.44,366,32,GFH,FOLDERX,LTTRS,2002-10-21 16:43:00,2003-09-04 04:58:00,NOT COLLATERAL
-175081,18422.013,DDD,SWE,A,6303.62,369,31,BGF,FOLDERX,LTTRS,2002-10-21 05:43:00,2003-09-04 06:58:00,NOT COLLATERAL
-175092,18425.124,DDA,CVF,A,6289.8,372,30,XCS,FOLDERX,LTTRZ,2002-10-20 18:43:00,2003-09-04 08:58:00,NOT COLLATERAL
-175103,18428.235,DAA,DSFG,A,6275.98,375,29,JHK,FOLDERX,LTTRA,2002-10-20 07:42:00,2003-09-04 10:58:00,NOT COLLATERAL
-175114,18431.346,DBB,ASDRE,A,6262.16,378,28,SFD,FOLDERX,LTTRB,2002-10-19 20:42:00,2003-09-04 12:58:00,NOT COLLATERAL
-175125,18434.457,DCC,HJKSS,A,6248.34,381,27,WRE,FOLDERX,LTTRB,2002-10-19 09:42:00,2003-09-04 14:58:00,NOT COLLATERAL
-175136,18437.568,DEE,KHAA,A,6234.52,384,26,HGV,FOLDERR,LTTRA,2002-10-18 22:42:00,2003-09-04 16:58:00,NOT COLLATERAL
-175147,18440.679,DFF,KSLD,A,6220.7,387,25,KLS,FOLDERS,LTTRA,2002-10-18 11:42:00,2003-09-04 18:58:00,NOT COLLATERAL
-175158,18443.79,DGG,EKID,A,6206.88,390,24,SDK,FOLDERX,LTTRS,2002-10-18 00:42:00,2003-09-04 20:58:00,COLLATERAL
-175169,18446.901,DHH,VNCD,A,6193.06,393,23,MNV,FOLDERR,LTTRZ,2002-10-17 13:42:00,2003-09-04 22:58:00,COLLATERAL
-175180,18450.012,AAA,DKD,A,6179.24,396,22,OKW,FOLDERS,LTTRS,2002-10-17 02:42:00,2003-09-05 00:58:00,COLLATERAL
-175191,18453.123,BBB,FKF,A,6165.42,399,21,ASS,FOLDERX,LTTRS,2002-10-16 15:42:00,2003-09-05 02:58:00,NOT COLLATERAL
-175202,18456.234,CCC,LES,A,6151.6,402,20,CKA,FOLDERR,LTTRS,2002-10-16 04:42:00,2003-09-05 04:58:00,NOT COLLATERAL
-175213,18459.345,DDD,KLD,A,6137.78,405,19,SWQ,FOLDERS,LTTRS,2002-10-15 17:42:00,2003-09-05 06:58:00,NULL
-175224,18462.456,AAB,SKL,A,6123.96,408,18,KUH,FOLDERX,LTTRS,2002-10-15 06:42:00,2003-09-05 08:58:00,NULL
-175235,18465.567,AAC,SIW,A,6110.14,402,17,XCV,FOLDERR,LTTRS,2002-10-14 19:42:00,2003-09-05 10:58:00,NULL
-175246,18468.678,AAD,CKA,A,6096.32,396,16,ZAQ,FOLDERS,LTTRS,2002-10-14 08:42:00,2003-09-05 12:58:00,NULL
-175257,18471.789,AAE,LDE,A,6082.5,390,15,MKO,FOLDERX,LTTRS,2002-10-13 21:42:00,2003-09-05 14:58:00,NULL
-175268,18474.9,AAF,KFF,A,6068.68,384,14,VFR,FOLDERR,LTTRS,2002-10-13 10:42:00,2003-09-05 16:58:00,NULL
-175279,18478.011,BBA,EFH,A,6054.86,378,13,YUJ,FOLDERS,LTTRS,2002-10-12 23:42:00,2003-09-05 18:58:00,NULL
-175290,18481.122,BBC,NGC,A,6041.04,372,12,BBF,FOLDERX,LTTRS,2002-10-12 12:42:00,2003-09-05 20:58:00,NULL
-175301,18484.233,BBE,DER,A,6027.22,366,11,BBG,FOLDERD,LTTRS,2002-10-12 01:42:00,2003-09-05 22:58:00,COLLATERAL
-175312,18487.344,BBF,FVG,A,6013.4,360,10,BBH,FOLDERE,LTTRS,2002-10-11 14:42:00,2003-09-06 00:58:00,COLLATERAL
-175323,18490.455,BBG,KWE,A,5999.58,354,9,CCA,FOLDERF,LTTRS,2002-10-11 03:42:00,2003-09-06 02:58:00,NOT COLLATERAL
-175334,18493.566,BBH,WER,A,5985.76,348,8,CCB,FOLDERG,LTTRZ,2002-10-10 16:42:00,2003-09-06 04:58:00,NOT COLLATERAL
-175345,18496.677,CCA,GFH,A,5971.94,342,7,CCD,FOLDERH,LTTRA,2002-10-10 05:42:00,2003-09-06 06:58:00,NULL
-175356,18499.788,CCB,BGF,A,5958.12,336,6,CCE,FOLDERI,LTTRB,2002-10-09 18:42:00,2003-09-06 08:58:00,NULL
-175367,18502.899,CCD,XCS,A,5944.3,330,5,CCF,FOLDERJ,LTTRB,2002-10-09 07:42:00,2003-09-06 10:58:00,NULL
-175378,18506.01,CCE,JHK,A,5930.48,324,4,CCG,FOLDERK,LTTRA,2002-10-08 20:42:00,2003-09-06 12:58:00,NULL
-175389,18509.121,CCF,SFD,A,5916.66,318,3,CCH,FOLDERL,LTTRA,2002-10-08 09:42:00,2003-09-06 14:58:00,NULL
-175400,18512.232,CCG,WRE,A,5902.84,312,1,CCI,FOLDERM,LTTRS,2002-10-07 22:42:00,2003-09-06 16:58:00,NULL
-175411,18515.343,CCH,HGV,A,5889.02,306,2,CCJ,FOLDERN,LTTRZ,2002-10-07 11:42:00,2003-09-06 18:58:00,NOT COLLATERAL
-175422,18518.454,CCI,KLS,A,5875.2,300,3,DDD,FOLDERN,LTTRS,2002-10-07 00:42:00,2003-09-06 20:58:00,COLLATERAL
-175433,18521.565,CCJ,SDK,A,5861.38,294,4,DDA,FOLDERN,LTTRS,2002-10-06 13:42:00,2003-09-06 22:58:00,COLLATERAL
-175444,18524.676,DDD,MNV,A,5847.56,288,5,DAA,FOLDERN,LTTRS,2002-10-06 02:42:00,2003-09-07 00:58:00,COLLATERAL
-175455,18527.787,DDA,OKW,A,5833.74,282,6,FKF,FOLDERL,LTTRS,2002-10-05 15:42:00,2003-09-07 02:58:00,NOT COLLATERAL
-175466,18530.898,DAA,ASS,A,5819.92,276,7,LES,FOLDERL,LTTRS,2002-10-05 04:42:00,2003-09-07 04:58:00,NOT COLLATERAL
-175477,18534.009,DBB,CKA,A,5806.1,270,8,KLD,FOLDERL,LTTRS,2002-10-04 17:42:00,2003-09-07 06:58:00,NOT COLLATERAL
-175488,18537.12,DCC,SWQ,A,5792.28,264,9,SKL,FOLDERL,LTTRS,2002-10-04 06:42:00,2003-09-07 08:58:00,NULL
-175499,18540.231,DEE,KUH,A,5778.46,258,10,SIW,FOLDERL,LTTRS,2002-10-03 19:42:00,2003-09-07 10:58:00,NULL
-175510,18543.342,DFF,XCV,A,5764.64,252,11,CKA,FOLDERA,LTTRS,2002-10-03 08:42:00,2003-09-07 12:58:00,NULL
-175521,18546.453,DGG,ZAQ,A,5750.82,246,12,LDE,FOLDERB,LTTRS,2002-10-02 21:42:00,2003-09-07 14:58:00,NULL
-175532,18549.564,DHH,MKO,A,5737,240,13,KFF,FOLDERC,LTTRS,2002-10-02 10:42:00,2003-09-07 16:58:00,NULL
-175543,18552.675,AAA,VFR,A,5723.18,234,14,EFH,FOLDERD,LTTRS,2002-10-01 23:42:00,2003-09-07 18:58:00,NOT COLLATERAL
-175554,18555.786,BBB,YUJ,A,5709.36,228,15,NGC,FOLDERE,LTTRS,2002-10-01 12:42:00,2003-09-07 20:58:00,COLLATERAL
-175565,18558.897,CCC,MED,A,5695.54,222,16,DER,FOLDERF,LTTRS,2002-10-01 01:42:00,2003-09-07 22:58:00,COLLATERAL
-175576,18562.008,DDD,SWE,A,5681.72,216,17,FVG,FOLDERG,LTTRZ,2002-09-30 14:42:00,2003-09-08 00:58:00,COLLATERAL
-175587,18565.119,AAB,CVF,A,5667.9,210,18,KWE,FOLDERH,LTTRA,2002-09-30 03:42:00,2003-09-08 02:58:00,NOT COLLATERAL
-175598,18568.23,AAC,DSFG,A,5654.08,204,19,WER,FOLDERI,LTTRB,2002-09-29 16:42:00,2003-09-08 04:58:00,NOT COLLATERAL
-175609,18571.341,AAD,ASDRE,A,5640.26,198,20,GFH,FOLDERJ,LTTRB,2002-09-29 05:42:00,2003-09-08 06:58:00,NOT COLLATERAL
-175620,18574.452,AAE,HJKSS,A,5626.44,192,21,BGF,FOLDERK,LTTRA,2002-09-28 18:42:00,2003-09-08 08:58:00,NOT COLLATERAL
-175631,18577.563,AAF,KHAA,A,5612.62,186,22,XCS,FOLDERL,LTTRA,2002-09-28 07:42:00,2003-09-08 10:58:00,NOT COLLATERAL
-175642,18580.674,BBA,KSLD,A,5598.8,180,23,JHK,FOLDERM,LTTRS,2002-09-27 20:42:00,2003-09-08 12:58:00,NOT COLLATERAL
-175653,18583.785,BBC,EKID,A,5584.98,174,24,SFD,FOLDERN,LTTRZ,2002-09-27 09:42:00,2003-09-08 14:58:00,NOT COLLATERAL
-175664,18586.896,BBE,VNCD,A,5571.16,168,25,WRE,FOLDERO,LTTRS,2002-09-26 22:42:00,2003-09-08 16:58:00,NOT COLLATERAL
-175675,18590.007,BBF,DKD,A,5557.34,162,26,HGV,FOLDERP,LTTRS,2002-09-26 11:42:00,2003-09-08 18:58:00,NOT COLLATERAL
-175686,18593.118,BBG,FKF,A,5543.52,156,27,KLS,FOLDERQ,LTTRS,2002-09-26 00:42:00,2003-09-08 20:58:00,COLLATERAL
-175697,18596.229,BBH,LES,A,5529.7,150,28,SDK,FOLDERR,LTTRS,2002-09-25 13:42:00,2003-09-08 22:58:00,COLLATERAL
-175708,18599.34,CCA,KLD,A,5515.88,144,29,MNV,FOLDERS,LTTRS,2002-09-25 02:42:00,2003-09-09 00:58:00,COLLATERAL
-175719,18602.451,CCB,SKL,A,5502.06,138,30,OKW,FOLDERT,LTTRS,2002-09-24 15:42:00,2003-09-09 02:58:00,NOT COLLATERAL
-175730,18605.562,CCD,SIW,A,5488.24,132,31,ASS,FOLDERU,LTTRS,2002-09-24 04:42:00,2003-09-09 04:58:00,NOT COLLATERAL
-175741,18608.673,CCE,CKA,A,5474.42,126,32,CKA,FOLDERV,LTTRS,2002-09-23 17:42:00,2003-09-09 06:58:00,NOT COLLATERAL
-175752,18611.784,CCF,LDE,A,5460.6,120,33,SWQ,FOLDERW,LTTRS,2002-09-23 06:42:00,2003-09-09 08:58:00,NOT COLLATERAL
-175763,18614.895,CCG,KFF,A,5446.78,114,34,KUH,FOLDERX,LTTRS,2002-09-22 19:42:00,2003-09-09 10:58:00,NOT COLLATERAL
-175774,18618.006,CCH,EFH,A,5432.96,108,35,XCV,FOLDERY,LTTRS,2002-09-22 08:42:00,2003-09-09 12:58:00,NOT COLLATERAL
-175785,18621.117,CCI,NGC,A,5419.14,102,36,ZAQ,FOLDERZ,LTTRS,2002-09-21 21:42:00,2003-09-09 14:58:00,NOT COLLATERAL
-175796,18624.228,CCJ,DER,A,5405.32,96,37,MKO,FOLDERA,LTTRS,2002-09-21 10:42:00,2003-09-09 16:58:00,NOT COLLATERAL
-175807,18627.339,DDD,FVG,A,5391.5,90,38,VFR,FOLDERB,LTTRS,2002-09-20 23:42:00,2003-09-09 18:58:00,NOT COLLATERAL
-175818,18630.45,DDA,KWE,A,5377.68,91,39,YUJ,FOLDERC,LTTRZ,2002-09-20 12:42:00,2003-09-09 20:58:00,COLLATERAL
-175829,18633.561,DAA,WER,A,5363.86,91,40,XCV,FOLDERD,LTTRA,2002-09-20 01:42:00,2003-09-09 22:58:00,COLLATERAL
-175840,18636.672,DBB,GFH,A,5350.04,91,41,ZAQ,FOLDERE,LTTRB,2002-09-19 14:42:00,2003-09-10 00:58:00,COLLATERAL
-175851,18639.783,DCC,BGF,A,5336.22,91,42,MKO,FOLDERF,LTTRB,2002-09-19 03:42:00,2003-09-10 02:58:00,NOT COLLATERAL
-175862,18642.894,DEE,XCS,A,5322.4,91,43,VFR,FOLDERG,LTTRA,2002-09-18 16:42:00,2003-09-10 04:58:00,NOT COLLATERAL
-175873,18646.005,DFF,JHK,A,5308.58,91,44,YUJ,FOLDERH,LTTRA,2002-09-18 05:42:00,2003-09-10 06:58:00,NOT COLLATERAL
-175884,18649.116,DGG,SFD,A,5294.76,91,45,BBF,FOLDERI,LTTRS,2002-09-17 18:42:00,2003-09-10 08:58:00,NOT COLLATERAL
-175895,18652.227,DHH,WRE,A,5280.94,91,46,BBG,FOLDERJ,LTTRZ,2002-09-17 07:42:00,2003-09-10 10:58:00,NOT COLLATERAL
-175906,18655.338,AAA,HGV,A,5267.12,91,47,BBH,FOLDERK,LTTRS,2002-09-16 20:42:00,2003-09-10 12:58:00,NOT COLLATERAL
-175917,18658.449,BBB,KLS,A,5253.3,91,48,CCA,FOLDERL,LTTRS,2002-09-16 09:42:00,2003-09-10 14:58:00,NOT COLLATERAL
-175928,18661.56,CCC,SDK,A,5239.48,92,49,CCB,FOLDERM,LTTRS,2002-09-15 22:42:00,2003-09-10 16:58:00,NOT COLLATERAL
-175939,18664.671,DDD,MNV,A,5225.66,93,48,CCD,FOLDERN,LTTRS,2002-09-15 11:42:00,2003-09-10 18:58:00,NOT COLLATERAL
-175950,18667.782,AAB,OKW,A,5211.84,94,47,CCE,FOLDERO,LTTRS,2002-09-15 00:42:00,2003-09-10 20:58:00,COLLATERAL
-175961,18670.893,AAC,ASS,A,5198.02,95,46,CCF,FOLDERP,LTTRS,2002-09-14 13:42:00,2003-09-10 22:58:00,COLLATERAL
-175972,18674.004,AAD,CKA,A,5184.2,96,45,CCG,FOLDERQ,LTTRS,2002-09-14 02:42:00,2003-09-11 00:58:00,COLLATERAL
-175983,18677.115,AAE,SWQ,A,5170.38,97,44,CCH,FOLDERR,LTTRS,2002-09-13 15:42:00,2003-09-11 02:58:00,NOT COLLATERAL
-175994,18680.226,AAF,KUH,A,5156.56,98,43,CCI,FOLDERS,LTTRS,2002-09-13 04:42:00,2003-09-11 04:58:00,NOT COLLATERAL
-176005,18683.337,BBA,XCV,A,5142.74,99,42,CCJ,FOLDERT,LTTRS,2002-09-12 17:42:00,2003-09-11 06:58:00,NOT COLLATERAL
-176016,18686.448,BBC,ZAQ,A,5128.92,100,41,DDD,FOLDERU,LTTRS,2002-09-12 06:42:00,2003-09-11 08:58:00,NOT COLLATERAL
-176027,18689.559,BBE,MKO,A,5115.1,101,40,DDA,FOLDERV,LTTRS,2002-09-11 19:42:00,2003-09-11 10:58:00,NOT COLLATERAL
-176038,18692.67,BBF,VFR,A,5101.28,102,39,DAA,FOLDERW,LTTRS,2002-09-11 08:42:00,2003-09-11 12:58:00,NOT COLLATERAL
-176049,18695.781,BBG,YUJ,A,5087.46,103,38,FKF,FOLDERX,LTTRS,2002-09-10 21:42:00,2003-09-11 14:58:00,NOT COLLATERAL
-176060,18698.892,BBH,MED,A,5073.64,104,37,LES,FOLDERY,LTTRZ,2002-09-10 10:42:00,2003-09-11 16:58:00,NOT COLLATERAL
-176071,18702.003,CCA,SWE,A,5059.82,105,36,KLD,FOLDERZ,LTTRA,2002-09-09 23:42:00,2003-09-11 18:58:00,NOT COLLATERAL
-176082,18705.114,CCB,CVF,A,5046,106,35,SKL,FOLDERZ,LTTRB,2002-09-09 12:42:00,2003-09-11 20:58:00,COLLATERAL
-176093,18708.225,CCD,DSFG,A,5032.18,107,34,SIW,FOLDERZ,LTTRB,2002-09-09 01:42:00,2003-09-11 22:58:00,COLLATERAL
-176104,18711.336,CCE,ASDRE,A,5018.36,108,33,CKA,FOLDERZ,LTTRA,2002-09-08 14:42:00,2003-09-12 00:58:00,COLLATERAL
-176115,18714.447,CCF,HJKSS,A,5004.54,109,32,LDE,FOLDERZ,LTTRA,2002-09-08 03:42:00,2003-09-12 02:58:00,NOT COLLATERAL
-176126,18717.558,CCG,KHAA,A,4990.72,110,31,KFF,FOLDERZ,LTTRS,2002-09-07 16:42:00,2003-09-12 04:58:00,NOT COLLATERAL
-176137,18720.669,CCH,KSLD,A,4976.9,111,30,EFH,FOLDERZ,LTTRZ,2002-09-07 05:42:00,2003-09-12 06:58:00,NOT COLLATERAL
-176148,18723.78,CCI,EKID,A,4963.08,112,29,NGC,FOLDERZ,LTTRS,2002-09-06 18:42:00,2003-09-12 08:58:00,NOT COLLATERAL
-176159,18726.891,CCJ,VNCD,A,4949.26,113,28,DER,FOLDERZ,LTTRS,2002-09-06 07:42:00,2003-09-12 10:58:00,NOT COLLATERAL
-176170,18730.002,DDD,DKD,A,4935.44,114,27,FVG,FOLDERZ,LTTRS,2002-09-05 20:42:00,2003-09-12 12:58:00,NOT COLLATERAL
-176181,18733.113,DDA,FKF,A,4921.62,115,26,KWE,FOLDERZ,LTTRS,2002-09-05 09:42:00,2003-09-12 14:58:00,NOT COLLATERAL
-176192,18736.224,DAA,LES,A,4907.8,116,25,WER,FOLDERZ,LTTRS,2002-09-04 22:42:00,2003-09-12 16:58:00,NOT COLLATERAL
-176203,18739.335,DBB,KLD,A,4893.98,117,24,GFH,FOLDERZ,LTTRS,2002-09-04 11:42:00,2003-09-12 18:58:00,NOT COLLATERAL
-176214,18742.446,DCC,SKL,A,4880.16,118,23,BGF,FOLDERZ,LTTRS,2002-09-04 00:42:00,2003-09-12 20:58:00,COLLATERAL
-176225,18745.557,DEE,SIW,A,4866.34,119,22,XCS,FOLDERX,LTTRS,2002-09-03 13:42:00,2003-09-12 22:58:00,COLLATERAL
-176236,18748.668,DFF,CKA,A,4852.52,120,21,JHK,FOLDERX,LTTRS,2002-09-03 02:42:00,2003-09-13 00:58:00,COLLATERAL
-176247,18751.779,DGG,LDE,A,4838.7,121,20,SFD,FOLDERX,LTTRS,2002-09-02 15:42:00,2003-09-13 02:58:00,NOT COLLATERAL
-176258,18754.89,DHH,KFF,A,4824.88,122,19,WRE,FOLDERX,LTTRS,2002-09-02 04:42:00,2003-09-13 04:58:00,NOT COLLATERAL
-176269,18758.001,AAA,EFH,A,4811.06,123,18,HGV,FOLDERX,LTTRS,2002-09-01 17:42:00,2003-09-13 06:58:00,NOT COLLATERAL
-176280,18761.112,BBB,NGC,A,4797.24,124,17,KLS,FOLDERX,LTTRS,2002-09-01 06:42:00,2003-09-13 08:58:00,NOT COLLATERAL
-176291,18764.223,CCC,DER,A,4783.42,125,16,SDK,FOLDERX,LTTRS,2002-08-31 19:42:00,2003-09-13 10:58:00,NOT COLLATERAL
-176302,18767.334,DDD,FVG,A,4769.6,126,15,MNV,FOLDERX,LTTRZ,2002-08-31 08:42:00,2003-09-13 12:58:00,NOT COLLATERAL
-176313,18770.445,AAB,KWE,A,4755.78,127,14,OKW,FOLDERX,LTTRA,2002-08-30 21:42:00,2003-09-13 14:58:00,NOT COLLATERAL
-176324,18773.556,AAC,WER,A,4741.96,128,13,ASS,FOLDERX,LTTRB,2002-08-30 10:42:00,2003-09-13 16:58:00,NOT COLLATERAL
-176335,18776.667,AAD,GFH,A,4728.14,129,12,CKA,FOLDERX,LTTRB,2002-08-29 23:42:00,2003-09-13 18:58:00,NOT COLLATERAL
-176346,18779.778,AAE,BGF,A,4714.32,130,11,SWQ,FOLDERX,LTTRA,2002-08-29 12:42:00,2003-09-13 20:58:00,COLLATERAL
-176357,18782.889,AAF,XCS,A,4700.5,131,10,KUH,FOLDERR,LTTRA,2002-08-29 01:42:00,2003-09-13 22:58:00,COLLATERAL
-176368,18786,BBA,JHK,A,4686.68,132,9,XCV,FOLDERS,LTTRS,2002-08-28 14:42:00,2003-09-14 00:58:00,COLLATERAL
-176379,18789.111,BBC,SFD,A,4672.86,133,8,ZAQ,FOLDERX,LTTRZ,2002-08-28 03:42:00,2003-09-14 02:58:00,NOT COLLATERAL
-176390,18792.222,BBE,WRE,A,4659.04,134,7,MKO,FOLDERR,LTTRS,2002-08-27 16:42:00,2003-09-14 04:58:00,NOT COLLATERAL
-176401,18795.333,BBF,HGV,A,4645.22,135,6,VFR,FOLDERS,LTTRS,2002-08-27 05:42:00,2003-09-14 06:58:00,NOT COLLATERAL
-176412,18798.444,BBG,KLS,A,4631.4,136,5,YUJ,FOLDERX,LTTRS,2002-08-26 18:42:00,2003-09-14 08:58:00,NOT COLLATERAL
-176423,18801.555,BBH,SDK,A,4617.58,137,4,XCV,FOLDERR,LTTRS,2002-08-26 07:42:00,2003-09-14 10:58:00,NOT COLLATERAL
-176434,18804.666,CCA,MNV,A,4603.76,138,3,ZAQ,FOLDERS,LTTRS,2002-08-25 20:42:00,2003-09-14 12:58:00,NOT COLLATERAL
-176445,18807.777,CCB,OKW,A,4589.94,139,1,MKO,FOLDERX,LTTRS,2002-08-25 09:42:00,2003-09-14 14:58:00,NOT COLLATERAL
-176456,18810.888,CCD,ASS,A,4576.12,140,2,VFR,FOLDERR,LTTRS,2002-08-24 22:42:00,2003-09-14 16:58:00,NOT COLLATERAL
-176467,18813.999,CCE,CKA,A,4562.3,141,3,YUJ,FOLDERS,LTTRS,2002-08-24 11:42:00,2003-09-14 18:58:00,NOT COLLATERAL
-176478,18817.11,CCF,SWQ,A,4548.48,142,4,BBF,FOLDERX,LTTRS,2002-08-24 00:42:00,2003-09-14 20:58:00,COLLATERAL
-176489,18820.221,CCG,KUH,A,4534.66,143,5,BBG,FOLDERR,LTTRS,2002-08-23 13:42:00,2003-09-14 22:58:00,COLLATERAL
-176500,18823.332,CCH,XCV,A,4520.84,144,6,BBH,FOLDERS,LTTRS,2002-08-23 02:42:00,2003-09-15 00:58:00,COLLATERAL
-176511,18826.443,CCI,ZAQ,A,4507.02,145,7,CCA,FOLDERX,LTTRS,2002-08-22 15:42:00,2003-09-15 02:58:00,NOT COLLATERAL
-176522,18829.554,CCJ,MKO,A,4493.2,146,8,CCB,FOLDERD,LTTRS,2002-08-22 04:42:00,2003-09-15 04:58:00,NOT COLLATERAL
-176533,18832.665,DDD,VFR,A,4479.38,147,9,CCD,FOLDERE,LTTRS,2002-08-21 17:42:00,2003-09-15 06:58:00,NOT COLLATERAL
-176544,18835.776,DDA,YUJ,A,4465.56,148,10,CCE,FOLDERF,LTTRZ,2002-08-21 06:42:00,2003-09-15 08:58:00,NOT COLLATERAL
-176555,18838.887,DAA,MED,A,4451.74,149,11,CCF,FOLDERG,LTTRA,2002-08-20 19:42:00,2003-09-15 10:58:00,NOT COLLATERAL
-176566,18841.998,DBB,SWE,A,4437.92,150,12,CCG,FOLDERH,LTTRB,2002-08-20 08:42:00,2003-09-15 12:58:00,NOT COLLATERAL
-176577,18845.109,DCC,CVF,A,4424.1,151,13,CCH,FOLDERI,LTTRB,2002-08-19 21:42:00,2003-09-15 14:58:00,NOT COLLATERAL
-176588,18848.22,DEE,DSFG,A,4410.28,152,14,CCI,FOLDERJ,LTTRA,2002-08-19 10:42:00,2003-09-15 16:58:00,NOT COLLATERAL
-176599,18851.331,DFF,ASDRE,A,4396.46,153,15,CCJ,FOLDERK,LTTRA,2002-08-18 23:42:00,2003-09-15 18:58:00,NOT COLLATERAL
-176610,18854.442,DGG,HJKSS,A,4382.64,154,16,DDD,FOLDERL,LTTRS,2002-08-18 12:42:00,2003-09-15 20:58:00,COLLATERAL
-176621,18857.553,DHH,KHAA,A,4368.82,155,17,DDA,FOLDERM,LTTRZ,2002-08-18 01:42:00,2003-09-15 22:58:00,COLLATERAL
-176632,18860.664,AAA,KSLD,A,4355,156,18,DAA,FOLDERN,LTTRS,2002-08-17 14:42:00,2003-09-16 00:58:00,COLLATERAL
-176643,18863.775,BBB,EKID,A,4341.18,157,19,FKF,FOLDERN,LTTRS,2002-08-17 03:42:00,2003-09-16 02:58:00,NOT COLLATERAL
-176654,18866.886,CCC,VNCD,A,4327.36,158,20,LES,FOLDERN,LTTRS,2002-08-16 16:42:00,2003-09-16 04:58:00,NOT COLLATERAL
-176665,18869.997,DDD,DKD,A,4313.54,159,21,KLD,FOLDERN,LTTRS,2002-08-16 05:42:00,2003-09-16 06:58:00,NOT COLLATERAL
-176676,18873.108,AAB,FKF,A,4299.72,160,22,SKL,FOLDERL,LTTRS,2002-08-15 18:42:00,2003-09-16 08:58:00,NOT COLLATERAL
-176687,18876.219,AAC,LES,A,4285.9,161,23,SIW,FOLDERL,LTTRS,2002-08-15 07:42:00,2003-09-16 10:58:00,NOT COLLATERAL
-176698,18879.33,AAD,KLD,A,4272.08,162,24,CKA,FOLDERL,LTTRS,2002-08-14 20:42:00,2003-09-16 12:58:00,NOT COLLATERAL
-176709,18882.441,AAE,SKL,A,4258.26,163,25,LDE,FOLDERL,LTTRS,2002-08-14 09:42:00,2003-09-16 14:58:00,NOT COLLATERAL
-176720,18885.552,AAF,SIW,A,4244.44,164,26,KFF,FOLDERL,LTTRS,2002-08-13 22:42:00,2003-09-16 16:58:00,NOT COLLATERAL
-176731,18888.663,BBA,CKA,A,4230.62,165,27,EFH,FOLDERA,LTTRS,2002-08-13 11:42:00,2003-09-16 18:58:00,NOT COLLATERAL
-176742,18891.774,BBC,LDE,A,4216.8,166,28,NGC,FOLDERB,LTTRS,2002-08-13 00:42:00,2003-09-16 20:58:00,COLLATERAL
-176753,18894.885,BBE,KFF,A,4202.98,167,29,DER,FOLDERC,LTTRS,2002-08-12 13:42:00,2003-09-16 22:58:00,COLLATERAL
-176764,18897.996,BBF,EFH,A,4189.16,168,30,FVG,FOLDERD,LTTRS,2002-08-12 02:42:00,2003-09-17 00:58:00,COLLATERAL
-176775,18901.107,BBG,NGC,A,4175.34,169,31,KWE,FOLDERE,LTTRS,2002-08-11 15:42:00,2003-09-17 02:58:00,NOT COLLATERAL
-176786,18904.218,BBH,DER,A,4161.52,170,32,WER,FOLDERF,LTTRZ,2002-08-11 04:42:00,2003-09-17 04:58:00,NOT COLLATERAL
-176797,18907.329,CCA,FVG,A,4147.7,171,33,GFH,FOLDERG,LTTRA,2002-08-10 17:42:00,2003-09-17 06:58:00,NOT COLLATERAL
-176808,18910.44,CCB,KWE,A,4133.88,172,34,BGF,FOLDERH,LTTRB,2002-08-10 06:42:00,2003-09-17 08:58:00,NOT COLLATERAL
-176819,18913.551,CCD,WER,A,4120.06,173,35,XCS,FOLDERI,LTTRB,2002-08-09 19:42:00,2003-09-17 10:58:00,NOT COLLATERAL
-176830,18916.662,CCE,GFH,A,4106.24,174,36,JHK,FOLDERJ,LTTRA,2002-08-09 08:42:00,2003-09-17 12:58:00,NOT COLLATERAL
-176841,18919.773,CCF,BGF,A,4092.42,175,37,SFD,FOLDERK,LTTRA,2002-08-08 21:42:00,2003-09-17 14:58:00,NOT COLLATERAL
-176852,18922.884,CCG,XCS,A,4078.6,176,38,WRE,FOLDERL,LTTRS,2002-08-08 10:42:00,2003-09-17 16:58:00,NOT COLLATERAL
-176863,18925.995,CCH,JHK,A,4064.78,177,39,HGV,FOLDERM,LTTRZ,2002-08-07 23:42:00,2003-09-17 18:58:00,NOT COLLATERAL
-176874,18929.106,CCI,SFD,A,4050.96,178,40,KLS,FOLDERN,LTTRS,2002-08-07 12:42:00,2003-09-17 20:58:00,COLLATERAL
-176885,18932.217,CCJ,WRE,A,4037.14,179,41,SDK,FOLDERO,LTTRS,2002-08-07 01:42:00,2003-09-17 22:58:00,COLLATERAL
-176896,18935.328,DDD,HGV,A,4023.32,180,42,MNV,FOLDERP,LTTRS,2002-08-06 14:42:00,2003-09-18 00:58:00,COLLATERAL
-176907,18938.439,DDA,KLS,A,4009.5,181,43,OKW,FOLDERQ,LTTRS,2002-08-06 03:42:00,2003-09-18 02:58:00,NOT COLLATERAL
-176918,18941.55,DAA,SDK,A,3995.68,182,44,ASS,FOLDERR,LTTRS,2002-08-05 16:42:00,2003-09-18 04:58:00,NOT COLLATERAL
-176929,18944.661,DBB,MNV,A,3981.86,183,45,CKA,FOLDERS,LTTRS,2002-08-05 05:42:00,2003-09-18 06:58:00,NOT COLLATERAL
-176940,18947.772,DCC,OKW,A,3968.04,184,46,SWQ,FOLDERT,LTTRS,2002-08-04 18:42:00,2003-09-18 08:58:00,NOT COLLATERAL
-176951,18950.883,DEE,ASS,A,3954.22,185,47,KUH,FOLDERU,LTTRS,2002-08-04 07:42:00,2003-09-18 10:58:00,NOT COLLATERAL
-176962,18953.994,DFF,CKA,A,3940.4,186,48,XCV,FOLDERV,LTTRS,2002-08-03 20:42:00,2003-09-18 12:58:00,NOT COLLATERAL
-176973,18957.105,DGG,SWQ,A,3926.58,187,49,ZAQ,FOLDERW,LTTRS,2002-08-03 09:42:00,2003-09-18 14:58:00,NOT COLLATERAL
-176984,18960.216,DHH,KUH,A,3912.76,188,48,MKO,FOLDERX,LTTRS,2002-08-02 22:42:00,2003-09-18 16:58:00,NOT COLLATERAL
-176995,18963.327,AAA,XCV,A,3898.94,189,47,VFR,FOLDERY,LTTRS,2002-08-02 11:42:00,2003-09-18 18:58:00,NOT COLLATERAL
-177006,18966.438,BBB,ZAQ,A,3885.12,190,46,YUJ,FOLDERZ,LTTRS,2002-08-02 00:42:00,2003-09-18 20:58:00,COLLATERAL
-177017,18969.549,CCC,MKO,A,3871.3,191,45,MNV,FOLDERA,LTTRS,2002-08-01 13:42:00,2003-09-18 22:58:00,COLLATERAL
-177028,18972.66,DDD,VFR,A,3857.48,192,44,OKW,FOLDERB,LTTRZ,2002-08-01 02:42:00,2003-09-19 00:58:00,COLLATERAL
-177039,18975.771,AAB,YUJ,A,3843.66,193,43,ASS,FOLDERC,LTTRA,2002-07-31 15:42:00,2003-09-19 02:58:00,NOT COLLATERAL
-177050,18978.882,AAC,MED,A,3829.84,194,42,CKA,FOLDERD,LTTRB,2002-07-31 04:42:00,2003-09-19 04:58:00,NOT COLLATERAL
-177061,18981.993,AAD,SWE,A,3816.02,195,41,SWQ,FOLDERE,LTTRB,2002-07-30 17:42:00,2003-09-19 06:58:00,NOT COLLATERAL
-177072,18985.104,AAE,CVF,A,3802.2,196,40,KUH,FOLDERF,LTTRA,2002-07-30 06:42:00,2003-09-19 08:58:00,NOT COLLATERAL
-177083,18988.215,AAF,DSFG,A,3788.38,197,39,XCV,FOLDERG,LTTRA,2002-07-29 19:42:00,2003-09-19 10:58:00,NOT COLLATERAL
-177094,18991.326,BBA,ASDRE,A,3774.56,198,38,ZAQ,FOLDERH,LTTRS,2002-07-29 08:42:00,2003-09-19 12:58:00,NOT COLLATERAL
-177105,18994.437,BBC,HJKSS,A,3760.74,199,37,MKO,FOLDERI,LTTRZ,2002-07-28 21:42:00,2003-09-19 14:58:00,NOT COLLATERAL
-177116,18997.548,BBE,KHAA,A,3746.92,200,36,VFR,FOLDERJ,LTTRS,2002-07-28 10:42:00,2003-09-19 16:58:00,NOT COLLATERAL
-177127,19000.659,BBF,KSLD,A,3733.1,201,35,YUJ,FOLDERK,LTTRS,2002-07-27 23:42:00,2003-09-19 18:58:00,NOT COLLATERAL
-177138,19003.77,BBG,EKID,A,3719.28,202,34,YUJ,FOLDERL,LTTRS,2002-07-27 12:42:00,2003-09-19 20:58:00,COLLATERAL
Deleted: trunk/connectors/connector-text/src/test/resources/SummitData_Descriptor.txt
===================================================================
--- trunk/connectors/connector-text/src/test/resources/SummitData_Descriptor.txt 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-text/src/test/resources/SummitData_Descriptor.txt 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,5 +0,0 @@
-SummitData.SUMMITDATA.skipHeaderLines = 1
-SummitData.SUMMITDATA.location = src/test/resources/SUMMITDATA3.txt
-SummitData.SUMMITDATA.delimiter = ,
-SummitData.SUMMITDATA.columns = TRADEID,NOTIONAL,EVTTYPE,CCY,PORS,RATE,STRIKE,SPREAD,DMOWNERTAB,FOLDER,DESK,START,MATURITY,COMMENT
-SummitData.SUMMITDATA.types = integer,biginteger,string,string,string,biginteger,integer,integer,string,string,string,timestamp,timestamp,string
\ No newline at end of file
Deleted: trunk/connectors/connector-text/src/test/resources/SummitExtractCDM_Descriptor.txt
===================================================================
--- trunk/connectors/connector-text/src/test/resources/SummitExtractCDM_Descriptor.txt 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-text/src/test/resources/SummitExtractCDM_Descriptor.txt 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,3 +0,0 @@
-SummitExtractCDM.SUMMITEXTRACTCDM.skipHeaderLines=0
-SummitExtractCDM.SUMMITEXTRACTCDM.location=src/test/resources/cdm_dos.txt
-SummitExtractCDM.SUMMITEXTRACTCDM.delimiter=
Deleted: trunk/connectors/connector-text/src/test/resources/cdm_dos.txt
===================================================================
--- trunk/connectors/connector-text/src/test/resources/cdm_dos.txt 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-text/src/test/resources/cdm_dos.txt 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,52 +0,0 @@
- 000183USD07/26/200107/26/2004 000183 USD 07/26/2001 07/26/2004 10000000.00 Summit 195205NY 0.005450 0.000000 MCREDCLN
- 000184USD07/26/200107/26/2004 000184 USD 07/26/2001 07/26/2004 10000000.00 Summit 195219NY 0.005450 0.000000 NYBDUMMY
- 000185USD07/26/200107/26/2004 000185 USD 07/26/2001 07/26/2004 10000000.00 Summit 195233NY 0.009700 0.000000 MCREDCLN
- 000186USD07/26/200107/26/2004 000186 USD 07/26/2001 07/26/2004 10000000.00 Summit 195234NY 0.009700 0.000000 NYBDUMMY
- 000258AUSD12/12/200209/15/2005 000258 USD 12/12/2002 09/15/2005 10000000.00 Summit 247299N 0.011500 0.000000 DCC2
- 000259AUSD01/17/200303/20/2005 000259 USD 01/17/2003 03/20/2005 10000000.00 Summit 247300N 0.011000 0.000000 DCC2
- 000273USD04/25/200307/07/2006 000273 USD 04/25/2003 07/07/2006 5000000.00 Summit 258123NY 0.008000 0.000000 LTINV
- 000276AUSD05/10/200306/20/2008 000276 USD 05/10/2003 06/20/2008 10000000.00 Summit 260100N 0.033000 0.000000 DCC2
- 000277AUSD05/10/200306/20/2008 000277 USD 05/10/2003 06/20/2008 5000000.00 Summit 260101N 0.006500 0.000000 DCC2
- 000278AUSD05/13/200306/20/2008 000278 USD 05/13/2003 06/20/2008 5000000.00 Summit 260102N 0.033000 0.000000 DCC2
- 000279AUSD05/14/200306/20/2008 000279 USD 05/14/2003 06/20/2008 5000000.00 Summit 260131N 0.033000 0.000000 DCC2
- 000280USD06/11/200307/07/2006 000280 USD 06/11/2003 07/07/2006 5000000.00 Summit 264602NY 0.008900 0.000000 LTINV
- 000289AUSD07/03/200309/20/2008 000289 USD 07/03/2003 09/20/2008 5000000.00 Summit 265496NY 0.004400 0.000000 LTINV
- 000292USD07/19/200309/20/2008 000292 USD 07/19/2003 09/20/2008 5000000.00 Summit 271005NY 0.005000 0.000000 LTINV
- 000350USD01/28/200403/20/2009 000350 USD 01/28/2004 03/20/2009 10000000.00 Summit 314996N 0.005200 0.000000 DCC2
- 000354USD03/10/200403/10/2007 000354 USD 03/10/2004 03/10/2007 9324082.77 Summit 318622NY 0.037500 0.000000 LTTRSCDS
- 000357USD03/16/200403/16/2007 000357 USD 03/16/2004 03/16/2007 9924050.62 Summit 318638NY 0.030000 0.000000 LTTRSCDS
- 000359USD03/09/200403/09/2007 000359 USD 03/09/2004 03/09/2007 9329349.59 Summit 318641NY 0.027500 0.000000 LTTRSCDS
- 000360USD03/18/200403/18/2007 000360 USD 03/18/2004 03/18/2007 232935.47 Summit 318642NY 0.032500 0.000000 LTTRSCDS
- 000352USD04/08/200404/08/2007 000352 USD 04/08/2004 04/08/2007 9788013.59 Summit 318643NY 0.032500 0.000000 LTTRSCDS
- 000353USD03/04/200403/04/2007 000353 USD 03/04/2004 03/04/2007 809831.58 Summit 318644NY 0.032500 0.000000 LTTRSCDS
- 000353USD03/04/200403/04/2007 000353 USD 03/04/2004 03/04/2007 705882.35 Summit 325357NY 0.032500 0.000000 LTTRSCDS
- 000353USD03/04/200403/04/2007 000353 USD 03/04/2004 03/04/2007 156623.38 Summit 325358NY 0.032500 0.000000 LTTRSCDS
- 000353USD03/04/200403/04/2007 000353 USD 03/04/2004 03/04/2007 278643.02 Summit 325363NY 0.032500 0.000000 LTTRSCDS
- 000353USD03/04/200403/04/2007 000353 USD 03/04/2004 03/04/2007 711809.48 Summit 325364NY 0.032500 0.000000 LTTRSCDS
- 000359USD03/09/200403/09/2007 000359 USD 03/09/2004 03/09/2007 76890.25 Summit 325366NY 0.027500 0.000000 LTTRSCDS
- 000360USD03/18/200403/18/2007 000360 USD 03/18/2004 03/18/2007 1049811.00 Summit 329001NY 0.032500 0.000000 LTTRSCDS
- 000360USD03/18/200403/18/2007 000360 USD 03/18/2004 03/18/2007 414407.12 Summit 329002NY 0.032500 0.000000 LTTRSCDS
- 000360USD03/18/200403/18/2007 000360 USD 03/18/2004 03/18/2007 1204408.30 Summit 329003NY 0.032500 0.000000 LTTRSCDS
- 000360USD03/18/200403/18/2007 000360 USD 03/18/2004 03/18/2007 1058626.60 Summit 329004NY 0.032500 0.000000 LTTRSCDS
- 000362USD04/12/200404/12/2007 000362 USD 04/12/2004 04/12/2007 194934.82 Summit 331567NY 0.040000 0.000000 LTTRSCDS
- 000362USD04/12/200404/12/2007 000362 USD 04/12/2004 04/12/2007 131062.23 Summit 335678NY 0.040000 0.000000 LTTRSCDS
- 000362USD04/12/200404/12/2007 000362 USD 04/12/2004 04/12/2007 1094136.66 Summit 335679NY 0.040000 0.000000 LTTRSCDS
- 000362USD04/12/200404/12/2007 000362 USD 04/12/2004 04/12/2007 2785075.14 Summit 335680NY 0.040000 0.000000 LTTRSCDS
- 000362USD04/12/200404/12/2007 000362 USD 04/12/2004 04/12/2007 2785075.14 Summit 335681NY 0.040000 0.000000 LTTRSCDS
- 000362USD04/12/200404/12/2007 000362 USD 04/12/2004 04/12/2007 2984009.08 Summit 335682NY 0.040000 0.000000 LTTRSCDS
- 000363USD05/03/200405/03/2007 000363 USD 05/03/2004 05/03/2007 10000000.00 Summit 338242NY 0.025000 0.000000 LTTRSCDS
- 000364USD05/17/200405/17/2007 000364 USD 05/17/2004 05/17/2007 5000000.00 Summit 338820NY 0.032500 0.000000 LTTRSCDS
- 000365USD05/07/200406/20/2009 000365 USD 05/07/2004 06/20/2009 5000000.00 Summit 340411N 0.004800 0.000000 DCC2
- 000099USD12/06/199912/06/2004 000099 USD 12/06/1999 12/06/2004 200000000.00 Summit 340805NY 0.000000 0.000000 PCTRSCDS
- 000129USD04/03/200010/01/2008 000129 USD 04/03/2000 10/01/2008 200000000.00 Summit 340834NY 0.000000 0.000000 PCTRSCDS
- 000148USD09/12/200012/19/2005 000148 USD 09/12/2000 12/19/2005 573667.12 Summit 340844NY 0.000000 0.000000 PCTRSCDS
- 000149USD09/12/200012/19/2005 000149 USD 09/12/2000 12/19/2005 2118155.52 Summit 340847NY 0.000000 0.000000 PCTRSCDS
- 000150USD09/12/200012/19/2005 000150 USD 09/12/2000 12/19/2005 4986491.88 Summit 340848NY 0.000000 0.000000 PCTRSCDS
- 000366USD05/06/200405/06/2007 000366 USD 05/06/2004 05/06/2007 3058823.53 Summit 341369NY 0.030000 0.000000 LTTRSCDS
- 000367USD05/06/200405/06/2007 000367 USD 05/06/2004 05/06/2007 6941176.47 Summit 341377NY 0.030000 0.000000 LTTRSCDS
- 000213USD02/11/200202/11/2007 000213 USD 02/11/2002 02/11/2007 8000000.00 Summit 343117NY 0.056500 0.000000 CNA2
- 000272USD03/05/200301/31/2005 000272 USD 03/05/2003 01/31/2005 28000000.00 Summit 343123NY 0.006000 0.000000 CNA2
- 000333USD11/13/200311/20/2004 000333 USD 11/13/2003 11/20/2004 25000000.00 Summit 343151NY 0.003800 0.000000 CNA2
- 000368USD05/24/200405/24/2007 000368 USD 05/24/2004 05/24/2007 10000000.00 Summit 343169NY 0.025000 0.000000 LTTRSCDS
- 000168USD12/18/200001/31/2006 000168 USD 12/18/2000 01/31/2006 672096851.46 Summit 344846NY 0.000000 0.000000 ASGCGD
- 000369USD05/20/200405/20/2007 000369 USD 05/20/2004 05/20/2007 10000000.00 Summit 344851NY 0.032500 0.000000 LTTRSCDS
Deleted: trunk/connectors/connector-text/src/test/resources/libraryDelimited.txt
===================================================================
--- trunk/connectors/connector-text/src/test/resources/libraryDelimited.txt 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-text/src/test/resources/libraryDelimited.txt 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,2 +0,0 @@
-"1", "2003-03-25", "Blind"
-"2","1998-04-29", "Antipop"
\ No newline at end of file
Deleted: trunk/connectors/connector-text/src/test/resources/test-file.txt.csv
===================================================================
--- trunk/connectors/connector-text/src/test/resources/test-file.txt.csv 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-text/src/test/resources/test-file.txt.csv 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,7 +0,0 @@
-Col1Header,"Col2
-Header on newline",Col3Head
-VAL1,,VAL2
-VAL3,,VAL4
-VAL5,Test,abc
-VAL6,"VAL7
-VAL8 on a newline",VAL9
Deleted: trunk/connectors/connector-text/src/test/resources/testDescriptorDelimited.txt
===================================================================
--- trunk/connectors/connector-text/src/test/resources/testDescriptorDelimited.txt 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-text/src/test/resources/testDescriptorDelimited.txt 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,6 +0,0 @@
-text.library.location = src/test/resources/libraryDelimited.txt
-text.library.qualifier = "
-text.library.delimiter = ,
-text.library2.location = src/test/resources/libraryDelimited2.txt
-text.library2.qualifier = "
-text.library2.delimiter = ,
Deleted: trunk/connectors/connector-text/src/test/resources/testfile-descriptor.txt
===================================================================
--- trunk/connectors/connector-text/src/test/resources/testfile-descriptor.txt 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/connector-text/src/test/resources/testfile-descriptor.txt 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,3 +0,0 @@
-ThreeColString_Text.testfile.location = src/test/resources/test-file.txt.csv
-ThreeColString_Text.testfile.qualifier = "
-ThreeColString_Text.testfile.delimiter = ,
Modified: trunk/connectors/sandbox/translator-yahoo/src/main/java/org/teiid/resource/adapter/yahoo/YahooCapabilities.java
===================================================================
--- trunk/connectors/sandbox/translator-yahoo/src/main/java/org/teiid/resource/adapter/yahoo/YahooCapabilities.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/sandbox/translator-yahoo/src/main/java/org/teiid/resource/adapter/yahoo/YahooCapabilities.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -42,38 +42,18 @@
public YahooCapabilities() {
}
- /*
- * @see com.metamatrix.data.ConnectorCapabilities#getSupportedFunctions()
- */
public List getSupportedFunctions() {
return Collections.EMPTY_LIST;
}
- /*
- * @see com.metamatrix.data.ConnectorCapabilities#supportsOrCriteria()
- */
- public boolean supportsOrCriteria() {
- return true;
- }
-
- /*
- * @see com.metamatrix.data.ConnectorCapabilities#supportsCompareCriteriaEquals()
- */
public boolean supportsCompareCriteriaEquals() {
return true;
}
- /*
- * @see com.metamatrix.data.ConnectorCapabilities#supportsInCriteria()
- */
public boolean supportsInCriteria() {
return true;
}
- /**
- * @see com.metamatrix.connector.jdbc.JDBCCapabilities#getMaxInCriteriaSize()
- * @since 4.2
- */
public int getMaxInCriteriaSize() {
return YAHOO_MAX_SET_SIZE;
}
Deleted: trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPConnection.java
===================================================================
--- trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPConnection.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPConnection.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,29 +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 org.teiid.resource.adapter.ldap;
-
-import javax.naming.NamingException;
-
-public interface LDAPConnection {
- Object lookup(String context) throws NamingException;
- void close();
-}
Modified: trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPExecutionFactory.java
===================================================================
--- trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPExecutionFactory.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPExecutionFactory.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -21,6 +21,7 @@
*/
package org.teiid.resource.adapter.ldap;
+import javax.naming.ldap.LdapContext;
import javax.resource.ResourceException;
import javax.resource.cci.ConnectionFactory;
@@ -83,7 +84,7 @@
throws ConnectorException {
try {
ConnectionFactory cf = (ConnectionFactory)connectionFactory;
- return new LDAPSyncQueryExecution((Select)command, this, (LDAPConnection)cf.getConnection());
+ return new LDAPSyncQueryExecution((Select)command, this, (LdapContext)cf.getConnection());
} catch (ResourceException e) {
throw new ConnectorException(e);
}
@@ -94,7 +95,7 @@
throws ConnectorException {
try {
ConnectionFactory cf = (ConnectionFactory)connectionFactory;
- return new LDAPUpdateExecution(command, (LDAPConnection)cf.getConnection());
+ return new LDAPUpdateExecution(command, (LdapContext)cf.getConnection());
} catch (ResourceException e) {
throw new ConnectorException(e);
}
Modified: trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPSyncQueryExecution.java
===================================================================
--- trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPSyncQueryExecution.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPSyncQueryExecution.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -110,7 +110,7 @@
public class LDAPSyncQueryExecution extends BasicExecution implements ResultSetExecution {
private LDAPSearchDetails searchDetails;
- private LDAPConnection ldapConnection;
+ private LdapContext ldapConnection;
private LdapContext ldapCtx;
private NamingEnumeration searchEnumeration;
private IQueryToLdapSearchParser parser;
@@ -125,7 +125,7 @@
* @param logger the ConnectorLogger
* @param ldapCtx the LDAP Context
*/
- public LDAPSyncQueryExecution(Select query, LDAPExecutionFactory factory, LDAPConnection ldapCtx) {
+ public LDAPSyncQueryExecution(Select query, LDAPExecutionFactory factory, LdapContext ldapCtx) {
this.ldapConnection = ldapCtx;
this.query = query;
this.executionFactory = factory;
Modified: trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPUpdateExecution.java
===================================================================
--- trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPUpdateExecution.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPUpdateExecution.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -70,11 +70,11 @@
* of attributes to assign values in an INSERT operation * Responsible for update/insert/delete operations against LDAP
*/
public class LDAPUpdateExecution extends BasicExecution implements UpdateExecution {
- private LDAPConnection ldapConnection;
+ private LdapContext ldapConnection;
private LdapContext ldapCtx;
private Command command;
- public LDAPUpdateExecution(Command command, LDAPConnection ldapCtx) {
+ public LDAPUpdateExecution(Command command, LdapContext ldapCtx) {
this.ldapConnection = ldapCtx;
this.command = command;
}
Modified: trunk/connectors/translator-loopback/src/test/java/org/teiid/resource/adaptor/loopback/TestLoobackAsynch.java
===================================================================
--- trunk/connectors/translator-loopback/src/test/java/org/teiid/resource/adaptor/loopback/TestLoobackAsynch.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/translator-loopback/src/test/java/org/teiid/resource/adaptor/loopback/TestLoobackAsynch.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -43,8 +43,8 @@
connector.setRowCount(1000);
connector.setPollIntervalInMilli(100L);
- ConnectorHost host = new ConnectorHost(connector, FakeTranslationFactory.getInstance().getBQTTranslationUtility());
- List results = host.executeCommand("SELECT intkey from bqt1.smalla", null); //$NON-NLS-1$
+ ConnectorHost host = new ConnectorHost(connector, null, FakeTranslationFactory.getInstance().getBQTTranslationUtility());
+ List results = host.executeCommand("SELECT intkey from bqt1.smalla"); //$NON-NLS-1$
assertEquals(1000, results.size());
}
Modified: trunk/connectors/translator-loopback/src/test/java/org/teiid/resource/adaptor/loopback/TestLoopbackExecution.java
===================================================================
--- trunk/connectors/translator-loopback/src/test/java/org/teiid/resource/adaptor/loopback/TestLoopbackExecution.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/translator-loopback/src/test/java/org/teiid/resource/adaptor/loopback/TestLoopbackExecution.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -54,9 +54,9 @@
}
public void helpTestQuery(String sql, TranslationUtility metadata, int waitTime, int rowCount, Object[][] expectedResults) throws ConnectorException {
- ConnectorHost host = new ConnectorHost(exampleProperties(waitTime, rowCount), metadata);
+ ConnectorHost host = new ConnectorHost(exampleProperties(waitTime, rowCount), null, metadata);
- List actualResults = host.executeCommand(sql, null);
+ List actualResults = host.executeCommand(sql);
// Compare actual and expected results
assertEquals("Did not get expected number of rows", expectedResults.length, actualResults.size()); //$NON-NLS-1$
@@ -152,11 +152,11 @@
int waitTime = 100;
int testCount = 10;
- ConnectorHost host = new ConnectorHost(exampleProperties(waitTime, 1), FakeTranslationFactory.getInstance().getBQTTranslationUtility());
+ ConnectorHost host = new ConnectorHost(exampleProperties(waitTime, 1), null, FakeTranslationFactory.getInstance().getBQTTranslationUtility());
for(int i=0; i<testCount; i++) {
long before = System.currentTimeMillis();
- host.executeCommand("SELECT intkey FROM BQT1.SmallA", null); //$NON-NLS-1$
+ host.executeCommand("SELECT intkey FROM BQT1.SmallA"); //$NON-NLS-1$
long after = System.currentTimeMillis();
assertTrue("Waited too long", (after-before) <= waitTime); //$NON-NLS-1$
}
Deleted: trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextConnection.java
===================================================================
--- trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextConnection.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextConnection.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,35 +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 org.teiid.resource.adapter.text;
-
-import java.util.Map;
-import java.util.Properties;
-
-import javax.resource.cci.Connection;
-
-import org.teiid.resource.ConnectorException;
-
-public interface TextConnection extends Connection {
- Map<String, Properties> getMetadataProperties();
- String getNextLine(String tableName)throws ConnectorException;
- String getHeaderLine(String tableName)throws ConnectorException;
-}
Added: trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextConnectionImpl.java
===================================================================
--- trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextConnectionImpl.java (rev 0)
+++ trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextConnectionImpl.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,287 @@
+/*
+ * 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 org.teiid.resource.adapter.text;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import org.teiid.logging.LogConstants;
+import org.teiid.logging.LogManager;
+import org.teiid.resource.ConnectorException;
+import org.teiid.resource.adapter.FileConnection;
+
+import com.metamatrix.core.util.StringUtil;
+
+
+/**
+ * Implementation of Connection interface for text connection.
+ */
+public class TextConnectionImpl {
+
+ private Map<String, Properties> metadataProps;
+ private ArrayList<BufferedReader> readerQueue = new ArrayList<BufferedReader>();
+ private int readerQueueIndex = 0;
+ private String headerMsg;
+ private String firstLine = null;
+
+ // current Reader object
+ private BufferedReader currentreader = null;
+
+ // Line num in the text file
+ private int lineNum = 0;
+ private FileConnection conn;
+ private String encoding;
+
+ public TextConnectionImpl(Map<String, Properties> props, FileConnection conn, String encoding) {
+ this.metadataProps = props;
+ this.conn = conn;
+ this.encoding = encoding;
+ }
+
+ public void close() {
+ if (readerQueue.size() > 0) {
+ for (Iterator<BufferedReader> it=readerQueue.iterator(); it.hasNext();) {
+ BufferedReader br = it.next();
+ try {
+ br.close();
+ } catch (IOException err) {
+ }
+
+ }
+ }
+ readerQueue.clear();
+ }
+
+ public Map<String, Properties> getMetadataProperties() {
+ return metadataProps;
+ }
+
+ private List<BufferedReader> createReaders(String tableName) throws ConnectorException {
+ try {
+ createReaders(this.metadataProps.get(tableName), tableName);
+ } catch (IOException e) {
+ throw new ConnectorException(e, TextPlugin.Util.getString("TextSynchExecution.Unable_get_Reader", new Object[] {tableName, e.getMessage() })); //$NON-NLS-1$
+
+ }
+ return readerQueue;
+ }
+
+ /**
+ * This method gets the reader object for the textfile present either on
+ * the local file system or the web.
+ * @param props Group's metadata properites string
+ * @return BufferReader Object
+ */
+ private void createReaders(Properties props, String groupName) throws IOException, ConnectorException {
+ if(readerQueue != null && readerQueue.size() > 0) {
+ return ;
+ }
+
+ if(props == null) {
+ throw new ConnectorException(TextPlugin.Util.getString("TextSynchExecution.Error_obtain_properties_for_group", groupName)); //$NON-NLS-1$
+ }
+
+ String location = props.getProperty(TextDescriptorPropertyNames.LOCATION);
+
+ File[] files = conn.getFiles(location);
+
+ if (files != null) {
+ // determine if the wild card is used to indicate all files
+ // of the specified extension
+ for (int i = 0; i<files.length; i++) {
+ File f = files[i];
+ addReader(f.getName(), new FileInputStream(f));
+ }
+ } else {
+ // create the URL object
+ try {
+ URL url = new URL(location);
+ // create the connection to the URL
+ URLConnection urlConn = url.openConnection();
+ // establish the connection to the URL
+ urlConn.connect();
+ // get the stream from the connection
+ addReader(location, urlConn.getInputStream());
+ } catch (MalformedURLException e) {
+ throw new ConnectorException(TextPlugin.Util.getString("TextConnection.fileDoesNotExistForGroup", new Object[] {location, groupName})); //$NON-NLS-1$
+ }
+ }
+
+ }
+
+ private void addReader(String fileName, InputStream stream) throws UnsupportedEncodingException {
+
+ InputStreamReader inSR = new InputStreamReader(stream, encoding);
+
+ BufferedReader r = new BufferedReader(inSR);
+ LogManager.logDetail(LogConstants.CTX_CONNECTOR, "Reading: " + fileName); //$NON-NLS-1$
+ readerQueue.add(r);
+ }
+
+ /**
+ * Gets the current reader, looking at the next
+ * one in the list if the current one is null.
+ *
+ * If HEADER_LINES is greater than 0, an attempt is made to
+ * read the column headers from the file. If HEADER_ROW is
+ * less than 1, row HEADER_LINES is used as the row that may
+ * contain column names. If HEADER_ROW is greater than 1,
+ * row HEADER_ROW is used as the row that may contain column
+ * names.
+ *
+ * @throws ConnectorException
+ */
+ private String nextLine(String tableName) throws ConnectorException {
+ if (currentreader == null && readerQueueIndex < readerQueue.size()) {
+ // reader queue index is advanced only by the nextReader()
+ // method. Don't do it here.
+ currentreader = readerQueue.get(readerQueueIndex);
+ }
+ /* Retrieve connector properties so that we can find a
+ * header row if necessary.
+ */
+ Properties groupProps = this.metadataProps.get(tableName);
+ String line = null;
+ String location = groupProps.getProperty(TextDescriptorPropertyNames.LOCATION);
+ String qualifier = groupProps.getProperty(TextDescriptorPropertyNames.QUALIFIER);
+ String topLines = groupProps.getProperty(TextDescriptorPropertyNames.HEADER_LINES);
+ String headerLine = groupProps.getProperty(TextDescriptorPropertyNames.HEADER_ROW);
+
+ int numTop = 0;
+ int headerRowNum = 0;
+ if (topLines != null && topLines.length() > 0)
+ numTop = Integer.parseInt(topLines);
+ if (headerLine != null && headerLine.length() > 0)
+ headerRowNum = Integer.parseInt(headerLine);
+
+ /* Check to see if the value for HEADER_ROW is greater than
+ * the number of lines to skip. If it is, it is invalid and
+ * we will use HEADER_LINES instead.
+ */
+ if ( headerRowNum > numTop ) {
+ Object[] params = new Object[] { TextDescriptorPropertyNames.HEADER_ROW, new Integer(headerRowNum), new Integer(numTop) };
+ String msg = TextPlugin.Util.getString("TextSynchExecution.Property_contains_an_invalid_value_Using_value", params); //$NON-NLS-1$
+ // TODO: We should include the group name in the log message.
+ LogManager.logWarning(LogConstants.CTX_CONNECTOR, msg);
+
+ headerRowNum = numTop;
+ }
+ try {
+ // set hasQualifier flag
+ boolean hasQualifier = false;
+ if (qualifier != null && qualifier.length() > 0)
+ hasQualifier = true;
+
+ // Walk through rows looking for header row
+ while (currentreader != null) {
+ line = currentreader.readLine();
+ // Hit the end of file or the file is empty then
+ // try next reader
+ if (line == null) {
+ advanceToNextReader();
+ lineNum = 0;
+ return nextLine(tableName);
+ }
+
+ // check if we have a qualifier defined
+ // if yes check that all qualifiers have been terminated
+ // if not then append the next line (if available)
+ if (hasQualifier) {
+ while (StringUtil.occurrences(line, qualifier) % 2 != 0) {
+ String nextLine = currentreader.readLine();
+ if (nextLine != null)
+ line = line + StringUtil.LINE_SEPARATOR + nextLine;
+ else {
+ Object[] params = new Object[] { line };
+ String msg = TextPlugin.Util.getString("TextSynchExecution.Text_has_no_determined_ending_qualifier", params); //$NON-NLS-1$
+ throw new ConnectorException(msg);
+ }
+ }
+ }
+ lineNum++;
+
+ // Skip blank lines
+ if (line.length() == 0) continue;
+
+ // Attempt to retrieve column names from header row
+ // or last row of header lines.
+ if ((headerRowNum > 0 && headerRowNum == lineNum) || (numTop == lineNum)) {
+ // This is the header row; check if null to avoid the second or clause
+ if (headerMsg == null) {
+ headerMsg = line;
+ }
+ continue;
+ } else if (numTop >= lineNum) {
+ continue;
+ }
+ return line;
+ }
+ } catch (Throwable e) {
+ throw new ConnectorException(e, TextPlugin.Util.getString("TextSynchExecution.Error_reading_text_file", new Object[] { location, e.getMessage() })); //$NON-NLS-1$
+ }
+ // we are done reading..
+ return null;
+ }
+
+ /**
+ * Indicate that we are done with the current reader and we should
+ * advance to the next reader.
+ */
+ private void advanceToNextReader(){
+ currentreader = null;
+ readerQueueIndex++;
+ }
+
+ public String getHeaderLine(String tableName) throws ConnectorException {
+ if (this.headerMsg != null) {
+ return this.headerMsg;
+ }
+ createReaders(tableName);
+ this.firstLine = nextLine(tableName);
+ return this.headerMsg;
+ }
+
+ public String getNextLine(String tableName) throws ConnectorException {
+ // make sure the reader are created
+ createReaders(tableName);
+ if (this.firstLine != null) {
+ String copy = this.firstLine;
+ this.firstLine = null;
+ return copy;
+ }
+ return nextLine(tableName);
+ }
+}
Property changes on: trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextConnectionImpl.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextDescriptorPropertyNames.java
===================================================================
--- trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextDescriptorPropertyNames.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextDescriptorPropertyNames.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -27,8 +27,6 @@
*/
public class TextDescriptorPropertyNames {
public static final String LOCATION = "LOCATION"; //$NON-NLS-1$
- public static final String FILE_LOCATION = "FILE"; //$NON-NLS-1$
- public static final String URL_LOCATION = "URL"; //$NON-NLS-1$
public static final String DELIMITER = "DELIMITER"; //$NON-NLS-1$
public static final String QUALIFIER = "QUALIFIER"; //$NON-NLS-1$
public static final String HEADER_LINES = "SKIPHEADERLINES"; //$NON-NLS-1$
Modified: trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextExecutionFactory.java
===================================================================
--- trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextExecutionFactory.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextExecutionFactory.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -22,6 +22,15 @@
package org.teiid.resource.adapter.text;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.nio.charset.Charset;
+import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
@@ -34,8 +43,11 @@
import org.teiid.connector.metadata.runtime.MetadataFactory;
import org.teiid.connector.metadata.runtime.RuntimeMetadata;
import org.teiid.connector.metadata.runtime.Table;
+import org.teiid.logging.LogConstants;
+import org.teiid.logging.LogManager;
import org.teiid.resource.ConnectorException;
import org.teiid.resource.adapter.BasicExecutionFactory;
+import org.teiid.resource.adapter.FileConnection;
import org.teiid.resource.cci.ExecutionContext;
import org.teiid.resource.cci.MetadataProvider;
import org.teiid.resource.cci.ResultSetExecution;
@@ -51,10 +63,13 @@
private boolean enforceColumnCount = false;
private String dateResultFormatsDelimiter;
private String dateResultFormats;
+ Map<String, Properties> metadataProps = new HashMap<String, Properties>();
+ private String descriptorFile;
+ private String encoding = Charset.defaultCharset().name();
@Override
public void start() throws ConnectorException {
- super.start();
+ initMetaDataProps();
}
@TranslatorProperty(name="EnforceColumnCount", display="Enforce Column Count",description="This forces the number of columns in text file to match what was modeled", defaultValue="false")
@@ -84,13 +99,31 @@
this.dateResultFormats = dateResultFormats;
}
+ @TranslatorProperty(name="DescriptorFile", display="Descriptor File",required=true)
+ public String getDescriptorFile() {
+ return descriptorFile;
+ }
+
+ public void setDescriptorFile(String descriptorFile) {
+ this.descriptorFile = descriptorFile;
+ }
+
+ @TranslatorProperty(name="Encoding", display="File Encoding",advanced=true)
+ public String getEncoding() {
+ return encoding;
+ }
+
+ public void setEncoding(String encoding) {
+ this.encoding = encoding;
+ }
+
@Override
public ResultSetExecution createResultSetExecution(QueryExpression command, ExecutionContext executionContext, RuntimeMetadata metadata, Object connectionFactory)
throws ConnectorException {
try {
ConnectionFactory cf = (ConnectionFactory)connectionFactory;
-
- return new TextSynchExecution(this, (Select)command, (TextConnection)cf.getConnection());
+ TextConnectionImpl textConn = new TextConnectionImpl(this.metadataProps, (FileConnection)cf.getConnection(), encoding);
+ return new TextSynchExecution(this, (Select)command, textConn);
} catch (ResourceException e) {
throw new ConnectorException(e);
}
@@ -98,15 +131,7 @@
@Override
public void getConnectorMetadata(MetadataFactory metadataFactory, Object connectionFactory) throws ConnectorException {
- TextConnection conn;
- try {
- ConnectionFactory cf = (ConnectionFactory)connectionFactory;
- conn = (TextConnection)cf.getConnection();
- } catch (ResourceException e) {
- throw new ConnectorException(e);
- }
-
- for (Map.Entry<String, Properties> entry : conn.getMetadataProperties().entrySet()) {
+ for (Map.Entry<String, Properties> entry : metadataProps.entrySet()) {
Properties p = entry.getValue();
String columns = p.getProperty(TextDescriptorPropertyNames.COLUMNS);
if (columns == null) {
@@ -130,5 +155,139 @@
}
}
}
+
+ private void initMetaDataProps() throws ConnectorException {
+ // Verify required items
+ if (descriptorFile == null || descriptorFile.trim().length() == 0) {
+ throw new ConnectorException(TextPlugin.Util.getString("TextConnection.Descriptor_file_name_is_not_specified._2")); //$NON-NLS-1$
+ }
+ BufferedReader br = null;
+ try {
+ br = getReader(descriptorFile);
+ LogManager.logDetail(LogConstants.CTX_CONNECTOR, "Reading descriptor file: " + descriptorFile); //$NON-NLS-1$
+ String line = null;
+ // Walk through records, finding matches
+ while(true) {
+ line = br.readLine();
+ if (line == null) {
+ break;
+ }
+
+ // Skip blank lines
+ if (line.length() == 0) {
+ continue;
+ }
+
+ // populate the map with metadata information for the given line. If readAll option is chosen,
+ // keep trying to read until everything is tried, then throw the first exception encountered.
+ getMetadata(line);
+ }
+ } catch (IOException e) {
+ LogManager.logError(LogConstants.CTX_CONNECTOR, e, TextPlugin.Util.getString("TextConnection.Error_while_reading_text_file__{0}_1", new Object[] {e.getMessage()})); //$NON-NLS-1$
+ throw new ConnectorException(e, TextPlugin.Util.getString("TextConnection.Error_trying_to_establish_connection_5")); //$NON-NLS-1$
+ } finally {
+ if (br != null) {
+ try {br.close();} catch (Exception ee) {}
+ }
+ }
+ LogManager.logDetail(LogConstants.CTX_CONNECTOR,"Successfully read metadata information from the descriptor file " + descriptorFile); //$NON-NLS-1$
+ }
+
+ /**
+ * Read the property string and populate the properties with info needed to access data files.
+ */
+ private void getMetadata(String propStr) throws ConnectorException {
+ try {
+ int index = 0;
+
+ // Property String --> <Fully_Qualified_Group>.location=<location of actual file>
+ int eqIndex = propStr.indexOf("=", index); //$NON-NLS-1$
+ String propString = propStr.substring(index, eqIndex);
+
+ if (!propString.equals(" ")) { //$NON-NLS-1$
+ propString = propString.trim();
+ }
+
+ int lastIndex = propString.lastIndexOf('.');
+
+ // group name
+ String groupName = propString.substring(0, lastIndex).toUpperCase();
+ // property name
+ String propertyName = propString.substring(lastIndex + 1).toUpperCase();
+
+ // Properties read from descriptor, which are properties for a given group
+ Properties props = metadataProps.get(groupName);
+ if (props == null) {
+ props = new Properties();
+ }
+
+ // Adjust index past '='
+ index = eqIndex + 1;
+
+ // Read property value
+ String propertyValue = propStr.substring(index).trim();
+
+ if (propertyName.equals(TextDescriptorPropertyNames.HEADER_LINES)) {
+ try {
+ Integer.parseInt(propertyValue);
+ } catch (NumberFormatException e) {
+ throw new ConnectorException(e, TextPlugin.Util.getString("TextConnection.The_value_for_the_property_should_be_an_integer._{0}_3", new Object[] {e.getMessage()})); //$NON-NLS-1$
+ }
+ } else if (propertyName.equals(TextDescriptorPropertyNames.HEADER_ROW)) {
+ try {
+ Integer.parseInt(propertyValue);
+ } catch (NumberFormatException e) {
+ throw new ConnectorException(e, TextPlugin.Util.getString("TextConnection.The_value_for_the_property_should_be_an_integer._{0}_3", new Object[] {e.getMessage()})); //$NON-NLS-1$
+ }
+ } else if (!(propertyName.equals(TextDescriptorPropertyNames.COLUMNS)
+ || propertyName.equals(TextDescriptorPropertyNames.TYPES) || propertyName.equals(TextDescriptorPropertyNames.LOCATION)
+ || propertyName.equals(TextDescriptorPropertyNames.DELIMITER) || propertyName.equals(TextDescriptorPropertyNames.QUALIFIER))) {
+ throw new ConnectorException(TextPlugin.Util.getString("TextConnection.The_property_{0}_for_the_group_{1}_is_invalid._4", new Object[] {propertyName, groupName})); //$NON-NLS-1$
+ }
+
+ // Check for tab as a delimiter and use correct string
+ if (propertyValue != null && propertyValue.equals("\\t")) { //$NON-NLS-1$
+ propertyValue = "\t"; //$NON-NLS-1$
+ }
+
+ if (propertyValue != null && !propertyValue.equals("")) { //$NON-NLS-1$
+ // Add property
+ props.put(propertyName, propertyValue);
+ metadataProps.put(groupName, props);
+ }
+ } catch (Exception e) {
+ throw new ConnectorException(TextPlugin.Util.getString("TextConnection.Error_parsing_property_string_{0}__{1}_6", new Object[] {propStr, e.getMessage()})); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * This method gets the reader object for the descriptorfile.
+ * @param fileLocation String standing for the fileLocation either in file system or web.
+ * @return BufferReader for the file
+ */
+ private BufferedReader getReader(String fileLocation) throws ConnectorException {
+ try {
+ InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileLocation);
+ if (is != null) {
+ return new BufferedReader(new InputStreamReader(is, encoding));
+ }
+ try {
+ URL url = new URL(fileLocation);
+ // create the connection to the URL
+ URLConnection conn = url.openConnection();
+ // establish the connection to the URL
+ conn.connect();
+ // get the stream from the connection
+ InputStreamReader inSR = new InputStreamReader(conn.getInputStream(), encoding);
+ // place the stream into a buffered reader
+ return new BufferedReader(inSR);
+ } catch (MalformedURLException e) {
+ throw new ConnectorException(TextPlugin.Util.getString("TextConnection.Descriptor_file_does_not_exist_at_this_location__{0}_12", new Object[] {fileLocation})); //$NON-NLS-1$
+ }
+ } catch (IOException e) {
+ throw new ConnectorException(e,TextPlugin.Util.getString("TextConnection.Descriptor_file_does_not_exist_at_this_location__{0}_12", new Object[] {fileLocation})); //$NON-NLS-1$
+ }
+ }
+
}
Modified: trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextSynchExecution.java
===================================================================
--- trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextSynchExecution.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextSynchExecution.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -22,13 +22,6 @@
package org.teiid.resource.adapter.text;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.net.URLConnection;
import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;
@@ -36,18 +29,14 @@
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import java.util.Properties;
-import javax.resource.ResourceException;
-
import org.teiid.connector.language.ColumnReference;
import org.teiid.connector.language.Command;
import org.teiid.connector.language.DerivedColumn;
import org.teiid.connector.language.NamedTable;
import org.teiid.connector.language.Select;
import org.teiid.connector.metadata.runtime.Column;
-import org.teiid.connector.metadata.runtime.Table;
import org.teiid.logging.LogConstants;
import org.teiid.logging.LogManager;
import org.teiid.resource.ConnectorException;
@@ -56,8 +45,6 @@
import org.teiid.resource.cci.ResultSetExecution;
import org.teiid.resource.cci.TypeFacility;
-import com.metamatrix.core.util.StringUtil;
-
/**
* The essential part that executes the query. It keeps all the execution
* states.
@@ -89,14 +76,14 @@
private int[] cols;
- private TextConnection connection;
+ private TextConnectionImpl connection;
/**
* Constructor.
* @param cmd
* @param txtConn
*/
- public TextSynchExecution(TextExecutionFactory config, Select query, TextConnection connection) {
+ public TextSynchExecution(TextExecutionFactory config, Select query, TextConnectionImpl connection) {
this.config = config;
this.cmd = query;
this.connection = connection;
@@ -122,7 +109,7 @@
Select query = cmd;
NamedTable group = (NamedTable)query.getFrom().get(0);
String tableName = group.getMetadataObject().getFullName().toUpperCase();
- Properties groupProps = this.connection.getMetadataProperties().get(tableName);
+ Properties groupProps = this.config.metadataProps.get(tableName);
Class[] types = query.getColumnTypes();
@@ -159,11 +146,8 @@
public void close() {
- try {
- this.connection.close();
- LogManager.logDetail(LogConstants.CTX_CONNECTOR, "TextSynchExecution is successfully closed.");//$NON-NLS-1$
- } catch (ResourceException e) {
- }
+ this.connection.close();
+ LogManager.logDetail(LogConstants.CTX_CONNECTOR, "TextSynchExecution is successfully closed.");//$NON-NLS-1$
}
public void cancel() {
Deleted: trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextUtil.java
===================================================================
--- trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextUtil.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/connectors/translator-text/src/main/java/org/teiid/resource/adapter/text/TextUtil.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -1,65 +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 org.teiid.resource.adapter.text;
-
-import java.io.File;
-
-import com.metamatrix.core.util.FileUtils;
-
-
-/**
- * @since 4.3
- */
-public class TextUtil {
-
- public static boolean usesWildCard(String location) {
- if (location == null) return false;
-
- File datafile = new File(location);
- String fname = datafile.getName();
-
- // determine if the wild card is used to indicate all files
- // of the specified extension
- if (fname.indexOf("*") >= 0) { //$NON-NLS-1$
- return true;
- }
- return false;
- }
- public static File[] getFiles(String location) {
- if (location == null) return null;
-
- File datafile = new File(location);
- String fname = datafile.getName();
-
- // determine if the wild card is used to indicate all files
- // of the specified extension
- if (fname.indexOf("*") >= 0) { //$NON-NLS-1$
-
- File parentDir = datafile.getParentFile();
- String ext = FileUtils.getExtension(fname);
- return FileUtils.findAllFilesInDirectoryHavingExtension(parentDir.getAbsolutePath(), "." + ext); //$NON-NLS-1$
- }
- return null;
-
- }
-}
Copied: trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestMultiFileTextSynchExecution.java (from rev 2111, trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestMultiFileTextSynchExecution.java)
===================================================================
--- trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestMultiFileTextSynchExecution.java (rev 0)
+++ trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestMultiFileTextSynchExecution.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,139 @@
+/*
+ * 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 org.teiid.resource.adapter.text;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import junit.framework.TestCase;
+
+import org.teiid.resource.ConnectorException;
+
+import com.metamatrix.cdk.api.ConnectorHost;
+import com.metamatrix.query.unittest.TimestampUtil;
+
+public class TestMultiFileTextSynchExecution extends TestCase {
+ private static final String BAD_COUNT_FILE = "MultiParts/columCntMissMatchOption/testMultiDescriptorDelimited.txt"; //$NON-NLS-1$
+ private static final String DEFAULT_DESC_FILE = "MultiParts/testMultiDescriptorDelimited.txt"; //$NON-NLS-1$
+
+ public TestMultiFileTextSynchExecution(String name) {
+ super(name);
+ }
+
+ public void testSubmitRequest() throws Exception {
+ String sql = "SELECT ID FROM Library"; //$NON-NLS-1$
+ try {
+ Util.getConnectorHostWithFakeMetadata(BAD_COUNT_FILE).executeCommand(sql);
+ fail("Should have failed due to extra column defined in .csv file");//$NON-NLS-1$
+ } catch (ConnectorException e) {
+ assertEquals("Expected input file to have 3 columns based on model, but found 4. This could be caused by misplaced quotes, causing multiple columns to be treated as one.", e.getMessage()); //$NON-NLS-1$
+ }
+ }
+
+ public void testNextBatch3() throws Exception {
+ String sql = "SELECT ID FROM Library WHERE Author = 'Blind'"; //$NON-NLS-1$
+ try {
+ Util.getConnectorHostWithFakeMetadata(BAD_COUNT_FILE).executeCommand(sql);
+ fail("Should have failed due to extra column defined in .csv file");//$NON-NLS-1$
+ } catch (ConnectorException e) {
+ assertEquals("Expected input file to have 3 columns based on model, but found 4. This could be caused by misplaced quotes, causing multiple columns to be treated as one.", e.getMessage()); //$NON-NLS-1$
+ }
+ }
+
+ public void testNextBatch2() throws Exception {
+ String sql = "SELECT ID, PDate, Author FROM Library"; //$NON-NLS-1$
+ ConnectorHost host = Util.getConnectorHostWithFakeMetadata(DEFAULT_DESC_FILE);
+ int expectedRows = 4;
+ List results = host.executeCommand(sql);
+ assertEquals("Get batch size doesn't match expected one. ", expectedRows, results.size()); //$NON-NLS-1$
+
+ // expected values
+ Set expected = new HashSet();
+ List value1 = new ArrayList();
+ value1.add(String.valueOf(1));
+ value1.add(TimestampUtil.createDate(103, 2, 25));
+ value1.add("Blind"); //$NON-NLS-1$
+ expected.add(value1);
+ List value2 = new ArrayList();
+ value2.add(String.valueOf(2));
+ value2.add(TimestampUtil.createDate(98, 3, 29));
+ value2.add("Antipop"); //$NON-NLS-1$
+ expected.add(value2);
+ List value3 = new ArrayList();
+ value3.add(String.valueOf(3));
+ value3.add(TimestampUtil.createDate(103, 2, 25));
+ value3.add("Terroist"); //$NON-NLS-1$
+ expected.add(value3);
+ List value4 = new ArrayList();
+ value4.add(String.valueOf(4));
+ value4.add(TimestampUtil.createDate(98, 3, 29));
+ value4.add("Fanatic"); //$NON-NLS-1$
+ expected.add(value4);
+
+ assertEquals(" Actual value doesn't match with expected one.", expected, new HashSet(results)); //$NON-NLS-1$
+ }
+
+ /**
+ * test defect 13066
+ *
+ * Test multibatch execution.
+ */
+ public void testDefect13066() throws Exception {
+ String sql = "SELECT TRADEID FROM SummitData.SUMMITDATA"; //$NON-NLS-1$
+ Util.helpTestExecution("summitData/TextFileTest_1.vdb", "SummitData_Descriptor.txt", sql, 4139); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * test defect 13366
+ *
+ * Test zero size first batch
+ */
+ public void testDefect13368() throws Exception {
+ String sql = "SELECT RATE, DESK FROM SummitData.SUMMITDATA"; //$NON-NLS-1$
+ Util.helpTestExecution("summitData/TextFileTest_1.vdb", "SummitData_Descriptor.txt", sql, 4139); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * test defect 13371
+ *
+ * test fixed length field file while querying a subset of the columns
+ */
+ public void testDefect13371() throws Exception {
+ String sql = " SELECT SUMMITEXTRACTCDM.START, SUMMITEXTRACTCDM.SUMMIT_ID, SUMMITEXTRACTCDM.CURRENCY, SUMMITEXTRACTCDM.AMOUNT, SUMMITEXTRACTCDM.MATURITY, SUMMITEXTRACTCDM.RATE, SUMMITEXTRACTCDM.DESK, SUMMITEXTRACTCDM.CDM_ID FROM SUMMITEXTRACTCDM"; //$NON-NLS-1$
+ Util.helpTestExecution("summitData/TextFiles.vdb", "SummitExtractCDM_Descriptor.txt", sql, 52); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public void testDefect11402() throws Exception {
+ String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS"; //$NON-NLS-1$
+ Util.helpTestExecution("TextParts/TextParts.vdb", "TextParts/PartsDescriptor.txt", sql, 21); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /** test case 4151 */
+ public void testCase4151() throws Exception {
+ String sql = "SELECT COLA, COLB, COLC FROM ThreeColString_Text.testfile"; //$NON-NLS-1$
+ Util.helpTestExecution("case4151/MM_00004151.vdb", "testfile-descriptor.txt", sql, 5); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+}
Copied: trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestRowHeaderTextSynchExecution.java (from rev 2111, trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestRowHeaderTextSynchExecution.java)
===================================================================
--- trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestRowHeaderTextSynchExecution.java (rev 0)
+++ trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestRowHeaderTextSynchExecution.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,147 @@
+/*
+ * 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 org.teiid.resource.adapter.text;
+
+import junit.framework.TestCase;
+
+import org.teiid.resource.ConnectorException;
+
+
+
+public class TestRowHeaderTextSynchExecution extends TestCase {
+
+ public TestRowHeaderTextSynchExecution(String name) {
+ super(name);
+ }
+
+ /**
+ * Standard test with first line being the
+ * the header row.
+ * @throws Exception
+ */
+ public void testRowHeader() throws Exception {
+ String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS"; //$NON-NLS-1$
+ Util.helpTestExecution("TextParts/TextParts.vdb", "TextParts/PartsDescriptor.txt", sql, 21); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * Test with header row and no Name In Source defined.
+ * Should use short name of element.
+ * @throws Exception
+ */
+ public void testRowHeader2() throws Exception {
+ String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS_NoNameInSource"; //$NON-NLS-1$
+ Util.helpTestExecution("TextParts/TextParts.vdb", "TextParts/PartsDescriptor.txt", sql, 21); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * Test with header row and Name In Source set to that of
+ * the element's name.
+ * @throws Exception
+ */
+ public void testRowHeader3() throws Exception {
+ String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS_AlphaNameInSource"; //$NON-NLS-1$
+ Util.helpTestExecution("TextParts/TextParts.vdb", "TextParts/PartsDescriptor.txt", sql, 21); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * Test with header row and Name In Source set to something
+ * different than the element name but matches what is used
+ * in the CSV file.
+ * @throws Exception
+ */
+ public void testRowHeader4() throws Exception {
+ String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS_AlphaDiffNameInSource"; //$NON-NLS-1$
+ Util.helpTestExecution("TextParts/TextParts.vdb", "TextParts/PartsDescriptor.txt", sql, 21); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * Test with multiple blank lines and a header row and
+ * no Name In Source.
+ * @throws Exception
+ */
+ public void testRowHeader5() throws Exception {
+ String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS_NoNameInSource"; //$NON-NLS-1$
+ Util.helpTestExecution("TextParts/TextParts.vdb", "TextParts/PartsDescriptor_HeaderRowTest.txt", sql, 21); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * Test with multiple blank lines and a header row on a
+ * specified row with name in source set.
+ * @throws Exception
+ */
+ public void testRowHeader6() throws Exception {
+ String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS_AlphaDiffNameInSource"; //$NON-NLS-1$
+ Util.helpTestExecution("TextParts/TextParts.vdb", "TextParts/PartsDescriptor_HeaderRowTest.txt", sql, 21); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * Test with quoted header row and no Name In Source defined.
+ * Should use short name of element.
+ * @throws Exception
+ */
+ public void testRowHeader7() throws Exception {
+ String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS_NoNameInSource"; //$NON-NLS-1$
+ Util.helpTestExecution("TextParts/TextParts.vdb", "TextParts/PartsDescriptor3.txt", sql, 21); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * Test with header row that contains columns with names which
+ * contain spaces and have a Name In Source defined with spaces.
+ * @throws Exception
+ */
+ public void testRowHeader8() throws Exception {
+ String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS_SpaceNameInSource"; //$NON-NLS-1$
+ Util.helpTestExecution("TextParts/TextParts.vdb", "TextParts/PartsDescriptor4.txt", sql, 21); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * Test with bad header row. The model uses column names for
+ * name in source. This should result in an error stating the
+ * column was not found.
+ * @throws Exception
+ */
+ public void testRowHeader_Error() throws Exception {
+ String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS_AlphaNameInSource"; //$NON-NLS-1$
+ try {
+ Util.helpTestExecution("TextParts/TextParts.vdb", "TextParts/PartsDescriptor4.txt", sql, 21); //$NON-NLS-1$ //$NON-NLS-2$
+ fail("Should have received ConnectorException due to an invalid header row being defined."); //$NON-NLS-1$
+ } catch (ConnectorException ce ) {
+ assertEquals("'SELECT PARTS_AlphaNameInSource.Part_Id, PARTS_AlphaNameInSource.Part_Name, PARTS_AlphaNameInSource.Part_Color, PARTS_AlphaNameInSource.Part_Weight FROM PARTS_AlphaNameInSource' cannot be translated by the TextTranslator. Column Part_Id not found for element Parts.PARTS_AlphaNameInSource.Part_Id. Verify column name \"Part_Id\" is defined in the header row of the text file and that the header row number is correctly defined in the descriptor file.", ce.getMessage()); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * Test with bad header row number. The model uses column names
+ * for name in source. The descriptor defines the header row
+ * outside the skipped header lines. In this case, the connector
+ * should default to the last line of the skipped header lines and
+ * log an error.
+ * @throws Exception
+ */
+ public void testRowHeader_Error2() throws Exception {
+ String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS_NoNameInSource"; //$NON-NLS-1$
+ Util.helpTestExecution("TextParts/TextParts.vdb", "TextParts/PartsDescriptor4.txt", sql, 21); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+}
Copied: trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextConnection.java (from rev 2111, trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestTextConnection.java)
===================================================================
--- trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextConnection.java (rev 0)
+++ trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextConnection.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,57 @@
+/*
+ * 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 org.teiid.resource.adapter.text;
+
+import junit.framework.TestCase;
+
+/**
+ */
+public class TestTextConnection extends TestCase {
+
+ /**
+ * @param name
+ */
+ public TestTextConnection(String name) {
+ super(name);
+ }
+
+ public void testDefect10371() throws Exception {
+ String descFile = "EmployeeTestDataSalary.txt"; //$NON-NLS-1$
+ TextExecutionFactory tef = new TextExecutionFactory();
+ tef.setDescriptorFile(descFile);
+ tef.start();
+ assertNotNull(tef.metadataProps);
+ }
+
+ /**
+ * Test partial startup property - test default - should default to allow partial startup
+ */
+ public void testCase4284Default() throws Exception {
+ String descFile = "testDescriptorDelimited.txt"; //$NON-NLS-1$
+
+ TextExecutionFactory tef = new TextExecutionFactory();
+ tef.setDescriptorFile(descFile);
+ tef.start();
+ }
+
+}
Copied: trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextConnector.java (from rev 2111, trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestTextConnector.java)
===================================================================
--- trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextConnector.java (rev 0)
+++ trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextConnector.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,68 @@
+/*
+ * 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 org.teiid.resource.adapter.text;
+
+import static org.junit.Assert.*;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import org.junit.Test;
+import org.teiid.connector.metadata.runtime.Datatype;
+import org.teiid.connector.metadata.runtime.MetadataFactory;
+import org.teiid.connector.metadata.runtime.Table;
+import org.teiid.resource.cci.MetadataProvider;
+
+import com.metamatrix.common.types.DataTypeManager;
+
+/**
+ */
+@SuppressWarnings("nls")
+public class TestTextConnector {
+
+ @Test public void testGetMetadata() throws Exception{
+ TextExecutionFactory connector = new TextExecutionFactory();
+ connector.setDescriptorFile("SummitData_Descriptor.txt");
+ connector.start();
+ Map<String, Datatype> datatypes = new HashMap<String, Datatype>();
+ datatypes.put(DataTypeManager.DefaultDataTypes.STRING, new Datatype());
+ datatypes.put(DataTypeManager.DefaultDataTypes.BIG_INTEGER, new Datatype());
+ datatypes.put(DataTypeManager.DefaultDataTypes.INTEGER, new Datatype());
+ datatypes.put(DataTypeManager.DefaultDataTypes.TIMESTAMP, new Datatype());
+
+ MetadataFactory metadata = new MetadataFactory("SummitData", datatypes, new Properties()); //$NON-NLS-1$
+
+ ((MetadataProvider)connector).getConnectorMetadata(metadata, null);
+
+ assertEquals(0, metadata.getMetadataStore().getSchemas().values().iterator().next().getProcedures().size());
+ Table group = metadata.getMetadataStore().getSchemas().values().iterator().next().getTables().get("summitdata"); //$NON-NLS-1$
+ assertEquals("SUMMITDATA", group.getName()); //$NON-NLS-1$
+ assertEquals("SummitData.SUMMITDATA", group.getFullName()); //$NON-NLS-1$
+ assertEquals(14, group.getColumns().size());
+ assertNotNull(group.getUUID());
+ assertEquals("string", group.getColumns().get(0).getNativeType()); //$NON-NLS-1$
+ }
+
+
+}
Copied: trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextSynchExecution.java (from rev 2111, trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/TestTextSynchExecution.java)
===================================================================
--- trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextSynchExecution.java (rev 0)
+++ trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/TestTextSynchExecution.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,110 @@
+/*
+ * 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 org.teiid.resource.adapter.text;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import com.metamatrix.cdk.api.ConnectorHost;
+import com.metamatrix.query.unittest.TimestampUtil;
+
+/**
+ * TODO: test cancel
+ */
+public class TestTextSynchExecution extends TestCase {
+ private static final String DEFAULT_DESC_FILE = "testDescriptorDelimited.txt"; //$NON-NLS-1$
+
+ public TestTextSynchExecution(String name) {
+ super(name);
+ }
+
+ public void testNextBatch2() throws Exception {
+ String sql = "SELECT ID, PDate, Author FROM Library"; //$NON-NLS-1$
+ ConnectorHost host = Util.getConnectorHostWithFakeMetadata(DEFAULT_DESC_FILE);
+ int expectedRows = 2;
+ List results = host.executeCommand(sql);
+ assertEquals("Get batch size doesn't match expected one. ", expectedRows, results.size()); //$NON-NLS-1$
+
+ // expected values
+ List[] expected = new List[2];
+ List value1 = new ArrayList();
+ value1.add(String.valueOf(1));
+ value1.add(TimestampUtil.createDate(103, 2, 25));
+ value1.add("Blind"); //$NON-NLS-1$
+
+ List value2 = new ArrayList();
+ value2.add(String.valueOf(2));
+ value2.add(TimestampUtil.createDate(98, 3, 29));
+ value2.add("Antipop"); //$NON-NLS-1$
+ expected[0] = value1;
+ expected[1] = value2;
+
+ for(int i = 0; i < 2; i++) {
+ assertEquals(" Actual value doesn't match with expected one.", expected[i], results.get(i)); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * test defect 13066
+ *
+ * Test multibatch execution.
+ */
+ public void testDefect13066() throws Exception {
+ String sql = "SELECT TRADEID FROM SummitData.SUMMITDATA"; //$NON-NLS-1$
+ Util.helpTestExecution("summitData/TextFileTest_1.vdb", "SummitData_Descriptor.txt", sql, 4139); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * test defect 13366
+ *
+ * Test zero size first batch
+ */
+ public void testDefect13368() throws Exception {
+ String sql = "SELECT RATE, DESK FROM SummitData.SUMMITDATA"; //$NON-NLS-1$
+ Util.helpTestExecution("summitData/TextFileTest_1.vdb", "SummitData_Descriptor.txt", sql, 4139); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * test defect 13371
+ *
+ * test fixed length field file while querying a subset of the columns
+ */
+ public void testDefect13371() throws Exception {
+ String sql = " SELECT SUMMITEXTRACTCDM.START, SUMMITEXTRACTCDM.SUMMIT_ID, SUMMITEXTRACTCDM.CURRENCY, SUMMITEXTRACTCDM.AMOUNT, SUMMITEXTRACTCDM.MATURITY, SUMMITEXTRACTCDM.RATE, SUMMITEXTRACTCDM.DESK, SUMMITEXTRACTCDM.CDM_ID FROM SUMMITEXTRACTCDM"; //$NON-NLS-1$
+ Util.helpTestExecution("summitData/TextFiles.vdb", "SummitExtractCDM_Descriptor.txt", sql, 52); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public void testDefect11402() throws Exception {
+ String sql = "SELECT Part_ID, Part_Name, Part_Color, Part_Weight from PARTS.PARTS"; //$NON-NLS-1$
+ Util.helpTestExecution("TextParts/TextParts.vdb", "TextParts/PartsDescriptor.txt", sql, 21); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /** test case 4151 */
+ public void testCase4151() throws Exception {
+ String sql = "SELECT COLA, COLB, COLC FROM ThreeColString_Text.testfile"; //$NON-NLS-1$
+ Util.helpTestExecution("case4151/MM_00004151.vdb", "testfile-descriptor.txt", sql, 5); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+}
Copied: trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/Util.java (from rev 2111, trunk/connectors/connector-text/src/test/java/org/teiid/resource/cci/text/Util.java)
===================================================================
--- trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/Util.java (rev 0)
+++ trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/Util.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,131 @@
+/*
+ * 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 org.teiid.resource.adapter.text;
+
+import java.io.File;
+import java.util.List;
+
+import javax.resource.cci.ConnectionFactory;
+
+import junit.framework.Assert;
+
+import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+import org.teiid.connector.metadata.runtime.Column;
+import org.teiid.connector.metadata.runtime.MetadataStore;
+import org.teiid.connector.metadata.runtime.Schema;
+import org.teiid.connector.metadata.runtime.Table;
+import org.teiid.metadata.CompositeMetadataStore;
+import org.teiid.metadata.TransformationMetadata;
+import org.teiid.resource.adapter.FileConnection;
+
+import com.metamatrix.cdk.api.ConnectorHost;
+import com.metamatrix.cdk.api.TranslationUtility;
+import com.metamatrix.common.types.DataTypeManager;
+import com.metamatrix.core.util.FileUtils;
+import com.metamatrix.core.util.UnitTestUtil;
+import com.metamatrix.query.metadata.QueryMetadataInterface;
+import com.metamatrix.query.unittest.RealMetadataFactory;
+
+@SuppressWarnings("nls")
+public class Util {
+
+ static void helpTestExecution(String vdb, String descriptorFile, String sql, int expectedRowCount) throws Exception {
+ TextExecutionFactory connector = new TextExecutionFactory();
+ connector.setDateResultFormats("yyyy-MM-dd,hh:mm:ss,hh:mm,dd/mm/yyyy"); //$NON-NLS-1$
+ connector.setDateResultFormatsDelimiter(",");
+ connector.setDescriptorFile(descriptorFile);
+ ConnectorHost host = new ConnectorHost(connector, createConnectionFactory(), UnitTestUtil.getTestDataPath() + File.separator + vdb);
+ List results = host.executeCommand(sql);
+ Assert.assertEquals("Total row count doesn't match expected size. ", expectedRowCount, results.size()); //$NON-NLS-1$
+ }
+
+ public static ConnectionFactory createConnectionFactory() throws Exception {
+ ConnectionFactory config = Mockito.mock(ConnectionFactory.class);
+ FileConnection fc = Mockito.mock(FileConnection.class);
+ Mockito.doAnswer(new Answer<File[]>() {
+ @Override
+ public File[] answer(InvocationOnMock invocation) throws Throwable {
+ String location = (String)invocation.getArguments()[0];
+ if (location == null) return null;
+
+ File datafile = new File(location);
+
+ if (datafile.isDirectory()) {
+ return datafile.listFiles();
+ }
+
+ String fname = datafile.getName();
+ String ext = FileUtils.getExtension(fname);
+ File parentDir = datafile.getParentFile();
+
+ // determine if the wild card is used to indicate all files
+ // of the specified extension
+ if (ext != null && "*".equals(FileUtils.getBaseFileNameWithoutExtension(fname))) { //$NON-NLS-1$
+ return FileUtils.findAllFilesInDirectoryHavingExtension(parentDir.getAbsolutePath(), "." + ext); //$NON-NLS-1$
+ }
+ if (!datafile.exists()) {
+ return null;
+ }
+ return new File[] {datafile};
+ }
+ }).when(fc).getFiles(Mockito.anyString());
+ Mockito.stub(config.getConnection()).toReturn(fc);
+ return config;
+ }
+
+ public static ConnectorHost getConnectorHostWithFakeMetadata(String descriptorFile) throws Exception {
+ TextExecutionFactory connector = new TextExecutionFactory();
+ connector.setDateResultFormats("yyyy-MM-dd,hh:mm:ss,hh:mm,dd/mm/yyyy"); //$NON-NLS-1$
+ connector.setDateResultFormatsDelimiter(",");
+ connector.setEnforceColumnCount(true);
+ connector.setDescriptorFile(descriptorFile);
+ ConnectorHost host = new ConnectorHost(connector, createConnectionFactory(), new TranslationUtility(exampleText()));
+ return host;
+ }
+
+ public static QueryMetadataInterface exampleText() {
+ MetadataStore store = new MetadataStore();
+ // Create models
+ Schema lib = RealMetadataFactory.createPhysicalModel("Text", store); //$NON-NLS-1$
+
+ // Create physical groups
+ Table library = RealMetadataFactory.createPhysicalGroup("Library", lib); //$NON-NLS-1$
+
+ // Create physical elements
+ String[] elemNames = new String[] {
+ "ID", "PDate", "Author" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+
+ String[] elemTypes = new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.DATE,
+ DataTypeManager.DefaultDataTypes.STRING };
+
+ List<Column> libe1 = RealMetadataFactory.createElements( library, elemNames, elemTypes);
+ int index = 0;
+ for (Column column : libe1) {
+ column.setNameInSource(String.valueOf(index++));
+ }
+ return new TransformationMetadata(null, new CompositeMetadataStore(store), null, null);
+ }
+
+}
Property changes on: trunk/connectors/translator-text/src/test/java/org/teiid/resource/adapter/text/Util.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/connectors/translator-text/src/test/resources/EmpData.txt (from rev 2111, trunk/connectors/connector-text/src/test/resources/EmpData.txt)
===================================================================
--- trunk/connectors/translator-text/src/test/resources/EmpData.txt (rev 0)
+++ trunk/connectors/translator-text/src/test/resources/EmpData.txt 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,51 @@
+LastName,FirstName,MiddleName,EmpId,Department,AnnualSalary,Title,HomePhone,Manager,Street,City,State,Zip
+Kisselburg,Abbiegale,Tikvica ,9000059,G,64000,MGMT WannaBe,670-270-7947,9000073,123 State St.,New York,NY,10001
+Glore,Diodie,Vojvoda ,9000060,G,71000,Associate,480-650-9750,9000073,127 State St.,Los Angeles,CA,10005
+Dawson,Pinckney,Ostoja ,9000061,G,71000,Associate,110-400-3600,9000073,135 State St.,Detroit,MI,10013
+Waldrip,Trixie,Curic ,9000062,G,57000,Newbie,820-210-7045,9000073,136 State St.,Albany,NY,10014
+Kitchen,Zilpha,Buic ,9000063,G,60000,MGMT WannaBe,660-390-3785,9000073,138 State St.,Trenton,NJ,10016
+Wakeman,Gerard,Vlahovic ,9000064,G,78000,Newbie,700-190-5880,9000073,130 State St.,Jefferson City,MO,10008
+Rafferty,Dock,Korda ,9000065,G,70000,Newbie,400-190-6192,9000073,128 State St.,Sacramento,CA,10006
+Kersavage,Zelda,Mjesecevic ,9000066,G,56000,MGMT WannaBe,802-930-1482,9000073,137 State St.,Montpelier,VT,10015
+Zummer,Gerda,Milan ,9000067,G,69000,Newbie,920-100-9701,9000073,131 State St.,Bangor,ME,10009
+Davies,Allwyne,Radic ,9000068,G,61000,Associate,470-820-6096,9000073,126 State St.,Montgomery,AL,10004
+Deanford,Abe,Skrabalo ,9000069,G,67000,Associate,907-660-8233,9000073,124 State St.,Juneau,AK,10002
+Garcia,Orsal,Ucovic ,9000070,ML,79000,CFO,480-490-7710,9000075,150 State St.,Phoenix,AZ,10028
+Zook,Orson,Bendevis ,9000071,G,71000,Newbie,350-260-8654,9000073,133 State St.,Boston,MA,10011
+Rainier,Adelaid,Marinovic ,9000072,G,67000,Newbie,316-550-3499,9000073,125 State St.,Topeka,KS,10003
+Nealon,General,,9000073,G,77000,COO,203-420-3113,9000075,129 State St.,Hartford,CT,10007
+Garahana,Jarrod,Cvjetkovic ,9000074,G,66000,Associate,620-430-1782,9000073,132 State St.,New York,NY,10010
+Neely,Petronella,Goravica ,9000075,G,80000,CEO,230-320-6330,,134 State St.,Los Angeles,CA,10012
+Gamble,Johney,Kordic ,9000123,TM,74000,Associate,330-200-8319,9000132,162 State St.,Detroit,MI,10040
+Gertanovich,Orthell,Tvrdisa ,9000124,TM,63000,Associate,600-410-3667,9000132,165 State St.,Albany,NY,10043
+Kenyon,Jim,Radovanovic ,9000125,TM,80000,MGMT WannaBe,800-510-7741,9000132,161 State St.,Trenton,NJ,10039
+Gerber,Tristan,Rogec ,9000126,TM,57000,Associate,120-990-7278,9000132,169 State St.,Jefferson City,MO,10047
+Gibb,Jaromy,Kristic ,9000127,TM,69000,Associate,270-390-9549,9000132,160 State St.,Sacramento,CA,10038
+Rader,Allissa,Radicevic ,9000128,TM,59000,Newbie,750-420-2128,9000132,157 State St.,Montpelier,VT,10035
+Kammerer,Dilbert,Capor ,9000129,TM,70000,Associate,700-280-3808,9000132,159 State St.,Bangor,ME,10037
+Knippers,Tuesday,Balic ,9000130,TM,68000,MGMT WannaBe,960-140-1045,9000132,170 State St.,Montgomery,AL,10048
+Zumwalt,Patrycia,Srezovic ,9000131,TM,72000,Newbie,210-400-7920,9000132,167 State St.,Juneau,AK,10045
+Needham,Katlyn,Metkovic ,9000132,TM,76000,Goon,380-210-1611,9000070,163 State St.,Phoenix,AZ,10041
+Keefer,Almedia,,9000133,TM,61000,MGMT WannaBe,850-640-3038,9000132,158 State St.,Boston,MA,10036
+Rampton,Orman,Cavelis ,9000134,TM,76000,Newbie,950-930-1038,9000132,164 State St.,Topeka,KS,10042
+Krepps,Paul,Skobelj ,9000135,TM,64000,MGMT WannaBe,430-500-8830,9000132,168 State St.,Hartford,CT,10046
+Deans,Zeno,Jozovic ,9000136,TM,79000,Associate,830-190-9156,9000132,172 State St.,New York,NY,10050
+Zarafonetis,Parazetti,Roncevic ,9000137,TM,73000,Newbie,710-890-2886,9000132,166 State St.,Los Angeles,CA,10044
+Davis,Tyler,Vukic ,9000138,TM,80000,Associate,540-420-5160,9000132,171 State St.,Detroit,MI,10049
+Randolph,Orwin,Rasica ,9010233,ML,44000,Newbie,200-870-4749,9000070,151 State St.,Albany,NY,10029
+Ramsey,Orran,Slade ,9010234,ML,42000,Newbie,500-830-2947,9000070,149 State St.,Trenton,NJ,10027
+Wagonlander,Blondeena,Djano ,9010235,ML,41000,Newbie,780-760-9188,9000070,141 State St.,Jefferson City,MO,10019
+Wadsworth,Alice,Hasan ,9010236,ML,40000,Newbie,230-360-1247,9000070,140 State St.,Sacramento,CA,10018
+Nolen,Parnell,Buconic ,9010237,ML,47000,Newbie,620-300-7125,9000070,152 State St.,Montpelier,VT,10030
+Glidewell,Xoe,Bagovic ,9010238,ML,45000,Associate,850-850-5647,9000070,156 State St.,Bangor,ME,10034
+Zutter,Adam,Hendic ,9010239,ML,48000,Newbie,890-300-9999,9000070,139 State St.,Montgomery,AL,10017
+Gale,Turwayne,Dalmatin ,9010240,ML,36000,Associate,600-290-9758,9000070,154 State St.,Juneau,AK,10032
+Krikwood,Javin,Vidak ,9010241,ML,42000,MGMT WannaBe,380-280-5100,9000070,146 State St.,Phoenix,AZ,10024
+Giggs,Philbert,Vidak ,9010242,ML,52000,Associate,620-270-6404,9000070,153 State St.,Boston,MA,10031
+Danford,Garnett,Brigovic ,9010243,ML,39000,Associate,880-160-7833,9000070,145 State St.,Topeka,KS,10023
+Nash,Xavier,Semes ,9010244,ML,53000,MGMT WannaBe,800-550-5917,9000070,155 State St.,Hartford,CT,10033
+Kasparek,Gallard,Jelic ,9010245,ML,47000,Associate,590-460-5850,9000070,144 State St.,New York,NY,10022
+Kernodle,Dextor,Bupic ,9010246,ML,55000,MGMT WannaBe,440-750-1427,9000070,142 State St.,Los Angeles,CA,10020
+Neighbors,Karron,Stuk ,9010247,ML,40000,Newbie,430-790-9550,9000070,147 State St.,Detroit,MI,10025
+Gilbertson,Doil,Radic ,9010248,ML,51000,Associate,870-510-5367,9000070,143 State St.,Albany,NY,10021
+Neilsen,Katheleen,,9010249,ML,36000,Newbie,550-200-5470,9000070,148 State St.,Trenton,NJ,10026
Copied: trunk/connectors/translator-text/src/test/resources/EmployeeTestDataSalary.txt (from rev 2111, trunk/connectors/connector-text/src/test/resources/EmployeeTestDataSalary.txt)
===================================================================
--- trunk/connectors/translator-text/src/test/resources/EmployeeTestDataSalary.txt (rev 0)
+++ trunk/connectors/translator-text/src/test/resources/EmployeeTestDataSalary.txt 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,4 @@
+Employees.EmpTable.location = src/test/resources/EmpData.txt
+Employees.EmpTable.qualifier = "
+Employees.EmpTable.delimiter = ,
+Employees.EmpTable.skipHeaderLines = 1
Copied: trunk/connectors/translator-text/src/test/resources/MultiParts (from rev 2111, trunk/connectors/connector-text/src/test/resources/MultiParts)
Copied: trunk/connectors/translator-text/src/test/resources/SUMMITDATA3.txt (from rev 2111, trunk/connectors/connector-text/src/test/resources/SUMMITDATA3.txt)
===================================================================
--- trunk/connectors/translator-text/src/test/resources/SUMMITDATA3.txt (rev 0)
+++ trunk/connectors/translator-text/src/test/resources/SUMMITDATA3.txt 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,4140 @@
+TRADEID,NOTIONAL,EVTTYPE,CCY,PORS,RATE,STRIKE,SPREAD,DMOWNERTAB,FOLDER,DESK,START,MATURITY,COMMENT
+234332,657.4564,AAA,DKD,S,3478.32,33,1,AAA,FOLDERA,LTTRS,2002-01-01 12:00:00,2002-02-28 01:00:00,COLLATERAL
+234333,876.4455,BBB,FKF,P,3481.33,34,2,BBB,FOLDERB,LTTRS,2002-01-02 12:00:00,2002-03-04 03:00:00,NOT COLLATERAL
+234334,1095.4346,CCC,LES,S,3484.34,35,3,CCC,FOLDERC,LTTRS,2002-01-03 13:00:00,2002-03-08 05:00:00,NOT COLLATERAL
+234335,1314.4237,DDD,KLD,P,3487.45,36,4,DDD,FOLDERD,LTTRS,2002-01-04 14:00:00,2002-03-12 07:00:00,NOT COLLATERAL
+234336,1533.4128,AAB,SKL,S,3490.56,37,5,AAB,FOLDERE,LTTRS,2002-01-07 17:00:00,2002-03-16 09:00:00,NOT COLLATERAL
+234337,1752.4019,AAC,SIW,S,3493.67,38,6,AAC,FOLDERF,LTTRS,2002-01-10 20:00:00,2002-03-20 11:00:00,NOT COLLATERAL
+234338,1971.391,AAD,CKA,S,3496.78,39,7,AAD,FOLDERG,LTTRS,2002-01-13 23:00:00,2002-03-24 13:00:00,NOT COLLATERAL
+234339,2190.3801,AAE,LDE,S,3499.89,40,8,AAE,FOLDERH,LTTRS,2002-01-17 02:00:00,2002-03-28 15:00:00,NOT COLLATERAL
+234340,2409.3692,AAF,KFF,P,3503,41,9,AAF,FOLDERI,LTTRS,2002-01-20 05:00:00,2002-04-01 17:00:00,NOT COLLATERAL
+234345,2628.3583,BBA,EFH,P,3506.11,42,10,BBA,FOLDERJ,LTTRS,2002-01-23 08:00:00,2002-04-05 19:00:00,NOT COLLATERAL
+234350,2847.3474,BBC,NGC,P,3509.22,43,11,BBC,FOLDERK,LTTRS,2002-01-26 11:00:00,2002-04-09 21:00:00,COLLATERAL
+234355,3066.3365,BBE,DER,S,3512.33,44,12,BBE,FOLDERL,LTTRS,2002-01-29 14:00:00,2002-04-13 23:00:00,COLLATERAL
+234360,3285.3256,BBF,FVG,P,3515.44,45,13,BBF,FOLDERM,LTTRS,2002-02-01 17:00:00,2002-04-18 01:00:00,COLLATERAL
+234365,3504.3147,BBG,KWE,S,3518.55,46,14,BBG,FOLDERN,LTTRS,2002-02-04 20:00:00,2002-04-22 03:00:00,NOT COLLATERAL
+234370,3723.3038,BBH,WER,P,3521.66,47,15,BBH,FOLDERO,LTTRZ,2002-02-07 23:00:00,2002-04-26 05:00:00,NOT COLLATERAL
+234375,3942.2929,CCA,GFH,S,3524.77,48,16,CCA,FOLDERP,LTTRA,2002-02-11 02:00:00,2002-04-30 07:00:00,NULL
+234380,4161.282,CCB,BGF,S,3527.88,49,17,CCB,FOLDERQ,LTTRB,2002-02-14 05:00:00,2002-05-04 09:00:00,NULL
+234385,4380.2711,CCD,XCS,S,3530.99,50,18,CCD,FOLDERR,LTTRB,2002-02-17 08:00:00,2002-05-08 11:00:00,NULL
+234390,4599.2602,CCE,JHK,S,3534.1,51,19,CCE,FOLDERS,LTTRA,2002-02-20 11:00:00,2002-05-12 13:00:00,NULL
+234395,4818.2493,CCF,SFD,P,3537.21,52,20,CCF,FOLDERT,LTTRA,2002-02-23 14:00:00,2002-05-16 15:00:00,NULL
+234400,5037.2384,CCG,WRE,P,3540.32,53,21,CCG,FOLDERU,LTTRS,2002-02-26 17:00:00,2002-05-20 17:00:00,NULL
+119875,5256.2275,CCH,HGV,P,3543.43,54,22,CCH,FOLDERV,LTTRZ,2002-03-01 20:00:00,2002-05-24 19:00:00,NULL
+119877,5475.2166,CCI,KLS,S,3546.54,55,23,CCI,FOLDERW,LTTRS,2002-03-04 23:00:00,2002-05-28 21:00:00,COLLATERAL
+119879,5694.2057,CCJ,SDK,P,3549.65,56,24,CCJ,FOLDERX,LTTRS,2002-03-08 02:00:00,2002-06-01 23:00:00,COLLATERAL
+119881,5913.1948,DDD,MNV,S,3552.76,44,25,DDD,FOLDERY,LTTRS,2002-03-11 05:00:00,2002-06-06 01:00:00,COLLATERAL
+119883,6132.1839,DDA,OKW,P,3555.87,32,26,DDA,FOLDERZ,LTTRS,2002-03-14 08:00:00,2002-06-10 03:00:00,NOT COLLATERAL
+119885,6351.173,DAA,ASS,S,3558.98,20,27,DAA,FOLDERA,LTTRS,2002-03-17 11:00:00,2002-06-14 05:00:00,NOT COLLATERAL
+119887,6570.1621,DBB,CKA,S,3562.09,23,28,FKF,FOLDERB,LTTRS,2002-03-20 14:00:00,2002-06-18 07:00:00,NOT COLLATERAL
+119889,6789.1512,DCC,SWQ,S,3565.2,26,29,LES,FOLDERC,LTTRS,2002-03-23 17:00:00,2002-06-22 09:00:00,NOT COLLATERAL
+119891,7008.1403,DEE,KUH,S,3568.31,29,30,KLD,FOLDERD,LTTRS,2002-03-26 20:00:00,2002-06-26 11:00:00,NOT COLLATERAL
+119893,7227.1294,DFF,XCV,P,3571.42,32,31,SKL,FOLDERE,LTTRS,2002-03-29 23:00:00,2002-06-30 13:00:00,NOT COLLATERAL
+119895,7446.1185,DGG,ZAQ,P,3574.53,35,32,SIW,FOLDERF,LTTRS,2002-04-02 02:00:00,2002-07-04 15:00:00,NOT COLLATERAL
+119897,7665.1076,DHH,MKO,P,3577.64,38,33,CKA,FOLDERG,LTTRS,2002-04-05 05:00:00,2002-07-08 17:00:00,NOT COLLATERAL
+119899,7884.0967,AAA,VFR,S,3580.75,41,34,LDE,FOLDERH,LTTRS,2002-04-08 08:00:00,2002-07-12 19:00:00,NOT COLLATERAL
+119901,8103.0858,BBB,YUJ,P,3583.86,44,35,KFF,FOLDERI,LTTRS,2002-04-11 11:00:00,2002-07-16 21:00:00,COLLATERAL
+119903,8322.0749,CCC,MED,S,3586.97,47,36,EFH,FOLDERJ,LTTRS,2002-04-14 14:00:00,2002-07-20 23:00:00,COLLATERAL
+119905,8541.064,DDD,SWE,P,3590.08,50,37,NGC,FOLDERK,LTTRZ,2002-04-17 17:00:00,2002-07-25 01:00:00,COLLATERAL
+119907,8760.0531,AAB,CVF,S,3593.19,53,38,DER,FOLDERL,LTTRA,2002-04-20 20:00:00,2002-07-29 03:00:00,NOT COLLATERAL
+119909,8979.0422,AAC,DSFG,S,3596.3,56,39,FVG,FOLDERM,LTTRB,2002-04-23 23:00:00,2002-08-02 05:00:00,NOT COLLATERAL
+119911,9198.0313,AAD,ASDRE,S,3599.41,59,40,KWE,FOLDERN,LTTRB,2002-04-27 02:00:00,2002-08-06 07:00:00,NOT COLLATERAL
+119913,9417.0204,AAE,HJKSS,S,3602.52,62,41,WER,FOLDERO,LTTRA,2002-04-30 05:00:00,2002-08-10 09:00:00,NOT COLLATERAL
+119915,9636.0095,AAF,KHAA,P,3605.63,65,42,GFH,FOLDERP,LTTRA,2002-05-03 08:00:00,2002-08-14 11:00:00,NOT COLLATERAL
+119917,9854.9986,BBA,KSLD,P,3608.74,68,43,BGF,FOLDERQ,LTTRS,2002-05-04 11:00:00,2002-08-18 13:00:00,NOT COLLATERAL
+119919,10073.9877,BBC,EKID,P,3611.85,71,44,XCS,FOLDERR,LTTRZ,2002-05-05 14:00:00,2002-08-22 15:00:00,NOT COLLATERAL
+119921,10292.9768,BBE,VNCD,S,3614.96,74,45,JHK,FOLDERS,LTTRS,2002-05-06 17:00:00,2002-08-26 17:00:00,NOT COLLATERAL
+119923,4564.33,BBF,DKD,P,3618.07,77,46,SFD,FOLDERT,LTTRS,2002-05-07 20:00:00,2002-08-30 19:00:00,NOT COLLATERAL
+119925,4564.77,BBG,FKF,S,3621.18,80,47,WRE,FOLDERU,LTTRS,2002-05-08 23:00:00,2002-09-03 21:00:00,COLLATERAL
+119927,4565.21,BBH,LES,P,3624.29,83,48,HGV,FOLDERV,LTTRS,2002-05-10 02:00:00,2002-09-07 23:00:00,COLLATERAL
+119929,4565.65,CCA,KLD,S,3627.4,86,49,KLS,FOLDERW,LTTRS,2002-05-11 05:00:00,2002-09-12 01:00:00,COLLATERAL
+119931,4566.09,CCB,SKL,P,3630.51,89,48,SDK,FOLDERX,LTTRS,2002-05-12 08:00:00,2002-09-16 03:00:00,NOT COLLATERAL
+119933,4566.53,CCD,SIW,P,3633.62,92,47,MNV,FOLDERY,LTTRS,2002-05-13 11:00:00,2002-09-20 05:00:00,NOT COLLATERAL
+119935,4566.97,CCE,CKA,P,3636.73,95,46,OKW,FOLDERZ,LTTRS,2002-05-14 14:00:00,2002-09-24 07:00:00,NOT COLLATERAL
+119937,4567.41,CCF,LDE,P,3639.84,98,45,ASS,FOLDERZ,LTTRS,2002-05-15 17:00:00,2002-09-28 09:00:00,NOT COLLATERAL
+119939,4567.85,CCG,KFF,P,3642.95,101,44,CKA,FOLDERZ,LTTRS,2002-05-16 20:00:00,2002-10-02 11:00:00,NOT COLLATERAL
+119941,4568.29,CCH,EFH,P,3646.06,104,43,SWQ,FOLDERZ,LTTRS,2002-05-17 23:00:00,2002-10-06 13:00:00,NOT COLLATERAL
+119943,4568.73,CCI,NGC,P,3649.17,107,42,KUH,FOLDERZ,LTTRS,2002-05-19 02:00:00,2002-10-10 15:00:00,NOT COLLATERAL
+119945,4569.17,CCJ,DER,P,3652.28,110,41,XCV,FOLDERZ,LTTRS,2002-05-20 05:00:00,2002-10-14 17:00:00,NOT COLLATERAL
+119947,4569.61,DDD,FVG,P,3655.39,113,40,ZAQ,FOLDERZ,LTTRS,2002-05-21 08:00:00,2002-10-14 19:00:00,NOT COLLATERAL
+119949,4570.05,DDA,KWE,P,3658.5,116,39,MKO,FOLDERZ,LTTRZ,2002-05-22 11:00:00,2002-10-14 21:00:00,COLLATERAL
+119951,4570.49,DAA,WER,A,3661.61,119,38,VFR,FOLDERZ,LTTRA,2002-05-23 14:00:00,2002-10-14 23:00:00,COLLATERAL
+119953,4570.93,DBB,GFH,S,3664.72,122,37,YUJ,FOLDERZ,LTTRB,2002-05-24 17:00:00,2002-10-15 01:00:00,COLLATERAL
+119955,4571.37,DCC,BGF,S,3667.83,125,36,AAA,FOLDERZ,LTTRB,2002-05-25 20:00:00,2002-10-15 03:00:00,NOT COLLATERAL
+119957,4571.81,DEE,XCS,S,3670.94,128,35,BBB,FOLDERZ,LTTRA,2002-05-26 23:00:00,2002-10-15 05:00:00,NOT COLLATERAL
+119959,4572.25,DFF,JHK,A,3674.05,131,34,CCC,FOLDERZ,LTTRA,2002-05-28 02:00:00,2002-10-15 07:00:00,NOT COLLATERAL
+119961,4572.69,DGG,SFD,A,3677.16,134,33,DDD,FOLDERZ,LTTRS,2002-05-29 05:00:00,2002-10-15 09:00:00,NOT COLLATERAL
+119963,4573.13,DHH,WRE,A,3680.27,137,32,AAB,FOLDERX,LTTRZ,2002-05-30 08:00:00,2002-10-15 11:00:00,NOT COLLATERAL
+119965,4573.57,AAA,HGV,A,3683.38,140,31,AAC,FOLDERX,LTTRS,2002-05-31 11:00:00,2002-10-15 13:00:00,NOT COLLATERAL
+119967,4574.01,BBB,KLS,A,3686.49,143,30,AAD,FOLDERX,LTTRS,2002-06-01 14:00:00,2002-10-15 15:00:00,NOT COLLATERAL
+119969,4574.45,CCC,SDK,A,3689.6,146,29,AAE,FOLDERX,LTTRS,2002-06-02 17:00:00,2002-10-15 17:00:00,NOT COLLATERAL
+119971,4574.89,DDD,MNV,A,3692.71,149,28,AAF,FOLDERX,LTTRS,2002-06-03 20:00:00,2002-10-15 19:00:00,NOT COLLATERAL
+119973,4575.33,AAB,OKW,A,3695.82,152,27,BBA,FOLDERX,LTTRS,2002-06-04 23:00:00,2002-10-15 21:00:00,COLLATERAL
+119975,4575.77,AAC,ASS,A,3698.93,155,26,BBC,FOLDERX,LTTRS,2002-06-06 02:00:00,2002-10-15 23:00:00,COLLATERAL
+119977,4576.21,AAD,CKA,A,3702.04,158,25,BBE,FOLDERX,LTTRS,2002-06-07 05:00:00,2002-10-16 01:00:00,COLLATERAL
+119979,4576.65,AAE,SWQ,A,3705.15,161,24,BBF,FOLDERX,LTTRS,2002-06-08 08:00:00,2002-10-16 03:00:00,NOT COLLATERAL
+119981,4577.09,AAF,KUH,A,3708.26,164,23,BBG,FOLDERX,LTTRS,2002-06-09 11:00:00,2002-10-16 05:00:00,NOT COLLATERAL
+119983,4577.53,BBA,XCV,A,3711.37,167,22,BBH,FOLDERX,LTTRS,2002-06-10 14:00:00,2002-10-16 07:00:00,NOT COLLATERAL
+119985,4577.97,BBC,ZAQ,A,3714.48,170,21,CCA,FOLDERX,LTTRS,2002-06-11 17:00:00,2002-10-16 09:00:00,NOT COLLATERAL
+119987,4578.41,BBE,MKO,A,3717.59,173,20,CCB,FOLDERR,LTTRS,2002-06-12 20:00:00,2002-10-16 11:00:00,NOT COLLATERAL
+119989,4578.85,BBF,VFR,A,3720.7,176,19,CCD,FOLDERS,LTTRS,2002-06-13 23:00:00,2002-10-16 13:00:00,NOT COLLATERAL
+119991,4579.29,BBG,YUJ,A,3723.81,179,18,CCE,FOLDERX,LTTRS,2002-06-15 02:00:00,2002-10-16 15:00:00,NOT COLLATERAL
+119993,4579.73,BBH,MED,A,3726.92,182,17,CCF,FOLDERR,LTTRZ,2002-06-16 05:00:00,2002-10-16 17:00:00,NOT COLLATERAL
+119995,4580.17,CCA,SWE,A,3730.03,185,16,CCG,FOLDERS,LTTRA,2002-06-17 08:00:00,2002-10-16 19:00:00,NOT COLLATERAL
+119997,4580.61,CCB,CVF,A,3733.14,188,15,CCH,FOLDERX,LTTRB,2002-06-18 11:00:00,2002-10-16 20:59:00,COLLATERAL
+119999,4581.05,CCD,DSFG,A,3736.25,191,14,CCI,FOLDERR,LTTRB,2002-06-19 14:00:00,2002-10-16 22:59:00,COLLATERAL
+120001,4581.49,CCE,ASDRE,A,3739.36,194,13,CCJ,FOLDERS,LTTRA,2002-06-20 17:00:00,2002-10-17 00:59:00,COLLATERAL
+120003,4581.93,CCF,HJKSS,A,3742.47,197,12,DDD,FOLDERX,LTTRA,2002-06-21 20:00:00,2002-10-17 02:59:00,NOT COLLATERAL
+120005,4582.37,CCG,KHAA,A,3745.58,200,11,DDA,FOLDERR,LTTRS,2002-06-22 23:00:00,2002-10-17 04:59:00,NOT COLLATERAL
+120007,4582.81,CCH,KSLD,A,3748.69,203,10,DAA,FOLDERS,LTTRZ,2002-06-24 02:00:00,2002-10-17 06:59:00,NOT COLLATERAL
+120009,4583.25,CCI,EKID,A,3751.8,206,9,FKF,FOLDERX,LTTRS,2002-06-25 05:00:00,2002-10-17 08:59:00,NOT COLLATERAL
+120011,4583.69,CCJ,VNCD,A,3754.91,209,8,LES,FOLDERR,LTTRS,2002-06-26 08:00:00,2002-10-17 10:59:00,NOT COLLATERAL
+120013,4584.13,DDD,DKD,A,3758.02,212,7,KLD,FOLDERS,LTTRS,2002-06-27 11:00:00,2002-10-17 12:59:00,NOT COLLATERAL
+120015,4584.57,DDA,FKF,A,3761.13,215,6,SKL,FOLDERX,LTTRS,2002-06-28 14:00:00,2002-10-17 14:59:00,NOT COLLATERAL
+120017,4585.01,DAA,LES,A,3764.24,218,5,SIW,FOLDERD,LTTRS,2002-06-29 17:00:00,2002-10-17 16:59:00,NOT COLLATERAL
+120019,4585.45,DBB,KLD,A,3767.35,221,4,CKA,FOLDERE,LTTRS,2002-06-30 20:00:00,2002-10-17 18:59:00,NOT COLLATERAL
+120021,4585.89,DCC,SKL,A,3770.46,224,3,LDE,FOLDERF,LTTRS,2002-07-01 23:00:00,2002-10-17 20:59:00,COLLATERAL
+120023,4586.33,DEE,SIW,A,3773.57,227,1,KFF,FOLDERG,LTTRS,2002-07-03 02:00:00,2002-10-17 22:59:00,COLLATERAL
+120025,4586.77,DFF,CKA,A,3776.68,230,2,EFH,FOLDERH,LTTRS,2002-07-04 05:00:00,2002-10-18 00:59:00,COLLATERAL
+120027,4587.21,DGG,LDE,A,3779.79,229,3,NGC,FOLDERI,LTTRS,2002-07-05 08:00:00,2002-10-18 02:59:00,NOT COLLATERAL
+120029,4587.65,DHH,KFF,A,3782.9,228,4,DER,FOLDERJ,LTTRS,2002-07-06 11:00:00,2002-10-18 04:59:00,NOT COLLATERAL
+120031,4588.09,AAA,EFH,A,3786.01,227,5,FVG,FOLDERK,LTTRS,2002-07-07 14:00:00,2002-10-18 06:59:00,NOT COLLATERAL
+120033,4588.53,BBB,NGC,A,3789.12,226,6,KWE,FOLDERL,LTTRS,2002-07-08 17:00:00,2002-10-18 08:59:00,NOT COLLATERAL
+120035,4588.97,CCC,DER,A,3792.23,225,7,WER,FOLDERM,LTTRS,2002-07-09 20:00:00,2002-10-18 10:59:00,NOT COLLATERAL
+120037,4589.41,DDD,FVG,A,3795.34,224,8,GFH,FOLDERN,LTTRZ,2002-07-10 23:00:00,2002-10-18 12:59:00,NOT COLLATERAL
+120039,4589.85,AAB,KWE,A,3798.45,223,9,BGF,FOLDERN,LTTRA,2002-07-12 02:00:00,2002-10-18 14:59:00,NOT COLLATERAL
+120041,4590.29,AAC,WER,A,3801.56,222,10,XCS,FOLDERN,LTTRB,2002-07-13 05:00:00,2002-10-18 16:59:00,NOT COLLATERAL
+120043,4590.73,AAD,GFH,A,3804.67,221,11,JHK,FOLDERN,LTTRB,2002-07-14 08:00:00,2002-10-18 18:59:00,NOT COLLATERAL
+120045,4591.17,AAE,BGF,A,3807.78,220,12,SFD,FOLDERL,LTTRA,2002-07-15 11:00:00,2002-10-18 20:59:00,COLLATERAL
+120047,4591.61,AAF,XCS,A,3810.89,219,13,WRE,FOLDERL,LTTRA,2002-07-16 14:00:00,2002-10-18 22:59:00,COLLATERAL
+120049,4592.05,BBA,JHK,A,3814,218,14,HGV,FOLDERL,LTTRS,2002-07-17 17:00:00,2002-10-19 00:59:00,COLLATERAL
+120051,4592.49,BBC,SFD,A,3817.11,217,15,KLS,FOLDERL,LTTRZ,2002-07-18 20:00:00,2002-10-19 02:59:00,NOT COLLATERAL
+120053,4592.93,BBE,WRE,A,3820.22,216,16,SDK,FOLDERL,LTTRS,2002-07-19 23:00:00,2002-10-19 04:59:00,NOT COLLATERAL
+120055,4593.37,BBF,HGV,A,3823.33,215,17,MNV,FOLDERA,LTTRS,2002-07-21 02:00:00,2002-10-19 06:59:00,NOT COLLATERAL
+120057,4593.81,BBG,KLS,A,3826.44,214,18,OKW,FOLDERB,LTTRS,2002-07-22 05:00:00,2002-10-19 08:59:00,NOT COLLATERAL
+120059,4594.25,BBH,SDK,A,3829.55,213,19,ASS,FOLDERC,LTTRS,2002-07-23 08:00:00,2002-10-19 10:59:00,NOT COLLATERAL
+120061,4594.69,CCA,MNV,A,3832.66,212,20,CKA,FOLDERD,LTTRS,2002-07-24 11:00:00,2002-10-19 12:59:00,NOT COLLATERAL
+120063,4595.13,CCB,OKW,A,3835.77,211,21,SWQ,FOLDERE,LTTRS,2002-07-25 14:00:00,2002-10-19 14:59:00,NOT COLLATERAL
+120065,4595.57,CCD,ASS,A,3838.88,210,22,KUH,FOLDERF,LTTRS,2002-07-26 17:00:00,2002-10-19 16:59:00,NOT COLLATERAL
+120067,4596.01,CCE,CKA,A,3841.99,209,23,XCV,FOLDERG,LTTRS,2002-07-27 20:00:00,2002-10-19 18:59:00,NOT COLLATERAL
+120069,4596.45,CCF,SWQ,A,3845.1,208,24,ZAQ,FOLDERH,LTTRS,2002-07-28 23:00:00,2002-10-19 20:59:00,COLLATERAL
+120071,4596.89,CCG,KUH,A,3848.21,207,25,MKO,FOLDERI,LTTRS,2002-07-30 02:00:00,2002-10-19 22:59:00,COLLATERAL
+120073,4597.33,CCH,XCV,A,3851.32,206,26,VFR,FOLDERJ,LTTRS,2002-07-31 05:00:00,2002-10-20 00:59:00,COLLATERAL
+120075,4597.77,CCI,ZAQ,A,3854.43,205,27,YUJ,FOLDERK,LTTRS,2002-08-01 08:00:00,2002-10-20 02:59:00,NOT COLLATERAL
+120077,4598.21,CCJ,MKO,A,3857.54,204,28,AAA,FOLDERL,LTTRS,2002-08-02 11:00:00,2002-10-20 04:59:00,NOT COLLATERAL
+120079,4598.65,DDD,VFR,A,3860.65,203,29,BBB,FOLDERM,LTTRS,2002-08-03 14:00:00,2002-10-20 06:59:00,NOT COLLATERAL
+120081,4599.09,DDA,YUJ,A,3863.76,202,30,CCC,FOLDERN,LTTRZ,2002-08-04 17:00:00,2002-10-20 08:59:00,NOT COLLATERAL
+120083,4599.53,DAA,MED,A,3866.87,201,31,DDD,FOLDERO,LTTRA,2002-08-05 20:00:00,2002-10-20 10:59:00,NOT COLLATERAL
+120085,4599.97,DBB,SWE,A,3869.98,200,32,AAB,FOLDERP,LTTRB,2002-08-06 23:00:00,2002-10-20 12:59:00,NOT COLLATERAL
+120087,4600.41,DCC,CVF,A,3873.09,199,33,AAC,FOLDERQ,LTTRB,2002-08-08 02:00:00,2002-10-20 14:59:00,NOT COLLATERAL
+120089,4600.85,DEE,DSFG,A,3876.2,198,34,AAD,FOLDERR,LTTRA,2002-08-09 05:00:00,2002-10-20 16:59:00,NOT COLLATERAL
+120091,4601.29,DFF,ASDRE,A,3879.31,197,35,AAE,FOLDERS,LTTRA,2002-08-10 08:00:00,2002-10-20 18:59:00,NOT COLLATERAL
+120093,4601.73,DGG,HJKSS,A,3882.42,196,36,AAF,FOLDERT,LTTRS,2002-08-11 11:00:00,2002-10-20 20:59:00,COLLATERAL
+120095,4602.17,DHH,KHAA,A,3885.53,195,37,BBA,FOLDERU,LTTRZ,2002-08-12 14:00:00,2002-10-20 22:59:00,COLLATERAL
+120097,4602.61,AAA,KSLD,A,3888.64,194,38,BBC,FOLDERV,LTTRS,2002-08-13 17:00:00,2002-10-21 00:59:00,COLLATERAL
+120099,4603.05,BBB,EKID,A,3891.75,193,39,BBE,FOLDERW,LTTRS,2002-08-14 20:00:00,2002-10-21 02:59:00,NOT COLLATERAL
+120101,4603.49,CCC,VNCD,A,3894.86,192,40,BBF,FOLDERX,LTTRS,2002-08-15 23:00:00,2002-10-21 04:59:00,NULL
+120103,4603.93,DDD,DKD,A,3897.97,191,41,BBG,FOLDERY,LTTRS,2002-08-17 02:00:00,2002-10-21 06:59:00,NULL
+120105,4604.37,AAB,FKF,A,3901.08,190,42,BBH,FOLDERZ,LTTRS,2002-08-18 05:00:00,2002-10-21 08:59:00,NULL
+120107,4604.81,AAC,LES,A,3904.19,189,43,CCA,FOLDERA,LTTRS,2002-08-19 08:00:00,2002-10-21 10:59:00,NULL
+120109,4605.25,AAD,KLD,A,3907.3,188,44,CCB,FOLDERB,LTTRS,2002-08-20 11:00:00,2002-10-21 12:59:00,NULL
+120111,4605.69,AAE,SKL,A,3910.41,187,45,CCD,FOLDERC,LTTRS,2002-08-21 14:00:00,2002-10-21 14:59:00,NULL
+120113,4606.13,AAF,SIW,A,3913.52,186,46,CCE,FOLDERD,LTTRS,2002-08-22 17:00:00,2002-10-21 16:59:00,NULL
+120115,4606.57,BBA,CKA,A,3916.63,185,47,CCF,FOLDERE,LTTRS,2002-08-23 20:00:00,2002-10-21 18:59:00,NULL
+120117,4607.01,BBC,LDE,A,3919.74,184,48,CCG,FOLDERF,LTTRS,2002-08-24 23:00:00,2002-10-21 20:59:00,COLLATERAL
+120119,4607.45,BBE,KFF,A,3922.85,183,49,CCH,FOLDERG,LTTRS,2002-08-26 02:00:00,2002-10-21 22:59:00,COLLATERAL
+120121,4607.89,BBF,EFH,A,3925.96,182,48,CCI,FOLDERH,LTTRS,2002-08-27 05:00:00,2002-10-22 00:59:00,COLLATERAL
+120123,4608.33,BBG,NGC,A,3929.07,181,47,CCJ,FOLDERI,LTTRS,2002-08-28 08:00:00,2002-10-22 02:59:00,NOT COLLATERAL
+120125,4608.77,BBH,DER,A,3932.18,180,46,DDD,FOLDERJ,LTTRZ,2002-08-29 11:00:00,2002-10-22 04:59:00,NOT COLLATERAL
+120127,4609.21,CCA,FVG,A,3935.29,179,45,DDA,FOLDERK,LTTRA,2002-08-30 14:00:00,2002-10-22 06:59:00,NOT COLLATERAL
+120129,4609.65,CCB,KWE,A,3938.4,178,44,DAA,FOLDERL,LTTRB,2002-08-31 17:00:00,2002-10-22 08:59:00,NOT COLLATERAL
+120131,4610.09,CCD,WER,A,3941.51,177,43,FKF,FOLDERM,LTTRB,2002-09-01 20:00:00,2002-10-22 10:59:00,NOT COLLATERAL
+120133,4610.53,CCE,GFH,A,3944.62,176,42,LES,FOLDERN,LTTRA,2002-09-02 21:00:00,2002-10-22 12:59:00,NOT COLLATERAL
+120135,4610.97,CCF,BGF,A,3947.73,175,41,KLD,FOLDERO,LTTRA,2002-09-03 22:00:00,2002-10-22 14:59:00,NOT COLLATERAL
+120137,4611.41,CCG,XCS,A,3950.84,174,40,SKL,FOLDERP,LTTRS,2002-09-04 23:00:00,2002-10-22 16:59:00,NOT COLLATERAL
+120139,4611.85,CCH,JHK,A,3953.95,173,39,SIW,FOLDERQ,LTTRZ,2002-09-06 00:00:00,2002-10-22 18:59:00,NOT COLLATERAL
+120141,4612.29,CCI,SFD,A,3957.06,172,38,CKA,FOLDERR,LTTRS,2002-09-07 01:00:00,2002-10-22 20:59:00,COLLATERAL
+120143,4612.73,CCJ,WRE,A,3960.17,171,37,LDE,FOLDERS,LTTRS,2002-09-08 02:00:00,2002-10-22 22:59:00,COLLATERAL
+120145,4613.17,DDD,HGV,A,3963.28,170,36,KFF,FOLDERT,LTTRS,2002-09-09 03:00:00,2002-10-23 00:59:00,COLLATERAL
+120147,4613.61,DDA,KLS,A,3966.39,169,35,EFH,FOLDERU,LTTRS,2002-09-10 04:00:00,2002-10-23 02:59:00,NOT COLLATERAL
+120149,4614.05,DAA,SDK,A,3969.5,168,34,NGC,FOLDERV,LTTRS,2002-09-10 05:00:00,2002-10-23 04:59:00,NOT COLLATERAL
+120151,4614.49,DBB,MNV,A,3972.61,167,33,DER,FOLDERW,LTTRS,2002-09-10 06:00:00,2002-10-23 06:59:00,NOT COLLATERAL
+120153,4614.93,DCC,OKW,A,3975.72,166,32,FVG,FOLDERX,LTTRS,2002-09-10 07:00:00,2002-10-23 08:59:00,NOT COLLATERAL
+120155,4615.37,DEE,ASS,A,3978.83,165,31,KWE,FOLDERY,LTTRS,2002-09-10 08:00:00,2002-10-23 10:59:00,NOT COLLATERAL
+120157,4615.81,DFF,CKA,A,3981.94,164,30,WER,FOLDERZ,LTTRS,2002-09-10 09:00:00,2002-10-23 12:59:00,NOT COLLATERAL
+120159,4616.25,DGG,SWQ,A,3985.05,163,29,GFH,FOLDERZ,LTTRS,2002-09-10 10:00:00,2002-10-23 14:59:00,NOT COLLATERAL
+120161,4616.69,DHH,KUH,A,3988.16,162,28,BGF,FOLDERZ,LTTRS,2002-09-10 11:00:00,2002-10-23 16:59:00,NOT COLLATERAL
+120163,4617.13,AAA,XCV,A,3991.27,161,27,XCS,FOLDERZ,LTTRS,2002-09-10 12:00:00,2002-10-23 18:59:00,NOT COLLATERAL
+120165,4617.57,BBB,ZAQ,A,3994.38,160,26,JHK,FOLDERZ,LTTRS,2002-09-10 13:00:00,2002-10-23 20:59:00,COLLATERAL
+120167,4618.01,CCC,MKO,A,3997.49,159,25,SFD,FOLDERZ,LTTRS,2002-09-10 14:00:00,2002-10-23 22:59:00,COLLATERAL
+120169,4618.45,DDD,VFR,A,4000.6,158,24,WRE,FOLDERZ,LTTRZ,2002-09-10 15:00:00,2002-10-24 00:59:00,COLLATERAL
+120171,4618.89,AAB,YUJ,A,4003.71,157,23,HGV,FOLDERZ,LTTRA,2002-09-10 16:00:00,2002-10-24 02:59:00,NOT COLLATERAL
+120173,4619.33,AAC,MED,A,4006.82,156,22,KLS,FOLDERZ,LTTRB,2002-09-10 17:00:00,2002-10-24 04:59:00,NOT COLLATERAL
+120175,4619.77,AAD,SWE,A,4009.93,155,21,SDK,FOLDERZ,LTTRB,2002-09-10 18:00:00,2002-10-24 06:59:00,NOT COLLATERAL
+120177,4620.21,AAE,CVF,A,4013.04,154,20,MNV,FOLDERZ,LTTRA,2002-09-10 19:00:00,2002-10-24 08:59:00,NOT COLLATERAL
+120179,4620.65,AAF,DSFG,A,4016.15,153,19,OKW,FOLDERZ,LTTRA,2002-09-10 20:00:00,2002-10-24 10:59:00,NOT COLLATERAL
+120181,4621.09,BBA,ASDRE,A,4019.26,152,18,ASS,FOLDERZ,LTTRS,2002-09-10 21:00:00,2002-10-24 12:59:00,NOT COLLATERAL
+120183,4621.53,BBC,HJKSS,A,4022.37,151,17,CKA,FOLDERZ,LTTRZ,2002-09-10 22:00:00,2002-10-24 14:59:00,NOT COLLATERAL
+120185,4621.97,BBE,KHAA,A,4025.48,150,16,SWQ,FOLDERX,LTTRS,2002-09-10 23:00:00,2002-10-24 16:59:00,NOT COLLATERAL
+133567,4622.41,BBF,KSLD,A,4028.59,149,15,KUH,FOLDERX,LTTRS,2002-09-11 00:00:00,2002-10-24 18:59:00,NOT COLLATERAL
+133578,4622.85,BBG,EKID,A,4031.7,148,14,XCV,FOLDERX,LTTRS,2002-09-11 01:00:00,2002-10-24 20:59:00,COLLATERAL
+133589,4623.29,BBH,VNCD,A,4034.81,147,13,ZAQ,FOLDERX,LTTRS,2002-09-11 02:00:00,2002-10-24 22:59:00,COLLATERAL
+133600,4623.73,CCA,DKD,A,4037.92,146,12,MKO,FOLDERX,LTTRS,2002-09-11 03:00:00,2002-10-25 00:59:00,COLLATERAL
+133611,4624.17,CCB,FKF,A,4041.03,145,11,VFR,FOLDERX,LTTRS,2002-09-11 04:00:00,2002-10-25 02:59:00,NOT COLLATERAL
+133622,4624.61,CCD,LES,A,4044.14,144,10,YUJ,FOLDERX,LTTRS,2002-09-11 05:00:00,2002-10-25 04:59:00,NOT COLLATERAL
+133633,4625.05,CCE,KLD,A,4047.25,143,9,AAA,FOLDERX,LTTRS,2002-09-11 06:00:00,2002-10-25 06:59:00,NOT COLLATERAL
+133644,4625.49,CCF,SKL,A,4050.36,142,8,BBB,FOLDERX,LTTRS,2002-09-11 07:00:00,2002-10-25 08:59:00,NOT COLLATERAL
+133655,4625.93,CCG,SIW,A,4053.47,141,7,CCC,FOLDERX,LTTRS,2002-09-11 08:00:00,2002-10-25 10:59:00,NOT COLLATERAL
+133666,4626.37,CCH,CKA,A,4056.58,140,6,DDD,FOLDERX,LTTRS,2002-09-11 09:00:00,2002-10-25 12:59:00,NOT COLLATERAL
+133677,4626.81,CCI,LDE,A,4059.69,139,5,AAB,FOLDERX,LTTRS,2002-09-11 10:00:00,2002-10-25 14:59:00,NOT COLLATERAL
+133688,4627.25,CCJ,KFF,A,4062.8,138,4,AAC,FOLDERR,LTTRS,2002-09-11 11:00:00,2002-10-25 16:59:00,NOT COLLATERAL
+133699,4627.69,DDD,EFH,A,4065.91,137,3,AAD,FOLDERS,LTTRS,2002-09-11 12:00:00,2002-10-25 18:59:00,NOT COLLATERAL
+133710,4628.13,DDA,NGC,A,4069.02,136,1,AAE,FOLDERX,LTTRZ,2002-09-11 13:00:00,2002-10-25 20:59:00,COLLATERAL
+133721,4628.57,DAA,DER,A,4072.13,135,2,AAF,FOLDERR,LTTRA,2002-09-11 14:00:00,2002-10-25 22:59:00,COLLATERAL
+133732,4629.01,DBB,FVG,A,4075.24,134,3,BBA,FOLDERS,LTTRB,2002-09-11 15:00:00,2002-10-26 00:59:00,COLLATERAL
+133743,4629.45,DCC,KWE,A,4078.35,133,4,BBC,FOLDERX,LTTRB,2002-09-11 16:00:00,2002-10-26 02:59:00,NOT COLLATERAL
+133754,4629.89,DEE,WER,A,4081.46,132,5,BBE,FOLDERR,LTTRA,2002-09-11 17:00:00,2002-10-26 04:59:00,NOT COLLATERAL
+133765,4630.33,DFF,GFH,A,4084.57,131,6,BBF,FOLDERS,LTTRA,2002-09-11 18:00:00,2002-10-26 06:59:00,NOT COLLATERAL
+133776,4630.77,DGG,BGF,A,4087.68,130,7,BBG,FOLDERX,LTTRS,2002-09-11 19:00:00,2002-10-26 08:59:00,NOT COLLATERAL
+133787,4631.21,DHH,XCS,A,4090.79,129,8,BBH,FOLDERR,LTTRZ,2002-09-11 20:00:00,2002-10-26 10:59:00,NOT COLLATERAL
+133798,4631.65,AAA,JHK,A,4093.9,128,9,CCA,FOLDERS,LTTRS,2002-09-11 21:00:00,2002-10-26 12:59:00,NOT COLLATERAL
+133809,4632.09,BBB,SFD,A,4097.01,127,10,CCB,FOLDERX,LTTRS,2002-09-11 22:00:00,2002-10-26 14:59:00,NOT COLLATERAL
+133820,4632.53,CCC,WRE,A,4100.12,126,11,CCD,FOLDERR,LTTRS,2002-09-11 23:00:00,2002-10-26 16:59:00,NOT COLLATERAL
+133831,4632.97,DDD,HGV,A,4103.23,125,12,CCE,FOLDERS,LTTRS,2002-09-12 00:00:00,2002-10-26 18:59:00,NOT COLLATERAL
+133842,4633.41,AAB,KLS,A,4106.34,124,13,CCF,FOLDERX,LTTRS,2002-09-12 01:00:00,2002-10-26 20:59:00,COLLATERAL
+133853,4633.85,AAC,SDK,A,4109.45,123,14,CCG,FOLDERD,LTTRS,2002-09-12 02:00:00,2002-10-26 22:59:00,COLLATERAL
+133864,4634.29,AAD,MNV,A,4112.56,122,15,CCH,FOLDERE,LTTRS,2002-09-12 03:00:00,2002-10-27 00:59:00,COLLATERAL
+133875,4634.73,AAE,OKW,A,4115.67,121,16,CCI,FOLDERF,LTTRS,2002-09-12 04:00:00,2002-10-27 02:59:00,NOT COLLATERAL
+133886,4635.17,AAF,ASS,A,4118.78,120,17,CCJ,FOLDERG,LTTRS,2002-09-12 05:00:00,2002-10-27 04:59:00,NOT COLLATERAL
+133897,4635.61,BBA,CKA,A,4121.89,119,18,DDD,FOLDERH,LTTRS,2002-09-12 06:00:00,2002-10-27 06:59:00,NOT COLLATERAL
+133908,4636.05,BBC,SWQ,A,4125,118,19,DDA,FOLDERI,LTTRS,2002-09-12 07:00:00,2002-10-27 08:59:00,NOT COLLATERAL
+133919,4636.49,BBE,KUH,A,4128.11,117,20,DAA,FOLDERJ,LTTRS,2002-09-12 08:00:00,2002-10-27 10:59:00,NOT COLLATERAL
+133930,4636.93,BBF,XCV,A,4131.22,116,21,FKF,FOLDERK,LTTRS,2002-09-12 09:00:00,2002-10-27 12:59:00,NOT COLLATERAL
+133941,4637.37,BBG,ZAQ,A,4134.33,115,22,LES,FOLDERL,LTTRS,2002-09-12 10:00:00,2002-10-27 14:59:00,NOT COLLATERAL
+133952,4637.81,BBH,MKO,A,4137.44,114,23,KLD,FOLDERM,LTTRZ,2002-09-12 11:00:00,2002-10-27 16:59:00,NOT COLLATERAL
+133963,4638.25,CCA,VFR,A,4140.55,113,24,SKL,FOLDERN,LTTRA,2002-09-12 12:00:00,2002-10-27 18:59:00,NOT COLLATERAL
+133974,4638.69,CCB,YUJ,A,4143.66,112,25,SIW,FOLDERN,LTTRB,2002-09-12 13:00:00,2002-10-27 20:59:00,COLLATERAL
+133985,4639.13,CCD,MED,A,4146.77,111,26,CKA,FOLDERN,LTTRB,2002-09-12 14:00:00,2002-10-27 22:59:00,COLLATERAL
+133996,4639.57,CCE,SWE,A,4149.88,110,27,LDE,FOLDERN,LTTRA,2002-09-12 15:00:00,2002-10-28 00:59:00,COLLATERAL
+134007,4640.01,CCF,CVF,A,4152.99,109,28,KFF,FOLDERL,LTTRA,2002-09-12 16:00:00,2002-10-28 02:59:00,NOT COLLATERAL
+134018,4640.45,CCG,DSFG,A,4156.1,108,29,EFH,FOLDERL,LTTRS,2002-09-12 17:00:00,2002-10-28 04:59:00,NOT COLLATERAL
+134029,4640.89,CCH,ASDRE,A,4159.21,107,30,NGC,FOLDERL,LTTRZ,2002-09-12 18:00:00,2002-10-28 06:59:00,NOT COLLATERAL
+134040,4641.33,CCI,HJKSS,A,4162.32,106,31,DER,FOLDERL,LTTRS,2002-09-12 19:00:00,2002-10-28 08:59:00,NOT COLLATERAL
+134051,4641.77,CCJ,KHAA,A,4165.43,105,32,FVG,FOLDERL,LTTRS,2002-09-12 20:00:00,2002-10-28 10:59:00,NOT COLLATERAL
+134062,4642.21,DDD,KSLD,A,4168.54,104,33,KWE,FOLDERA,LTTRS,2002-09-12 21:00:00,2002-10-28 12:59:00,NOT COLLATERAL
+134073,4642.65,DDA,EKID,A,4171.65,103,34,WER,FOLDERB,LTTRS,2002-09-12 22:00:00,2002-10-28 14:59:00,NOT COLLATERAL
+134084,4643.09,DAA,VNCD,A,4174.76,102,35,GFH,FOLDERC,LTTRS,2002-09-12 23:00:00,2002-10-28 16:59:00,NOT COLLATERAL
+134095,4643.53,DBB,DKD,A,4177.87,101,36,BGF,FOLDERD,LTTRS,2002-09-13 00:00:00,2002-10-28 18:59:00,NOT COLLATERAL
+134106,4643.97,DCC,FKF,A,4180.98,100,37,XCS,FOLDERE,LTTRS,2002-09-13 01:00:00,2002-10-28 20:59:00,COLLATERAL
+134117,4644.41,DEE,LES,A,4184.09,99,38,JHK,FOLDERF,LTTRS,2002-09-13 02:00:00,2002-10-28 22:59:00,COLLATERAL
+134128,4644.85,DFF,KLD,A,4187.2,98,39,SFD,FOLDERG,LTTRS,2002-09-13 03:00:00,2002-10-29 00:59:00,COLLATERAL
+134139,4645.29,DGG,SKL,A,4190.31,97,40,WRE,FOLDERH,LTTRS,2002-09-13 04:00:00,2002-10-29 02:59:00,NOT COLLATERAL
+134150,4645.73,DHH,SIW,A,4193.42,96,41,HGV,FOLDERI,LTTRS,2002-09-13 05:00:00,2002-10-29 04:59:00,NOT COLLATERAL
+134161,4646.17,AAA,CKA,A,4196.53,95,42,KLS,FOLDERJ,LTTRS,2002-09-13 06:00:00,2002-10-29 06:59:00,NOT COLLATERAL
+134172,4646.61,BBB,LDE,A,4199.64,94,43,SDK,FOLDERK,LTTRS,2002-09-13 07:00:00,2002-10-29 08:59:00,NOT COLLATERAL
+134183,4647.05,CCC,KFF,A,4202.75,93,44,MNV,FOLDERL,LTTRS,2002-09-13 08:00:00,2002-10-29 10:59:00,NOT COLLATERAL
+134194,4647.49,DDD,EFH,A,4205.86,92,45,OKW,FOLDERM,LTTRZ,2002-09-13 09:00:00,2002-10-29 12:59:00,NOT COLLATERAL
+134205,4647.93,AAB,NGC,A,4208.97,91,46,ASS,FOLDERN,LTTRA,2002-09-13 10:00:00,2002-10-29 14:59:00,NOT COLLATERAL
+134216,4648.37,AAC,DER,A,4212.08,90,47,CKA,FOLDERO,LTTRB,2002-09-13 11:00:00,2002-10-29 16:59:00,NOT COLLATERAL
+134227,4648.81,AAD,FVG,A,4215.19,89,48,SWQ,FOLDERP,LTTRB,2002-09-13 12:00:00,2002-10-29 18:59:00,NOT COLLATERAL
+134238,4649.25,AAE,KWE,A,4218.3,88,49,KUH,FOLDERQ,LTTRA,2002-09-13 13:00:00,2002-10-29 20:59:00,COLLATERAL
+134249,4649.69,AAF,WER,A,4221.41,87,48,XCV,FOLDERR,LTTRA,2002-09-13 14:00:00,2002-10-29 22:59:00,COLLATERAL
+134260,4650.13,BBA,GFH,A,4224.52,86,47,ZAQ,FOLDERS,LTTRS,2002-09-13 15:00:00,2002-10-30 00:59:00,COLLATERAL
+134271,4650.57,BBC,BGF,A,4227.63,85,46,MKO,FOLDERT,LTTRZ,2002-09-13 16:00:00,2002-10-30 02:59:00,NOT COLLATERAL
+134282,4651.01,BBE,XCS,A,4230.74,84,45,VFR,FOLDERU,LTTRS,2002-09-13 17:00:00,2002-10-30 04:59:00,NOT COLLATERAL
+134293,4651.45,BBF,JHK,A,4233.85,83,44,YUJ,FOLDERV,LTTRS,2002-09-13 18:00:00,2002-10-30 06:59:00,NOT COLLATERAL
+134304,4651.89,BBG,SFD,A,4236.96,82,43,AAA,FOLDERW,LTTRS,2002-09-13 19:00:00,2002-10-30 08:59:00,NOT COLLATERAL
+134315,4652.33,BBH,WRE,A,4240.07,81,42,BBB,FOLDERX,LTTRS,2002-09-13 20:00:00,2002-10-30 10:59:00,NOT COLLATERAL
+134326,4652.77,CCA,HGV,A,4243.18,80,41,CCC,FOLDERY,LTTRS,2002-09-13 21:00:00,2002-10-30 12:59:00,NOT COLLATERAL
+134337,4653.21,CCB,KLS,A,4246.29,79,40,DDD,FOLDERZ,LTTRS,2002-09-13 22:00:00,2002-10-30 14:59:00,NOT COLLATERAL
+134348,4653.65,CCD,SDK,A,4249.4,78,39,AAB,FOLDERA,LTTRS,2002-09-13 23:00:00,2002-10-30 16:59:00,NOT COLLATERAL
+134359,4654.09,CCE,MNV,A,4252.51,77,38,AAC,FOLDERB,LTTRS,2002-09-14 00:00:00,2002-10-30 18:59:00,NOT COLLATERAL
+134370,4654.53,CCF,OKW,A,4255.62,76,37,AAD,FOLDERC,LTTRS,2002-09-14 01:00:00,2002-10-30 20:59:00,COLLATERAL
+134381,4654.97,CCG,ASS,A,4258.73,75,36,AAE,FOLDERD,LTTRS,2002-09-14 02:00:00,2002-10-30 22:59:00,COLLATERAL
+134392,4655.41,CCH,CKA,A,4261.84,74,35,AAF,FOLDERE,LTTRS,2002-09-14 03:00:00,2002-10-31 00:59:00,COLLATERAL
+134403,4655.85,CCI,SWQ,A,4264.95,73,34,BBA,FOLDERF,LTTRS,2002-09-14 04:00:00,2002-10-31 02:59:00,NOT COLLATERAL
+134414,4656.29,CCJ,KUH,A,4268.06,72,33,BBC,FOLDERG,LTTRS,2002-09-14 05:00:00,2002-10-31 04:59:00,NOT COLLATERAL
+134425,4656.73,DDD,XCV,A,4271.17,71,32,BBE,FOLDERH,LTTRS,2002-09-14 06:00:00,2002-10-31 06:59:00,NOT COLLATERAL
+134436,4657.17,DDA,ZAQ,A,4274.28,70,31,BBF,FOLDERI,LTTRZ,2002-09-14 07:00:00,2002-10-31 08:59:00,NOT COLLATERAL
+134447,4657.61,DAA,MKO,A,4277.39,69,30,BBG,FOLDERJ,LTTRA,2002-09-14 08:00:00,2002-10-31 10:59:00,NOT COLLATERAL
+134458,4658.05,DBB,VFR,A,4280.5,68,29,BBH,FOLDERK,LTTRB,2002-09-14 09:00:00,2002-10-31 12:59:00,NOT COLLATERAL
+134469,4658.49,DCC,YUJ,A,4283.61,67,28,CCA,FOLDERL,LTTRB,2002-09-14 10:00:00,2002-10-31 14:59:00,NOT COLLATERAL
+134480,4658.93,DEE,MED,A,4286.72,66,27,CCB,FOLDERM,LTTRA,2002-09-14 11:00:00,2002-10-31 16:59:00,NOT COLLATERAL
+134491,4659.37,DFF,SWE,A,4289.83,65,26,CCD,FOLDERN,LTTRA,2002-09-14 12:00:00,2002-10-31 18:59:00,NOT COLLATERAL
+134502,4659.81,DGG,CVF,A,4292.94,64,25,CCE,FOLDERO,LTTRS,2002-09-14 13:00:00,2002-10-31 20:59:00,COLLATERAL
+134513,4660.25,DHH,DSFG,A,4296.05,63,24,CCF,FOLDERP,LTTRZ,2002-09-14 14:00:00,2002-10-31 22:59:00,COLLATERAL
+134524,4660.69,AAA,ASDRE,A,4299.16,62,23,CCG,FOLDERQ,LTTRS,2002-09-14 15:00:00,2002-11-01 00:59:00,COLLATERAL
+134535,4661.13,BBB,HJKSS,A,4302.27,61,22,CCH,FOLDERR,LTTRS,2002-09-14 16:00:00,2002-11-01 02:59:00,NOT COLLATERAL
+134546,4661.57,CCC,KHAA,A,4305.38,60,21,CCI,FOLDERS,LTTRS,2002-09-14 17:00:00,2002-11-01 04:59:00,NOT COLLATERAL
+134557,4662.01,DDD,KSLD,A,4308.49,59,20,CCJ,FOLDERT,LTTRS,2002-09-14 18:00:00,2002-11-01 06:59:00,NOT COLLATERAL
+134568,4662.45,AAB,EKID,A,4311.6,58,19,DDD,FOLDERU,LTTRS,2002-09-14 19:00:00,2002-11-01 08:59:00,NOT COLLATERAL
+134579,4662.89,AAC,VNCD,A,4314.71,57,18,DDA,FOLDERV,LTTRS,2002-09-14 20:00:00,2002-11-01 10:59:00,NOT COLLATERAL
+134590,4663.33,AAD,DKD,A,4317.82,56,17,DAA,FOLDERW,LTTRS,2002-09-14 21:00:00,2002-11-01 12:59:00,NOT COLLATERAL
+134601,4663.77,AAE,FKF,A,4320.93,55,16,FKF,FOLDERX,LTTRS,2002-09-14 22:00:00,2002-11-01 14:59:00,NOT COLLATERAL
+134612,4664.21,AAF,LES,A,4324.04,54,15,LES,FOLDERY,LTTRS,2002-09-14 23:00:00,2002-11-01 16:59:00,NOT COLLATERAL
+134623,4664.65,BBA,KLD,A,4327.15,53,14,KLD,FOLDERZ,LTTRS,2002-09-15 00:00:00,2002-11-01 18:59:00,NOT COLLATERAL
+134634,4665.09,BBC,SKL,A,4330.26,52,13,SKL,FOLDERZ,LTTRS,2002-09-15 01:00:00,2002-11-01 20:59:00,COLLATERAL
+134645,4665.53,BBE,SIW,A,4333.37,51,12,SIW,FOLDERZ,LTTRS,2002-09-15 02:00:00,2002-11-01 22:59:00,COLLATERAL
+134656,4665.97,BBF,CKA,A,4336.48,50,11,CKA,FOLDERZ,LTTRS,2002-09-15 03:00:00,2002-11-02 00:59:00,COLLATERAL
+134667,4666.41,BBG,LDE,A,4339.59,49,10,LDE,FOLDERZ,LTTRS,2002-09-15 04:00:00,2002-11-02 02:59:00,NOT COLLATERAL
+134678,4666.85,BBH,KFF,A,4342.7,48,9,KFF,FOLDERZ,LTTRZ,2002-09-15 05:00:00,2002-11-02 04:59:00,NOT COLLATERAL
+134689,4667.29,CCA,EFH,A,4345.81,47,8,EFH,FOLDERZ,LTTRA,2002-09-15 06:00:00,2002-11-02 06:59:00,NOT COLLATERAL
+134700,4667.73,CCB,NGC,A,4348.92,46,7,NGC,FOLDERZ,LTTRB,2002-09-15 07:00:00,2002-11-02 08:59:00,NOT COLLATERAL
+134711,4668.17,CCD,DER,A,4352.03,45,6,DER,FOLDERZ,LTTRB,2002-09-15 08:00:00,2002-11-02 10:59:00,NOT COLLATERAL
+134722,4668.61,CCE,FVG,A,4355.14,44,5,FVG,FOLDERZ,LTTRA,2002-09-15 09:00:00,2002-11-02 12:59:00,NOT COLLATERAL
+134733,4669.05,CCF,KWE,A,4358.25,43,4,KWE,FOLDERZ,LTTRA,2002-09-15 10:00:00,2002-11-02 14:59:00,NOT COLLATERAL
+134744,4669.49,CCG,WER,A,4361.36,42,3,WER,FOLDERZ,LTTRS,2002-09-15 11:00:00,2002-11-02 16:59:00,NOT COLLATERAL
+134755,4669.93,CCH,GFH,A,4364.47,41,1,GFH,FOLDERZ,LTTRZ,2002-09-15 12:00:00,2002-11-02 18:59:00,NOT COLLATERAL
+134766,4670.37,CCI,BGF,A,4367.58,40,2,BGF,FOLDERZ,LTTRS,2002-09-15 13:00:00,2002-11-02 20:59:00,COLLATERAL
+134777,4670.81,CCJ,XCS,A,4370.69,39,3,XCS,FOLDERX,LTTRS,2002-09-15 14:00:00,2002-11-02 22:59:00,COLLATERAL
+134788,4671.25,DDD,JHK,A,4373.8,38,4,JHK,FOLDERX,LTTRS,2002-09-15 15:00:00,2002-11-03 00:59:00,COLLATERAL
+134799,4671.69,DDA,SFD,A,4376.91,37,5,SFD,FOLDERX,LTTRS,2002-09-15 16:00:00,2002-11-03 02:59:00,NOT COLLATERAL
+134810,4672.13,DAA,WRE,A,4380.02,36,6,WRE,FOLDERX,LTTRS,2002-09-15 17:00:00,2002-11-03 04:59:00,NOT COLLATERAL
+134821,4672.57,DBB,HGV,A,4383.13,35,7,HGV,FOLDERX,LTTRS,2002-09-15 18:00:00,2002-11-03 06:59:00,NOT COLLATERAL
+134832,4673.01,DCC,KLS,A,4386.24,34,8,KLS,FOLDERX,LTTRS,2002-09-15 19:00:00,2002-11-03 08:59:00,NOT COLLATERAL
+134843,4673.45,DEE,SDK,A,4389.35,33,9,SDK,FOLDERX,LTTRS,2002-09-15 20:00:00,2002-11-03 10:59:00,NOT COLLATERAL
+134854,4673.89,DFF,MNV,A,4392.46,32,10,MNV,FOLDERX,LTTRS,2002-09-15 21:00:00,2002-11-03 12:59:00,NOT COLLATERAL
+134865,4674.33,DGG,OKW,A,4395.57,31,11,OKW,FOLDERX,LTTRS,2002-09-15 22:00:00,2002-11-03 14:59:00,NOT COLLATERAL
+134876,4674.77,DHH,ASS,A,4398.68,30,12,ASS,FOLDERX,LTTRS,2002-09-15 23:00:00,2002-11-03 16:59:00,NOT COLLATERAL
+134887,4675.21,AAA,CKA,A,4401.79,29,13,CKA,FOLDERX,LTTRS,2002-09-16 00:00:00,2002-11-03 18:59:00,NOT COLLATERAL
+134898,4675.65,BBB,SWQ,A,4404.9,28,14,SWQ,FOLDERX,LTTRS,2002-09-16 01:00:00,2002-11-03 20:59:00,COLLATERAL
+134909,4676.09,CCC,KUH,A,4408.01,27,15,KUH,FOLDERR,LTTRS,2002-09-16 02:00:00,2002-11-03 22:59:00,COLLATERAL
+134920,4676.53,DDD,XCV,A,4411.12,26,16,XCV,FOLDERS,LTTRZ,2002-09-16 03:00:00,2002-11-04 00:59:00,COLLATERAL
+134931,4676.97,AAB,ZAQ,A,4414.23,25,17,ZAQ,FOLDERX,LTTRA,2002-09-16 04:00:00,2002-11-04 02:59:00,NOT COLLATERAL
+134942,4677.41,AAC,MKO,A,4417.34,24,18,MKO,FOLDERR,LTTRB,2002-09-16 05:00:00,2002-11-04 04:59:00,NOT COLLATERAL
+134953,4677.85,AAD,VFR,A,4420.45,23,19,VFR,FOLDERS,LTTRB,2002-09-16 06:00:00,2002-11-04 06:59:00,NOT COLLATERAL
+134964,4678.29,AAE,YUJ,A,4423.56,22,20,YUJ,FOLDERX,LTTRA,2002-09-16 07:00:00,2002-11-04 08:59:00,NOT COLLATERAL
+134975,4678.73,AAF,MED,A,4426.67,21,21,AAA,FOLDERR,LTTRA,2002-09-16 08:00:00,2002-11-04 10:59:00,NOT COLLATERAL
+134986,4679.17,BBA,SWE,A,4429.78,24,22,BBB,FOLDERS,LTTRS,2002-09-16 09:00:00,2002-11-04 12:59:00,NOT COLLATERAL
+134997,4679.61,BBC,CVF,A,4432.89,27,23,CCC,FOLDERX,LTTRZ,2002-09-16 10:00:00,2002-11-04 14:59:00,NOT COLLATERAL
+135008,4680.05,BBE,DSFG,A,4436,30,24,DDD,FOLDERR,LTTRS,2002-09-16 11:00:00,2002-11-04 16:59:00,NOT COLLATERAL
+135019,4680.49,BBF,ASDRE,A,4439.11,33,25,AAB,FOLDERS,LTTRS,2002-09-16 12:00:00,2002-11-04 18:59:00,NOT COLLATERAL
+135030,4680.93,BBG,HJKSS,A,4442.22,36,26,AAC,FOLDERX,LTTRS,2002-09-16 13:00:00,2002-11-04 20:59:00,COLLATERAL
+135041,4681.37,BBH,KHAA,A,4445.33,39,27,AAD,FOLDERR,LTTRS,2002-09-16 14:00:00,2002-11-04 22:59:00,COLLATERAL
+135052,4681.81,CCA,KSLD,A,4448.44,42,28,AAE,FOLDERS,LTTRS,2002-09-16 15:00:00,2002-11-05 00:59:00,COLLATERAL
+135063,4682.25,CCB,EKID,A,4451.55,45,29,AAF,FOLDERX,LTTRS,2002-09-16 16:00:00,2002-11-05 02:59:00,NOT COLLATERAL
+135074,4682.69,CCD,VNCD,A,4454.66,48,30,BBA,FOLDERD,LTTRS,2002-09-16 17:00:00,2002-11-05 04:59:00,NOT COLLATERAL
+135085,4683.13,CCE,DKD,A,4457.77,51,31,BBC,FOLDERE,LTTRS,2002-09-16 18:00:00,2002-11-05 06:59:00,NOT COLLATERAL
+135096,4683.57,CCF,FKF,A,4460.88,54,32,BBE,FOLDERF,LTTRS,2002-09-16 19:00:00,2002-11-05 08:59:00,NOT COLLATERAL
+135107,4684.01,CCG,LES,A,4463.99,57,33,BBF,FOLDERG,LTTRS,2002-09-16 20:00:00,2002-11-05 10:59:00,NOT COLLATERAL
+135118,4684.45,CCH,KLD,A,4467.1,60,34,BBG,FOLDERH,LTTRS,2002-09-16 21:00:00,2002-11-05 12:59:00,NOT COLLATERAL
+135129,4684.89,CCI,SKL,A,4470.21,63,35,BBH,FOLDERI,LTTRS,2002-09-16 22:00:00,2002-11-05 14:59:00,NOT COLLATERAL
+135140,4685.33,CCJ,SIW,A,4473.32,66,36,CCA,FOLDERJ,LTTRS,2002-09-16 23:00:00,2002-11-05 16:59:00,NOT COLLATERAL
+135151,4685.77,DDD,CKA,A,4476.43,69,37,CCB,FOLDERK,LTTRS,2002-09-17 00:00:00,2002-11-05 18:59:00,NOT COLLATERAL
+135162,4686.21,DDA,LDE,A,4479.54,72,38,CCD,FOLDERL,LTTRZ,2002-09-17 01:00:00,2002-11-05 20:59:00,COLLATERAL
+135173,4686.65,DAA,KFF,A,4482.65,75,39,CCE,FOLDERM,LTTRA,2002-09-17 02:00:00,2002-11-05 22:59:00,COLLATERAL
+135184,4687.09,DBB,EFH,A,4485.76,78,40,CCF,FOLDERN,LTTRB,2002-09-17 03:00:00,2002-11-06 00:59:00,COLLATERAL
+135195,4687.53,DCC,NGC,A,4488.87,81,41,CCG,FOLDERN,LTTRB,2002-09-17 04:00:00,2002-11-06 02:59:00,NOT COLLATERAL
+135206,4687.97,DEE,DER,A,4491.98,84,42,CCH,FOLDERN,LTTRA,2002-09-17 05:00:00,2002-11-06 04:59:00,NOT COLLATERAL
+135217,4688.41,DFF,FVG,A,4495.09,87,43,CCI,FOLDERN,LTTRA,2002-09-17 06:00:00,2002-11-06 06:59:00,NOT COLLATERAL
+135228,4688.85,DGG,KWE,A,4498.2,90,44,CCJ,FOLDERL,LTTRS,2002-09-17 07:00:00,2002-11-06 08:59:00,NOT COLLATERAL
+135239,4689.29,DHH,WER,A,4501.31,93,45,DDD,FOLDERL,LTTRZ,2002-09-17 08:00:00,2002-11-06 10:59:00,NOT COLLATERAL
+135250,4689.73,AAA,GFH,A,4504.42,96,46,DDA,FOLDERL,LTTRS,2002-09-17 09:00:00,2002-11-06 12:59:00,NOT COLLATERAL
+135261,4690.17,BBB,BGF,A,4507.53,99,47,DAA,FOLDERL,LTTRS,2002-09-17 10:00:00,2002-11-06 14:59:00,NOT COLLATERAL
+135272,4690.61,CCC,XCS,A,4510.64,102,48,FKF,FOLDERL,LTTRS,2002-09-17 11:00:00,2002-11-06 16:59:00,NOT COLLATERAL
+135283,4691.05,DDD,JHK,A,4513.75,105,49,LES,FOLDERA,LTTRS,2002-09-17 12:00:00,2002-11-06 18:59:00,NOT COLLATERAL
+135294,4691.49,AAB,SFD,A,4516.86,108,48,KLD,FOLDERB,LTTRS,2002-09-17 13:00:00,2002-11-06 20:59:00,COLLATERAL
+135305,4691.93,AAC,WRE,A,4519.97,111,47,SKL,FOLDERC,LTTRS,2002-09-17 14:00:00,2002-11-06 22:59:00,COLLATERAL
+135316,4692.37,AAD,HGV,A,4523.08,114,46,SIW,FOLDERD,LTTRS,2002-09-17 15:00:00,2002-11-07 00:59:00,COLLATERAL
+135327,4692.81,AAE,KLS,A,4526.19,117,45,CKA,FOLDERE,LTTRS,2002-09-17 16:00:00,2002-11-07 02:59:00,NOT COLLATERAL
+135338,4693.25,AAF,SDK,A,4529.3,120,44,LDE,FOLDERF,LTTRS,2002-09-17 17:00:00,2002-11-07 04:59:00,NOT COLLATERAL
+135349,4693.69,BBA,MNV,A,4532.41,123,43,KFF,FOLDERG,LTTRS,2002-09-17 18:00:00,2002-11-07 06:59:00,NOT COLLATERAL
+135360,4694.13,BBC,OKW,A,4535.52,126,42,EFH,FOLDERH,LTTRS,2002-09-17 18:59:00,2002-11-07 08:59:00,NOT COLLATERAL
+135371,4694.57,BBE,ASS,A,4538.63,129,41,NGC,FOLDERI,LTTRS,2002-09-17 19:59:00,2002-11-07 10:59:00,NOT COLLATERAL
+135382,4695.01,BBF,CKA,A,4541.74,132,40,DER,FOLDERJ,LTTRS,2002-09-17 20:59:00,2002-11-07 12:59:00,NOT COLLATERAL
+135393,4695.45,BBG,SWQ,A,4544.85,135,39,FVG,FOLDERK,LTTRS,2002-09-17 21:59:00,2002-11-07 14:59:00,NOT COLLATERAL
+135404,4695.89,BBH,KUH,A,4547.96,138,38,KWE,FOLDERL,LTTRZ,2002-09-17 22:59:00,2002-11-07 16:59:00,NOT COLLATERAL
+135415,4696.33,CCA,XCV,A,4551.07,141,37,WER,FOLDERM,LTTRA,2002-09-17 23:59:00,2002-11-07 18:59:00,NOT COLLATERAL
+135426,4696.77,CCB,ZAQ,A,4554.18,144,36,GFH,FOLDERN,LTTRB,2002-09-18 00:59:00,2002-11-07 20:59:00,COLLATERAL
+135437,4697.21,CCD,MKO,A,4557.29,147,35,BGF,FOLDERO,LTTRB,2002-09-18 01:59:00,2002-11-07 22:59:00,COLLATERAL
+135448,4697.65,CCE,VFR,A,4560.4,150,34,XCS,FOLDERP,LTTRA,2002-09-18 02:59:00,2002-11-08 00:59:00,COLLATERAL
+135459,4698.09,CCF,YUJ,A,4563.51,153,33,JHK,FOLDERQ,LTTRA,2002-09-18 03:59:00,2002-11-08 02:59:00,NOT COLLATERAL
+135470,4698.53,CCG,MED,A,4566.62,156,32,SFD,FOLDERR,LTTRS,2002-09-18 04:59:00,2002-11-08 04:59:00,NOT COLLATERAL
+135481,4698.97,CCH,SWE,A,4569.73,159,31,WRE,FOLDERS,LTTRZ,2002-09-18 05:59:00,2002-11-08 06:59:00,NOT COLLATERAL
+135492,4699.41,CCI,CVF,A,4572.84,162,30,HGV,FOLDERT,LTTRS,2002-09-18 06:59:00,2002-11-08 08:59:00,NOT COLLATERAL
+135503,4699.85,CCJ,DSFG,A,4575.95,165,29,KLS,FOLDERU,LTTRS,2002-09-18 07:59:00,2002-11-08 10:59:00,NOT COLLATERAL
+135514,4700.29,DDD,ASDRE,A,4579.06,168,28,SDK,FOLDERV,LTTRS,2002-09-18 08:59:00,2002-11-08 12:59:00,NOT COLLATERAL
+135525,4700.73,DDA,HJKSS,A,4582.17,171,27,MNV,FOLDERW,LTTRS,2002-09-18 09:59:00,2002-11-08 14:59:00,NOT COLLATERAL
+135536,4701.17,DAA,KHAA,A,4585.28,174,26,OKW,FOLDERX,LTTRS,2002-09-18 10:59:00,2002-11-08 16:59:00,NOT COLLATERAL
+135547,4701.61,DBB,KSLD,A,4588.39,177,25,ASS,FOLDERY,LTTRS,2002-09-18 11:59:00,2002-11-08 18:59:00,NOT COLLATERAL
+135558,4702.05,DCC,EKID,A,4591.5,180,24,CKA,FOLDERZ,LTTRS,2002-09-18 12:59:00,2002-11-08 20:59:00,COLLATERAL
+135569,4702.49,DEE,VNCD,A,4594.61,183,23,SWQ,FOLDERA,LTTRS,2002-09-18 13:59:00,2002-11-08 22:59:00,COLLATERAL
+135580,4702.93,DFF,DKD,A,4597.72,186,22,KUH,FOLDERB,LTTRS,2002-09-18 14:59:00,2002-11-09 00:59:00,COLLATERAL
+135591,4703.37,DGG,FKF,A,4600.83,189,21,XCV,FOLDERC,LTTRS,2002-09-18 15:59:00,2002-11-09 02:59:00,NOT COLLATERAL
+135602,4703.81,DHH,LES,A,4603.94,192,20,ZAQ,FOLDERD,LTTRS,2002-09-18 16:59:00,2002-11-09 04:59:00,NOT COLLATERAL
+135613,4704.25,AAA,KLD,A,4607.05,195,19,MKO,FOLDERE,LTTRS,2002-09-18 17:59:00,2002-11-09 06:59:00,NOT COLLATERAL
+135624,4704.69,BBB,SKL,A,4610.16,198,18,VFR,FOLDERF,LTTRS,2002-09-18 18:59:00,2002-11-09 08:59:00,NOT COLLATERAL
+135635,4705.13,CCC,SIW,A,4613.27,201,17,YUJ,FOLDERG,LTTRS,2002-09-18 19:59:00,2002-11-09 10:59:00,NOT COLLATERAL
+135646,4705.57,DDD,CKA,A,4616.38,204,16,AAA,FOLDERH,LTTRZ,2002-09-18 20:59:00,2002-11-09 12:59:00,NOT COLLATERAL
+135657,4706.01,AAB,LDE,A,4619.49,207,15,BBB,FOLDERI,LTTRA,2002-09-18 21:59:00,2002-11-09 14:59:00,NOT COLLATERAL
+135668,4706.45,AAC,KFF,A,4622.6,210,14,CCC,FOLDERJ,LTTRB,2002-09-18 22:59:00,2002-11-09 16:59:00,NOT COLLATERAL
+135679,4706.89,AAD,EFH,A,4625.71,213,13,DDD,FOLDERK,LTTRB,2002-09-18 23:59:00,2002-11-09 18:59:00,NOT COLLATERAL
+135690,4707.33,AAE,NGC,A,4628.82,216,12,AAB,FOLDERL,LTTRA,2002-09-19 00:59:00,2002-11-09 20:59:00,COLLATERAL
+135701,4707.77,AAF,DER,A,4631.93,219,11,AAC,FOLDERM,LTTRA,2002-09-19 01:59:00,2002-11-09 22:59:00,COLLATERAL
+135712,4708.21,BBA,FVG,A,4635.04,222,10,AAD,FOLDERN,LTTRS,2002-09-19 02:59:00,2002-11-10 00:59:00,COLLATERAL
+135723,4708.65,BBC,KWE,A,4638.15,225,9,AAE,FOLDERO,LTTRZ,2002-09-19 03:59:00,2002-11-10 02:59:00,NOT COLLATERAL
+135734,4709.09,BBE,WER,A,4641.26,228,8,AAF,FOLDERP,LTTRS,2002-09-19 04:59:00,2002-11-10 04:59:00,NOT COLLATERAL
+135745,4709.53,BBF,GFH,A,4644.37,231,7,BBA,FOLDERQ,LTTRS,2002-09-19 05:59:00,2002-11-10 06:59:00,NOT COLLATERAL
+135756,4709.97,BBG,BGF,A,4647.48,234,6,BBC,FOLDERR,LTTRS,2002-09-19 06:59:00,2002-11-10 08:59:00,NOT COLLATERAL
+135767,4710.41,BBH,XCS,A,4650.59,237,5,BBE,FOLDERS,LTTRS,2002-09-19 07:59:00,2002-11-10 10:59:00,NOT COLLATERAL
+135778,4710.85,CCA,JHK,A,4653.7,240,4,BBF,FOLDERT,LTTRS,2002-09-19 08:59:00,2002-11-10 12:59:00,NOT COLLATERAL
+135789,4711.29,CCB,SFD,A,4656.81,243,3,BBG,FOLDERU,LTTRS,2002-09-19 09:59:00,2002-11-10 14:59:00,NOT COLLATERAL
+135800,4711.73,CCD,WRE,A,4659.92,246,1,BBH,FOLDERV,LTTRS,2002-09-19 10:59:00,2002-11-10 16:59:00,NOT COLLATERAL
+135811,4712.17,CCE,HGV,A,4663.03,249,2,CCA,FOLDERW,LTTRS,2002-09-19 11:59:00,2002-11-10 18:59:00,NOT COLLATERAL
+135822,4712.61,CCF,KLS,A,4666.14,252,3,CCB,FOLDERX,LTTRS,2002-09-19 12:59:00,2002-11-10 20:59:00,COLLATERAL
+135833,4713.05,CCG,SDK,A,4669.25,255,4,CCD,FOLDERY,LTTRS,2002-09-19 13:59:00,2002-11-10 22:59:00,COLLATERAL
+135844,4713.49,CCH,MNV,A,4672.36,258,5,CCE,FOLDERZ,LTTRS,2002-09-19 14:59:00,2002-11-11 00:59:00,COLLATERAL
+135855,4713.93,CCI,OKW,A,4675.47,261,6,CCF,FOLDERZ,LTTRS,2002-09-19 15:59:00,2002-11-11 02:59:00,NOT COLLATERAL
+135866,4714.37,CCJ,ASS,A,4678.58,264,7,CCG,FOLDERZ,LTTRS,2002-09-19 16:59:00,2002-11-11 04:59:00,NOT COLLATERAL
+135877,4714.81,DDD,CKA,A,4681.69,267,8,CCH,FOLDERZ,LTTRS,2002-09-19 17:59:00,2002-11-11 06:59:00,NOT COLLATERAL
+135888,4715.25,DDA,SWQ,A,4684.8,270,9,CCI,FOLDERZ,LTTRZ,2002-09-19 18:59:00,2002-11-11 08:59:00,NOT COLLATERAL
+135899,4715.69,DAA,KUH,A,4687.91,273,10,CCJ,FOLDERZ,LTTRA,2002-09-19 19:59:00,2002-11-11 10:59:00,NOT COLLATERAL
+135910,4716.13,DBB,XCV,A,4691.02,276,11,DDD,FOLDERZ,LTTRB,2002-09-19 20:59:00,2002-11-11 12:59:00,NOT COLLATERAL
+135921,4716.57,DCC,ZAQ,A,4694.13,279,12,DDA,FOLDERZ,LTTRB,2002-09-19 21:59:00,2002-11-11 14:59:00,NOT COLLATERAL
+135932,4717.01,DEE,MKO,A,4697.24,282,13,DAA,FOLDERZ,LTTRA,2002-09-19 22:59:00,2002-11-11 16:59:00,NOT COLLATERAL
+135943,4717.45,DFF,VFR,A,4700.35,285,14,FKF,FOLDERZ,LTTRA,2002-09-19 23:59:00,2002-11-11 18:59:00,NOT COLLATERAL
+135954,4717.89,DGG,YUJ,A,4703.46,288,15,LES,FOLDERZ,LTTRS,2002-09-20 00:59:00,2002-11-11 20:59:00,COLLATERAL
+135965,4718.33,DHH,MED,A,4706.57,291,16,KLD,FOLDERZ,LTTRZ,2002-09-20 01:59:00,2002-11-11 22:59:00,COLLATERAL
+135976,4718.77,AAA,SWE,A,4709.68,294,17,SKL,FOLDERZ,LTTRS,2002-09-20 02:59:00,2002-11-12 00:59:00,COLLATERAL
+135987,4719.21,BBB,CVF,A,4712.79,297,18,SIW,FOLDERZ,LTTRS,2002-09-20 03:59:00,2002-11-12 02:59:00,NOT COLLATERAL
+135998,4719.65,CCC,DSFG,A,4715.9,300,19,CKA,FOLDERX,LTTRS,2002-09-20 04:59:00,2002-11-12 04:59:00,NOT COLLATERAL
+136009,4720.09,DDD,ASDRE,A,4719.01,303,20,LDE,FOLDERX,LTTRS,2002-09-20 05:59:00,2002-11-12 06:59:00,NOT COLLATERAL
+136020,4720.53,AAB,HJKSS,A,4722.12,306,21,KFF,FOLDERX,LTTRS,2002-09-20 06:59:00,2002-11-12 08:59:00,NOT COLLATERAL
+136031,4720.97,AAC,KHAA,A,4725.23,309,22,EFH,FOLDERX,LTTRS,2002-09-20 07:59:00,2002-11-12 10:59:00,NOT COLLATERAL
+136042,4721.41,AAD,KSLD,A,4728.34,312,23,NGC,FOLDERX,LTTRS,2002-09-20 08:59:00,2002-11-12 12:59:00,NOT COLLATERAL
+136053,4721.85,AAE,EKID,A,4731.45,315,24,DER,FOLDERX,LTTRS,2002-09-20 09:59:00,2002-11-12 14:59:00,NOT COLLATERAL
+136064,4722.29,AAF,VNCD,A,4734.56,318,25,FVG,FOLDERX,LTTRS,2002-09-20 10:59:00,2002-11-12 16:59:00,NOT COLLATERAL
+136075,4722.73,BBA,DKD,A,4737.67,321,26,KWE,FOLDERX,LTTRS,2002-09-20 11:59:00,2002-11-12 18:59:00,NOT COLLATERAL
+136086,4723.17,BBC,FKF,A,4740.78,324,27,WER,FOLDERX,LTTRS,2002-09-20 12:59:00,2002-11-12 20:59:00,COLLATERAL
+136097,4723.61,BBE,LES,A,4743.89,327,28,GFH,FOLDERX,LTTRS,2002-09-20 13:59:00,2002-11-12 22:59:00,COLLATERAL
+136108,4724.05,BBF,KLD,A,4747,330,29,BGF,FOLDERX,LTTRS,2002-09-20 14:59:00,2002-11-13 00:59:00,COLLATERAL
+136119,4724.49,BBG,SKL,A,4750.11,333,30,XCS,FOLDERX,LTTRS,2002-09-20 15:59:00,2002-11-13 02:59:00,NOT COLLATERAL
+136130,4724.93,BBH,SIW,A,4753.22,336,31,JHK,FOLDERR,LTTRZ,2002-09-20 16:59:00,2002-11-13 04:59:00,NOT COLLATERAL
+136141,4725.37,CCA,CKA,A,4756.33,339,32,SFD,FOLDERS,LTTRA,2002-09-20 17:59:00,2002-11-13 06:59:00,NOT COLLATERAL
+136152,4725.81,CCB,LDE,A,4759.44,342,33,WRE,FOLDERX,LTTRB,2002-09-20 18:59:00,2002-11-13 08:59:00,NOT COLLATERAL
+136163,4726.25,CCD,KFF,A,4762.55,345,34,HGV,FOLDERR,LTTRB,2002-09-20 19:59:00,2002-11-13 10:59:00,NOT COLLATERAL
+136174,4726.69,CCE,EFH,A,4765.66,348,35,KLS,FOLDERS,LTTRA,2002-09-20 20:59:00,2002-11-13 12:59:00,NOT COLLATERAL
+136185,4727.13,CCF,NGC,A,4768.77,351,36,SDK,FOLDERX,LTTRA,2002-09-20 21:59:00,2002-11-13 14:59:00,NOT COLLATERAL
+136196,4727.57,CCG,DER,A,4771.88,354,37,MNV,FOLDERR,LTTRS,2002-09-20 22:59:00,2002-11-13 16:59:00,NOT COLLATERAL
+136207,4728.01,CCH,FVG,A,4774.99,357,38,OKW,FOLDERS,LTTRZ,2002-09-20 23:59:00,2002-11-13 18:59:00,NOT COLLATERAL
+136218,4728.45,CCI,KWE,A,4778.1,360,39,ASS,FOLDERX,LTTRS,2002-09-21 00:59:00,2002-11-13 20:59:00,COLLATERAL
+136229,4728.89,CCJ,WER,A,4781.21,363,40,CKA,FOLDERR,LTTRS,2002-09-21 01:59:00,2002-11-13 22:59:00,COLLATERAL
+136240,4729.33,DDD,GFH,A,4784.32,366,41,SWQ,FOLDERS,LTTRS,2002-09-21 02:59:00,2002-11-14 00:59:00,COLLATERAL
+136251,4729.77,DDA,BGF,A,4787.43,369,42,KUH,FOLDERX,LTTRS,2002-09-21 03:59:00,2002-11-14 02:59:00,NOT COLLATERAL
+136262,4730.21,DAA,XCS,A,4790.54,372,43,XCV,FOLDERR,LTTRS,2002-09-21 04:59:00,2002-11-14 04:59:00,NOT COLLATERAL
+136273,4730.65,DBB,JHK,A,4793.65,375,44,ZAQ,FOLDERS,LTTRS,2002-09-21 05:59:00,2002-11-14 06:59:00,NOT COLLATERAL
+136284,4731.09,DCC,SFD,A,4796.76,378,45,MKO,FOLDERX,LTTRS,2002-09-21 06:59:00,2002-11-14 08:59:00,NOT COLLATERAL
+136295,4731.53,DEE,WRE,A,4799.87,381,46,VFR,FOLDERD,LTTRS,2002-09-21 07:59:00,2002-11-14 10:59:00,NOT COLLATERAL
+136306,4731.97,DFF,HGV,A,4802.98,384,47,YUJ,FOLDERE,LTTRS,2002-09-21 08:59:00,2002-11-14 12:59:00,NOT COLLATERAL
+136317,4732.41,DGG,KLS,A,4806.09,387,48,AAA,FOLDERF,LTTRS,2002-09-21 09:59:00,2002-11-14 14:59:00,NOT COLLATERAL
+136328,4732.85,DHH,SDK,A,4809.2,390,49,BBB,FOLDERG,LTTRS,2002-09-21 10:59:00,2002-11-14 16:59:00,NOT COLLATERAL
+136339,4733.29,AAA,MNV,A,4812.31,393,48,CCC,FOLDERH,LTTRS,2002-09-21 11:59:00,2002-11-14 18:59:00,NOT COLLATERAL
+136350,4733.73,BBB,OKW,A,4815.42,396,47,DDD,FOLDERI,LTTRS,2002-09-21 12:59:00,2002-11-14 20:59:00,COLLATERAL
+136361,4734.17,CCC,ASS,A,4818.53,399,46,AAB,FOLDERJ,LTTRS,2002-09-21 13:59:00,2002-11-14 22:59:00,COLLATERAL
+136372,4734.61,DDD,CKA,A,4821.64,402,45,AAC,FOLDERK,LTTRZ,2002-09-21 14:59:00,2002-11-15 00:59:00,COLLATERAL
+136383,4735.05,AAB,SWQ,A,4824.75,405,44,AAD,FOLDERL,LTTRA,2002-09-21 15:59:00,2002-11-15 02:59:00,NULL
+136394,4735.49,AAC,KUH,A,4827.86,408,43,AAE,FOLDERM,LTTRB,2002-09-21 16:59:00,2002-11-15 04:59:00,NULL
+136405,4735.93,AAD,XCV,A,4830.97,402,42,AAF,FOLDERN,LTTRB,2002-09-21 17:59:00,2002-11-15 06:59:00,NULL
+136416,4736.37,AAE,ZAQ,A,4834.08,396,41,BBA,FOLDERN,LTTRA,2002-09-21 18:59:00,2002-11-15 08:59:00,NULL
+136427,4736.81,AAF,MKO,A,4837.19,390,40,BBC,FOLDERN,LTTRA,2002-09-21 19:59:00,2002-11-15 10:59:00,NULL
+136438,4737.25,BBA,VFR,A,4840.3,384,39,BBE,FOLDERN,LTTRS,2002-09-21 20:59:00,2002-11-15 12:59:00,NULL
+136449,4737.69,BBC,YUJ,A,4843.41,378,38,BBF,FOLDERL,LTTRZ,2002-09-21 21:59:00,2002-11-15 14:59:00,NULL
+136460,4738.13,BBE,MED,A,4846.52,372,37,BBG,FOLDERL,LTTRS,2002-09-21 22:59:00,2002-11-15 16:59:00,NULL
+136471,4738.57,BBF,SWE,A,4849.63,366,36,BBH,FOLDERL,LTTRS,2002-09-21 23:59:00,2002-11-15 18:59:00,NULL
+136482,4739.01,BBG,CVF,A,4852.74,360,35,CCA,FOLDERL,LTTRS,2002-09-22 00:59:00,2002-11-15 20:59:00,COLLATERAL
+136493,4739.45,BBH,DSFG,A,4855.85,354,34,CCB,FOLDERL,LTTRS,2002-09-22 01:59:00,2002-11-15 22:59:00,COLLATERAL
+136504,4739.89,CCA,ASDRE,A,4858.96,348,33,CCD,FOLDERA,LTTRS,2002-09-22 02:59:00,2002-11-16 00:59:00,COLLATERAL
+136515,4740.33,CCB,HJKSS,A,4862.07,342,32,CCE,FOLDERB,LTTRS,2002-09-22 03:59:00,2002-11-16 02:59:00,NULL
+136526,4740.77,CCD,KHAA,A,4865.18,336,31,CCF,FOLDERC,LTTRS,2002-09-22 04:59:00,2002-11-16 04:59:00,NULL
+136537,4741.21,CCE,KSLD,A,4868.29,330,30,CCG,FOLDERD,LTTRS,2002-09-22 05:59:00,2002-11-16 06:59:00,NULL
+136548,4741.65,CCF,EKID,A,4871.4,324,29,CCH,FOLDERE,LTTRS,2002-09-22 06:59:00,2002-11-16 08:59:00,NULL
+136559,4742.09,CCG,VNCD,A,4874.51,318,28,CCI,FOLDERF,LTTRS,2002-09-22 07:59:00,2002-11-16 10:59:00,NULL
+136570,4742.53,CCH,DKD,A,4877.62,312,27,CCJ,FOLDERG,LTTRS,2002-09-22 08:59:00,2002-11-16 12:59:00,NULL
+136581,4742.97,CCI,FKF,A,4880.73,306,26,DDD,FOLDERH,LTTRS,2002-09-22 09:59:00,2002-11-16 14:59:00,NULL
+136592,4743.41,CCJ,LES,A,4883.84,300,25,DDA,FOLDERI,LTTRS,2002-09-22 10:59:00,2002-11-16 16:59:00,NULL
+136603,4743.85,DDD,KLD,A,4886.95,294,24,DAA,FOLDERJ,LTTRS,2002-09-22 11:59:00,2002-11-16 18:59:00,NULL
+136614,4744.29,DDA,SKL,A,4890.06,288,23,FKF,FOLDERK,LTTRZ,2002-09-22 12:59:00,2002-11-16 20:59:00,COLLATERAL
+136625,4744.73,DAA,SIW,A,4893.17,282,22,LES,FOLDERL,LTTRA,2002-09-22 13:59:00,2002-11-16 22:59:00,COLLATERAL
+136636,4745.17,DBB,CKA,A,4896.28,276,21,KLD,FOLDERM,LTTRB,2002-09-22 14:59:00,2002-11-17 00:59:00,COLLATERAL
+136647,4745.61,DCC,LDE,A,4899.39,270,20,SKL,FOLDERN,LTTRB,2002-09-22 15:59:00,2002-11-17 02:59:00,NOT COLLATERAL
+136658,4746.05,DEE,KFF,A,4902.5,264,19,SIW,FOLDERO,LTTRA,2002-09-22 16:59:00,2002-11-17 04:59:00,NOT COLLATERAL
+136669,4746.49,DFF,EFH,A,4905.61,258,18,CKA,FOLDERP,LTTRA,2002-09-22 17:59:00,2002-11-17 06:59:00,NOT COLLATERAL
+136680,4746.93,DGG,NGC,A,4908.72,252,17,LDE,FOLDERQ,LTTRS,2002-09-22 18:59:00,2002-11-17 08:59:00,NOT COLLATERAL
+136691,4747.37,DHH,DER,A,4911.83,246,16,KFF,FOLDERR,LTTRZ,2002-09-22 19:59:00,2002-11-17 10:59:00,NOT COLLATERAL
+136702,4747.81,AAA,FVG,A,4914.94,240,15,EFH,FOLDERS,LTTRS,2002-09-22 20:59:00,2002-11-17 12:59:00,NOT COLLATERAL
+136713,4748.25,BBB,KWE,A,4918.05,234,14,NGC,FOLDERT,LTTRS,2002-09-22 21:59:00,2002-11-17 14:59:00,NOT COLLATERAL
+136724,4748.69,CCC,WER,A,4921.16,228,13,DER,FOLDERU,LTTRS,2002-09-22 22:59:00,2002-11-17 16:59:00,NOT COLLATERAL
+136735,4749.13,DDD,GFH,A,4924.27,222,12,FVG,FOLDERV,LTTRS,2002-09-22 23:59:00,2002-11-17 18:59:00,NOT COLLATERAL
+136746,4749.57,AAB,BGF,A,4927.38,216,11,KWE,FOLDERW,LTTRS,2002-09-23 00:59:00,2002-11-17 20:59:00,COLLATERAL
+136757,4750.01,AAC,XCS,A,4930.49,210,10,WER,FOLDERX,LTTRS,2002-09-23 01:59:00,2002-11-17 22:59:00,COLLATERAL
+136768,4750.45,AAD,JHK,A,4933.6,204,9,GFH,FOLDERY,LTTRS,2002-09-23 02:59:00,2002-11-18 00:59:00,COLLATERAL
+136779,4750.89,AAE,SFD,A,4936.71,198,8,BGF,FOLDERZ,LTTRS,2002-09-23 03:59:00,2002-11-18 02:59:00,NOT COLLATERAL
+136790,4751.33,AAF,WRE,A,4939.82,192,7,XCS,FOLDERA,LTTRS,2002-09-23 04:59:00,2002-11-18 04:59:00,NOT COLLATERAL
+136801,4751.77,BBA,HGV,A,4942.93,186,6,JHK,FOLDERB,LTTRS,2002-09-23 05:59:00,2002-11-18 06:59:00,NOT COLLATERAL
+136812,4752.21,BBC,KLS,A,4946.04,180,5,SFD,FOLDERC,LTTRS,2002-09-23 06:59:00,2002-11-18 08:59:00,NOT COLLATERAL
+136823,4752.65,BBE,SDK,A,4949.15,174,4,WRE,FOLDERD,LTTRS,2002-09-23 07:59:00,2002-11-18 10:59:00,NOT COLLATERAL
+136834,4753.09,BBF,MNV,A,4952.26,168,3,HGV,FOLDERE,LTTRS,2002-09-23 08:59:00,2002-11-18 12:59:00,NOT COLLATERAL
+136845,4753.53,BBG,OKW,A,4955.37,162,1,KLS,FOLDERF,LTTRS,2002-09-23 09:59:00,2002-11-18 14:59:00,NOT COLLATERAL
+136856,4753.97,BBH,ASS,A,4958.48,156,2,SDK,FOLDERG,LTTRZ,2002-09-23 10:59:00,2002-11-18 16:59:00,NOT COLLATERAL
+136867,4754.41,CCA,CKA,A,4961.59,150,3,MNV,FOLDERH,LTTRA,2002-09-23 11:59:00,2002-11-18 18:59:00,NOT COLLATERAL
+136878,4754.85,CCB,SWQ,A,4964.7,144,4,OKW,FOLDERI,LTTRB,2002-09-23 12:59:00,2002-11-18 20:59:00,COLLATERAL
+136889,4755.29,CCD,KUH,A,4967.81,138,5,ASS,FOLDERJ,LTTRB,2002-09-23 13:59:00,2002-11-18 22:59:00,COLLATERAL
+136900,4755.73,CCE,XCV,A,4970.92,132,6,CKA,FOLDERK,LTTRA,2002-09-23 14:59:00,2002-11-19 00:59:00,COLLATERAL
+136911,4756.17,CCF,ZAQ,A,4974.03,126,7,SWQ,FOLDERL,LTTRA,2002-09-23 15:59:00,2002-11-19 02:59:00,NOT COLLATERAL
+136922,4756.61,CCG,MKO,A,4977.14,120,8,KUH,FOLDERM,LTTRS,2002-09-23 16:59:00,2002-11-19 04:59:00,NOT COLLATERAL
+136933,4757.05,CCH,VFR,A,4980.25,114,9,XCV,FOLDERN,LTTRZ,2002-09-23 17:59:00,2002-11-19 06:59:00,NOT COLLATERAL
+136944,4757.49,CCI,YUJ,A,4983.36,108,10,ZAQ,FOLDERO,LTTRS,2002-09-23 18:59:00,2002-11-19 08:59:00,NOT COLLATERAL
+136955,4757.93,CCJ,MED,A,4986.47,102,11,MKO,FOLDERP,LTTRS,2002-09-23 19:59:00,2002-11-19 10:59:00,NOT COLLATERAL
+136966,4758.37,DDD,SWE,A,4989.58,96,12,VFR,FOLDERQ,LTTRS,2002-09-23 20:59:00,2002-11-19 12:59:00,NOT COLLATERAL
+136977,4758.81,DDA,CVF,A,4992.69,90,13,YUJ,FOLDERR,LTTRS,2002-09-23 21:59:00,2002-11-19 14:59:00,NOT COLLATERAL
+136988,4759.25,DAA,DSFG,A,4995.8,91,14,AAA,FOLDERS,LTTRS,2002-09-23 22:59:00,2002-11-19 16:59:00,NOT COLLATERAL
+136999,4759.69,DBB,ASDRE,A,4998.91,91,15,BBB,FOLDERT,LTTRS,2002-09-23 23:59:00,2002-11-19 18:59:00,NOT COLLATERAL
+137010,4760.13,DCC,HJKSS,A,5002.02,91,16,CCC,FOLDERU,LTTRS,2002-09-24 00:59:00,2002-11-19 20:59:00,COLLATERAL
+137021,4760.57,DEE,KHAA,A,5005.13,91,17,DDD,FOLDERV,LTTRS,2002-09-24 01:59:00,2002-11-19 22:59:00,COLLATERAL
+137032,4761.01,DFF,KSLD,A,5008.24,91,18,AAB,FOLDERW,LTTRS,2002-09-24 02:59:00,2002-11-20 00:59:00,COLLATERAL
+137043,4761.45,DGG,EKID,A,5011.35,91,19,AAC,FOLDERX,LTTRS,2002-09-24 03:59:00,2002-11-20 02:59:00,NOT COLLATERAL
+137054,4761.89,DHH,VNCD,A,5014.46,91,20,AAD,FOLDERY,LTTRS,2002-09-24 04:59:00,2002-11-20 04:59:00,NOT COLLATERAL
+137065,4762.33,AAA,DKD,A,5017.57,91,21,AAE,FOLDERZ,LTTRS,2002-09-24 05:59:00,2002-11-20 06:59:00,NOT COLLATERAL
+137076,4762.77,BBB,FKF,A,5020.68,91,22,AAF,FOLDERZ,LTTRS,2002-09-24 06:59:00,2002-11-20 08:59:00,NOT COLLATERAL
+137087,4763.21,CCC,LES,A,5023.79,91,23,BBA,FOLDERZ,LTTRS,2002-09-24 07:59:00,2002-11-20 10:59:00,NOT COLLATERAL
+137098,4763.65,DDD,KLD,A,5026.9,92,24,BBC,FOLDERZ,LTTRZ,2002-09-24 08:59:00,2002-11-20 12:59:00,NOT COLLATERAL
+137109,4764.09,AAB,SKL,A,5030.01,93,25,BBE,FOLDERZ,LTTRA,2002-09-24 09:59:00,2002-11-20 14:59:00,NOT COLLATERAL
+137120,4764.53,AAC,SIW,A,5033.12,94,26,BBF,FOLDERZ,LTTRB,2002-09-24 10:59:00,2002-11-20 16:59:00,NOT COLLATERAL
+137131,4764.97,AAD,CKA,A,5036.23,95,27,BBG,FOLDERZ,LTTRB,2002-09-24 11:59:00,2002-11-20 18:59:00,NOT COLLATERAL
+137142,4765.41,AAE,LDE,A,5039.34,96,28,BBH,FOLDERZ,LTTRA,2002-09-24 12:59:00,2002-11-20 20:59:00,COLLATERAL
+137153,4765.85,AAF,KFF,A,5042.45,97,29,CCA,FOLDERZ,LTTRA,2002-09-24 13:59:00,2002-11-20 22:59:00,COLLATERAL
+137164,4766.29,BBA,EFH,A,5045.56,98,30,CCB,FOLDERZ,LTTRS,2002-09-24 14:59:00,2002-11-21 00:59:00,COLLATERAL
+137175,4766.73,BBC,NGC,A,5048.67,99,31,CCD,FOLDERZ,LTTRZ,2002-09-24 15:59:00,2002-11-21 02:59:00,NOT COLLATERAL
+137186,4767.17,BBE,DER,A,5051.78,100,32,CCE,FOLDERZ,LTTRS,2002-09-24 16:59:00,2002-11-21 04:59:00,NOT COLLATERAL
+137197,4767.61,BBF,FVG,A,5054.89,101,33,CCF,FOLDERZ,LTTRS,2002-09-24 17:59:00,2002-11-21 06:59:00,NOT COLLATERAL
+137208,4768.05,BBG,KWE,A,5058,102,34,CCG,FOLDERZ,LTTRS,2002-09-24 18:59:00,2002-11-21 08:59:00,NOT COLLATERAL
+137219,4768.49,BBH,WER,A,5061.11,103,35,CCH,FOLDERX,LTTRS,2002-09-24 19:59:00,2002-11-21 10:59:00,NOT COLLATERAL
+137230,4768.93,CCA,GFH,A,5064.22,104,36,CCI,FOLDERX,LTTRS,2002-09-24 20:59:00,2002-11-21 12:59:00,NOT COLLATERAL
+137241,4769.37,CCB,BGF,A,5067.33,105,37,CCJ,FOLDERX,LTTRS,2002-09-24 21:59:00,2002-11-21 14:59:00,NOT COLLATERAL
+137252,4769.81,CCD,XCS,A,5070.44,106,38,DDD,FOLDERX,LTTRS,2002-09-24 22:59:00,2002-11-21 16:59:00,NOT COLLATERAL
+137263,4770.25,CCE,JHK,A,5073.55,107,39,DDA,FOLDERX,LTTRS,2002-09-24 23:59:00,2002-11-21 18:59:00,NOT COLLATERAL
+137274,4770.69,CCF,SFD,A,5076.66,108,40,DAA,FOLDERX,LTTRS,2002-09-25 00:59:00,2002-11-21 20:59:00,COLLATERAL
+137285,4771.13,CCG,WRE,A,5079.77,109,41,FKF,FOLDERX,LTTRS,2002-09-25 01:59:00,2002-11-21 22:59:00,COLLATERAL
+137296,4771.57,CCH,HGV,A,5082.88,110,42,LES,FOLDERX,LTTRS,2002-09-25 02:59:00,2002-11-22 00:59:00,COLLATERAL
+137307,4772.01,CCI,KLS,A,5085.99,111,43,KLD,FOLDERX,LTTRS,2002-09-25 03:59:00,2002-11-22 02:59:00,NOT COLLATERAL
+137318,4772.45,CCJ,SDK,A,5089.1,112,44,SKL,FOLDERX,LTTRS,2002-09-25 04:59:00,2002-11-22 04:59:00,NOT COLLATERAL
+137329,4772.89,DDD,MNV,A,5092.21,113,45,SIW,FOLDERX,LTTRS,2002-09-25 05:59:00,2002-11-22 06:59:00,NOT COLLATERAL
+137340,4773.33,DDA,OKW,A,5095.32,114,46,CKA,FOLDERX,LTTRZ,2002-09-25 06:59:00,2002-11-22 08:59:00,NOT COLLATERAL
+137351,4773.77,DAA,ASS,A,5098.43,115,47,LDE,FOLDERR,LTTRA,2002-09-25 07:59:00,2002-11-22 10:59:00,NOT COLLATERAL
+137362,4774.21,DBB,CKA,A,5101.54,116,48,KFF,FOLDERS,LTTRB,2002-09-25 08:59:00,2002-11-22 12:59:00,NOT COLLATERAL
+137373,4774.65,DCC,SWQ,A,5104.65,117,49,EFH,FOLDERX,LTTRB,2002-09-25 09:59:00,2002-11-22 14:59:00,NOT COLLATERAL
+137384,4775.09,DEE,KUH,A,5107.76,118,48,NGC,FOLDERR,LTTRA,2002-09-25 10:59:00,2002-11-22 16:59:00,NOT COLLATERAL
+137395,4775.53,DFF,XCV,A,5110.87,119,47,DER,FOLDERS,LTTRA,2002-09-25 11:59:00,2002-11-22 18:59:00,NOT COLLATERAL
+137406,4775.97,DGG,ZAQ,A,5113.98,120,46,FVG,FOLDERX,LTTRS,2002-09-25 12:59:00,2002-11-22 20:59:00,COLLATERAL
+137417,4776.41,DHH,MKO,A,5117.09,121,45,KWE,FOLDERR,LTTRZ,2002-09-25 13:59:00,2002-11-22 22:59:00,COLLATERAL
+137428,4776.85,AAA,VFR,A,5120.2,122,44,WER,FOLDERS,LTTRS,2002-09-25 14:59:00,2002-11-23 00:59:00,COLLATERAL
+137439,4777.29,BBB,YUJ,A,5123.31,123,43,GFH,FOLDERX,LTTRS,2002-09-25 15:59:00,2002-11-23 02:59:00,NOT COLLATERAL
+137450,4777.73,CCC,MED,A,5126.42,124,42,BGF,FOLDERR,LTTRS,2002-09-25 16:59:00,2002-11-23 04:59:00,NOT COLLATERAL
+137461,4778.17,DDD,SWE,A,5129.53,125,41,XCS,FOLDERS,LTTRS,2002-09-25 17:59:00,2002-11-23 06:59:00,NOT COLLATERAL
+137472,4778.61,AAB,CVF,A,5132.64,126,40,JHK,FOLDERX,LTTRS,2002-09-25 18:59:00,2002-11-23 08:59:00,NOT COLLATERAL
+137483,4779.05,AAC,DSFG,A,5135.75,127,39,SFD,FOLDERR,LTTRS,2002-09-25 19:59:00,2002-11-23 10:59:00,NOT COLLATERAL
+137494,4779.49,AAD,ASDRE,A,5138.86,128,38,WRE,FOLDERS,LTTRS,2002-09-25 20:59:00,2002-11-23 12:59:00,NOT COLLATERAL
+137505,4779.93,AAE,HJKSS,A,5141.97,129,37,HGV,FOLDERX,LTTRS,2002-09-25 21:59:00,2002-11-23 14:59:00,NOT COLLATERAL
+137516,4780.37,AAF,KHAA,A,5145.08,130,36,KLS,FOLDERD,LTTRS,2002-09-25 22:59:00,2002-11-23 16:59:00,NOT COLLATERAL
+137527,4780.81,BBA,KSLD,A,5148.19,131,35,SDK,FOLDERE,LTTRS,2002-09-25 23:59:00,2002-11-23 18:59:00,NOT COLLATERAL
+137538,4781.25,BBC,EKID,A,5151.3,132,34,MNV,FOLDERF,LTTRS,2002-09-26 00:59:00,2002-11-23 20:59:00,COLLATERAL
+137549,4781.69,BBE,VNCD,A,5154.41,133,33,OKW,FOLDERG,LTTRS,2002-09-26 01:59:00,2002-11-23 22:59:00,COLLATERAL
+137560,4782.13,BBF,DKD,A,5157.52,134,32,ASS,FOLDERH,LTTRS,2002-09-26 02:59:00,2002-11-24 00:59:00,COLLATERAL
+137571,4782.57,BBG,FKF,A,5160.63,135,31,CKA,FOLDERI,LTTRS,2002-09-26 03:59:00,2002-11-24 02:59:00,NOT COLLATERAL
+137582,4783.01,BBH,LES,A,5163.74,136,30,SWQ,FOLDERJ,LTTRZ,2002-09-26 04:59:00,2002-11-24 04:59:00,NOT COLLATERAL
+137593,4783.45,CCA,KLD,A,5166.85,137,29,KUH,FOLDERK,LTTRA,2002-09-26 05:58:00,2002-11-24 06:59:00,NOT COLLATERAL
+137604,4783.89,CCB,SKL,A,5169.96,138,28,XCV,FOLDERL,LTTRB,2002-09-26 06:58:00,2002-11-24 08:59:00,NOT COLLATERAL
+137615,4784.33,CCD,SIW,A,5173.07,139,27,ZAQ,FOLDERM,LTTRB,2002-09-26 07:58:00,2002-11-24 10:59:00,NOT COLLATERAL
+137626,4784.77,CCE,CKA,A,5176.18,140,26,MKO,FOLDERN,LTTRA,2002-09-26 08:58:00,2002-11-24 12:59:00,NOT COLLATERAL
+137637,4785.21,CCF,LDE,A,5179.29,141,25,VFR,FOLDERN,LTTRA,2002-09-26 09:58:00,2002-11-24 14:59:00,NOT COLLATERAL
+137648,4785.65,CCG,KFF,A,5182.4,142,24,YUJ,FOLDERN,LTTRS,2002-09-26 10:58:00,2002-11-24 16:59:00,NOT COLLATERAL
+137659,4786.09,CCH,EFH,A,5185.51,143,23,AAA,FOLDERN,LTTRZ,2002-09-26 11:58:00,2002-11-24 18:59:00,NOT COLLATERAL
+137670,4786.53,CCI,NGC,A,5188.62,144,22,BBB,FOLDERL,LTTRS,2002-09-26 12:58:00,2002-11-24 20:59:00,COLLATERAL
+137681,4786.97,CCJ,DER,A,5191.73,145,21,CCC,FOLDERL,LTTRS,2002-09-26 13:58:00,2002-11-24 22:59:00,COLLATERAL
+137692,4787.41,DDD,FVG,A,5194.84,146,20,DDD,FOLDERL,LTTRS,2002-09-26 14:58:00,2002-11-25 00:59:00,COLLATERAL
+137703,4787.85,DDA,KWE,A,5197.95,147,19,AAB,FOLDERL,LTTRS,2002-09-26 15:58:00,2002-11-25 02:59:00,NULL
+137714,4788.29,DAA,WER,A,5201.06,148,18,AAC,FOLDERL,LTTRS,2002-09-26 16:58:00,2002-11-25 04:59:00,NULL
+137725,4788.73,DBB,GFH,A,5204.17,149,17,AAD,FOLDERA,LTTRS,2002-09-26 17:58:00,2002-11-25 06:59:00,NULL
+137736,4789.17,DCC,BGF,A,5207.28,150,16,AAE,FOLDERB,LTTRS,2002-09-26 18:58:00,2002-11-25 08:59:00,NULL
+137747,4789.61,DEE,XCS,A,5210.39,151,15,AAF,FOLDERC,LTTRS,2002-09-26 19:58:00,2002-11-25 10:59:00,NULL
+137758,4790.05,DFF,JHK,A,5213.5,152,14,BBA,FOLDERD,LTTRS,2002-09-26 20:58:00,2002-11-25 12:59:00,NULL
+137769,4790.49,DGG,SFD,A,5216.61,153,13,BBC,FOLDERE,LTTRS,2002-09-26 21:58:00,2002-11-25 14:59:00,NULL
+137780,4790.93,DHH,WRE,A,5219.72,154,12,BBE,FOLDERF,LTTRS,2002-09-26 22:58:00,2002-11-25 16:59:00,NULL
+137791,4791.37,AAA,HGV,A,5222.83,155,11,BBF,FOLDERG,LTTRS,2002-09-26 23:58:00,2002-11-25 18:59:00,NULL
+137802,4791.81,BBB,KLS,A,5225.94,156,10,BBG,FOLDERH,LTTRS,2002-09-27 00:58:00,2002-11-25 20:59:00,COLLATERAL
+137813,4792.25,CCC,SDK,A,5229.05,157,9,BBH,FOLDERI,LTTRS,2002-09-27 01:58:00,2002-11-25 22:59:00,COLLATERAL
+137824,4792.69,DDD,MNV,A,5232.16,158,8,CCA,FOLDERJ,LTTRZ,2002-09-27 02:58:00,2002-11-26 00:59:00,COLLATERAL
+137835,4793.13,AAB,OKW,A,5235.27,159,7,CCB,FOLDERK,LTTRA,2002-09-27 03:58:00,2002-11-26 02:59:00,NULL
+137846,4793.57,AAC,ASS,A,5238.38,160,6,CCD,FOLDERL,LTTRB,2002-09-27 04:58:00,2002-11-26 04:59:00,NULL
+137857,4794.01,AAD,CKA,A,5241.49,161,5,CCE,FOLDERM,LTTRB,2002-09-27 05:58:00,2002-11-26 06:59:00,NULL
+137868,4794.45,AAE,SWQ,A,5244.6,162,4,CCF,FOLDERN,LTTRA,2002-09-27 06:58:00,2002-11-26 08:59:00,NULL
+137879,4794.89,AAF,KUH,A,5247.71,163,3,CCG,FOLDERO,LTTRA,2002-09-27 07:58:00,2002-11-26 10:59:00,NULL
+137890,4795.33,BBA,XCV,A,5250.82,164,1,CCH,FOLDERP,LTTRS,2002-09-27 08:58:00,2002-11-26 12:59:00,NULL
+137901,4795.77,BBC,ZAQ,A,5253.93,165,2,CCI,FOLDERQ,LTTRZ,2002-09-27 09:58:00,2002-11-26 14:59:00,NULL
+137912,4796.21,BBE,MKO,A,5257.04,166,3,CCJ,FOLDERR,LTTRS,2002-09-27 10:58:00,2002-11-26 16:59:00,NULL
+137923,4796.65,BBF,VFR,A,5260.15,167,4,DDD,FOLDERS,LTTRS,2002-09-27 11:58:00,2002-11-26 18:59:00,NULL
+137934,4797.09,BBG,YUJ,A,5263.26,168,5,DDA,FOLDERT,LTTRS,2002-09-27 12:58:00,2002-11-26 20:59:00,COLLATERAL
+137945,4797.53,BBH,MED,A,5266.37,169,6,DAA,FOLDERU,LTTRS,2002-09-27 13:58:00,2002-11-26 22:59:00,COLLATERAL
+137956,4797.97,CCA,SWE,A,5269.48,170,7,FKF,FOLDERV,LTTRS,2002-09-27 14:58:00,2002-11-27 00:59:00,COLLATERAL
+137967,4798.41,CCB,CVF,A,5272.59,171,8,LES,FOLDERW,LTTRS,2002-09-27 15:58:00,2002-11-27 02:59:00,NULL
+137978,4798.85,CCD,DSFG,A,5275.7,172,9,KLD,FOLDERX,LTTRS,2002-09-27 16:58:00,2002-11-27 04:59:00,NULL
+137989,4799.29,CCE,ASDRE,A,5278.81,173,10,SKL,FOLDERY,LTTRS,2002-09-27 17:58:00,2002-11-27 06:59:00,NULL
+138000,4799.73,CCF,HJKSS,A,5281.92,174,11,SIW,FOLDERZ,LTTRS,2002-09-27 18:58:00,2002-11-27 08:59:00,NULL
+138011,4800.17,CCG,KHAA,A,5285.03,175,12,CKA,FOLDERA,LTTRS,2002-09-27 19:58:00,2002-11-27 10:59:00,NULL
+138022,4800.61,CCH,KSLD,A,5288.14,176,13,LDE,FOLDERB,LTTRS,2002-09-27 20:58:00,2002-11-27 12:59:00,NULL
+138033,4801.05,CCI,EKID,A,5291.25,177,14,KFF,FOLDERC,LTTRS,2002-09-27 21:58:00,2002-11-27 14:59:00,NULL
+138044,4801.49,CCJ,VNCD,A,5294.36,178,15,EFH,FOLDERD,LTTRS,2002-09-27 22:58:00,2002-11-27 16:59:00,NULL
+138055,4801.93,DDD,DKD,A,5297.47,179,16,NGC,FOLDERE,LTTRS,2002-09-27 23:58:00,2002-11-27 18:59:00,NULL
+138066,4802.37,DDA,FKF,A,5300.58,180,17,DER,FOLDERF,LTTRZ,2002-09-28 00:58:00,2002-11-27 20:59:00,COLLATERAL
+138077,4802.81,DAA,LES,A,5303.69,181,18,FVG,FOLDERG,LTTRA,2002-09-28 01:58:00,2002-11-27 22:59:00,COLLATERAL
+138088,4803.25,DBB,KLD,A,5306.8,182,19,KWE,FOLDERH,LTTRB,2002-09-28 02:58:00,2002-11-28 00:59:00,COLLATERAL
+138099,4803.69,DCC,SKL,A,5309.91,183,20,WER,FOLDERI,LTTRB,2002-09-28 03:58:00,2002-11-28 02:59:00,NULL
+138110,4804.13,DEE,SIW,A,5313.02,184,21,GFH,FOLDERJ,LTTRA,2002-09-28 04:58:00,2002-11-28 04:59:00,NULL
+138121,4804.57,DFF,CKA,A,5316.13,185,22,BGF,FOLDERK,LTTRA,2002-09-28 05:58:00,2002-11-28 06:59:00,NULL
+138132,4805.01,DGG,LDE,A,5319.24,186,23,XCS,FOLDERL,LTTRS,2002-09-28 06:58:00,2002-11-28 08:59:00,NULL
+138143,4805.45,DHH,KFF,A,5322.35,187,24,JHK,FOLDERM,LTTRZ,2002-09-28 07:58:00,2002-11-28 10:59:00,NULL
+138154,4805.89,AAA,EFH,A,5325.46,188,25,SFD,FOLDERN,LTTRS,2002-09-28 08:58:00,2002-11-28 12:59:00,NULL
+138165,4806.33,BBB,NGC,A,5328.57,189,26,WRE,FOLDERO,LTTRS,2002-09-28 09:58:00,2002-11-28 14:59:00,NULL
+138176,4806.77,CCC,DER,A,5331.68,190,27,HGV,FOLDERP,LTTRS,2002-09-28 10:58:00,2002-11-28 16:59:00,NULL
+138187,4807.21,DDD,FVG,A,5334.79,191,28,KLS,FOLDERQ,LTTRS,2002-09-28 11:58:00,2002-11-28 18:59:00,NULL
+138198,4807.65,AAB,KWE,A,5337.9,192,29,SDK,FOLDERR,LTTRS,2002-09-28 12:58:00,2002-11-28 20:59:00,COLLATERAL
+138209,4808.09,AAC,WER,A,5341.01,193,30,MNV,FOLDERS,LTTRS,2002-09-28 13:58:00,2002-11-28 22:59:00,COLLATERAL
+138220,4808.53,AAD,GFH,A,5344.12,194,31,OKW,FOLDERT,LTTRS,2002-09-28 14:58:00,2002-11-29 00:59:00,COLLATERAL
+138231,4808.97,AAE,BGF,A,5347.23,195,32,ASS,FOLDERU,LTTRS,2002-09-28 15:58:00,2002-11-29 02:59:00,NULL
+138242,4809.41,AAF,XCS,A,5350.34,196,33,CKA,FOLDERV,LTTRS,2002-09-28 16:58:00,2002-11-29 04:59:00,NULL
+138253,4809.85,BBA,JHK,A,5353.45,197,34,SWQ,FOLDERW,LTTRS,2002-09-28 17:58:00,2002-11-29 06:59:00,NULL
+138264,4810.29,BBC,SFD,A,5356.56,198,35,KUH,FOLDERX,LTTRS,2002-09-28 18:58:00,2002-11-29 08:59:00,NULL
+138275,4810.73,BBE,WRE,A,5359.67,199,36,XCV,FOLDERY,LTTRS,2002-09-28 19:58:00,2002-11-29 10:59:00,NULL
+138286,4811.17,BBF,HGV,A,5362.78,200,37,ZAQ,FOLDERZ,LTTRS,2002-09-28 20:58:00,2002-11-29 12:59:00,NULL
+138297,4811.61,BBG,KLS,A,5365.89,201,38,MKO,FOLDERZ,LTTRS,2002-09-28 21:58:00,2002-11-29 14:59:00,NULL
+138308,4812.05,BBH,SDK,A,5369,202,39,VFR,FOLDERZ,LTTRZ,2002-09-28 22:58:00,2002-11-29 16:59:00,NULL
+138319,4812.49,CCA,MNV,A,5372.11,203,40,YUJ,FOLDERZ,LTTRA,2002-09-28 23:58:00,2002-11-29 18:59:00,NULL
+138330,4812.93,CCB,OKW,A,5375.22,204,41,AAA,FOLDERZ,LTTRB,2002-09-29 00:58:00,2002-11-29 20:59:00,NULL
+138341,4813.37,CCD,ASS,A,5378.33,205,42,BBB,FOLDERZ,LTTRB,2002-09-29 01:58:00,2002-11-29 22:59:00,COLLATERAL
+138352,4813.81,CCE,CKA,A,5381.44,206,43,CCC,FOLDERZ,LTTRA,2002-09-29 02:58:00,2002-11-30 00:59:00,COLLATERAL
+138363,4814.25,CCF,SWQ,A,5384.55,207,44,DDD,FOLDERZ,LTTRA,2002-09-29 03:58:00,2002-11-30 02:59:00,NOT COLLATERAL
+138374,4814.69,CCG,KUH,A,5387.66,208,45,AAB,FOLDERZ,LTTRS,2002-09-29 04:58:00,2002-11-30 04:59:00,NOT COLLATERAL
+138385,4815.13,CCH,XCV,A,5390.77,209,46,AAC,FOLDERZ,LTTRZ,2002-09-29 05:58:00,2002-11-30 06:59:00,NOT COLLATERAL
+138396,4815.57,CCI,ZAQ,A,5393.88,210,47,AAD,FOLDERZ,LTTRS,2002-09-29 06:58:00,2002-11-30 08:59:00,NOT COLLATERAL
+138407,4816.01,CCJ,MKO,A,5396.99,211,48,AAE,FOLDERZ,LTTRS,2002-09-29 07:58:00,2002-11-30 10:59:00,NOT COLLATERAL
+138418,4816.45,DDD,VFR,A,5400.1,212,49,AAF,FOLDERZ,LTTRS,2002-09-29 08:58:00,2002-11-30 12:59:00,NOT COLLATERAL
+138429,4816.89,DDA,YUJ,A,5403.21,213,48,BBA,FOLDERZ,LTTRS,2002-09-29 09:58:00,2002-11-30 14:59:00,NOT COLLATERAL
+138440,4817.33,DAA,MED,A,5406.32,214,47,BBC,FOLDERX,LTTRS,2002-09-29 10:58:00,2002-11-30 16:59:00,NOT COLLATERAL
+138451,4817.77,DBB,SWE,A,5409.43,215,46,BBE,FOLDERX,LTTRS,2002-09-29 11:58:00,2002-11-30 18:59:00,NOT COLLATERAL
+138462,4818.21,DCC,CVF,A,5412.54,216,45,BBF,FOLDERX,LTTRS,2002-09-29 12:58:00,2002-11-30 20:59:00,COLLATERAL
+138473,4818.65,DEE,DSFG,A,5415.65,217,44,BBG,FOLDERX,LTTRS,2002-09-29 13:58:00,2002-11-30 22:59:00,COLLATERAL
+138484,4819.09,DFF,ASDRE,A,5418.76,218,43,BBH,FOLDERX,LTTRS,2002-09-29 14:58:00,2002-12-01 00:59:00,COLLATERAL
+138495,4819.53,DGG,HJKSS,A,5421.87,219,42,CCA,FOLDERX,LTTRS,2002-09-29 15:58:00,2002-12-01 02:59:00,NOT COLLATERAL
+138506,4819.97,DHH,KHAA,A,5424.98,220,41,CCB,FOLDERX,LTTRS,2002-09-29 16:58:00,2002-12-01 04:59:00,NOT COLLATERAL
+138517,4820.41,AAA,KSLD,A,5428.09,221,40,CCD,FOLDERX,LTTRS,2002-09-29 17:58:00,2002-12-01 06:59:00,NOT COLLATERAL
+138528,4820.85,BBB,EKID,A,5431.2,222,39,CCE,FOLDERX,LTTRS,2002-09-29 18:58:00,2002-12-01 08:59:00,NOT COLLATERAL
+138539,4821.29,CCC,VNCD,A,5434.31,223,38,CCF,FOLDERX,LTTRS,2002-09-29 19:58:00,2002-12-01 10:59:00,NOT COLLATERAL
+138550,4821.73,DDD,DKD,A,5437.42,224,37,CCG,FOLDERX,LTTRZ,2002-09-29 20:58:00,2002-12-01 12:59:00,NOT COLLATERAL
+138561,4822.17,AAB,FKF,A,5440.53,225,36,CCH,FOLDERX,LTTRA,2002-09-29 21:58:00,2002-12-01 14:59:00,NOT COLLATERAL
+138572,4822.61,AAC,LES,A,5443.64,226,35,CCI,FOLDERR,LTTRB,2002-09-29 22:58:00,2002-12-01 16:59:00,NOT COLLATERAL
+138583,4823.05,AAD,KLD,A,5446.75,227,34,CCJ,FOLDERS,LTTRB,2002-09-29 23:58:00,2002-12-01 18:59:00,NOT COLLATERAL
+138594,4823.49,AAE,SKL,A,5449.86,228,33,DDD,FOLDERX,LTTRA,2002-09-30 00:58:00,2002-12-01 20:59:00,COLLATERAL
+138605,4823.93,AAF,SIW,A,5452.97,229,32,DDA,FOLDERR,LTTRA,2002-09-30 01:58:00,2002-12-01 22:59:00,COLLATERAL
+138616,4824.37,BBA,CKA,A,5456.08,230,31,DAA,FOLDERS,LTTRS,2002-09-30 02:58:00,2002-12-02 00:59:00,COLLATERAL
+138627,4824.81,BBC,LDE,A,5459.19,231,30,FKF,FOLDERX,LTTRZ,2002-09-30 03:58:00,2002-12-02 02:59:00,NOT COLLATERAL
+138638,4825.25,BBE,KFF,A,5462.3,232,29,LES,FOLDERR,LTTRS,2002-09-30 04:58:00,2002-12-02 04:59:00,NOT COLLATERAL
+138649,4825.69,BBF,EFH,A,5465.41,233,28,KLD,FOLDERS,LTTRS,2002-09-30 05:58:00,2002-12-02 06:59:00,NOT COLLATERAL
+138660,4826.13,BBG,NGC,A,5468.52,234,27,SKL,FOLDERX,LTTRS,2002-09-30 06:58:00,2002-12-02 08:59:00,NOT COLLATERAL
+138671,4826.57,BBH,DER,A,5471.63,235,26,SIW,FOLDERR,LTTRS,2002-09-30 07:58:00,2002-12-02 10:59:00,NOT COLLATERAL
+138682,4827.01,CCA,FVG,A,5474.74,236,25,CKA,FOLDERS,LTTRS,2002-09-30 08:58:00,2002-12-02 12:59:00,NOT COLLATERAL
+138693,4827.45,CCB,KWE,A,5477.85,237,24,LDE,FOLDERX,LTTRS,2002-09-30 09:58:00,2002-12-02 14:59:00,NOT COLLATERAL
+138704,4827.89,CCD,WER,A,5480.96,238,23,KFF,FOLDERR,LTTRS,2002-09-30 10:58:00,2002-12-02 16:59:00,NOT COLLATERAL
+138715,4828.33,CCE,GFH,A,5484.07,239,22,EFH,FOLDERS,LTTRS,2002-09-30 11:58:00,2002-12-02 18:59:00,NOT COLLATERAL
+138726,4828.77,CCF,BGF,A,5487.18,240,21,NGC,FOLDERX,LTTRS,2002-09-30 12:58:00,2002-12-02 20:59:00,COLLATERAL
+138737,4829.21,CCG,XCS,A,5490.29,241,20,DER,FOLDERD,LTTRS,2002-09-30 13:58:00,2002-12-02 22:59:00,COLLATERAL
+138748,4829.65,CCH,JHK,A,5493.4,242,19,FVG,FOLDERE,LTTRS,2002-09-30 14:58:00,2002-12-03 00:59:00,COLLATERAL
+138759,4830.09,CCI,SFD,A,5496.51,243,18,KWE,FOLDERF,LTTRS,2002-09-30 15:58:00,2002-12-03 02:59:00,NOT COLLATERAL
+138770,4830.53,CCJ,WRE,A,5499.62,244,17,WER,FOLDERG,LTTRS,2002-09-30 16:58:00,2002-12-03 04:59:00,NOT COLLATERAL
+138781,4830.97,DDD,HGV,A,5502.73,245,16,GFH,FOLDERH,LTTRS,2002-09-30 17:58:00,2002-12-03 06:59:00,NOT COLLATERAL
+138792,4831.41,DDA,KLS,A,5505.84,246,15,BGF,FOLDERI,LTTRZ,2002-09-30 18:58:00,2002-12-03 08:59:00,NOT COLLATERAL
+138803,4831.85,DAA,SDK,A,5508.95,247,14,XCS,FOLDERJ,LTTRA,2002-09-30 19:58:00,2002-12-03 10:59:00,NOT COLLATERAL
+138814,4832.29,DBB,MNV,A,5512.06,248,13,JHK,FOLDERK,LTTRB,2002-09-30 20:58:00,2002-12-03 12:59:00,NOT COLLATERAL
+138825,4832.73,DCC,OKW,A,5515.17,249,12,SFD,FOLDERL,LTTRB,2002-09-30 21:58:00,2002-12-03 14:59:00,NOT COLLATERAL
+138836,4833.17,DEE,ASS,A,5518.28,250,11,WRE,FOLDERM,LTTRA,2002-09-30 22:58:00,2002-12-03 16:59:00,NOT COLLATERAL
+138847,4833.61,DFF,CKA,A,5521.39,251,10,HGV,FOLDERN,LTTRA,2002-09-30 23:58:00,2002-12-03 18:59:00,NOT COLLATERAL
+138858,4834.05,DGG,SWQ,A,5524.5,252,9,KLS,FOLDERN,LTTRS,2002-10-01 00:58:00,2002-12-03 20:59:00,COLLATERAL
+138869,4834.49,DHH,KUH,A,5527.61,253,8,SDK,FOLDERN,LTTRZ,2002-10-01 01:58:00,2002-12-03 22:59:00,COLLATERAL
+138880,4834.93,AAA,XCV,A,5530.72,254,7,MNV,FOLDERN,LTTRS,2002-10-01 02:58:00,2002-12-04 00:59:00,COLLATERAL
+138891,4835.37,BBB,ZAQ,A,5533.83,255,6,OKW,FOLDERL,LTTRS,2002-10-01 03:58:00,2002-12-04 02:59:00,NOT COLLATERAL
+138902,4835.81,CCC,MKO,A,5536.94,256,5,ASS,FOLDERL,LTTRS,2002-10-01 04:58:00,2002-12-04 04:59:00,NOT COLLATERAL
+138913,4836.25,DDD,VFR,A,5540.05,257,4,CKA,FOLDERL,LTTRS,2002-10-01 05:58:00,2002-12-04 06:59:00,NOT COLLATERAL
+138924,4836.69,AAB,YUJ,A,5543.16,258,3,SWQ,FOLDERL,LTTRS,2002-10-01 06:58:00,2002-12-04 08:59:00,NOT COLLATERAL
+138935,4837.13,AAC,MED,A,5546.27,259,1,KUH,FOLDERL,LTTRS,2002-10-01 07:58:00,2002-12-04 10:59:00,NOT COLLATERAL
+138946,4837.57,AAD,SWE,A,5549.38,260,2,XCV,FOLDERA,LTTRS,2002-10-01 08:58:00,2002-12-04 12:59:00,NOT COLLATERAL
+138957,4838.01,AAE,CVF,A,5552.49,261,3,ZAQ,FOLDERB,LTTRS,2002-10-01 09:58:00,2002-12-04 14:59:00,NOT COLLATERAL
+138968,4838.45,AAF,DSFG,A,5555.6,262,4,MKO,FOLDERC,LTTRS,2002-10-01 10:58:00,2002-12-04 16:59:00,NOT COLLATERAL
+138979,4838.89,BBA,ASDRE,A,5558.71,263,5,VFR,FOLDERD,LTTRS,2002-10-01 11:58:00,2002-12-04 18:59:00,NOT COLLATERAL
+138990,4839.33,BBC,HJKSS,A,5561.82,264,6,YUJ,FOLDERE,LTTRS,2002-10-01 12:58:00,2002-12-04 20:59:00,COLLATERAL
+139001,4839.77,BBE,KHAA,A,5564.93,265,7,AAA,FOLDERF,LTTRS,2002-10-01 13:58:00,2002-12-04 22:59:00,COLLATERAL
+139012,4840.21,BBF,KSLD,A,5568.04,266,8,BBB,FOLDERG,LTTRS,2002-10-01 14:58:00,2002-12-05 00:59:00,COLLATERAL
+139023,4840.65,BBG,EKID,A,5571.15,267,9,CCC,FOLDERH,LTTRS,2002-10-01 15:58:00,2002-12-05 02:59:00,NOT COLLATERAL
+139034,4841.09,BBH,VNCD,A,5574.26,268,10,DDD,FOLDERI,LTTRZ,2002-10-01 16:58:00,2002-12-05 04:59:00,NOT COLLATERAL
+139045,4841.53,CCA,DKD,A,5577.37,269,11,AAB,FOLDERJ,LTTRA,2002-10-01 17:58:00,2002-12-05 06:59:00,NOT COLLATERAL
+139056,4841.97,CCB,FKF,A,5580.48,270,12,AAC,FOLDERK,LTTRB,2002-10-01 18:58:00,2002-12-05 08:59:00,NOT COLLATERAL
+139067,4842.41,CCD,LES,A,5583.59,271,13,AAD,FOLDERL,LTTRB,2002-10-01 19:58:00,2002-12-05 10:59:00,NOT COLLATERAL
+139078,4842.85,CCE,KLD,A,5586.7,272,14,AAE,FOLDERM,LTTRA,2002-10-01 20:58:00,2002-12-05 12:59:00,NOT COLLATERAL
+139089,4843.29,CCF,SKL,A,5589.81,273,15,AAF,FOLDERN,LTTRA,2002-10-01 21:58:00,2002-12-05 14:59:00,NOT COLLATERAL
+139100,4843.73,CCG,SIW,A,5592.92,274,16,BBA,FOLDERO,LTTRS,2002-10-01 22:58:00,2002-12-05 16:59:00,NOT COLLATERAL
+139111,4844.17,CCH,CKA,A,5596.03,275,17,BBC,FOLDERP,LTTRZ,2002-10-01 23:58:00,2002-12-05 18:59:00,NOT COLLATERAL
+139122,4844.61,CCI,LDE,A,5599.14,276,18,BBE,FOLDERQ,LTTRS,2002-10-02 00:58:00,2002-12-05 20:59:00,COLLATERAL
+139133,4845.05,CCJ,KFF,A,5602.25,277,19,BBF,FOLDERR,LTTRS,2002-10-02 01:58:00,2002-12-05 22:59:00,COLLATERAL
+139144,4845.49,DDD,EFH,A,5605.36,278,20,BBG,FOLDERS,LTTRS,2002-10-02 02:58:00,2002-12-06 00:59:00,COLLATERAL
+139155,4845.93,DDA,NGC,A,5608.47,279,21,BBH,FOLDERT,LTTRS,2002-10-02 03:58:00,2002-12-06 02:59:00,NOT COLLATERAL
+139166,4846.37,DAA,DER,A,5611.58,280,22,CCA,FOLDERU,LTTRS,2002-10-02 04:58:00,2002-12-06 04:59:00,NOT COLLATERAL
+139177,4846.81,DBB,FVG,A,5614.69,281,23,CCB,FOLDERV,LTTRS,2002-10-02 05:58:00,2002-12-06 06:59:00,NOT COLLATERAL
+139188,4847.25,DCC,KWE,A,5617.8,282,24,CCD,FOLDERW,LTTRS,2002-10-02 06:58:00,2002-12-06 08:59:00,NOT COLLATERAL
+139199,4847.69,DEE,WER,A,5620.91,283,25,CCE,FOLDERX,LTTRS,2002-10-02 07:58:00,2002-12-06 10:59:00,NOT COLLATERAL
+139210,4848.13,DFF,GFH,A,5624.02,284,26,CCF,FOLDERY,LTTRS,2002-10-02 08:58:00,2002-12-06 12:59:00,NOT COLLATERAL
+139221,4848.57,DGG,BGF,A,5627.13,285,27,CCG,FOLDERZ,LTTRS,2002-10-02 09:58:00,2002-12-06 14:59:00,NOT COLLATERAL
+139232,4849.01,DHH,XCS,A,5630.24,286,28,CCH,FOLDERA,LTTRS,2002-10-02 10:58:00,2002-12-06 16:59:00,NOT COLLATERAL
+139243,4849.45,AAA,JHK,A,5633.35,287,29,CCI,FOLDERB,LTTRS,2002-10-02 11:58:00,2002-12-06 18:59:00,NOT COLLATERAL
+139254,4849.89,BBB,SFD,A,5636.46,288,30,CCJ,FOLDERC,LTTRS,2002-10-02 12:58:00,2002-12-06 20:59:00,COLLATERAL
+139265,4850.33,CCC,WRE,A,5639.57,289,31,DDD,FOLDERD,LTTRS,2002-10-02 13:58:00,2002-12-06 22:59:00,COLLATERAL
+139276,4850.77,DDD,HGV,A,5642.68,290,32,DDA,FOLDERE,LTTRZ,2002-10-02 14:58:00,2002-12-07 00:59:00,COLLATERAL
+139287,4851.21,AAB,KLS,A,5645.79,291,33,DAA,FOLDERF,LTTRA,2002-10-02 15:58:00,2002-12-07 02:59:00,NOT COLLATERAL
+139298,4851.65,AAC,SDK,A,5648.9,292,34,FKF,FOLDERG,LTTRB,2002-10-02 16:58:00,2002-12-07 04:59:00,NOT COLLATERAL
+139309,4852.09,AAD,MNV,A,5652.01,293,35,LES,FOLDERH,LTTRB,2002-10-02 17:58:00,2002-12-07 06:59:00,NOT COLLATERAL
+139320,4852.53,AAE,OKW,A,5655.12,294,36,KLD,FOLDERI,LTTRA,2002-10-02 18:58:00,2002-12-07 08:59:00,NOT COLLATERAL
+139331,4852.97,AAF,ASS,A,5658.23,295,37,SKL,FOLDERJ,LTTRA,2002-10-02 19:58:00,2002-12-07 10:59:00,NOT COLLATERAL
+139342,4853.41,BBA,CKA,A,5661.34,296,38,SIW,FOLDERK,LTTRS,2002-10-02 20:58:00,2002-12-07 12:59:00,NOT COLLATERAL
+139353,4853.85,BBC,SWQ,A,5664.45,297,39,CKA,FOLDERL,LTTRZ,2002-10-02 21:58:00,2002-12-07 14:59:00,NOT COLLATERAL
+139364,4854.29,BBE,KUH,A,5667.56,298,40,LDE,FOLDERM,LTTRS,2002-10-02 22:58:00,2002-12-07 16:59:00,NOT COLLATERAL
+139375,4854.73,BBF,XCV,A,5670.67,299,41,KFF,FOLDERN,LTTRS,2002-10-02 23:58:00,2002-12-07 18:59:00,NOT COLLATERAL
+139386,4855.17,BBG,ZAQ,A,5673.78,300,42,EFH,FOLDERO,LTTRS,2002-10-03 00:58:00,2002-12-07 20:59:00,COLLATERAL
+139397,4855.61,BBH,MKO,A,5676.89,301,43,NGC,FOLDERP,LTTRS,2002-10-03 01:58:00,2002-12-07 22:59:00,COLLATERAL
+139408,4856.05,CCA,VFR,A,5680,302,44,DER,FOLDERQ,LTTRS,2002-10-03 02:58:00,2002-12-08 00:59:00,COLLATERAL
+139419,4856.49,CCB,YUJ,A,5683.11,303,45,FVG,FOLDERR,LTTRS,2002-10-03 03:58:00,2002-12-08 02:59:00,NOT COLLATERAL
+139430,4856.93,CCD,MED,A,5686.22,304,46,KWE,FOLDERS,LTTRS,2002-10-03 04:58:00,2002-12-08 04:59:00,NOT COLLATERAL
+139441,4857.37,CCE,SWE,A,5689.33,305,47,WER,FOLDERT,LTTRS,2002-10-03 05:58:00,2002-12-08 06:59:00,NOT COLLATERAL
+139452,4857.81,CCF,CVF,A,5692.44,306,48,GFH,FOLDERU,LTTRS,2002-10-03 06:58:00,2002-12-08 08:59:00,NOT COLLATERAL
+139463,4858.25,CCG,DSFG,A,5695.55,307,49,BGF,FOLDERV,LTTRS,2002-10-03 07:58:00,2002-12-08 10:59:00,NOT COLLATERAL
+139474,4858.69,CCH,ASDRE,A,5698.66,308,48,XCS,FOLDERW,LTTRS,2002-10-03 08:58:00,2002-12-08 12:59:00,NOT COLLATERAL
+139485,4859.13,CCI,HJKSS,A,5701.77,309,47,JHK,FOLDERX,LTTRS,2002-10-03 09:58:00,2002-12-08 14:59:00,NOT COLLATERAL
+139496,4859.57,CCJ,KHAA,A,5704.88,310,46,SFD,FOLDERY,LTTRS,2002-10-03 10:58:00,2002-12-08 16:59:00,NOT COLLATERAL
+139507,4860.01,DDD,KSLD,A,5707.99,311,45,WRE,FOLDERZ,LTTRS,2002-10-03 11:58:00,2002-12-08 18:59:00,NOT COLLATERAL
+139518,4860.45,DDA,EKID,A,5711.1,312,44,HGV,FOLDERZ,LTTRZ,2002-10-03 12:58:00,2002-12-08 20:59:00,COLLATERAL
+139529,4860.89,DAA,VNCD,A,5714.21,313,43,KLS,FOLDERZ,LTTRA,2002-10-03 13:58:00,2002-12-08 22:59:00,COLLATERAL
+139540,4861.33,DBB,DKD,A,5717.32,314,42,SDK,FOLDERZ,LTTRB,2002-10-03 14:58:00,2002-12-09 00:59:00,COLLATERAL
+139551,4861.77,DCC,FKF,A,5720.43,315,41,MNV,FOLDERZ,LTTRB,2002-10-03 15:58:00,2002-12-09 02:59:00,NOT COLLATERAL
+139562,4862.21,DEE,LES,A,5723.54,316,40,OKW,FOLDERZ,LTTRA,2002-10-03 16:58:00,2002-12-09 04:59:00,NOT COLLATERAL
+139573,4862.65,DFF,KLD,A,5726.65,317,39,ASS,FOLDERZ,LTTRA,2002-10-03 17:58:00,2002-12-09 06:59:00,NOT COLLATERAL
+139584,4863.09,DGG,SKL,A,5729.76,318,38,CKA,FOLDERZ,LTTRS,2002-10-03 18:58:00,2002-12-09 08:59:00,NOT COLLATERAL
+139595,4863.53,DHH,SIW,A,5732.87,319,37,SWQ,FOLDERZ,LTTRZ,2002-10-03 19:58:00,2002-12-09 10:59:00,NOT COLLATERAL
+139606,4863.97,AAA,CKA,A,5735.98,320,36,KUH,FOLDERZ,LTTRS,2002-10-03 20:58:00,2002-12-09 12:59:00,NOT COLLATERAL
+139617,4864.41,BBB,LDE,A,5739.09,321,35,XCV,FOLDERZ,LTTRS,2002-10-03 21:58:00,2002-12-09 14:59:00,NOT COLLATERAL
+139628,4864.85,CCC,KFF,A,5742.2,322,34,ZAQ,FOLDERZ,LTTRS,2002-10-03 22:58:00,2002-12-09 16:59:00,NOT COLLATERAL
+139639,4865.29,DDD,EFH,A,5745.31,323,33,MKO,FOLDERZ,LTTRS,2002-10-03 23:58:00,2002-12-09 18:59:00,NOT COLLATERAL
+139650,4865.73,AAB,NGC,A,5748.42,324,32,VFR,FOLDERZ,LTTRS,2002-10-04 00:58:00,2002-12-09 20:59:00,COLLATERAL
+139661,4866.17,AAC,DER,A,5751.53,325,31,YUJ,FOLDERX,LTTRS,2002-10-04 01:58:00,2002-12-09 22:59:00,COLLATERAL
+139672,4866.61,AAD,FVG,A,5754.64,326,30,AAA,FOLDERX,LTTRS,2002-10-04 02:58:00,2002-12-10 00:59:00,COLLATERAL
+139683,4867.05,AAE,KWE,A,5757.75,327,29,BBB,FOLDERX,LTTRS,2002-10-04 03:58:00,2002-12-10 02:59:00,NOT COLLATERAL
+139694,4867.49,AAF,WER,A,5760.86,328,28,CCC,FOLDERX,LTTRS,2002-10-04 04:58:00,2002-12-10 04:59:00,NOT COLLATERAL
+139705,4867.93,BBA,GFH,A,5763.97,329,27,DDD,FOLDERX,LTTRS,2002-10-04 05:58:00,2002-12-10 06:59:00,NOT COLLATERAL
+139716,4868.37,BBC,BGF,A,5767.08,330,26,AAB,FOLDERX,LTTRS,2002-10-04 06:58:00,2002-12-10 08:59:00,NOT COLLATERAL
+139727,4868.81,BBE,XCS,A,5770.19,331,25,AAC,FOLDERX,LTTRS,2002-10-04 07:58:00,2002-12-10 10:59:00,NOT COLLATERAL
+139738,4869.25,BBF,JHK,A,5773.3,332,24,AAD,FOLDERX,LTTRS,2002-10-04 08:58:00,2002-12-10 12:59:00,NOT COLLATERAL
+139749,4869.69,BBG,SFD,A,5776.41,333,23,AAE,FOLDERX,LTTRS,2002-10-04 09:58:00,2002-12-10 14:59:00,NOT COLLATERAL
+139760,4870.13,BBH,WRE,A,5779.52,334,22,AAF,FOLDERX,LTTRZ,2002-10-04 10:58:00,2002-12-10 16:59:00,NOT COLLATERAL
+139771,4870.57,CCA,HGV,A,5782.63,335,21,BBA,FOLDERX,LTTRA,2002-10-04 11:58:00,2002-12-10 18:59:00,NOT COLLATERAL
+139782,4871.01,CCB,KLS,A,5785.74,336,20,BBC,FOLDERX,LTTRB,2002-10-04 12:58:00,2002-12-10 20:59:00,COLLATERAL
+139793,4871.45,CCD,SDK,A,5788.85,337,19,BBE,FOLDERR,LTTRB,2002-10-04 13:58:00,2002-12-10 22:59:00,COLLATERAL
+139804,4871.89,CCE,MNV,A,5791.96,338,18,BBF,FOLDERS,LTTRA,2002-10-04 14:58:00,2002-12-11 00:59:00,COLLATERAL
+139815,4872.33,CCF,OKW,A,5795.07,339,17,BBG,FOLDERX,LTTRA,2002-10-04 15:58:00,2002-12-11 02:59:00,NOT COLLATERAL
+139826,4872.77,CCG,ASS,A,5798.18,340,16,BBH,FOLDERR,LTTRS,2002-10-04 16:58:00,2002-12-11 04:59:00,NOT COLLATERAL
+139837,4873.21,CCH,CKA,A,5801.29,341,15,CCA,FOLDERS,LTTRZ,2002-10-04 17:57:00,2002-12-11 06:59:00,NOT COLLATERAL
+139848,4873.65,CCI,SWQ,A,5804.4,342,14,CCB,FOLDERX,LTTRS,2002-10-04 18:57:00,2002-12-11 08:59:00,NOT COLLATERAL
+139859,4874.09,CCJ,KUH,A,5807.51,343,13,CCD,FOLDERR,LTTRS,2002-10-04 19:57:00,2002-12-11 10:59:00,NOT COLLATERAL
+139870,4874.53,DDD,XCV,A,5810.62,344,12,CCE,FOLDERS,LTTRS,2002-10-04 20:57:00,2002-12-11 12:59:00,NOT COLLATERAL
+139881,4874.97,DDA,ZAQ,A,5813.73,345,11,CCF,FOLDERX,LTTRS,2002-10-04 21:57:00,2002-12-11 14:59:00,NOT COLLATERAL
+139892,4875.41,DAA,MKO,A,5816.84,346,10,CCG,FOLDERR,LTTRS,2002-10-04 22:57:00,2002-12-11 16:59:00,NOT COLLATERAL
+139903,4875.85,DBB,VFR,A,5819.95,347,9,CCH,FOLDERS,LTTRS,2002-10-04 23:57:00,2002-12-11 18:59:00,NOT COLLATERAL
+139914,4876.29,DCC,YUJ,A,5823.06,348,8,CCI,FOLDERX,LTTRS,2002-10-05 00:57:00,2002-12-11 20:59:00,COLLATERAL
+139925,4876.73,DEE,MED,A,5826.17,349,7,CCJ,FOLDERR,LTTRS,2002-10-05 01:57:00,2002-12-11 22:59:00,COLLATERAL
+139936,4877.17,DFF,SWE,A,5829.28,350,6,DDD,FOLDERS,LTTRS,2002-10-05 02:57:00,2002-12-12 00:59:00,COLLATERAL
+139947,4877.61,DGG,CVF,A,5832.39,351,5,DDA,FOLDERX,LTTRS,2002-10-05 03:57:00,2002-12-12 02:59:00,NOT COLLATERAL
+139958,4878.05,DHH,DSFG,A,5835.5,352,4,DAA,FOLDERD,LTTRS,2002-10-05 04:57:00,2002-12-12 04:59:00,NOT COLLATERAL
+139969,4878.49,AAA,ASDRE,A,5838.61,353,3,FKF,FOLDERE,LTTRS,2002-10-05 05:57:00,2002-12-12 06:59:00,NOT COLLATERAL
+139980,4878.93,BBB,HJKSS,A,5841.72,354,1,LES,FOLDERF,LTTRS,2002-10-05 06:57:00,2002-12-12 08:59:00,NOT COLLATERAL
+139991,4879.37,CCC,KHAA,A,5844.83,355,2,KLD,FOLDERG,LTTRS,2002-10-05 07:57:00,2002-12-12 10:59:00,NOT COLLATERAL
+140002,4879.81,DDD,KSLD,A,5847.94,356,3,SKL,FOLDERH,LTTRZ,2002-10-05 08:57:00,2002-12-12 12:59:00,NOT COLLATERAL
+140013,4880.25,AAB,EKID,A,5851.05,357,4,SIW,FOLDERI,LTTRA,2002-10-05 09:57:00,2002-12-12 14:59:00,NOT COLLATERAL
+140024,4880.69,AAC,VNCD,A,5854.16,358,5,CKA,FOLDERJ,LTTRB,2002-10-05 10:57:00,2002-12-12 16:59:00,NOT COLLATERAL
+140035,4881.13,AAD,DKD,A,5857.27,359,6,LDE,FOLDERK,LTTRB,2002-10-05 11:57:00,2002-12-12 18:59:00,NOT COLLATERAL
+140046,4881.57,AAE,FKF,A,5860.38,360,7,KFF,FOLDERL,LTTRA,2002-10-05 12:57:00,2002-12-12 20:59:00,COLLATERAL
+140057,4882.01,AAF,LES,A,5863.49,361,8,EFH,FOLDERM,LTTRA,2002-10-05 13:57:00,2002-12-12 22:59:00,COLLATERAL
+140068,4882.45,BBA,KLD,A,5866.6,362,9,NGC,FOLDERN,LTTRS,2002-10-05 14:57:00,2002-12-13 00:59:00,COLLATERAL
+140079,4882.89,BBC,SKL,A,5869.71,363,10,DER,FOLDERN,LTTRZ,2002-10-05 15:57:00,2002-12-13 02:59:00,NULL
+140090,4883.33,BBE,SIW,A,5872.82,364,11,FVG,FOLDERN,LTTRS,2002-10-05 16:57:00,2002-12-13 04:59:00,NULL
+140101,4883.77,BBF,CKA,A,5875.93,365,12,KWE,FOLDERN,LTTRS,2002-10-05 17:57:00,2002-12-13 06:59:00,NULL
+140112,4884.21,BBG,LDE,A,5879.04,366,13,WER,FOLDERL,LTTRS,2002-10-05 18:57:00,2002-12-13 08:59:00,NULL
+140123,4884.65,BBH,KFF,A,5882.15,367,14,GFH,FOLDERL,LTTRS,2002-10-05 19:57:00,2002-12-13 10:59:00,NULL
+140134,4885.09,CCA,EFH,A,5885.26,368,15,BGF,FOLDERL,LTTRS,2002-10-05 20:57:00,2002-12-13 12:59:00,NULL
+140145,4885.53,CCB,NGC,A,5888.37,369,16,XCS,FOLDERL,LTTRS,2002-10-05 21:57:00,2002-12-13 14:59:00,NULL
+140156,4885.97,CCD,DER,A,5891.48,370,17,JHK,FOLDERL,LTTRS,2002-10-05 22:57:00,2002-12-13 16:59:00,NULL
+140167,4886.41,CCE,FVG,A,5894.59,371,18,SFD,FOLDERA,LTTRS,2002-10-05 23:57:00,2002-12-13 18:59:00,NULL
+140178,4886.85,CCF,KWE,A,5897.7,372,19,WRE,FOLDERB,LTTRS,2002-10-06 00:57:00,2002-12-13 20:59:00,COLLATERAL
+140189,4887.29,CCG,WER,A,5900.81,373,20,HGV,FOLDERC,LTTRS,2002-10-06 01:57:00,2002-12-13 22:59:00,COLLATERAL
+140200,4887.73,CCH,GFH,A,5903.92,374,21,KLS,FOLDERD,LTTRS,2002-10-06 02:57:00,2002-12-14 00:59:00,COLLATERAL
+140211,4888.17,CCI,BGF,A,5907.03,375,22,SDK,FOLDERE,LTTRS,2002-10-06 03:57:00,2002-12-14 02:59:00,NULL
+140222,4888.61,CCJ,XCS,A,5910.14,376,23,MNV,FOLDERF,LTTRS,2002-10-06 04:57:00,2002-12-14 04:59:00,NULL
+140233,4889.05,DDD,JHK,A,5913.25,377,24,OKW,FOLDERG,LTTRS,2002-10-06 05:57:00,2002-12-14 06:59:00,NULL
+140244,4889.49,DDA,SFD,A,5916.36,378,25,ASS,FOLDERH,LTTRZ,2002-10-06 06:57:00,2002-12-14 08:59:00,NULL
+140255,4889.93,DAA,WRE,A,5919.47,379,26,CKA,FOLDERI,LTTRA,2002-10-06 07:57:00,2002-12-14 10:59:00,NULL
+140266,4890.37,DBB,HGV,A,5922.58,380,27,SWQ,FOLDERJ,LTTRB,2002-10-06 08:57:00,2002-12-14 12:59:00,NULL
+140277,4890.81,DCC,KLS,A,5925.69,381,28,KUH,FOLDERK,LTTRB,2002-10-06 09:57:00,2002-12-14 14:59:00,NULL
+140288,4891.25,DEE,SDK,A,5928.8,382,29,XCV,FOLDERL,LTTRA,2002-10-06 10:57:00,2002-12-14 16:59:00,NULL
+140299,4891.69,DFF,MNV,A,5931.91,383,30,ZAQ,FOLDERM,LTTRA,2002-10-06 11:57:00,2002-12-14 18:59:00,NULL
+140310,4892.13,DGG,OKW,A,5935.02,384,31,MKO,FOLDERN,LTTRS,2002-10-06 12:57:00,2002-12-14 20:59:00,COLLATERAL
+140321,4892.57,DHH,ASS,A,5938.13,385,32,VFR,FOLDERO,LTTRZ,2002-10-06 13:57:00,2002-12-14 22:59:00,COLLATERAL
+140332,4893.01,AAA,CKA,A,5941.24,386,33,YUJ,FOLDERP,LTTRS,2002-10-06 14:57:00,2002-12-15 00:59:00,COLLATERAL
+140343,4893.45,BBB,SWQ,A,5944.35,387,34,AAA,FOLDERQ,LTTRS,2002-10-06 15:57:00,2002-12-15 02:59:00,NOT COLLATERAL
+140354,4893.89,CCC,KUH,A,5947.46,388,35,BBB,FOLDERR,LTTRS,2002-10-06 16:57:00,2002-12-15 04:59:00,NOT COLLATERAL
+140365,4894.33,DDD,XCV,A,5950.57,389,36,CCC,FOLDERS,LTTRS,2002-10-06 17:57:00,2002-12-15 06:59:00,NOT COLLATERAL
+140376,4894.77,AAB,ZAQ,A,5953.68,390,37,DDD,FOLDERT,LTTRS,2002-10-06 18:57:00,2002-12-15 08:59:00,NOT COLLATERAL
+140387,4895.21,AAC,MKO,A,5956.79,391,38,AAB,FOLDERU,LTTRS,2002-10-06 19:57:00,2002-12-15 10:59:00,NOT COLLATERAL
+140398,4895.65,AAD,VFR,A,5959.9,392,39,AAC,FOLDERV,LTTRS,2002-10-06 20:57:00,2002-12-15 12:59:00,NOT COLLATERAL
+140409,4896.09,AAE,YUJ,A,5963.01,390,40,AAD,FOLDERW,LTTRS,2002-10-06 21:57:00,2002-12-15 14:59:00,NOT COLLATERAL
+140420,4896.53,AAF,MED,A,5966.12,388,41,AAE,FOLDERX,LTTRS,2002-10-06 22:57:00,2002-12-15 16:59:00,NOT COLLATERAL
+140431,4896.97,BBA,SWE,A,5969.23,386,42,AAF,FOLDERY,LTTRS,2002-10-06 23:57:00,2002-12-15 18:59:00,NOT COLLATERAL
+140442,4897.41,BBC,CVF,A,5972.34,384,43,BBA,FOLDERZ,LTTRS,2002-10-07 00:57:00,2002-12-15 20:59:00,COLLATERAL
+140453,4897.85,BBE,DSFG,A,5975.45,382,44,BBC,FOLDERA,LTTRS,2002-10-07 01:57:00,2002-12-15 22:59:00,COLLATERAL
+140464,4898.29,BBF,ASDRE,A,5978.56,380,45,BBE,FOLDERB,LTTRS,2002-10-07 02:57:00,2002-12-16 00:59:00,COLLATERAL
+140475,4898.73,BBG,HJKSS,A,5981.67,378,46,BBF,FOLDERC,LTTRS,2002-10-07 03:57:00,2002-12-16 02:59:00,NOT COLLATERAL
+140486,4899.17,BBH,KHAA,A,5984.78,376,47,BBG,FOLDERD,LTTRZ,2002-10-07 04:57:00,2002-12-16 04:59:00,NOT COLLATERAL
+140497,4899.61,CCA,KSLD,A,5987.89,374,48,BBH,FOLDERE,LTTRA,2002-10-07 05:57:00,2002-12-16 06:59:00,NOT COLLATERAL
+140508,4900.05,CCB,EKID,A,5991,372,49,CCA,FOLDERF,LTTRB,2002-10-07 06:57:00,2002-12-16 08:59:00,NOT COLLATERAL
+140519,4900.49,CCD,VNCD,A,5994.11,370,48,CCB,FOLDERG,LTTRB,2002-10-07 07:57:00,2002-12-16 10:59:00,NOT COLLATERAL
+140530,4900.93,CCE,DKD,A,5997.22,368,47,CCD,FOLDERH,LTTRA,2002-10-07 08:57:00,2002-12-16 12:59:00,NOT COLLATERAL
+140541,4901.37,CCF,FKF,A,6000.33,366,46,CCE,FOLDERI,LTTRA,2002-10-07 09:57:00,2002-12-16 14:59:00,NOT COLLATERAL
+140552,4901.81,CCG,LES,A,6003.44,364,45,CCF,FOLDERJ,LTTRS,2002-10-07 10:57:00,2002-12-16 16:59:00,NOT COLLATERAL
+140563,4902.25,CCH,KLD,A,6006.55,362,44,CCG,FOLDERK,LTTRZ,2002-10-07 11:57:00,2002-12-16 18:59:00,NOT COLLATERAL
+140574,4902.69,CCI,SKL,A,6009.66,360,43,CCH,FOLDERL,LTTRS,2002-10-07 12:57:00,2002-12-16 20:59:00,COLLATERAL
+140585,4903.13,CCJ,SIW,A,6012.77,358,42,CCI,FOLDERM,LTTRS,2002-10-07 13:57:00,2002-12-16 22:59:00,COLLATERAL
+140596,4903.57,DDD,CKA,A,6015.88,356,41,CCJ,FOLDERN,LTTRS,2002-10-07 14:57:00,2002-12-17 00:59:00,COLLATERAL
+140607,4904.01,DDA,LDE,A,6018.99,354,40,DDD,FOLDERO,LTTRS,2002-10-07 15:57:00,2002-12-17 02:59:00,NOT COLLATERAL
+140618,4904.45,DAA,KFF,A,6022.1,352,39,DDA,FOLDERP,LTTRS,2002-10-07 16:57:00,2002-12-17 04:59:00,NOT COLLATERAL
+140629,4904.89,DBB,EFH,A,6025.21,350,38,DAA,FOLDERQ,LTTRS,2002-10-07 17:57:00,2002-12-17 06:59:00,NOT COLLATERAL
+140640,4905.33,DCC,NGC,A,6028.32,348,37,FKF,FOLDERR,LTTRS,2002-10-07 18:57:00,2002-12-17 08:59:00,NOT COLLATERAL
+140651,4905.77,DEE,DER,A,6031.43,346,36,LES,FOLDERS,LTTRS,2002-10-07 19:57:00,2002-12-17 10:59:00,NOT COLLATERAL
+140662,4906.21,DFF,FVG,A,6034.54,344,35,KLD,FOLDERT,LTTRS,2002-10-07 20:57:00,2002-12-17 12:59:00,NOT COLLATERAL
+140673,4906.65,DGG,KWE,A,6037.65,342,34,SKL,FOLDERU,LTTRS,2002-10-07 21:57:00,2002-12-17 14:59:00,NOT COLLATERAL
+140684,4907.09,DHH,WER,A,6040.76,340,33,SIW,FOLDERV,LTTRS,2002-10-07 22:57:00,2002-12-17 16:59:00,NOT COLLATERAL
+140695,4907.53,AAA,GFH,A,6043.87,338,32,CKA,FOLDERW,LTTRS,2002-10-07 23:57:00,2002-12-17 18:59:00,NOT COLLATERAL
+140706,4907.97,BBB,BGF,A,6046.98,336,31,LDE,FOLDERX,LTTRS,2002-10-08 00:57:00,2002-12-17 20:59:00,COLLATERAL
+140717,4908.41,CCC,XCS,A,6050.09,334,30,KFF,FOLDERY,LTTRS,2002-10-08 01:57:00,2002-12-17 22:59:00,COLLATERAL
+140728,4908.85,DDD,JHK,A,6053.2,332,29,EFH,FOLDERZ,LTTRZ,2002-10-08 02:57:00,2002-12-18 00:59:00,COLLATERAL
+140739,4909.29,AAB,SFD,A,6056.31,330,28,NGC,FOLDERZ,LTTRA,2002-10-08 03:57:00,2002-12-18 02:59:00,NOT COLLATERAL
+140750,4909.73,AAC,WRE,A,6059.42,328,27,DER,FOLDERZ,LTTRB,2002-10-08 04:57:00,2002-12-18 04:59:00,NOT COLLATERAL
+140761,4910.17,AAD,HGV,A,6062.53,326,26,FVG,FOLDERZ,LTTRB,2002-10-08 05:57:00,2002-12-18 06:59:00,NOT COLLATERAL
+140772,4910.61,AAE,KLS,A,6065.64,324,25,KWE,FOLDERZ,LTTRA,2002-10-08 06:57:00,2002-12-18 08:59:00,NOT COLLATERAL
+140783,4911.05,AAF,SDK,A,6068.75,322,24,WER,FOLDERZ,LTTRA,2002-10-08 07:57:00,2002-12-18 10:59:00,NOT COLLATERAL
+140794,4911.49,BBA,MNV,A,6071.86,320,23,GFH,FOLDERZ,LTTRS,2002-10-08 08:57:00,2002-12-18 12:59:00,NOT COLLATERAL
+140805,4911.93,BBC,OKW,A,6074.97,318,22,BGF,FOLDERZ,LTTRZ,2002-10-08 09:57:00,2002-12-18 14:59:00,NOT COLLATERAL
+140816,4912.37,BBE,ASS,A,6078.08,316,21,XCS,FOLDERZ,LTTRS,2002-10-08 10:57:00,2002-12-18 16:59:00,NOT COLLATERAL
+140827,4912.81,BBF,CKA,A,6081.19,314,20,JHK,FOLDERZ,LTTRS,2002-10-08 11:57:00,2002-12-18 18:59:00,NOT COLLATERAL
+140838,4913.25,BBG,SWQ,A,6084.3,312,19,SFD,FOLDERZ,LTTRS,2002-10-08 12:57:00,2002-12-18 20:59:00,COLLATERAL
+140849,4913.69,BBH,KUH,A,6087.41,310,18,WRE,FOLDERZ,LTTRS,2002-10-08 13:57:00,2002-12-18 22:59:00,COLLATERAL
+140860,4914.13,CCA,XCV,A,6090.52,308,17,HGV,FOLDERZ,LTTRS,2002-10-08 14:57:00,2002-12-19 00:59:00,COLLATERAL
+140871,4914.57,CCB,ZAQ,A,6093.63,306,16,KLS,FOLDERZ,LTTRS,2002-10-08 15:57:00,2002-12-19 02:59:00,NOT COLLATERAL
+140882,4915.01,CCD,MKO,A,6096.74,304,15,SDK,FOLDERX,LTTRS,2002-10-08 16:57:00,2002-12-19 04:59:00,NOT COLLATERAL
+140893,4915.45,CCE,VFR,A,6099.85,302,14,MNV,FOLDERX,LTTRS,2002-10-08 17:57:00,2002-12-19 06:59:00,NOT COLLATERAL
+140904,4915.89,CCF,YUJ,A,6102.96,300,13,OKW,FOLDERX,LTTRS,2002-10-08 18:57:00,2002-12-19 08:59:00,NOT COLLATERAL
+140915,4916.33,CCG,MED,A,6106.07,298,12,ASS,FOLDERX,LTTRS,2002-10-08 19:57:00,2002-12-19 10:59:00,NOT COLLATERAL
+140926,4916.77,CCH,SWE,A,6109.18,296,11,CKA,FOLDERX,LTTRS,2002-10-08 20:57:00,2002-12-19 12:59:00,NOT COLLATERAL
+140937,4917.21,CCI,CVF,A,6112.29,294,10,SWQ,FOLDERX,LTTRS,2002-10-08 21:57:00,2002-12-19 14:59:00,NOT COLLATERAL
+140948,4917.65,CCJ,DSFG,A,6115.4,292,9,KUH,FOLDERX,LTTRS,2002-10-08 22:57:00,2002-12-19 16:59:00,NOT COLLATERAL
+140959,4918.09,DDD,ASDRE,A,6118.51,290,8,XCV,FOLDERX,LTTRS,2002-10-08 23:57:00,2002-12-19 18:59:00,NOT COLLATERAL
+140970,4918.53,DDA,HJKSS,A,6121.62,288,7,ZAQ,FOLDERX,LTTRZ,2002-10-09 00:57:00,2002-12-19 20:59:00,COLLATERAL
+140981,4918.97,DAA,KHAA,A,6124.73,286,6,MKO,FOLDERX,LTTRA,2002-10-09 01:57:00,2002-12-19 22:59:00,COLLATERAL
+140992,4919.41,DBB,KSLD,A,6127.84,284,5,VFR,FOLDERX,LTTRB,2002-10-09 02:57:00,2002-12-20 00:59:00,COLLATERAL
+141003,4919.85,DCC,EKID,A,6130.95,282,4,YUJ,FOLDERX,LTTRB,2002-10-09 03:57:00,2002-12-20 02:59:00,NOT COLLATERAL
+141014,4920.29,DEE,VNCD,A,6134.06,280,3,AAA,FOLDERR,LTTRA,2002-10-09 04:57:00,2002-12-20 04:59:00,NOT COLLATERAL
+141025,4920.73,DFF,DKD,A,6137.17,278,1,BBB,FOLDERS,LTTRA,2002-10-09 05:57:00,2002-12-20 06:59:00,NOT COLLATERAL
+141036,4921.17,DGG,FKF,A,6140.28,276,2,CCC,FOLDERX,LTTRS,2002-10-09 06:57:00,2002-12-20 08:59:00,NOT COLLATERAL
+141047,4921.61,DHH,LES,A,6143.39,274,3,DDD,FOLDERR,LTTRZ,2002-10-09 07:57:00,2002-12-20 10:59:00,NOT COLLATERAL
+141058,4922.05,AAA,KLD,A,6146.5,272,4,AAB,FOLDERS,LTTRS,2002-10-09 08:57:00,2002-12-20 12:59:00,NOT COLLATERAL
+141069,4922.49,BBB,SKL,A,6149.61,270,5,AAC,FOLDERX,LTTRS,2002-10-09 09:57:00,2002-12-20 14:59:00,NOT COLLATERAL
+141080,4922.93,CCC,SIW,A,6152.72,268,6,AAD,FOLDERR,LTTRS,2002-10-09 10:57:00,2002-12-20 16:59:00,NOT COLLATERAL
+141091,4923.37,DDD,CKA,A,6155.83,266,7,AAE,FOLDERS,LTTRS,2002-10-09 11:57:00,2002-12-20 18:59:00,NOT COLLATERAL
+141102,4923.81,AAB,LDE,A,6158.94,264,8,AAF,FOLDERX,LTTRS,2002-10-09 12:57:00,2002-12-20 20:59:00,COLLATERAL
+141113,4924.25,AAC,KFF,A,6162.05,262,9,BBA,FOLDERR,LTTRS,2002-10-09 13:57:00,2002-12-20 22:59:00,COLLATERAL
+141124,4924.69,AAD,EFH,A,6165.16,260,10,BBC,FOLDERS,LTTRS,2002-10-09 14:57:00,2002-12-21 00:59:00,COLLATERAL
+141135,4925.13,AAE,NGC,A,6168.27,258,11,BBE,FOLDERX,LTTRS,2002-10-09 15:57:00,2002-12-21 02:59:00,NOT COLLATERAL
+141146,4925.57,AAF,DER,A,6171.38,256,12,BBF,FOLDERR,LTTRS,2002-10-09 16:57:00,2002-12-21 04:59:00,NOT COLLATERAL
+141157,4926.01,BBA,FVG,A,6174.49,254,13,BBG,FOLDERS,LTTRS,2002-10-09 17:57:00,2002-12-21 06:59:00,NOT COLLATERAL
+141168,4926.45,BBC,KWE,A,6177.6,252,14,BBH,FOLDERX,LTTRS,2002-10-09 18:57:00,2002-12-21 08:59:00,NOT COLLATERAL
+141179,4926.89,BBE,WER,A,6180.71,250,15,CCA,FOLDERD,LTTRS,2002-10-09 19:57:00,2002-12-21 10:59:00,NOT COLLATERAL
+141190,4927.33,BBF,GFH,A,6183.82,248,16,CCB,FOLDERE,LTTRS,2002-10-09 20:57:00,2002-12-21 12:59:00,NOT COLLATERAL
+141201,4927.77,BBG,BGF,A,6186.93,246,17,CCD,FOLDERF,LTTRS,2002-10-09 21:57:00,2002-12-21 14:59:00,NOT COLLATERAL
+141212,4928.21,BBH,XCS,A,6190.04,244,18,CCE,FOLDERG,LTTRZ,2002-10-09 22:57:00,2002-12-21 16:59:00,NOT COLLATERAL
+141223,4928.65,CCA,JHK,A,6193.15,242,19,CCF,FOLDERH,LTTRA,2002-10-09 23:57:00,2002-12-21 18:59:00,NOT COLLATERAL
+141234,4929.09,CCB,SFD,A,6196.26,240,20,CCG,FOLDERI,LTTRB,2002-10-10 00:57:00,2002-12-21 20:59:00,COLLATERAL
+141245,4929.53,CCD,WRE,A,6199.37,238,21,CCH,FOLDERJ,LTTRB,2002-10-10 01:57:00,2002-12-21 22:59:00,COLLATERAL
+141256,4929.97,CCE,HGV,A,6202.48,236,22,CCI,FOLDERK,LTTRA,2002-10-10 02:57:00,2002-12-22 00:59:00,COLLATERAL
+141267,4930.41,CCF,KLS,A,6205.59,234,23,CCJ,FOLDERL,LTTRA,2002-10-10 03:57:00,2002-12-22 02:59:00,NULL
+141278,4930.85,CCG,SDK,A,6208.7,232,24,DDD,FOLDERM,LTTRS,2002-10-10 04:57:00,2002-12-22 04:59:00,NULL
+141289,4931.29,CCH,MNV,A,6211.81,230,25,DDA,FOLDERN,LTTRZ,2002-10-10 05:57:00,2002-12-22 06:59:00,NULL
+141300,4931.73,CCI,OKW,A,6214.92,228,26,DAA,FOLDERN,LTTRS,2002-10-10 06:57:00,2002-12-22 08:59:00,NULL
+141311,4932.17,CCJ,ASS,A,6218.03,226,27,FKF,FOLDERN,LTTRS,2002-10-10 07:57:00,2002-12-22 10:59:00,NULL
+141322,4932.61,DDD,CKA,A,6221.14,224,28,LES,FOLDERN,LTTRS,2002-10-10 08:57:00,2002-12-22 12:59:00,NULL
+141333,4933.05,DDA,SWQ,A,6224.25,222,29,KLD,FOLDERL,LTTRS,2002-10-10 09:57:00,2002-12-22 14:59:00,NULL
+141344,4933.49,DAA,KUH,A,6227.36,220,30,SKL,FOLDERL,LTTRS,2002-10-10 10:57:00,2002-12-22 16:59:00,NULL
+141355,4933.93,DBB,XCV,A,6230.47,218,31,SIW,FOLDERL,LTTRS,2002-10-10 11:57:00,2002-12-22 18:59:00,NULL
+141366,4934.37,DCC,ZAQ,A,6233.58,216,32,CKA,FOLDERL,LTTRS,2002-10-10 12:57:00,2002-12-22 20:59:00,COLLATERAL
+141377,4934.81,DEE,MKO,A,6236.69,214,33,LDE,FOLDERL,LTTRS,2002-10-10 13:57:00,2002-12-22 22:59:00,COLLATERAL
+141388,4935.25,DFF,VFR,A,6239.8,212,34,KFF,FOLDERA,LTTRS,2002-10-10 14:57:00,2002-12-23 00:59:00,COLLATERAL
+141399,4935.69,DGG,YUJ,A,6242.91,210,35,EFH,FOLDERB,LTTRS,2002-10-10 15:57:00,2002-12-23 02:59:00,NULL
+141410,4936.13,DHH,MED,A,6246.02,208,36,NGC,FOLDERC,LTTRS,2002-10-10 16:57:00,2002-12-23 04:59:00,NULL
+141421,4936.57,AAA,SWE,A,6249.13,206,37,DER,FOLDERD,LTTRS,2002-10-10 17:57:00,2002-12-23 06:59:00,NULL
+141432,4937.01,BBB,CVF,A,6252.24,204,38,FVG,FOLDERE,LTTRS,2002-10-10 18:57:00,2002-12-23 08:59:00,NULL
+141443,4937.45,CCC,DSFG,A,6255.35,202,39,KWE,FOLDERF,LTTRS,2002-10-10 19:57:00,2002-12-23 10:59:00,NULL
+141454,4937.89,DDD,ASDRE,A,6258.46,200,40,WER,FOLDERG,LTTRZ,2002-10-10 20:57:00,2002-12-23 12:59:00,NULL
+141465,4938.33,AAB,HJKSS,A,6261.57,198,41,GFH,FOLDERH,LTTRA,2002-10-10 21:57:00,2002-12-23 14:59:00,NULL
+141476,4938.77,AAC,KHAA,A,6264.68,196,42,BGF,FOLDERI,LTTRB,2002-10-10 22:57:00,2002-12-23 16:59:00,NULL
+141487,4939.21,AAD,KSLD,A,6267.79,194,43,XCS,FOLDERJ,LTTRB,2002-10-10 23:57:00,2002-12-23 18:59:00,NULL
+141498,4939.65,AAE,EKID,A,6270.9,192,44,JHK,FOLDERK,LTTRA,2002-10-11 00:57:00,2002-12-23 20:59:00,COLLATERAL
+141509,4940.09,AAF,VNCD,A,6274.01,190,45,SFD,FOLDERL,LTTRA,2002-10-11 01:57:00,2002-12-23 22:59:00,COLLATERAL
+141520,4940.53,BBA,DKD,A,6277.12,188,46,WRE,FOLDERM,LTTRS,2002-10-11 02:57:00,2002-12-24 00:59:00,COLLATERAL
+141531,4940.97,BBC,FKF,A,6280.23,186,47,HGV,FOLDERN,LTTRZ,2002-10-11 03:57:00,2002-12-24 02:59:00,NOT COLLATERAL
+141542,4941.41,BBE,LES,A,6283.34,184,48,KLS,FOLDERO,LTTRS,2002-10-11 04:57:00,2002-12-24 04:59:00,NOT COLLATERAL
+141553,4941.85,BBF,KLD,A,6286.45,182,49,SDK,FOLDERP,LTTRS,2002-10-11 05:57:00,2002-12-24 06:59:00,NOT COLLATERAL
+141564,4942.29,BBG,SKL,A,6289.56,180,48,MNV,FOLDERQ,LTTRS,2002-10-11 06:57:00,2002-12-24 08:59:00,NOT COLLATERAL
+141575,4942.73,BBH,SIW,A,6292.67,178,47,OKW,FOLDERR,LTTRS,2002-10-11 07:57:00,2002-12-24 10:59:00,NOT COLLATERAL
+141586,4943.17,CCA,CKA,A,6295.78,176,46,ASS,FOLDERS,LTTRS,2002-10-11 08:57:00,2002-12-24 12:59:00,NOT COLLATERAL
+141597,4943.61,CCB,LDE,A,6298.89,174,45,CKA,FOLDERT,LTTRS,2002-10-11 09:57:00,2002-12-24 14:59:00,NOT COLLATERAL
+141608,4944.05,CCD,KFF,A,6302,172,44,SWQ,FOLDERU,LTTRS,2002-10-11 10:57:00,2002-12-24 16:59:00,NOT COLLATERAL
+141619,4944.49,CCE,EFH,A,6305.11,170,43,KUH,FOLDERV,LTTRS,2002-10-11 11:57:00,2002-12-24 18:59:00,NOT COLLATERAL
+141630,4944.93,CCF,NGC,A,6308.22,168,42,XCV,FOLDERW,LTTRS,2002-10-11 12:57:00,2002-12-24 20:59:00,COLLATERAL
+141641,4945.37,CCG,DER,A,6311.33,166,41,ZAQ,FOLDERX,LTTRS,2002-10-11 13:57:00,2002-12-24 22:59:00,COLLATERAL
+141652,4945.81,CCH,FVG,A,6314.44,164,40,MKO,FOLDERY,LTTRS,2002-10-11 14:57:00,2002-12-25 00:59:00,COLLATERAL
+141663,4946.25,CCI,KWE,A,6317.55,162,39,VFR,FOLDERZ,LTTRS,2002-10-11 15:57:00,2002-12-25 02:59:00,NOT COLLATERAL
+141674,4946.69,CCJ,WER,A,6320.66,160,38,YUJ,FOLDERA,LTTRS,2002-10-11 16:57:00,2002-12-25 04:59:00,NOT COLLATERAL
+141685,4947.13,DDD,GFH,A,6323.77,158,37,AAA,FOLDERB,LTTRS,2002-10-11 17:57:00,2002-12-25 06:59:00,NOT COLLATERAL
+141696,4947.57,DDA,BGF,A,6326.88,156,36,BBB,FOLDERC,LTTRZ,2002-10-11 18:57:00,2002-12-25 08:59:00,NOT COLLATERAL
+141707,4948.01,DAA,XCS,A,6329.99,154,35,CCC,FOLDERD,LTTRA,2002-10-11 19:57:00,2002-12-25 10:59:00,NOT COLLATERAL
+141718,4948.45,DBB,JHK,A,6333.1,152,34,DDD,FOLDERE,LTTRB,2002-10-11 20:57:00,2002-12-25 12:59:00,NOT COLLATERAL
+141729,4948.89,DCC,SFD,A,6336.21,150,33,AAB,FOLDERF,LTTRB,2002-10-11 21:57:00,2002-12-25 14:59:00,NOT COLLATERAL
+141740,4949.33,DEE,WRE,A,6339.32,148,32,AAC,FOLDERG,LTTRA,2002-10-11 22:57:00,2002-12-25 16:59:00,NOT COLLATERAL
+141751,4949.77,DFF,HGV,A,6342.43,146,31,AAD,FOLDERH,LTTRA,2002-10-11 23:57:00,2002-12-25 18:59:00,NOT COLLATERAL
+141762,4950.21,DGG,KLS,A,6345.54,144,30,AAE,FOLDERI,LTTRS,2002-10-12 00:57:00,2002-12-25 20:59:00,COLLATERAL
+141773,4950.65,DHH,SDK,A,6348.65,142,29,AAF,FOLDERJ,LTTRZ,2002-10-12 01:57:00,2002-12-25 22:59:00,COLLATERAL
+141784,4951.09,AAA,MNV,A,6351.76,140,28,BBA,FOLDERK,LTTRS,2002-10-12 02:57:00,2002-12-26 00:59:00,COLLATERAL
+141795,4951.53,BBB,OKW,A,6354.87,138,27,BBC,FOLDERL,LTTRS,2002-10-12 03:57:00,2002-12-26 02:59:00,NOT COLLATERAL
+141806,4951.97,CCC,ASS,A,6357.98,136,26,BBE,FOLDERM,LTTRS,2002-10-12 04:57:00,2002-12-26 04:59:00,NOT COLLATERAL
+141817,4952.41,DDD,CKA,A,6361.09,134,25,BBF,FOLDERN,LTTRS,2002-10-12 05:57:00,2002-12-26 06:59:00,NOT COLLATERAL
+141828,4952.85,AAB,SWQ,A,6364.2,132,24,BBG,FOLDERO,LTTRS,2002-10-12 06:57:00,2002-12-26 08:59:00,NOT COLLATERAL
+141839,4953.29,AAC,KUH,A,6367.31,130,23,BBH,FOLDERP,LTTRS,2002-10-12 07:57:00,2002-12-26 10:59:00,NOT COLLATERAL
+141850,4953.73,AAD,XCV,A,6370.42,128,22,CCA,FOLDERQ,LTTRS,2002-10-12 08:57:00,2002-12-26 12:59:00,NOT COLLATERAL
+141861,4954.17,AAE,ZAQ,A,6373.53,126,21,CCB,FOLDERR,LTTRS,2002-10-12 09:57:00,2002-12-26 14:59:00,NOT COLLATERAL
+141872,4954.61,AAF,MKO,A,6376.64,124,20,CCD,FOLDERS,LTTRS,2002-10-12 10:57:00,2002-12-26 16:59:00,NOT COLLATERAL
+141883,4955.05,BBA,VFR,A,6379.75,122,19,CCE,FOLDERT,LTTRS,2002-10-12 11:57:00,2002-12-26 18:59:00,NOT COLLATERAL
+141894,4955.49,BBC,YUJ,A,6382.86,120,18,CCF,FOLDERU,LTTRS,2002-10-12 12:57:00,2002-12-26 20:59:00,COLLATERAL
+141905,4955.93,BBE,MED,A,6385.97,118,17,CCG,FOLDERV,LTTRS,2002-10-12 13:57:00,2002-12-26 22:59:00,COLLATERAL
+141916,4956.37,BBF,SWE,A,6389.08,116,16,CCH,FOLDERW,LTTRS,2002-10-12 14:57:00,2002-12-27 00:59:00,COLLATERAL
+141927,4956.81,BBG,CVF,A,6392.19,114,15,CCI,FOLDERX,LTTRS,2002-10-12 15:57:00,2002-12-27 02:59:00,NOT COLLATERAL
+141938,4957.25,BBH,DSFG,A,6395.3,112,14,CCJ,FOLDERY,LTTRZ,2002-10-12 16:57:00,2002-12-27 04:59:00,NOT COLLATERAL
+141949,4957.69,CCA,ASDRE,A,6398.41,110,13,DDD,FOLDERZ,LTTRA,2002-10-12 17:57:00,2002-12-27 06:59:00,NOT COLLATERAL
+141960,4958.13,CCB,HJKSS,A,6401.52,108,12,DDA,FOLDERZ,LTTRB,2002-10-12 18:57:00,2002-12-27 08:59:00,NOT COLLATERAL
+141971,4958.57,CCD,KHAA,A,6404.63,106,11,DAA,FOLDERZ,LTTRB,2002-10-12 19:57:00,2002-12-27 10:59:00,NOT COLLATERAL
+141982,4959.01,CCE,KSLD,A,6407.74,104,10,FKF,FOLDERZ,LTTRA,2002-10-12 20:57:00,2002-12-27 12:59:00,NOT COLLATERAL
+141993,4959.45,CCF,EKID,A,6410.85,102,9,LES,FOLDERZ,LTTRA,2002-10-12 21:57:00,2002-12-27 14:59:00,NOT COLLATERAL
+142004,4959.89,CCG,VNCD,A,6413.96,100,8,KLD,FOLDERZ,LTTRS,2002-10-12 22:57:00,2002-12-27 16:59:00,NOT COLLATERAL
+142015,4960.33,CCH,DKD,A,6417.07,98,7,SKL,FOLDERZ,LTTRZ,2002-10-12 23:57:00,2002-12-27 18:59:00,NOT COLLATERAL
+142026,4960.77,CCI,FKF,A,6420.18,96,6,SIW,FOLDERZ,LTTRS,2002-10-13 00:57:00,2002-12-27 20:59:00,COLLATERAL
+142037,4961.21,CCJ,LES,A,6423.29,94,5,CKA,FOLDERZ,LTTRS,2002-10-13 01:57:00,2002-12-27 22:59:00,COLLATERAL
+142048,4961.65,DDD,KLD,A,6426.4,92,4,LDE,FOLDERZ,LTTRS,2002-10-13 02:57:00,2002-12-28 00:59:00,COLLATERAL
+142059,4962.09,DDA,SKL,A,6429.51,90,3,KFF,FOLDERZ,LTTRS,2002-10-13 03:57:00,2002-12-28 02:59:00,NOT COLLATERAL
+142070,4962.53,DAA,SIW,A,6432.62,88,1,EFH,FOLDERZ,LTTRS,2002-10-13 04:56:00,2002-12-28 04:59:00,NOT COLLATERAL
+142081,4962.97,DBB,CKA,A,6435.73,86,2,NGC,FOLDERZ,LTTRS,2002-10-13 05:56:00,2002-12-28 06:59:00,NOT COLLATERAL
+142092,4963.41,DCC,LDE,A,6438.84,84,3,DER,FOLDERZ,LTTRS,2002-10-13 06:56:00,2002-12-28 08:59:00,NOT COLLATERAL
+142103,4963.85,DEE,KFF,A,6441.95,82,4,FVG,FOLDERX,LTTRS,2002-10-13 07:56:00,2002-12-28 10:59:00,NOT COLLATERAL
+142114,4964.29,DFF,EFH,A,6445.06,82,5,KWE,FOLDERX,LTTRS,2002-10-13 08:56:00,2002-12-28 12:59:00,NOT COLLATERAL
+142125,4964.73,DGG,NGC,A,6448.17,82,6,WER,FOLDERX,LTTRS,2002-10-13 09:56:00,2002-12-28 14:59:00,NOT COLLATERAL
+142136,4965.17,DHH,DER,A,6451.28,82,7,GFH,FOLDERX,LTTRS,2002-10-13 10:56:00,2002-12-28 16:59:00,NOT COLLATERAL
+142147,4965.61,AAA,FVG,A,6454.39,82,8,BGF,FOLDERX,LTTRS,2002-10-13 11:56:00,2002-12-28 18:59:00,NOT COLLATERAL
+142158,4966.05,BBB,KWE,A,6457.5,82,9,XCS,FOLDERX,LTTRS,2002-10-13 12:56:00,2002-12-28 20:59:00,COLLATERAL
+142169,4966.49,CCC,WER,A,6460.61,82,10,JHK,FOLDERX,LTTRS,2002-10-13 13:56:00,2002-12-28 22:59:00,COLLATERAL
+142180,4966.93,DDD,GFH,A,6463.72,82,11,SFD,FOLDERX,LTTRZ,2002-10-13 14:56:00,2002-12-29 00:59:00,COLLATERAL
+142191,4967.37,AAB,BGF,A,6466.83,82,12,WRE,FOLDERX,LTTRA,2002-10-13 15:56:00,2002-12-29 02:59:00,NOT COLLATERAL
+142202,4967.81,AAC,XCS,A,6469.94,82,13,HGV,FOLDERX,LTTRB,2002-10-13 16:56:00,2002-12-29 04:59:00,NOT COLLATERAL
+142213,4968.25,AAD,JHK,A,6473.05,82,14,KLS,FOLDERX,LTTRB,2002-10-13 17:56:00,2002-12-29 06:59:00,NOT COLLATERAL
+142224,4968.69,AAE,SFD,A,6476.16,82,15,SDK,FOLDERX,LTTRA,2002-10-13 18:56:00,2002-12-29 08:59:00,NOT COLLATERAL
+142235,4969.13,AAF,WRE,A,6479.27,82,16,MNV,FOLDERR,LTTRA,2002-10-13 19:56:00,2002-12-29 10:59:00,NOT COLLATERAL
+142246,4969.57,BBA,HGV,A,6482.38,82,17,OKW,FOLDERS,LTTRS,2002-10-13 20:56:00,2002-12-29 12:59:00,NOT COLLATERAL
+142257,4970.01,BBC,KLS,A,6485.49,82,18,ASS,FOLDERX,LTTRZ,2002-10-13 21:56:00,2002-12-29 14:59:00,NOT COLLATERAL
+142268,4970.45,BBE,SDK,A,6488.6,82,19,CKA,FOLDERR,LTTRS,2002-10-13 22:56:00,2002-12-29 16:59:00,NOT COLLATERAL
+142279,4970.89,BBF,MNV,A,6491.71,82,20,SWQ,FOLDERS,LTTRS,2002-10-13 23:56:00,2002-12-29 18:59:00,NOT COLLATERAL
+142290,4971.33,BBG,OKW,A,6494.82,82,21,KUH,FOLDERX,LTTRS,2002-10-14 00:56:00,2002-12-29 20:59:00,COLLATERAL
+142301,4971.77,BBH,ASS,A,6497.93,82,22,XCV,FOLDERR,LTTRS,2002-10-14 01:56:00,2002-12-29 22:59:00,COLLATERAL
+142312,4972.21,CCA,CKA,A,6501.04,82,23,ZAQ,FOLDERS,LTTRS,2002-10-14 02:56:00,2002-12-30 00:59:00,COLLATERAL
+142323,4972.65,CCB,SWQ,A,6504.15,82,24,MKO,FOLDERX,LTTRS,2002-10-14 03:56:00,2002-12-30 02:59:00,NOT COLLATERAL
+142334,4973.09,CCD,KUH,A,6507.26,82,25,VFR,FOLDERR,LTTRS,2002-10-14 04:56:00,2002-12-30 04:59:00,NOT COLLATERAL
+142345,4973.53,CCE,XCV,A,6510.37,82,26,YUJ,FOLDERS,LTTRS,2002-10-14 05:56:00,2002-12-30 06:59:00,NOT COLLATERAL
+142356,4973.97,CCF,ZAQ,A,6513.48,82,27,AAA,FOLDERX,LTTRS,2002-10-14 06:56:00,2002-12-30 08:59:00,NOT COLLATERAL
+142367,4974.41,CCG,MKO,A,6516.59,82,28,BBB,FOLDERR,LTTRS,2002-10-14 07:56:00,2002-12-30 10:59:00,NOT COLLATERAL
+142378,4974.85,CCH,VFR,A,6519.7,82,29,CCC,FOLDERS,LTTRS,2002-10-14 08:56:00,2002-12-30 12:59:00,NOT COLLATERAL
+142389,4975.29,CCI,YUJ,A,6522.81,82,30,DDD,FOLDERX,LTTRS,2002-10-14 09:56:00,2002-12-30 14:59:00,NOT COLLATERAL
+142400,4975.73,CCJ,MED,A,6525.92,82,31,AAB,FOLDERD,LTTRS,2002-10-14 10:56:00,2002-12-30 16:59:00,NOT COLLATERAL
+142411,4976.17,DDD,SWE,A,6529.03,82,32,AAC,FOLDERE,LTTRS,2002-10-14 11:56:00,2002-12-30 18:59:00,NOT COLLATERAL
+142422,4976.61,DDA,CVF,A,6532.14,82,33,AAD,FOLDERF,LTTRZ,2002-10-14 12:56:00,2002-12-30 20:59:00,COLLATERAL
+142433,4977.05,DAA,DSFG,A,6535.25,82,34,AAE,FOLDERG,LTTRA,2002-10-14 13:56:00,2002-12-30 22:59:00,COLLATERAL
+142444,4977.49,DBB,ASDRE,A,6538.36,82,35,AAF,FOLDERH,LTTRB,2002-10-14 14:56:00,2002-12-31 00:59:00,COLLATERAL
+142455,4977.93,DCC,HJKSS,A,6541.47,82,36,BBA,FOLDERI,LTTRB,2002-10-14 15:56:00,2002-12-31 02:59:00,NOT COLLATERAL
+142466,4978.37,DEE,KHAA,A,6544.58,82,37,BBC,FOLDERJ,LTTRA,2002-10-14 16:56:00,2002-12-31 04:59:00,NOT COLLATERAL
+142477,4978.81,DFF,KSLD,A,6547.69,82,38,BBE,FOLDERK,LTTRA,2002-10-14 17:56:00,2002-12-31 06:59:00,NOT COLLATERAL
+142488,4979.25,DGG,EKID,A,6550.8,82,39,BBF,FOLDERL,LTTRS,2002-10-14 18:56:00,2002-12-31 08:59:00,NOT COLLATERAL
+142499,4979.69,DHH,VNCD,A,6553.91,82,40,BBG,FOLDERM,LTTRZ,2002-10-14 19:56:00,2002-12-31 10:59:00,NOT COLLATERAL
+142510,4980.13,AAA,DKD,A,6557.02,82,41,BBH,FOLDERN,LTTRS,2002-10-14 20:56:00,2002-12-31 12:59:00,NOT COLLATERAL
+142521,4980.57,BBB,FKF,A,6560.13,82,42,CCA,FOLDERN,LTTRS,2002-10-14 21:56:00,2002-12-31 14:59:00,NOT COLLATERAL
+142532,4981.01,CCC,LES,A,6563.24,82,43,CCB,FOLDERN,LTTRS,2002-10-14 22:56:00,2002-12-31 16:59:00,NOT COLLATERAL
+142543,4981.45,DDD,KLD,A,6566.35,82,44,CCD,FOLDERN,LTTRS,2002-10-14 23:56:00,2002-12-31 18:59:00,NOT COLLATERAL
+142554,4981.89,AAB,SKL,A,6569.46,82,45,CCE,FOLDERL,LTTRS,2002-10-15 00:56:00,2002-12-31 20:59:00,COLLATERAL
+142565,4982.33,AAC,SIW,A,6572.57,82,46,CCF,FOLDERL,LTTRS,2002-10-15 01:56:00,2002-12-31 22:59:00,COLLATERAL
+142576,4982.77,AAD,CKA,A,6575.68,82,47,CCG,FOLDERL,LTTRS,2002-10-15 02:56:00,2003-01-01 00:59:00,COLLATERAL
+142587,4983.21,AAE,LDE,A,6578.79,82,48,CCH,FOLDERL,LTTRS,2002-10-15 03:56:00,2003-01-01 02:59:00,NOT COLLATERAL
+142598,4983.65,AAF,KFF,A,6581.9,82,49,CCI,FOLDERL,LTTRS,2002-10-15 04:56:00,2003-01-01 04:59:00,NOT COLLATERAL
+142609,4984.09,BBA,EFH,A,6585.01,82,48,CCJ,FOLDERA,LTTRS,2002-10-15 05:56:00,2003-01-01 06:59:00,NOT COLLATERAL
+142620,4984.53,BBC,NGC,A,6588.12,82,47,DDD,FOLDERB,LTTRS,2002-10-15 06:56:00,2003-01-01 08:59:00,NOT COLLATERAL
+142631,4984.97,BBE,DER,A,6591.23,82,46,DDA,FOLDERC,LTTRS,2002-10-15 07:56:00,2003-01-01 10:59:00,NOT COLLATERAL
+142642,4985.41,BBF,FVG,A,6594.34,82,45,DAA,FOLDERD,LTTRS,2002-10-15 08:56:00,2003-01-01 12:59:00,NOT COLLATERAL
+142653,4985.85,BBG,KWE,A,6597.45,82,44,FKF,FOLDERE,LTTRS,2002-10-15 09:56:00,2003-01-01 14:59:00,NOT COLLATERAL
+142664,4986.29,BBH,WER,A,6600.56,82,43,LES,FOLDERF,LTTRZ,2002-10-15 10:56:00,2003-01-01 16:59:00,NOT COLLATERAL
+142675,4986.73,CCA,GFH,A,6603.67,82,42,KLD,FOLDERG,LTTRA,2002-10-15 11:56:00,2003-01-01 18:59:00,NOT COLLATERAL
+142686,4987.17,CCB,BGF,A,6606.78,82,41,SKL,FOLDERH,LTTRB,2002-10-15 12:56:00,2003-01-01 20:59:00,COLLATERAL
+142697,4987.61,CCD,XCS,A,6609.89,82,40,SIW,FOLDERI,LTTRB,2002-10-15 13:56:00,2003-01-01 22:59:00,COLLATERAL
+142708,4988.05,CCE,JHK,A,6613,82,39,CKA,FOLDERJ,LTTRA,2002-10-15 14:56:00,2003-01-02 00:59:00,COLLATERAL
+142719,4988.49,CCF,SFD,A,6616.11,82,38,LDE,FOLDERK,LTTRA,2002-10-15 15:56:00,2003-01-02 02:59:00,NOT COLLATERAL
+142730,4988.93,CCG,WRE,A,6619.22,82,37,KFF,FOLDERL,LTTRS,2002-10-15 16:56:00,2003-01-02 04:59:00,NULL
+142741,4989.37,CCH,HGV,A,6622.33,82,36,EFH,FOLDERM,LTTRZ,2002-10-15 17:56:00,2003-01-02 06:59:00,NULL
+142752,4989.81,CCI,KLS,A,6625.44,82,35,NGC,FOLDERN,LTTRS,2002-10-15 18:56:00,2003-01-02 08:59:00,NULL
+142763,4990.25,CCJ,SDK,A,6628.55,82,34,DER,FOLDERO,LTTRS,2002-10-15 19:56:00,2003-01-02 10:59:00,NULL
+142774,4990.69,DDD,MNV,A,6631.66,82,33,FVG,FOLDERP,LTTRS,2002-10-15 20:56:00,2003-01-02 12:59:00,NULL
+142785,4991.13,DDA,OKW,A,6634.77,82,32,KWE,FOLDERQ,LTTRS,2002-10-15 21:56:00,2003-01-02 14:59:00,NULL
+142796,4991.57,DAA,ASS,A,6637.88,87,31,WER,FOLDERR,LTTRS,2002-10-15 22:56:00,2003-01-02 16:59:00,NULL
+142807,4992.01,DBB,CKA,A,6640.99,92,30,GFH,FOLDERS,LTTRS,2002-10-15 23:56:00,2003-01-02 18:59:00,NULL
+142818,4992.45,DCC,SWQ,A,6644.1,97,29,BGF,FOLDERT,LTTRS,2002-10-16 00:56:00,2003-01-02 20:59:00,COLLATERAL
+142829,4992.89,DEE,KUH,A,6647.21,102,28,XCS,FOLDERU,LTTRS,2002-10-16 01:56:00,2003-01-02 22:59:00,COLLATERAL
+142840,4993.33,DFF,XCV,A,6650.32,107,27,JHK,FOLDERV,LTTRS,2002-10-16 02:56:00,2003-01-03 00:59:00,COLLATERAL
+142851,4993.77,DGG,ZAQ,A,6653.43,112,26,SFD,FOLDERW,LTTRS,2002-10-16 03:56:00,2003-01-03 02:59:00,NULL
+142862,4994.21,DHH,MKO,A,6656.54,117,25,WRE,FOLDERX,LTTRS,2002-10-16 04:56:00,2003-01-03 04:59:00,NULL
+142873,4994.65,AAA,VFR,A,6659.65,122,24,HGV,FOLDERY,LTTRS,2002-10-16 05:56:00,2003-01-03 06:59:00,NULL
+142884,4995.09,BBB,YUJ,A,6662.76,127,23,KLS,FOLDERZ,LTTRS,2002-10-16 06:56:00,2003-01-03 08:59:00,NULL
+142895,4995.53,CCC,MED,A,6665.87,132,22,SDK,FOLDERA,LTTRS,2002-10-16 07:56:00,2003-01-03 10:59:00,NULL
+142906,4995.97,DDD,SWE,A,6668.98,137,21,MNV,FOLDERB,LTTRZ,2002-10-16 08:56:00,2003-01-03 12:59:00,NULL
+142917,4996.41,AAB,CVF,A,6672.09,142,20,OKW,FOLDERC,LTTRA,2002-10-16 09:56:00,2003-01-03 14:59:00,NULL
+142928,4996.85,AAC,DSFG,A,6675.2,147,19,ASS,FOLDERD,LTTRB,2002-10-16 10:56:00,2003-01-03 16:59:00,NULL
+142939,4997.29,AAD,ASDRE,A,6678.31,152,18,CKA,FOLDERE,LTTRB,2002-10-16 11:56:00,2003-01-03 18:59:00,NULL
+142950,4997.73,AAE,HJKSS,A,6681.42,157,17,SWQ,FOLDERF,LTTRA,2002-10-16 12:56:00,2003-01-03 20:59:00,NULL
+142961,4998.17,AAF,KHAA,A,6684.53,162,16,KUH,FOLDERG,LTTRA,2002-10-16 13:56:00,2003-01-03 22:59:00,COLLATERAL
+142972,4998.61,BBA,KSLD,A,6687.64,167,15,XCV,FOLDERH,LTTRS,2002-10-16 14:56:00,2003-01-04 00:59:00,COLLATERAL
+142983,4999.05,BBC,EKID,A,6690.75,172,14,ZAQ,FOLDERI,LTTRZ,2002-10-16 15:56:00,2003-01-04 02:59:00,NULL
+142994,4999.49,BBE,VNCD,A,6693.86,177,13,MKO,FOLDERJ,LTTRS,2002-10-16 16:56:00,2003-01-04 04:59:00,NULL
+143005,4999.93,BBF,DKD,A,6696.97,182,12,VFR,FOLDERK,LTTRS,2002-10-16 17:56:00,2003-01-04 06:59:00,NULL
+143016,5000.37,BBG,FKF,A,6700.08,187,11,YUJ,FOLDERL,LTTRS,2002-10-16 18:56:00,2003-01-04 08:59:00,NULL
+143027,5000.81,BBH,LES,A,6703.19,192,10,AAA,FOLDERM,LTTRS,2002-10-16 19:56:00,2003-01-04 10:59:00,NULL
+143038,5001.25,CCA,KLD,A,6706.3,197,9,BBB,FOLDERN,LTTRS,2002-10-16 20:56:00,2003-01-04 12:59:00,NULL
+143049,5001.69,CCB,SKL,A,6709.41,202,8,CCC,FOLDERO,LTTRS,2002-10-16 21:56:00,2003-01-04 14:59:00,NULL
+143060,5002.13,CCD,SIW,A,6712.52,207,7,DDD,FOLDERP,LTTRS,2002-10-16 22:56:00,2003-01-04 16:59:00,NULL
+143071,5002.57,CCE,CKA,A,6715.63,212,6,AAB,FOLDERQ,LTTRS,2002-10-16 23:56:00,2003-01-04 18:59:00,NULL
+143082,5003.01,CCF,LDE,A,6718.74,217,5,AAC,FOLDERR,LTTRS,2002-10-17 00:56:00,2003-01-04 20:59:00,NULL
+143093,5003.45,CCG,KFF,A,6721.85,222,4,AAD,FOLDERS,LTTRS,2002-10-17 01:56:00,2003-01-04 22:59:00,COLLATERAL
+143104,5003.89,CCH,EFH,A,6724.96,227,3,AAE,FOLDERT,LTTRS,2002-10-17 02:56:00,2003-01-05 00:59:00,COLLATERAL
+143115,5004.33,CCI,NGC,A,6728.07,232,1,AAF,FOLDERU,LTTRS,2002-10-17 03:56:00,2003-01-05 02:59:00,NOT COLLATERAL
+143126,5004.77,CCJ,DER,A,6731.18,237,2,BBA,FOLDERV,LTTRS,2002-10-17 04:56:00,2003-01-05 04:59:00,NOT COLLATERAL
+143137,5005.21,DDD,FVG,A,6734.29,242,3,BBC,FOLDERW,LTTRS,2002-10-17 05:56:00,2003-01-05 06:59:00,NOT COLLATERAL
+143148,5005.65,DDA,KWE,A,6737.4,247,4,BBE,FOLDERX,LTTRZ,2002-10-17 06:56:00,2003-01-05 08:59:00,NOT COLLATERAL
+143159,5006.09,DAA,WER,A,6740.51,252,5,BBF,FOLDERY,LTTRA,2002-10-17 07:56:00,2003-01-05 10:59:00,NOT COLLATERAL
+143170,5006.53,DBB,GFH,A,6743.62,257,6,BBG,FOLDERZ,LTTRB,2002-10-17 08:56:00,2003-01-05 12:59:00,NOT COLLATERAL
+143181,5006.97,DCC,BGF,A,6746.73,262,7,BBH,FOLDERZ,LTTRB,2002-10-17 09:56:00,2003-01-05 14:59:00,NOT COLLATERAL
+143192,5007.41,DEE,XCS,A,6749.84,267,8,CCA,FOLDERZ,LTTRA,2002-10-17 10:56:00,2003-01-05 16:59:00,NOT COLLATERAL
+143203,5007.85,DFF,JHK,A,6752.95,272,9,CCB,FOLDERZ,LTTRA,2002-10-17 11:56:00,2003-01-05 18:59:00,NOT COLLATERAL
+143214,5008.29,DGG,SFD,A,6756.06,277,10,CCD,FOLDERZ,LTTRS,2002-10-17 12:56:00,2003-01-05 20:59:00,COLLATERAL
+143225,5008.73,DHH,WRE,A,6759.17,282,11,CCE,FOLDERZ,LTTRZ,2002-10-17 13:56:00,2003-01-05 22:59:00,COLLATERAL
+143236,5009.17,AAA,HGV,A,6762.28,287,12,CCF,FOLDERZ,LTTRS,2002-10-17 14:56:00,2003-01-06 00:59:00,COLLATERAL
+143247,5009.61,BBB,KLS,A,6765.39,292,13,CCG,FOLDERZ,LTTRS,2002-10-17 15:56:00,2003-01-06 02:59:00,NOT COLLATERAL
+143258,5010.05,CCC,SDK,A,6768.5,297,14,CCH,FOLDERZ,LTTRS,2002-10-17 16:56:00,2003-01-06 04:59:00,NOT COLLATERAL
+143269,5010.49,DDD,MNV,A,6771.61,302,15,CCI,FOLDERZ,LTTRS,2002-10-17 17:56:00,2003-01-06 06:59:00,NOT COLLATERAL
+143280,5010.93,AAB,OKW,A,6774.72,307,16,CCJ,FOLDERZ,LTTRS,2002-10-17 18:56:00,2003-01-06 08:59:00,NOT COLLATERAL
+143291,5011.37,AAC,ASS,A,6777.83,312,17,DDD,FOLDERZ,LTTRS,2002-10-17 19:56:00,2003-01-06 10:59:00,NOT COLLATERAL
+143302,5011.81,AAD,CKA,A,6780.94,317,18,DDA,FOLDERZ,LTTRS,2002-10-17 20:56:00,2003-01-06 12:59:00,NOT COLLATERAL
+143313,5012.25,AAE,SWQ,A,6784.05,322,19,DAA,FOLDERZ,LTTRS,2002-10-17 21:56:00,2003-01-06 14:59:00,NOT COLLATERAL
+143324,5012.69,AAF,KUH,A,6787.16,327,20,FKF,FOLDERX,LTTRS,2002-10-17 22:56:00,2003-01-06 16:59:00,NOT COLLATERAL
+143335,5013.13,BBA,XCV,A,6790.27,332,21,LES,FOLDERX,LTTRS,2002-10-17 23:56:00,2003-01-06 18:59:00,NOT COLLATERAL
+143346,5013.57,BBC,ZAQ,A,6793.38,337,22,KLD,FOLDERX,LTTRS,2002-10-18 00:56:00,2003-01-06 20:59:00,COLLATERAL
+143357,5014.01,BBE,MKO,A,6796.49,342,23,SKL,FOLDERX,LTTRS,2002-10-18 01:56:00,2003-01-06 22:59:00,COLLATERAL
+143368,5014.45,BBF,VFR,A,6799.6,347,24,SIW,FOLDERX,LTTRS,2002-10-18 02:56:00,2003-01-07 00:59:00,COLLATERAL
+143379,5014.89,BBG,YUJ,A,6802.71,352,25,CKA,FOLDERX,LTTRS,2002-10-18 03:56:00,2003-01-07 02:59:00,NOT COLLATERAL
+143390,5015.33,BBH,MED,A,6805.82,357,26,LDE,FOLDERX,LTTRZ,2002-10-18 04:56:00,2003-01-07 04:59:00,NOT COLLATERAL
+143401,5015.77,CCA,SWE,A,6808.93,362,27,KFF,FOLDERX,LTTRA,2002-10-18 05:56:00,2003-01-07 06:59:00,NOT COLLATERAL
+143412,5016.21,CCB,CVF,A,6812.04,367,28,EFH,FOLDERX,LTTRB,2002-10-18 06:56:00,2003-01-07 08:59:00,NOT COLLATERAL
+143423,5016.65,CCD,DSFG,A,6815.15,372,29,NGC,FOLDERX,LTTRB,2002-10-18 07:56:00,2003-01-07 10:59:00,NOT COLLATERAL
+143434,5017.09,CCE,ASDRE,A,6818.26,377,30,DER,FOLDERX,LTTRA,2002-10-18 08:56:00,2003-01-07 12:59:00,NOT COLLATERAL
+143445,5017.53,CCF,HJKSS,A,6821.37,382,31,FVG,FOLDERX,LTTRA,2002-10-18 09:56:00,2003-01-07 14:59:00,NOT COLLATERAL
+143456,5017.97,CCG,KHAA,A,6824.48,387,32,KWE,FOLDERR,LTTRS,2002-10-18 10:56:00,2003-01-07 16:59:00,NOT COLLATERAL
+143467,5018.41,CCH,KSLD,A,6827.59,392,33,WER,FOLDERS,LTTRZ,2002-10-18 11:56:00,2003-01-07 18:59:00,NOT COLLATERAL
+143478,5018.85,CCI,EKID,A,6830.7,397,34,GFH,FOLDERX,LTTRS,2002-10-18 12:56:00,2003-01-07 20:59:00,COLLATERAL
+143489,5019.29,CCJ,VNCD,A,6833.81,402,35,BGF,FOLDERR,LTTRS,2002-10-18 13:56:00,2003-01-07 22:59:00,COLLATERAL
+143500,5019.73,DDD,DKD,A,6836.92,407,36,XCS,FOLDERS,LTTRS,2002-10-18 14:56:00,2003-01-08 00:59:00,COLLATERAL
+143511,5020.17,DDA,FKF,A,6840.03,412,37,JHK,FOLDERX,LTTRS,2002-10-18 15:56:00,2003-01-08 02:59:00,NOT COLLATERAL
+143522,5020.61,DAA,LES,A,6843.14,417,38,SFD,FOLDERR,LTTRS,2002-10-18 16:56:00,2003-01-08 04:59:00,NOT COLLATERAL
+143533,5021.05,DBB,KLD,A,6846.25,422,39,WRE,FOLDERS,LTTRS,2002-10-18 17:56:00,2003-01-08 06:59:00,NOT COLLATERAL
+143544,5021.49,DCC,SKL,A,6849.36,427,40,HGV,FOLDERX,LTTRS,2002-10-18 18:56:00,2003-01-08 08:59:00,NOT COLLATERAL
+143555,5021.93,DEE,SIW,A,6852.47,432,41,KLS,FOLDERR,LTTRS,2002-10-18 19:56:00,2003-01-08 10:59:00,NOT COLLATERAL
+143566,5022.37,DFF,CKA,A,6855.58,437,42,SDK,FOLDERS,LTTRS,2002-10-18 20:56:00,2003-01-08 12:59:00,NOT COLLATERAL
+143577,5022.81,DGG,LDE,A,6858.69,442,43,MNV,FOLDERX,LTTRS,2002-10-18 21:56:00,2003-01-08 14:59:00,NOT COLLATERAL
+143588,5023.25,DHH,KFF,A,6861.8,447,44,OKW,FOLDERR,LTTRS,2002-10-18 22:56:00,2003-01-08 16:59:00,NOT COLLATERAL
+143599,5023.69,AAA,EFH,A,6864.91,452,45,ASS,FOLDERS,LTTRS,2002-10-18 23:56:00,2003-01-08 18:59:00,NOT COLLATERAL
+143610,5024.13,BBB,NGC,A,6868.02,457,46,CKA,FOLDERX,LTTRS,2002-10-19 00:56:00,2003-01-08 20:59:00,COLLATERAL
+143621,5024.57,CCC,DER,A,6871.13,462,47,SWQ,FOLDERD,LTTRS,2002-10-19 01:56:00,2003-01-08 22:59:00,COLLATERAL
+143632,5025.01,DDD,FVG,A,6874.24,467,48,KUH,FOLDERE,LTTRZ,2002-10-19 02:56:00,2003-01-09 00:59:00,COLLATERAL
+143643,5025.45,AAB,KWE,A,6877.35,472,49,XCV,FOLDERF,LTTRA,2002-10-19 03:56:00,2003-01-09 02:59:00,NOT COLLATERAL
+143654,5025.89,AAC,WER,A,6880.46,477,48,ZAQ,FOLDERG,LTTRB,2002-10-19 04:56:00,2003-01-09 04:59:00,NOT COLLATERAL
+143665,5026.33,AAD,GFH,A,6883.57,482,47,MKO,FOLDERH,LTTRB,2002-10-19 05:56:00,2003-01-09 06:59:00,NOT COLLATERAL
+143676,5026.77,AAE,BGF,A,6886.68,487,46,VFR,FOLDERI,LTTRA,2002-10-19 06:56:00,2003-01-09 08:59:00,NOT COLLATERAL
+143687,5027.21,AAF,XCS,A,6889.79,492,45,YUJ,FOLDERJ,LTTRA,2002-10-19 07:56:00,2003-01-09 10:59:00,NOT COLLATERAL
+143698,5027.65,BBA,JHK,A,6892.9,497,44,AAA,FOLDERK,LTTRS,2002-10-19 08:56:00,2003-01-09 12:59:00,NOT COLLATERAL
+143709,5028.09,BBC,SFD,A,6896.01,502,43,BBB,FOLDERL,LTTRZ,2002-10-19 09:56:00,2003-01-09 14:59:00,NOT COLLATERAL
+143720,5028.53,BBE,WRE,A,6899.12,507,42,CCC,FOLDERM,LTTRS,2002-10-19 10:56:00,2003-01-09 16:59:00,NOT COLLATERAL
+143731,5028.97,BBF,HGV,A,6902.23,507,41,DDD,FOLDERN,LTTRS,2002-10-19 11:56:00,2003-01-09 18:59:00,NOT COLLATERAL
+143742,5029.41,BBG,KLS,A,6905.34,507,40,AAB,FOLDERN,LTTRS,2002-10-19 12:56:00,2003-01-09 20:59:00,COLLATERAL
+143753,5029.85,BBH,SDK,A,6908.45,507,39,AAC,FOLDERN,LTTRS,2002-10-19 13:56:00,2003-01-09 22:59:00,COLLATERAL
+143764,5030.29,CCA,MNV,A,6911.56,507,38,AAD,FOLDERN,LTTRS,2002-10-19 14:56:00,2003-01-10 00:59:00,COLLATERAL
+143775,5030.73,CCB,OKW,A,6914.67,507,37,AAE,FOLDERL,LTTRS,2002-10-19 15:56:00,2003-01-10 02:59:00,NOT COLLATERAL
+143786,5031.17,CCD,ASS,A,6917.78,507,36,AAF,FOLDERL,LTTRS,2002-10-19 16:56:00,2003-01-10 04:59:00,NOT COLLATERAL
+143797,5031.61,CCE,CKA,A,6920.89,507,35,BBA,FOLDERL,LTTRS,2002-10-19 17:56:00,2003-01-10 06:59:00,NOT COLLATERAL
+143808,5032.05,CCF,SWQ,A,6924,507,34,BBC,FOLDERL,LTTRS,2002-10-19 18:56:00,2003-01-10 08:59:00,NOT COLLATERAL
+143819,5032.49,CCG,KUH,A,6927.11,507,33,BBE,FOLDERL,LTTRS,2002-10-19 19:56:00,2003-01-10 10:59:00,NOT COLLATERAL
+143830,5032.93,CCH,XCV,A,6930.22,507,32,BBF,FOLDERA,LTTRS,2002-10-19 20:56:00,2003-01-10 12:59:00,NOT COLLATERAL
+143841,5033.37,CCI,ZAQ,A,6933.33,507,31,BBG,FOLDERB,LTTRS,2002-10-19 21:56:00,2003-01-10 14:59:00,NOT COLLATERAL
+143852,5033.81,CCJ,MKO,A,6936.44,507,30,BBH,FOLDERC,LTTRS,2002-10-19 22:56:00,2003-01-10 16:59:00,NOT COLLATERAL
+143863,5034.25,DDD,VFR,A,6939.55,507,29,CCA,FOLDERD,LTTRS,2002-10-19 23:56:00,2003-01-10 18:59:00,NOT COLLATERAL
+143874,5034.69,DDA,YUJ,A,6942.66,507,28,CCB,FOLDERE,LTTRZ,2002-10-20 00:56:00,2003-01-10 20:59:00,COLLATERAL
+143885,5035.13,DAA,MED,A,6945.77,507,27,CCD,FOLDERF,LTTRA,2002-10-20 01:56:00,2003-01-10 22:59:00,COLLATERAL
+143896,5035.57,DBB,SWE,A,6948.88,507,26,CCE,FOLDERG,LTTRB,2002-10-20 02:56:00,2003-01-11 00:59:00,COLLATERAL
+143907,5036.01,DCC,CVF,A,6951.99,507,25,CCF,FOLDERH,LTTRB,2002-10-20 03:56:00,2003-01-11 02:59:00,NOT COLLATERAL
+143918,5036.45,DEE,DSFG,A,6955.1,507,24,CCG,FOLDERI,LTTRA,2002-10-20 04:56:00,2003-01-11 04:59:00,NULL
+143929,5036.89,DFF,ASDRE,A,6958.21,507,23,CCH,FOLDERJ,LTTRA,2002-10-20 05:56:00,2003-01-11 06:59:00,NULL
+143940,5037.33,DGG,HJKSS,A,6961.32,507,22,CCI,FOLDERK,LTTRS,2002-10-20 06:56:00,2003-01-11 08:59:00,NULL
+143951,5037.77,DHH,KHAA,A,6964.43,507,21,CCJ,FOLDERL,LTTRZ,2002-10-20 07:56:00,2003-01-11 10:59:00,NULL
+143962,5038.21,AAA,KSLD,A,6967.54,507,20,DDD,FOLDERM,LTTRS,2002-10-20 08:56:00,2003-01-11 12:59:00,NULL
+143973,5038.65,BBB,EKID,A,6970.65,507,19,DDA,FOLDERN,LTTRS,2002-10-20 09:56:00,2003-01-11 14:59:00,NULL
+143984,5039.09,CCC,VNCD,A,6973.76,507,18,DAA,FOLDERO,LTTRS,2002-10-20 10:56:00,2003-01-11 16:59:00,NULL
+143995,5039.53,DDD,DKD,A,6976.87,507,17,FKF,FOLDERP,LTTRS,2002-10-20 11:56:00,2003-01-11 18:59:00,NULL
+144006,5039.97,AAB,FKF,A,6979.98,507,16,LES,FOLDERQ,LTTRS,2002-10-20 12:56:00,2003-01-11 20:59:00,COLLATERAL
+144017,5040.41,AAC,LES,A,6983.09,507,15,KLD,FOLDERR,LTTRS,2002-10-20 13:56:00,2003-01-11 22:59:00,COLLATERAL
+144028,5040.85,AAD,KLD,A,6986.2,507,14,SKL,FOLDERS,LTTRS,2002-10-20 14:56:00,2003-01-12 00:59:00,COLLATERAL
+144039,5041.29,AAE,SKL,A,6989.31,507,13,SIW,FOLDERT,LTTRS,2002-10-20 15:56:00,2003-01-12 02:59:00,NULL
+144050,5041.73,AAF,SIW,A,6992.42,507,12,CKA,FOLDERU,LTTRS,2002-10-20 16:56:00,2003-01-12 04:59:00,NULL
+144061,5042.17,BBA,CKA,A,6995.53,507,11,LDE,FOLDERV,LTTRS,2002-10-20 17:56:00,2003-01-12 06:59:00,NULL
+144072,5042.61,BBC,LDE,A,6998.64,507,10,KFF,FOLDERW,LTTRS,2002-10-20 18:56:00,2003-01-12 08:59:00,NULL
+144083,5043.05,BBE,KFF,A,7001.75,507,9,EFH,FOLDERX,LTTRS,2002-10-20 19:56:00,2003-01-12 10:59:00,NULL
+144094,5043.49,BBF,EFH,A,7004.86,507,8,NGC,FOLDERY,LTTRS,2002-10-20 20:56:00,2003-01-12 12:59:00,NULL
+144105,5043.93,BBG,NGC,A,7007.97,507,7,DER,FOLDERZ,LTTRS,2002-10-20 21:56:00,2003-01-12 14:59:00,NULL
+144116,5044.37,BBH,DER,A,7011.08,507,6,FVG,FOLDERA,LTTRZ,2002-10-20 22:56:00,2003-01-12 16:59:00,NULL
+144127,5044.81,CCA,FVG,A,7014.19,507,5,KWE,FOLDERB,LTTRA,2002-10-20 23:56:00,2003-01-12 18:59:00,NULL
+144138,5045.25,CCB,KWE,A,7017.3,507,4,WER,FOLDERC,LTTRB,2002-10-21 00:56:00,2003-01-12 20:59:00,COLLATERAL
+144149,5045.69,CCD,WER,A,7020.41,507,3,GFH,FOLDERD,LTTRB,2002-10-21 01:56:00,2003-01-12 22:59:00,COLLATERAL
+144160,5046.13,CCE,GFH,A,7023.52,507,1,BGF,FOLDERE,LTTRA,2002-10-21 02:56:00,2003-01-13 00:59:00,COLLATERAL
+144171,5046.57,CCF,BGF,A,7026.63,507,2,XCS,FOLDERF,LTTRA,2002-10-21 03:56:00,2003-01-13 02:59:00,NULL
+144182,5047.01,CCG,XCS,A,7029.74,507,3,JHK,FOLDERG,LTTRS,2002-10-21 04:56:00,2003-01-13 04:59:00,NULL
+144193,5047.45,CCH,JHK,A,7032.85,507,4,SFD,FOLDERH,LTTRZ,2002-10-21 05:56:00,2003-01-13 06:59:00,NULL
+144204,5047.89,CCI,SFD,A,7035.96,507,5,WRE,FOLDERI,LTTRS,2002-10-21 06:56:00,2003-01-13 08:59:00,NULL
+144215,5048.33,CCJ,WRE,A,7039.07,507,6,HGV,FOLDERJ,LTTRS,2002-10-21 07:56:00,2003-01-13 10:59:00,NULL
+144226,5048.77,DDD,HGV,A,7042.18,507,7,KLS,FOLDERK,LTTRS,2002-10-21 08:56:00,2003-01-13 12:59:00,NULL
+144237,5049.21,DDA,KLS,A,7045.29,507,8,SDK,FOLDERL,LTTRS,2002-10-21 09:56:00,2003-01-13 14:59:00,NULL
+144248,5049.65,DAA,SDK,A,7048.4,507,9,MNV,FOLDERM,LTTRS,2002-10-21 10:56:00,2003-01-13 16:59:00,NULL
+144259,5050.09,DBB,MNV,A,7051.51,507,10,OKW,FOLDERN,LTTRS,2002-10-21 11:56:00,2003-01-13 18:59:00,NULL
+144270,5050.53,DCC,OKW,A,7054.62,507,11,ASS,FOLDERO,LTTRS,2002-10-21 12:56:00,2003-01-13 20:59:00,NULL
+144281,5050.97,DEE,ASS,A,7057.73,507,12,CKA,FOLDERP,LTTRS,2002-10-21 13:56:00,2003-01-13 22:59:00,COLLATERAL
+144292,5051.41,DFF,CKA,A,7060.84,507,13,SWQ,FOLDERQ,LTTRS,2002-10-21 14:56:00,2003-01-14 00:59:00,COLLATERAL
+144303,5051.85,DGG,SWQ,A,7063.95,507,14,KUH,FOLDERR,LTTRS,2002-10-21 15:55:00,2003-01-14 02:59:00,NOT COLLATERAL
+144314,5052.29,DHH,KUH,A,7067.06,507,15,XCV,FOLDERS,LTTRS,2002-10-21 16:55:00,2003-01-14 04:59:00,NOT COLLATERAL
+144325,5052.73,AAA,XCV,A,7070.17,507,16,ZAQ,FOLDERT,LTTRS,2002-10-21 17:55:00,2003-01-14 06:59:00,NOT COLLATERAL
+144336,5053.17,BBB,ZAQ,A,7073.28,507,17,MKO,FOLDERU,LTTRS,2002-10-21 18:55:00,2003-01-14 08:59:00,NOT COLLATERAL
+144347,5053.61,CCC,MKO,A,7076.39,507,18,VFR,FOLDERV,LTTRS,2002-10-21 19:55:00,2003-01-14 10:59:00,NOT COLLATERAL
+144358,5054.05,DDD,VFR,A,7079.5,507,19,YUJ,FOLDERW,LTTRZ,2002-10-21 20:55:00,2003-01-14 12:59:00,NOT COLLATERAL
+144369,5054.49,AAB,YUJ,A,7082.61,507,20,AAA,FOLDERX,LTTRA,2002-10-21 21:55:00,2003-01-14 14:59:00,NOT COLLATERAL
+144380,5054.93,AAC,MED,A,7085.72,507,21,BBB,FOLDERY,LTTRB,2002-10-21 22:55:00,2003-01-14 16:59:00,NOT COLLATERAL
+144391,5055.37,AAD,SWE,A,7088.83,507,22,CCC,FOLDERZ,LTTRB,2002-10-21 23:55:00,2003-01-14 18:59:00,NOT COLLATERAL
+144402,5055.81,AAE,CVF,A,7091.94,507,23,DDD,FOLDERZ,LTTRA,2002-10-22 00:55:00,2003-01-14 20:59:00,COLLATERAL
+144413,5056.25,AAF,DSFG,A,7095.05,507,24,AAB,FOLDERZ,LTTRA,2002-10-22 01:55:00,2003-01-14 22:59:00,COLLATERAL
+144424,5056.69,BBA,ASDRE,A,7098.16,507,25,AAC,FOLDERZ,LTTRS,2002-10-22 02:55:00,2003-01-15 00:59:00,COLLATERAL
+144435,5057.13,BBC,HJKSS,A,7101.27,507,26,AAD,FOLDERZ,LTTRZ,2002-10-22 03:55:00,2003-01-15 02:59:00,NOT COLLATERAL
+144446,5057.57,BBE,KHAA,A,7104.38,507,27,AAE,FOLDERZ,LTTRS,2002-10-22 04:55:00,2003-01-15 04:59:00,NOT COLLATERAL
+144457,5058.01,BBF,KSLD,A,7107.49,507,28,AAF,FOLDERZ,LTTRS,2002-10-22 05:55:00,2003-01-15 06:59:00,NOT COLLATERAL
+144468,5058.45,BBG,EKID,A,7110.6,507,29,BBA,FOLDERZ,LTTRS,2002-10-22 06:55:00,2003-01-15 08:59:00,NOT COLLATERAL
+144479,5058.89,BBH,VNCD,A,7113.71,507,30,BBC,FOLDERZ,LTTRS,2002-10-22 07:55:00,2003-01-15 10:59:00,NOT COLLATERAL
+144490,5059.33,CCA,DKD,A,7116.82,507,31,BBE,FOLDERZ,LTTRS,2002-10-22 08:55:00,2003-01-15 12:59:00,NOT COLLATERAL
+144501,5059.77,CCB,FKF,A,7119.93,507,32,BBF,FOLDERZ,LTTRS,2002-10-22 09:55:00,2003-01-15 14:59:00,NOT COLLATERAL
+144512,5060.21,CCD,LES,A,7123.04,507,33,BBG,FOLDERZ,LTTRS,2002-10-22 10:55:00,2003-01-15 16:59:00,NOT COLLATERAL
+144523,5060.65,CCE,KLD,A,7126.15,507,34,BBH,FOLDERZ,LTTRS,2002-10-22 11:55:00,2003-01-15 18:59:00,NOT COLLATERAL
+144534,5061.09,CCF,SKL,A,7129.26,507,35,CCA,FOLDERZ,LTTRS,2002-10-22 12:55:00,2003-01-15 20:59:00,COLLATERAL
+144545,5061.53,CCG,SIW,A,7132.37,507,36,CCB,FOLDERX,LTTRS,2002-10-22 13:55:00,2003-01-15 22:59:00,COLLATERAL
+144556,5061.97,CCH,CKA,A,7135.48,507,37,CCD,FOLDERX,LTTRS,2002-10-22 14:55:00,2003-01-16 00:59:00,COLLATERAL
+144567,5062.41,CCI,LDE,A,7138.59,507,38,CCE,FOLDERX,LTTRS,2002-10-22 15:55:00,2003-01-16 02:59:00,NOT COLLATERAL
+144578,5062.85,CCJ,KFF,A,7141.7,507,39,CCF,FOLDERX,LTTRS,2002-10-22 16:55:00,2003-01-16 04:59:00,NOT COLLATERAL
+144589,5063.29,DDD,EFH,A,7144.81,507,40,CCG,FOLDERX,LTTRS,2002-10-22 17:55:00,2003-01-16 06:59:00,NOT COLLATERAL
+144600,5063.73,DDA,NGC,A,7147.92,507,41,CCH,FOLDERX,LTTRZ,2002-10-22 18:55:00,2003-01-16 08:59:00,NOT COLLATERAL
+144611,5064.17,DAA,DER,A,7151.03,507,42,CCI,FOLDERX,LTTRA,2002-10-22 19:55:00,2003-01-16 10:59:00,NOT COLLATERAL
+144622,5064.61,DBB,FVG,A,7154.14,507,43,CCJ,FOLDERX,LTTRB,2002-10-22 20:55:00,2003-01-16 12:59:00,NOT COLLATERAL
+144633,5065.05,DCC,KWE,A,7157.25,507,44,DDD,FOLDERX,LTTRB,2002-10-22 21:55:00,2003-01-16 14:59:00,NOT COLLATERAL
+144644,5065.49,DEE,WER,A,7160.36,507,45,DDA,FOLDERX,LTTRA,2002-10-22 22:55:00,2003-01-16 16:59:00,NOT COLLATERAL
+144655,5065.93,DFF,GFH,A,7163.47,507,46,DAA,FOLDERX,LTTRA,2002-10-22 23:55:00,2003-01-16 18:59:00,NOT COLLATERAL
+144666,5066.37,DGG,BGF,A,7166.58,507,47,FKF,FOLDERX,LTTRS,2002-10-23 00:55:00,2003-01-16 20:59:00,COLLATERAL
+144677,5066.81,DHH,XCS,A,7169.69,507,48,LES,FOLDERR,LTTRZ,2002-10-23 01:55:00,2003-01-16 22:59:00,COLLATERAL
+144688,5067.25,AAA,JHK,A,7172.8,507,49,KLD,FOLDERS,LTTRS,2002-10-23 02:55:00,2003-01-17 00:59:00,COLLATERAL
+144699,5067.69,BBB,SFD,A,7175.91,507,48,SKL,FOLDERX,LTTRS,2002-10-23 03:55:00,2003-01-17 02:59:00,NOT COLLATERAL
+144710,5068.13,CCC,WRE,A,7179.02,507,47,SIW,FOLDERR,LTTRS,2002-10-23 04:55:00,2003-01-17 04:59:00,NOT COLLATERAL
+144721,5068.57,DDD,HGV,A,7182.13,507,46,CKA,FOLDERS,LTTRS,2002-10-23 05:55:00,2003-01-17 06:59:00,NOT COLLATERAL
+144732,5069.01,AAB,KLS,A,7185.24,507,45,LDE,FOLDERX,LTTRS,2002-10-23 06:55:00,2003-01-17 08:59:00,NOT COLLATERAL
+144743,5069.45,AAC,SDK,A,7188.35,507,44,KFF,FOLDERR,LTTRS,2002-10-23 07:55:00,2003-01-17 10:59:00,NOT COLLATERAL
+144754,5069.89,AAD,MNV,A,7191.46,507,43,EFH,FOLDERS,LTTRS,2002-10-23 08:55:00,2003-01-17 12:59:00,NOT COLLATERAL
+144765,5070.33,AAE,OKW,A,7194.57,507,42,NGC,FOLDERX,LTTRS,2002-10-23 09:55:00,2003-01-17 14:59:00,NOT COLLATERAL
+144776,5070.77,AAF,ASS,A,7197.68,507,41,DER,FOLDERR,LTTRS,2002-10-23 10:55:00,2003-01-17 16:59:00,NOT COLLATERAL
+144787,5071.21,BBA,CKA,A,7200.79,507,40,FVG,FOLDERS,LTTRS,2002-10-23 11:55:00,2003-01-17 18:59:00,NOT COLLATERAL
+144798,5071.65,BBC,SWQ,A,7203.9,507,39,KWE,FOLDERX,LTTRS,2002-10-23 12:55:00,2003-01-17 20:59:00,COLLATERAL
+144809,5072.09,BBE,KUH,A,7207.01,507,38,WER,FOLDERR,LTTRS,2002-10-23 13:55:00,2003-01-17 22:59:00,COLLATERAL
+144820,5072.53,BBF,XCV,A,7210.12,507,37,GFH,FOLDERS,LTTRS,2002-10-23 14:55:00,2003-01-18 00:59:00,COLLATERAL
+144831,5072.97,BBG,ZAQ,A,7213.23,507,36,BGF,FOLDERX,LTTRS,2002-10-23 15:55:00,2003-01-18 02:59:00,NOT COLLATERAL
+144842,5073.41,BBH,MKO,A,7216.34,507,35,XCS,FOLDERD,LTTRZ,2002-10-23 16:55:00,2003-01-18 04:59:00,NOT COLLATERAL
+144853,5073.85,CCA,VFR,A,7219.45,507,34,JHK,FOLDERE,LTTRA,2002-10-23 17:55:00,2003-01-18 06:59:00,NOT COLLATERAL
+144864,5074.29,CCB,YUJ,A,7222.56,507,33,SFD,FOLDERF,LTTRB,2002-10-23 18:55:00,2003-01-18 08:59:00,NOT COLLATERAL
+144875,5074.73,CCD,MED,A,7225.67,507,32,WRE,FOLDERG,LTTRB,2002-10-23 19:55:00,2003-01-18 10:59:00,NOT COLLATERAL
+144886,5075.17,CCE,SWE,A,7228.78,507,31,HGV,FOLDERH,LTTRA,2002-10-23 20:55:00,2003-01-18 12:59:00,NOT COLLATERAL
+144897,5075.61,CCF,CVF,A,7231.89,507,30,KLS,FOLDERI,LTTRA,2002-10-23 21:55:00,2003-01-18 14:59:00,NOT COLLATERAL
+144908,5076.05,CCG,DSFG,A,7235,507,29,SDK,FOLDERJ,LTTRS,2002-10-23 22:55:00,2003-01-18 16:59:00,NOT COLLATERAL
+144919,5076.49,CCH,ASDRE,A,7238.11,507,28,MNV,FOLDERK,LTTRZ,2002-10-23 23:55:00,2003-01-18 18:59:00,NOT COLLATERAL
+144930,5076.93,CCI,HJKSS,A,7241.22,507,27,OKW,FOLDERL,LTTRS,2002-10-24 00:55:00,2003-01-18 20:59:00,COLLATERAL
+144941,5077.37,CCJ,KHAA,A,7244.33,507,26,ASS,FOLDERM,LTTRS,2002-10-24 01:55:00,2003-01-18 22:59:00,COLLATERAL
+144952,5077.81,DDD,KSLD,A,7247.44,507,25,CKA,FOLDERN,LTTRS,2002-10-24 02:55:00,2003-01-19 00:59:00,COLLATERAL
+144963,5078.25,DDA,EKID,A,7250.55,507,24,SWQ,FOLDERN,LTTRS,2002-10-24 03:55:00,2003-01-19 02:59:00,NOT COLLATERAL
+144974,5078.69,DAA,VNCD,A,7253.66,507,23,KUH,FOLDERN,LTTRS,2002-10-24 04:55:00,2003-01-19 04:59:00,NOT COLLATERAL
+144985,5079.13,DBB,DKD,A,7256.77,507,22,XCV,FOLDERN,LTTRS,2002-10-24 05:55:00,2003-01-19 06:59:00,NOT COLLATERAL
+144996,5079.57,DCC,FKF,A,7259.88,507,21,ZAQ,FOLDERL,LTTRS,2002-10-24 06:55:00,2003-01-19 08:59:00,NOT COLLATERAL
+145007,5080.01,DEE,LES,A,7262.99,507,20,MKO,FOLDERL,LTTRS,2002-10-24 07:55:00,2003-01-19 10:59:00,NOT COLLATERAL
+145018,5080.45,DFF,KLD,A,7266.1,507,19,VFR,FOLDERL,LTTRS,2002-10-24 08:55:00,2003-01-19 12:59:00,NOT COLLATERAL
+145029,5080.89,DGG,SKL,A,7269.21,507,18,YUJ,FOLDERL,LTTRS,2002-10-24 09:55:00,2003-01-19 14:59:00,NOT COLLATERAL
+145040,5081.33,DHH,SIW,A,7272.32,507,17,AAA,FOLDERL,LTTRS,2002-10-24 10:55:00,2003-01-19 16:59:00,NOT COLLATERAL
+145051,5081.77,AAA,CKA,A,7275.43,507,16,BBB,FOLDERA,LTTRS,2002-10-24 11:55:00,2003-01-19 18:59:00,NOT COLLATERAL
+145062,5082.21,BBB,LDE,A,7278.54,507,15,CCC,FOLDERB,LTTRS,2002-10-24 12:55:00,2003-01-19 20:59:00,COLLATERAL
+145073,5082.65,CCC,KFF,A,7281.65,507,14,DDD,FOLDERC,LTTRS,2002-10-24 13:55:00,2003-01-19 22:59:00,COLLATERAL
+145084,5083.09,DDD,EFH,A,7284.76,507,13,AAB,FOLDERD,LTTRZ,2002-10-24 14:55:00,2003-01-20 00:59:00,COLLATERAL
+145095,5083.53,AAB,NGC,A,7287.87,507,12,AAC,FOLDERE,LTTRA,2002-10-24 15:55:00,2003-01-20 02:59:00,NOT COLLATERAL
+145106,5083.97,AAC,DER,A,7290.98,507,11,AAD,FOLDERF,LTTRB,2002-10-24 16:55:00,2003-01-20 04:59:00,NOT COLLATERAL
+145117,5084.41,AAD,FVG,A,7294.09,507,10,AAE,FOLDERG,LTTRB,2002-10-24 17:55:00,2003-01-20 06:59:00,NOT COLLATERAL
+145128,5084.85,AAE,KWE,A,7297.2,507,9,AAF,FOLDERH,LTTRA,2002-10-24 18:55:00,2003-01-20 08:59:00,NOT COLLATERAL
+145139,5085.29,AAF,WER,A,7300.31,507,8,BBA,FOLDERI,LTTRA,2002-10-24 19:55:00,2003-01-20 10:59:00,NOT COLLATERAL
+145150,5085.73,BBA,GFH,A,7303.42,507,7,BBC,FOLDERJ,LTTRS,2002-10-24 20:55:00,2003-01-20 12:59:00,NOT COLLATERAL
+145161,5086.17,BBC,BGF,A,7306.53,507,6,BBE,FOLDERK,LTTRZ,2002-10-24 21:55:00,2003-01-20 14:59:00,NOT COLLATERAL
+145172,5086.61,BBE,XCS,A,7309.64,507,5,BBF,FOLDERL,LTTRS,2002-10-24 22:55:00,2003-01-20 16:59:00,NOT COLLATERAL
+145183,5087.05,BBF,JHK,A,7312.75,507,4,BBG,FOLDERM,LTTRS,2002-10-24 23:55:00,2003-01-20 18:59:00,NOT COLLATERAL
+145194,5087.49,BBG,SFD,A,7315.86,507,3,BBH,FOLDERN,LTTRS,2002-10-25 00:55:00,2003-01-20 20:59:00,COLLATERAL
+145205,5087.93,BBH,WRE,A,7318.97,507,1,CCA,FOLDERO,LTTRS,2002-10-25 01:55:00,2003-01-20 22:59:00,COLLATERAL
+145216,5088.37,CCA,HGV,A,7322.08,507,2,CCB,FOLDERP,LTTRS,2002-10-25 02:55:00,2003-01-21 00:59:00,COLLATERAL
+145227,5088.81,CCB,KLS,A,7325.19,507,3,CCD,FOLDERQ,LTTRS,2002-10-25 03:55:00,2003-01-21 02:59:00,NOT COLLATERAL
+145238,5089.25,CCD,SDK,A,7328.3,507,4,CCE,FOLDERR,LTTRS,2002-10-25 04:55:00,2003-01-21 04:59:00,NOT COLLATERAL
+145249,5089.69,CCE,MNV,A,7331.41,507,5,CCF,FOLDERS,LTTRS,2002-10-25 05:55:00,2003-01-21 06:59:00,NOT COLLATERAL
+145260,5090.13,CCF,OKW,A,7334.52,507,6,CCG,FOLDERT,LTTRS,2002-10-25 06:55:00,2003-01-21 08:59:00,NOT COLLATERAL
+145271,5090.57,CCG,ASS,A,7337.63,507,7,CCH,FOLDERU,LTTRS,2002-10-25 07:55:00,2003-01-21 10:59:00,NOT COLLATERAL
+145282,5091.01,CCH,CKA,A,7340.74,507,8,CCI,FOLDERV,LTTRS,2002-10-25 08:55:00,2003-01-21 12:59:00,NOT COLLATERAL
+145293,5091.45,CCI,SWQ,A,7343.85,507,9,CCJ,FOLDERW,LTTRS,2002-10-25 09:55:00,2003-01-21 14:59:00,NOT COLLATERAL
+145304,5091.89,CCJ,KUH,A,7346.96,507,10,DDD,FOLDERX,LTTRS,2002-10-25 10:55:00,2003-01-21 16:59:00,NOT COLLATERAL
+145315,5092.33,DDD,XCV,A,7350.07,507,11,DDA,FOLDERY,LTTRS,2002-10-25 11:55:00,2003-01-21 18:59:00,NOT COLLATERAL
+145326,5092.77,DDA,ZAQ,A,7353.18,507,12,DAA,FOLDERZ,LTTRZ,2002-10-25 12:55:00,2003-01-21 20:59:00,COLLATERAL
+145337,5093.21,DAA,MKO,A,7356.29,507,13,FKF,FOLDERA,LTTRA,2002-10-25 13:55:00,2003-01-21 22:59:00,COLLATERAL
+145348,5093.65,DBB,VFR,A,7359.4,507,14,LES,FOLDERB,LTTRB,2002-10-25 14:55:00,2003-01-22 00:59:00,COLLATERAL
+145359,5094.09,DCC,YUJ,A,7362.51,507,15,KLD,FOLDERC,LTTRB,2002-10-25 15:55:00,2003-01-22 02:59:00,NOT COLLATERAL
+145370,5094.53,DEE,MED,A,7365.62,507,16,SKL,FOLDERD,LTTRA,2002-10-25 16:55:00,2003-01-22 04:59:00,NOT COLLATERAL
+145381,5094.97,DFF,SWE,A,7368.73,507,17,SIW,FOLDERE,LTTRA,2002-10-25 17:55:00,2003-01-22 06:59:00,NOT COLLATERAL
+145392,5095.41,DGG,CVF,A,7371.84,507,18,CKA,FOLDERF,LTTRS,2002-10-25 18:55:00,2003-01-22 08:59:00,NOT COLLATERAL
+145403,5095.85,DHH,DSFG,A,7374.95,507,19,LDE,FOLDERG,LTTRZ,2002-10-25 19:55:00,2003-01-22 10:59:00,NOT COLLATERAL
+145414,5096.29,AAA,ASDRE,A,7378.06,507,20,KFF,FOLDERH,LTTRS,2002-10-25 20:55:00,2003-01-22 12:59:00,NOT COLLATERAL
+145425,5096.73,BBB,HJKSS,A,7381.17,507,21,EFH,FOLDERI,LTTRS,2002-10-25 21:55:00,2003-01-22 14:59:00,NOT COLLATERAL
+145436,5097.17,CCC,KHAA,A,7384.28,507,22,NGC,FOLDERJ,LTTRS,2002-10-25 22:55:00,2003-01-22 16:59:00,NOT COLLATERAL
+145447,5097.61,DDD,KSLD,A,7387.39,507,23,DER,FOLDERK,LTTRS,2002-10-25 23:55:00,2003-01-22 18:59:00,NOT COLLATERAL
+145458,5098.05,AAB,EKID,A,7390.5,507,24,FVG,FOLDERL,LTTRS,2002-10-26 00:55:00,2003-01-22 20:59:00,COLLATERAL
+145469,5098.49,AAC,VNCD,A,7393.61,507,25,KWE,FOLDERM,LTTRS,2002-10-26 01:55:00,2003-01-22 22:59:00,COLLATERAL
+145480,5098.93,AAD,DKD,A,7396.72,507,26,WER,FOLDERN,LTTRS,2002-10-26 02:55:00,2003-01-23 00:59:00,COLLATERAL
+145491,5099.37,AAE,FKF,A,7399.83,507,27,GFH,FOLDERO,LTTRS,2002-10-26 03:55:00,2003-01-23 02:59:00,NOT COLLATERAL
+145502,5099.81,AAF,LES,A,7402.94,507,28,BGF,FOLDERP,LTTRS,2002-10-26 04:55:00,2003-01-23 04:59:00,NOT COLLATERAL
+145513,5100.25,BBA,KLD,A,7406.05,507,29,XCS,FOLDERQ,LTTRS,2002-10-26 05:55:00,2003-01-23 06:59:00,NOT COLLATERAL
+145524,5100.69,BBC,SKL,A,7409.16,507,30,JHK,FOLDERR,LTTRS,2002-10-26 06:55:00,2003-01-23 08:59:00,NOT COLLATERAL
+145535,5101.13,BBE,SIW,A,7412.27,507,31,SFD,FOLDERS,LTTRS,2002-10-26 07:55:00,2003-01-23 10:59:00,NOT COLLATERAL
+145546,5101.57,BBF,CKA,A,7415.38,507,32,WRE,FOLDERT,LTTRS,2002-10-26 08:55:00,2003-01-23 12:59:00,NOT COLLATERAL
+145557,5102.01,BBG,LDE,A,7418.49,507,33,HGV,FOLDERU,LTTRS,2002-10-26 09:55:00,2003-01-23 14:59:00,NOT COLLATERAL
+145568,5102.45,BBH,KFF,A,7421.6,507,34,KLS,FOLDERV,LTTRZ,2002-10-26 10:55:00,2003-01-23 16:59:00,NOT COLLATERAL
+145579,5102.89,CCA,EFH,A,7424.71,507,35,SDK,FOLDERW,LTTRA,2002-10-26 11:55:00,2003-01-23 18:59:00,NOT COLLATERAL
+145590,5103.33,CCB,NGC,A,7427.82,507,36,MNV,FOLDERX,LTTRB,2002-10-26 12:55:00,2003-01-23 20:59:00,COLLATERAL
+145601,5103.77,CCD,DER,A,7430.93,507,37,OKW,FOLDERY,LTTRB,2002-10-26 13:55:00,2003-01-23 22:59:00,COLLATERAL
+145612,5104.21,CCE,FVG,A,7434.04,507,38,ASS,FOLDERZ,LTTRA,2002-10-26 14:55:00,2003-01-24 00:59:00,COLLATERAL
+145623,5104.65,CCF,KWE,A,7437.15,507,39,CKA,FOLDERZ,LTTRA,2002-10-26 15:55:00,2003-01-24 02:59:00,NOT COLLATERAL
+145634,5105.09,CCG,WER,A,7440.26,507,40,SWQ,FOLDERZ,LTTRS,2002-10-26 16:55:00,2003-01-24 04:59:00,NOT COLLATERAL
+145645,5105.53,CCH,GFH,A,7443.37,507,41,KUH,FOLDERZ,LTTRZ,2002-10-26 17:55:00,2003-01-24 06:59:00,NOT COLLATERAL
+145656,5105.97,CCI,BGF,A,7446.48,507,42,XCV,FOLDERZ,LTTRS,2002-10-26 18:55:00,2003-01-24 08:59:00,NOT COLLATERAL
+145667,5106.41,CCJ,XCS,A,7449.59,507,43,ZAQ,FOLDERZ,LTTRS,2002-10-26 19:55:00,2003-01-24 10:59:00,NOT COLLATERAL
+145678,5106.85,DDD,JHK,A,7452.7,507,44,MKO,FOLDERZ,LTTRS,2002-10-26 20:55:00,2003-01-24 12:59:00,NOT COLLATERAL
+145689,5107.29,DDA,SFD,A,7455.81,507,45,VFR,FOLDERZ,LTTRS,2002-10-26 21:55:00,2003-01-24 14:59:00,NOT COLLATERAL
+145700,5107.73,DAA,WRE,A,7458.92,507,46,YUJ,FOLDERZ,LTTRS,2002-10-26 22:55:00,2003-01-24 16:59:00,NOT COLLATERAL
+145711,5108.17,DBB,HGV,A,7462.03,507,47,AAA,FOLDERZ,LTTRS,2002-10-26 23:55:00,2003-01-24 18:59:00,NOT COLLATERAL
+145722,5108.61,DCC,KLS,A,7465.14,507,48,BBB,FOLDERZ,LTTRS,2002-10-27 00:55:00,2003-01-24 20:59:00,COLLATERAL
+145733,5109.05,DEE,SDK,A,7468.25,507,49,CCC,FOLDERZ,LTTRS,2002-10-27 01:55:00,2003-01-24 22:59:00,COLLATERAL
+145744,5109.49,DFF,MNV,A,7471.36,507,48,DDD,FOLDERZ,LTTRS,2002-10-27 02:55:00,2003-01-25 00:59:00,COLLATERAL
+145755,5109.93,DGG,OKW,A,7474.47,507,47,AAB,FOLDERZ,LTTRS,2002-10-27 03:55:00,2003-01-25 02:59:00,NOT COLLATERAL
+145766,5110.37,DHH,ASS,A,7477.58,507,46,AAC,FOLDERX,LTTRS,2002-10-27 04:55:00,2003-01-25 04:59:00,NOT COLLATERAL
+145777,5110.81,AAA,CKA,A,7480.69,507,45,AAD,FOLDERX,LTTRS,2002-10-27 05:55:00,2003-01-25 06:59:00,NOT COLLATERAL
+145788,5111.25,BBB,SWQ,A,7483.8,507,44,AAE,FOLDERX,LTTRS,2002-10-27 06:55:00,2003-01-25 08:59:00,NOT COLLATERAL
+145799,5111.69,CCC,KUH,A,7486.91,507,43,AAF,FOLDERX,LTTRS,2002-10-27 07:55:00,2003-01-25 10:59:00,NOT COLLATERAL
+145810,5112.13,DDD,XCV,A,7490.02,507,42,BBA,FOLDERX,LTTRZ,2002-10-27 08:55:00,2003-01-25 12:59:00,NOT COLLATERAL
+145821,5112.57,AAB,ZAQ,A,7493.13,507,41,BBC,FOLDERX,LTTRA,2002-10-27 09:55:00,2003-01-25 14:59:00,NOT COLLATERAL
+145832,5113.01,AAC,MKO,A,7496.24,507,40,BBE,FOLDERX,LTTRB,2002-10-27 10:55:00,2003-01-25 16:59:00,NOT COLLATERAL
+145843,5113.45,AAD,VFR,A,7499.35,507,39,BBF,FOLDERX,LTTRB,2002-10-27 11:55:00,2003-01-25 18:59:00,NOT COLLATERAL
+145854,5113.89,AAE,YUJ,A,7502.46,507,38,BBG,FOLDERX,LTTRA,2002-10-27 12:55:00,2003-01-25 20:59:00,COLLATERAL
+145865,5114.33,AAF,MED,A,7505.57,507,37,BBH,FOLDERX,LTTRA,2002-10-27 13:55:00,2003-01-25 22:59:00,COLLATERAL
+145876,5114.77,BBA,SWE,A,7508.68,507,36,CCA,FOLDERX,LTTRS,2002-10-27 14:55:00,2003-01-26 00:59:00,COLLATERAL
+145887,5115.21,BBC,CVF,A,7511.79,507,35,CCB,FOLDERX,LTTRZ,2002-10-27 15:55:00,2003-01-26 02:59:00,NOT COLLATERAL
+145898,5115.65,BBE,DSFG,A,7514.9,507,34,CCD,FOLDERR,LTTRS,2002-10-27 16:55:00,2003-01-26 04:59:00,NOT COLLATERAL
+145909,5116.09,BBF,ASDRE,A,7518.01,507,33,CCE,FOLDERS,LTTRS,2002-10-27 17:55:00,2003-01-26 06:59:00,NOT COLLATERAL
+145920,5116.53,BBG,HJKSS,A,7521.12,507,32,CCF,FOLDERX,LTTRS,2002-10-27 18:55:00,2003-01-26 08:59:00,NOT COLLATERAL
+145931,5116.97,BBH,KHAA,A,7524.23,507,31,CCG,FOLDERR,LTTRS,2002-10-27 19:55:00,2003-01-26 10:59:00,NOT COLLATERAL
+145942,5117.41,CCA,KSLD,A,7527.34,507,30,CCH,FOLDERS,LTTRS,2002-10-27 20:55:00,2003-01-26 12:59:00,NOT COLLATERAL
+145953,5117.85,CCB,EKID,A,7530.45,507,29,CCI,FOLDERX,LTTRS,2002-10-27 21:55:00,2003-01-26 14:59:00,NOT COLLATERAL
+145964,5118.29,CCD,VNCD,A,7533.56,507,28,CCJ,FOLDERR,LTTRS,2002-10-27 22:55:00,2003-01-26 16:59:00,NOT COLLATERAL
+145975,5118.73,CCE,DKD,A,7536.67,507,27,DDD,FOLDERS,LTTRS,2002-10-27 23:55:00,2003-01-26 18:59:00,NOT COLLATERAL
+145986,5119.17,CCF,FKF,A,7539.78,507,26,DDA,FOLDERX,LTTRS,2002-10-28 00:55:00,2003-01-26 20:59:00,COLLATERAL
+145997,5119.61,CCG,LES,A,7542.89,507,25,DAA,FOLDERR,LTTRS,2002-10-28 01:55:00,2003-01-26 22:59:00,COLLATERAL
+146008,5120.05,CCH,KLD,A,7546,507,24,FKF,FOLDERS,LTTRS,2002-10-28 02:55:00,2003-01-27 00:59:00,COLLATERAL
+146019,5120.49,CCI,SKL,A,7549.11,507,23,LES,FOLDERX,LTTRS,2002-10-28 03:55:00,2003-01-27 02:59:00,NOT COLLATERAL
+146030,5120.93,CCJ,SIW,A,7552.22,507,22,KLD,FOLDERR,LTTRS,2002-10-28 04:55:00,2003-01-27 04:59:00,NOT COLLATERAL
+146041,5121.37,DDD,CKA,A,7555.33,507,21,SKL,FOLDERS,LTTRS,2002-10-28 05:55:00,2003-01-27 06:59:00,NOT COLLATERAL
+146052,5121.81,DDA,LDE,A,7558.44,507,20,SIW,FOLDERX,LTTRZ,2002-10-28 06:55:00,2003-01-27 08:59:00,NOT COLLATERAL
+146063,5122.25,DAA,KFF,A,7561.55,507,19,CKA,FOLDERD,LTTRA,2002-10-28 07:55:00,2003-01-27 10:59:00,NOT COLLATERAL
+146074,5122.69,DBB,EFH,A,7564.66,507,18,LDE,FOLDERE,LTTRB,2002-10-28 08:55:00,2003-01-27 12:59:00,NOT COLLATERAL
+146085,5123.13,DCC,NGC,A,7567.77,507,17,KFF,FOLDERF,LTTRB,2002-10-28 09:55:00,2003-01-27 14:59:00,NOT COLLATERAL
+146096,5123.57,DEE,DER,A,7570.88,507,16,EFH,FOLDERG,LTTRA,2002-10-28 10:55:00,2003-01-27 16:59:00,NOT COLLATERAL
+146107,5124.01,DFF,FVG,A,7573.99,507,15,NGC,FOLDERH,LTTRA,2002-10-28 11:55:00,2003-01-27 18:59:00,NOT COLLATERAL
+146118,5124.45,DGG,KWE,A,7577.1,507,14,DER,FOLDERI,LTTRS,2002-10-28 12:55:00,2003-01-27 20:59:00,COLLATERAL
+146129,5124.89,DHH,WER,A,7580.21,507,13,FVG,FOLDERJ,LTTRZ,2002-10-28 13:55:00,2003-01-27 22:59:00,COLLATERAL
+146140,5125.33,AAA,GFH,A,7583.32,507,12,KWE,FOLDERK,LTTRS,2002-10-28 14:55:00,2003-01-28 00:59:00,COLLATERAL
+146151,5125.77,BBB,BGF,A,7586.43,507,11,WER,FOLDERL,LTTRS,2002-10-28 15:55:00,2003-01-28 02:59:00,NOT COLLATERAL
+146162,5126.21,CCC,XCS,A,7589.54,507,10,GFH,FOLDERM,LTTRS,2002-10-28 16:55:00,2003-01-28 04:59:00,NOT COLLATERAL
+146173,5126.65,DDD,JHK,A,7592.65,507,9,BGF,FOLDERN,LTTRS,2002-10-28 17:55:00,2003-01-28 06:59:00,NOT COLLATERAL
+146184,5127.09,AAB,SFD,A,7595.76,507,8,XCS,FOLDERN,LTTRS,2002-10-28 18:55:00,2003-01-28 08:59:00,NOT COLLATERAL
+146195,5127.53,AAC,WRE,A,7598.87,507,7,JHK,FOLDERN,LTTRS,2002-10-28 19:55:00,2003-01-28 10:59:00,NOT COLLATERAL
+146206,5127.97,AAD,HGV,A,7601.98,507,6,SFD,FOLDERN,LTTRS,2002-10-28 20:55:00,2003-01-28 12:59:00,NOT COLLATERAL
+146217,5128.41,AAE,KLS,A,7605.09,507,5,WRE,FOLDERL,LTTRS,2002-10-28 21:55:00,2003-01-28 14:59:00,NOT COLLATERAL
+146228,5128.85,AAF,SDK,A,7608.2,507,4,HGV,FOLDERL,LTTRS,2002-10-28 22:55:00,2003-01-28 16:59:00,NOT COLLATERAL
+146239,5129.29,BBA,MNV,A,7611.31,507,3,KLS,FOLDERL,LTTRS,2002-10-28 23:55:00,2003-01-28 18:59:00,NOT COLLATERAL
+146250,5129.73,BBC,OKW,A,7614.42,507,1,SDK,FOLDERL,LTTRS,2002-10-29 00:55:00,2003-01-28 20:59:00,COLLATERAL
+146261,5130.17,BBE,ASS,A,7617.53,507,2,MNV,FOLDERL,LTTRS,2002-10-29 01:55:00,2003-01-28 22:59:00,COLLATERAL
+146272,5130.61,BBF,CKA,A,7620.64,507,3,OKW,FOLDERA,LTTRS,2002-10-29 02:55:00,2003-01-29 00:59:00,COLLATERAL
+146283,5131.05,BBG,SWQ,A,7623.75,507,4,ASS,FOLDERB,LTTRS,2002-10-29 03:55:00,2003-01-29 02:59:00,NOT COLLATERAL
+146294,5131.49,BBH,KUH,A,7626.86,507,5,CKA,FOLDERC,LTTRZ,2002-10-29 04:55:00,2003-01-29 04:59:00,NOT COLLATERAL
+146305,5131.93,CCA,XCV,A,7629.97,507,6,SWQ,FOLDERD,LTTRA,2002-10-29 05:55:00,2003-01-29 06:59:00,NOT COLLATERAL
+146316,5132.37,CCB,ZAQ,A,7633.08,507,7,KUH,FOLDERE,LTTRB,2002-10-29 06:55:00,2003-01-29 08:59:00,NOT COLLATERAL
+146327,5132.81,CCD,MKO,A,7636.19,507,8,XCV,FOLDERF,LTTRB,2002-10-29 07:55:00,2003-01-29 10:59:00,NOT COLLATERAL
+146338,5133.25,CCE,VFR,A,7639.3,507,9,ZAQ,FOLDERG,LTTRA,2002-10-29 08:55:00,2003-01-29 12:59:00,NOT COLLATERAL
+146349,5133.69,CCF,YUJ,A,7642.41,507,10,MKO,FOLDERH,LTTRA,2002-10-29 09:55:00,2003-01-29 14:59:00,NOT COLLATERAL
+146360,5134.13,CCG,MED,A,7645.52,507,11,VFR,FOLDERI,LTTRS,2002-10-29 10:55:00,2003-01-29 16:59:00,NOT COLLATERAL
+146371,5134.57,CCH,SWE,A,7648.63,507,12,YUJ,FOLDERJ,LTTRZ,2002-10-29 11:55:00,2003-01-29 18:59:00,NOT COLLATERAL
+146382,5135.01,CCI,CVF,A,7651.74,507,13,AAA,FOLDERK,LTTRS,2002-10-29 12:55:00,2003-01-29 20:59:00,COLLATERAL
+146393,5135.45,CCJ,DSFG,A,7654.85,507,14,BBB,FOLDERL,LTTRS,2002-10-29 13:55:00,2003-01-29 22:59:00,COLLATERAL
+146404,5135.89,DDD,ASDRE,A,7657.96,507,15,CCC,FOLDERM,LTTRS,2002-10-29 14:55:00,2003-01-30 00:59:00,COLLATERAL
+146415,5136.33,DDA,HJKSS,A,7661.07,507,16,DDD,FOLDERN,LTTRS,2002-10-29 15:55:00,2003-01-30 02:59:00,NOT COLLATERAL
+146426,5136.77,DAA,KHAA,A,7664.18,507,17,AAB,FOLDERO,LTTRS,2002-10-29 16:55:00,2003-01-30 04:59:00,NOT COLLATERAL
+146437,5137.21,DBB,KSLD,A,7667.29,507,18,AAC,FOLDERP,LTTRS,2002-10-29 17:55:00,2003-01-30 06:59:00,NOT COLLATERAL
+146448,5137.65,DCC,EKID,A,7670.4,507,19,AAD,FOLDERQ,LTTRS,2002-10-29 18:55:00,2003-01-30 08:59:00,NOT COLLATERAL
+146459,5138.09,DEE,VNCD,A,7673.51,507,20,AAE,FOLDERR,LTTRS,2002-10-29 19:55:00,2003-01-30 10:59:00,NOT COLLATERAL
+146470,5138.53,DFF,DKD,A,7676.62,507,21,AAF,FOLDERS,LTTRS,2002-10-29 20:55:00,2003-01-30 12:59:00,NOT COLLATERAL
+146481,5138.97,DGG,FKF,A,7679.73,507,22,BBA,FOLDERT,LTTRS,2002-10-29 21:55:00,2003-01-30 14:59:00,NOT COLLATERAL
+146492,5139.41,DHH,LES,A,7682.84,507,23,BBC,FOLDERU,LTTRS,2002-10-29 22:55:00,2003-01-30 16:59:00,NOT COLLATERAL
+146503,5139.85,AAA,KLD,A,7685.95,507,24,BBE,FOLDERV,LTTRS,2002-10-29 23:55:00,2003-01-30 18:59:00,NOT COLLATERAL
+146514,5140.29,BBB,SKL,A,7689.06,507,25,BBF,FOLDERW,LTTRS,2002-10-30 00:55:00,2003-01-30 20:59:00,COLLATERAL
+146525,5140.73,CCC,SIW,A,7692.17,507,26,BBG,FOLDERX,LTTRS,2002-10-30 01:55:00,2003-01-30 22:59:00,COLLATERAL
+146536,5141.17,DDD,CKA,A,7695.28,507,27,BBH,FOLDERY,LTTRZ,2002-10-30 02:55:00,2003-01-31 00:59:00,COLLATERAL
+146547,5141.61,AAB,LDE,A,7698.39,507,28,CCA,FOLDERZ,LTTRA,2002-10-30 03:54:00,2003-01-31 02:59:00,NOT COLLATERAL
+146558,5142.05,AAC,KFF,A,7701.5,507,29,CCB,FOLDERA,LTTRB,2002-10-30 04:54:00,2003-01-31 04:59:00,NOT COLLATERAL
+146569,5142.49,AAD,EFH,A,7704.61,507,30,CCD,FOLDERB,LTTRB,2002-10-30 05:54:00,2003-01-31 06:59:00,NOT COLLATERAL
+146580,5142.93,AAE,NGC,A,7707.72,507,31,CCE,FOLDERC,LTTRA,2002-10-30 06:54:00,2003-01-31 08:59:00,NOT COLLATERAL
+146591,5143.37,AAF,DER,A,7710.83,507,32,CCF,FOLDERD,LTTRA,2002-10-30 07:54:00,2003-01-31 10:59:00,NOT COLLATERAL
+146602,5143.81,BBA,FVG,A,7713.94,507,33,CCG,FOLDERE,LTTRS,2002-10-30 08:54:00,2003-01-31 12:59:00,NOT COLLATERAL
+146613,5144.25,BBC,KWE,A,7717.05,507,34,CCH,FOLDERF,LTTRZ,2002-10-30 09:54:00,2003-01-31 14:59:00,NOT COLLATERAL
+146624,5144.69,BBE,WER,A,7720.16,507,35,CCI,FOLDERG,LTTRS,2002-10-30 10:54:00,2003-01-31 16:59:00,NOT COLLATERAL
+146635,5145.13,BBF,GFH,A,7723.27,507,36,CCJ,FOLDERH,LTTRS,2002-10-30 11:54:00,2003-01-31 18:59:00,NOT COLLATERAL
+146646,5145.57,BBG,BGF,A,7726.38,507,37,DDD,FOLDERI,LTTRS,2002-10-30 12:54:00,2003-01-31 20:59:00,COLLATERAL
+146657,5146.01,BBH,XCS,A,7729.49,507,38,DDA,FOLDERJ,LTTRS,2002-10-30 13:54:00,2003-01-31 22:59:00,COLLATERAL
+146668,5146.45,CCA,JHK,A,7732.6,507,39,DAA,FOLDERK,LTTRS,2002-10-30 14:54:00,2003-02-01 00:59:00,COLLATERAL
+146679,5146.89,CCB,SFD,A,7735.71,507,40,FKF,FOLDERL,LTTRS,2002-10-30 15:54:00,2003-02-01 02:59:00,NOT COLLATERAL
+146690,5147.33,CCD,WRE,A,7738.82,507,41,LES,FOLDERM,LTTRS,2002-10-30 16:54:00,2003-02-01 04:59:00,NOT COLLATERAL
+146701,5147.77,CCE,HGV,A,7741.93,507,42,KLD,FOLDERN,LTTRS,2002-10-30 17:54:00,2003-02-01 06:59:00,NOT COLLATERAL
+146712,5148.21,CCF,KLS,A,7745.04,507,43,SKL,FOLDERO,LTTRS,2002-10-30 18:54:00,2003-02-01 08:59:00,NOT COLLATERAL
+146723,5148.65,CCG,SDK,A,7748.15,507,44,SIW,FOLDERP,LTTRS,2002-10-30 19:54:00,2003-02-01 10:59:00,NOT COLLATERAL
+146734,5149.09,CCH,MNV,A,7751.26,507,45,CKA,FOLDERQ,LTTRS,2002-10-30 20:54:00,2003-02-01 12:59:00,NOT COLLATERAL
+146745,5149.53,CCI,OKW,A,7754.37,507,46,LDE,FOLDERR,LTTRS,2002-10-30 21:54:00,2003-02-01 14:59:00,NOT COLLATERAL
+146756,5149.97,CCJ,ASS,A,7757.48,507,47,KFF,FOLDERS,LTTRS,2002-10-30 22:54:00,2003-02-01 16:59:00,NOT COLLATERAL
+146767,5150.41,DDD,CKA,A,7760.59,507,48,EFH,FOLDERT,LTTRS,2002-10-30 23:54:00,2003-02-01 18:59:00,NOT COLLATERAL
+146778,5150.85,DDA,SWQ,A,7763.7,507,49,NGC,FOLDERU,LTTRZ,2002-10-31 00:54:00,2003-02-01 20:59:00,COLLATERAL
+146789,5151.29,DAA,KUH,A,7766.81,507,48,DER,FOLDERV,LTTRA,2002-10-31 01:54:00,2003-02-01 22:59:00,COLLATERAL
+146800,5151.73,DBB,XCV,A,7769.92,507,47,FVG,FOLDERW,LTTRB,2002-10-31 02:54:00,2003-02-02 00:59:00,COLLATERAL
+146811,5152.17,DCC,ZAQ,A,7773.03,507,46,KWE,FOLDERX,LTTRB,2002-10-31 03:54:00,2003-02-02 02:59:00,NOT COLLATERAL
+146822,5152.61,DEE,MKO,A,7776.14,507,45,WER,FOLDERY,LTTRA,2002-10-31 04:54:00,2003-02-02 04:59:00,NOT COLLATERAL
+146833,5153.05,DFF,VFR,A,7779.25,507,44,GFH,FOLDERZ,LTTRA,2002-10-31 05:54:00,2003-02-02 06:59:00,NOT COLLATERAL
+146844,5153.49,DGG,YUJ,A,7782.36,507,43,BGF,FOLDERZ,LTTRS,2002-10-31 06:54:00,2003-02-02 08:59:00,NOT COLLATERAL
+146855,5153.93,DHH,MED,A,7785.47,507,42,XCS,FOLDERZ,LTTRZ,2002-10-31 07:54:00,2003-02-02 10:59:00,NOT COLLATERAL
+146866,5154.37,AAA,SWE,A,7788.58,507,41,JHK,FOLDERZ,LTTRS,2002-10-31 08:54:00,2003-02-02 12:59:00,NOT COLLATERAL
+146877,5154.81,BBB,CVF,A,7791.69,507,40,SFD,FOLDERZ,LTTRS,2002-10-31 09:54:00,2003-02-02 14:59:00,NOT COLLATERAL
+146888,5155.25,CCC,DSFG,A,7794.8,507,39,WRE,FOLDERZ,LTTRS,2002-10-31 10:54:00,2003-02-02 16:59:00,NOT COLLATERAL
+146899,5155.69,DDD,ASDRE,A,7797.91,507,38,HGV,FOLDERZ,LTTRS,2002-10-31 11:54:00,2003-02-02 18:59:00,NOT COLLATERAL
+146910,5156.13,AAB,HJKSS,A,7801.02,507,37,KLS,FOLDERZ,LTTRS,2002-10-31 12:54:00,2003-02-02 20:59:00,COLLATERAL
+146921,5156.57,AAC,KHAA,A,7804.13,507,36,SDK,FOLDERZ,LTTRS,2002-10-31 13:54:00,2003-02-02 22:59:00,COLLATERAL
+146932,5157.01,AAD,KSLD,A,7807.24,507,35,MNV,FOLDERZ,LTTRS,2002-10-31 14:54:00,2003-02-03 00:59:00,COLLATERAL
+146943,5157.45,AAE,EKID,A,7810.35,507,34,OKW,FOLDERZ,LTTRS,2002-10-31 15:54:00,2003-02-03 02:59:00,NOT COLLATERAL
+146954,5157.89,AAF,VNCD,A,7813.46,507,33,ASS,FOLDERZ,LTTRS,2002-10-31 16:54:00,2003-02-03 04:59:00,NOT COLLATERAL
+146965,5158.33,BBA,DKD,A,7816.57,507,32,CKA,FOLDERZ,LTTRS,2002-10-31 17:54:00,2003-02-03 06:59:00,NOT COLLATERAL
+146976,5158.77,BBC,FKF,A,7819.68,507,31,SWQ,FOLDERZ,LTTRS,2002-10-31 18:54:00,2003-02-03 08:59:00,NOT COLLATERAL
+146987,5159.21,BBE,LES,A,7822.79,507,30,KUH,FOLDERX,LTTRS,2002-10-31 19:54:00,2003-02-03 10:59:00,NOT COLLATERAL
+146998,5159.65,BBF,KLD,A,7825.9,507,29,XCV,FOLDERX,LTTRS,2002-10-31 20:54:00,2003-02-03 12:59:00,NOT COLLATERAL
+147009,5160.09,BBG,SKL,A,7829.01,507,28,ZAQ,FOLDERX,LTTRS,2002-10-31 21:54:00,2003-02-03 14:59:00,NOT COLLATERAL
+147020,5160.53,BBH,SIW,A,7832.12,507,27,MKO,FOLDERX,LTTRZ,2002-10-31 22:54:00,2003-02-03 16:59:00,NOT COLLATERAL
+147031,5160.97,CCA,CKA,A,7835.23,507,26,VFR,FOLDERX,LTTRA,2002-10-31 23:54:00,2003-02-03 18:59:00,NOT COLLATERAL
+147042,5161.41,CCB,LDE,A,7838.34,507,25,YUJ,FOLDERX,LTTRB,2002-11-01 00:54:00,2003-02-03 20:59:00,COLLATERAL
+147053,5161.85,CCD,KFF,A,7841.45,507,24,AAA,FOLDERX,LTTRB,2002-11-01 01:54:00,2003-02-03 22:59:00,COLLATERAL
+147064,5162.29,CCE,EFH,A,7844.56,507,23,BBB,FOLDERX,LTTRA,2002-11-01 02:54:00,2003-02-04 00:59:00,COLLATERAL
+147075,5162.73,CCF,NGC,A,7847.67,507,22,CCC,FOLDERX,LTTRA,2002-11-01 03:54:00,2003-02-04 02:59:00,NOT COLLATERAL
+147086,5163.17,CCG,DER,A,7850.78,507,21,DDD,FOLDERX,LTTRS,2002-11-01 04:54:00,2003-02-04 04:59:00,NOT COLLATERAL
+147097,5163.61,CCH,FVG,A,7853.89,507,20,AAB,FOLDERX,LTTRZ,2002-11-01 05:54:00,2003-02-04 06:59:00,NOT COLLATERAL
+147108,5164.05,CCI,KWE,A,7857,507,19,AAC,FOLDERX,LTTRS,2002-11-01 06:54:00,2003-02-04 08:59:00,NOT COLLATERAL
+147119,5164.49,CCJ,WER,A,7860.11,507,18,AAD,FOLDERR,LTTRS,2002-11-01 07:54:00,2003-02-04 10:59:00,NOT COLLATERAL
+147130,5164.93,DDD,GFH,A,7863.22,507,17,AAE,FOLDERS,LTTRS,2002-11-01 08:54:00,2003-02-04 12:59:00,NOT COLLATERAL
+147141,5165.37,DDA,BGF,A,7866.33,507,16,AAF,FOLDERX,LTTRS,2002-11-01 09:54:00,2003-02-04 14:59:00,NOT COLLATERAL
+147152,5165.81,DAA,XCS,A,7869.44,507,15,BBA,FOLDERR,LTTRS,2002-11-01 10:54:00,2003-02-04 16:59:00,NOT COLLATERAL
+147163,5166.25,DBB,JHK,A,7872.55,507,14,BBC,FOLDERS,LTTRS,2002-11-01 11:54:00,2003-02-04 18:59:00,NOT COLLATERAL
+147174,5166.69,DCC,SFD,A,7875.66,507,13,BBE,FOLDERX,LTTRS,2002-11-01 12:54:00,2003-02-04 20:59:00,COLLATERAL
+147185,5167.13,DEE,WRE,A,7878.77,507,12,BBF,FOLDERR,LTTRS,2002-11-01 13:54:00,2003-02-04 22:59:00,COLLATERAL
+147196,5167.57,DFF,HGV,A,7881.88,507,11,BBG,FOLDERS,LTTRS,2002-11-01 14:54:00,2003-02-05 00:59:00,COLLATERAL
+147207,5168.01,DGG,KLS,A,7884.99,507,10,BBH,FOLDERX,LTTRS,2002-11-01 15:54:00,2003-02-05 02:59:00,NOT COLLATERAL
+147218,5168.45,DHH,SDK,A,7888.1,507,9,CCA,FOLDERR,LTTRS,2002-11-01 16:54:00,2003-02-05 04:59:00,NOT COLLATERAL
+147229,5168.89,AAA,MNV,A,7891.21,507,8,CCB,FOLDERS,LTTRS,2002-11-01 17:54:00,2003-02-05 06:59:00,NOT COLLATERAL
+147240,5169.33,BBB,OKW,A,7894.32,507,7,CCD,FOLDERX,LTTRS,2002-11-01 18:54:00,2003-02-05 08:59:00,NOT COLLATERAL
+147251,5169.77,CCC,ASS,A,7897.43,507,6,CCE,FOLDERR,LTTRS,2002-11-01 19:54:00,2003-02-05 10:59:00,NOT COLLATERAL
+147262,5170.21,DDD,CKA,A,7900.54,507,5,CCF,FOLDERS,LTTRZ,2002-11-01 20:54:00,2003-02-05 12:59:00,NOT COLLATERAL
+147273,5170.65,AAB,SWQ,A,7903.65,507,4,CCG,FOLDERX,LTTRA,2002-11-01 21:54:00,2003-02-05 14:59:00,NOT COLLATERAL
+147284,5171.09,AAC,KUH,A,7906.76,507,3,CCH,FOLDERD,LTTRB,2002-11-01 22:54:00,2003-02-05 16:59:00,NOT COLLATERAL
+147295,5171.53,AAD,XCV,A,7909.87,507,1,CCI,FOLDERE,LTTRB,2002-11-01 23:54:00,2003-02-05 18:59:00,NOT COLLATERAL
+147306,5171.97,AAE,ZAQ,A,7912.98,507,2,CCJ,FOLDERF,LTTRA,2002-11-02 00:54:00,2003-02-05 20:59:00,COLLATERAL
+147317,5172.41,AAF,MKO,A,7916.09,507,3,DDD,FOLDERG,LTTRA,2002-11-02 01:54:00,2003-02-05 22:59:00,COLLATERAL
+147328,5172.85,BBA,VFR,A,7919.2,507,4,DDA,FOLDERH,LTTRS,2002-11-02 02:54:00,2003-02-06 00:59:00,COLLATERAL
+147339,5173.29,BBC,YUJ,A,7922.31,507,5,DAA,FOLDERI,LTTRZ,2002-11-02 03:54:00,2003-02-06 02:59:00,NOT COLLATERAL
+147350,5173.73,BBE,MED,A,7925.42,507,6,FKF,FOLDERJ,LTTRS,2002-11-02 04:54:00,2003-02-06 04:59:00,NOT COLLATERAL
+147361,5174.17,BBF,SWE,A,7928.53,507,7,LES,FOLDERK,LTTRS,2002-11-02 05:54:00,2003-02-06 06:59:00,NOT COLLATERAL
+147372,5174.61,BBG,CVF,A,7931.64,507,8,KLD,FOLDERL,LTTRS,2002-11-02 06:54:00,2003-02-06 08:59:00,NOT COLLATERAL
+147383,5175.05,BBH,DSFG,A,7934.75,507,9,SKL,FOLDERM,LTTRS,2002-11-02 07:54:00,2003-02-06 10:59:00,NOT COLLATERAL
+147394,5175.49,CCA,ASDRE,A,7937.86,507,10,SIW,FOLDERN,LTTRS,2002-11-02 08:54:00,2003-02-06 12:59:00,NOT COLLATERAL
+147405,5175.93,CCB,HJKSS,A,7940.97,507,11,CKA,FOLDERN,LTTRS,2002-11-02 09:54:00,2003-02-06 14:59:00,NOT COLLATERAL
+147416,5176.37,CCD,KHAA,A,7944.08,507,12,LDE,FOLDERN,LTTRS,2002-11-02 10:54:00,2003-02-06 16:59:00,NOT COLLATERAL
+147427,5176.81,CCE,KSLD,A,7947.19,507,13,KFF,FOLDERN,LTTRS,2002-11-02 11:54:00,2003-02-06 18:59:00,NOT COLLATERAL
+147438,5177.25,CCF,EKID,A,7950.3,507,14,EFH,FOLDERL,LTTRS,2002-11-02 12:54:00,2003-02-06 20:59:00,COLLATERAL
+147449,5177.69,CCG,VNCD,A,7953.41,507,15,NGC,FOLDERL,LTTRS,2002-11-02 13:54:00,2003-02-06 22:59:00,COLLATERAL
+147460,5178.13,CCH,DKD,A,7956.52,507,16,DER,FOLDERL,LTTRS,2002-11-02 14:54:00,2003-02-07 00:59:00,COLLATERAL
+147471,5178.57,CCI,FKF,A,7959.63,507,17,FVG,FOLDERL,LTTRS,2002-11-02 15:54:00,2003-02-07 02:59:00,NOT COLLATERAL
+147482,5179.01,CCJ,LES,A,7962.74,507,18,KWE,FOLDERL,LTTRS,2002-11-02 16:54:00,2003-02-07 04:59:00,NOT COLLATERAL
+147493,5179.45,DDD,KLD,A,7965.85,507,19,WER,FOLDERA,LTTRS,2002-11-02 17:54:00,2003-02-07 06:59:00,NOT COLLATERAL
+147504,5179.89,DDA,SKL,A,7968.96,507,20,GFH,FOLDERB,LTTRZ,2002-11-02 18:54:00,2003-02-07 08:59:00,NOT COLLATERAL
+147515,5180.33,DAA,SIW,A,7972.07,507,21,BGF,FOLDERC,LTTRA,2002-11-02 19:54:00,2003-02-07 10:59:00,NOT COLLATERAL
+147526,5180.77,DBB,CKA,A,7975.18,507,22,XCS,FOLDERD,LTTRB,2002-11-02 20:54:00,2003-02-07 12:59:00,NOT COLLATERAL
+147537,5181.21,DCC,LDE,A,7978.29,507,23,JHK,FOLDERE,LTTRB,2002-11-02 21:54:00,2003-02-07 14:59:00,NOT COLLATERAL
+147548,5181.65,DEE,KFF,A,7981.4,507,24,SFD,FOLDERF,LTTRA,2002-11-02 22:54:00,2003-02-07 16:59:00,NOT COLLATERAL
+147559,5182.09,DFF,EFH,A,7984.51,507,25,WRE,FOLDERG,LTTRA,2002-11-02 23:54:00,2003-02-07 18:59:00,NOT COLLATERAL
+147570,5182.53,DGG,NGC,A,7987.62,507,26,HGV,FOLDERH,LTTRS,2002-11-03 00:54:00,2003-02-07 20:59:00,COLLATERAL
+147581,5182.97,DHH,DER,A,7990.73,507,27,KLS,FOLDERI,LTTRZ,2002-11-03 01:54:00,2003-02-07 22:59:00,COLLATERAL
+147592,5183.41,AAA,FVG,A,7993.84,507,28,SDK,FOLDERJ,LTTRS,2002-11-03 02:54:00,2003-02-08 00:59:00,COLLATERAL
+147603,5183.85,BBB,KWE,A,7996.95,507,29,MNV,FOLDERK,LTTRS,2002-11-03 03:54:00,2003-02-08 02:59:00,NOT COLLATERAL
+147614,5184.29,CCC,WER,A,8000.06,507,30,OKW,FOLDERL,LTTRS,2002-11-03 04:54:00,2003-02-08 04:59:00,NOT COLLATERAL
+147625,5184.73,DDD,GFH,A,8003.17,507,31,ASS,FOLDERM,LTTRS,2002-11-03 05:54:00,2003-02-08 06:59:00,NOT COLLATERAL
+147636,5185.17,AAB,BGF,A,8006.28,507,32,CKA,FOLDERN,LTTRS,2002-11-03 06:54:00,2003-02-08 08:59:00,NOT COLLATERAL
+147647,5185.61,AAC,XCS,A,8009.39,507,33,SWQ,FOLDERO,LTTRS,2002-11-03 07:54:00,2003-02-08 10:59:00,NOT COLLATERAL
+147658,5186.05,AAD,JHK,A,8012.5,507,34,KUH,FOLDERP,LTTRS,2002-11-03 08:54:00,2003-02-08 12:59:00,NOT COLLATERAL
+147669,5186.49,AAE,SFD,A,8015.61,507,35,XCV,FOLDERQ,LTTRS,2002-11-03 09:54:00,2003-02-08 14:59:00,NOT COLLATERAL
+147680,5186.93,AAF,WRE,A,8018.72,507,36,ZAQ,FOLDERR,LTTRS,2002-11-03 10:54:00,2003-02-08 16:59:00,NOT COLLATERAL
+147691,5187.37,BBA,HGV,A,8021.83,507,37,MKO,FOLDERS,LTTRS,2002-11-03 11:54:00,2003-02-08 18:59:00,NOT COLLATERAL
+147702,5187.81,BBC,KLS,A,8024.94,507,38,VFR,FOLDERT,LTTRS,2002-11-03 12:54:00,2003-02-08 20:59:00,COLLATERAL
+147713,5188.25,BBE,SDK,A,8028.05,507,39,YUJ,FOLDERU,LTTRS,2002-11-03 13:54:00,2003-02-08 22:59:00,COLLATERAL
+147724,5188.69,BBF,MNV,A,8031.16,507,40,AAA,FOLDERV,LTTRS,2002-11-03 14:54:00,2003-02-09 00:59:00,COLLATERAL
+147735,5189.13,BBG,OKW,A,8034.27,507,41,BBB,FOLDERW,LTTRS,2002-11-03 15:54:00,2003-02-09 02:59:00,NOT COLLATERAL
+147746,5189.57,BBH,ASS,A,8037.38,507,42,CCC,FOLDERX,LTTRZ,2002-11-03 16:54:00,2003-02-09 04:59:00,NOT COLLATERAL
+147757,5190.01,CCA,CKA,A,8040.49,507,43,DDD,FOLDERY,LTTRA,2002-11-03 17:54:00,2003-02-09 06:59:00,NOT COLLATERAL
+147768,5190.45,CCB,SWQ,A,8043.6,507,44,AAB,FOLDERZ,LTTRB,2002-11-03 18:54:00,2003-02-09 08:59:00,NOT COLLATERAL
+147779,5190.89,CCD,KUH,A,8046.71,507,45,AAC,FOLDERA,LTTRB,2002-11-03 19:54:00,2003-02-09 10:59:00,NOT COLLATERAL
+147790,5191.33,CCE,XCV,A,8049.82,507,46,AAD,FOLDERB,LTTRA,2002-11-03 20:54:00,2003-02-09 12:59:00,NOT COLLATERAL
+147801,5191.77,CCF,ZAQ,A,8052.93,507,47,AAE,FOLDERC,LTTRA,2002-11-03 21:54:00,2003-02-09 14:59:00,NOT COLLATERAL
+147812,5192.21,CCG,MKO,A,8056.04,507,48,AAF,FOLDERD,LTTRS,2002-11-03 22:54:00,2003-02-09 16:59:00,NOT COLLATERAL
+147823,5192.65,CCH,VFR,A,8059.15,507,49,BBA,FOLDERE,LTTRZ,2002-11-03 23:54:00,2003-02-09 18:59:00,NOT COLLATERAL
+147834,5193.09,CCI,YUJ,A,8062.26,507,48,BBC,FOLDERF,LTTRS,2002-11-04 00:54:00,2003-02-09 20:59:00,COLLATERAL
+147845,5193.53,CCJ,MED,A,8065.37,507,47,BBE,FOLDERG,LTTRS,2002-11-04 01:54:00,2003-02-09 22:59:00,COLLATERAL
+147856,5193.97,DDD,SWE,A,8068.48,507,46,BBF,FOLDERH,LTTRS,2002-11-04 02:54:00,2003-02-10 00:59:00,COLLATERAL
+147867,5194.41,DDA,CVF,A,8071.59,507,45,BBG,FOLDERI,LTTRS,2002-11-04 03:54:00,2003-02-10 02:59:00,NOT COLLATERAL
+147878,5194.85,DAA,DSFG,A,8074.7,507,44,BBH,FOLDERJ,LTTRS,2002-11-04 04:54:00,2003-02-10 04:59:00,NOT COLLATERAL
+147889,5195.29,DBB,ASDRE,A,8077.81,507,43,CCA,FOLDERK,LTTRS,2002-11-04 05:54:00,2003-02-10 06:59:00,NOT COLLATERAL
+147900,5195.73,DCC,HJKSS,A,8080.92,507,42,CCB,FOLDERL,LTTRS,2002-11-04 06:54:00,2003-02-10 08:59:00,NOT COLLATERAL
+147911,5196.17,DEE,KHAA,A,8084.03,507,41,CCD,FOLDERM,LTTRS,2002-11-04 07:54:00,2003-02-10 10:59:00,NOT COLLATERAL
+147922,5196.61,DFF,KSLD,A,8087.14,507,40,CCE,FOLDERN,LTTRS,2002-11-04 08:54:00,2003-02-10 12:59:00,NOT COLLATERAL
+147933,5197.05,DGG,EKID,A,8090.25,507,39,CCF,FOLDERO,LTTRS,2002-11-04 09:54:00,2003-02-10 14:59:00,NOT COLLATERAL
+147944,5197.49,DHH,VNCD,A,8093.36,507,38,CCG,FOLDERP,LTTRS,2002-11-04 10:54:00,2003-02-10 16:59:00,NOT COLLATERAL
+147955,5197.93,AAA,DKD,A,8096.47,502,37,CCH,FOLDERQ,LTTRS,2002-11-04 11:54:00,2003-02-10 18:59:00,NOT COLLATERAL
+147966,5198.37,BBB,FKF,A,8099.58,497,36,CCI,FOLDERR,LTTRS,2002-11-04 12:54:00,2003-02-10 20:59:00,COLLATERAL
+147977,5198.81,CCC,LES,A,8102.69,492,35,CCJ,FOLDERS,LTTRS,2002-11-04 13:54:00,2003-02-10 22:59:00,COLLATERAL
+147988,5199.25,DDD,KLD,A,8105.8,487,34,DDD,FOLDERT,LTTRZ,2002-11-04 14:54:00,2003-02-11 00:59:00,COLLATERAL
+147999,5199.69,AAB,SKL,A,8108.91,482,33,DDA,FOLDERU,LTTRA,2002-11-04 15:54:00,2003-02-11 02:59:00,NOT COLLATERAL
+148010,5200.13,AAC,SIW,A,8112.02,477,32,DAA,FOLDERV,LTTRB,2002-11-04 16:54:00,2003-02-11 04:59:00,NOT COLLATERAL
+148021,5200.57,AAD,CKA,A,8115.13,472,31,FKF,FOLDERW,LTTRB,2002-11-04 17:54:00,2003-02-11 06:59:00,NOT COLLATERAL
+148032,5201.01,AAE,LDE,A,8118.24,467,30,LES,FOLDERX,LTTRA,2002-11-04 18:54:00,2003-02-11 08:59:00,NOT COLLATERAL
+148043,5201.45,AAF,KFF,A,8121.35,462,29,KLD,FOLDERY,LTTRA,2002-11-04 19:54:00,2003-02-11 10:59:00,NOT COLLATERAL
+148054,5201.89,BBA,EFH,A,8124.46,457,28,SKL,FOLDERZ,LTTRS,2002-11-04 20:54:00,2003-02-11 12:59:00,NOT COLLATERAL
+148065,5202.33,BBC,NGC,A,8127.57,452,27,SIW,FOLDERZ,LTTRZ,2002-11-04 21:54:00,2003-02-11 14:59:00,NOT COLLATERAL
+148076,5202.77,BBE,DER,A,8130.68,447,26,CKA,FOLDERZ,LTTRS,2002-11-04 22:54:00,2003-02-11 16:59:00,NOT COLLATERAL
+148087,5203.21,BBF,FVG,A,8133.79,442,25,LDE,FOLDERZ,LTTRS,2002-11-04 23:54:00,2003-02-11 18:59:00,NOT COLLATERAL
+148098,5203.65,BBG,KWE,A,8136.9,437,24,KFF,FOLDERZ,LTTRS,2002-11-05 00:54:00,2003-02-11 20:59:00,COLLATERAL
+148109,5204.09,BBH,WER,A,8140.01,432,23,EFH,FOLDERZ,LTTRS,2002-11-05 01:54:00,2003-02-11 22:59:00,COLLATERAL
+148120,5204.53,CCA,GFH,A,8143.12,427,22,NGC,FOLDERZ,LTTRS,2002-11-05 02:54:00,2003-02-12 00:59:00,COLLATERAL
+148131,5204.97,CCB,BGF,A,8146.23,422,21,DER,FOLDERZ,LTTRS,2002-11-05 03:54:00,2003-02-12 02:59:00,NOT COLLATERAL
+148142,5205.41,CCD,XCS,A,8149.34,417,20,FVG,FOLDERZ,LTTRS,2002-11-05 04:54:00,2003-02-12 04:59:00,NOT COLLATERAL
+148153,5205.85,CCE,JHK,A,8152.45,412,19,KWE,FOLDERZ,LTTRS,2002-11-05 05:54:00,2003-02-12 06:59:00,NOT COLLATERAL
+148164,5206.29,CCF,SFD,A,8155.56,407,18,WER,FOLDERZ,LTTRS,2002-11-05 06:54:00,2003-02-12 08:59:00,NOT COLLATERAL
+148175,5206.73,CCG,WRE,A,8158.67,402,17,GFH,FOLDERZ,LTTRS,2002-11-05 07:54:00,2003-02-12 10:59:00,NOT COLLATERAL
+148186,5207.17,CCH,HGV,A,8161.78,397,16,BGF,FOLDERZ,LTTRS,2002-11-05 08:54:00,2003-02-12 12:59:00,NOT COLLATERAL
+148197,5207.61,CCI,KLS,A,8164.89,392,15,XCS,FOLDERZ,LTTRS,2002-11-05 09:54:00,2003-02-12 14:59:00,NOT COLLATERAL
+148208,5208.05,CCJ,SDK,A,8168,387,14,JHK,FOLDERX,LTTRS,2002-11-05 10:54:00,2003-02-12 16:59:00,NOT COLLATERAL
+148219,5208.49,DDD,MNV,A,8171.11,382,13,SFD,FOLDERX,LTTRS,2002-11-05 11:54:00,2003-02-12 18:59:00,NOT COLLATERAL
+148230,5208.93,DDA,OKW,A,8174.22,377,12,WRE,FOLDERX,LTTRZ,2002-11-05 12:54:00,2003-02-12 20:59:00,COLLATERAL
+148241,5209.37,DAA,ASS,A,8177.33,372,11,HGV,FOLDERX,LTTRA,2002-11-05 13:54:00,2003-02-12 22:59:00,COLLATERAL
+148252,5209.81,DBB,CKA,A,8180.44,367,10,KLS,FOLDERX,LTTRB,2002-11-05 14:54:00,2003-02-13 00:59:00,COLLATERAL
+148263,5210.25,DCC,SWQ,A,8183.55,362,9,SDK,FOLDERX,LTTRB,2002-11-05 15:54:00,2003-02-13 02:59:00,NOT COLLATERAL
+148274,5210.69,DEE,KUH,A,8186.66,357,8,MNV,FOLDERX,LTTRA,2002-11-05 16:54:00,2003-02-13 04:59:00,NOT COLLATERAL
+148285,5211.13,DFF,XCV,A,8189.77,352,7,OKW,FOLDERX,LTTRA,2002-11-05 17:54:00,2003-02-13 06:59:00,NOT COLLATERAL
+148296,5211.57,DGG,ZAQ,A,8192.88,347,6,ASS,FOLDERX,LTTRS,2002-11-05 18:54:00,2003-02-13 08:59:00,NOT COLLATERAL
+148307,5212.01,DHH,MKO,A,8195.99,342,5,CKA,FOLDERX,LTTRZ,2002-11-05 19:54:00,2003-02-13 10:59:00,NOT COLLATERAL
+148318,5212.45,AAA,VFR,A,8199.1,337,4,SWQ,FOLDERX,LTTRS,2002-11-05 20:54:00,2003-02-13 12:59:00,NOT COLLATERAL
+148329,5212.89,BBB,YUJ,A,8202.21,332,3,KUH,FOLDERX,LTTRS,2002-11-05 21:54:00,2003-02-13 14:59:00,NOT COLLATERAL
+148340,5213.33,CCC,MED,A,8205.32,327,1,XCV,FOLDERR,LTTRS,2002-11-05 22:54:00,2003-02-13 16:59:00,NOT COLLATERAL
+148351,5213.77,DDD,SWE,A,8208.43,322,2,ZAQ,FOLDERS,LTTRS,2002-11-05 23:54:00,2003-02-13 18:59:00,NOT COLLATERAL
+148362,5214.21,AAB,CVF,A,8211.54,317,3,MKO,FOLDERX,LTTRS,2002-11-06 00:54:00,2003-02-13 20:59:00,COLLATERAL
+148373,5214.65,AAC,DSFG,A,8214.65,312,4,VFR,FOLDERR,LTTRS,2002-11-06 01:54:00,2003-02-13 22:59:00,COLLATERAL
+148384,5215.09,AAD,ASDRE,A,8217.76,307,5,YUJ,FOLDERS,LTTRS,2002-11-06 02:54:00,2003-02-14 00:59:00,COLLATERAL
+148395,5215.53,AAE,HJKSS,A,8220.87,302,6,AAA,FOLDERX,LTTRS,2002-11-06 03:54:00,2003-02-14 02:59:00,NOT COLLATERAL
+148406,5215.97,AAF,KHAA,A,8223.98,297,7,BBB,FOLDERR,LTTRS,2002-11-06 04:54:00,2003-02-14 04:59:00,NOT COLLATERAL
+148417,5216.41,BBA,KSLD,A,8227.09,292,8,CCC,FOLDERS,LTTRS,2002-11-06 05:54:00,2003-02-14 06:59:00,NOT COLLATERAL
+148428,5216.85,BBC,EKID,A,8230.2,287,9,DDD,FOLDERX,LTTRS,2002-11-06 06:54:00,2003-02-14 08:59:00,NOT COLLATERAL
+148439,5217.29,BBE,VNCD,A,8233.31,282,10,AAB,FOLDERR,LTTRS,2002-11-06 07:54:00,2003-02-14 10:59:00,NOT COLLATERAL
+148450,5217.73,BBF,DKD,A,8236.42,277,11,AAC,FOLDERS,LTTRS,2002-11-06 08:54:00,2003-02-14 12:59:00,NOT COLLATERAL
+148461,5218.17,BBG,FKF,A,8239.53,272,12,AAD,FOLDERX,LTTRS,2002-11-06 09:54:00,2003-02-14 14:59:00,NOT COLLATERAL
+148472,5218.61,BBH,LES,A,8242.64,267,13,AAE,FOLDERR,LTTRZ,2002-11-06 10:54:00,2003-02-14 16:59:00,NOT COLLATERAL
+148483,5219.05,CCA,KLD,A,8245.75,262,14,AAF,FOLDERS,LTTRA,2002-11-06 11:54:00,2003-02-14 18:59:00,NOT COLLATERAL
+148494,5219.49,CCB,SKL,A,8248.86,257,15,BBA,FOLDERX,LTTRB,2002-11-06 12:54:00,2003-02-14 20:59:00,COLLATERAL
+148505,5219.93,CCD,SIW,A,8251.97,252,16,BBC,FOLDERD,LTTRB,2002-11-06 13:54:00,2003-02-14 22:59:00,COLLATERAL
+148516,5220.37,CCE,CKA,A,8255.08,247,17,BBE,FOLDERE,LTTRA,2002-11-06 14:54:00,2003-02-15 00:59:00,COLLATERAL
+148527,5220.81,CCF,LDE,A,8258.19,242,18,BBF,FOLDERF,LTTRA,2002-11-06 15:54:00,2003-02-15 02:59:00,NOT COLLATERAL
+148538,5221.25,CCG,KFF,A,8261.3,237,19,BBG,FOLDERG,LTTRS,2002-11-06 16:54:00,2003-02-15 04:59:00,NOT COLLATERAL
+148549,5221.69,CCH,EFH,A,8264.41,232,20,BBH,FOLDERH,LTTRZ,2002-11-06 17:54:00,2003-02-15 06:59:00,NOT COLLATERAL
+148560,5222.13,CCI,NGC,A,8267.52,227,21,CCA,FOLDERI,LTTRS,2002-11-06 18:54:00,2003-02-15 08:59:00,NOT COLLATERAL
+148571,5222.57,CCJ,DER,A,8270.63,222,22,CCB,FOLDERJ,LTTRS,2002-11-06 19:54:00,2003-02-15 10:59:00,NOT COLLATERAL
+148582,5223.01,DDD,FVG,A,8273.74,217,23,CCD,FOLDERK,LTTRS,2002-11-06 20:54:00,2003-02-15 12:59:00,NOT COLLATERAL
+148593,5223.45,DDA,KWE,A,8276.85,212,24,CCE,FOLDERL,LTTRS,2002-11-06 21:54:00,2003-02-15 14:59:00,NOT COLLATERAL
+148604,5223.89,DAA,WER,A,8279.96,207,25,CCF,FOLDERM,LTTRS,2002-11-06 22:54:00,2003-02-15 16:59:00,NOT COLLATERAL
+148615,5224.33,DBB,GFH,A,8283.07,202,26,CCG,FOLDERN,LTTRS,2002-11-06 23:54:00,2003-02-15 18:59:00,NOT COLLATERAL
+148626,5224.77,DCC,BGF,A,8286.18,197,27,CCH,FOLDERN,LTTRS,2002-11-07 00:54:00,2003-02-15 20:59:00,COLLATERAL
+148637,5225.21,DEE,XCS,A,8289.29,192,28,CCI,FOLDERN,LTTRS,2002-11-07 01:54:00,2003-02-15 22:59:00,COLLATERAL
+148648,5225.65,DFF,JHK,A,8292.4,187,29,CCJ,FOLDERN,LTTRS,2002-11-07 02:54:00,2003-02-16 00:59:00,COLLATERAL
+148659,5226.09,DGG,SFD,A,8295.51,182,30,DDD,FOLDERL,LTTRS,2002-11-07 03:54:00,2003-02-16 02:59:00,NOT COLLATERAL
+148670,5226.53,DHH,WRE,A,8298.62,177,31,DDA,FOLDERL,LTTRS,2002-11-07 04:54:00,2003-02-16 04:59:00,NOT COLLATERAL
+148681,5226.97,AAA,HGV,A,8301.73,172,32,DAA,FOLDERL,LTTRS,2002-11-07 05:54:00,2003-02-16 06:59:00,NOT COLLATERAL
+148692,5227.41,BBB,KLS,A,8304.84,167,33,FKF,FOLDERL,LTTRS,2002-11-07 06:54:00,2003-02-16 08:59:00,NOT COLLATERAL
+148703,5227.85,CCC,SDK,A,8307.95,162,34,LES,FOLDERL,LTTRS,2002-11-07 07:54:00,2003-02-16 10:59:00,NOT COLLATERAL
+148714,5228.29,DDD,MNV,A,8311.06,157,35,KLD,FOLDERA,LTTRZ,2002-11-07 08:54:00,2003-02-16 12:59:00,NOT COLLATERAL
+148725,5228.73,AAB,OKW,A,8314.17,152,36,SKL,FOLDERB,LTTRA,2002-11-07 09:54:00,2003-02-16 14:59:00,NOT COLLATERAL
+148736,5229.17,AAC,ASS,A,8317.28,147,37,SIW,FOLDERC,LTTRB,2002-11-07 10:54:00,2003-02-16 16:59:00,NOT COLLATERAL
+148747,5229.61,AAD,CKA,A,8320.39,142,38,CKA,FOLDERD,LTTRB,2002-11-07 11:54:00,2003-02-16 18:59:00,NOT COLLATERAL
+148758,5230.05,AAE,SWQ,A,8323.5,137,39,LDE,FOLDERE,LTTRA,2002-11-07 12:54:00,2003-02-16 20:59:00,COLLATERAL
+148769,5230.49,AAF,KUH,A,8326.61,132,40,KFF,FOLDERF,LTTRA,2002-11-07 13:54:00,2003-02-16 22:59:00,COLLATERAL
+148780,5230.93,BBA,XCV,A,8329.72,127,41,EFH,FOLDERG,LTTRS,2002-11-07 14:53:00,2003-02-17 00:59:00,COLLATERAL
+148791,5231.37,BBC,ZAQ,A,8332.83,122,42,NGC,FOLDERH,LTTRZ,2002-11-07 15:53:00,2003-02-17 02:59:00,NOT COLLATERAL
+148802,5231.81,BBE,MKO,A,8335.94,117,43,DER,FOLDERI,LTTRS,2002-11-07 16:53:00,2003-02-17 04:59:00,NOT COLLATERAL
+148813,5232.25,BBF,VFR,A,8339.05,112,44,FVG,FOLDERJ,LTTRS,2002-11-07 17:53:00,2003-02-17 06:59:00,NOT COLLATERAL
+148824,5232.69,BBG,YUJ,A,8342.16,107,45,KWE,FOLDERK,LTTRS,2002-11-07 18:53:00,2003-02-17 08:59:00,NOT COLLATERAL
+148835,5233.13,BBH,MED,A,8345.27,102,46,WER,FOLDERL,LTTRS,2002-11-07 19:53:00,2003-02-17 10:59:00,NOT COLLATERAL
+148846,5233.57,CCA,SWE,A,8348.38,97,47,GFH,FOLDERM,LTTRS,2002-11-07 20:53:00,2003-02-17 12:59:00,NOT COLLATERAL
+148857,5234.01,CCB,CVF,A,8351.49,92,48,BGF,FOLDERN,LTTRS,2002-11-07 21:53:00,2003-02-17 14:59:00,NOT COLLATERAL
+148868,5234.45,CCD,DSFG,A,8354.6,87,49,XCS,FOLDERO,LTTRS,2002-11-07 22:53:00,2003-02-17 16:59:00,NOT COLLATERAL
+148879,5234.89,CCE,ASDRE,A,8357.71,82,48,JHK,FOLDERP,LTTRS,2002-11-07 23:53:00,2003-02-17 18:59:00,NOT COLLATERAL
+148890,5235.33,CCF,HJKSS,A,8360.82,77,47,SFD,FOLDERQ,LTTRS,2002-11-08 00:53:00,2003-02-17 20:59:00,COLLATERAL
+148901,5235.77,CCG,KHAA,A,8363.93,72,46,WRE,FOLDERR,LTTRS,2002-11-08 01:53:00,2003-02-17 22:59:00,COLLATERAL
+148912,5236.21,CCH,KSLD,A,8367.04,67,45,HGV,FOLDERS,LTTRS,2002-11-08 02:53:00,2003-02-18 00:59:00,COLLATERAL
+148923,5236.65,CCI,EKID,A,8370.15,62,44,KLS,FOLDERT,LTTRS,2002-11-08 03:53:00,2003-02-18 02:59:00,NOT COLLATERAL
+148934,5237.09,CCJ,VNCD,A,8373.26,57,43,SDK,FOLDERU,LTTRS,2002-11-08 04:53:00,2003-02-18 04:59:00,NOT COLLATERAL
+148945,5237.53,DDD,DKD,A,8376.37,52,42,MNV,FOLDERV,LTTRS,2002-11-08 05:53:00,2003-02-18 06:59:00,NOT COLLATERAL
+148956,5237.97,DDA,FKF,A,8379.48,47,41,OKW,FOLDERW,LTTRZ,2002-11-08 06:53:00,2003-02-18 08:59:00,NOT COLLATERAL
+148967,5238.41,DAA,LES,A,8382.59,42,40,ASS,FOLDERX,LTTRA,2002-11-08 07:53:00,2003-02-18 10:59:00,NOT COLLATERAL
+148978,5238.85,DBB,KLD,A,8385.7,43,39,CKA,FOLDERY,LTTRB,2002-11-08 08:53:00,2003-02-18 12:59:00,NOT COLLATERAL
+148989,5239.29,DCC,SKL,A,8388.81,44,38,SWQ,FOLDERZ,LTTRB,2002-11-08 09:53:00,2003-02-18 14:59:00,NOT COLLATERAL
+149000,5239.73,DEE,SIW,A,8391.92,45,37,KUH,FOLDERA,LTTRA,2002-11-08 10:53:00,2003-02-18 16:59:00,NOT COLLATERAL
+149011,5240.17,DFF,CKA,A,8395.03,46,36,XCV,FOLDERB,LTTRA,2002-11-08 11:53:00,2003-02-18 18:59:00,NOT COLLATERAL
+149022,5240.61,DGG,LDE,A,8398.14,47,35,ZAQ,FOLDERC,LTTRS,2002-11-08 12:53:00,2003-02-18 20:59:00,COLLATERAL
+149033,5241.05,DHH,KFF,A,8401.25,48,34,MKO,FOLDERD,LTTRZ,2002-11-08 13:53:00,2003-02-18 22:59:00,COLLATERAL
+149044,5241.49,AAA,EFH,A,8404.36,49,33,VFR,FOLDERE,LTTRS,2002-11-08 14:53:00,2003-02-19 00:59:00,COLLATERAL
+149055,5241.93,BBB,NGC,A,8407.47,50,32,YUJ,FOLDERF,LTTRS,2002-11-08 15:53:00,2003-02-19 02:59:00,NOT COLLATERAL
+149066,5242.37,CCC,DER,A,8410.58,51,31,AAA,FOLDERG,LTTRS,2002-11-08 16:53:00,2003-02-19 04:59:00,NOT COLLATERAL
+149077,5242.81,DDD,FVG,A,8413.69,52,30,BBB,FOLDERH,LTTRS,2002-11-08 17:53:00,2003-02-19 06:59:00,NOT COLLATERAL
+149088,5243.25,AAB,KWE,A,8416.8,53,29,CCC,FOLDERI,LTTRS,2002-11-08 18:53:00,2003-02-19 08:59:00,NOT COLLATERAL
+149099,5243.69,AAC,WER,A,8419.91,54,28,DDD,FOLDERJ,LTTRS,2002-11-08 19:53:00,2003-02-19 10:59:00,NOT COLLATERAL
+149110,5244.13,AAD,GFH,A,8423.02,55,27,AAB,FOLDERK,LTTRS,2002-11-08 20:53:00,2003-02-19 12:59:00,NOT COLLATERAL
+149121,5244.57,AAE,BGF,A,8426.13,56,26,AAC,FOLDERL,LTTRS,2002-11-08 21:53:00,2003-02-19 14:59:00,NOT COLLATERAL
+149132,5245.01,AAF,XCS,A,8429.24,57,25,AAD,FOLDERM,LTTRS,2002-11-08 22:53:00,2003-02-19 16:59:00,NOT COLLATERAL
+149143,5245.45,BBA,JHK,A,8432.35,58,24,AAE,FOLDERN,LTTRS,2002-11-08 23:53:00,2003-02-19 18:59:00,NOT COLLATERAL
+149154,5245.89,BBC,SFD,A,8435.46,59,23,AAF,FOLDERO,LTTRS,2002-11-09 00:53:00,2003-02-19 20:59:00,COLLATERAL
+149165,5246.33,BBE,WRE,A,8438.57,60,22,BBA,FOLDERP,LTTRS,2002-11-09 01:53:00,2003-02-19 22:59:00,COLLATERAL
+149176,5246.77,BBF,HGV,A,8441.68,61,21,BBC,FOLDERQ,LTTRS,2002-11-09 02:53:00,2003-02-20 00:59:00,COLLATERAL
+149187,5247.21,BBG,KLS,A,8444.79,62,20,BBE,FOLDERR,LTTRS,2002-11-09 03:53:00,2003-02-20 02:59:00,NOT COLLATERAL
+149198,5247.65,BBH,SDK,A,8447.9,63,19,BBF,FOLDERS,LTTRZ,2002-11-09 04:53:00,2003-02-20 04:59:00,NOT COLLATERAL
+149209,5248.09,CCA,MNV,A,8451.01,64,18,BBG,FOLDERT,LTTRA,2002-11-09 05:53:00,2003-02-20 06:59:00,NOT COLLATERAL
+149220,5248.53,CCB,OKW,A,8454.12,65,17,BBH,FOLDERU,LTTRB,2002-11-09 06:53:00,2003-02-20 08:59:00,NOT COLLATERAL
+149231,5248.97,CCD,ASS,A,8457.23,66,16,CCA,FOLDERV,LTTRB,2002-11-09 07:53:00,2003-02-20 10:59:00,NOT COLLATERAL
+149242,5249.41,CCE,CKA,A,8460.34,67,15,CCB,FOLDERW,LTTRA,2002-11-09 08:53:00,2003-02-20 12:59:00,NOT COLLATERAL
+149253,5249.85,CCF,SWQ,A,8463.45,68,14,CCD,FOLDERX,LTTRA,2002-11-09 09:53:00,2003-02-20 14:59:00,NOT COLLATERAL
+149264,5250.29,CCG,KUH,A,8466.56,69,13,CCE,FOLDERY,LTTRS,2002-11-09 10:53:00,2003-02-20 16:59:00,NOT COLLATERAL
+149275,5250.73,CCH,XCV,A,8469.67,70,12,CCF,FOLDERZ,LTTRZ,2002-11-09 11:53:00,2003-02-20 18:59:00,NOT COLLATERAL
+149286,5251.17,CCI,ZAQ,A,8472.78,71,11,CCG,FOLDERZ,LTTRS,2002-11-09 12:53:00,2003-02-20 20:59:00,COLLATERAL
+149297,5251.61,CCJ,MKO,A,8475.89,72,10,CCH,FOLDERZ,LTTRS,2002-11-09 13:53:00,2003-02-20 22:59:00,COLLATERAL
+149308,5252.05,DDD,VFR,A,8479,73,9,CCI,FOLDERZ,LTTRS,2002-11-09 14:53:00,2003-02-21 00:59:00,COLLATERAL
+149319,5252.49,DDA,YUJ,A,8482.11,74,8,CCJ,FOLDERZ,LTTRS,2002-11-09 15:53:00,2003-02-21 02:59:00,NOT COLLATERAL
+149330,5252.93,DAA,MED,A,8485.22,75,7,DDD,FOLDERZ,LTTRS,2002-11-09 16:53:00,2003-02-21 04:59:00,NOT COLLATERAL
+149341,5253.37,DBB,SWE,A,8488.33,76,6,DDA,FOLDERZ,LTTRS,2002-11-09 17:53:00,2003-02-21 06:59:00,NOT COLLATERAL
+149352,5253.81,DCC,CVF,A,8491.44,77,5,DAA,FOLDERZ,LTTRS,2002-11-09 18:53:00,2003-02-21 08:59:00,NOT COLLATERAL
+149363,5254.25,DEE,DSFG,A,8494.55,78,4,FKF,FOLDERZ,LTTRS,2002-11-09 19:53:00,2003-02-21 10:59:00,NOT COLLATERAL
+149374,5254.69,DFF,ASDRE,A,8497.66,79,3,LES,FOLDERZ,LTTRS,2002-11-09 20:53:00,2003-02-21 12:59:00,NOT COLLATERAL
+149385,5255.13,DGG,HJKSS,A,8500.77,80,1,KLD,FOLDERZ,LTTRS,2002-11-09 21:53:00,2003-02-21 14:59:00,NOT COLLATERAL
+149396,5255.57,DHH,KHAA,A,8503.88,81,2,SKL,FOLDERZ,LTTRS,2002-11-09 22:53:00,2003-02-21 16:59:00,NOT COLLATERAL
+149407,5256.01,AAA,KSLD,A,8506.99,82,3,SIW,FOLDERZ,LTTRS,2002-11-09 23:53:00,2003-02-21 18:59:00,NOT COLLATERAL
+149418,5256.45,BBB,EKID,A,8510.1,83,4,CKA,FOLDERZ,LTTRS,2002-11-10 00:53:00,2003-02-21 20:59:00,COLLATERAL
+149429,5256.89,CCC,VNCD,A,8513.21,84,5,LDE,FOLDERX,LTTRS,2002-11-10 01:53:00,2003-02-21 22:59:00,COLLATERAL
+149440,5257.33,DDD,DKD,A,8516.32,85,6,KFF,FOLDERX,LTTRZ,2002-11-10 02:53:00,2003-02-22 00:59:00,COLLATERAL
+149451,5257.77,AAB,FKF,A,8519.43,86,7,EFH,FOLDERX,LTTRA,2002-11-10 03:53:00,2003-02-22 02:59:00,NOT COLLATERAL
+149462,5258.21,AAC,LES,A,8522.54,87,8,NGC,FOLDERX,LTTRB,2002-11-10 04:53:00,2003-02-22 04:59:00,NOT COLLATERAL
+149473,5258.65,AAD,KLD,A,8525.65,88,9,DER,FOLDERX,LTTRB,2002-11-10 05:53:00,2003-02-22 06:59:00,NOT COLLATERAL
+149484,5259.09,AAE,SKL,A,8528.76,89,10,FVG,FOLDERX,LTTRA,2002-11-10 06:53:00,2003-02-22 08:59:00,NOT COLLATERAL
+149495,5259.53,AAF,SIW,A,8531.87,90,11,KWE,FOLDERX,LTTRA,2002-11-10 07:53:00,2003-02-22 10:59:00,NOT COLLATERAL
+149506,5259.97,BBA,CKA,A,8534.98,91,12,WER,FOLDERX,LTTRS,2002-11-10 08:53:00,2003-02-22 12:59:00,NOT COLLATERAL
+149517,5260.41,BBC,LDE,A,8538.09,92,13,GFH,FOLDERX,LTTRZ,2002-11-10 09:53:00,2003-02-22 14:59:00,NOT COLLATERAL
+149528,5260.85,BBE,KFF,A,8541.2,93,14,BGF,FOLDERX,LTTRS,2002-11-10 10:53:00,2003-02-22 16:59:00,NOT COLLATERAL
+149539,5261.29,BBF,EFH,A,8544.31,94,15,XCS,FOLDERX,LTTRS,2002-11-10 11:53:00,2003-02-22 18:59:00,NOT COLLATERAL
+149550,5261.73,BBG,NGC,A,8547.42,95,16,JHK,FOLDERX,LTTRS,2002-11-10 12:53:00,2003-02-22 20:59:00,COLLATERAL
+149561,5262.17,BBH,DER,A,8550.53,96,17,SFD,FOLDERR,LTTRS,2002-11-10 13:53:00,2003-02-22 22:59:00,COLLATERAL
+149572,5262.61,CCA,FVG,A,8553.64,97,18,WRE,FOLDERS,LTTRS,2002-11-10 14:53:00,2003-02-23 00:59:00,COLLATERAL
+149583,5263.05,CCB,KWE,A,8556.75,98,19,HGV,FOLDERX,LTTRS,2002-11-10 15:53:00,2003-02-23 02:59:00,NOT COLLATERAL
+149594,5263.49,CCD,WER,A,8559.86,99,20,KLS,FOLDERR,LTTRS,2002-11-10 16:53:00,2003-02-23 04:59:00,NOT COLLATERAL
+149605,5263.93,CCE,GFH,A,8562.97,100,21,SDK,FOLDERS,LTTRS,2002-11-10 17:53:00,2003-02-23 06:59:00,NOT COLLATERAL
+149616,5264.37,CCF,BGF,A,8566.08,101,22,MNV,FOLDERX,LTTRS,2002-11-10 18:53:00,2003-02-23 08:59:00,NOT COLLATERAL
+149627,5264.81,CCG,XCS,A,8569.19,102,23,OKW,FOLDERR,LTTRS,2002-11-10 19:53:00,2003-02-23 10:59:00,NOT COLLATERAL
+149638,5265.25,CCH,JHK,A,8572.3,103,24,ASS,FOLDERS,LTTRS,2002-11-10 20:53:00,2003-02-23 12:59:00,NOT COLLATERAL
+149649,5265.69,CCI,SFD,A,8575.41,104,25,CKA,FOLDERX,LTTRS,2002-11-10 21:53:00,2003-02-23 14:59:00,NOT COLLATERAL
+149660,5266.13,CCJ,WRE,A,8578.52,105,26,SWQ,FOLDERR,LTTRS,2002-11-10 22:53:00,2003-02-23 16:59:00,NOT COLLATERAL
+149671,5266.57,DDD,HGV,A,8581.63,106,27,KUH,FOLDERS,LTTRS,2002-11-10 23:53:00,2003-02-23 18:59:00,NOT COLLATERAL
+149682,5267.01,DDA,KLS,A,8584.74,107,28,XCV,FOLDERX,LTTRZ,2002-11-11 00:53:00,2003-02-23 20:59:00,COLLATERAL
+149693,5267.45,DAA,SDK,A,8587.85,108,29,ZAQ,FOLDERR,LTTRA,2002-11-11 01:53:00,2003-02-23 22:59:00,COLLATERAL
+149704,5267.89,DBB,MNV,A,8590.96,109,30,MKO,FOLDERS,LTTRB,2002-11-11 02:53:00,2003-02-24 00:59:00,COLLATERAL
+149715,5268.33,DCC,OKW,A,8594.07,110,31,VFR,FOLDERX,LTTRB,2002-11-11 03:53:00,2003-02-24 02:59:00,NOT COLLATERAL
+149726,5268.77,DEE,ASS,A,8597.18,111,32,YUJ,FOLDERD,LTTRA,2002-11-11 04:53:00,2003-02-24 04:59:00,NOT COLLATERAL
+149737,5269.21,DFF,CKA,A,8600.29,112,33,AAA,FOLDERE,LTTRA,2002-11-11 05:53:00,2003-02-24 06:59:00,NOT COLLATERAL
+149748,5269.65,DGG,SWQ,A,8603.4,113,34,BBB,FOLDERF,LTTRS,2002-11-11 06:53:00,2003-02-24 08:59:00,NOT COLLATERAL
+149759,5270.09,DHH,KUH,A,8606.51,114,35,CCC,FOLDERG,LTTRZ,2002-11-11 07:53:00,2003-02-24 10:59:00,NOT COLLATERAL
+149770,5270.53,AAA,XCV,A,8609.62,115,36,DDD,FOLDERH,LTTRS,2002-11-11 08:53:00,2003-02-24 12:59:00,NOT COLLATERAL
+149781,5270.97,BBB,ZAQ,A,8612.73,116,37,AAB,FOLDERI,LTTRS,2002-11-11 09:53:00,2003-02-24 14:59:00,NOT COLLATERAL
+149792,5271.41,CCC,MKO,A,8615.84,117,38,AAC,FOLDERJ,LTTRS,2002-11-11 10:53:00,2003-02-24 16:59:00,NOT COLLATERAL
+149803,5271.85,DDD,VFR,A,8618.95,118,39,AAD,FOLDERK,LTTRS,2002-11-11 11:53:00,2003-02-24 18:59:00,NOT COLLATERAL
+149814,5272.29,AAB,YUJ,A,8622.06,119,40,AAE,FOLDERL,LTTRS,2002-11-11 12:53:00,2003-02-24 20:59:00,COLLATERAL
+149825,5272.73,AAC,MED,A,8625.17,120,41,AAF,FOLDERM,LTTRS,2002-11-11 13:53:00,2003-02-24 22:59:00,COLLATERAL
+149836,5273.17,AAD,SWE,A,8628.28,121,42,BBA,FOLDERN,LTTRS,2002-11-11 14:53:00,2003-02-25 00:59:00,COLLATERAL
+149847,5273.61,AAE,CVF,A,8631.39,122,43,BBC,FOLDERN,LTTRS,2002-11-11 15:53:00,2003-02-25 02:59:00,NOT COLLATERAL
+149858,5274.05,AAF,DSFG,A,8634.5,123,44,BBE,FOLDERN,LTTRS,2002-11-11 16:53:00,2003-02-25 04:59:00,NOT COLLATERAL
+149869,5274.49,BBA,ASDRE,A,8637.61,124,45,BBF,FOLDERN,LTTRS,2002-11-11 17:53:00,2003-02-25 06:59:00,NOT COLLATERAL
+149880,5274.93,BBC,HJKSS,A,8640.72,125,46,BBG,FOLDERL,LTTRS,2002-11-11 18:53:00,2003-02-25 08:59:00,NOT COLLATERAL
+149891,5275.37,BBE,KHAA,A,8643.83,126,47,BBH,FOLDERL,LTTRS,2002-11-11 19:53:00,2003-02-25 10:59:00,NOT COLLATERAL
+149902,5275.81,BBF,KSLD,A,8646.94,127,48,CCA,FOLDERL,LTTRS,2002-11-11 20:53:00,2003-02-25 12:59:00,NOT COLLATERAL
+149913,5276.25,BBG,EKID,A,8650.05,128,49,CCB,FOLDERL,LTTRS,2002-11-11 21:53:00,2003-02-25 14:59:00,NOT COLLATERAL
+149924,5276.69,BBH,VNCD,A,8653.16,129,48,CCD,FOLDERL,LTTRZ,2002-11-11 22:53:00,2003-02-25 16:59:00,NOT COLLATERAL
+149935,5277.13,CCA,DKD,A,8656.27,130,47,CCE,FOLDERA,LTTRA,2002-11-11 23:53:00,2003-02-25 18:59:00,NOT COLLATERAL
+149946,5277.57,CCB,FKF,A,8659.38,131,46,CCF,FOLDERB,LTTRB,2002-11-12 00:53:00,2003-02-25 20:59:00,COLLATERAL
+149957,5278.01,CCD,LES,A,8662.49,132,45,CCG,FOLDERC,LTTRB,2002-11-12 01:53:00,2003-02-25 22:59:00,COLLATERAL
+149968,5278.45,CCE,KLD,A,8665.6,133,44,CCH,FOLDERD,LTTRA,2002-11-12 02:53:00,2003-02-26 00:59:00,COLLATERAL
+149979,5278.89,CCF,SKL,A,8668.71,134,43,CCI,FOLDERE,LTTRA,2002-11-12 03:53:00,2003-02-26 02:59:00,NOT COLLATERAL
+149990,5279.33,CCG,SIW,A,8671.82,135,42,CCJ,FOLDERF,LTTRS,2002-11-12 04:53:00,2003-02-26 04:59:00,NOT COLLATERAL
+150001,5279.77,CCH,CKA,A,8674.93,136,41,DDD,FOLDERG,LTTRZ,2002-11-12 05:53:00,2003-02-26 06:59:00,NOT COLLATERAL
+150012,5280.21,CCI,LDE,A,8678.04,137,40,DDA,FOLDERH,LTTRS,2002-11-12 06:53:00,2003-02-26 08:59:00,NOT COLLATERAL
+150023,5280.65,CCJ,KFF,A,8681.15,138,39,DAA,FOLDERI,LTTRS,2002-11-12 07:53:00,2003-02-26 10:59:00,NOT COLLATERAL
+150034,5281.09,DDD,EFH,A,8684.26,139,38,FKF,FOLDERJ,LTTRS,2002-11-12 08:53:00,2003-02-26 12:59:00,NOT COLLATERAL
+150045,5281.53,DDA,NGC,A,8687.37,140,37,LES,FOLDERK,LTTRS,2002-11-12 09:53:00,2003-02-26 14:59:00,NOT COLLATERAL
+150056,5281.97,DAA,DER,A,8690.48,141,36,KLD,FOLDERL,LTTRS,2002-11-12 10:53:00,2003-02-26 16:59:00,NOT COLLATERAL
+150067,5282.41,DBB,FVG,A,8693.59,142,35,SKL,FOLDERM,LTTRS,2002-11-12 11:53:00,2003-02-26 18:59:00,NOT COLLATERAL
+150078,5282.85,DCC,KWE,A,8696.7,143,34,SIW,FOLDERN,LTTRS,2002-11-12 12:53:00,2003-02-26 20:59:00,COLLATERAL
+150089,5283.29,DEE,WER,A,8699.81,144,33,CKA,FOLDERO,LTTRS,2002-11-12 13:53:00,2003-02-26 22:59:00,COLLATERAL
+150100,5283.73,DFF,GFH,A,8702.92,145,32,LDE,FOLDERP,LTTRS,2002-11-12 14:53:00,2003-02-27 00:59:00,COLLATERAL
+150111,5284.17,DGG,BGF,A,8706.03,146,31,KFF,FOLDERQ,LTTRS,2002-11-12 15:53:00,2003-02-27 02:59:00,NOT COLLATERAL
+150122,5284.61,DHH,XCS,A,8709.14,147,30,EFH,FOLDERR,LTTRS,2002-11-12 16:53:00,2003-02-27 04:59:00,NOT COLLATERAL
+150133,5285.05,AAA,JHK,A,8712.25,148,29,NGC,FOLDERS,LTTRS,2002-11-12 17:53:00,2003-02-27 06:59:00,NOT COLLATERAL
+150144,5285.49,BBB,SFD,A,8715.36,149,28,DER,FOLDERT,LTTRS,2002-11-12 18:53:00,2003-02-27 08:59:00,NOT COLLATERAL
+150155,5285.93,CCC,WRE,A,8718.47,150,27,FVG,FOLDERU,LTTRS,2002-11-12 19:53:00,2003-02-27 10:59:00,NOT COLLATERAL
+150166,5286.37,DDD,HGV,A,8721.58,151,26,KWE,FOLDERV,LTTRZ,2002-11-12 20:53:00,2003-02-27 12:59:00,NOT COLLATERAL
+150177,5286.81,AAB,KLS,A,8724.69,152,25,WER,FOLDERW,LTTRA,2002-11-12 21:53:00,2003-02-27 14:59:00,NOT COLLATERAL
+150188,5287.25,AAC,SDK,A,8727.8,153,24,GFH,FOLDERX,LTTRB,2002-11-12 22:53:00,2003-02-27 16:59:00,NOT COLLATERAL
+150199,5287.69,AAD,MNV,A,8730.91,154,23,BGF,FOLDERY,LTTRB,2002-11-12 23:53:00,2003-02-27 18:59:00,NOT COLLATERAL
+150210,5288.13,AAE,OKW,A,8734.02,155,22,XCS,FOLDERZ,LTTRA,2002-11-13 00:53:00,2003-02-27 20:59:00,COLLATERAL
+150221,5288.57,AAF,ASS,A,8737.13,156,21,JHK,FOLDERA,LTTRA,2002-11-13 01:53:00,2003-02-27 22:59:00,COLLATERAL
+150232,5289.01,BBA,CKA,A,8740.24,157,20,SFD,FOLDERB,LTTRS,2002-11-13 02:53:00,2003-02-28 00:59:00,COLLATERAL
+150243,5289.45,BBC,SWQ,A,8743.35,158,19,WRE,FOLDERC,LTTRZ,2002-11-13 03:53:00,2003-02-28 02:59:00,NOT COLLATERAL
+150254,5289.89,BBE,KUH,A,8746.46,159,18,HGV,FOLDERD,LTTRS,2002-11-13 04:53:00,2003-02-28 04:59:00,NOT COLLATERAL
+150265,5290.33,BBF,XCV,A,8749.57,160,17,KLS,FOLDERE,LTTRS,2002-11-13 05:53:00,2003-02-28 06:59:00,NOT COLLATERAL
+150276,5290.77,BBG,ZAQ,A,8752.68,161,16,SDK,FOLDERF,LTTRS,2002-11-13 06:53:00,2003-02-28 08:59:00,NOT COLLATERAL
+150287,5291.21,BBH,MKO,A,8755.79,162,15,MNV,FOLDERG,LTTRS,2002-11-13 07:53:00,2003-02-28 10:59:00,NOT COLLATERAL
+150298,5291.65,CCA,VFR,A,8758.9,163,14,OKW,FOLDERH,LTTRS,2002-11-13 08:53:00,2003-02-28 12:59:00,NOT COLLATERAL
+150309,5292.09,CCB,YUJ,A,8762.01,164,13,ASS,FOLDERI,LTTRS,2002-11-13 09:53:00,2003-02-28 14:59:00,NOT COLLATERAL
+150320,5292.53,CCD,MED,A,8765.12,165,12,CKA,FOLDERJ,LTTRS,2002-11-13 10:53:00,2003-02-28 16:59:00,NOT COLLATERAL
+150331,5292.97,CCE,SWE,A,8768.23,166,11,SWQ,FOLDERK,LTTRS,2002-11-13 11:53:00,2003-02-28 18:59:00,NOT COLLATERAL
+150342,5293.41,CCF,CVF,A,8771.34,167,10,KUH,FOLDERL,LTTRS,2002-11-13 12:53:00,2003-02-28 20:59:00,COLLATERAL
+150353,5293.85,CCG,DSFG,A,8774.45,168,9,XCV,FOLDERM,LTTRS,2002-11-13 13:53:00,2003-02-28 22:59:00,COLLATERAL
+150364,5294.29,CCH,ASDRE,A,8777.56,169,8,ZAQ,FOLDERN,LTTRS,2002-11-13 14:53:00,2003-03-01 00:59:00,COLLATERAL
+150375,5294.73,CCI,HJKSS,A,8780.67,170,7,MKO,FOLDERO,LTTRS,2002-11-13 15:53:00,2003-03-01 02:59:00,NOT COLLATERAL
+150386,5295.17,CCJ,KHAA,A,8783.78,171,6,VFR,FOLDERP,LTTRS,2002-11-13 16:53:00,2003-03-01 04:59:00,NOT COLLATERAL
+150397,5295.61,DDD,KSLD,A,8786.89,172,5,YUJ,FOLDERQ,LTTRS,2002-11-13 17:53:00,2003-03-01 06:59:00,NOT COLLATERAL
+150408,5296.05,DDA,EKID,A,8790,173,4,AAA,FOLDERR,LTTRZ,2002-11-13 18:53:00,2003-03-01 08:59:00,NOT COLLATERAL
+150419,5296.49,DAA,VNCD,A,8793.11,174,3,BBB,FOLDERS,LTTRA,2002-11-13 19:53:00,2003-03-01 10:59:00,NOT COLLATERAL
+150430,5296.93,DBB,DKD,A,8796.22,175,1,CCC,FOLDERT,LTTRB,2002-11-13 20:53:00,2003-03-01 12:59:00,NOT COLLATERAL
+150441,5297.37,DCC,FKF,A,8799.33,176,2,DDD,FOLDERU,LTTRB,2002-11-13 21:53:00,2003-03-01 14:59:00,NOT COLLATERAL
+150452,5297.81,DEE,LES,A,8802.44,177,3,AAB,FOLDERV,LTTRA,2002-11-13 22:53:00,2003-03-01 16:59:00,NOT COLLATERAL
+150463,5298.25,DFF,KLD,A,8805.55,178,4,AAC,FOLDERW,LTTRA,2002-11-13 23:53:00,2003-03-01 18:59:00,NOT COLLATERAL
+150474,5298.69,DGG,SKL,A,8808.66,179,5,AAD,FOLDERX,LTTRS,2002-11-14 00:53:00,2003-03-01 20:59:00,COLLATERAL
+150485,5299.13,DHH,SIW,A,8811.77,180,6,AAE,FOLDERY,LTTRZ,2002-11-14 01:53:00,2003-03-01 22:59:00,COLLATERAL
+150496,5299.57,AAA,CKA,A,8814.88,181,7,AAF,FOLDERZ,LTTRS,2002-11-14 02:53:00,2003-03-02 00:59:00,COLLATERAL
+150507,5300.01,BBB,LDE,A,8817.99,182,8,BBA,FOLDERZ,LTTRS,2002-11-14 03:53:00,2003-03-02 02:59:00,NOT COLLATERAL
+150518,5300.45,CCC,KFF,A,8821.1,183,9,BBC,FOLDERZ,LTTRS,2002-11-14 04:53:00,2003-03-02 04:59:00,NOT COLLATERAL
+150529,5300.89,DDD,EFH,A,8824.21,184,10,BBE,FOLDERZ,LTTRS,2002-11-14 05:53:00,2003-03-02 06:59:00,NOT COLLATERAL
+150540,5301.33,AAB,NGC,A,8827.32,185,11,BBF,FOLDERZ,LTTRS,2002-11-14 06:53:00,2003-03-02 08:59:00,NOT COLLATERAL
+150551,5301.77,AAC,DER,A,8830.43,186,12,BBG,FOLDERZ,LTTRS,2002-11-14 07:53:00,2003-03-02 10:59:00,NOT COLLATERAL
+150562,5302.21,AAD,FVG,A,8833.54,187,13,BBH,FOLDERZ,LTTRS,2002-11-14 08:53:00,2003-03-02 12:59:00,NOT COLLATERAL
+150573,5302.65,AAE,KWE,A,8836.65,188,14,CCA,FOLDERZ,LTTRS,2002-11-14 09:53:00,2003-03-02 14:59:00,NOT COLLATERAL
+150584,5303.09,AAF,WER,A,8839.76,189,15,CCB,FOLDERZ,LTTRS,2002-11-14 10:53:00,2003-03-02 16:59:00,NOT COLLATERAL
+150595,5303.53,BBA,GFH,A,8842.87,190,16,CCD,FOLDERZ,LTTRS,2002-11-14 11:53:00,2003-03-02 18:59:00,NOT COLLATERAL
+150606,5303.97,BBC,BGF,A,8845.98,191,17,CCE,FOLDERZ,LTTRS,2002-11-14 12:53:00,2003-03-02 20:59:00,COLLATERAL
+150617,5304.41,BBE,XCS,A,8849.09,192,18,CCF,FOLDERZ,LTTRS,2002-11-14 13:53:00,2003-03-02 22:59:00,COLLATERAL
+150628,5304.85,BBF,JHK,A,8852.2,193,19,CCG,FOLDERZ,LTTRS,2002-11-14 14:53:00,2003-03-03 00:59:00,COLLATERAL
+150639,5305.29,BBG,SFD,A,8855.31,194,20,CCH,FOLDERZ,LTTRS,2002-11-14 15:53:00,2003-03-03 02:59:00,NOT COLLATERAL
+150650,5305.73,BBH,WRE,A,8858.42,195,21,CCI,FOLDERX,LTTRZ,2002-11-14 16:53:00,2003-03-03 04:59:00,NOT COLLATERAL
+150661,5306.17,CCA,HGV,A,8861.53,196,22,CCJ,FOLDERX,LTTRA,2002-11-14 17:53:00,2003-03-03 06:59:00,NOT COLLATERAL
+150672,5306.61,CCB,KLS,A,8864.64,197,23,DDD,FOLDERX,LTTRB,2002-11-14 18:53:00,2003-03-03 08:59:00,NOT COLLATERAL
+150683,5307.05,CCD,SDK,A,8867.75,198,24,DDA,FOLDERX,LTTRB,2002-11-14 19:53:00,2003-03-03 10:59:00,NOT COLLATERAL
+150694,5307.49,CCE,MNV,A,8870.86,199,25,DAA,FOLDERX,LTTRA,2002-11-14 20:53:00,2003-03-03 12:59:00,NOT COLLATERAL
+150705,5307.93,CCF,OKW,A,8873.97,200,26,FKF,FOLDERX,LTTRA,2002-11-14 21:53:00,2003-03-03 14:59:00,NOT COLLATERAL
+150716,5308.37,CCG,ASS,A,8877.08,201,27,LES,FOLDERX,LTTRS,2002-11-14 22:53:00,2003-03-03 16:59:00,NOT COLLATERAL
+150727,5308.81,CCH,CKA,A,8880.19,202,28,KLD,FOLDERX,LTTRZ,2002-11-14 23:53:00,2003-03-03 18:59:00,NOT COLLATERAL
+150738,5309.25,CCI,SWQ,A,8883.3,203,29,SKL,FOLDERX,LTTRS,2002-11-15 00:53:00,2003-03-03 20:59:00,COLLATERAL
+150749,5309.69,CCJ,KUH,A,8886.41,204,30,SIW,FOLDERX,LTTRS,2002-11-15 01:53:00,2003-03-03 22:59:00,COLLATERAL
+150760,5310.13,DDD,XCV,A,8889.52,205,31,CKA,FOLDERX,LTTRS,2002-11-15 02:53:00,2003-03-04 00:59:00,COLLATERAL
+150771,5310.57,DDA,ZAQ,A,8892.63,206,32,LDE,FOLDERX,LTTRS,2002-11-15 03:53:00,2003-03-04 02:59:00,NOT COLLATERAL
+150782,5311.01,DAA,MKO,A,8895.74,207,33,KFF,FOLDERR,LTTRS,2002-11-15 04:53:00,2003-03-04 04:59:00,NOT COLLATERAL
+150793,5311.45,DBB,VFR,A,8898.85,208,34,EFH,FOLDERS,LTTRS,2002-11-15 05:53:00,2003-03-04 06:59:00,NOT COLLATERAL
+150804,5311.89,DCC,YUJ,A,8901.96,209,35,NGC,FOLDERX,LTTRS,2002-11-15 06:53:00,2003-03-04 08:59:00,NOT COLLATERAL
+150815,5312.33,DEE,MED,A,8905.07,210,36,DER,FOLDERR,LTTRS,2002-11-15 07:53:00,2003-03-04 10:59:00,NOT COLLATERAL
+150826,5312.77,DFF,SWE,A,8908.18,211,37,FVG,FOLDERS,LTTRS,2002-11-15 08:53:00,2003-03-04 12:59:00,NOT COLLATERAL
+150837,5313.21,DGG,CVF,A,8911.29,212,38,KWE,FOLDERX,LTTRS,2002-11-15 09:53:00,2003-03-04 14:59:00,NOT COLLATERAL
+150848,5313.65,DHH,DSFG,A,8914.4,213,39,WER,FOLDERR,LTTRS,2002-11-15 10:53:00,2003-03-04 16:59:00,NOT COLLATERAL
+150859,5314.09,AAA,ASDRE,A,8917.51,214,40,GFH,FOLDERS,LTTRS,2002-11-15 11:53:00,2003-03-04 18:59:00,NOT COLLATERAL
+150870,5314.53,BBB,HJKSS,A,8920.62,215,41,BGF,FOLDERX,LTTRS,2002-11-15 12:53:00,2003-03-04 20:59:00,COLLATERAL
+150881,5314.97,CCC,KHAA,A,8923.73,216,42,XCS,FOLDERR,LTTRS,2002-11-15 13:53:00,2003-03-04 22:59:00,COLLATERAL
+150892,5315.41,DDD,KSLD,A,8926.84,217,43,JHK,FOLDERS,LTTRZ,2002-11-15 14:53:00,2003-03-05 00:59:00,COLLATERAL
+150903,5315.85,AAB,EKID,A,8929.95,218,44,SFD,FOLDERX,LTTRA,2002-11-15 15:53:00,2003-03-05 02:59:00,NOT COLLATERAL
+150914,5316.29,AAC,VNCD,A,8933.06,219,45,WRE,FOLDERR,LTTRB,2002-11-15 16:53:00,2003-03-05 04:59:00,NOT COLLATERAL
+150925,5316.73,AAD,DKD,A,12433.16,220,46,HGV,FOLDERS,LTTRB,2002-11-15 17:53:00,2003-03-05 06:59:00,NOT COLLATERAL
+150936,5317.17,AAE,FKF,A,12433,221,47,KLS,FOLDERX,LTTRA,2002-11-15 18:53:00,2003-03-05 08:59:00,NOT COLLATERAL
+150947,5317.61,AAF,LES,A,12432.84,222,48,SDK,FOLDERD,LTTRA,2002-11-15 19:53:00,2003-03-05 10:59:00,NOT COLLATERAL
+150958,5318.05,BBA,KLD,A,12432.68,223,49,MNV,FOLDERE,LTTRS,2002-11-15 20:53:00,2003-03-05 12:59:00,NOT COLLATERAL
+150969,5318.49,BBC,SKL,A,12432.52,224,48,OKW,FOLDERF,LTTRZ,2002-11-15 21:53:00,2003-03-05 14:59:00,NOT COLLATERAL
+150980,5318.93,BBE,SIW,A,12432.36,225,47,ASS,FOLDERG,LTTRS,2002-11-15 22:53:00,2003-03-05 16:59:00,NOT COLLATERAL
+150991,5319.37,BBF,CKA,A,12432.2,226,46,CKA,FOLDERH,LTTRS,2002-11-15 23:53:00,2003-03-05 18:59:00,NOT COLLATERAL
+151002,5319.81,BBG,LDE,A,12432.04,227,45,SWQ,FOLDERI,LTTRS,2002-11-16 00:53:00,2003-03-05 20:59:00,COLLATERAL
+151013,5320.25,BBH,KFF,A,12431.88,228,44,KUH,FOLDERJ,LTTRS,2002-11-16 01:53:00,2003-03-05 22:59:00,COLLATERAL
+151024,5320.69,CCA,EFH,A,12431.72,229,43,XCV,FOLDERK,LTTRS,2002-11-16 02:52:00,2003-03-06 00:59:00,COLLATERAL
+151035,5321.13,CCB,NGC,A,12431.56,230,42,ZAQ,FOLDERL,LTTRS,2002-11-16 03:52:00,2003-03-06 02:59:00,NOT COLLATERAL
+151046,5321.57,CCD,DER,A,12431.4,231,41,MKO,FOLDERM,LTTRS,2002-11-16 04:52:00,2003-03-06 04:59:00,NOT COLLATERAL
+151057,5322.01,CCE,FVG,A,12431.24,232,40,VFR,FOLDERN,LTTRS,2002-11-16 05:52:00,2003-03-06 06:59:00,NOT COLLATERAL
+151068,5322.45,CCF,KWE,A,12431.08,233,39,YUJ,FOLDERN,LTTRS,2002-11-16 06:52:00,2003-03-06 08:59:00,NOT COLLATERAL
+151079,5322.89,CCG,WER,A,12430.92,234,38,AAA,FOLDERN,LTTRS,2002-11-16 07:52:00,2003-03-06 10:59:00,NOT COLLATERAL
+151090,5323.33,CCH,GFH,A,12430.76,235,37,BBB,FOLDERN,LTTRS,2002-11-16 08:52:00,2003-03-06 12:59:00,NOT COLLATERAL
+151101,5323.77,CCI,BGF,A,12430.6,236,36,CCC,FOLDERL,LTTRS,2002-11-16 09:52:00,2003-03-06 14:59:00,NOT COLLATERAL
+151112,5324.21,CCJ,XCS,A,12430.44,237,35,DDD,FOLDERL,LTTRS,2002-11-16 10:52:00,2003-03-06 16:59:00,NOT COLLATERAL
+151123,5324.65,DDD,JHK,A,12430.28,238,34,AAB,FOLDERL,LTTRS,2002-11-16 11:52:00,2003-03-06 18:59:00,NOT COLLATERAL
+151134,5325.09,DDA,SFD,A,12430.12,239,33,AAC,FOLDERL,LTTRZ,2002-11-16 12:52:00,2003-03-06 20:59:00,COLLATERAL
+151145,5325.53,DAA,WRE,A,12429.96,240,32,AAD,FOLDERL,LTTRA,2002-11-16 13:52:00,2003-03-06 22:59:00,COLLATERAL
+151156,5325.97,DBB,HGV,A,12429.8,241,31,AAE,FOLDERA,LTTRB,2002-11-16 14:52:00,2003-03-07 00:59:00,COLLATERAL
+151167,5326.41,DCC,KLS,A,12429.64,242,30,AAF,FOLDERB,LTTRB,2002-11-16 15:52:00,2003-03-07 02:59:00,NOT COLLATERAL
+151178,5326.85,DEE,SDK,A,12429.48,243,29,BBA,FOLDERC,LTTRA,2002-11-16 16:52:00,2003-03-07 04:59:00,NOT COLLATERAL
+151189,5327.29,DFF,MNV,A,12429.32,244,28,BBC,FOLDERD,LTTRA,2002-11-16 17:52:00,2003-03-07 06:59:00,NOT COLLATERAL
+151200,5327.73,DGG,OKW,A,12429.16,245,27,BBE,FOLDERE,LTTRS,2002-11-16 18:52:00,2003-03-07 08:59:00,NOT COLLATERAL
+151211,5328.17,DHH,ASS,A,12429,246,26,BBF,FOLDERF,LTTRZ,2002-11-16 19:52:00,2003-03-07 10:59:00,NOT COLLATERAL
+151222,5328.61,AAA,CKA,A,12428.84,247,25,BBG,FOLDERG,LTTRS,2002-11-16 20:52:00,2003-03-07 12:59:00,NOT COLLATERAL
+151233,5329.05,BBB,SWQ,A,12428.68,248,24,BBH,FOLDERH,LTTRS,2002-11-16 21:52:00,2003-03-07 14:59:00,NOT COLLATERAL
+151244,5329.49,CCC,KUH,A,12428.52,249,23,CCA,FOLDERI,LTTRS,2002-11-16 22:52:00,2003-03-07 16:59:00,NOT COLLATERAL
+151255,5329.93,DDD,XCV,A,12428.36,250,22,CCB,FOLDERJ,LTTRS,2002-11-16 23:52:00,2003-03-07 18:59:00,NOT COLLATERAL
+151266,5330.37,AAB,ZAQ,A,12428.2,251,21,CCD,FOLDERK,LTTRS,2002-11-17 00:52:00,2003-03-07 20:59:00,COLLATERAL
+151277,5330.81,AAC,MKO,A,12428.04,252,20,CCE,FOLDERL,LTTRS,2002-11-17 01:52:00,2003-03-07 22:59:00,COLLATERAL
+151288,5331.25,AAD,VFR,A,12427.88,253,19,CCF,FOLDERM,LTTRS,2002-11-17 02:52:00,2003-03-08 00:59:00,COLLATERAL
+151299,5331.69,AAE,YUJ,A,12427.72,254,18,CCG,FOLDERN,LTTRS,2002-11-17 03:52:00,2003-03-08 02:59:00,NOT COLLATERAL
+151310,5332.13,AAF,MED,A,12427.56,255,17,CCH,FOLDERO,LTTRS,2002-11-17 04:52:00,2003-03-08 04:59:00,NOT COLLATERAL
+151321,5332.57,BBA,SWE,A,12427.4,256,16,CCI,FOLDERP,LTTRS,2002-11-17 05:52:00,2003-03-08 06:59:00,NOT COLLATERAL
+151332,5333.01,BBC,CVF,A,12427.24,257,15,CCJ,FOLDERQ,LTTRS,2002-11-17 06:52:00,2003-03-08 08:59:00,NOT COLLATERAL
+151343,5333.45,BBE,DSFG,A,12427.08,258,14,DDD,FOLDERR,LTTRS,2002-11-17 07:52:00,2003-03-08 10:59:00,NOT COLLATERAL
+151354,5333.89,BBF,ASDRE,A,12426.92,259,13,DDA,FOLDERS,LTTRS,2002-11-17 08:52:00,2003-03-08 12:59:00,NOT COLLATERAL
+151365,5334.33,BBG,HJKSS,A,12426.76,260,12,DAA,FOLDERT,LTTRS,2002-11-17 09:52:00,2003-03-08 14:59:00,NOT COLLATERAL
+151376,5334.77,BBH,KHAA,A,12426.6,261,11,FKF,FOLDERU,LTTRZ,2002-11-17 10:52:00,2003-03-08 16:59:00,NOT COLLATERAL
+151387,5335.21,CCA,KSLD,A,12426.44,262,10,LES,FOLDERV,LTTRA,2002-11-17 11:52:00,2003-03-08 18:59:00,NOT COLLATERAL
+151398,5335.65,CCB,EKID,A,12426.28,263,9,KLD,FOLDERW,LTTRB,2002-11-17 12:52:00,2003-03-08 20:59:00,COLLATERAL
+151409,5336.09,CCD,VNCD,A,12426.12,264,8,SKL,FOLDERX,LTTRB,2002-11-17 13:52:00,2003-03-08 22:59:00,COLLATERAL
+151420,5336.53,CCE,DKD,A,12425.96,265,7,SIW,FOLDERY,LTTRA,2002-11-17 14:52:00,2003-03-09 00:59:00,COLLATERAL
+151431,5336.97,CCF,FKF,A,12425.8,266,6,CKA,FOLDERZ,LTTRA,2002-11-17 15:52:00,2003-03-09 02:59:00,NOT COLLATERAL
+151442,5337.41,CCG,LES,A,12425.64,267,5,LDE,FOLDERA,LTTRS,2002-11-17 16:52:00,2003-03-09 04:59:00,NOT COLLATERAL
+151453,5337.85,CCH,KLD,A,12425.48,268,4,KFF,FOLDERB,LTTRZ,2002-11-17 17:52:00,2003-03-09 06:59:00,NOT COLLATERAL
+151464,5338.29,CCI,SKL,A,12425.32,269,3,EFH,FOLDERC,LTTRS,2002-11-17 18:52:00,2003-03-09 08:59:00,NOT COLLATERAL
+151475,5338.73,CCJ,SIW,A,12425.16,270,1,NGC,FOLDERD,LTTRS,2002-11-17 19:52:00,2003-03-09 10:59:00,NOT COLLATERAL
+151486,5339.17,DDD,CKA,A,12425,271,2,DER,FOLDERE,LTTRS,2002-11-17 20:52:00,2003-03-09 12:59:00,NOT COLLATERAL
+151497,5339.61,DDA,LDE,A,12424.84,272,3,FVG,FOLDERF,LTTRS,2002-11-17 21:52:00,2003-03-09 14:59:00,NOT COLLATERAL
+151508,5340.05,DAA,KFF,A,12424.68,273,4,KWE,FOLDERG,LTTRS,2002-11-17 22:52:00,2003-03-09 16:59:00,NOT COLLATERAL
+151519,5340.49,DBB,EFH,A,12424.52,274,5,WER,FOLDERH,LTTRS,2002-11-17 23:52:00,2003-03-09 18:59:00,NOT COLLATERAL
+151530,5340.93,DCC,NGC,A,12424.36,275,6,GFH,FOLDERI,LTTRS,2002-11-18 00:52:00,2003-03-09 20:59:00,COLLATERAL
+151541,5341.37,DEE,DER,A,12424.2,276,7,BGF,FOLDERJ,LTTRS,2002-11-18 01:52:00,2003-03-09 22:59:00,COLLATERAL
+151552,5341.81,DFF,FVG,A,12424.04,277,8,XCS,FOLDERK,LTTRS,2002-11-18 02:52:00,2003-03-10 00:59:00,COLLATERAL
+151563,5342.25,DGG,KWE,A,12423.88,278,9,JHK,FOLDERL,LTTRS,2002-11-18 03:52:00,2003-03-10 02:59:00,NOT COLLATERAL
+151574,5342.69,DHH,WER,A,12423.72,279,10,SFD,FOLDERM,LTTRS,2002-11-18 04:52:00,2003-03-10 04:59:00,NOT COLLATERAL
+151585,5343.13,AAA,GFH,A,12423.56,280,11,WRE,FOLDERN,LTTRS,2002-11-18 05:52:00,2003-03-10 06:59:00,NOT COLLATERAL
+151596,5343.57,BBB,BGF,A,12423.4,281,12,HGV,FOLDERO,LTTRS,2002-11-18 06:52:00,2003-03-10 08:59:00,NOT COLLATERAL
+151607,5344.01,CCC,XCS,A,12423.24,282,13,KLS,FOLDERP,LTTRS,2002-11-18 07:52:00,2003-03-10 10:59:00,NOT COLLATERAL
+151618,5344.45,DDD,JHK,A,12423.08,283,14,SDK,FOLDERQ,LTTRZ,2002-11-18 08:52:00,2003-03-10 12:59:00,NOT COLLATERAL
+151629,5344.89,AAB,SFD,A,12422.92,284,15,MNV,FOLDERR,LTTRA,2002-11-18 09:52:00,2003-03-10 14:59:00,NOT COLLATERAL
+151640,5345.33,AAC,WRE,A,12422.76,285,16,OKW,FOLDERS,LTTRB,2002-11-18 10:52:00,2003-03-10 16:59:00,NOT COLLATERAL
+151651,5345.77,AAD,HGV,A,12422.6,286,17,ASS,FOLDERT,LTTRB,2002-11-18 11:52:00,2003-03-10 18:59:00,NOT COLLATERAL
+151662,5346.21,AAE,KLS,A,12422.44,287,18,CKA,FOLDERU,LTTRA,2002-11-18 12:52:00,2003-03-10 20:59:00,COLLATERAL
+151673,5346.65,AAF,SDK,A,12422.28,288,19,SWQ,FOLDERV,LTTRA,2002-11-18 13:52:00,2003-03-10 22:59:00,COLLATERAL
+151684,5347.09,BBA,MNV,A,12422.12,289,20,KUH,FOLDERW,LTTRS,2002-11-18 14:52:00,2003-03-11 00:59:00,COLLATERAL
+151695,5347.53,BBC,OKW,A,12421.96,290,21,XCV,FOLDERX,LTTRZ,2002-11-18 15:52:00,2003-03-11 02:59:00,NOT COLLATERAL
+151706,5347.97,BBE,ASS,A,12421.8,291,22,ZAQ,FOLDERY,LTTRS,2002-11-18 16:52:00,2003-03-11 04:59:00,NOT COLLATERAL
+151717,5348.41,BBF,CKA,A,12421.64,292,23,MKO,FOLDERZ,LTTRS,2002-11-18 17:52:00,2003-03-11 06:59:00,NOT COLLATERAL
+151728,5348.85,BBG,SWQ,A,12421.48,293,24,VFR,FOLDERZ,LTTRS,2002-11-18 18:52:00,2003-03-11 08:59:00,NOT COLLATERAL
+151739,5349.29,BBH,KUH,A,12421.32,294,25,YUJ,FOLDERZ,LTTRS,2002-11-18 19:52:00,2003-03-11 10:59:00,NOT COLLATERAL
+151750,5349.73,CCA,XCV,A,12421.16,295,26,AAA,FOLDERZ,LTTRS,2002-11-18 20:52:00,2003-03-11 12:59:00,NOT COLLATERAL
+151761,5350.17,CCB,ZAQ,A,12421,296,27,BBB,FOLDERZ,LTTRS,2002-11-18 21:52:00,2003-03-11 14:59:00,NOT COLLATERAL
+151772,5350.61,CCD,MKO,A,12420.84,297,28,CCC,FOLDERZ,LTTRS,2002-11-18 22:52:00,2003-03-11 16:59:00,NOT COLLATERAL
+151783,5351.05,CCE,VFR,A,12420.68,298,29,DDD,FOLDERZ,LTTRS,2002-11-18 23:52:00,2003-03-11 18:59:00,NOT COLLATERAL
+151794,5351.49,CCF,YUJ,A,12420.52,299,30,AAB,FOLDERZ,LTTRS,2002-11-19 00:52:00,2003-03-11 20:59:00,COLLATERAL
+151805,5351.93,CCG,MED,A,12420.36,300,31,AAC,FOLDERZ,LTTRS,2002-11-19 01:52:00,2003-03-11 22:59:00,COLLATERAL
+151816,5352.37,CCH,SWE,A,12420.2,301,32,AAD,FOLDERZ,LTTRS,2002-11-19 02:52:00,2003-03-12 00:59:00,COLLATERAL
+151827,5352.81,CCI,CVF,A,12420.04,302,33,AAE,FOLDERZ,LTTRS,2002-11-19 03:52:00,2003-03-12 02:59:00,NOT COLLATERAL
+151838,5353.25,CCJ,DSFG,A,12419.88,303,34,AAF,FOLDERZ,LTTRS,2002-11-19 04:52:00,2003-03-12 04:59:00,NOT COLLATERAL
+151849,5353.69,DDD,ASDRE,A,12419.72,304,35,BBA,FOLDERZ,LTTRS,2002-11-19 05:52:00,2003-03-12 06:59:00,NOT COLLATERAL
+151860,5354.13,DDA,HJKSS,A,12419.56,305,36,BBC,FOLDERZ,LTTRZ,2002-11-19 06:52:00,2003-03-12 08:59:00,NOT COLLATERAL
+151871,5354.57,DAA,KHAA,A,12419.4,306,37,BBE,FOLDERX,LTTRA,2002-11-19 07:52:00,2003-03-12 10:59:00,NOT COLLATERAL
+151882,5355.01,DBB,KSLD,A,12419.24,307,38,BBF,FOLDERX,LTTRB,2002-11-19 08:52:00,2003-03-12 12:59:00,NOT COLLATERAL
+151893,5355.45,DCC,EKID,A,12419.08,308,39,BBG,FOLDERX,LTTRB,2002-11-19 09:52:00,2003-03-12 14:59:00,NOT COLLATERAL
+151904,5355.89,DEE,VNCD,A,12418.92,309,40,BBH,FOLDERX,LTTRA,2002-11-19 10:52:00,2003-03-12 16:59:00,NOT COLLATERAL
+151915,5356.33,DFF,DKD,A,12418.76,310,41,CCA,FOLDERX,LTTRA,2002-11-19 11:52:00,2003-03-12 18:59:00,NOT COLLATERAL
+151926,5356.77,DGG,FKF,A,12418.6,311,42,CCB,FOLDERX,LTTRS,2002-11-19 12:52:00,2003-03-12 20:59:00,COLLATERAL
+151937,5357.21,DHH,LES,A,12418.44,312,43,CCD,FOLDERX,LTTRZ,2002-11-19 13:52:00,2003-03-12 22:59:00,COLLATERAL
+151948,5357.65,AAA,KLD,A,12418.28,313,44,CCE,FOLDERX,LTTRS,2002-11-19 14:52:00,2003-03-13 00:59:00,COLLATERAL
+151959,5358.09,BBB,SKL,A,12418.12,314,45,CCF,FOLDERX,LTTRS,2002-11-19 15:52:00,2003-03-13 02:59:00,NOT COLLATERAL
+151970,5358.53,CCC,SIW,A,12417.96,315,46,CCG,FOLDERX,LTTRS,2002-11-19 16:52:00,2003-03-13 04:59:00,NOT COLLATERAL
+151981,5358.97,DDD,CKA,A,12417.8,316,47,CCH,FOLDERX,LTTRS,2002-11-19 17:52:00,2003-03-13 06:59:00,NOT COLLATERAL
+151992,5359.41,AAB,LDE,A,12417.64,317,48,CCI,FOLDERX,LTTRS,2002-11-19 18:52:00,2003-03-13 08:59:00,NOT COLLATERAL
+152003,5359.85,AAC,KFF,A,12417.48,318,49,CCJ,FOLDERR,LTTRS,2002-11-19 19:52:00,2003-03-13 10:59:00,NOT COLLATERAL
+152014,5360.29,AAD,EFH,A,12417.32,319,48,DDD,FOLDERS,LTTRS,2002-11-19 20:52:00,2003-03-13 12:59:00,NOT COLLATERAL
+152025,5360.73,AAE,NGC,A,12417.16,320,47,DDA,FOLDERX,LTTRS,2002-11-19 21:52:00,2003-03-13 14:59:00,NOT COLLATERAL
+152036,5361.17,AAF,DER,A,12417,321,46,DAA,FOLDERR,LTTRS,2002-11-19 22:52:00,2003-03-13 16:59:00,NOT COLLATERAL
+152047,5361.61,BBA,FVG,A,12416.84,322,45,FKF,FOLDERS,LTTRS,2002-11-19 23:52:00,2003-03-13 18:59:00,NOT COLLATERAL
+152058,5362.05,BBC,KWE,A,12416.68,323,44,LES,FOLDERX,LTTRS,2002-11-20 00:52:00,2003-03-13 20:59:00,COLLATERAL
+152069,5362.49,BBE,WER,A,12416.52,324,43,KLD,FOLDERR,LTTRS,2002-11-20 01:52:00,2003-03-13 22:59:00,COLLATERAL
+152080,5362.93,BBF,GFH,A,12416.36,325,42,SKL,FOLDERS,LTTRS,2002-11-20 02:52:00,2003-03-14 00:59:00,COLLATERAL
+152091,5363.37,BBG,BGF,A,12416.2,326,41,SIW,FOLDERX,LTTRS,2002-11-20 03:52:00,2003-03-14 02:59:00,NOT COLLATERAL
+152102,5363.81,BBH,XCS,A,12416.04,327,40,CKA,FOLDERR,LTTRZ,2002-11-20 04:52:00,2003-03-14 04:59:00,NOT COLLATERAL
+152113,5364.25,CCA,JHK,A,12415.88,328,39,LDE,FOLDERS,LTTRA,2002-11-20 05:52:00,2003-03-14 06:59:00,NOT COLLATERAL
+152124,5364.69,CCB,SFD,A,12415.72,329,38,KFF,FOLDERX,LTTRB,2002-11-20 06:52:00,2003-03-14 08:59:00,NOT COLLATERAL
+152135,5365.13,CCD,WRE,A,12415.56,330,37,EFH,FOLDERR,LTTRB,2002-11-20 07:52:00,2003-03-14 10:59:00,NOT COLLATERAL
+152146,5365.57,CCE,HGV,A,12415.4,331,36,NGC,FOLDERS,LTTRA,2002-11-20 08:52:00,2003-03-14 12:59:00,NOT COLLATERAL
+152157,5366.01,CCF,KLS,A,12415.24,332,35,DER,FOLDERX,LTTRA,2002-11-20 09:52:00,2003-03-14 14:59:00,NOT COLLATERAL
+152168,5366.45,CCG,SDK,A,12415.08,333,34,FVG,FOLDERD,LTTRS,2002-11-20 10:52:00,2003-03-14 16:59:00,NOT COLLATERAL
+152179,5366.89,CCH,MNV,A,12414.92,334,33,KWE,FOLDERE,LTTRZ,2002-11-20 11:52:00,2003-03-14 18:59:00,NOT COLLATERAL
+152190,5367.33,CCI,OKW,A,12414.76,335,32,WER,FOLDERF,LTTRS,2002-11-20 12:52:00,2003-03-14 20:59:00,COLLATERAL
+152201,5367.77,CCJ,ASS,A,12414.6,336,31,GFH,FOLDERG,LTTRS,2002-11-20 13:52:00,2003-03-14 22:59:00,COLLATERAL
+152212,5368.21,DDD,CKA,A,12414.44,337,30,BGF,FOLDERH,LTTRS,2002-11-20 14:52:00,2003-03-15 00:59:00,COLLATERAL
+152223,5368.65,DDA,SWQ,A,12414.28,338,29,XCS,FOLDERI,LTTRS,2002-11-20 15:52:00,2003-03-15 02:59:00,NOT COLLATERAL
+152234,5369.09,DAA,KUH,A,12414.12,339,28,JHK,FOLDERJ,LTTRS,2002-11-20 16:52:00,2003-03-15 04:59:00,NOT COLLATERAL
+152245,5369.53,DBB,XCV,A,12413.96,340,27,SFD,FOLDERK,LTTRS,2002-11-20 17:52:00,2003-03-15 06:59:00,NOT COLLATERAL
+152256,5369.97,DCC,ZAQ,A,12413.8,341,26,WRE,FOLDERL,LTTRS,2002-11-20 18:52:00,2003-03-15 08:59:00,NOT COLLATERAL
+152267,5370.41,DEE,MKO,A,12413.64,342,25,HGV,FOLDERM,LTTRS,2002-11-20 19:52:00,2003-03-15 10:59:00,NOT COLLATERAL
+152278,5370.85,DFF,VFR,A,12413.48,343,24,KLS,FOLDERN,LTTRS,2002-11-20 20:52:00,2003-03-15 12:59:00,NOT COLLATERAL
+152289,5371.29,DGG,YUJ,A,12413.32,344,23,SDK,FOLDERN,LTTRS,2002-11-20 21:52:00,2003-03-15 14:59:00,NOT COLLATERAL
+152300,5371.73,DHH,MED,A,12413.16,345,22,MNV,FOLDERN,LTTRS,2002-11-20 22:52:00,2003-03-15 16:59:00,NOT COLLATERAL
+152311,5372.17,AAA,SWE,A,12413,346,21,OKW,FOLDERN,LTTRS,2002-11-20 23:52:00,2003-03-15 18:59:00,NOT COLLATERAL
+152322,5372.61,BBB,CVF,A,12412.84,347,20,ASS,FOLDERL,LTTRS,2002-11-21 00:52:00,2003-03-15 20:59:00,COLLATERAL
+152333,5373.05,CCC,DSFG,A,12412.68,348,19,CKA,FOLDERL,LTTRS,2002-11-21 01:52:00,2003-03-15 22:59:00,COLLATERAL
+152344,5373.49,DDD,ASDRE,A,12412.52,349,18,SWQ,FOLDERL,LTTRZ,2002-11-21 02:52:00,2003-03-16 00:59:00,COLLATERAL
+152355,5373.93,AAB,HJKSS,A,12412.36,350,17,KUH,FOLDERL,LTTRA,2002-11-21 03:52:00,2003-03-16 02:59:00,NOT COLLATERAL
+152366,5374.37,AAC,KHAA,A,12412.2,351,16,XCV,FOLDERL,LTTRB,2002-11-21 04:52:00,2003-03-16 04:59:00,NOT COLLATERAL
+152377,5374.81,AAD,KSLD,A,12412.04,352,15,ZAQ,FOLDERA,LTTRB,2002-11-21 05:52:00,2003-03-16 06:59:00,NOT COLLATERAL
+152388,5375.25,AAE,EKID,A,12411.88,353,14,MKO,FOLDERB,LTTRA,2002-11-21 06:52:00,2003-03-16 08:59:00,NOT COLLATERAL
+152399,5375.69,AAF,VNCD,A,12411.72,354,13,VFR,FOLDERC,LTTRA,2002-11-21 07:52:00,2003-03-16 10:59:00,NOT COLLATERAL
+152410,5376.13,BBA,DKD,A,12411.56,355,12,YUJ,FOLDERD,LTTRS,2002-11-21 08:52:00,2003-03-16 12:59:00,NOT COLLATERAL
+152421,5376.57,BBC,FKF,A,12411.4,356,11,AAA,FOLDERE,LTTRZ,2002-11-21 09:52:00,2003-03-16 14:59:00,NOT COLLATERAL
+152432,5377.01,BBE,LES,A,12411.24,357,10,BBB,FOLDERF,LTTRS,2002-11-21 10:52:00,2003-03-16 16:59:00,NOT COLLATERAL
+152443,5377.45,BBF,KLD,A,12411.08,358,9,CCC,FOLDERG,LTTRS,2002-11-21 11:52:00,2003-03-16 18:59:00,NOT COLLATERAL
+152454,5377.89,BBG,SKL,A,12410.92,359,8,DDD,FOLDERH,LTTRS,2002-11-21 12:52:00,2003-03-16 20:59:00,COLLATERAL
+152465,5378.33,BBH,SIW,A,12410.76,360,7,AAB,FOLDERI,LTTRS,2002-11-21 13:52:00,2003-03-16 22:59:00,COLLATERAL
+152476,5378.77,CCA,CKA,A,12410.6,361,6,AAC,FOLDERJ,LTTRS,2002-11-21 14:52:00,2003-03-17 00:59:00,COLLATERAL
+152487,5379.21,CCB,LDE,A,12410.44,362,5,AAD,FOLDERK,LTTRS,2002-11-21 15:52:00,2003-03-17 02:59:00,NOT COLLATERAL
+152498,5379.65,CCD,KFF,A,12410.28,363,4,AAE,FOLDERL,LTTRS,2002-11-21 16:52:00,2003-03-17 04:59:00,NOT COLLATERAL
+152509,5380.09,CCE,EFH,A,12410.12,364,3,AAF,FOLDERM,LTTRS,2002-11-21 17:52:00,2003-03-17 06:59:00,NOT COLLATERAL
+152520,5380.53,CCF,NGC,A,12409.96,365,1,BBA,FOLDERN,LTTRS,2002-11-21 18:52:00,2003-03-17 08:59:00,NOT COLLATERAL
+152531,5380.97,CCG,DER,A,12409.8,366,2,BBC,FOLDERO,LTTRS,2002-11-21 19:52:00,2003-03-17 10:59:00,NOT COLLATERAL
+152542,5381.41,CCH,FVG,A,12409.64,367,3,BBE,FOLDERP,LTTRS,2002-11-21 20:52:00,2003-03-17 12:59:00,NOT COLLATERAL
+152553,5381.85,CCI,KWE,A,12409.48,368,4,BBF,FOLDERQ,LTTRS,2002-11-21 21:52:00,2003-03-17 14:59:00,NOT COLLATERAL
+152564,5382.29,CCJ,WER,A,12409.32,369,5,BBG,FOLDERR,LTTRS,2002-11-21 22:52:00,2003-03-17 16:59:00,NOT COLLATERAL
+152575,5382.73,DDD,GFH,A,12409.16,370,6,BBH,FOLDERS,LTTRS,2002-11-21 23:52:00,2003-03-17 18:59:00,NOT COLLATERAL
+152586,5383.17,DDA,BGF,A,12409,371,7,CCA,FOLDERT,LTTRZ,2002-11-22 00:52:00,2003-03-17 20:59:00,COLLATERAL
+152597,5383.61,DAA,XCS,A,12408.84,372,8,CCB,FOLDERU,LTTRA,2002-11-22 01:52:00,2003-03-17 22:59:00,COLLATERAL
+152608,5384.05,DBB,JHK,A,12408.68,373,9,CCD,FOLDERV,LTTRB,2002-11-22 02:52:00,2003-03-18 00:59:00,COLLATERAL
+152619,5576.45,DCC,SFD,A,12408.52,374,10,CCE,FOLDERW,LTTRB,2002-11-22 03:52:00,2003-03-18 02:59:00,NOT COLLATERAL
+152630,5768.85,DEE,WRE,A,12408.36,375,11,CCF,FOLDERX,LTTRA,2002-11-22 04:52:00,2003-03-18 04:59:00,NOT COLLATERAL
+152641,5961.25,DFF,HGV,A,12408.2,376,12,CCG,FOLDERY,LTTRA,2002-11-22 05:52:00,2003-03-18 06:59:00,NOT COLLATERAL
+152652,6153.65,DGG,KLS,A,12408.04,377,13,CCH,FOLDERZ,LTTRS,2002-11-22 06:52:00,2003-03-18 08:59:00,NOT COLLATERAL
+152663,6346.05,DHH,SDK,A,12407.88,378,14,CCI,FOLDERA,LTTRZ,2002-11-22 07:52:00,2003-03-18 10:59:00,NOT COLLATERAL
+152674,6538.45,AAA,MNV,A,12407.72,379,15,CCJ,FOLDERB,LTTRS,2002-11-22 08:52:00,2003-03-18 12:59:00,NOT COLLATERAL
+152685,6730.85,BBB,OKW,A,12407.56,380,16,DDD,FOLDERC,LTTRS,2002-11-22 09:52:00,2003-03-18 14:59:00,NOT COLLATERAL
+152696,6923.25,CCC,ASS,A,12407.4,381,17,DDA,FOLDERD,LTTRS,2002-11-22 10:52:00,2003-03-18 16:59:00,NOT COLLATERAL
+152707,7115.65,DDD,CKA,A,12407.24,382,18,DAA,FOLDERE,LTTRS,2002-11-22 11:52:00,2003-03-18 18:59:00,NOT COLLATERAL
+152718,7308.05,AAB,SWQ,A,12407.08,383,19,FKF,FOLDERF,LTTRS,2002-11-22 12:52:00,2003-03-18 20:59:00,COLLATERAL
+152729,7500.45,AAC,KUH,A,12406.92,384,20,LES,FOLDERG,LTTRS,2002-11-22 13:52:00,2003-03-18 22:59:00,COLLATERAL
+152740,7692.85,AAD,XCV,A,12406.76,385,21,KLD,FOLDERH,LTTRS,2002-11-22 14:52:00,2003-03-19 00:59:00,COLLATERAL
+152751,7885.25,AAE,ZAQ,A,12406.6,386,22,SKL,FOLDERI,LTTRS,2002-11-22 15:52:00,2003-03-19 02:59:00,NOT COLLATERAL
+152762,8077.65,AAF,MKO,A,12406.44,387,23,SIW,FOLDERJ,LTTRS,2002-11-22 16:52:00,2003-03-19 04:59:00,NOT COLLATERAL
+152773,8270.05,BBA,VFR,A,12406.28,388,24,CKA,FOLDERK,LTTRS,2002-11-22 17:52:00,2003-03-19 06:59:00,NOT COLLATERAL
+152784,8462.45,BBC,YUJ,A,12406.12,389,25,LDE,FOLDERL,LTTRS,2002-11-22 18:52:00,2003-03-19 08:59:00,NOT COLLATERAL
+152795,8654.85,BBE,MED,A,12405.96,390,26,KFF,FOLDERM,LTTRS,2002-11-22 19:52:00,2003-03-19 10:59:00,NOT COLLATERAL
+152806,8847.25,BBF,SWE,A,12405.8,391,27,EFH,FOLDERN,LTTRS,2002-11-22 20:52:00,2003-03-19 12:59:00,NOT COLLATERAL
+152817,9039.65,BBG,CVF,A,12405.64,392,28,NGC,FOLDERO,LTTRS,2002-11-22 21:52:00,2003-03-19 14:59:00,NOT COLLATERAL
+152828,9232.05,BBH,DSFG,A,12405.48,393,29,DER,FOLDERP,LTTRZ,2002-11-22 22:52:00,2003-03-19 16:59:00,NOT COLLATERAL
+152839,9424.45,CCA,ASDRE,A,12405.32,394,30,FVG,FOLDERQ,LTTRA,2002-11-22 23:52:00,2003-03-19 18:59:00,NOT COLLATERAL
+152850,9616.85,CCB,HJKSS,A,12405.16,395,31,KWE,FOLDERR,LTTRB,2002-11-23 00:52:00,2003-03-19 20:59:00,COLLATERAL
+152861,9809.25,CCD,KHAA,A,12405,396,32,WER,FOLDERS,LTTRB,2002-11-23 01:52:00,2003-03-19 22:59:00,COLLATERAL
+152872,10001.65,CCE,KSLD,A,12404.84,397,33,GFH,FOLDERT,LTTRA,2002-11-23 02:52:00,2003-03-20 00:59:00,COLLATERAL
+152883,10194.05,CCF,EKID,A,12404.68,398,34,BGF,FOLDERU,LTTRA,2002-11-23 03:52:00,2003-03-20 02:59:00,NOT COLLATERAL
+152894,10386.45,CCG,VNCD,A,12404.52,399,35,XCS,FOLDERV,LTTRS,2002-11-23 04:52:00,2003-03-20 04:59:00,NOT COLLATERAL
+152905,10578.85,CCH,DKD,A,12404.36,400,36,JHK,FOLDERW,LTTRZ,2002-11-23 05:52:00,2003-03-20 06:59:00,NOT COLLATERAL
+152916,10771.25,CCI,FKF,A,12404.2,401,37,SFD,FOLDERX,LTTRS,2002-11-23 06:52:00,2003-03-20 08:59:00,NOT COLLATERAL
+152927,10963.65,CCJ,LES,A,12404.04,402,38,WRE,FOLDERY,LTTRS,2002-11-23 07:52:00,2003-03-20 10:59:00,NOT COLLATERAL
+152938,11156.05,DDD,KLD,A,12403.88,403,39,HGV,FOLDERZ,LTTRS,2002-11-23 08:52:00,2003-03-20 12:59:00,NOT COLLATERAL
+152949,11348.45,DDA,SKL,A,12403.72,404,40,KLS,FOLDERZ,LTTRS,2002-11-23 09:52:00,2003-03-20 14:59:00,NOT COLLATERAL
+152960,11540.85,DAA,SIW,A,12403.56,405,41,SDK,FOLDERZ,LTTRS,2002-11-23 10:52:00,2003-03-20 16:59:00,NOT COLLATERAL
+152971,11733.25,DBB,CKA,A,12403.4,406,42,MNV,FOLDERZ,LTTRS,2002-11-23 11:52:00,2003-03-20 18:59:00,NOT COLLATERAL
+152982,11925.65,DCC,LDE,A,12403.24,407,43,OKW,FOLDERZ,LTTRS,2002-11-23 12:52:00,2003-03-20 20:59:00,COLLATERAL
+152993,12118.05,DEE,KFF,A,12403.08,408,44,ASS,FOLDERZ,LTTRS,2002-11-23 13:52:00,2003-03-20 22:59:00,COLLATERAL
+153004,12310.45,DFF,EFH,A,12402.92,409,45,CKA,FOLDERZ,LTTRS,2002-11-23 14:52:00,2003-03-21 00:59:00,COLLATERAL
+153015,12502.85,DGG,NGC,A,12402.76,410,46,SWQ,FOLDERZ,LTTRS,2002-11-23 15:52:00,2003-03-21 02:59:00,NOT COLLATERAL
+153026,12695.25,DHH,DER,A,12402.6,411,47,KUH,FOLDERZ,LTTRS,2002-11-23 16:52:00,2003-03-21 04:59:00,NOT COLLATERAL
+153037,12887.65,AAA,FVG,A,12402.44,412,48,XCV,FOLDERZ,LTTRS,2002-11-23 17:52:00,2003-03-21 06:59:00,NOT COLLATERAL
+153048,13080.05,BBB,KWE,A,12402.28,413,49,ZAQ,FOLDERZ,LTTRS,2002-11-23 18:52:00,2003-03-21 08:59:00,NOT COLLATERAL
+153059,13272.45,CCC,WER,A,12402.12,414,48,MKO,FOLDERZ,LTTRS,2002-11-23 19:52:00,2003-03-21 10:59:00,NOT COLLATERAL
+153070,13270.6788,DDD,GFH,A,12401.96,415,47,VFR,FOLDERZ,LTTRZ,2002-11-23 20:52:00,2003-03-21 12:59:00,NOT COLLATERAL
+153081,13268.9076,AAB,BGF,A,12401.8,416,46,YUJ,FOLDERZ,LTTRA,2002-11-23 21:52:00,2003-03-21 14:59:00,NOT COLLATERAL
+153092,13267.1364,AAC,XCS,A,12401.64,417,45,AAA,FOLDERX,LTTRB,2002-11-23 22:52:00,2003-03-21 16:59:00,NOT COLLATERAL
+153103,13263.1244,AAD,JHK,A,12401.48,418,44,BBB,FOLDERX,LTTRB,2002-11-23 23:52:00,2003-03-21 18:59:00,NOT COLLATERAL
+153114,13259.1124,AAE,SFD,A,12401.32,419,43,CCC,FOLDERX,LTTRA,2002-11-24 00:52:00,2003-03-21 20:59:00,COLLATERAL
+153125,13255.1004,AAF,WRE,A,12401.16,420,42,DDD,FOLDERX,LTTRA,2002-11-24 01:52:00,2003-03-21 22:59:00,COLLATERAL
+153136,13251.0884,BBA,HGV,A,12401,421,41,AAB,FOLDERX,LTTRS,2002-11-24 02:52:00,2003-03-22 00:59:00,COLLATERAL
+153147,13247.0764,BBC,KLS,A,12400.84,422,40,AAC,FOLDERX,LTTRZ,2002-11-24 03:52:00,2003-03-22 02:59:00,NOT COLLATERAL
+153158,13243.0644,BBE,SDK,A,12400.68,423,39,AAD,FOLDERX,LTTRS,2002-11-24 04:52:00,2003-03-22 04:59:00,NOT COLLATERAL
+153169,13239.0524,BBF,MNV,A,12400.52,424,38,AAE,FOLDERX,LTTRS,2002-11-24 05:52:00,2003-03-22 06:59:00,NOT COLLATERAL
+153180,13235.0404,BBG,OKW,A,12400.36,425,37,AAF,FOLDERX,LTTRS,2002-11-24 06:52:00,2003-03-22 08:59:00,NOT COLLATERAL
+153191,13231.0284,BBH,ASS,A,12400.2,426,36,BBA,FOLDERX,LTTRS,2002-11-24 07:52:00,2003-03-22 10:59:00,NOT COLLATERAL
+153202,13227.0164,CCA,CKA,A,12400.04,427,35,BBC,FOLDERX,LTTRS,2002-11-24 08:52:00,2003-03-22 12:59:00,NOT COLLATERAL
+153213,12237.345,CCB,SWQ,A,12399.88,428,34,BBE,FOLDERX,LTTRS,2002-11-24 09:52:00,2003-03-22 14:59:00,NOT COLLATERAL
+153224,12240.456,CCD,KUH,A,12399.72,429,33,BBF,FOLDERR,LTTRS,2002-11-24 10:52:00,2003-03-22 16:59:00,NOT COLLATERAL
+153235,12243.567,CCE,XCV,A,12399.56,430,32,BBG,FOLDERS,LTTRS,2002-11-24 11:52:00,2003-03-22 18:59:00,NOT COLLATERAL
+153246,12246.678,CCF,ZAQ,A,12399.4,431,31,BBH,FOLDERX,LTTRS,2002-11-24 12:52:00,2003-03-22 20:59:00,COLLATERAL
+153257,12249.789,CCG,MKO,A,12399.24,432,30,CCA,FOLDERR,LTTRS,2002-11-24 13:51:00,2003-03-22 22:59:00,COLLATERAL
+153268,12252.9,CCH,VFR,A,12399.08,433,29,CCB,FOLDERS,LTTRS,2002-11-24 14:51:00,2003-03-23 00:59:00,COLLATERAL
+153279,12256.011,CCI,YUJ,A,12398.92,434,28,CCD,FOLDERX,LTTRS,2002-11-24 15:51:00,2003-03-23 02:59:00,NOT COLLATERAL
+153290,12259.122,CCJ,MED,A,12398.76,435,27,CCE,FOLDERR,LTTRS,2002-11-24 16:51:00,2003-03-23 04:59:00,NOT COLLATERAL
+153301,12262.233,DDD,SWE,A,12398.6,436,26,CCF,FOLDERS,LTTRS,2002-11-24 17:51:00,2003-03-23 06:59:00,NOT COLLATERAL
+153312,12265.344,DDA,CVF,A,12398.44,437,25,CCG,FOLDERX,LTTRZ,2002-11-24 18:51:00,2003-03-23 08:59:00,NOT COLLATERAL
+153323,12268.455,DAA,DSFG,A,12398.28,438,24,CCH,FOLDERR,LTTRA,2002-11-24 19:51:00,2003-03-23 10:59:00,NOT COLLATERAL
+153334,12271.566,DBB,ASDRE,A,12398.12,439,23,CCI,FOLDERS,LTTRB,2002-11-24 20:51:00,2003-03-23 12:59:00,NOT COLLATERAL
+153345,12274.677,DCC,HJKSS,A,12397.96,440,22,CCJ,FOLDERX,LTTRB,2002-11-24 21:51:00,2003-03-23 14:59:00,NOT COLLATERAL
+153356,12277.788,DEE,KHAA,A,12397.8,441,21,DDD,FOLDERR,LTTRA,2002-11-24 22:51:00,2003-03-23 16:59:00,NOT COLLATERAL
+153367,12280.899,DFF,KSLD,A,12397.64,442,20,DDA,FOLDERS,LTTRA,2002-11-24 23:51:00,2003-03-23 18:59:00,NOT COLLATERAL
+153378,12284.01,DGG,EKID,A,12397.48,443,19,DAA,FOLDERX,LTTRS,2002-11-25 00:51:00,2003-03-23 20:59:00,COLLATERAL
+153389,12287.121,DHH,VNCD,A,12397.32,444,18,FKF,FOLDERD,LTTRZ,2002-11-25 01:51:00,2003-03-23 22:59:00,COLLATERAL
+153400,12290.232,AAA,DKD,A,12397.16,445,17,LES,FOLDERE,LTTRS,2002-11-25 02:51:00,2003-03-24 00:59:00,COLLATERAL
+153411,12293.343,BBB,FKF,A,12397,446,16,KLD,FOLDERF,LTTRS,2002-11-25 03:51:00,2003-03-24 02:59:00,NOT COLLATERAL
+153422,12296.454,CCC,LES,A,12396.84,447,15,SKL,FOLDERG,LTTRS,2002-11-25 04:51:00,2003-03-24 04:59:00,NOT COLLATERAL
+153433,12299.565,DDD,KLD,A,12396.68,448,14,SIW,FOLDERH,LTTRS,2002-11-25 05:51:00,2003-03-24 06:59:00,NOT COLLATERAL
+153444,12302.676,AAB,SKL,A,12396.52,449,13,CKA,FOLDERI,LTTRS,2002-11-25 06:51:00,2003-03-24 08:59:00,NOT COLLATERAL
+153455,12305.787,AAC,SIW,A,12396.36,450,12,LDE,FOLDERJ,LTTRS,2002-11-25 07:51:00,2003-03-24 10:59:00,NOT COLLATERAL
+153466,12308.898,AAD,CKA,A,12396.2,451,11,KFF,FOLDERK,LTTRS,2002-11-25 08:51:00,2003-03-24 12:59:00,NOT COLLATERAL
+153477,12312.009,AAE,LDE,A,12396.04,452,10,EFH,FOLDERL,LTTRS,2002-11-25 09:51:00,2003-03-24 14:59:00,NOT COLLATERAL
+153488,12315.12,AAF,KFF,A,12395.88,103,9,NGC,FOLDERM,LTTRS,2002-11-25 10:51:00,2003-03-24 16:59:00,NOT COLLATERAL
+153499,12318.231,BBA,EFH,A,12395.72,102,8,DER,FOLDERN,LTTRS,2002-11-25 11:51:00,2003-03-24 18:59:00,NOT COLLATERAL
+153510,12321.342,BBC,NGC,A,12395.56,101,7,FVG,FOLDERN,LTTRS,2002-11-25 12:51:00,2003-03-24 20:59:00,COLLATERAL
+153521,12324.453,BBE,DER,A,12395.4,100,6,KWE,FOLDERN,LTTRS,2002-11-25 13:51:00,2003-03-24 22:59:00,COLLATERAL
+153532,12327.564,BBF,FVG,A,12395.24,99,5,WER,FOLDERN,LTTRS,2002-11-25 14:51:00,2003-03-25 00:59:00,COLLATERAL
+153543,12330.675,BBG,KWE,A,12395.08,98,4,GFH,FOLDERL,LTTRS,2002-11-25 15:51:00,2003-03-25 02:59:00,NOT COLLATERAL
+153554,12333.786,BBH,WER,A,12394.92,97,3,BGF,FOLDERL,LTTRZ,2002-11-25 16:51:00,2003-03-25 04:59:00,NOT COLLATERAL
+153565,12336.897,CCA,GFH,A,12394.76,96,1,XCS,FOLDERL,LTTRA,2002-11-25 17:51:00,2003-03-25 06:59:00,NOT COLLATERAL
+153576,12340.008,CCB,BGF,A,12394.6,95,2,JHK,FOLDERL,LTTRB,2002-11-25 18:51:00,2003-03-25 08:59:00,NOT COLLATERAL
+153587,12343.119,CCD,XCS,A,12394.44,94,3,SFD,FOLDERL,LTTRB,2002-11-25 19:51:00,2003-03-25 10:59:00,NOT COLLATERAL
+153598,12346.23,CCE,JHK,A,12394.28,93,4,WRE,FOLDERA,LTTRA,2002-11-25 20:51:00,2003-03-25 12:59:00,NOT COLLATERAL
+153609,12349.341,CCF,SFD,A,12394.12,92,5,HGV,FOLDERB,LTTRA,2002-11-25 21:51:00,2003-03-25 14:59:00,NOT COLLATERAL
+153620,12352.452,CCG,WRE,A,12393.96,91,6,KLS,FOLDERC,LTTRS,2002-11-25 22:51:00,2003-03-25 16:59:00,NOT COLLATERAL
+153631,12355.563,CCH,HGV,A,12393.8,90,7,SDK,FOLDERD,LTTRZ,2002-11-25 23:51:00,2003-03-25 18:59:00,NOT COLLATERAL
+153642,12358.674,CCI,KLS,A,12393.64,89,8,MNV,FOLDERE,LTTRS,2002-11-26 00:51:00,2003-03-25 20:59:00,COLLATERAL
+153653,12361.785,CCJ,SDK,A,12393.48,88,9,OKW,FOLDERF,LTTRS,2002-11-26 01:51:00,2003-03-25 22:59:00,COLLATERAL
+153664,12364.896,DDD,MNV,A,12393.32,87,10,ASS,FOLDERG,LTTRS,2002-11-26 02:51:00,2003-03-26 00:59:00,COLLATERAL
+153675,12368.007,DDA,OKW,A,12393.16,86,11,CKA,FOLDERH,LTTRS,2002-11-26 03:51:00,2003-03-26 02:59:00,NOT COLLATERAL
+153686,12371.118,DAA,ASS,A,12393,85,12,SWQ,FOLDERI,LTTRS,2002-11-26 04:51:00,2003-03-26 04:59:00,NOT COLLATERAL
+153697,12374.229,DBB,CKA,A,12392.84,84,13,KUH,FOLDERJ,LTTRS,2002-11-26 05:51:00,2003-03-26 06:59:00,NOT COLLATERAL
+153708,12377.34,DCC,SWQ,A,12392.68,83,14,XCV,FOLDERK,LTTRS,2002-11-26 06:51:00,2003-03-26 08:59:00,NOT COLLATERAL
+153719,12380.451,DEE,KUH,A,12392.52,82,15,ZAQ,FOLDERL,LTTRS,2002-11-26 07:51:00,2003-03-26 10:59:00,NOT COLLATERAL
+153730,12383.562,DFF,XCV,A,12392.36,81,16,MKO,FOLDERM,LTTRS,2002-11-26 08:51:00,2003-03-26 12:59:00,NOT COLLATERAL
+153741,12386.673,DGG,ZAQ,A,12392.2,80,17,VFR,FOLDERN,LTTRS,2002-11-26 09:51:00,2003-03-26 14:59:00,NOT COLLATERAL
+153752,12389.784,DHH,MKO,A,12392.04,79,18,YUJ,FOLDERO,LTTRS,2002-11-26 10:51:00,2003-03-26 16:59:00,NOT COLLATERAL
+153763,12392.895,AAA,VFR,A,12391.88,78,19,AAA,FOLDERP,LTTRS,2002-11-26 11:51:00,2003-03-26 18:59:00,NOT COLLATERAL
+153774,12396.006,BBB,YUJ,A,12391.72,77,20,BBB,FOLDERQ,LTTRS,2002-11-26 12:51:00,2003-03-26 20:59:00,COLLATERAL
+153785,12399.117,CCC,MED,A,12391.56,76,21,CCC,FOLDERR,LTTRS,2002-11-26 13:51:00,2003-03-26 22:59:00,COLLATERAL
+153796,12402.228,DDD,SWE,A,12391.4,75,22,DDD,FOLDERS,LTTRZ,2002-11-26 14:51:00,2003-03-27 00:59:00,COLLATERAL
+153807,12405.339,AAB,CVF,A,12391.24,74,23,AAB,FOLDERT,LTTRA,2002-11-26 15:51:00,2003-03-27 02:59:00,NOT COLLATERAL
+153818,12408.45,AAC,DSFG,A,12391.08,73,24,AAC,FOLDERU,LTTRB,2002-11-26 16:51:00,2003-03-27 04:59:00,NOT COLLATERAL
+153829,12411.561,AAD,ASDRE,A,12390.92,72,25,AAD,FOLDERV,LTTRB,2002-11-26 17:51:00,2003-03-27 06:59:00,NOT COLLATERAL
+153840,12414.672,AAE,HJKSS,A,12390.76,71,26,AAE,FOLDERW,LTTRA,2002-11-26 18:51:00,2003-03-27 08:59:00,NOT COLLATERAL
+153851,12417.783,AAF,KHAA,A,12390.6,70,27,AAF,FOLDERX,LTTRA,2002-11-26 19:51:00,2003-03-27 10:59:00,NOT COLLATERAL
+153862,12420.894,BBA,KSLD,A,12390.44,69,28,BBA,FOLDERY,LTTRS,2002-11-26 20:51:00,2003-03-27 12:59:00,NOT COLLATERAL
+153873,12424.005,BBC,EKID,A,12390.28,68,29,BBC,FOLDERZ,LTTRZ,2002-11-26 21:51:00,2003-03-27 14:59:00,NOT COLLATERAL
+153884,12427.116,BBE,VNCD,A,12390.12,67,30,BBE,FOLDERA,LTTRS,2002-11-26 22:51:00,2003-03-27 16:59:00,NOT COLLATERAL
+153895,12430.227,BBF,DKD,A,12389.96,66,31,BBF,FOLDERB,LTTRS,2002-11-26 23:51:00,2003-03-27 18:59:00,NOT COLLATERAL
+153906,12433.338,BBG,FKF,A,12389.8,65,32,BBG,FOLDERC,LTTRS,2002-11-27 00:51:00,2003-03-27 20:59:00,COLLATERAL
+153917,12436.449,BBH,LES,A,12389.64,64,33,BBH,FOLDERD,LTTRS,2002-11-27 01:51:00,2003-03-27 22:59:00,COLLATERAL
+153928,12439.56,CCA,KLD,A,12389.48,63,34,CCA,FOLDERE,LTTRS,2002-11-27 02:51:00,2003-03-28 00:59:00,COLLATERAL
+153939,12442.671,CCB,SKL,A,12389.32,62,35,CCB,FOLDERF,LTTRS,2002-11-27 03:51:00,2003-03-28 02:59:00,NOT COLLATERAL
+153950,12445.782,CCD,SIW,A,12389.16,61,36,CCD,FOLDERG,LTTRS,2002-11-27 04:51:00,2003-03-28 04:59:00,NULL
+153961,12448.893,CCE,CKA,A,12389,60,37,CCE,FOLDERH,LTTRS,2002-11-27 05:51:00,2003-03-28 06:59:00,NULL
+153972,12452.004,CCF,LDE,A,12388.84,59,38,CCF,FOLDERI,LTTRS,2002-11-27 06:51:00,2003-03-28 08:59:00,NULL
+153983,12455.115,CCG,KFF,A,12388.68,58,39,CCG,FOLDERJ,LTTRS,2002-11-27 07:51:00,2003-03-28 10:59:00,NULL
+153994,12458.226,CCH,EFH,A,12388.52,57,40,CCH,FOLDERK,LTTRS,2002-11-27 08:51:00,2003-03-28 12:59:00,NULL
+154005,12461.337,CCI,NGC,A,12388.36,56,41,CCI,FOLDERL,LTTRS,2002-11-27 09:51:00,2003-03-28 14:59:00,NULL
+154016,12464.448,CCJ,DER,A,12388.2,55,42,CCJ,FOLDERM,LTTRS,2002-11-27 10:51:00,2003-03-28 16:59:00,NULL
+154027,12467.559,DDD,FVG,A,12388.04,54,43,DDD,FOLDERN,LTTRS,2002-11-27 11:51:00,2003-03-28 18:59:00,NOT COLLATERAL
+154038,12470.67,DDA,KWE,A,12387.88,53,44,DDA,FOLDERO,LTTRZ,2002-11-27 12:51:00,2003-03-28 20:59:00,COLLATERAL
+154049,12473.781,DAA,WER,A,12387.72,52,45,DAA,FOLDERP,LTTRA,2002-11-27 13:51:00,2003-03-28 22:59:00,COLLATERAL
+154060,12476.892,DBB,GFH,A,12387.56,51,46,FKF,FOLDERQ,LTTRB,2002-11-27 14:51:00,2003-03-29 00:59:00,COLLATERAL
+154071,12480.003,DCC,BGF,A,12387.4,50,47,LES,FOLDERR,LTTRB,2002-11-27 15:51:00,2003-03-29 02:59:00,NOT COLLATERAL
+154082,12483.114,DEE,XCS,A,12387.24,49,48,KLD,FOLDERS,LTTRA,2002-11-27 16:51:00,2003-03-29 04:59:00,NOT COLLATERAL
+154093,12486.225,DFF,JHK,A,12387.08,48,49,SKL,FOLDERT,LTTRA,2002-11-27 17:51:00,2003-03-29 06:59:00,NULL
+154104,12489.336,DGG,SFD,A,12386.92,47,48,SIW,FOLDERU,LTTRS,2002-11-27 18:51:00,2003-03-29 08:59:00,NULL
+154115,12492.447,DHH,WRE,A,12386.76,46,47,CKA,FOLDERV,LTTRZ,2002-11-27 19:51:00,2003-03-29 10:59:00,NULL
+154126,12495.558,AAA,HGV,A,12386.6,45,46,LDE,FOLDERW,LTTRS,2002-11-27 20:51:00,2003-03-29 12:59:00,NULL
+154137,12498.669,BBB,KLS,A,12386.44,44,45,KFF,FOLDERX,LTTRS,2002-11-27 21:51:00,2003-03-29 14:59:00,NULL
+154148,12501.78,CCC,SDK,A,12386.28,43,44,EFH,FOLDERY,LTTRS,2002-11-27 22:51:00,2003-03-29 16:59:00,NULL
+154159,12504.891,DDD,MNV,A,12386.12,42,43,NGC,FOLDERZ,LTTRS,2002-11-27 23:51:00,2003-03-29 18:59:00,NULL
+154170,12508.002,AAB,OKW,A,12385.96,41,42,DER,FOLDERZ,LTTRS,2002-11-28 00:51:00,2003-03-29 20:59:00,NULL
+154181,12511.113,AAC,ASS,A,12385.8,40,41,FVG,FOLDERZ,LTTRS,2002-11-28 01:51:00,2003-03-29 22:59:00,COLLATERAL
+154192,12514.224,AAD,CKA,A,12385.64,39,40,KWE,FOLDERZ,LTTRS,2002-11-28 02:51:00,2003-03-30 00:59:00,COLLATERAL
+154203,12517.335,AAE,SWQ,A,12385.48,38,39,WER,FOLDERZ,LTTRS,2002-11-28 03:51:00,2003-03-30 02:59:00,NOT COLLATERAL
+154214,12520.446,AAF,KUH,A,12385.32,37,38,GFH,FOLDERZ,LTTRS,2002-11-28 04:51:00,2003-03-30 04:59:00,NOT COLLATERAL
+154225,12523.557,BBA,XCV,A,12385.16,36,37,BGF,FOLDERZ,LTTRS,2002-11-28 05:51:00,2003-03-30 06:59:00,NOT COLLATERAL
+154236,12526.668,BBC,ZAQ,A,12385,35,36,XCS,FOLDERZ,LTTRS,2002-11-28 06:51:00,2003-03-30 08:59:00,NOT COLLATERAL
+154247,12529.779,BBE,MKO,A,12384.84,34,35,JHK,FOLDERZ,LTTRS,2002-11-28 07:51:00,2003-03-30 10:59:00,NOT COLLATERAL
+154258,12532.89,BBF,VFR,A,12384.68,33,34,SFD,FOLDERZ,LTTRS,2002-11-28 08:51:00,2003-03-30 12:59:00,NOT COLLATERAL
+154269,12536.001,BBG,YUJ,A,12384.52,32,33,WRE,FOLDERZ,LTTRS,2002-11-28 09:51:00,2003-03-30 14:59:00,NOT COLLATERAL
+154280,12539.112,BBH,MED,A,12384.36,31,32,HGV,FOLDERZ,LTTRZ,2002-11-28 10:51:00,2003-03-30 16:59:00,NOT COLLATERAL
+154291,12542.223,CCA,SWE,A,12384.2,30,31,KLS,FOLDERZ,LTTRA,2002-11-28 11:51:00,2003-03-30 18:59:00,NOT COLLATERAL
+154302,12545.334,CCB,CVF,A,12384.04,29,30,SDK,FOLDERZ,LTTRB,2002-11-28 12:51:00,2003-03-30 20:59:00,COLLATERAL
+154313,12548.445,CCD,DSFG,A,12383.88,28,29,MNV,FOLDERX,LTTRB,2002-11-28 13:51:00,2003-03-30 22:59:00,COLLATERAL
+154324,12551.556,CCE,ASDRE,A,12383.72,27,28,OKW,FOLDERX,LTTRA,2002-11-28 14:51:00,2003-03-31 00:59:00,COLLATERAL
+154335,12554.667,CCF,HJKSS,A,12383.56,26,27,ASS,FOLDERX,LTTRA,2002-11-28 15:51:00,2003-03-31 02:59:00,NOT COLLATERAL
+154346,12557.778,CCG,KHAA,A,12383.4,25,26,CKA,FOLDERX,LTTRS,2002-11-28 16:51:00,2003-03-31 04:59:00,NOT COLLATERAL
+154357,12560.889,CCH,KSLD,A,12383.24,24,25,SWQ,FOLDERX,LTTRZ,2002-11-28 17:51:00,2003-03-31 06:59:00,NOT COLLATERAL
+154368,12564,CCI,EKID,A,12383.08,23,24,KUH,FOLDERX,LTTRS,2002-11-28 18:51:00,2003-03-31 08:59:00,NOT COLLATERAL
+154379,12567.111,CCJ,VNCD,A,12382.92,22,23,XCV,FOLDERX,LTTRS,2002-11-28 19:51:00,2003-03-31 10:59:00,NOT COLLATERAL
+154390,12570.222,DDD,DKD,A,12382.76,21,22,ZAQ,FOLDERX,LTTRS,2002-11-28 20:51:00,2003-03-31 12:59:00,NOT COLLATERAL
+154401,12573.333,DDA,FKF,A,12382.6,24,21,MKO,FOLDERX,LTTRS,2002-11-28 21:51:00,2003-03-31 14:59:00,NOT COLLATERAL
+154412,12576.444,DAA,LES,A,12382.44,27,20,VFR,FOLDERX,LTTRS,2002-11-28 22:51:00,2003-03-31 16:59:00,NOT COLLATERAL
+154423,12579.555,DBB,KLD,A,12382.28,30,19,YUJ,FOLDERX,LTTRS,2002-11-28 23:51:00,2003-03-31 18:59:00,NOT COLLATERAL
+154434,12582.666,DCC,SKL,A,12382.12,33,18,AAA,FOLDERX,LTTRS,2002-11-29 00:51:00,2003-03-31 20:59:00,COLLATERAL
+154445,12585.777,DEE,SIW,A,12381.96,36,17,BBB,FOLDERR,LTTRS,2002-11-29 01:51:00,2003-03-31 22:59:00,COLLATERAL
+154456,12588.888,DFF,CKA,A,12381.8,39,16,CCC,FOLDERS,LTTRS,2002-11-29 02:51:00,2003-04-01 00:59:00,COLLATERAL
+154467,12591.999,DGG,LDE,A,12381.64,42,15,DDD,FOLDERX,LTTRS,2002-11-29 03:51:00,2003-04-01 02:59:00,NOT COLLATERAL
+154478,12595.11,DHH,KFF,A,12381.48,45,14,AAB,FOLDERR,LTTRS,2002-11-29 04:51:00,2003-04-01 04:59:00,NOT COLLATERAL
+154489,12598.221,AAA,EFH,A,12381.32,48,13,AAC,FOLDERS,LTTRS,2002-11-29 05:51:00,2003-04-01 06:59:00,NOT COLLATERAL
+154500,12601.332,BBB,NGC,A,12381.16,51,12,AAD,FOLDERX,LTTRS,2002-11-29 06:51:00,2003-04-01 08:59:00,NOT COLLATERAL
+154511,12604.443,CCC,DER,A,12381,54,11,AAE,FOLDERR,LTTRS,2002-11-29 07:51:00,2003-04-01 10:59:00,NOT COLLATERAL
+154522,12607.554,DDD,FVG,A,12380.84,57,10,AAF,FOLDERS,LTTRZ,2002-11-29 08:51:00,2003-04-01 12:59:00,NOT COLLATERAL
+154533,12610.665,AAB,KWE,A,12380.68,60,9,BBA,FOLDERX,LTTRA,2002-11-29 09:51:00,2003-04-01 14:59:00,NOT COLLATERAL
+154544,12613.776,AAC,WER,A,12380.52,63,8,BBC,FOLDERR,LTTRB,2002-11-29 10:51:00,2003-04-01 16:59:00,NOT COLLATERAL
+154555,12616.887,AAD,GFH,A,12380.36,66,7,BBE,FOLDERS,LTTRB,2002-11-29 11:51:00,2003-04-01 18:59:00,NOT COLLATERAL
+154566,12619.998,AAE,BGF,A,12380.2,69,6,BBF,FOLDERX,LTTRA,2002-11-29 12:51:00,2003-04-01 20:59:00,COLLATERAL
+154577,12623.109,AAF,XCS,A,12380.04,72,5,BBG,FOLDERR,LTTRA,2002-11-29 13:51:00,2003-04-01 22:59:00,COLLATERAL
+154588,12626.22,BBA,JHK,A,12379.88,75,4,BBH,FOLDERS,LTTRS,2002-11-29 14:51:00,2003-04-02 00:59:00,COLLATERAL
+154599,12629.331,BBC,SFD,A,12379.72,78,3,CCA,FOLDERX,LTTRZ,2002-11-29 15:51:00,2003-04-02 02:59:00,NOT COLLATERAL
+154610,12632.442,BBE,WRE,A,12379.56,81,1,CCB,FOLDERD,LTTRS,2002-11-29 16:51:00,2003-04-02 04:59:00,NOT COLLATERAL
+154621,12635.553,BBF,HGV,A,12379.4,84,2,CCD,FOLDERE,LTTRS,2002-11-29 17:51:00,2003-04-02 06:59:00,NOT COLLATERAL
+154632,12638.664,BBG,KLS,A,12379.24,87,3,CCE,FOLDERF,LTTRS,2002-11-29 18:51:00,2003-04-02 08:59:00,NOT COLLATERAL
+154643,12641.775,BBH,SDK,A,12379.08,90,4,CCF,FOLDERG,LTTRS,2002-11-29 19:51:00,2003-04-02 10:59:00,NOT COLLATERAL
+154654,12644.886,CCA,MNV,A,12378.92,93,5,CCG,FOLDERH,LTTRS,2002-11-29 20:51:00,2003-04-02 12:59:00,NOT COLLATERAL
+154665,12647.997,CCB,OKW,A,12378.76,96,6,CCH,FOLDERI,LTTRS,2002-11-29 21:51:00,2003-04-02 14:59:00,NOT COLLATERAL
+154676,12651.108,CCD,ASS,A,12378.6,99,7,CCI,FOLDERJ,LTTRS,2002-11-29 22:51:00,2003-04-02 16:59:00,NOT COLLATERAL
+154687,12654.219,CCE,CKA,A,12378.44,102,8,CCJ,FOLDERK,LTTRS,2002-11-29 23:51:00,2003-04-02 18:59:00,NOT COLLATERAL
+154698,12657.33,CCF,SWQ,A,12378.28,105,9,DDD,FOLDERL,LTTRS,2002-11-30 00:51:00,2003-04-02 20:59:00,COLLATERAL
+154709,12660.441,CCG,KUH,A,12378.12,108,10,DDA,FOLDERM,LTTRS,2002-11-30 01:51:00,2003-04-02 22:59:00,COLLATERAL
+154720,12663.552,CCH,XCV,A,12377.96,111,11,DAA,FOLDERN,LTTRS,2002-11-30 02:51:00,2003-04-03 00:59:00,COLLATERAL
+154731,12666.663,CCI,ZAQ,A,12377.8,114,12,FKF,FOLDERN,LTTRS,2002-11-30 03:51:00,2003-04-03 02:59:00,NOT COLLATERAL
+154742,12669.774,CCJ,MKO,A,12377.64,117,13,LES,FOLDERN,LTTRS,2002-11-30 04:51:00,2003-04-03 04:59:00,NOT COLLATERAL
+154753,12672.885,DDD,VFR,A,12377.48,120,14,KLD,FOLDERN,LTTRS,2002-11-30 05:51:00,2003-04-03 06:59:00,NOT COLLATERAL
+154764,12675.996,DDA,YUJ,A,12377.32,123,15,SKL,FOLDERL,LTTRZ,2002-11-30 06:51:00,2003-04-03 08:59:00,NOT COLLATERAL
+154775,12679.107,DAA,MED,A,12377.16,126,16,SIW,FOLDERL,LTTRA,2002-11-30 07:51:00,2003-04-03 10:59:00,NOT COLLATERAL
+154786,12682.218,DBB,SWE,A,12377,129,17,CKA,FOLDERL,LTTRB,2002-11-30 08:51:00,2003-04-03 12:59:00,NOT COLLATERAL
+154797,12685.329,DCC,CVF,A,12376.84,132,18,LDE,FOLDERL,LTTRB,2002-11-30 09:51:00,2003-04-03 14:59:00,NOT COLLATERAL
+154808,12688.44,DEE,DSFG,A,12376.68,135,19,KFF,FOLDERL,LTTRA,2002-11-30 10:51:00,2003-04-03 16:59:00,NOT COLLATERAL
+154819,12691.551,DFF,ASDRE,A,12376.52,138,20,EFH,FOLDERA,LTTRA,2002-11-30 11:51:00,2003-04-03 18:59:00,NOT COLLATERAL
+154830,12694.662,DGG,HJKSS,A,12376.36,141,21,NGC,FOLDERB,LTTRS,2002-11-30 12:51:00,2003-04-03 20:59:00,COLLATERAL
+154841,12697.773,DHH,KHAA,A,12376.2,144,22,DER,FOLDERC,LTTRZ,2002-11-30 13:51:00,2003-04-03 22:59:00,COLLATERAL
+154852,12700.884,AAA,KSLD,A,12376.04,147,23,FVG,FOLDERD,LTTRS,2002-11-30 14:51:00,2003-04-04 00:59:00,COLLATERAL
+154863,12703.995,BBB,EKID,A,12375.88,150,24,KWE,FOLDERE,LTTRS,2002-11-30 15:51:00,2003-04-04 02:59:00,NOT COLLATERAL
+154874,12707.106,CCC,VNCD,A,12375.72,153,25,WER,FOLDERF,LTTRS,2002-11-30 16:51:00,2003-04-04 04:59:00,NOT COLLATERAL
+154885,12710.217,DDD,DKD,A,12375.56,156,26,GFH,FOLDERG,LTTRS,2002-11-30 17:51:00,2003-04-04 06:59:00,NOT COLLATERAL
+154896,12713.328,AAB,FKF,A,12375.4,159,27,BGF,FOLDERH,LTTRS,2002-11-30 18:51:00,2003-04-04 08:59:00,NOT COLLATERAL
+154907,12716.439,AAC,LES,A,12375.24,162,28,XCS,FOLDERI,LTTRS,2002-11-30 19:51:00,2003-04-04 10:59:00,NOT COLLATERAL
+154918,12719.55,AAD,KLD,A,12375.08,165,29,JHK,FOLDERJ,LTTRS,2002-11-30 20:51:00,2003-04-04 12:59:00,NOT COLLATERAL
+154929,12722.661,AAE,SKL,A,12374.92,168,30,SFD,FOLDERK,LTTRS,2002-11-30 21:51:00,2003-04-04 14:59:00,NOT COLLATERAL
+154940,12725.772,AAF,SIW,A,12374.76,171,31,WRE,FOLDERL,LTTRS,2002-11-30 22:51:00,2003-04-04 16:59:00,NOT COLLATERAL
+154951,12728.883,BBA,CKA,A,12374.6,174,32,HGV,FOLDERM,LTTRS,2002-11-30 23:51:00,2003-04-04 18:59:00,NOT COLLATERAL
+154962,12731.994,BBC,LDE,A,12374.44,177,33,KLS,FOLDERN,LTTRS,2002-12-01 00:51:00,2003-04-04 20:59:00,COLLATERAL
+154973,12735.105,BBE,KFF,A,12374.28,180,34,SDK,FOLDERO,LTTRS,2002-12-01 01:51:00,2003-04-04 22:59:00,COLLATERAL
+154984,12738.216,BBF,EFH,A,12374.12,183,35,MNV,FOLDERP,LTTRS,2002-12-01 02:51:00,2003-04-05 00:59:00,COLLATERAL
+154995,12741.327,BBG,NGC,A,12373.96,186,36,OKW,FOLDERQ,LTTRS,2002-12-01 03:51:00,2003-04-05 02:59:00,NOT COLLATERAL
+155006,12744.438,BBH,DER,A,12373.8,189,37,ASS,FOLDERR,LTTRZ,2002-12-01 04:51:00,2003-04-05 04:59:00,NOT COLLATERAL
+155017,12747.549,CCA,FVG,A,12373.64,192,38,CKA,FOLDERS,LTTRA,2002-12-01 05:51:00,2003-04-05 06:59:00,NOT COLLATERAL
+155028,12750.66,CCB,KWE,A,12373.48,195,39,SWQ,FOLDERT,LTTRB,2002-12-01 06:51:00,2003-04-05 08:59:00,NOT COLLATERAL
+155039,12753.771,CCD,WER,A,12373.32,198,40,KUH,FOLDERU,LTTRB,2002-12-01 07:51:00,2003-04-05 10:59:00,NOT COLLATERAL
+155050,12756.882,CCE,GFH,A,12373.16,201,41,XCV,FOLDERV,LTTRA,2002-12-01 08:51:00,2003-04-05 12:59:00,NOT COLLATERAL
+155061,12759.993,CCF,BGF,A,12373,204,42,ZAQ,FOLDERW,LTTRA,2002-12-01 09:51:00,2003-04-05 14:59:00,NOT COLLATERAL
+155072,12763.104,CCG,XCS,A,12372.84,207,43,MKO,FOLDERX,LTTRS,2002-12-01 10:51:00,2003-04-05 16:59:00,NOT COLLATERAL
+155083,12766.215,CCH,JHK,A,12372.68,210,44,VFR,FOLDERY,LTTRZ,2002-12-01 11:51:00,2003-04-05 18:59:00,NOT COLLATERAL
+155094,12769.326,CCI,SFD,A,12372.52,213,45,YUJ,FOLDERZ,LTTRS,2002-12-01 12:51:00,2003-04-05 20:59:00,COLLATERAL
+155105,12772.437,CCJ,WRE,A,12372.36,216,46,AAA,FOLDERA,LTTRS,2002-12-01 13:51:00,2003-04-05 22:59:00,COLLATERAL
+155116,12775.548,DDD,HGV,A,12372.2,219,47,BBB,FOLDERB,LTTRS,2002-12-01 14:51:00,2003-04-06 00:59:00,COLLATERAL
+155127,12778.659,DDA,KLS,A,12372.04,222,48,CCC,FOLDERC,LTTRS,2002-12-01 15:51:00,2003-04-06 02:59:00,NOT COLLATERAL
+155138,12781.77,DAA,SDK,A,12371.88,225,49,DDD,FOLDERD,LTTRS,2002-12-01 16:51:00,2003-04-06 04:59:00,NOT COLLATERAL
+155149,12784.881,DBB,MNV,A,12371.72,228,48,AAB,FOLDERE,LTTRS,2002-12-01 17:51:00,2003-04-06 06:59:00,NOT COLLATERAL
+155160,12787.992,DCC,OKW,A,12371.56,231,47,AAC,FOLDERF,LTTRS,2002-12-01 18:51:00,2003-04-06 08:59:00,NOT COLLATERAL
+155171,12791.103,DEE,ASS,A,12371.4,234,46,AAD,FOLDERG,LTTRS,2002-12-01 19:51:00,2003-04-06 10:59:00,NOT COLLATERAL
+155182,12794.214,DFF,CKA,A,12371.24,237,45,AAE,FOLDERH,LTTRS,2002-12-01 20:51:00,2003-04-06 12:59:00,NOT COLLATERAL
+155193,12797.325,DGG,SWQ,A,12371.08,240,44,AAF,FOLDERI,LTTRS,2002-12-01 21:51:00,2003-04-06 14:59:00,NOT COLLATERAL
+155204,12800.436,DHH,KUH,A,12370.92,243,43,BBA,FOLDERJ,LTTRS,2002-12-01 22:51:00,2003-04-06 16:59:00,NOT COLLATERAL
+155215,12803.547,AAA,XCV,A,12370.76,246,42,BBC,FOLDERK,LTTRS,2002-12-01 23:51:00,2003-04-06 18:59:00,NOT COLLATERAL
+155226,12806.658,BBB,ZAQ,A,12370.6,249,41,BBE,FOLDERL,LTTRS,2002-12-02 00:51:00,2003-04-06 20:59:00,COLLATERAL
+155237,12809.769,CCC,MKO,A,12370.44,252,40,BBF,FOLDERM,LTTRS,2002-12-02 01:51:00,2003-04-06 22:59:00,COLLATERAL
+155248,12812.88,DDD,VFR,A,12370.28,255,39,BBG,FOLDERN,LTTRZ,2002-12-02 02:51:00,2003-04-07 00:59:00,COLLATERAL
+155259,12815.991,AAB,YUJ,A,12370.12,258,38,BBH,FOLDERO,LTTRA,2002-12-02 03:51:00,2003-04-07 02:59:00,NOT COLLATERAL
+155270,12819.102,AAC,MED,A,12369.96,261,37,CCA,FOLDERP,LTTRB,2002-12-02 04:51:00,2003-04-07 04:59:00,NOT COLLATERAL
+155281,12822.213,AAD,SWE,A,12369.8,264,36,CCB,FOLDERQ,LTTRB,2002-12-02 05:51:00,2003-04-07 06:59:00,NOT COLLATERAL
+155292,12825.324,AAE,CVF,A,12369.64,267,35,CCD,FOLDERR,LTTRA,2002-12-02 06:51:00,2003-04-07 08:59:00,NOT COLLATERAL
+155303,12828.435,AAF,DSFG,A,12369.48,270,34,CCE,FOLDERS,LTTRA,2002-12-02 07:51:00,2003-04-07 10:59:00,NOT COLLATERAL
+155314,12831.546,BBA,ASDRE,A,12369.32,273,33,CCF,FOLDERT,LTTRS,2002-12-02 08:51:00,2003-04-07 12:59:00,NOT COLLATERAL
+155325,12834.657,BBC,HJKSS,A,12369.16,276,32,CCG,FOLDERU,LTTRZ,2002-12-02 09:51:00,2003-04-07 14:59:00,NOT COLLATERAL
+155336,12837.768,BBE,KHAA,A,12369,279,31,CCH,FOLDERV,LTTRS,2002-12-02 10:51:00,2003-04-07 16:59:00,NOT COLLATERAL
+155347,12840.879,BBF,KSLD,A,12368.84,282,30,CCI,FOLDERW,LTTRS,2002-12-02 11:51:00,2003-04-07 18:59:00,NOT COLLATERAL
+155358,12843.99,BBG,EKID,A,12368.68,285,29,CCJ,FOLDERX,LTTRS,2002-12-02 12:51:00,2003-04-07 20:59:00,COLLATERAL
+155369,12847.101,BBH,VNCD,A,12368.52,288,28,DDD,FOLDERY,LTTRS,2002-12-02 13:51:00,2003-04-07 22:59:00,COLLATERAL
+155380,12850.212,CCA,DKD,A,12368.36,291,27,DDA,FOLDERZ,LTTRS,2002-12-02 14:51:00,2003-04-08 00:59:00,COLLATERAL
+155391,12853.323,CCB,FKF,A,12368.2,294,26,DAA,FOLDERZ,LTTRS,2002-12-02 15:51:00,2003-04-08 02:59:00,NOT COLLATERAL
+155402,12856.434,CCD,LES,A,12368.04,297,25,FKF,FOLDERZ,LTTRS,2002-12-02 16:51:00,2003-04-08 04:59:00,NOT COLLATERAL
+155413,12859.545,CCE,KLD,A,12367.88,300,24,LES,FOLDERZ,LTTRS,2002-12-02 17:51:00,2003-04-08 06:59:00,NOT COLLATERAL
+155424,12862.656,CCF,SKL,A,12367.72,303,23,KLD,FOLDERZ,LTTRS,2002-12-02 18:51:00,2003-04-08 08:59:00,NOT COLLATERAL
+155435,12865.767,CCG,SIW,A,12367.56,306,22,SKL,FOLDERZ,LTTRS,2002-12-02 19:51:00,2003-04-08 10:59:00,NOT COLLATERAL
+155446,12868.878,CCH,CKA,A,12367.4,309,21,SIW,FOLDERZ,LTTRS,2002-12-02 20:51:00,2003-04-08 12:59:00,NOT COLLATERAL
+155457,12871.989,CCI,LDE,A,12367.24,312,20,CKA,FOLDERZ,LTTRS,2002-12-02 21:51:00,2003-04-08 14:59:00,NOT COLLATERAL
+155468,12875.1,CCJ,KFF,A,12367.08,315,19,LDE,FOLDERZ,LTTRS,2002-12-02 22:51:00,2003-04-08 16:59:00,NOT COLLATERAL
+155479,12878.211,DDD,EFH,A,12366.92,318,18,KFF,FOLDERZ,LTTRS,2002-12-02 23:51:00,2003-04-08 18:59:00,NOT COLLATERAL
+155490,12881.322,DDA,NGC,A,12366.76,321,17,EFH,FOLDERZ,LTTRZ,2002-12-03 00:50:00,2003-04-08 20:59:00,COLLATERAL
+155501,12884.433,DAA,DER,A,12366.6,324,16,NGC,FOLDERZ,LTTRA,2002-12-03 01:50:00,2003-04-08 22:59:00,COLLATERAL
+155512,12887.544,DBB,FVG,A,12366.44,327,15,DER,FOLDERZ,LTTRB,2002-12-03 02:50:00,2003-04-09 00:59:00,COLLATERAL
+155523,12890.655,DCC,KWE,A,12366.28,330,14,FVG,FOLDERZ,LTTRB,2002-12-03 03:50:00,2003-04-09 02:59:00,NOT COLLATERAL
+155534,12893.766,DEE,WER,A,12366.12,333,13,KWE,FOLDERX,LTTRA,2002-12-03 04:50:00,2003-04-09 04:59:00,NOT COLLATERAL
+155545,12896.877,DFF,GFH,A,12365.96,336,12,WER,FOLDERX,LTTRA,2002-12-03 05:50:00,2003-04-09 06:59:00,NOT COLLATERAL
+155556,12899.988,DGG,BGF,A,12365.8,339,11,GFH,FOLDERX,LTTRS,2002-12-03 06:50:00,2003-04-09 08:59:00,NOT COLLATERAL
+155567,12903.099,DHH,XCS,A,12365.64,342,10,BGF,FOLDERX,LTTRZ,2002-12-03 07:50:00,2003-04-09 10:59:00,NOT COLLATERAL
+155578,12906.21,AAA,JHK,A,12365.48,345,9,XCS,FOLDERX,LTTRS,2002-12-03 08:50:00,2003-04-09 12:59:00,NOT COLLATERAL
+155589,12909.321,BBB,SFD,A,12365.32,348,8,JHK,FOLDERX,LTTRS,2002-12-03 09:50:00,2003-04-09 14:59:00,NOT COLLATERAL
+155600,12912.432,CCC,WRE,A,12365.16,351,7,SFD,FOLDERX,LTTRS,2002-12-03 10:50:00,2003-04-09 16:59:00,NOT COLLATERAL
+155611,12915.543,DDD,HGV,A,12365,354,6,WRE,FOLDERX,LTTRS,2002-12-03 11:50:00,2003-04-09 18:59:00,NOT COLLATERAL
+155622,12918.654,AAB,KLS,A,12364.84,357,5,HGV,FOLDERX,LTTRS,2002-12-03 12:50:00,2003-04-09 20:59:00,COLLATERAL
+155633,12921.765,AAC,SDK,A,12364.68,360,4,KLS,FOLDERX,LTTRS,2002-12-03 13:50:00,2003-04-09 22:59:00,COLLATERAL
+155644,12924.876,AAD,MNV,A,12364.52,363,3,SDK,FOLDERX,LTTRS,2002-12-03 14:50:00,2003-04-10 00:59:00,COLLATERAL
+155655,12927.987,AAE,OKW,A,12364.36,366,1,MNV,FOLDERX,LTTRS,2002-12-03 15:50:00,2003-04-10 02:59:00,NOT COLLATERAL
+155666,12931.098,AAF,ASS,A,12364.2,369,2,OKW,FOLDERR,LTTRS,2002-12-03 16:50:00,2003-04-10 04:59:00,NOT COLLATERAL
+155677,12934.209,BBA,CKA,A,12364.04,372,3,ASS,FOLDERS,LTTRS,2002-12-03 17:50:00,2003-04-10 06:59:00,NOT COLLATERAL
+155688,12937.32,BBC,SWQ,A,12363.88,375,4,CKA,FOLDERX,LTTRS,2002-12-03 18:50:00,2003-04-10 08:59:00,NOT COLLATERAL
+155699,12940.431,BBE,KUH,A,12363.72,378,5,SWQ,FOLDERR,LTTRS,2002-12-03 19:50:00,2003-04-10 10:59:00,NOT COLLATERAL
+155710,12943.542,BBF,XCV,A,12363.56,381,6,KUH,FOLDERS,LTTRS,2002-12-03 20:50:00,2003-04-10 12:59:00,NOT COLLATERAL
+155721,12946.653,BBG,ZAQ,A,12363.4,384,7,XCV,FOLDERX,LTTRS,2002-12-03 21:50:00,2003-04-10 14:59:00,NOT COLLATERAL
+155732,12949.764,BBH,MKO,A,12363.24,387,8,ZAQ,FOLDERR,LTTRZ,2002-12-03 22:50:00,2003-04-10 16:59:00,NOT COLLATERAL
+155743,12952.875,CCA,VFR,A,12363.08,390,9,MKO,FOLDERS,LTTRA,2002-12-03 23:50:00,2003-04-10 18:59:00,NOT COLLATERAL
+155754,12955.986,CCB,YUJ,A,12362.92,393,10,VFR,FOLDERX,LTTRB,2002-12-04 00:50:00,2003-04-10 20:59:00,COLLATERAL
+155765,12959.097,CCD,MED,A,12362.76,396,11,YUJ,FOLDERR,LTTRB,2002-12-04 01:50:00,2003-04-10 22:59:00,COLLATERAL
+155776,12962.208,CCE,SWE,A,12362.6,399,12,AAA,FOLDERS,LTTRA,2002-12-04 02:50:00,2003-04-11 00:59:00,COLLATERAL
+155787,12965.319,CCF,CVF,A,12362.44,402,13,BBB,FOLDERX,LTTRA,2002-12-04 03:50:00,2003-04-11 02:59:00,NOT COLLATERAL
+155798,12968.43,CCG,DSFG,A,12362.28,405,14,CCC,FOLDERR,LTTRS,2002-12-04 04:50:00,2003-04-11 04:59:00,NOT COLLATERAL
+155809,12971.541,CCH,ASDRE,A,12362.12,408,15,DDD,FOLDERS,LTTRZ,2002-12-04 05:50:00,2003-04-11 06:59:00,NOT COLLATERAL
+155820,12974.652,CCI,HJKSS,A,12361.96,402,16,AAB,FOLDERX,LTTRS,2002-12-04 06:50:00,2003-04-11 08:59:00,NOT COLLATERAL
+155831,12977.763,CCJ,KHAA,A,12361.8,396,17,AAC,FOLDERD,LTTRS,2002-12-04 07:50:00,2003-04-11 10:59:00,NOT COLLATERAL
+155842,12980.874,DDD,KSLD,A,12361.64,390,18,AAD,FOLDERE,LTTRS,2002-12-04 08:50:00,2003-04-11 12:59:00,NOT COLLATERAL
+155853,12983.985,DDA,EKID,A,12361.48,384,19,AAE,FOLDERF,LTTRS,2002-12-04 09:50:00,2003-04-11 14:59:00,NOT COLLATERAL
+155864,12987.096,DAA,VNCD,A,12361.32,378,20,AAF,FOLDERG,LTTRS,2002-12-04 10:50:00,2003-04-11 16:59:00,NOT COLLATERAL
+155875,12990.207,DBB,DKD,A,12361.16,372,21,BBA,FOLDERH,LTTRS,2002-12-04 11:50:00,2003-04-11 18:59:00,NOT COLLATERAL
+155886,12993.318,DCC,FKF,A,12361,366,22,BBC,FOLDERI,LTTRS,2002-12-04 12:50:00,2003-04-11 20:59:00,COLLATERAL
+155897,12996.429,DEE,LES,A,12360.84,360,23,BBE,FOLDERJ,LTTRS,2002-12-04 13:50:00,2003-04-11 22:59:00,COLLATERAL
+155908,12999.54,DFF,KLD,A,12360.68,354,24,BBF,FOLDERK,LTTRS,2002-12-04 14:50:00,2003-04-12 00:59:00,COLLATERAL
+155919,13002.651,DGG,SKL,A,12360.52,348,25,BBG,FOLDERL,LTTRS,2002-12-04 15:50:00,2003-04-12 02:59:00,NOT COLLATERAL
+155930,13005.762,DHH,SIW,A,12360.36,342,26,BBH,FOLDERM,LTTRS,2002-12-04 16:50:00,2003-04-12 04:59:00,NOT COLLATERAL
+155941,13008.873,AAA,CKA,A,12360.2,336,27,CCA,FOLDERN,LTTRS,2002-12-04 17:50:00,2003-04-12 06:59:00,NOT COLLATERAL
+155952,13011.984,BBB,LDE,A,12360.04,330,28,CCB,FOLDERN,LTTRS,2002-12-04 18:50:00,2003-04-12 08:59:00,NOT COLLATERAL
+155963,13015.095,CCC,KFF,A,12359.88,324,29,CCD,FOLDERN,LTTRS,2002-12-04 19:50:00,2003-04-12 10:59:00,NOT COLLATERAL
+155974,13018.206,DDD,EFH,A,12359.72,318,30,CCE,FOLDERN,LTTRZ,2002-12-04 20:50:00,2003-04-12 12:59:00,NOT COLLATERAL
+155985,13021.317,AAB,NGC,A,12359.56,312,31,CCF,FOLDERL,LTTRA,2002-12-04 21:50:00,2003-04-12 14:59:00,NOT COLLATERAL
+155996,13024.428,AAC,DER,A,12359.4,306,32,CCG,FOLDERL,LTTRB,2002-12-04 22:50:00,2003-04-12 16:59:00,NOT COLLATERAL
+156007,13027.539,AAD,FVG,A,12359.24,300,33,CCH,FOLDERL,LTTRB,2002-12-04 23:50:00,2003-04-12 18:59:00,NOT COLLATERAL
+156018,13030.65,AAE,KWE,A,12359.08,294,34,CCI,FOLDERL,LTTRA,2002-12-05 00:50:00,2003-04-12 20:59:00,COLLATERAL
+156029,13033.761,AAF,WER,A,12358.92,288,35,CCJ,FOLDERL,LTTRA,2002-12-05 01:50:00,2003-04-12 22:59:00,COLLATERAL
+156040,13036.872,BBA,GFH,A,12358.76,282,36,DDD,FOLDERA,LTTRS,2002-12-05 02:50:00,2003-04-13 00:59:00,COLLATERAL
+156051,13039.983,BBC,BGF,A,12358.6,276,37,DDA,FOLDERB,LTTRZ,2002-12-05 03:50:00,2003-04-13 02:59:00,NOT COLLATERAL
+156062,13043.094,BBE,XCS,A,12358.44,270,38,DAA,FOLDERC,LTTRS,2002-12-05 04:50:00,2003-04-13 04:59:00,NOT COLLATERAL
+156073,13046.205,BBF,JHK,A,12358.28,264,39,FKF,FOLDERD,LTTRS,2002-12-05 05:50:00,2003-04-13 06:59:00,NOT COLLATERAL
+156084,13049.316,BBG,SFD,A,12358.12,258,40,LES,FOLDERE,LTTRS,2002-12-05 06:50:00,2003-04-13 08:59:00,NOT COLLATERAL
+156095,13052.427,BBH,WRE,A,12357.96,252,41,KLD,FOLDERF,LTTRS,2002-12-05 07:50:00,2003-04-13 10:59:00,NOT COLLATERAL
+156106,13055.538,CCA,HGV,A,12357.8,246,42,SKL,FOLDERG,LTTRS,2002-12-05 08:50:00,2003-04-13 12:59:00,NOT COLLATERAL
+156117,13058.649,CCB,KLS,A,12357.64,240,43,SIW,FOLDERH,LTTRS,2002-12-05 09:50:00,2003-04-13 14:59:00,NOT COLLATERAL
+156128,13061.76,CCD,SDK,A,12357.48,234,44,CKA,FOLDERI,LTTRS,2002-12-05 10:50:00,2003-04-13 16:59:00,NOT COLLATERAL
+156139,13064.871,CCE,MNV,A,12357.32,228,45,LDE,FOLDERJ,LTTRS,2002-12-05 11:50:00,2003-04-13 18:59:00,NOT COLLATERAL
+156150,13067.982,CCF,OKW,A,12357.16,222,46,KFF,FOLDERK,LTTRS,2002-12-05 12:50:00,2003-04-13 20:59:00,COLLATERAL
+156161,13071.093,CCG,ASS,A,12357,216,47,EFH,FOLDERL,LTTRS,2002-12-05 13:50:00,2003-04-13 22:59:00,COLLATERAL
+156172,13074.204,CCH,CKA,A,12356.84,210,48,NGC,FOLDERM,LTTRS,2002-12-05 14:50:00,2003-04-14 00:59:00,COLLATERAL
+156183,13077.315,CCI,SWQ,A,12356.68,204,49,DER,FOLDERN,LTTRS,2002-12-05 15:50:00,2003-04-14 02:59:00,NOT COLLATERAL
+156194,13080.426,CCJ,KUH,A,12356.52,198,48,FVG,FOLDERO,LTTRS,2002-12-05 16:50:00,2003-04-14 04:59:00,NOT COLLATERAL
+156205,13083.537,DDD,XCV,A,12356.36,192,47,KWE,FOLDERP,LTTRS,2002-12-05 17:50:00,2003-04-14 06:59:00,NOT COLLATERAL
+156216,13086.648,DDA,ZAQ,A,12356.2,186,46,WER,FOLDERQ,LTTRZ,2002-12-05 18:50:00,2003-04-14 08:59:00,NOT COLLATERAL
+156227,13089.759,DAA,MKO,A,12356.04,180,45,GFH,FOLDERR,LTTRA,2002-12-05 19:50:00,2003-04-14 10:59:00,NOT COLLATERAL
+156238,13092.87,DBB,VFR,A,12355.88,174,44,BGF,FOLDERS,LTTRB,2002-12-05 20:50:00,2003-04-14 12:59:00,NOT COLLATERAL
+156249,13095.981,DCC,YUJ,A,12355.72,168,43,XCS,FOLDERT,LTTRB,2002-12-05 21:50:00,2003-04-14 14:59:00,NOT COLLATERAL
+156260,13099.092,DEE,MED,A,12355.56,162,42,JHK,FOLDERU,LTTRA,2002-12-05 22:50:00,2003-04-14 16:59:00,NOT COLLATERAL
+156271,13102.203,DFF,SWE,A,12355.4,156,41,SFD,FOLDERV,LTTRA,2002-12-05 23:50:00,2003-04-14 18:59:00,NOT COLLATERAL
+156282,13105.314,DGG,CVF,A,12355.24,150,40,WRE,FOLDERW,LTTRS,2002-12-06 00:50:00,2003-04-14 20:59:00,COLLATERAL
+156293,13108.425,DHH,DSFG,A,12355.08,144,39,HGV,FOLDERX,LTTRZ,2002-12-06 01:50:00,2003-04-14 22:59:00,COLLATERAL
+156304,13111.536,AAA,ASDRE,A,12354.92,138,38,KLS,FOLDERY,LTTRS,2002-12-06 02:50:00,2003-04-15 00:59:00,COLLATERAL
+156315,13114.647,BBB,HJKSS,A,12354.76,132,37,SDK,FOLDERZ,LTTRS,2002-12-06 03:50:00,2003-04-15 02:59:00,NOT COLLATERAL
+156326,13117.758,CCC,KHAA,A,12354.6,126,36,MNV,FOLDERA,LTTRS,2002-12-06 04:50:00,2003-04-15 04:59:00,NOT COLLATERAL
+156337,13120.869,DDD,KSLD,A,12354.44,120,35,OKW,FOLDERB,LTTRS,2002-12-06 05:50:00,2003-04-15 06:59:00,NOT COLLATERAL
+156348,13123.98,AAB,EKID,A,12354.28,114,34,ASS,FOLDERC,LTTRS,2002-12-06 06:50:00,2003-04-15 08:59:00,NOT COLLATERAL
+156359,13127.091,AAC,VNCD,A,12354.12,108,33,CKA,FOLDERD,LTTRS,2002-12-06 07:50:00,2003-04-15 10:59:00,NOT COLLATERAL
+156370,13130.202,AAD,DKD,A,12353.96,102,32,SWQ,FOLDERE,LTTRS,2002-12-06 08:50:00,2003-04-15 12:59:00,NOT COLLATERAL
+156381,13133.313,AAE,FKF,A,12353.8,96,31,KUH,FOLDERF,LTTRS,2002-12-06 09:50:00,2003-04-15 14:59:00,NOT COLLATERAL
+156392,13136.424,AAF,LES,A,12353.64,90,30,XCV,FOLDERG,LTTRS,2002-12-06 10:50:00,2003-04-15 16:59:00,NOT COLLATERAL
+156403,13139.535,BBA,KLD,A,12353.48,91,29,ZAQ,FOLDERH,LTTRS,2002-12-06 11:50:00,2003-04-15 18:59:00,NOT COLLATERAL
+156414,13142.646,BBC,SKL,A,12353.32,91,28,MKO,FOLDERI,LTTRS,2002-12-06 12:50:00,2003-04-15 20:59:00,COLLATERAL
+156425,13145.757,BBE,SIW,A,12353.16,91,27,VFR,FOLDERJ,LTTRS,2002-12-06 13:50:00,2003-04-15 22:59:00,COLLATERAL
+156436,13148.868,BBF,CKA,A,12353,91,26,YUJ,FOLDERK,LTTRS,2002-12-06 14:50:00,2003-04-16 00:59:00,COLLATERAL
+156447,13151.979,BBG,LDE,A,12352.84,91,25,AAA,FOLDERL,LTTRS,2002-12-06 15:50:00,2003-04-16 02:59:00,NOT COLLATERAL
+156458,13155.09,BBH,KFF,A,12352.68,91,24,BBB,FOLDERM,LTTRZ,2002-12-06 16:50:00,2003-04-16 04:59:00,NOT COLLATERAL
+156469,13158.201,CCA,EFH,A,12352.52,91,23,CCC,FOLDERN,LTTRA,2002-12-06 17:50:00,2003-04-16 06:59:00,NOT COLLATERAL
+156480,13161.312,CCB,NGC,A,12352.36,91,22,DDD,FOLDERO,LTTRB,2002-12-06 18:50:00,2003-04-16 08:59:00,NOT COLLATERAL
+156491,13164.423,CCD,DER,A,12352.2,91,21,AAB,FOLDERP,LTTRB,2002-12-06 19:50:00,2003-04-16 10:59:00,NOT COLLATERAL
+156502,13167.534,CCE,FVG,A,12352.04,91,20,AAC,FOLDERQ,LTTRA,2002-12-06 20:50:00,2003-04-16 12:59:00,NOT COLLATERAL
+156513,13170.645,CCF,KWE,A,12351.88,92,19,AAD,FOLDERR,LTTRA,2002-12-06 21:50:00,2003-04-16 14:59:00,NOT COLLATERAL
+156524,13173.756,CCG,WER,A,12351.72,93,18,AAE,FOLDERS,LTTRS,2002-12-06 22:50:00,2003-04-16 16:59:00,NOT COLLATERAL
+156535,13176.867,CCH,GFH,A,12351.56,94,17,AAF,FOLDERT,LTTRZ,2002-12-06 23:50:00,2003-04-16 18:59:00,NOT COLLATERAL
+156546,13179.978,CCI,BGF,A,12351.4,95,16,BBA,FOLDERU,LTTRS,2002-12-07 00:50:00,2003-04-16 20:59:00,COLLATERAL
+156557,13183.089,CCJ,XCS,A,12351.24,96,15,BBC,FOLDERV,LTTRS,2002-12-07 01:50:00,2003-04-16 22:59:00,COLLATERAL
+156568,13186.2,DDD,JHK,A,12351.08,97,14,BBE,FOLDERW,LTTRS,2002-12-07 02:50:00,2003-04-17 00:59:00,COLLATERAL
+156579,13189.311,DDA,SFD,A,12350.92,98,13,BBF,FOLDERX,LTTRS,2002-12-07 03:50:00,2003-04-17 02:59:00,NOT COLLATERAL
+156590,13192.422,DAA,WRE,A,12350.76,99,12,BBG,FOLDERY,LTTRS,2002-12-07 04:50:00,2003-04-17 04:59:00,NULL
+156601,13195.533,DBB,HGV,A,12350.6,100,11,BBH,FOLDERZ,LTTRS,2002-12-07 05:50:00,2003-04-17 06:59:00,NULL
+156612,13198.644,DCC,KLS,A,12350.44,101,10,CCA,FOLDERZ,LTTRS,2002-12-07 06:50:00,2003-04-17 08:59:00,NULL
+156623,13201.755,DEE,SDK,A,12350.28,102,9,CCB,FOLDERZ,LTTRS,2002-12-07 07:50:00,2003-04-17 10:59:00,NULL
+156634,13204.866,DFF,MNV,A,12350.12,103,8,CCD,FOLDERZ,LTTRS,2002-12-07 08:50:00,2003-04-17 12:59:00,NULL
+156645,13207.977,DGG,OKW,A,12349.96,104,7,CCE,FOLDERZ,LTTRS,2002-12-07 09:50:00,2003-04-17 14:59:00,NOT COLLATERAL
+156656,13211.088,DHH,ASS,A,12349.8,105,6,CCF,FOLDERZ,LTTRS,2002-12-07 10:50:00,2003-04-17 16:59:00,NOT COLLATERAL
+156667,13214.199,AAA,CKA,A,12349.64,106,5,CCG,FOLDERZ,LTTRS,2002-12-07 11:50:00,2003-04-17 18:59:00,NOT COLLATERAL
+156678,13217.31,BBB,SWQ,A,12349.48,107,4,CCH,FOLDERZ,LTTRS,2002-12-07 12:50:00,2003-04-17 20:59:00,COLLATERAL
+156689,13220.421,CCC,KUH,A,12349.32,108,3,CCI,FOLDERZ,LTTRS,2002-12-07 13:50:00,2003-04-17 22:59:00,COLLATERAL
+156700,13223.532,DDD,XCV,A,12349.16,109,11,CCJ,FOLDERZ,LTTRZ,2002-12-07 14:50:00,2003-04-18 00:59:00,COLLATERAL
+156711,13226.643,AAB,ZAQ,A,12349,110,12,DDD,FOLDERZ,LTTRA,2002-12-07 15:50:00,2003-04-18 02:59:00,NOT COLLATERAL
+156722,13229.754,AAC,MKO,A,12348.84,111,13,DDA,FOLDERZ,LTTRB,2002-12-07 16:50:00,2003-04-18 04:59:00,NOT COLLATERAL
+156733,13232.865,AAD,VFR,A,12348.68,112,14,DAA,FOLDERZ,LTTRB,2002-12-07 17:50:00,2003-04-18 06:59:00,NOT COLLATERAL
+156744,13235.976,AAE,YUJ,A,12348.52,113,15,FKF,FOLDERZ,LTTRA,2002-12-07 18:50:00,2003-04-18 08:59:00,NOT COLLATERAL
+156755,13239.087,AAF,MED,A,12348.36,114,16,LES,FOLDERX,LTTRA,2002-12-07 19:50:00,2003-04-18 10:59:00,NULL
+156766,13242.198,BBA,SWE,A,12348.2,115,17,KLD,FOLDERX,LTTRS,2002-12-07 20:50:00,2003-04-18 12:59:00,NULL
+156777,13245.309,BBC,CVF,A,12348.04,116,18,SKL,FOLDERX,LTTRZ,2002-12-07 21:50:00,2003-04-18 14:59:00,NULL
+156788,13248.42,BBE,DSFG,A,12347.88,117,19,SIW,FOLDERX,LTTRS,2002-12-07 22:50:00,2003-04-18 16:59:00,NULL
+156799,13251.531,BBF,ASDRE,A,12347.72,118,20,CKA,FOLDERX,LTTRS,2002-12-07 23:50:00,2003-04-18 18:59:00,NULL
+156810,13254.642,BBG,HJKSS,A,12347.56,119,21,LDE,FOLDERX,LTTRS,2002-12-08 00:50:00,2003-04-18 20:59:00,COLLATERAL
+156821,13257.753,BBH,KHAA,A,12347.4,120,22,KFF,FOLDERX,LTTRS,2002-12-08 01:50:00,2003-04-18 22:59:00,COLLATERAL
+156832,13260.864,CCA,KSLD,A,12347.24,121,23,EFH,FOLDERX,LTTRS,2002-12-08 02:50:00,2003-04-19 00:59:00,COLLATERAL
+156843,13263.975,CCB,EKID,A,12347.08,122,24,NGC,FOLDERX,LTTRS,2002-12-08 03:50:00,2003-04-19 02:59:00,NOT COLLATERAL
+156854,13267.086,CCD,VNCD,A,12346.92,123,25,DER,FOLDERX,LTTRS,2002-12-08 04:50:00,2003-04-19 04:59:00,NULL
+156865,13270.197,CCE,DKD,A,12346.76,124,26,FVG,FOLDERX,LTTRS,2002-12-08 05:50:00,2003-04-19 06:59:00,NULL
+156876,13273.308,CCF,FKF,A,12346.6,125,27,KWE,FOLDERX,LTTRS,2002-12-08 06:50:00,2003-04-19 08:59:00,NULL
+156887,13276.419,CCG,LES,A,12346.44,126,28,WER,FOLDERR,LTTRS,2002-12-08 07:50:00,2003-04-19 10:59:00,NULL
+156898,13279.53,CCH,KLD,A,12346.28,127,29,GFH,FOLDERS,LTTRS,2002-12-08 08:50:00,2003-04-19 12:59:00,NULL
+156909,13282.641,CCI,SKL,A,12346.12,128,30,BGF,FOLDERX,LTTRS,2002-12-08 09:50:00,2003-04-19 14:59:00,NOT COLLATERAL
+156920,13285.752,CCJ,SIW,A,12345.96,129,31,XCS,FOLDERR,LTTRS,2002-12-08 10:50:00,2003-04-19 16:59:00,NOT COLLATERAL
+156931,13288.863,DDD,CKA,A,12345.8,130,32,JHK,FOLDERS,LTTRS,2002-12-08 11:50:00,2003-04-19 18:59:00,NOT COLLATERAL
+156942,13291.974,DDA,LDE,A,12345.64,131,33,SFD,FOLDERX,LTTRZ,2002-12-08 12:50:00,2003-04-19 20:59:00,COLLATERAL
+156953,13295.085,DAA,KFF,A,12345.48,132,34,WRE,FOLDERR,LTTRA,2002-12-08 13:50:00,2003-04-19 22:59:00,COLLATERAL
+156964,13298.196,DBB,EFH,A,12345.32,133,35,HGV,FOLDERS,LTTRB,2002-12-08 14:50:00,2003-04-20 00:59:00,COLLATERAL
+156975,13301.307,DCC,NGC,A,12345.16,134,36,KLS,FOLDERX,LTTRB,2002-12-08 15:50:00,2003-04-20 02:59:00,NOT COLLATERAL
+156986,13304.418,DEE,DER,A,12345,135,37,SDK,FOLDERR,LTTRA,2002-12-08 16:50:00,2003-04-20 04:59:00,NOT COLLATERAL
+156997,13307.529,DFF,FVG,A,12344.84,136,38,MNV,FOLDERS,LTTRA,2002-12-08 17:50:00,2003-04-20 06:59:00,NOT COLLATERAL
+157008,13310.64,DGG,KWE,A,12344.68,137,39,OKW,FOLDERX,LTTRS,2002-12-08 18:50:00,2003-04-20 08:59:00,NOT COLLATERAL
+157019,13313.751,DHH,WER,A,12344.52,138,40,ASS,FOLDERR,LTTRZ,2002-12-08 19:50:00,2003-04-20 10:59:00,NOT COLLATERAL
+157030,13316.862,AAA,GFH,A,12344.36,139,41,CKA,FOLDERS,LTTRS,2002-12-08 20:50:00,2003-04-20 12:59:00,NOT COLLATERAL
+157041,13319.973,BBB,BGF,A,12344.2,140,42,SWQ,FOLDERX,LTTRS,2002-12-08 21:50:00,2003-04-20 14:59:00,NOT COLLATERAL
+157052,13323.084,CCC,XCS,A,12344.04,141,43,KUH,FOLDERD,LTTRS,2002-12-08 22:50:00,2003-04-20 16:59:00,NOT COLLATERAL
+157063,13326.195,DDD,JHK,A,12343.88,142,44,XCV,FOLDERE,LTTRS,2002-12-08 23:50:00,2003-04-20 18:59:00,NOT COLLATERAL
+157074,13329.306,AAB,SFD,A,12343.72,143,45,ZAQ,FOLDERF,LTTRS,2002-12-09 00:50:00,2003-04-20 20:59:00,COLLATERAL
+157085,13332.417,AAC,WRE,A,12343.56,144,46,MKO,FOLDERG,LTTRS,2002-12-09 01:50:00,2003-04-20 22:59:00,COLLATERAL
+157096,13335.528,AAD,HGV,A,12343.4,145,47,VFR,FOLDERH,LTTRS,2002-12-09 02:50:00,2003-04-21 00:59:00,COLLATERAL
+157107,13338.639,AAE,KLS,A,12343.24,146,48,YUJ,FOLDERI,LTTRS,2002-12-09 03:50:00,2003-04-21 02:59:00,NOT COLLATERAL
+157118,13341.75,AAF,SDK,A,12343.08,147,49,AAA,FOLDERJ,LTTRS,2002-12-09 04:50:00,2003-04-21 04:59:00,NOT COLLATERAL
+157129,13344.861,BBA,MNV,A,12342.92,148,48,BBB,FOLDERK,LTTRS,2002-12-09 05:50:00,2003-04-21 06:59:00,NOT COLLATERAL
+157140,13347.972,BBC,OKW,A,12342.76,149,47,CCC,FOLDERL,LTTRS,2002-12-09 06:50:00,2003-04-21 08:59:00,NOT COLLATERAL
+157151,13351.083,BBE,ASS,A,12342.6,150,46,DDD,FOLDERM,LTTRS,2002-12-09 07:50:00,2003-04-21 10:59:00,NOT COLLATERAL
+157162,13354.194,BBF,CKA,A,12342.44,151,45,AAB,FOLDERN,LTTRS,2002-12-09 08:50:00,2003-04-21 12:59:00,NOT COLLATERAL
+157173,13357.305,BBG,SWQ,A,12342.28,152,44,AAC,FOLDERN,LTTRS,2002-12-09 09:50:00,2003-04-21 14:59:00,NOT COLLATERAL
+157184,13360.416,BBH,KUH,A,12342.12,153,43,AAD,FOLDERN,LTTRZ,2002-12-09 10:50:00,2003-04-21 16:59:00,NOT COLLATERAL
+157195,13363.527,CCA,XCV,A,12341.96,154,42,AAE,FOLDERN,LTTRA,2002-12-09 11:50:00,2003-04-21 18:59:00,NOT COLLATERAL
+157206,13366.638,CCB,ZAQ,A,12341.8,155,41,AAF,FOLDERL,LTTRB,2002-12-09 12:50:00,2003-04-21 20:59:00,COLLATERAL
+157217,13369.749,CCD,MKO,A,12341.64,156,40,BBA,FOLDERL,LTTRB,2002-12-09 13:50:00,2003-04-21 22:59:00,COLLATERAL
+157228,13372.86,CCE,VFR,A,12341.48,157,39,BBC,FOLDERL,LTTRA,2002-12-09 14:50:00,2003-04-22 00:59:00,COLLATERAL
+157239,13375.971,CCF,YUJ,A,12341.32,158,38,BBE,FOLDERL,LTTRA,2002-12-09 15:50:00,2003-04-22 02:59:00,NOT COLLATERAL
+157250,13379.082,CCG,MED,A,12341.16,159,37,BBF,FOLDERL,LTTRS,2002-12-09 16:50:00,2003-04-22 04:59:00,NOT COLLATERAL
+157261,13382.193,CCH,SWE,A,12341,160,36,BBG,FOLDERA,LTTRZ,2002-12-09 17:50:00,2003-04-22 06:59:00,NOT COLLATERAL
+157272,13385.304,CCI,CVF,A,12340.84,161,35,BBH,FOLDERB,LTTRS,2002-12-09 18:50:00,2003-04-22 08:59:00,NOT COLLATERAL
+157283,13388.415,CCJ,DSFG,A,12340.68,162,34,CCA,FOLDERC,LTTRS,2002-12-09 19:50:00,2003-04-22 10:59:00,NOT COLLATERAL
+157294,13391.526,DDD,ASDRE,A,12340.52,163,33,CCB,FOLDERD,LTTRS,2002-12-09 20:50:00,2003-04-22 12:59:00,NOT COLLATERAL
+157305,13394.637,DDA,HJKSS,A,12340.36,164,32,CCD,FOLDERE,LTTRS,2002-12-09 21:50:00,2003-04-22 14:59:00,NOT COLLATERAL
+157316,13397.748,DAA,KHAA,A,12340.2,165,31,CCE,FOLDERF,LTTRS,2002-12-09 22:50:00,2003-04-22 16:59:00,NOT COLLATERAL
+157327,13400.859,DBB,KSLD,A,12340.04,166,30,CCF,FOLDERG,LTTRS,2002-12-09 23:50:00,2003-04-22 18:59:00,NOT COLLATERAL
+157338,13403.97,DCC,EKID,A,12339.88,167,29,CCG,FOLDERH,LTTRS,2002-12-10 00:50:00,2003-04-22 20:59:00,COLLATERAL
+157349,13407.081,DEE,VNCD,A,12339.72,168,28,CCH,FOLDERI,LTTRS,2002-12-10 01:50:00,2003-04-22 22:59:00,COLLATERAL
+157360,13410.192,DFF,DKD,A,12339.56,169,27,CCI,FOLDERJ,LTTRS,2002-12-10 02:50:00,2003-04-23 00:59:00,COLLATERAL
+157371,13413.303,DGG,FKF,A,12339.4,170,26,CCJ,FOLDERK,LTTRS,2002-12-10 03:50:00,2003-04-23 02:59:00,NOT COLLATERAL
+157382,13416.414,DHH,LES,A,12339.24,171,25,DDD,FOLDERL,LTTRS,2002-12-10 04:50:00,2003-04-23 04:59:00,NOT COLLATERAL
+157393,13419.525,AAA,KLD,A,12339.08,172,24,DDA,FOLDERM,LTTRS,2002-12-10 05:50:00,2003-04-23 06:59:00,NOT COLLATERAL
+157404,13422.636,BBB,SKL,A,12338.92,173,23,DAA,FOLDERN,LTTRS,2002-12-10 06:50:00,2003-04-23 08:59:00,NOT COLLATERAL
+157415,13425.747,CCC,SIW,A,12338.76,174,22,FKF,FOLDERO,LTTRS,2002-12-10 07:50:00,2003-04-23 10:59:00,NOT COLLATERAL
+157426,13428.858,DDD,CKA,A,12338.6,175,21,LES,FOLDERP,LTTRZ,2002-12-10 08:50:00,2003-04-23 12:59:00,NOT COLLATERAL
+157437,13431.969,AAB,LDE,A,12338.44,176,20,KLD,FOLDERQ,LTTRA,2002-12-10 09:50:00,2003-04-23 14:59:00,NOT COLLATERAL
+157448,13435.08,AAC,KFF,A,12338.28,177,19,SKL,FOLDERR,LTTRB,2002-12-10 10:50:00,2003-04-23 16:59:00,NOT COLLATERAL
+157459,13438.191,AAD,EFH,A,12338.12,178,18,SIW,FOLDERS,LTTRB,2002-12-10 11:50:00,2003-04-23 18:59:00,NOT COLLATERAL
+157470,13441.302,AAE,NGC,A,12337.96,179,17,CKA,FOLDERT,LTTRA,2002-12-10 12:50:00,2003-04-23 20:59:00,COLLATERAL
+157481,13444.413,AAF,DER,A,12337.8,180,16,LDE,FOLDERU,LTTRA,2002-12-10 13:50:00,2003-04-23 22:59:00,COLLATERAL
+157492,13447.524,BBA,FVG,A,12337.64,181,15,KFF,FOLDERV,LTTRS,2002-12-10 14:50:00,2003-04-24 00:59:00,COLLATERAL
+157503,13450.635,BBC,KWE,A,12337.48,182,14,EFH,FOLDERW,LTTRZ,2002-12-10 15:50:00,2003-04-24 02:59:00,NOT COLLATERAL
+157514,13453.746,BBE,WER,A,12337.32,183,13,NGC,FOLDERX,LTTRS,2002-12-10 16:50:00,2003-04-24 04:59:00,NOT COLLATERAL
+157525,13456.857,BBF,GFH,A,12337.16,184,12,DER,FOLDERY,LTTRS,2002-12-10 17:50:00,2003-04-24 06:59:00,NOT COLLATERAL
+157536,13459.968,BBG,BGF,A,12337,185,11,FVG,FOLDERZ,LTTRS,2002-12-10 18:50:00,2003-04-24 08:59:00,NOT COLLATERAL
+157547,13463.079,BBH,XCS,A,12336.84,186,10,KWE,FOLDERA,LTTRS,2002-12-10 19:50:00,2003-04-24 10:59:00,NOT COLLATERAL
+157558,13466.19,CCA,JHK,A,12336.68,187,9,WER,FOLDERB,LTTRS,2002-12-10 20:50:00,2003-04-24 12:59:00,NOT COLLATERAL
+157569,13469.301,CCB,SFD,A,12336.52,188,8,GFH,FOLDERC,LTTRS,2002-12-10 21:50:00,2003-04-24 14:59:00,NOT COLLATERAL
+157580,13472.412,CCD,WRE,A,12336.36,189,7,BGF,FOLDERD,LTTRS,2002-12-10 22:50:00,2003-04-24 16:59:00,NOT COLLATERAL
+157591,13475.523,CCE,HGV,A,12336.2,190,6,XCS,FOLDERE,LTTRS,2002-12-10 23:50:00,2003-04-24 18:59:00,NOT COLLATERAL
+157602,13478.634,CCF,KLS,A,12336.04,191,5,JHK,FOLDERF,LTTRS,2002-12-11 00:50:00,2003-04-24 20:59:00,COLLATERAL
+157613,13481.745,CCG,SDK,A,12335.88,192,4,SFD,FOLDERG,LTTRS,2002-12-11 01:50:00,2003-04-24 22:59:00,COLLATERAL
+157624,13484.856,CCH,MNV,A,12335.72,193,3,WRE,FOLDERH,LTTRS,2002-12-11 02:50:00,2003-04-25 00:59:00,COLLATERAL
+157635,13487.967,CCI,OKW,A,12335.56,194,1,HGV,FOLDERI,LTTRS,2002-12-11 03:50:00,2003-04-25 02:59:00,NOT COLLATERAL
+157646,13491.078,CCJ,ASS,A,12335.4,195,2,KLS,FOLDERJ,LTTRS,2002-12-11 04:50:00,2003-04-25 04:59:00,NOT COLLATERAL
+157657,13494.189,DDD,CKA,A,12335.24,196,3,SDK,FOLDERK,LTTRS,2002-12-11 05:50:00,2003-04-25 06:59:00,NOT COLLATERAL
+157668,13497.3,DDA,SWQ,A,12335.08,197,4,MNV,FOLDERL,LTTRZ,2002-12-11 06:50:00,2003-04-25 08:59:00,NOT COLLATERAL
+157679,13500.411,DAA,KUH,A,12334.92,198,5,OKW,FOLDERM,LTTRA,2002-12-11 07:50:00,2003-04-25 10:59:00,NOT COLLATERAL
+157690,13503.522,DBB,XCV,A,12334.76,199,6,ASS,FOLDERN,LTTRB,2002-12-11 08:50:00,2003-04-25 12:59:00,NOT COLLATERAL
+157701,13506.633,DCC,ZAQ,A,12334.6,200,7,CKA,FOLDERO,LTTRB,2002-12-11 09:50:00,2003-04-25 14:59:00,NOT COLLATERAL
+157712,13509.744,DEE,MKO,A,12334.44,201,8,SWQ,FOLDERP,LTTRA,2002-12-11 10:50:00,2003-04-25 16:59:00,NOT COLLATERAL
+157723,13512.855,DFF,VFR,A,12334.28,202,9,KUH,FOLDERQ,LTTRA,2002-12-11 11:50:00,2003-04-25 18:59:00,NOT COLLATERAL
+157734,13515.966,DGG,YUJ,A,12334.12,203,10,XCV,FOLDERR,LTTRS,2002-12-11 12:49:00,2003-04-25 20:59:00,COLLATERAL
+157745,13519.077,DHH,MED,A,12333.96,204,11,ZAQ,FOLDERS,LTTRZ,2002-12-11 13:49:00,2003-04-25 22:59:00,COLLATERAL
+157756,13522.188,AAA,SWE,A,12333.8,205,12,MKO,FOLDERT,LTTRS,2002-12-11 14:49:00,2003-04-26 00:59:00,COLLATERAL
+157767,13525.299,BBB,CVF,A,12333.64,206,13,VFR,FOLDERU,LTTRS,2002-12-11 15:49:00,2003-04-26 02:59:00,NOT COLLATERAL
+157778,13528.41,CCC,DSFG,A,12333.48,207,14,YUJ,FOLDERV,LTTRS,2002-12-11 16:49:00,2003-04-26 04:59:00,NOT COLLATERAL
+157789,13531.521,DDD,ASDRE,A,12333.32,208,15,AAA,FOLDERW,LTTRS,2002-12-11 17:49:00,2003-04-26 06:59:00,NOT COLLATERAL
+157800,13534.632,AAB,HJKSS,A,12333.16,209,16,BBB,FOLDERX,LTTRS,2002-12-11 18:49:00,2003-04-26 08:59:00,NOT COLLATERAL
+157811,13537.743,AAC,KHAA,A,12333,210,17,CCC,FOLDERY,LTTRS,2002-12-11 19:49:00,2003-04-26 10:59:00,NOT COLLATERAL
+157822,13540.854,AAD,KSLD,A,12332.84,211,18,DDD,FOLDERZ,LTTRS,2002-12-11 20:49:00,2003-04-26 12:59:00,NOT COLLATERAL
+157833,13543.965,AAE,EKID,A,12332.68,212,19,AAB,FOLDERZ,LTTRS,2002-12-11 21:49:00,2003-04-26 14:59:00,NOT COLLATERAL
+157844,13547.076,AAF,VNCD,A,12332.52,213,20,AAC,FOLDERZ,LTTRS,2002-12-11 22:49:00,2003-04-26 16:59:00,NOT COLLATERAL
+157855,13550.187,BBA,DKD,A,12332.36,214,21,AAD,FOLDERZ,LTTRS,2002-12-11 23:49:00,2003-04-26 18:59:00,NOT COLLATERAL
+157866,13553.298,BBC,FKF,A,12332.2,215,22,AAE,FOLDERZ,LTTRS,2002-12-12 00:49:00,2003-04-26 20:59:00,COLLATERAL
+157877,13556.409,BBE,LES,A,12332.04,216,23,AAF,FOLDERZ,LTTRS,2002-12-12 01:49:00,2003-04-26 22:59:00,COLLATERAL
+157888,13559.52,BBF,KLD,A,12331.88,217,24,BBA,FOLDERZ,LTTRS,2002-12-12 02:49:00,2003-04-27 00:59:00,COLLATERAL
+157899,13562.631,BBG,SKL,A,12331.72,218,25,BBC,FOLDERZ,LTTRS,2002-12-12 03:49:00,2003-04-27 02:59:00,NOT COLLATERAL
+157910,13565.742,BBH,SIW,A,12331.56,219,26,BBE,FOLDERZ,LTTRZ,2002-12-12 04:49:00,2003-04-27 04:59:00,NOT COLLATERAL
+157921,13568.853,CCA,CKA,A,12331.4,220,27,BBF,FOLDERZ,LTTRA,2002-12-12 05:49:00,2003-04-27 06:59:00,NOT COLLATERAL
+157932,13571.964,CCB,LDE,A,12331.24,221,28,BBG,FOLDERZ,LTTRB,2002-12-12 06:49:00,2003-04-27 08:59:00,NOT COLLATERAL
+157943,13575.075,CCD,KFF,A,12331.08,222,29,BBH,FOLDERZ,LTTRB,2002-12-12 07:49:00,2003-04-27 10:59:00,NOT COLLATERAL
+157954,13578.186,CCE,EFH,A,12330.92,223,30,CCA,FOLDERZ,LTTRA,2002-12-12 08:49:00,2003-04-27 12:59:00,NOT COLLATERAL
+157965,13581.297,CCF,NGC,A,12330.76,224,31,CCB,FOLDERZ,LTTRA,2002-12-12 09:49:00,2003-04-27 14:59:00,NOT COLLATERAL
+157976,13584.408,CCG,DER,A,12330.6,225,32,CCD,FOLDERX,LTTRS,2002-12-12 10:49:00,2003-04-27 16:59:00,NOT COLLATERAL
+157987,13587.519,CCH,FVG,A,12330.44,226,33,CCE,FOLDERX,LTTRZ,2002-12-12 11:49:00,2003-04-27 18:59:00,NOT COLLATERAL
+157998,13590.63,CCI,KWE,A,12330.28,227,34,CCF,FOLDERX,LTTRS,2002-12-12 12:49:00,2003-04-27 20:59:00,COLLATERAL
+158009,13593.741,CCJ,WER,A,12330.12,228,35,CCG,FOLDERX,LTTRS,2002-12-12 13:49:00,2003-04-27 22:59:00,COLLATERAL
+158020,13596.852,DDD,GFH,A,12329.96,229,36,CCH,FOLDERX,LTTRS,2002-12-12 14:49:00,2003-04-28 00:59:00,COLLATERAL
+158031,13599.963,DDA,BGF,A,12329.8,230,37,CCI,FOLDERX,LTTRS,2002-12-12 15:49:00,2003-04-28 02:59:00,NOT COLLATERAL
+158042,13603.074,DAA,XCS,A,12329.64,231,38,CCJ,FOLDERX,LTTRS,2002-12-12 16:49:00,2003-04-28 04:59:00,NOT COLLATERAL
+158053,13606.185,DBB,JHK,A,12329.48,232,39,DDD,FOLDERX,LTTRS,2002-12-12 17:49:00,2003-04-28 06:59:00,NOT COLLATERAL
+158064,13609.296,DCC,SFD,A,12329.32,233,40,DDA,FOLDERX,LTTRS,2002-12-12 18:49:00,2003-04-28 08:59:00,NOT COLLATERAL
+158075,13612.407,DEE,WRE,A,12329.16,234,41,DAA,FOLDERX,LTTRS,2002-12-12 19:49:00,2003-04-28 10:59:00,NOT COLLATERAL
+158086,13615.518,DFF,HGV,A,12329,235,42,FKF,FOLDERX,LTTRS,2002-12-12 20:49:00,2003-04-28 12:59:00,NOT COLLATERAL
+158097,13618.629,DGG,KLS,A,12328.84,236,43,LES,FOLDERX,LTTRS,2002-12-12 21:49:00,2003-04-28 14:59:00,NOT COLLATERAL
+158108,13621.74,DHH,SDK,A,12328.68,237,44,KLD,FOLDERR,LTTRS,2002-12-12 22:49:00,2003-04-28 16:59:00,NOT COLLATERAL
+158119,13624.851,AAA,MNV,A,12328.52,238,45,SKL,FOLDERS,LTTRS,2002-12-12 23:49:00,2003-04-28 18:59:00,NOT COLLATERAL
+158130,13627.962,BBB,OKW,A,12328.36,239,46,SIW,FOLDERX,LTTRS,2002-12-13 00:49:00,2003-04-28 20:59:00,COLLATERAL
+158141,13631.073,CCC,ASS,A,12328.2,240,47,CKA,FOLDERR,LTTRS,2002-12-13 01:49:00,2003-04-28 22:59:00,COLLATERAL
+158152,13634.184,DDD,CKA,A,12328.04,241,48,LDE,FOLDERS,LTTRZ,2002-12-13 02:49:00,2003-04-29 00:59:00,COLLATERAL
+158163,13637.295,AAB,SWQ,A,12327.88,242,49,KFF,FOLDERX,LTTRA,2002-12-13 03:49:00,2003-04-29 02:59:00,NOT COLLATERAL
+158174,13640.406,AAC,KUH,A,12327.72,243,48,EFH,FOLDERR,LTTRB,2002-12-13 04:49:00,2003-04-29 04:59:00,NULL
+158185,13643.517,AAD,XCV,A,12327.56,244,47,NGC,FOLDERS,LTTRB,2002-12-13 05:49:00,2003-04-29 06:59:00,NULL
+158196,13646.628,AAE,ZAQ,A,12327.4,245,46,DER,FOLDERX,LTTRA,2002-12-13 06:49:00,2003-04-29 08:59:00,NULL
+158207,13649.739,AAF,MKO,A,12327.24,246,45,FVG,FOLDERR,LTTRA,2002-12-13 07:49:00,2003-04-29 10:59:00,NULL
+158218,13652.85,BBA,VFR,A,12327.08,247,44,KWE,FOLDERS,LTTRS,2002-12-13 08:49:00,2003-04-29 12:59:00,NULL
+158229,13655.961,BBC,YUJ,A,12326.92,248,43,WER,FOLDERX,LTTRZ,2002-12-13 09:49:00,2003-04-29 14:59:00,NULL
+158240,13659.072,BBE,MED,A,12326.76,249,42,GFH,FOLDERR,LTTRS,2002-12-13 10:49:00,2003-04-29 16:59:00,NOT COLLATERAL
+158251,13662.183,BBF,SWE,A,12326.6,250,41,BGF,FOLDERS,LTTRS,2002-12-13 11:49:00,2003-04-29 18:59:00,NOT COLLATERAL
+158262,13665.294,BBG,CVF,A,12326.44,251,40,XCS,FOLDERX,LTTRS,2002-12-13 12:49:00,2003-04-29 20:59:00,COLLATERAL
+158273,13668.405,BBH,DSFG,A,12326.28,252,39,JHK,FOLDERD,LTTRS,2002-12-13 13:49:00,2003-04-29 22:59:00,COLLATERAL
+158284,13671.516,CCA,ASDRE,A,12326.12,253,38,SFD,FOLDERE,LTTRS,2002-12-13 14:49:00,2003-04-30 00:59:00,COLLATERAL
+158295,13674.627,CCB,HJKSS,A,12325.96,254,37,WRE,FOLDERF,LTTRS,2002-12-13 15:49:00,2003-04-30 02:59:00,NOT COLLATERAL
+158306,13677.738,CCD,KHAA,A,12325.8,255,36,HGV,FOLDERG,LTTRS,2002-12-13 16:49:00,2003-04-30 04:59:00,NOT COLLATERAL
+158317,13680.849,CCE,KSLD,A,12325.64,256,35,KLS,FOLDERH,LTTRS,2002-12-13 17:49:00,2003-04-30 06:59:00,NULL
+158328,13683.96,CCF,EKID,A,12325.48,257,34,SDK,FOLDERI,LTTRS,2002-12-13 18:49:00,2003-04-30 08:59:00,NULL
+158339,13687.071,CCG,VNCD,A,12325.32,258,33,MNV,FOLDERJ,LTTRS,2002-12-13 19:49:00,2003-04-30 10:59:00,NULL
+158350,13690.182,CCH,DKD,A,12325.16,259,32,OKW,FOLDERK,LTTRS,2002-12-13 20:49:00,2003-04-30 12:59:00,NULL
+158361,13693.293,CCI,FKF,A,12325,260,31,ASS,FOLDERL,LTTRS,2002-12-13 21:49:00,2003-04-30 14:59:00,NULL
+158372,13696.404,CCJ,LES,A,12324.84,261,30,CKA,FOLDERM,LTTRS,2002-12-13 22:49:00,2003-04-30 16:59:00,NOT COLLATERAL
+158383,13699.515,DDD,KLD,A,12324.68,262,29,SWQ,FOLDERN,LTTRS,2002-12-13 23:49:00,2003-04-30 18:59:00,NOT COLLATERAL
+158394,13702.626,DDA,SKL,A,12324.52,263,28,KUH,FOLDERN,LTTRZ,2002-12-14 00:49:00,2003-04-30 20:59:00,COLLATERAL
+158405,13705.737,DAA,SIW,A,12324.36,264,27,XCV,FOLDERN,LTTRA,2002-12-14 01:49:00,2003-04-30 22:59:00,COLLATERAL
+158416,13708.848,DBB,CKA,A,12324.2,265,26,ZAQ,FOLDERN,LTTRB,2002-12-14 02:49:00,2003-05-01 00:59:00,COLLATERAL
+158427,13711.959,DCC,LDE,A,12324.04,266,25,MKO,FOLDERL,LTTRB,2002-12-14 03:49:00,2003-05-01 02:59:00,NOT COLLATERAL
+158438,13715.07,DEE,KFF,A,12323.88,267,24,VFR,FOLDERL,LTTRA,2002-12-14 04:49:00,2003-05-01 04:59:00,NOT COLLATERAL
+158449,13718.181,DFF,EFH,A,12323.72,268,23,YUJ,FOLDERL,LTTRA,2002-12-14 05:49:00,2003-05-01 06:59:00,NULL
+158460,13721.292,DGG,NGC,A,12323.56,269,22,AAA,FOLDERL,LTTRS,2002-12-14 06:49:00,2003-05-01 08:59:00,NULL
+158471,13724.403,DHH,DER,A,12323.4,270,21,BBB,FOLDERL,LTTRZ,2002-12-14 07:49:00,2003-05-01 10:59:00,NULL
+158482,13727.514,AAA,FVG,A,12323.24,271,20,CCC,FOLDERA,LTTRS,2002-12-14 08:49:00,2003-05-01 12:59:00,NULL
+158493,13730.625,BBB,KWE,A,12323.08,272,19,DDD,FOLDERB,LTTRS,2002-12-14 09:49:00,2003-05-01 14:59:00,NULL
+158504,13733.736,CCC,WER,A,12322.92,273,18,AAB,FOLDERC,LTTRS,2002-12-14 10:49:00,2003-05-01 16:59:00,NOT COLLATERAL
+158515,13736.847,DDD,GFH,A,12322.76,274,17,AAC,FOLDERD,LTTRS,2002-12-14 11:49:00,2003-05-01 18:59:00,NOT COLLATERAL
+158526,13739.958,AAB,BGF,A,12322.6,275,16,AAD,FOLDERE,LTTRS,2002-12-14 12:49:00,2003-05-01 20:59:00,COLLATERAL
+158537,13743.069,AAC,XCS,A,12322.44,276,15,AAE,FOLDERF,LTTRS,2002-12-14 13:49:00,2003-05-01 22:59:00,COLLATERAL
+158548,13746.18,AAD,JHK,A,12322.28,277,14,AAF,FOLDERG,LTTRS,2002-12-14 14:49:00,2003-05-02 00:59:00,COLLATERAL
+158559,13749.291,AAE,SFD,A,12322.12,278,13,BBA,FOLDERH,LTTRS,2002-12-14 15:49:00,2003-05-02 02:59:00,NOT COLLATERAL
+158570,13752.402,AAF,WRE,A,12321.96,279,12,BBC,FOLDERI,LTTRS,2002-12-14 16:49:00,2003-05-02 04:59:00,NOT COLLATERAL
+158581,13755.513,BBA,HGV,A,12321.8,280,11,BBE,FOLDERJ,LTTRS,2002-12-14 17:49:00,2003-05-02 06:59:00,NOT COLLATERAL
+158592,13758.624,BBC,KLS,A,12321.64,281,10,BBF,FOLDERK,LTTRS,2002-12-14 18:49:00,2003-05-02 08:59:00,NOT COLLATERAL
+158603,13761.735,BBE,SDK,A,12321.48,282,9,BBG,FOLDERL,LTTRS,2002-12-14 19:49:00,2003-05-02 10:59:00,NOT COLLATERAL
+158614,13764.846,BBF,MNV,A,12321.32,283,8,BBH,FOLDERM,LTTRS,2002-12-14 20:49:00,2003-05-02 12:59:00,NOT COLLATERAL
+158625,13767.957,BBG,OKW,A,12321.16,284,7,CCA,FOLDERN,LTTRS,2002-12-14 21:49:00,2003-05-02 14:59:00,NOT COLLATERAL
+158636,13771.068,BBH,ASS,A,12321,285,6,CCB,FOLDERO,LTTRZ,2002-12-14 22:49:00,2003-05-02 16:59:00,NOT COLLATERAL
+158647,13774.179,CCA,CKA,A,12320.84,286,5,CCD,FOLDERP,LTTRA,2002-12-14 23:49:00,2003-05-02 18:59:00,NOT COLLATERAL
+158658,13777.29,CCB,SWQ,A,12320.68,287,4,CCE,FOLDERQ,LTTRB,2002-12-15 00:49:00,2003-05-02 20:59:00,COLLATERAL
+158669,13780.401,CCD,KUH,A,12320.52,288,3,CCF,FOLDERR,LTTRB,2002-12-15 01:49:00,2003-05-02 22:59:00,COLLATERAL
+158680,13783.512,CCE,XCV,A,12320.36,289,1,CCG,FOLDERS,LTTRA,2002-12-15 02:49:00,2003-05-03 00:59:00,COLLATERAL
+158691,13786.623,CCF,ZAQ,A,12320.2,290,2,CCH,FOLDERT,LTTRA,2002-12-15 03:49:00,2003-05-03 02:59:00,NOT COLLATERAL
+158702,13789.734,CCG,MKO,A,12320.04,291,3,CCI,FOLDERU,LTTRS,2002-12-15 04:49:00,2003-05-03 04:59:00,NOT COLLATERAL
+158713,13792.845,CCH,VFR,A,12319.88,292,4,CCJ,FOLDERV,LTTRZ,2002-12-15 05:49:00,2003-05-03 06:59:00,NOT COLLATERAL
+158724,13795.956,CCI,YUJ,A,12319.72,293,5,DDD,FOLDERW,LTTRS,2002-12-15 06:49:00,2003-05-03 08:59:00,NOT COLLATERAL
+158735,13799.067,CCJ,MED,A,12319.56,294,6,DDA,FOLDERX,LTTRS,2002-12-15 07:49:00,2003-05-03 10:59:00,NOT COLLATERAL
+158746,13802.178,DDD,SWE,A,12319.4,295,7,DAA,FOLDERY,LTTRS,2002-12-15 08:49:00,2003-05-03 12:59:00,NOT COLLATERAL
+158757,13805.289,DDA,CVF,A,12319.24,296,8,FKF,FOLDERZ,LTTRS,2002-12-15 09:49:00,2003-05-03 14:59:00,NOT COLLATERAL
+158768,13808.4,DAA,DSFG,A,12319.08,297,9,LES,FOLDERA,LTTRS,2002-12-15 10:49:00,2003-05-03 16:59:00,NOT COLLATERAL
+158779,13811.511,DBB,ASDRE,A,12318.92,298,10,KLD,FOLDERB,LTTRS,2002-12-15 11:49:00,2003-05-03 18:59:00,NOT COLLATERAL
+158790,13814.622,DCC,HJKSS,A,12318.76,299,11,SKL,FOLDERC,LTTRS,2002-12-15 12:49:00,2003-05-03 20:59:00,COLLATERAL
+158801,13817.733,DEE,KHAA,A,12318.6,300,12,SIW,FOLDERD,LTTRS,2002-12-15 13:49:00,2003-05-03 22:59:00,COLLATERAL
+158812,13820.844,DFF,KSLD,A,12318.44,301,13,CKA,FOLDERE,LTTRS,2002-12-15 14:49:00,2003-05-04 00:59:00,COLLATERAL
+158823,13823.955,DGG,EKID,A,12318.28,302,14,LDE,FOLDERF,LTTRS,2002-12-15 15:49:00,2003-05-04 02:59:00,NOT COLLATERAL
+158834,13827.066,DHH,VNCD,A,12318.12,303,15,KFF,FOLDERG,LTTRS,2002-12-15 16:49:00,2003-05-04 04:59:00,NOT COLLATERAL
+158845,13830.177,AAA,DKD,A,12317.96,304,16,EFH,FOLDERH,LTTRS,2002-12-15 17:49:00,2003-05-04 06:59:00,NOT COLLATERAL
+158856,13833.288,BBB,FKF,A,12317.8,305,17,NGC,FOLDERI,LTTRS,2002-12-15 18:49:00,2003-05-04 08:59:00,NOT COLLATERAL
+158867,13836.399,CCC,LES,A,12317.64,306,18,DER,FOLDERJ,LTTRS,2002-12-15 19:49:00,2003-05-04 10:59:00,NOT COLLATERAL
+158878,13839.51,DDD,KLD,A,12317.48,307,19,FVG,FOLDERK,LTTRZ,2002-12-15 20:49:00,2003-05-04 12:59:00,NOT COLLATERAL
+158889,13842.621,AAB,SKL,A,12317.32,308,20,KWE,FOLDERL,LTTRA,2002-12-15 21:49:00,2003-05-04 14:59:00,NOT COLLATERAL
+158900,13845.732,AAC,SIW,A,12317.16,309,21,WER,FOLDERM,LTTRB,2002-12-15 22:49:00,2003-05-04 16:59:00,NOT COLLATERAL
+158911,13848.843,AAD,CKA,A,12317,310,22,GFH,FOLDERN,LTTRB,2002-12-15 23:49:00,2003-05-04 18:59:00,NOT COLLATERAL
+158922,13851.954,AAE,LDE,A,12316.84,311,23,BGF,FOLDERO,LTTRA,2002-12-16 00:49:00,2003-05-04 20:59:00,COLLATERAL
+158933,13855.065,AAF,KFF,A,12316.68,312,24,XCS,FOLDERP,LTTRA,2002-12-16 01:49:00,2003-05-04 22:59:00,COLLATERAL
+158944,13858.176,BBA,EFH,A,12316.52,313,25,JHK,FOLDERQ,LTTRS,2002-12-16 02:49:00,2003-05-05 00:59:00,COLLATERAL
+158955,13861.287,BBC,NGC,A,12316.36,314,26,SFD,FOLDERR,LTTRZ,2002-12-16 03:49:00,2003-05-05 02:59:00,NOT COLLATERAL
+158966,13864.398,BBE,DER,A,12316.2,315,27,WRE,FOLDERS,LTTRS,2002-12-16 04:49:00,2003-05-05 04:59:00,NOT COLLATERAL
+158977,13867.509,BBF,FVG,A,12316.04,316,28,HGV,FOLDERT,LTTRS,2002-12-16 05:49:00,2003-05-05 06:59:00,NOT COLLATERAL
+158988,13870.62,BBG,KWE,A,12315.88,317,29,KLS,FOLDERU,LTTRS,2002-12-16 06:49:00,2003-05-05 08:59:00,NOT COLLATERAL
+158999,13873.731,BBH,WER,A,12315.72,318,30,SDK,FOLDERV,LTTRS,2002-12-16 07:49:00,2003-05-05 10:59:00,NOT COLLATERAL
+159010,13876.842,CCA,GFH,A,12315.56,319,31,MNV,FOLDERW,LTTRS,2002-12-16 08:49:00,2003-05-05 12:59:00,NOT COLLATERAL
+159021,13879.953,CCB,BGF,A,12315.4,320,32,OKW,FOLDERX,LTTRS,2002-12-16 09:49:00,2003-05-05 14:59:00,NOT COLLATERAL
+159032,13883.064,CCD,XCS,A,12315.24,321,33,ASS,FOLDERY,LTTRS,2002-12-16 10:49:00,2003-05-05 16:59:00,NOT COLLATERAL
+159043,13886.175,CCE,JHK,A,12315.08,322,34,CKA,FOLDERZ,LTTRS,2002-12-16 11:49:00,2003-05-05 18:59:00,NOT COLLATERAL
+159054,13889.286,CCF,SFD,A,12314.92,323,35,SWQ,FOLDERZ,LTTRS,2002-12-16 12:49:00,2003-05-05 20:59:00,COLLATERAL
+159065,13892.397,CCG,WRE,A,12314.76,324,36,KUH,FOLDERZ,LTTRS,2002-12-16 13:49:00,2003-05-05 22:59:00,COLLATERAL
+159076,13895.508,CCH,HGV,A,12314.6,325,37,XCV,FOLDERZ,LTTRS,2002-12-16 14:49:00,2003-05-06 00:59:00,COLLATERAL
+159087,13898.619,CCI,KLS,A,12314.44,326,38,ZAQ,FOLDERZ,LTTRS,2002-12-16 15:49:00,2003-05-06 02:59:00,NOT COLLATERAL
+159098,13901.73,CCJ,SDK,A,12314.28,327,39,MKO,FOLDERZ,LTTRS,2002-12-16 16:49:00,2003-05-06 04:59:00,NOT COLLATERAL
+159109,13904.841,DDD,MNV,A,12314.12,328,40,VFR,FOLDERZ,LTTRS,2002-12-16 17:49:00,2003-05-06 06:59:00,NOT COLLATERAL
+159120,13907.952,DDA,OKW,A,12313.96,329,41,YUJ,FOLDERZ,LTTRZ,2002-12-16 18:49:00,2003-05-06 08:59:00,NOT COLLATERAL
+159131,13911.063,DAA,ASS,A,12313.8,330,42,AAA,FOLDERZ,LTTRA,2002-12-16 19:49:00,2003-05-06 10:59:00,NOT COLLATERAL
+159142,13914.174,DBB,CKA,A,12313.64,331,43,BBB,FOLDERZ,LTTRB,2002-12-16 20:49:00,2003-05-06 12:59:00,NOT COLLATERAL
+159153,13917.285,DCC,SWQ,A,12313.48,332,44,CCC,FOLDERZ,LTTRB,2002-12-16 21:49:00,2003-05-06 14:59:00,NOT COLLATERAL
+159164,13920.396,DEE,KUH,A,12313.32,333,45,DDD,FOLDERZ,LTTRA,2002-12-16 22:49:00,2003-05-06 16:59:00,NOT COLLATERAL
+159175,13923.507,DFF,XCV,A,12313.16,334,46,AAB,FOLDERZ,LTTRA,2002-12-16 23:49:00,2003-05-06 18:59:00,NOT COLLATERAL
+159186,13926.618,DGG,ZAQ,A,12313,335,47,AAC,FOLDERZ,LTTRS,2002-12-17 00:49:00,2003-05-06 20:59:00,COLLATERAL
+159197,13929.729,DHH,MKO,A,12312.84,336,48,AAD,FOLDERX,LTTRZ,2002-12-17 01:49:00,2003-05-06 22:59:00,COLLATERAL
+159208,13932.84,AAA,VFR,A,12312.68,337,49,AAE,FOLDERX,LTTRS,2002-12-17 02:49:00,2003-05-07 00:59:00,COLLATERAL
+159219,13935.951,BBB,YUJ,A,12312.52,338,48,AAF,FOLDERX,LTTRS,2002-12-17 03:49:00,2003-05-07 02:59:00,NOT COLLATERAL
+159230,13939.062,CCC,MED,A,12312.36,339,47,BBA,FOLDERX,LTTRS,2002-12-17 04:49:00,2003-05-07 04:59:00,NOT COLLATERAL
+159241,13942.173,DDD,SWE,A,12312.2,340,46,BBC,FOLDERX,LTTRS,2002-12-17 05:49:00,2003-05-07 06:59:00,NOT COLLATERAL
+159252,13945.284,AAB,CVF,A,12312.04,341,45,BBE,FOLDERX,LTTRS,2002-12-17 06:49:00,2003-05-07 08:59:00,NOT COLLATERAL
+159263,13948.395,AAC,DSFG,A,12311.88,342,44,BBF,FOLDERX,LTTRS,2002-12-17 07:49:00,2003-05-07 10:59:00,NOT COLLATERAL
+159274,13951.506,AAD,ASDRE,A,12311.72,343,43,BBG,FOLDERX,LTTRS,2002-12-17 08:49:00,2003-05-07 12:59:00,NOT COLLATERAL
+159285,13954.617,AAE,HJKSS,A,12311.56,344,42,BBH,FOLDERX,LTTRS,2002-12-17 09:49:00,2003-05-07 14:59:00,NOT COLLATERAL
+159296,13957.728,AAF,KHAA,A,12311.4,345,41,CCA,FOLDERX,LTTRS,2002-12-17 10:49:00,2003-05-07 16:59:00,NOT COLLATERAL
+159307,13960.839,BBA,KSLD,A,12311.24,346,40,CCB,FOLDERX,LTTRS,2002-12-17 11:49:00,2003-05-07 18:59:00,NOT COLLATERAL
+159318,13963.95,BBC,EKID,A,12311.08,347,39,CCD,FOLDERX,LTTRS,2002-12-17 12:49:00,2003-05-07 20:59:00,COLLATERAL
+159329,13967.061,BBE,VNCD,A,12310.92,348,38,CCE,FOLDERR,LTTRS,2002-12-17 13:49:00,2003-05-07 22:59:00,COLLATERAL
+159340,13970.172,BBF,DKD,A,12310.76,349,37,CCF,FOLDERS,LTTRS,2002-12-17 14:49:00,2003-05-08 00:59:00,COLLATERAL
+159351,13973.283,BBG,FKF,A,12310.6,350,36,CCG,FOLDERX,LTTRS,2002-12-17 15:49:00,2003-05-08 02:59:00,NOT COLLATERAL
+159362,13976.394,BBH,LES,A,12310.44,351,35,CCH,FOLDERR,LTTRZ,2002-12-17 16:49:00,2003-05-08 04:59:00,NULL
+159373,13979.505,CCA,KLD,A,12310.28,352,34,CCI,FOLDERS,LTTRA,2002-12-17 17:49:00,2003-05-08 06:59:00,NULL
+159384,13982.616,CCB,SKL,A,12310.12,353,33,CCJ,FOLDERX,LTTRB,2002-12-17 18:49:00,2003-05-08 08:59:00,NULL
+159395,13985.727,CCD,SIW,A,12309.96,354,32,DDD,FOLDERR,LTTRB,2002-12-17 19:49:00,2003-05-08 10:59:00,NULL
+159406,13988.838,CCE,CKA,A,12309.8,355,31,DDA,FOLDERS,LTTRA,2002-12-17 20:49:00,2003-05-08 12:59:00,NULL
+159417,13991.949,CCF,LDE,A,12309.64,356,30,DAA,FOLDERX,LTTRA,2002-12-17 21:49:00,2003-05-08 14:59:00,NULL
+159428,13995.06,CCG,KFF,A,12309.48,357,29,FKF,FOLDERR,LTTRS,2002-12-17 22:49:00,2003-05-08 16:59:00,NOT COLLATERAL
+159439,13998.171,CCH,EFH,A,12309.32,358,28,LES,FOLDERS,LTTRZ,2002-12-17 23:49:00,2003-05-08 18:59:00,NOT COLLATERAL
+159450,14001.282,CCI,NGC,A,12309.16,359,27,KLD,FOLDERX,LTTRS,2002-12-18 00:49:00,2003-05-08 20:59:00,COLLATERAL
+159461,14004.393,CCJ,DER,A,12309,360,26,SKL,FOLDERR,LTTRS,2002-12-18 01:49:00,2003-05-08 22:59:00,COLLATERAL
+159472,14007.504,DDD,FVG,A,12308.84,361,25,SIW,FOLDERS,LTTRS,2002-12-18 02:49:00,2003-05-09 00:59:00,COLLATERAL
+159483,14010.615,DDA,KWE,A,12308.68,362,24,CKA,FOLDERX,LTTRS,2002-12-18 03:49:00,2003-05-09 02:59:00,NOT COLLATERAL
+159494,14013.726,DAA,WER,A,12308.52,363,23,LDE,FOLDERD,LTTRS,2002-12-18 04:49:00,2003-05-09 04:59:00,NOT COLLATERAL
+159505,14016.837,DBB,GFH,A,12308.36,364,22,KFF,FOLDERE,LTTRS,2002-12-18 05:49:00,2003-05-09 06:59:00,NULL
+159516,14019.948,DCC,BGF,A,12308.2,365,21,EFH,FOLDERF,LTTRS,2002-12-18 06:49:00,2003-05-09 08:59:00,NULL
+159527,14023.059,DEE,XCS,A,12308.04,366,20,NGC,FOLDERG,LTTRS,2002-12-18 07:49:00,2003-05-09 10:59:00,NULL
+159538,14026.17,DFF,JHK,A,12307.88,367,19,DER,FOLDERH,LTTRS,2002-12-18 08:49:00,2003-05-09 12:59:00,NULL
+159549,14029.281,DGG,SFD,A,12307.72,368,18,FVG,FOLDERI,LTTRS,2002-12-18 09:49:00,2003-05-09 14:59:00,NULL
+159560,14032.392,DHH,WRE,A,12307.56,369,17,KWE,FOLDERJ,LTTRS,2002-12-18 10:49:00,2003-05-09 16:59:00,NULL
+159571,14035.503,AAA,HGV,A,12307.4,370,16,WER,FOLDERK,LTTRS,2002-12-18 11:49:00,2003-05-09 18:59:00,NOT COLLATERAL
+159582,14038.614,BBB,KLS,A,12307.24,371,15,GFH,FOLDERL,LTTRS,2002-12-18 12:49:00,2003-05-09 20:59:00,COLLATERAL
+159593,14041.725,CCC,SDK,A,12307.08,372,14,BGF,FOLDERM,LTTRS,2002-12-18 13:49:00,2003-05-09 22:59:00,COLLATERAL
+159604,14044.836,DDD,MNV,A,12306.92,373,13,XCS,FOLDERN,LTTRZ,2002-12-18 14:49:00,2003-05-10 00:59:00,COLLATERAL
+159615,14047.947,AAB,OKW,A,12306.76,374,12,JHK,FOLDERN,LTTRA,2002-12-18 15:49:00,2003-05-10 02:59:00,NOT COLLATERAL
+159626,14051.058,AAC,ASS,A,12306.6,375,11,SFD,FOLDERN,LTTRB,2002-12-18 16:49:00,2003-05-10 04:59:00,NOT COLLATERAL
+159637,14054.169,AAD,CKA,A,12306.44,376,10,WRE,FOLDERN,LTTRB,2002-12-18 17:49:00,2003-05-10 06:59:00,NULL
+159648,14057.28,AAE,SWQ,A,12306.28,377,9,HGV,FOLDERL,LTTRA,2002-12-18 18:49:00,2003-05-10 08:59:00,NULL
+159659,14060.391,AAF,KUH,A,12306.12,378,8,KLS,FOLDERL,LTTRA,2002-12-18 19:49:00,2003-05-10 10:59:00,NULL
+159670,14063.502,BBA,XCV,A,12305.96,379,7,SDK,FOLDERL,LTTRS,2002-12-18 20:49:00,2003-05-10 12:59:00,NULL
+159681,14066.613,BBC,ZAQ,A,12305.8,380,6,MNV,FOLDERL,LTTRZ,2002-12-18 21:49:00,2003-05-10 14:59:00,NULL
+159692,14069.724,BBE,MKO,A,12305.64,381,5,OKW,FOLDERL,LTTRS,2002-12-18 22:49:00,2003-05-10 16:59:00,NULL
+159703,14072.835,BBF,VFR,A,12305.48,382,4,ASS,FOLDERA,LTTRS,2002-12-18 23:49:00,2003-05-10 18:59:00,NOT COLLATERAL
+159714,14075.946,BBG,YUJ,A,12305.32,383,3,CKA,FOLDERB,LTTRS,2002-12-19 00:49:00,2003-05-10 20:59:00,COLLATERAL
+159725,14079.057,BBH,MED,A,12305.16,384,1,SWQ,FOLDERC,LTTRS,2002-12-19 01:49:00,2003-05-10 22:59:00,COLLATERAL
+159736,14082.168,CCA,SWE,A,12305,385,2,KUH,FOLDERD,LTTRS,2002-12-19 02:49:00,2003-05-11 00:59:00,COLLATERAL
+159747,14085.279,CCB,CVF,A,12304.84,386,3,XCV,FOLDERE,LTTRS,2002-12-19 03:49:00,2003-05-11 02:59:00,NOT COLLATERAL
+159758,14088.39,CCD,DSFG,A,12304.68,387,4,ZAQ,FOLDERF,LTTRS,2002-12-19 04:49:00,2003-05-11 04:59:00,NOT COLLATERAL
+159769,14091.501,CCE,ASDRE,A,12304.52,388,5,MKO,FOLDERG,LTTRS,2002-12-19 05:49:00,2003-05-11 06:59:00,NOT COLLATERAL
+159780,14094.612,CCF,HJKSS,A,12304.36,389,6,VFR,FOLDERH,LTTRS,2002-12-19 06:49:00,2003-05-11 08:59:00,NOT COLLATERAL
+159791,14097.723,CCG,KHAA,A,12304.2,390,7,YUJ,FOLDERI,LTTRS,2002-12-19 07:49:00,2003-05-11 10:59:00,NOT COLLATERAL
+159802,14100.834,CCH,KSLD,A,12304.04,391,8,AAA,FOLDERJ,LTTRS,2002-12-19 08:49:00,2003-05-11 12:59:00,NOT COLLATERAL
+159813,14103.945,CCI,EKID,A,12303.88,392,9,BBB,FOLDERK,LTTRS,2002-12-19 09:49:00,2003-05-11 14:59:00,NOT COLLATERAL
+159824,14107.056,CCJ,VNCD,A,12303.72,390,10,CCC,FOLDERL,LTTRS,2002-12-19 10:49:00,2003-05-11 16:59:00,NOT COLLATERAL
+159835,14110.167,DDD,DKD,A,12303.56,388,11,DDD,FOLDERM,LTTRS,2002-12-19 11:49:00,2003-05-11 18:59:00,NOT COLLATERAL
+159846,14113.278,DDA,FKF,A,12303.4,386,12,AAB,FOLDERN,LTTRZ,2002-12-19 12:49:00,2003-05-11 20:59:00,COLLATERAL
+159857,14116.389,DAA,LES,A,12303.24,384,13,AAC,FOLDERO,LTTRA,2002-12-19 13:49:00,2003-05-11 22:59:00,COLLATERAL
+159868,14119.5,DBB,KLD,A,12303.08,382,14,AAD,FOLDERP,LTTRB,2002-12-19 14:49:00,2003-05-12 00:59:00,COLLATERAL
+159879,14122.611,DCC,SKL,A,12302.92,380,15,AAE,FOLDERQ,LTTRB,2002-12-19 15:49:00,2003-05-12 02:59:00,NOT COLLATERAL
+159890,14125.722,DEE,SIW,A,12302.76,378,16,AAF,FOLDERR,LTTRA,2002-12-19 16:49:00,2003-05-12 04:59:00,NOT COLLATERAL
+159901,14128.833,DFF,CKA,A,12302.6,376,17,BBA,FOLDERS,LTTRA,2002-12-19 17:49:00,2003-05-12 06:59:00,NOT COLLATERAL
+159912,14131.944,DGG,LDE,A,12302.44,374,18,BBC,FOLDERT,LTTRS,2002-12-19 18:49:00,2003-05-12 08:59:00,NOT COLLATERAL
+159923,14135.055,DHH,KFF,A,12302.28,372,19,BBE,FOLDERU,LTTRZ,2002-12-19 19:49:00,2003-05-12 10:59:00,NOT COLLATERAL
+159934,14138.166,AAA,EFH,A,12302.12,370,20,BBF,FOLDERV,LTTRS,2002-12-19 20:49:00,2003-05-12 12:59:00,NOT COLLATERAL
+159945,14141.277,BBB,NGC,A,12301.96,368,21,BBG,FOLDERW,LTTRS,2002-12-19 21:49:00,2003-05-12 14:59:00,NOT COLLATERAL
+159956,14144.388,CCC,DER,A,12301.8,366,22,BBH,FOLDERX,LTTRS,2002-12-19 22:49:00,2003-05-12 16:59:00,NOT COLLATERAL
+159967,14147.499,DDD,FVG,A,12301.64,364,23,CCA,FOLDERY,LTTRS,2002-12-19 23:48:00,2003-05-12 18:59:00,NOT COLLATERAL
+159978,14150.61,AAB,KWE,A,12301.48,362,24,CCB,FOLDERZ,LTTRS,2002-12-20 00:48:00,2003-05-12 20:59:00,COLLATERAL
+159989,14153.721,AAC,WER,A,12301.32,360,25,CCD,FOLDERA,LTTRS,2002-12-20 01:48:00,2003-05-12 22:59:00,COLLATERAL
+160000,14156.832,AAD,GFH,A,12301.16,358,26,CCE,FOLDERB,LTTRS,2002-12-20 02:48:00,2003-05-13 00:59:00,COLLATERAL
+160011,14159.943,AAE,BGF,A,12301,356,27,CCF,FOLDERC,LTTRS,2002-12-20 03:48:00,2003-05-13 02:59:00,NOT COLLATERAL
+160022,14163.054,AAF,XCS,A,12300.84,354,28,CCG,FOLDERD,LTTRS,2002-12-20 04:48:00,2003-05-13 04:59:00,NOT COLLATERAL
+160033,14166.165,BBA,JHK,A,12300.68,352,29,CCH,FOLDERE,LTTRS,2002-12-20 05:48:00,2003-05-13 06:59:00,NOT COLLATERAL
+160044,14169.276,BBC,SFD,A,12300.52,350,30,CCI,FOLDERF,LTTRS,2002-12-20 06:48:00,2003-05-13 08:59:00,NOT COLLATERAL
+160055,14172.387,BBE,WRE,A,12300.36,348,31,CCJ,FOLDERG,LTTRS,2002-12-20 07:48:00,2003-05-13 10:59:00,NOT COLLATERAL
+160066,14175.498,BBF,HGV,A,12300.2,346,32,DDD,FOLDERH,LTTRS,2002-12-20 08:48:00,2003-05-13 12:59:00,NOT COLLATERAL
+160077,14178.609,BBG,KLS,A,12300.04,344,33,DDA,FOLDERI,LTTRS,2002-12-20 09:48:00,2003-05-13 14:59:00,NOT COLLATERAL
+160088,14181.72,BBH,SDK,A,12299.88,342,34,DAA,FOLDERJ,LTTRZ,2002-12-20 10:48:00,2003-05-13 16:59:00,NOT COLLATERAL
+160099,14184.831,CCA,MNV,A,12299.72,340,35,FKF,FOLDERK,LTTRA,2002-12-20 11:48:00,2003-05-13 18:59:00,NOT COLLATERAL
+160110,14187.942,CCB,OKW,A,12299.56,338,36,LES,FOLDERL,LTTRB,2002-12-20 12:48:00,2003-05-13 20:59:00,COLLATERAL
+160121,14191.053,CCD,ASS,A,12299.4,336,37,KLD,FOLDERM,LTTRB,2002-12-20 13:48:00,2003-05-13 22:59:00,COLLATERAL
+160132,14194.164,CCE,CKA,A,12299.24,334,38,SKL,FOLDERN,LTTRA,2002-12-20 14:48:00,2003-05-14 00:59:00,COLLATERAL
+160143,14197.275,CCF,SWQ,A,12299.08,332,39,SIW,FOLDERO,LTTRA,2002-12-20 15:48:00,2003-05-14 02:59:00,NOT COLLATERAL
+160154,14200.386,CCG,KUH,A,12298.92,330,40,CKA,FOLDERP,LTTRS,2002-12-20 16:48:00,2003-05-14 04:59:00,NOT COLLATERAL
+160165,14203.497,CCH,XCV,A,12298.76,328,41,LDE,FOLDERQ,LTTRZ,2002-12-20 17:48:00,2003-05-14 06:59:00,NOT COLLATERAL
+160176,14206.608,CCI,ZAQ,A,12298.6,326,42,KFF,FOLDERR,LTTRS,2002-12-20 18:48:00,2003-05-14 08:59:00,NOT COLLATERAL
+160187,14209.719,CCJ,MKO,A,12298.44,324,43,EFH,FOLDERS,LTTRS,2002-12-20 19:48:00,2003-05-14 10:59:00,NOT COLLATERAL
+160198,14212.83,DDD,VFR,A,12298.28,322,44,NGC,FOLDERT,LTTRS,2002-12-20 20:48:00,2003-05-14 12:59:00,NOT COLLATERAL
+160209,14215.941,DDA,YUJ,A,12298.12,320,45,DER,FOLDERU,LTTRS,2002-12-20 21:48:00,2003-05-14 14:59:00,NOT COLLATERAL
+160220,14219.052,DAA,MED,A,12297.96,318,46,FVG,FOLDERV,LTTRS,2002-12-20 22:48:00,2003-05-14 16:59:00,NOT COLLATERAL
+160231,14222.163,DBB,SWE,A,12297.8,316,47,KWE,FOLDERW,LTTRS,2002-12-20 23:48:00,2003-05-14 18:59:00,NOT COLLATERAL
+160242,14225.274,DCC,CVF,A,12297.64,314,48,WER,FOLDERX,LTTRS,2002-12-21 00:48:00,2003-05-14 20:59:00,COLLATERAL
+160253,14228.385,DEE,DSFG,A,12297.48,312,49,GFH,FOLDERY,LTTRS,2002-12-21 01:48:00,2003-05-14 22:59:00,COLLATERAL
+160264,14231.496,DFF,ASDRE,A,12297.32,310,48,BGF,FOLDERZ,LTTRS,2002-12-21 02:48:00,2003-05-15 00:59:00,COLLATERAL
+160275,14234.607,DGG,HJKSS,A,12297.16,308,47,XCS,FOLDERZ,LTTRS,2002-12-21 03:48:00,2003-05-15 02:59:00,NOT COLLATERAL
+160286,14237.718,DHH,KHAA,A,12297,306,46,JHK,FOLDERZ,LTTRS,2002-12-21 04:48:00,2003-05-15 04:59:00,NOT COLLATERAL
+160297,14240.829,AAA,KSLD,A,12296.84,304,45,SFD,FOLDERZ,LTTRS,2002-12-21 05:48:00,2003-05-15 06:59:00,NOT COLLATERAL
+160308,14243.94,BBB,EKID,A,12296.68,302,44,WRE,FOLDERZ,LTTRS,2002-12-21 06:48:00,2003-05-15 08:59:00,NOT COLLATERAL
+160319,14247.051,CCC,VNCD,A,12296.52,300,43,HGV,FOLDERZ,LTTRS,2002-12-21 07:48:00,2003-05-15 10:59:00,NOT COLLATERAL
+160330,14250.162,DDD,DKD,A,12296.36,298,42,KLS,FOLDERZ,LTTRZ,2002-12-21 08:48:00,2003-05-15 12:59:00,NOT COLLATERAL
+160341,14253.273,AAB,FKF,A,12296.2,296,41,SDK,FOLDERZ,LTTRA,2002-12-21 09:48:00,2003-05-15 14:59:00,NOT COLLATERAL
+160352,14256.384,AAC,LES,A,12296.04,294,40,MNV,FOLDERZ,LTTRB,2002-12-21 10:48:00,2003-05-15 16:59:00,NOT COLLATERAL
+160363,14259.495,AAD,KLD,A,12295.88,292,39,OKW,FOLDERZ,LTTRB,2002-12-21 11:48:00,2003-05-15 18:59:00,NOT COLLATERAL
+160374,14262.606,AAE,SKL,A,12295.72,290,38,ASS,FOLDERZ,LTTRA,2002-12-21 12:48:00,2003-05-15 20:59:00,COLLATERAL
+160385,14265.717,AAF,SIW,A,12295.56,288,37,CKA,FOLDERZ,LTTRA,2002-12-21 13:48:00,2003-05-15 22:59:00,COLLATERAL
+160396,14268.828,BBA,CKA,A,12295.4,286,36,SWQ,FOLDERZ,LTTRS,2002-12-21 14:48:00,2003-05-16 00:59:00,COLLATERAL
+160407,14271.939,BBC,LDE,A,12295.24,284,35,KUH,FOLDERZ,LTTRZ,2002-12-21 15:48:00,2003-05-16 02:59:00,NOT COLLATERAL
+160418,14275.05,BBE,KFF,A,12295.08,282,34,XCV,FOLDERX,LTTRS,2002-12-21 16:48:00,2003-05-16 04:59:00,NOT COLLATERAL
+160429,14278.161,BBF,EFH,A,12294.92,280,33,ZAQ,FOLDERX,LTTRS,2002-12-21 17:48:00,2003-05-16 06:59:00,NOT COLLATERAL
+160440,14281.272,BBG,NGC,A,12294.76,278,32,MKO,FOLDERX,LTTRS,2002-12-21 18:48:00,2003-05-16 08:59:00,NOT COLLATERAL
+160451,14284.383,BBH,DER,A,12294.6,276,31,VFR,FOLDERX,LTTRS,2002-12-21 19:48:00,2003-05-16 10:59:00,NOT COLLATERAL
+160462,14287.494,CCA,FVG,A,12294.44,274,30,YUJ,FOLDERX,LTTRS,2002-12-21 20:48:00,2003-05-16 12:59:00,NOT COLLATERAL
+160473,14290.605,CCB,KWE,A,12294.28,272,29,AAA,FOLDERX,LTTRS,2002-12-21 21:48:00,2003-05-16 14:59:00,NOT COLLATERAL
+160484,14293.716,CCD,WER,A,12294.12,270,28,BBB,FOLDERX,LTTRS,2002-12-21 22:48:00,2003-05-16 16:59:00,NOT COLLATERAL
+160495,14296.827,CCE,GFH,A,12293.96,268,27,CCC,FOLDERX,LTTRS,2002-12-21 23:48:00,2003-05-16 18:59:00,NOT COLLATERAL
+160506,14299.938,CCF,BGF,A,12293.8,266,26,DDD,FOLDERX,LTTRS,2002-12-22 00:48:00,2003-05-16 20:59:00,COLLATERAL
+160517,14303.049,CCG,XCS,A,12293.64,264,25,AAB,FOLDERX,LTTRS,2002-12-22 01:48:00,2003-05-16 22:59:00,COLLATERAL
+160528,14306.16,CCH,JHK,A,12293.48,262,24,AAC,FOLDERX,LTTRS,2002-12-22 02:48:00,2003-05-17 00:59:00,COLLATERAL
+160539,14309.271,CCI,SFD,A,12293.32,260,23,AAD,FOLDERX,LTTRS,2002-12-22 03:48:00,2003-05-17 02:59:00,NOT COLLATERAL
+160550,14312.382,CCJ,WRE,A,12293.16,258,22,AAE,FOLDERR,LTTRS,2002-12-22 04:48:00,2003-05-17 04:59:00,NOT COLLATERAL
+160561,14315.493,DDD,HGV,A,12293,256,21,AAF,FOLDERS,LTTRS,2002-12-22 05:48:00,2003-05-17 06:59:00,NOT COLLATERAL
+160572,14318.604,DDA,KLS,A,12292.84,254,20,BBA,FOLDERX,LTTRZ,2002-12-22 06:48:00,2003-05-17 08:59:00,NOT COLLATERAL
+160583,14321.715,DAA,SDK,A,12292.68,252,19,BBC,FOLDERR,LTTRA,2002-12-22 07:48:00,2003-05-17 10:59:00,NOT COLLATERAL
+160594,14324.826,DBB,MNV,A,12292.52,250,18,BBE,FOLDERS,LTTRB,2002-12-22 08:48:00,2003-05-17 12:59:00,NOT COLLATERAL
+160605,14327.937,DCC,OKW,A,12292.36,248,17,BBF,FOLDERX,LTTRB,2002-12-22 09:48:00,2003-05-17 14:59:00,NOT COLLATERAL
+160616,14331.048,DEE,ASS,A,12292.2,246,16,BBG,FOLDERR,LTTRA,2002-12-22 10:48:00,2003-05-17 16:59:00,NOT COLLATERAL
+160627,14334.159,DFF,CKA,A,12292.04,244,15,BBH,FOLDERS,LTTRA,2002-12-22 11:48:00,2003-05-17 18:59:00,NOT COLLATERAL
+160638,14337.27,DGG,SWQ,A,12291.88,242,14,CCA,FOLDERX,LTTRS,2002-12-22 12:48:00,2003-05-17 20:59:00,COLLATERAL
+160649,14340.381,DHH,KUH,A,12291.72,240,13,CCB,FOLDERR,LTTRZ,2002-12-22 13:48:00,2003-05-17 22:59:00,COLLATERAL
+160660,14343.492,AAA,XCV,A,12291.56,238,12,CCD,FOLDERS,LTTRS,2002-12-22 14:48:00,2003-05-18 00:59:00,COLLATERAL
+160671,14346.603,BBB,ZAQ,A,12291.4,236,11,CCE,FOLDERX,LTTRS,2002-12-22 15:48:00,2003-05-18 02:59:00,NOT COLLATERAL
+160682,14349.714,CCC,MKO,A,12291.24,234,10,CCF,FOLDERR,LTTRS,2002-12-22 16:48:00,2003-05-18 04:59:00,NOT COLLATERAL
+160693,14352.825,DDD,VFR,A,12291.08,232,9,CCG,FOLDERS,LTTRS,2002-12-22 17:48:00,2003-05-18 06:59:00,NOT COLLATERAL
+160704,14355.936,AAB,YUJ,A,12290.92,230,8,CCH,FOLDERX,LTTRS,2002-12-22 18:48:00,2003-05-18 08:59:00,NOT COLLATERAL
+160715,14359.047,AAC,MED,A,12290.76,228,7,CCI,FOLDERD,LTTRS,2002-12-22 19:48:00,2003-05-18 10:59:00,NOT COLLATERAL
+160726,14362.158,AAD,SWE,A,12290.6,226,6,CCJ,FOLDERE,LTTRS,2002-12-22 20:48:00,2003-05-18 12:59:00,NOT COLLATERAL
+160737,14365.269,AAE,CVF,A,12290.44,224,5,DDD,FOLDERF,LTTRS,2002-12-22 21:48:00,2003-05-18 14:59:00,NOT COLLATERAL
+160748,14368.38,AAF,DSFG,A,12290.28,222,4,DDA,FOLDERG,LTTRS,2002-12-22 22:48:00,2003-05-18 16:59:00,NOT COLLATERAL
+160759,14371.491,BBA,ASDRE,A,12290.12,220,3,DAA,FOLDERH,LTTRS,2002-12-22 23:48:00,2003-05-18 18:59:00,NOT COLLATERAL
+160770,14374.602,BBC,HJKSS,A,12289.96,218,1,FKF,FOLDERI,LTTRS,2002-12-23 00:48:00,2003-05-18 20:59:00,COLLATERAL
+160781,14377.713,BBE,KHAA,A,12289.8,216,2,LES,FOLDERJ,LTTRS,2002-12-23 01:48:00,2003-05-18 22:59:00,COLLATERAL
+160792,14380.824,BBF,KSLD,A,12289.64,214,3,KLD,FOLDERK,LTTRS,2002-12-23 02:48:00,2003-05-19 00:59:00,COLLATERAL
+160803,14383.935,BBG,EKID,A,12289.48,212,4,SKL,FOLDERL,LTTRS,2002-12-23 03:48:00,2003-05-19 02:59:00,NOT COLLATERAL
+160814,14387.046,BBH,VNCD,A,12289.32,210,5,SIW,FOLDERM,LTTRZ,2002-12-23 04:48:00,2003-05-19 04:59:00,NOT COLLATERAL
+160825,14390.157,CCA,DKD,A,12289.16,208,6,CKA,FOLDERN,LTTRA,2002-12-23 05:48:00,2003-05-19 06:59:00,NOT COLLATERAL
+160836,14393.268,CCB,FKF,A,12289,206,7,LDE,FOLDERN,LTTRB,2002-12-23 06:48:00,2003-05-19 08:59:00,NOT COLLATERAL
+160847,14396.379,CCD,LES,A,12288.84,204,8,KFF,FOLDERN,LTTRB,2002-12-23 07:48:00,2003-05-19 10:59:00,NOT COLLATERAL
+160858,14399.49,CCE,KLD,A,12288.68,202,9,EFH,FOLDERN,LTTRA,2002-12-23 08:48:00,2003-05-19 12:59:00,NOT COLLATERAL
+160869,14402.601,CCF,SKL,A,12288.52,200,10,NGC,FOLDERL,LTTRA,2002-12-23 09:48:00,2003-05-19 14:59:00,NOT COLLATERAL
+160880,14405.712,CCG,SIW,A,12288.36,198,11,DER,FOLDERL,LTTRS,2002-12-23 10:48:00,2003-05-19 16:59:00,NOT COLLATERAL
+160891,14408.823,CCH,CKA,A,12288.2,196,12,FVG,FOLDERL,LTTRZ,2002-12-23 11:48:00,2003-05-19 18:59:00,NOT COLLATERAL
+160902,14411.934,CCI,LDE,A,12288.04,194,13,KWE,FOLDERL,LTTRS,2002-12-23 12:48:00,2003-05-19 20:59:00,COLLATERAL
+160913,14415.045,CCJ,KFF,A,12287.88,192,14,WER,FOLDERL,LTTRS,2002-12-23 13:48:00,2003-05-19 22:59:00,COLLATERAL
+160924,14418.156,DDD,EFH,A,12287.72,190,15,GFH,FOLDERZ,LTTRS,2002-12-23 14:48:00,2003-05-20 00:59:00,COLLATERAL
+160935,14421.267,DDA,NGC,A,12287.56,188,16,BGF,FOLDERZ,LTTRS,2002-12-23 15:48:00,2003-05-20 02:59:00,NOT COLLATERAL
+160946,14424.378,DAA,DER,A,12287.4,186,17,XCS,FOLDERZ,LTTRS,2002-12-23 16:48:00,2003-05-20 04:59:00,NOT COLLATERAL
+160957,14427.489,DBB,FVG,A,12287.24,184,18,JHK,FOLDERZ,LTTRS,2002-12-23 17:48:00,2003-05-20 06:59:00,NOT COLLATERAL
+160968,14430.6,DCC,KWE,A,12287.08,182,19,SFD,FOLDERZ,LTTRS,2002-12-23 18:48:00,2003-05-20 08:59:00,NOT COLLATERAL
+160979,14433.711,DEE,WER,A,12286.92,180,20,WRE,FOLDERZ,LTTRS,2002-12-23 19:48:00,2003-05-20 10:59:00,NOT COLLATERAL
+160990,14436.822,DFF,GFH,A,12286.76,178,21,HGV,FOLDERZ,LTTRS,2002-12-23 20:48:00,2003-05-20 12:59:00,NOT COLLATERAL
+161001,14439.933,DGG,BGF,A,12286.6,176,22,KLS,FOLDERZ,LTTRS,2002-12-23 21:48:00,2003-05-20 14:59:00,NOT COLLATERAL
+161012,14443.044,DHH,XCS,A,12286.44,174,23,SDK,FOLDERZ,LTTRS,2002-12-23 22:48:00,2003-05-20 16:59:00,NOT COLLATERAL
+161023,14446.155,AAA,JHK,A,12286.28,172,24,MNV,FOLDERZ,LTTRS,2002-12-23 23:48:00,2003-05-20 18:59:00,NOT COLLATERAL
+161034,14449.266,BBB,SFD,A,12286.12,170,25,OKW,FOLDERZ,LTTRS,2002-12-24 00:48:00,2003-05-20 20:59:00,COLLATERAL
+161045,14452.377,CCC,WRE,A,12285.96,168,26,ASS,FOLDERZ,LTTRS,2002-12-24 01:48:00,2003-05-20 22:59:00,COLLATERAL
+161056,14455.488,DDD,HGV,A,12285.8,166,27,CKA,FOLDERX,LTTRZ,2002-12-24 02:48:00,2003-05-21 00:59:00,COLLATERAL
+161067,14458.599,AAB,KLS,A,12285.64,164,28,SWQ,FOLDERX,LTTRA,2002-12-24 03:48:00,2003-05-21 02:59:00,NOT COLLATERAL
+161078,14461.71,AAC,SDK,A,12285.48,162,29,KUH,FOLDERX,LTTRB,2002-12-24 04:48:00,2003-05-21 04:59:00,NOT COLLATERAL
+161089,14464.821,AAD,MNV,A,12285.32,160,30,XCV,FOLDERX,LTTRB,2002-12-24 05:48:00,2003-05-21 06:59:00,NOT COLLATERAL
+161100,14467.932,AAE,OKW,A,12285.16,158,31,ZAQ,FOLDERX,LTTRA,2002-12-24 06:48:00,2003-05-21 08:59:00,NOT COLLATERAL
+161111,14471.043,AAF,ASS,A,12285,156,32,MKO,FOLDERX,LTTRA,2002-12-24 07:48:00,2003-05-21 10:59:00,NOT COLLATERAL
+161122,14474.154,BBA,CKA,A,12284.84,154,33,VFR,FOLDERX,LTTRS,2002-12-24 08:48:00,2003-05-21 12:59:00,NOT COLLATERAL
+161133,14477.265,BBC,SWQ,A,12284.68,152,34,YUJ,FOLDERX,LTTRZ,2002-12-24 09:48:00,2003-05-21 14:59:00,NOT COLLATERAL
+161144,14480.376,BBE,KUH,A,12284.52,150,35,AAA,FOLDERX,LTTRS,2002-12-24 10:48:00,2003-05-21 16:59:00,NOT COLLATERAL
+161155,14483.487,BBF,XCV,A,12284.36,148,36,BBB,FOLDERX,LTTRS,2002-12-24 11:48:00,2003-05-21 18:59:00,NOT COLLATERAL
+161166,14486.598,BBG,ZAQ,A,12284.2,146,37,CCC,FOLDERX,LTTRS,2002-12-24 12:48:00,2003-05-21 20:59:00,COLLATERAL
+161177,14489.709,BBH,MKO,A,12284.04,144,38,DDD,FOLDERX,LTTRS,2002-12-24 13:48:00,2003-05-21 22:59:00,COLLATERAL
+161188,14492.82,CCA,VFR,A,12283.88,142,39,AAB,FOLDERR,LTTRS,2002-12-24 14:48:00,2003-05-22 00:59:00,COLLATERAL
+161199,14495.931,CCB,YUJ,A,12283.72,140,40,AAC,FOLDERS,LTTRS,2002-12-24 15:48:00,2003-05-22 02:59:00,NOT COLLATERAL
+161210,14499.042,CCD,MED,A,12283.56,138,41,AAD,FOLDERX,LTTRS,2002-12-24 16:48:00,2003-05-22 04:59:00,NOT COLLATERAL
+161221,14502.153,CCE,SWE,A,12283.4,136,42,AAE,FOLDERR,LTTRS,2002-12-24 17:48:00,2003-05-22 06:59:00,NOT COLLATERAL
+161232,14505.264,CCF,CVF,A,12283.24,134,43,AAF,FOLDERS,LTTRS,2002-12-24 18:48:00,2003-05-22 08:59:00,NOT COLLATERAL
+161243,14508.375,CCG,DSFG,A,12283.08,132,44,BBA,FOLDERX,LTTRS,2002-12-24 19:48:00,2003-05-22 10:59:00,NOT COLLATERAL
+161254,14511.486,CCH,ASDRE,A,12282.92,130,45,BBC,FOLDERR,LTTRS,2002-12-24 20:48:00,2003-05-22 12:59:00,NOT COLLATERAL
+161265,14514.597,CCI,HJKSS,A,12282.76,128,46,BBE,FOLDERS,LTTRS,2002-12-24 21:48:00,2003-05-22 14:59:00,NOT COLLATERAL
+161276,14517.708,CCJ,KHAA,A,12282.6,126,47,BBF,FOLDERX,LTTRS,2002-12-24 22:48:00,2003-05-22 16:59:00,NOT COLLATERAL
+161287,14520.819,DDD,KSLD,A,12282.44,124,48,BBG,FOLDERR,LTTRS,2002-12-24 23:48:00,2003-05-22 18:59:00,NOT COLLATERAL
+161298,14523.93,DDA,EKID,A,12282.28,122,49,BBH,FOLDERS,LTTRZ,2002-12-25 00:48:00,2003-05-22 20:59:00,COLLATERAL
+161309,14527.041,DAA,VNCD,A,12282.12,120,48,CCA,FOLDERX,LTTRA,2002-12-25 01:48:00,2003-05-22 22:59:00,COLLATERAL
+161320,14530.152,DBB,DKD,A,12281.96,118,47,CCB,FOLDERR,LTTRB,2002-12-25 02:48:00,2003-05-23 00:59:00,COLLATERAL
+161331,14533.263,DCC,FKF,A,12281.8,116,46,CCD,FOLDERS,LTTRB,2002-12-25 03:48:00,2003-05-23 02:59:00,NOT COLLATERAL
+161342,14536.374,DEE,LES,A,12281.64,114,45,CCE,FOLDERX,LTTRA,2002-12-25 04:48:00,2003-05-23 04:59:00,NULL
+161353,14539.485,DFF,KLD,A,12281.48,112,44,CCF,FOLDERD,LTTRA,2002-12-25 05:48:00,2003-05-23 06:59:00,NULL
+161364,14542.596,DGG,SKL,A,12281.32,110,43,CCG,FOLDERE,LTTRS,2002-12-25 06:48:00,2003-05-23 08:59:00,NULL
+161375,14545.707,DHH,SIW,A,12281.16,108,42,CCH,FOLDERF,LTTRZ,2002-12-25 07:48:00,2003-05-23 10:59:00,NULL
+161386,14548.818,AAA,CKA,A,12281,106,41,CCI,FOLDERG,LTTRS,2002-12-25 08:48:00,2003-05-23 12:59:00,NULL
+161397,14551.929,BBB,LDE,A,12280.84,104,40,CCJ,FOLDERH,LTTRS,2002-12-25 09:48:00,2003-05-23 14:59:00,NOT COLLATERAL
+161408,14555.04,CCC,KFF,A,12280.68,102,39,DDD,FOLDERI,LTTRS,2002-12-25 10:48:00,2003-05-23 16:59:00,NOT COLLATERAL
+161419,14558.151,DDD,EFH,A,12280.52,100,38,DDA,FOLDERJ,LTTRS,2002-12-25 11:48:00,2003-05-23 18:59:00,NOT COLLATERAL
+161430,14561.262,AAB,NGC,A,12280.36,98,37,DAA,FOLDERK,LTTRS,2002-12-25 12:48:00,2003-05-23 20:59:00,COLLATERAL
+161441,14564.373,AAC,DER,A,12280.2,96,36,FKF,FOLDERL,LTTRS,2002-12-25 13:48:00,2003-05-23 22:59:00,COLLATERAL
+161452,14567.484,AAD,FVG,A,12280.04,94,35,LES,FOLDERM,LTTRS,2002-12-25 14:48:00,2003-05-24 00:59:00,COLLATERAL
+161463,14570.595,AAE,KWE,A,12279.88,92,34,KLD,FOLDERN,LTTRS,2002-12-25 15:48:00,2003-05-24 02:59:00,NOT COLLATERAL
+161474,14573.706,AAF,WER,A,12279.72,90,33,SKL,FOLDERN,LTTRS,2002-12-25 16:48:00,2003-05-24 04:59:00,NULL
+161485,14576.817,BBA,GFH,A,12279.56,88,32,SIW,FOLDERN,LTTRS,2002-12-25 17:48:00,2003-05-24 06:59:00,NULL
+161496,14579.928,BBC,BGF,A,12279.4,86,31,CKA,FOLDERN,LTTRS,2002-12-25 18:48:00,2003-05-24 08:59:00,NULL
+161507,14583.039,BBE,XCS,A,12279.24,84,30,LDE,FOLDERL,LTTRS,2002-12-25 19:48:00,2003-05-24 10:59:00,NULL
+161518,14586.15,BBF,JHK,A,12279.08,82,29,KFF,FOLDERL,LTTRS,2002-12-25 20:48:00,2003-05-24 12:59:00,NULL
+161529,14589.261,BBG,SFD,A,12278.92,82,28,EFH,FOLDERL,LTTRS,2002-12-25 21:48:00,2003-05-24 14:59:00,NULL
+161540,14592.372,BBH,WRE,A,12278.76,82,27,NGC,FOLDERL,LTTRZ,2002-12-25 22:48:00,2003-05-24 16:59:00,NULL
+161551,14595.483,CCA,HGV,A,12278.6,82,26,DER,FOLDERL,LTTRA,2002-12-25 23:48:00,2003-05-24 18:59:00,NULL
+161562,14598.594,CCB,KLS,A,12278.44,82,25,FVG,FOLDERA,LTTRB,2002-12-26 00:48:00,2003-05-24 20:59:00,COLLATERAL
+161573,14601.705,CCD,SDK,A,12278.28,82,24,KWE,FOLDERB,LTTRB,2002-12-26 01:48:00,2003-05-24 22:59:00,COLLATERAL
+161584,14604.816,CCE,MNV,A,12278.12,82,23,WER,FOLDERC,LTTRA,2002-12-26 02:48:00,2003-05-25 00:59:00,COLLATERAL
+161595,14607.927,CCF,OKW,A,12277.96,82,22,GFH,FOLDERD,LTTRA,2002-12-26 03:48:00,2003-05-25 02:59:00,NOT COLLATERAL
+161606,14611.038,CCG,ASS,A,12277.8,82,21,BGF,FOLDERE,LTTRS,2002-12-26 04:48:00,2003-05-25 04:59:00,NOT COLLATERAL
+161617,14614.149,CCH,CKA,A,12277.64,82,20,XCS,FOLDERF,LTTRZ,2002-12-26 05:48:00,2003-05-25 06:59:00,NOT COLLATERAL
+161628,14617.26,CCI,SWQ,A,12277.48,82,19,JHK,FOLDERG,LTTRS,2002-12-26 06:48:00,2003-05-25 08:59:00,NULL
+161639,14620.371,CCJ,KUH,A,12277.32,82,18,SFD,FOLDERH,LTTRS,2002-12-26 07:48:00,2003-05-25 10:59:00,NULL
+161650,14623.482,DDD,XCV,A,12277.16,82,17,WRE,FOLDERI,LTTRS,2002-12-26 08:48:00,2003-05-25 12:59:00,NULL
+161661,14626.593,DDA,ZAQ,A,12277,82,16,HGV,FOLDERJ,LTTRS,2002-12-26 09:48:00,2003-05-25 14:59:00,NULL
+161672,14629.704,DAA,MKO,A,12276.84,82,15,KLS,FOLDERK,LTTRS,2002-12-26 10:48:00,2003-05-25 16:59:00,NULL
+161683,14632.815,DBB,VFR,A,12276.68,82,14,SDK,FOLDERL,LTTRS,2002-12-26 11:48:00,2003-05-25 18:59:00,NOT COLLATERAL
+161694,14635.926,DCC,YUJ,A,12276.52,82,13,MNV,FOLDERM,LTTRS,2002-12-26 12:48:00,2003-05-25 20:59:00,COLLATERAL
+161705,14639.037,DEE,MED,A,12276.36,82,12,OKW,FOLDERN,LTTRS,2002-12-26 13:48:00,2003-05-25 22:59:00,COLLATERAL
+161716,14642.148,DFF,SWE,A,12276.2,82,11,ASS,FOLDERO,LTTRS,2002-12-26 14:48:00,2003-05-26 00:59:00,COLLATERAL
+161727,14645.259,DGG,CVF,A,12276.04,82,10,CKA,FOLDERP,LTTRS,2002-12-26 15:48:00,2003-05-26 02:59:00,NOT COLLATERAL
+161738,14648.37,DHH,DSFG,A,12275.88,82,9,SWQ,FOLDERQ,LTTRS,2002-12-26 16:48:00,2003-05-26 04:59:00,NOT COLLATERAL
+161749,14651.481,AAA,ASDRE,A,12275.72,82,8,KUH,FOLDERR,LTTRS,2002-12-26 17:48:00,2003-05-26 06:59:00,NOT COLLATERAL
+161760,14654.592,BBB,HJKSS,A,12275.56,82,7,XCV,FOLDERS,LTTRS,2002-12-26 18:48:00,2003-05-26 08:59:00,NOT COLLATERAL
+161771,14657.703,CCC,KHAA,A,12275.4,82,6,ZAQ,FOLDERT,LTTRS,2002-12-26 19:48:00,2003-05-26 10:59:00,NOT COLLATERAL
+161782,14660.814,DDD,KSLD,A,12275.24,82,5,MKO,FOLDERU,LTTRZ,2002-12-26 20:48:00,2003-05-26 12:59:00,NOT COLLATERAL
+161793,14663.925,AAB,EKID,A,12275.08,82,4,VFR,FOLDERV,LTTRA,2002-12-26 21:48:00,2003-05-26 14:59:00,NOT COLLATERAL
+161804,14667.036,AAC,VNCD,A,12274.92,82,3,YUJ,FOLDERW,LTTRB,2002-12-26 22:48:00,2003-05-26 16:59:00,NOT COLLATERAL
+161815,14670.147,AAD,DKD,A,12274.76,82,1,AAA,FOLDERX,LTTRB,2002-12-26 23:48:00,2003-05-26 18:59:00,NOT COLLATERAL
+161826,14673.258,AAE,FKF,A,12274.6,82,2,BBB,FOLDERY,LTTRA,2002-12-27 00:48:00,2003-05-26 20:59:00,COLLATERAL
+161837,14676.369,AAF,LES,A,12274.44,82,3,CCC,FOLDERZ,LTTRA,2002-12-27 01:48:00,2003-05-26 22:59:00,COLLATERAL
+161848,14679.48,BBA,KLD,A,12274.28,82,4,DDD,FOLDERA,LTTRS,2002-12-27 02:48:00,2003-05-27 00:59:00,COLLATERAL
+161859,14682.591,BBC,SKL,A,12274.12,82,5,AAB,FOLDERB,LTTRZ,2002-12-27 03:48:00,2003-05-27 02:59:00,NOT COLLATERAL
+161870,14685.702,BBE,SIW,A,12273.96,82,6,AAC,FOLDERC,LTTRS,2002-12-27 04:48:00,2003-05-27 04:59:00,NOT COLLATERAL
+161881,14688.813,BBF,CKA,A,12273.8,82,7,AAD,FOLDERD,LTTRS,2002-12-27 05:48:00,2003-05-27 06:59:00,NOT COLLATERAL
+161892,14691.924,BBG,LDE,A,12273.64,82,8,AAE,FOLDERE,LTTRS,2002-12-27 06:48:00,2003-05-27 08:59:00,NOT COLLATERAL
+161903,14695.035,BBH,KFF,A,12273.48,82,9,AAF,FOLDERF,LTTRS,2002-12-27 07:48:00,2003-05-27 10:59:00,NOT COLLATERAL
+161914,14698.146,CCA,EFH,A,12273.32,82,10,BBA,FOLDERG,LTTRS,2002-12-27 08:48:00,2003-05-27 12:59:00,NOT COLLATERAL
+161925,14701.257,CCB,NGC,A,12273.16,82,11,BBC,FOLDERH,LTTRS,2002-12-27 09:48:00,2003-05-27 14:59:00,NOT COLLATERAL
+161936,14704.368,CCD,DER,A,12273,82,12,BBE,FOLDERI,LTTRS,2002-12-27 10:48:00,2003-05-27 16:59:00,NOT COLLATERAL
+161947,14707.479,CCE,FVG,A,12272.84,82,13,BBF,FOLDERJ,LTTRS,2002-12-27 11:48:00,2003-05-27 18:59:00,NOT COLLATERAL
+161958,14710.59,CCF,KWE,A,12272.68,82,14,BBG,FOLDERK,LTTRS,2002-12-27 12:48:00,2003-05-27 20:59:00,COLLATERAL
+161969,14713.701,CCG,WER,A,12272.52,82,15,BBH,FOLDERL,LTTRS,2002-12-27 13:48:00,2003-05-27 22:59:00,COLLATERAL
+161980,14716.812,CCH,GFH,A,12272.36,82,16,CCA,FOLDERM,LTTRS,2002-12-27 14:48:00,2003-05-28 00:59:00,COLLATERAL
+161991,14719.923,CCI,BGF,A,12272.2,82,17,CCB,FOLDERN,LTTRS,2002-12-27 15:48:00,2003-05-28 02:59:00,NOT COLLATERAL
+162002,14723.034,CCJ,XCS,A,12272.04,82,18,CCD,FOLDERO,LTTRS,2002-12-27 16:48:00,2003-05-28 04:59:00,NOT COLLATERAL
+162013,14726.145,DDD,JHK,A,12271.88,82,19,CCE,FOLDERP,LTTRS,2002-12-27 17:48:00,2003-05-28 06:59:00,NOT COLLATERAL
+162024,14729.256,DDA,SFD,A,12271.72,82,20,CCF,FOLDERQ,LTTRZ,2002-12-27 18:48:00,2003-05-28 08:59:00,NOT COLLATERAL
+162035,14732.367,DAA,WRE,A,12271.56,82,21,CCG,FOLDERR,LTTRA,2002-12-27 19:48:00,2003-05-28 10:59:00,NOT COLLATERAL
+162046,14735.478,DBB,HGV,A,12271.4,82,22,CCH,FOLDERS,LTTRB,2002-12-27 20:48:00,2003-05-28 12:59:00,NOT COLLATERAL
+162057,14738.589,DCC,KLS,A,12271.24,82,23,CCI,FOLDERT,LTTRB,2002-12-27 21:48:00,2003-05-28 14:59:00,NOT COLLATERAL
+162068,14741.7,DEE,SDK,A,12271.08,82,24,CCJ,FOLDERU,LTTRA,2002-12-27 22:48:00,2003-05-28 16:59:00,NOT COLLATERAL
+162079,14744.811,DFF,MNV,A,12270.92,82,25,DDD,FOLDERV,LTTRA,2002-12-27 23:48:00,2003-05-28 18:59:00,NOT COLLATERAL
+162090,14747.922,DGG,OKW,A,12270.76,82,26,DDA,FOLDERW,LTTRS,2002-12-28 00:48:00,2003-05-28 20:59:00,COLLATERAL
+162101,14751.033,DHH,ASS,A,12270.6,82,27,DAA,FOLDERX,LTTRZ,2002-12-28 01:48:00,2003-05-28 22:59:00,COLLATERAL
+162112,14754.144,AAA,CKA,A,12270.44,82,28,FKF,FOLDERY,LTTRS,2002-12-28 02:48:00,2003-05-29 00:59:00,COLLATERAL
+162123,14757.255,BBB,SWQ,A,12270.28,82,29,LES,FOLDERZ,LTTRS,2002-12-28 03:48:00,2003-05-29 02:59:00,NOT COLLATERAL
+162134,14760.366,CCC,KUH,A,12270.12,82,30,KLD,FOLDERZ,LTTRS,2002-12-28 04:48:00,2003-05-29 04:59:00,NOT COLLATERAL
+162145,14763.477,DDD,XCV,A,12269.96,82,31,SKL,FOLDERZ,LTTRS,2002-12-28 05:48:00,2003-05-29 06:59:00,NOT COLLATERAL
+162156,14766.588,AAB,ZAQ,A,12269.8,82,32,SIW,FOLDERZ,LTTRS,2002-12-28 06:48:00,2003-05-29 08:59:00,NOT COLLATERAL
+162167,14769.699,AAC,MKO,A,12269.64,82,33,CKA,FOLDERZ,LTTRS,2002-12-28 07:48:00,2003-05-29 10:59:00,NOT COLLATERAL
+162178,14772.81,AAD,VFR,A,12269.48,82,34,LDE,FOLDERZ,LTTRS,2002-12-28 08:48:00,2003-05-29 12:59:00,NOT COLLATERAL
+162189,14775.921,AAE,YUJ,A,12269.32,82,35,KFF,FOLDERZ,LTTRS,2002-12-28 09:48:00,2003-05-29 14:59:00,NOT COLLATERAL
+162200,14779.032,AAF,MED,A,12269.16,82,36,EFH,FOLDERZ,LTTRS,2002-12-28 10:48:00,2003-05-29 16:59:00,NOT COLLATERAL
+162211,14782.143,BBA,SWE,A,12269,87,37,NGC,FOLDERZ,LTTRS,2002-12-28 11:47:00,2003-05-29 18:59:00,NOT COLLATERAL
+162222,14785.254,BBC,CVF,A,12268.84,92,38,DER,FOLDERZ,LTTRS,2002-12-28 12:47:00,2003-05-29 20:59:00,COLLATERAL
+162233,14788.365,BBE,DSFG,A,12268.68,97,39,FVG,FOLDERZ,LTTRS,2002-12-28 13:47:00,2003-05-29 22:59:00,COLLATERAL
+162244,14791.476,BBF,ASDRE,A,12268.52,102,40,KWE,FOLDERZ,LTTRS,2002-12-28 14:47:00,2003-05-30 00:59:00,COLLATERAL
+162255,14794.587,BBG,HJKSS,A,12268.36,107,41,WER,FOLDERZ,LTTRS,2002-12-28 15:47:00,2003-05-30 02:59:00,NOT COLLATERAL
+162266,14797.698,BBH,KHAA,A,12268.2,112,42,GFH,FOLDERZ,LTTRZ,2002-12-28 16:47:00,2003-05-30 04:59:00,NOT COLLATERAL
+162277,14800.809,CCA,KSLD,A,12268.04,117,43,BGF,FOLDERX,LTTRA,2002-12-28 17:47:00,2003-05-30 06:59:00,NOT COLLATERAL
+162288,14803.92,CCB,EKID,A,12267.88,122,44,XCS,FOLDERX,LTTRB,2002-12-28 18:47:00,2003-05-30 08:59:00,NOT COLLATERAL
+162299,14807.031,CCD,VNCD,A,12267.72,127,45,JHK,FOLDERX,LTTRB,2002-12-28 19:47:00,2003-05-30 10:59:00,NOT COLLATERAL
+162310,14810.142,CCE,DKD,A,12267.56,132,46,SFD,FOLDERX,LTTRA,2002-12-28 20:47:00,2003-05-30 12:59:00,NOT COLLATERAL
+162321,14813.253,CCF,FKF,A,12267.4,137,47,WRE,FOLDERX,LTTRA,2002-12-28 21:47:00,2003-05-30 14:59:00,NOT COLLATERAL
+162332,14816.364,CCG,LES,A,12267.24,142,48,HGV,FOLDERX,LTTRS,2002-12-28 22:47:00,2003-05-30 16:59:00,NOT COLLATERAL
+162343,14819.475,CCH,KLD,A,12267.08,147,49,KLS,FOLDERX,LTTRZ,2002-12-28 23:47:00,2003-05-30 18:59:00,NOT COLLATERAL
+162354,14822.586,CCI,SKL,A,12266.92,152,48,SDK,FOLDERX,LTTRS,2002-12-29 00:47:00,2003-05-30 20:59:00,COLLATERAL
+162365,14825.697,CCJ,SIW,A,12266.76,157,47,MNV,FOLDERX,LTTRS,2002-12-29 01:47:00,2003-05-30 22:59:00,COLLATERAL
+162376,14828.808,DDD,CKA,A,12266.6,162,46,OKW,FOLDERX,LTTRS,2002-12-29 02:47:00,2003-05-31 00:59:00,COLLATERAL
+162387,14831.919,DDA,LDE,A,12266.44,167,45,ASS,FOLDERX,LTTRS,2002-12-29 03:47:00,2003-05-31 02:59:00,NOT COLLATERAL
+162398,14835.03,DAA,KFF,A,12266.28,172,44,CKA,FOLDERX,LTTRS,2002-12-29 04:47:00,2003-05-31 04:59:00,NOT COLLATERAL
+162409,14838.141,DBB,EFH,A,12266.12,177,43,SWQ,FOLDERR,LTTRS,2002-12-29 05:47:00,2003-05-31 06:59:00,NOT COLLATERAL
+162420,14841.252,DCC,NGC,A,12265.96,182,42,KUH,FOLDERS,LTTRS,2002-12-29 06:47:00,2003-05-31 08:59:00,NOT COLLATERAL
+162431,14844.363,DEE,DER,A,12265.8,187,41,XCV,FOLDERX,LTTRS,2002-12-29 07:47:00,2003-05-31 10:59:00,NOT COLLATERAL
+162442,14847.474,DFF,FVG,A,12265.64,192,40,ZAQ,FOLDERR,LTTRS,2002-12-29 08:47:00,2003-05-31 12:59:00,NOT COLLATERAL
+162453,14850.585,DGG,KWE,A,12265.48,197,39,MKO,FOLDERS,LTTRS,2002-12-29 09:47:00,2003-05-31 14:59:00,NOT COLLATERAL
+162464,14853.696,DHH,WER,A,12265.32,202,38,VFR,FOLDERX,LTTRS,2002-12-29 10:47:00,2003-05-31 16:59:00,NOT COLLATERAL
+162475,14856.807,AAA,GFH,A,12265.16,207,37,YUJ,FOLDERR,LTTRS,2002-12-29 11:47:00,2003-05-31 18:59:00,NOT COLLATERAL
+162486,14859.918,BBB,BGF,A,12265,212,36,AAA,FOLDERS,LTTRS,2002-12-29 12:47:00,2003-05-31 20:59:00,COLLATERAL
+162497,14863.029,CCC,XCS,A,12264.84,217,35,BBB,FOLDERX,LTTRS,2002-12-29 13:47:00,2003-05-31 22:59:00,COLLATERAL
+162508,14866.14,DDD,JHK,A,12264.68,222,34,CCC,FOLDERR,LTTRZ,2002-12-29 14:47:00,2003-06-01 00:59:00,COLLATERAL
+162519,14869.251,AAB,SFD,A,12264.52,227,33,DDD,FOLDERS,LTTRA,2002-12-29 15:47:00,2003-06-01 02:59:00,NOT COLLATERAL
+162530,14872.362,AAC,WRE,A,12264.36,232,32,AAB,FOLDERX,LTTRB,2002-12-29 16:47:00,2003-06-01 04:59:00,NOT COLLATERAL
+162541,14875.473,AAD,HGV,A,12264.2,237,31,AAC,FOLDERR,LTTRB,2002-12-29 17:47:00,2003-06-01 06:59:00,NOT COLLATERAL
+162552,14878.584,AAE,KLS,A,12264.04,242,30,AAD,FOLDERS,LTTRA,2002-12-29 18:47:00,2003-06-01 08:59:00,NOT COLLATERAL
+162563,14881.695,AAF,SDK,A,12263.88,247,29,AAE,FOLDERX,LTTRA,2002-12-29 19:47:00,2003-06-01 10:59:00,NOT COLLATERAL
+162574,14884.806,BBA,MNV,A,12263.72,252,28,AAF,FOLDERD,LTTRS,2002-12-29 20:47:00,2003-06-01 12:59:00,NOT COLLATERAL
+162585,14887.917,BBC,OKW,A,12263.56,257,27,BBA,FOLDERE,LTTRZ,2002-12-29 21:47:00,2003-06-01 14:59:00,NOT COLLATERAL
+162596,14891.028,BBE,ASS,A,12263.4,262,26,BBC,FOLDERF,LTTRS,2002-12-29 22:47:00,2003-06-01 16:59:00,NOT COLLATERAL
+162607,14894.139,BBF,CKA,A,12263.24,267,25,BBE,FOLDERG,LTTRS,2002-12-29 23:47:00,2003-06-01 18:59:00,NOT COLLATERAL
+162618,14897.25,BBG,SWQ,A,12263.08,272,24,BBF,FOLDERH,LTTRS,2002-12-30 00:47:00,2003-06-01 20:59:00,COLLATERAL
+162629,14900.361,BBH,KUH,A,12262.92,277,23,BBG,FOLDERI,LTTRS,2002-12-30 01:47:00,2003-06-01 22:59:00,COLLATERAL
+162640,14903.472,CCA,XCV,A,12262.76,282,22,BBH,FOLDERJ,LTTRS,2002-12-30 02:47:00,2003-06-02 00:59:00,COLLATERAL
+162651,14906.583,CCB,ZAQ,A,12262.6,287,21,CCA,FOLDERK,LTTRS,2002-12-30 03:47:00,2003-06-02 02:59:00,NOT COLLATERAL
+162662,14909.694,CCD,MKO,A,12262.44,292,20,CCB,FOLDERL,LTTRS,2002-12-30 04:47:00,2003-06-02 04:59:00,NOT COLLATERAL
+162673,14912.805,CCE,VFR,A,12262.28,297,19,CCD,FOLDERM,LTTRS,2002-12-30 05:47:00,2003-06-02 06:59:00,NOT COLLATERAL
+162684,14915.916,CCF,YUJ,A,12262.12,302,18,CCE,FOLDERN,LTTRS,2002-12-30 06:47:00,2003-06-02 08:59:00,NOT COLLATERAL
+162695,14919.027,CCG,MED,A,12261.96,307,17,CCF,FOLDERN,LTTRS,2002-12-30 07:47:00,2003-06-02 10:59:00,NOT COLLATERAL
+162706,14922.138,CCH,SWE,A,12261.8,312,16,CCG,FOLDERN,LTTRS,2002-12-30 08:47:00,2003-06-02 12:59:00,NOT COLLATERAL
+162717,14925.249,CCI,CVF,A,12261.64,317,15,CCH,FOLDERN,LTTRS,2002-12-30 09:47:00,2003-06-02 14:59:00,NOT COLLATERAL
+162728,14928.36,CCJ,DSFG,A,12261.48,322,14,CCI,FOLDERL,LTTRS,2002-12-30 10:47:00,2003-06-02 16:59:00,NOT COLLATERAL
+162739,14931.471,DDD,ASDRE,A,12261.32,327,13,CCJ,FOLDERL,LTTRS,2002-12-30 11:47:00,2003-06-02 18:59:00,NOT COLLATERAL
+162750,14934.582,DDA,HJKSS,A,12261.16,332,12,DDD,FOLDERL,LTTRZ,2002-12-30 12:47:00,2003-06-02 20:59:00,COLLATERAL
+162761,14937.693,DAA,KHAA,A,12261,337,11,DDA,FOLDERL,LTTRA,2002-12-30 13:47:00,2003-06-02 22:59:00,COLLATERAL
+162772,14940.804,DBB,KSLD,A,12260.84,342,10,DAA,FOLDERL,LTTRB,2002-12-30 14:47:00,2003-06-03 00:59:00,COLLATERAL
+162783,14943.915,DCC,EKID,A,12260.68,347,9,FKF,FOLDERA,LTTRB,2002-12-30 15:47:00,2003-06-03 02:59:00,NOT COLLATERAL
+162794,14947.026,DEE,VNCD,A,12260.52,352,8,LES,FOLDERB,LTTRA,2002-12-30 16:47:00,2003-06-03 04:59:00,NOT COLLATERAL
+162805,14950.137,DFF,DKD,A,12260.36,357,7,KLD,FOLDERC,LTTRA,2002-12-30 17:47:00,2003-06-03 06:59:00,NOT COLLATERAL
+162816,14953.248,DGG,FKF,A,12260.2,362,6,SKL,FOLDERD,LTTRS,2002-12-30 18:47:00,2003-06-03 08:59:00,NOT COLLATERAL
+162827,14956.359,DHH,LES,A,12260.04,367,5,SIW,FOLDERE,LTTRZ,2002-12-30 19:47:00,2003-06-03 10:59:00,NOT COLLATERAL
+162838,14959.47,AAA,KLD,A,12259.88,372,4,CKA,FOLDERF,LTTRS,2002-12-30 20:47:00,2003-06-03 12:59:00,NOT COLLATERAL
+162849,14962.581,BBB,SKL,A,12259.72,377,3,LDE,FOLDERG,LTTRS,2002-12-30 21:47:00,2003-06-03 14:59:00,NOT COLLATERAL
+162860,14965.692,CCC,SIW,A,12259.56,382,1,KFF,FOLDERH,LTTRS,2002-12-30 22:47:00,2003-06-03 16:59:00,NOT COLLATERAL
+162871,14968.803,DDD,CKA,A,12259.4,387,2,EFH,FOLDERI,LTTRS,2002-12-30 23:47:00,2003-06-03 18:59:00,NOT COLLATERAL
+162882,14971.914,AAB,LDE,A,12259.24,392,3,NGC,FOLDERJ,LTTRS,2002-12-31 00:47:00,2003-06-03 20:59:00,COLLATERAL
+162893,14975.025,AAC,KFF,A,12259.08,397,4,DER,FOLDERK,LTTRS,2002-12-31 01:47:00,2003-06-03 22:59:00,COLLATERAL
+162904,14978.136,AAD,EFH,A,12258.92,402,5,FVG,FOLDERL,LTTRS,2002-12-31 02:47:00,2003-06-04 00:59:00,COLLATERAL
+162915,14981.247,AAE,NGC,A,12258.76,407,6,KWE,FOLDERM,LTTRS,2002-12-31 03:47:00,2003-06-04 02:59:00,NOT COLLATERAL
+162926,14984.358,AAF,DER,A,12258.6,412,7,WER,FOLDERN,LTTRS,2002-12-31 04:47:00,2003-06-04 04:59:00,NOT COLLATERAL
+162937,14987.469,BBA,FVG,A,12258.44,417,8,GFH,FOLDERO,LTTRS,2002-12-31 05:47:00,2003-06-04 06:59:00,NOT COLLATERAL
+162948,14990.58,BBC,KWE,A,12258.28,422,9,BGF,FOLDERP,LTTRS,2002-12-31 06:47:00,2003-06-04 08:59:00,NOT COLLATERAL
+162959,14993.691,BBE,WER,A,12258.12,427,10,XCS,FOLDERQ,LTTRS,2002-12-31 07:47:00,2003-06-04 10:59:00,NOT COLLATERAL
+162970,14996.802,BBF,GFH,A,12257.96,432,11,JHK,FOLDERR,LTTRS,2002-12-31 08:47:00,2003-06-04 12:59:00,NOT COLLATERAL
+162981,14999.913,BBG,BGF,A,12257.8,437,12,SFD,FOLDERS,LTTRS,2002-12-31 09:47:00,2003-06-04 14:59:00,NOT COLLATERAL
+162992,15003.024,BBH,XCS,A,12257.64,442,13,WRE,FOLDERT,LTTRZ,2002-12-31 10:47:00,2003-06-04 16:59:00,NOT COLLATERAL
+163003,15006.135,CCA,JHK,A,12257.48,447,14,HGV,FOLDERU,LTTRA,2002-12-31 11:47:00,2003-06-04 18:59:00,NOT COLLATERAL
+163014,15009.246,CCB,SFD,A,12257.32,452,15,KLS,FOLDERV,LTTRB,2002-12-31 12:47:00,2003-06-04 20:59:00,COLLATERAL
+163025,15012.357,CCD,WRE,A,12257.16,457,16,SDK,FOLDERW,LTTRB,2002-12-31 13:47:00,2003-06-04 22:59:00,COLLATERAL
+163036,15015.468,CCE,HGV,A,12257,462,17,MNV,FOLDERX,LTTRA,2002-12-31 14:47:00,2003-06-05 00:59:00,COLLATERAL
+163047,15018.579,CCF,KLS,A,12256.84,467,18,OKW,FOLDERY,LTTRA,2002-12-31 15:47:00,2003-06-05 02:59:00,NOT COLLATERAL
+163058,15021.69,CCG,SDK,A,12256.68,472,19,ASS,FOLDERZ,LTTRS,2002-12-31 16:47:00,2003-06-05 04:59:00,NOT COLLATERAL
+163069,15024.801,CCH,MNV,A,12256.52,477,20,CKA,FOLDERA,LTTRZ,2002-12-31 17:47:00,2003-06-05 06:59:00,NOT COLLATERAL
+163080,15027.912,CCI,OKW,A,12256.36,482,21,SWQ,FOLDERB,LTTRS,2002-12-31 18:47:00,2003-06-05 08:59:00,NOT COLLATERAL
+163091,15031.023,CCJ,ASS,A,12256.2,487,22,KUH,FOLDERC,LTTRS,2002-12-31 19:47:00,2003-06-05 10:59:00,NOT COLLATERAL
+163102,15034.134,DDD,CKA,A,12256.04,492,23,XCV,FOLDERD,LTTRS,2002-12-31 20:47:00,2003-06-05 12:59:00,NOT COLLATERAL
+163113,15037.245,DDA,SWQ,A,12255.88,497,24,ZAQ,FOLDERE,LTTRS,2002-12-31 21:47:00,2003-06-05 14:59:00,NOT COLLATERAL
+163124,15040.356,DAA,KUH,A,12255.72,502,25,MKO,FOLDERF,LTTRS,2002-12-31 22:47:00,2003-06-05 16:59:00,NOT COLLATERAL
+163135,15043.467,DBB,XCV,A,12255.56,507,26,VFR,FOLDERG,LTTRS,2002-12-31 23:47:00,2003-06-05 18:59:00,NOT COLLATERAL
+163146,15046.578,DCC,ZAQ,A,12255.4,507,27,YUJ,FOLDERH,LTTRS,2003-01-01 00:47:00,2003-06-05 20:59:00,COLLATERAL
+163157,15049.689,DEE,MKO,A,12255.24,507,28,AAA,FOLDERI,LTTRS,2003-01-01 01:47:00,2003-06-05 22:59:00,COLLATERAL
+163168,15052.8,DFF,VFR,A,12255.08,507,29,BBB,FOLDERJ,LTTRS,2003-01-01 02:47:00,2003-06-06 00:59:00,COLLATERAL
+163179,15055.911,DGG,YUJ,A,12254.92,507,30,CCC,FOLDERK,LTTRS,2003-01-01 03:47:00,2003-06-06 02:59:00,NOT COLLATERAL
+163190,15059.022,DHH,MED,A,12254.76,507,31,DDD,FOLDERL,LTTRS,2003-01-01 04:47:00,2003-06-06 04:59:00,NOT COLLATERAL
+163201,15062.133,AAA,SWE,A,12254.6,507,32,AAB,FOLDERM,LTTRS,2003-01-01 05:47:00,2003-06-06 06:59:00,NOT COLLATERAL
+163212,15065.244,BBB,CVF,A,12254.44,507,33,AAC,FOLDERN,LTTRS,2003-01-01 06:47:00,2003-06-06 08:59:00,NOT COLLATERAL
+163223,15068.355,CCC,DSFG,A,12254.28,507,34,AAD,FOLDERO,LTTRS,2003-01-01 07:47:00,2003-06-06 10:59:00,NOT COLLATERAL
+163234,15071.466,DDD,ASDRE,A,12254.12,507,35,AAE,FOLDERP,LTTRZ,2003-01-01 08:47:00,2003-06-06 12:59:00,NOT COLLATERAL
+163245,15074.577,AAB,HJKSS,A,12253.96,507,36,AAF,FOLDERQ,LTTRA,2003-01-01 09:47:00,2003-06-06 14:59:00,NOT COLLATERAL
+163256,15077.688,AAC,KHAA,A,12253.8,507,37,BBA,FOLDERR,LTTRB,2003-01-01 10:47:00,2003-06-06 16:59:00,NOT COLLATERAL
+163267,15080.799,AAD,KSLD,A,12253.64,507,38,BBC,FOLDERS,LTTRB,2003-01-01 11:47:00,2003-06-06 18:59:00,NOT COLLATERAL
+163278,15083.91,AAE,EKID,A,12253.48,507,39,BBE,FOLDERT,LTTRA,2003-01-01 12:47:00,2003-06-06 20:59:00,COLLATERAL
+163289,15087.021,AAF,VNCD,A,12253.32,507,40,BBF,FOLDERU,LTTRA,2003-01-01 13:47:00,2003-06-06 22:59:00,COLLATERAL
+163300,15090.132,BBA,DKD,A,12253.16,507,41,BBG,FOLDERV,LTTRS,2003-01-01 14:47:00,2003-06-07 00:59:00,COLLATERAL
+163311,15093.243,BBC,FKF,A,12253,507,42,BBH,FOLDERW,LTTRZ,2003-01-01 15:47:00,2003-06-07 02:59:00,NOT COLLATERAL
+163322,15096.354,BBE,LES,A,12252.84,507,43,CCA,FOLDERX,LTTRS,2003-01-01 16:47:00,2003-06-07 04:59:00,NOT COLLATERAL
+163333,15099.465,BBF,KLD,A,12252.68,507,44,CCB,FOLDERY,LTTRS,2003-01-01 17:47:00,2003-06-07 06:59:00,NOT COLLATERAL
+163344,15102.576,BBG,SKL,A,12252.52,507,45,CCD,FOLDERZ,LTTRS,2003-01-01 18:47:00,2003-06-07 08:59:00,NOT COLLATERAL
+163355,15105.687,BBH,SIW,A,12252.36,507,46,CCE,FOLDERZ,LTTRS,2003-01-01 19:47:00,2003-06-07 10:59:00,NOT COLLATERAL
+163366,15108.798,CCA,CKA,A,12252.2,507,47,CCF,FOLDERZ,LTTRS,2003-01-01 20:47:00,2003-06-07 12:59:00,NOT COLLATERAL
+163377,15111.909,CCB,LDE,A,12252.04,507,48,CCG,FOLDERZ,LTTRS,2003-01-01 21:47:00,2003-06-07 14:59:00,NOT COLLATERAL
+163388,15115.02,CCD,KFF,A,12251.88,507,49,CCH,FOLDERZ,LTTRS,2003-01-01 22:47:00,2003-06-07 16:59:00,NOT COLLATERAL
+163399,15118.131,CCE,EFH,A,12251.72,507,48,CCI,FOLDERZ,LTTRS,2003-01-01 23:47:00,2003-06-07 18:59:00,NOT COLLATERAL
+163410,15121.242,CCF,NGC,A,12251.56,507,47,CCJ,FOLDERZ,LTTRS,2003-01-02 00:47:00,2003-06-07 20:59:00,COLLATERAL
+163421,15124.353,CCG,DER,A,12251.4,507,46,DDD,FOLDERZ,LTTRS,2003-01-02 01:47:00,2003-06-07 22:59:00,COLLATERAL
+163432,15127.464,CCH,FVG,A,12251.24,507,45,DDA,FOLDERZ,LTTRS,2003-01-02 02:47:00,2003-06-08 00:59:00,COLLATERAL
+163443,15130.575,CCI,KWE,A,12251.08,507,44,DAA,FOLDERZ,LTTRS,2003-01-02 03:47:00,2003-06-08 02:59:00,NOT COLLATERAL
+163454,15133.686,CCJ,WER,A,12250.92,507,43,FKF,FOLDERZ,LTTRS,2003-01-02 04:47:00,2003-06-08 04:59:00,NOT COLLATERAL
+163465,15136.797,DDD,GFH,A,12250.76,507,42,LES,FOLDERZ,LTTRS,2003-01-02 05:47:00,2003-06-08 06:59:00,NOT COLLATERAL
+163476,15139.908,DDA,BGF,A,12250.6,507,41,KLD,FOLDERZ,LTTRZ,2003-01-02 06:47:00,2003-06-08 08:59:00,NOT COLLATERAL
+163487,15143.019,DAA,XCS,A,12250.44,507,40,SKL,FOLDERZ,LTTRA,2003-01-02 07:47:00,2003-06-08 10:59:00,NOT COLLATERAL
+163498,15146.13,DBB,JHK,A,12250.28,507,39,SIW,FOLDERX,LTTRB,2003-01-02 08:47:00,2003-06-08 12:59:00,NOT COLLATERAL
+163509,15149.241,DCC,SFD,A,12250.12,507,38,CKA,FOLDERX,LTTRB,2003-01-02 09:47:00,2003-06-08 14:59:00,NOT COLLATERAL
+163520,15152.352,DEE,WRE,A,12249.96,507,37,LDE,FOLDERX,LTTRA,2003-01-02 10:47:00,2003-06-08 16:59:00,NOT COLLATERAL
+163531,15155.463,DFF,HGV,A,12249.8,507,36,KFF,FOLDERX,LTTRA,2003-01-02 11:47:00,2003-06-08 18:59:00,NOT COLLATERAL
+163542,15158.574,DGG,KLS,A,12249.64,507,35,EFH,FOLDERX,LTTRS,2003-01-02 12:47:00,2003-06-08 20:59:00,COLLATERAL
+163553,15161.685,DHH,SDK,A,12249.48,507,34,NGC,FOLDERX,LTTRZ,2003-01-02 13:47:00,2003-06-08 22:59:00,COLLATERAL
+163564,15164.796,AAA,MNV,A,12249.32,507,33,DER,FOLDERX,LTTRS,2003-01-02 14:47:00,2003-06-09 00:59:00,COLLATERAL
+163575,15167.907,BBB,OKW,A,12249.16,507,32,FVG,FOLDERX,LTTRS,2003-01-02 15:47:00,2003-06-09 02:59:00,NOT COLLATERAL
+163586,15171.018,CCC,ASS,A,12249,507,31,KWE,FOLDERX,LTTRS,2003-01-02 16:47:00,2003-06-09 04:59:00,NOT COLLATERAL
+163597,15174.129,DDD,CKA,A,12248.84,507,30,WER,FOLDERX,LTTRS,2003-01-02 17:47:00,2003-06-09 06:59:00,NOT COLLATERAL
+163608,15177.24,AAB,SWQ,A,12248.68,507,29,GFH,FOLDERX,LTTRS,2003-01-02 18:47:00,2003-06-09 08:59:00,NOT COLLATERAL
+163619,15180.351,AAC,KUH,A,12248.52,507,28,BGF,FOLDERX,LTTRS,2003-01-02 19:47:00,2003-06-09 10:59:00,NOT COLLATERAL
+163630,15183.462,AAD,XCV,A,12248.36,507,27,XCS,FOLDERR,LTTRS,2003-01-02 20:47:00,2003-06-09 12:59:00,NOT COLLATERAL
+163641,15186.573,AAE,ZAQ,A,12248.2,507,26,JHK,FOLDERS,LTTRS,2003-01-02 21:47:00,2003-06-09 14:59:00,NOT COLLATERAL
+163652,15189.684,AAF,MKO,A,12248.04,507,25,SFD,FOLDERX,LTTRS,2003-01-02 22:47:00,2003-06-09 16:59:00,NOT COLLATERAL
+163663,15192.795,BBA,VFR,A,12247.88,507,24,WRE,FOLDERR,LTTRS,2003-01-02 23:47:00,2003-06-09 18:59:00,NOT COLLATERAL
+163674,15195.906,BBC,YUJ,A,12247.72,507,23,HGV,FOLDERS,LTTRS,2003-01-03 00:47:00,2003-06-09 20:59:00,COLLATERAL
+163685,15199.017,BBE,MED,A,12247.56,507,22,KLS,FOLDERX,LTTRS,2003-01-03 01:47:00,2003-06-09 22:59:00,COLLATERAL
+163696,15202.128,BBF,SWE,A,12247.4,507,21,SDK,FOLDERR,LTTRS,2003-01-03 02:47:00,2003-06-10 00:59:00,COLLATERAL
+163707,15205.239,BBG,CVF,A,12247.24,507,20,MNV,FOLDERS,LTTRS,2003-01-03 03:47:00,2003-06-10 02:59:00,NOT COLLATERAL
+163718,15208.35,BBH,DSFG,A,12247.08,507,19,OKW,FOLDERX,LTTRZ,2003-01-03 04:47:00,2003-06-10 04:59:00,NOT COLLATERAL
+163729,15211.461,CCA,ASDRE,A,12246.92,507,18,ASS,FOLDERR,LTTRA,2003-01-03 05:47:00,2003-06-10 06:59:00,NOT COLLATERAL
+163740,15214.572,CCB,HJKSS,A,12246.76,507,17,CKA,FOLDERS,LTTRB,2003-01-03 06:47:00,2003-06-10 08:59:00,NOT COLLATERAL
+163751,15217.683,CCD,KHAA,A,12246.6,507,16,SWQ,FOLDERX,LTTRB,2003-01-03 07:47:00,2003-06-10 10:59:00,NOT COLLATERAL
+163762,15220.794,CCE,KSLD,A,12246.44,507,15,KUH,FOLDERR,LTTRA,2003-01-03 08:47:00,2003-06-10 12:59:00,NOT COLLATERAL
+163773,15223.905,CCF,EKID,A,12246.28,507,14,XCV,FOLDERS,LTTRA,2003-01-03 09:47:00,2003-06-10 14:59:00,NOT COLLATERAL
+163784,15227.016,CCG,VNCD,A,12246.12,507,13,ZAQ,FOLDERX,LTTRS,2003-01-03 10:47:00,2003-06-10 16:59:00,NOT COLLATERAL
+163795,15230.127,CCH,DKD,A,12245.96,507,12,MKO,FOLDERD,LTTRZ,2003-01-03 11:47:00,2003-06-10 18:59:00,NOT COLLATERAL
+163806,15233.238,CCI,FKF,A,12245.8,507,11,VFR,FOLDERE,LTTRS,2003-01-03 12:47:00,2003-06-10 20:59:00,COLLATERAL
+163817,15236.349,CCJ,LES,A,12245.64,507,10,YUJ,FOLDERF,LTTRS,2003-01-03 13:47:00,2003-06-10 22:59:00,COLLATERAL
+163828,15239.46,DDD,KLD,A,12245.48,507,9,AAA,FOLDERG,LTTRS,2003-01-03 14:47:00,2003-06-11 00:59:00,COLLATERAL
+163839,15242.571,DDA,SKL,A,12245.32,507,8,BBB,FOLDERH,LTTRS,2003-01-03 15:47:00,2003-06-11 02:59:00,NOT COLLATERAL
+163850,15245.682,DAA,SIW,A,12245.16,507,7,CCC,FOLDERI,LTTRS,2003-01-03 16:47:00,2003-06-11 04:59:00,NOT COLLATERAL
+163861,15248.793,DBB,CKA,A,12245,507,6,DDD,FOLDERJ,LTTRS,2003-01-03 17:47:00,2003-06-11 06:59:00,NOT COLLATERAL
+163872,15251.904,DCC,LDE,A,12244.84,507,5,AAB,FOLDERK,LTTRS,2003-01-03 18:47:00,2003-06-11 08:59:00,NOT COLLATERAL
+163883,15255.015,DEE,KFF,A,12244.68,507,4,AAC,FOLDERL,LTTRS,2003-01-03 19:47:00,2003-06-11 10:59:00,NOT COLLATERAL
+163894,15258.126,DFF,EFH,A,12244.52,507,3,AAD,FOLDERM,LTTRS,2003-01-03 20:47:00,2003-06-11 12:59:00,NOT COLLATERAL
+163905,15261.237,DGG,NGC,A,12244.36,507,1,AAE,FOLDERN,LTTRS,2003-01-03 21:47:00,2003-06-11 14:59:00,NOT COLLATERAL
+163916,15264.348,DHH,DER,A,12244.2,507,2,AAF,FOLDERN,LTTRS,2003-01-03 22:47:00,2003-06-11 16:59:00,NOT COLLATERAL
+163927,15267.459,AAA,FVG,A,12244.04,507,3,BBA,FOLDERN,LTTRS,2003-01-03 23:47:00,2003-06-11 18:59:00,NOT COLLATERAL
+163938,15270.57,BBB,KWE,A,12243.88,507,4,BBC,FOLDERN,LTTRS,2003-01-04 00:47:00,2003-06-11 20:59:00,COLLATERAL
+163949,15273.681,CCC,WER,A,12243.72,507,5,BBE,FOLDERL,LTTRS,2003-01-04 01:47:00,2003-06-11 22:59:00,COLLATERAL
+163960,15276.792,DDD,GFH,A,12243.56,507,6,BBF,FOLDERL,LTTRZ,2003-01-04 02:47:00,2003-06-12 00:59:00,COLLATERAL
+163971,15279.903,AAB,BGF,A,12243.4,507,7,BBG,FOLDERL,LTTRA,2003-01-04 03:47:00,2003-06-12 02:59:00,NOT COLLATERAL
+163982,15283.014,AAC,XCS,A,12243.24,507,8,BBH,FOLDERL,LTTRB,2003-01-04 04:47:00,2003-06-12 04:59:00,NOT COLLATERAL
+163993,15286.125,AAD,JHK,A,12243.08,507,9,CCA,FOLDERL,LTTRB,2003-01-04 05:47:00,2003-06-12 06:59:00,NOT COLLATERAL
+164004,15289.236,AAE,SFD,A,12242.92,507,10,CCB,FOLDERA,LTTRA,2003-01-04 06:47:00,2003-06-12 08:59:00,NOT COLLATERAL
+164015,15292.347,AAF,WRE,A,12242.76,507,11,CCD,FOLDERB,LTTRA,2003-01-04 07:47:00,2003-06-12 10:59:00,NOT COLLATERAL
+164026,15295.458,BBA,HGV,A,12242.6,507,12,CCE,FOLDERC,LTTRS,2003-01-04 08:47:00,2003-06-12 12:59:00,NOT COLLATERAL
+164037,15298.569,BBC,KLS,A,12242.44,507,13,CCF,FOLDERD,LTTRZ,2003-01-04 09:47:00,2003-06-12 14:59:00,NOT COLLATERAL
+164048,15301.68,BBE,SDK,A,12242.28,507,14,CCG,FOLDERE,LTTRS,2003-01-04 10:47:00,2003-06-12 16:59:00,NOT COLLATERAL
+164059,15304.791,BBF,MNV,A,12242.12,507,15,CCH,FOLDERF,LTTRS,2003-01-04 11:47:00,2003-06-12 18:59:00,NOT COLLATERAL
+164070,15307.902,BBG,OKW,A,12241.96,507,16,CCI,FOLDERG,LTTRS,2003-01-04 12:47:00,2003-06-12 20:59:00,COLLATERAL
+164081,15311.013,BBH,ASS,A,12241.8,507,17,CCJ,FOLDERH,LTTRS,2003-01-04 13:47:00,2003-06-12 22:59:00,COLLATERAL
+164092,15314.124,CCA,CKA,A,12241.64,507,18,DDD,FOLDERI,LTTRS,2003-01-04 14:47:00,2003-06-13 00:59:00,COLLATERAL
+164103,15317.235,CCB,SWQ,A,12241.48,507,19,DDA,FOLDERJ,LTTRS,2003-01-04 15:47:00,2003-06-13 02:59:00,NOT COLLATERAL
+164114,15320.346,CCD,KUH,A,12241.32,507,20,DAA,FOLDERK,LTTRS,2003-01-04 16:47:00,2003-06-13 04:59:00,NOT COLLATERAL
+164125,15323.457,CCE,XCV,A,12241.16,507,21,FKF,FOLDERL,LTTRS,2003-01-04 17:47:00,2003-06-13 06:59:00,NOT COLLATERAL
+164136,15326.568,CCF,ZAQ,A,12241,507,22,LES,FOLDERM,LTTRS,2003-01-04 18:47:00,2003-06-13 08:59:00,NOT COLLATERAL
+164147,15329.679,CCG,MKO,A,12240.84,507,23,KLD,FOLDERN,LTTRS,2003-01-04 19:47:00,2003-06-13 10:59:00,NOT COLLATERAL
+164158,15332.79,CCH,VFR,A,12240.68,507,24,SKL,FOLDERO,LTTRS,2003-01-04 20:47:00,2003-06-13 12:59:00,NOT COLLATERAL
+164169,15335.901,CCI,YUJ,A,12240.52,507,25,SIW,FOLDERP,LTTRS,2003-01-04 21:47:00,2003-06-13 14:59:00,NOT COLLATERAL
+164180,15339.012,CCJ,MED,A,12240.36,507,26,CKA,FOLDERQ,LTTRS,2003-01-04 22:47:00,2003-06-13 16:59:00,NOT COLLATERAL
+164191,15342.123,DDD,SWE,A,12240.2,507,27,LDE,FOLDERR,LTTRS,2003-01-04 23:47:00,2003-06-13 18:59:00,NOT COLLATERAL
+164202,15345.234,DDA,CVF,A,12240.04,507,28,KFF,FOLDERS,LTTRZ,2003-01-05 00:47:00,2003-06-13 20:59:00,COLLATERAL
+164213,15348.345,DAA,DSFG,A,12239.88,507,29,EFH,FOLDERT,LTTRA,2003-01-05 01:47:00,2003-06-13 22:59:00,COLLATERAL
+164224,15351.456,DBB,ASDRE,A,12239.72,507,30,NGC,FOLDERU,LTTRB,2003-01-05 02:47:00,2003-06-14 00:59:00,COLLATERAL
+164235,15354.567,DCC,HJKSS,A,12239.56,507,31,DER,FOLDERV,LTTRB,2003-01-05 03:47:00,2003-06-14 02:59:00,NOT COLLATERAL
+164246,15357.678,DEE,KHAA,A,12239.4,507,32,FVG,FOLDERW,LTTRA,2003-01-05 04:47:00,2003-06-14 04:59:00,NOT COLLATERAL
+164257,15360.789,DFF,KSLD,A,12239.24,507,33,KWE,FOLDERX,LTTRA,2003-01-05 05:47:00,2003-06-14 06:59:00,NOT COLLATERAL
+164268,15363.9,DGG,EKID,A,12239.08,507,34,WER,FOLDERY,LTTRS,2003-01-05 06:47:00,2003-06-14 08:59:00,NOT COLLATERAL
+164279,15367.011,DHH,VNCD,A,12238.92,507,35,GFH,FOLDERZ,LTTRZ,2003-01-05 07:47:00,2003-06-14 10:59:00,NOT COLLATERAL
+164290,15370.122,AAA,DKD,A,12238.76,507,36,BGF,FOLDERA,LTTRS,2003-01-05 08:47:00,2003-06-14 12:59:00,NOT COLLATERAL
+164301,15373.233,BBB,FKF,A,12238.6,507,37,XCS,FOLDERB,LTTRS,2003-01-05 09:47:00,2003-06-14 14:59:00,NOT COLLATERAL
+164312,15376.344,CCC,LES,A,12238.44,507,38,JHK,FOLDERC,LTTRS,2003-01-05 10:47:00,2003-06-14 16:59:00,NOT COLLATERAL
+164323,15379.455,DDD,KLD,A,12238.28,507,39,SFD,FOLDERD,LTTRS,2003-01-05 11:47:00,2003-06-14 18:59:00,NOT COLLATERAL
+164334,15382.566,AAB,SKL,A,12238.12,507,40,WRE,FOLDERE,LTTRS,2003-01-05 12:47:00,2003-06-14 20:59:00,COLLATERAL
+164345,15385.677,AAC,SIW,A,12237.96,507,41,HGV,FOLDERF,LTTRS,2003-01-05 13:47:00,2003-06-14 22:59:00,COLLATERAL
+164356,15388.788,AAD,CKA,A,12237.8,507,42,KLS,FOLDERG,LTTRS,2003-01-05 14:47:00,2003-06-15 00:59:00,COLLATERAL
+164367,15391.899,AAE,LDE,A,12237.64,507,43,SDK,FOLDERH,LTTRS,2003-01-05 15:47:00,2003-06-15 02:59:00,NOT COLLATERAL
+164378,15395.01,AAF,KFF,A,12237.48,507,44,MNV,FOLDERI,LTTRS,2003-01-05 16:47:00,2003-06-15 04:59:00,NOT COLLATERAL
+164389,15398.121,BBA,EFH,A,12237.32,507,45,OKW,FOLDERJ,LTTRS,2003-01-05 17:47:00,2003-06-15 06:59:00,NOT COLLATERAL
+164400,15401.232,BBC,NGC,A,12237.16,507,46,ASS,FOLDERK,LTTRS,2003-01-05 18:47:00,2003-06-15 08:59:00,NOT COLLATERAL
+164411,15404.343,BBE,DER,A,12237,507,47,CKA,FOLDERL,LTTRS,2003-01-05 19:47:00,2003-06-15 10:59:00,NOT COLLATERAL
+164422,15407.454,BBF,FVG,A,12236.84,507,48,SWQ,FOLDERM,LTTRS,2003-01-05 20:47:00,2003-06-15 12:59:00,NOT COLLATERAL
+164433,15410.565,BBG,KWE,A,12236.68,507,49,KUH,FOLDERN,LTTRS,2003-01-05 21:47:00,2003-06-15 14:59:00,NOT COLLATERAL
+164444,15413.676,BBH,WER,A,12236.52,507,48,XCV,FOLDERO,LTTRZ,2003-01-05 22:46:00,2003-06-15 16:59:00,NOT COLLATERAL
+164455,15416.787,CCA,GFH,A,12236.36,507,47,ZAQ,FOLDERP,LTTRA,2003-01-05 23:46:00,2003-06-15 18:59:00,NOT COLLATERAL
+164466,15419.898,CCB,BGF,A,12236.2,507,46,MKO,FOLDERQ,LTTRB,2003-01-06 00:46:00,2003-06-15 20:59:00,COLLATERAL
+164477,15423.009,CCD,XCS,A,12236.04,507,45,VFR,FOLDERR,LTTRB,2003-01-06 01:46:00,2003-06-15 22:59:00,COLLATERAL
+164488,15426.12,CCE,JHK,A,12235.88,507,44,YUJ,FOLDERS,LTTRA,2003-01-06 02:46:00,2003-06-16 00:59:00,COLLATERAL
+164499,15429.231,CCF,SFD,A,12235.72,507,43,AAA,FOLDERT,LTTRA,2003-01-06 03:46:00,2003-06-16 02:59:00,NOT COLLATERAL
+164510,15432.342,CCG,WRE,A,12235.56,507,42,BBB,FOLDERU,LTTRS,2003-01-06 04:46:00,2003-06-16 04:59:00,NOT COLLATERAL
+164521,15435.453,CCH,HGV,A,12235.4,507,41,CCC,FOLDERV,LTTRZ,2003-01-06 05:46:00,2003-06-16 06:59:00,NOT COLLATERAL
+164532,15438.564,CCI,KLS,A,12235.24,507,40,DDD,FOLDERW,LTTRS,2003-01-06 06:46:00,2003-06-16 08:59:00,NOT COLLATERAL
+164543,15441.675,CCJ,SDK,A,12235.08,507,39,AAB,FOLDERX,LTTRS,2003-01-06 07:46:00,2003-06-16 10:59:00,NOT COLLATERAL
+164554,15444.786,DDD,MNV,A,12234.92,507,38,AAC,FOLDERY,LTTRS,2003-01-06 08:46:00,2003-06-16 12:59:00,NOT COLLATERAL
+164565,15447.897,DDA,OKW,A,12234.76,507,37,AAD,FOLDERZ,LTTRS,2003-01-06 09:46:00,2003-06-16 14:59:00,NOT COLLATERAL
+164576,15451.008,DAA,ASS,A,12234.6,507,36,AAE,FOLDERZ,LTTRS,2003-01-06 10:46:00,2003-06-16 16:59:00,NOT COLLATERAL
+164587,15454.119,DBB,CKA,A,12234.44,507,35,AAF,FOLDERZ,LTTRS,2003-01-06 11:46:00,2003-06-16 18:59:00,NOT COLLATERAL
+164598,15457.23,DCC,SWQ,A,12234.28,507,34,BBA,FOLDERZ,LTTRS,2003-01-06 12:46:00,2003-06-16 20:59:00,COLLATERAL
+164609,15460.341,DEE,KUH,A,12234.12,507,33,BBC,FOLDERZ,LTTRS,2003-01-06 13:46:00,2003-06-16 22:59:00,COLLATERAL
+164620,15463.452,DFF,XCV,A,12233.96,507,32,BBE,FOLDERZ,LTTRS,2003-01-06 14:46:00,2003-06-17 00:59:00,COLLATERAL
+164631,15466.563,DGG,ZAQ,A,12233.8,507,31,BBF,FOLDERZ,LTTRS,2003-01-06 15:46:00,2003-06-17 02:59:00,NOT COLLATERAL
+164642,15469.674,DHH,MKO,A,12233.64,507,30,BBG,FOLDERZ,LTTRS,2003-01-06 16:46:00,2003-06-17 04:59:00,NOT COLLATERAL
+164653,15472.785,AAA,VFR,A,12233.48,507,29,BBH,FOLDERZ,LTTRS,2003-01-06 17:46:00,2003-06-17 06:59:00,NOT COLLATERAL
+164664,15475.896,BBB,YUJ,A,12233.32,507,28,CCA,FOLDERZ,LTTRS,2003-01-06 18:46:00,2003-06-17 08:59:00,NOT COLLATERAL
+164675,15479.007,CCC,MED,A,12233.16,507,27,CCB,FOLDERZ,LTTRS,2003-01-06 19:46:00,2003-06-17 10:59:00,NOT COLLATERAL
+164686,15482.118,DDD,SWE,A,12233,507,26,CCD,FOLDERZ,LTTRZ,2003-01-06 20:46:00,2003-06-17 12:59:00,NOT COLLATERAL
+164697,15485.229,AAB,CVF,A,12232.84,507,25,CCE,FOLDERZ,LTTRA,2003-01-06 21:46:00,2003-06-17 14:59:00,NOT COLLATERAL
+164708,15488.34,AAC,DSFG,A,12232.68,507,24,CCF,FOLDERZ,LTTRB,2003-01-06 22:46:00,2003-06-17 16:59:00,NOT COLLATERAL
+164719,15491.451,AAD,ASDRE,A,12232.52,507,23,CCG,FOLDERX,LTTRB,2003-01-06 23:46:00,2003-06-17 18:59:00,NOT COLLATERAL
+164730,15494.562,AAE,HJKSS,A,12232.36,507,22,CCH,FOLDERX,LTTRA,2003-01-07 00:46:00,2003-06-17 20:59:00,COLLATERAL
+164741,15497.673,AAF,KHAA,A,12232.2,507,21,CCI,FOLDERX,LTTRA,2003-01-07 01:46:00,2003-06-17 22:59:00,COLLATERAL
+164752,15500.784,BBA,KSLD,A,12232.04,507,20,CCJ,FOLDERX,LTTRS,2003-01-07 02:46:00,2003-06-18 00:59:00,COLLATERAL
+164763,15503.895,BBC,EKID,A,12231.88,507,19,DDD,FOLDERX,LTTRZ,2003-01-07 03:46:00,2003-06-18 02:59:00,NOT COLLATERAL
+164774,15507.006,BBE,VNCD,A,12231.72,507,18,DDA,FOLDERX,LTTRS,2003-01-07 04:46:00,2003-06-18 04:59:00,NOT COLLATERAL
+164785,15510.117,BBF,DKD,A,12231.56,507,17,DAA,FOLDERX,LTTRS,2003-01-07 05:46:00,2003-06-18 06:59:00,NOT COLLATERAL
+164796,15513.228,BBG,FKF,A,12231.4,507,16,FKF,FOLDERX,LTTRS,2003-01-07 06:46:00,2003-06-18 08:59:00,NOT COLLATERAL
+164807,15516.339,BBH,LES,A,12231.24,507,15,LES,FOLDERX,LTTRS,2003-01-07 07:46:00,2003-06-18 10:59:00,NOT COLLATERAL
+164818,15519.45,CCA,KLD,A,12231.08,507,14,KLD,FOLDERX,LTTRS,2003-01-07 08:46:00,2003-06-18 12:59:00,NOT COLLATERAL
+164829,15522.561,CCB,SKL,A,12230.92,507,13,SKL,FOLDERX,LTTRS,2003-01-07 09:46:00,2003-06-18 14:59:00,NOT COLLATERAL
+164840,15525.672,CCD,SIW,A,12230.76,507,12,SIW,FOLDERX,LTTRS,2003-01-07 10:46:00,2003-06-18 16:59:00,NOT COLLATERAL
+164851,15528.783,CCE,CKA,A,12230.6,507,11,CKA,FOLDERR,LTTRS,2003-01-07 11:46:00,2003-06-18 18:59:00,NOT COLLATERAL
+164862,15531.894,CCF,LDE,A,12230.44,507,10,LDE,FOLDERS,LTTRS,2003-01-07 12:46:00,2003-06-18 20:59:00,COLLATERAL
+164873,15535.005,CCG,KFF,A,12230.28,507,9,KFF,FOLDERX,LTTRS,2003-01-07 13:46:00,2003-06-18 22:59:00,COLLATERAL
+164884,15538.116,CCH,EFH,A,12230.12,507,8,EFH,FOLDERR,LTTRS,2003-01-07 14:46:00,2003-06-19 00:59:00,COLLATERAL
+164895,15541.227,CCI,NGC,A,12229.96,507,7,NGC,FOLDERS,LTTRS,2003-01-07 15:46:00,2003-06-19 02:59:00,NOT COLLATERAL
+164906,15544.338,CCJ,DER,A,12229.8,507,6,DER,FOLDERX,LTTRS,2003-01-07 16:46:00,2003-06-19 04:59:00,NULL
+164917,15547.449,DDD,FVG,A,12229.64,507,5,FVG,FOLDERR,LTTRS,2003-01-07 17:46:00,2003-06-19 06:59:00,NULL
+164928,15550.56,DDA,KWE,A,12229.48,507,4,KWE,FOLDERS,LTTRZ,2003-01-07 18:46:00,2003-06-19 08:59:00,NULL
+164939,15553.671,DAA,WER,A,12229.32,507,3,WER,FOLDERX,LTTRA,2003-01-07 19:46:00,2003-06-19 10:59:00,NULL
+164950,15556.782,DBB,GFH,A,12229.16,507,1,GFH,FOLDERR,LTTRB,2003-01-07 20:46:00,2003-06-19 12:59:00,NULL
+164961,15559.893,DCC,BGF,A,12229,507,2,BGF,FOLDERS,LTTRB,2003-01-07 21:46:00,2003-06-19 14:59:00,NULL
+164972,15563.004,DEE,XCS,A,12228.84,507,3,XCS,FOLDERX,LTTRA,2003-01-07 22:46:00,2003-06-19 16:59:00,NOT COLLATERAL
+164983,15566.115,DFF,JHK,A,12228.68,507,4,JHK,FOLDERR,LTTRA,2003-01-07 23:46:00,2003-06-19 18:59:00,NOT COLLATERAL
+164994,15569.226,DGG,SFD,A,12228.52,507,5,SFD,FOLDERS,LTTRS,2003-01-08 00:46:00,2003-06-19 20:59:00,COLLATERAL
+165005,15572.337,DHH,WRE,A,12228.36,507,6,WRE,FOLDERX,LTTRZ,2003-01-08 01:46:00,2003-06-19 22:59:00,COLLATERAL
+165016,15575.448,AAA,HGV,A,12228.2,507,7,HGV,FOLDERD,LTTRS,2003-01-08 02:46:00,2003-06-20 00:59:00,COLLATERAL
+165027,15578.559,BBB,KLS,A,12228.04,507,8,KLS,FOLDERE,LTTRS,2003-01-08 03:46:00,2003-06-20 02:59:00,NOT COLLATERAL
+165038,15581.67,CCC,SDK,A,12227.88,507,9,SDK,FOLDERF,LTTRS,2003-01-08 04:46:00,2003-06-20 04:59:00,NULL
+165049,15584.781,DDD,MNV,A,12227.72,507,10,MNV,FOLDERG,LTTRS,2003-01-08 05:46:00,2003-06-20 06:59:00,NULL
+165060,15587.892,AAB,OKW,A,12227.56,507,11,OKW,FOLDERH,LTTRS,2003-01-08 06:46:00,2003-06-20 08:59:00,NULL
+165071,15591.003,AAC,ASS,A,12227.4,507,12,ASS,FOLDERI,LTTRS,2003-01-08 07:46:00,2003-06-20 10:59:00,NULL
+165082,15594.114,AAD,CKA,A,12227.24,507,13,CKA,FOLDERJ,LTTRS,2003-01-08 08:46:00,2003-06-20 12:59:00,NULL
+165093,15597.225,AAE,SWQ,A,12227.08,507,14,SWQ,FOLDERK,LTTRS,2003-01-08 09:46:00,2003-06-20 14:59:00,NOT COLLATERAL
+165104,15600.336,AAF,KUH,A,12226.92,507,15,KUH,FOLDERL,LTTRS,2003-01-08 10:46:00,2003-06-20 16:59:00,NOT COLLATERAL
+165115,15603.447,BBA,XCV,A,12226.76,507,16,XCV,FOLDERM,LTTRS,2003-01-08 11:46:00,2003-06-20 18:59:00,NOT COLLATERAL
+165126,15606.558,BBC,ZAQ,A,12226.6,507,17,ZAQ,FOLDERN,LTTRS,2003-01-08 12:46:00,2003-06-20 20:59:00,COLLATERAL
+165137,15609.669,BBE,MKO,A,12226.44,507,18,MKO,FOLDERN,LTTRS,2003-01-08 13:46:00,2003-06-20 22:59:00,COLLATERAL
+165148,15612.78,BBF,VFR,A,12226.28,507,19,VFR,FOLDERN,LTTRS,2003-01-08 14:46:00,2003-06-21 00:59:00,COLLATERAL
+165159,15615.891,BBG,YUJ,A,12226.12,507,20,YUJ,FOLDERN,LTTRS,2003-01-08 15:46:00,2003-06-21 02:59:00,NULL
+165170,15619.002,BBH,MED,A,12225.96,507,21,AAA,FOLDERL,LTTRZ,2003-01-08 16:46:00,2003-06-21 04:59:00,NULL
+165181,15622.113,CCA,SWE,A,12225.8,507,22,BBB,FOLDERL,LTTRA,2003-01-08 17:46:00,2003-06-21 06:59:00,NULL
+165192,15625.224,CCB,CVF,A,12225.64,507,23,CCC,FOLDERL,LTTRB,2003-01-08 18:46:00,2003-06-21 08:59:00,NULL
+165203,15628.335,CCD,DSFG,A,12225.48,507,24,DDD,FOLDERL,LTTRB,2003-01-08 19:46:00,2003-06-21 10:59:00,NULL
+165214,15631.446,CCE,ASDRE,A,12225.32,507,25,AAB,FOLDERL,LTTRA,2003-01-08 20:46:00,2003-06-21 12:59:00,NOT COLLATERAL
+165225,15634.557,CCF,HJKSS,A,12225.16,507,26,AAC,FOLDERA,LTTRA,2003-01-08 21:46:00,2003-06-21 14:59:00,NOT COLLATERAL
+165236,15637.668,CCG,KHAA,A,12225,507,27,AAD,FOLDERB,LTTRS,2003-01-08 22:46:00,2003-06-21 16:59:00,NOT COLLATERAL
+165247,15640.779,CCH,KSLD,A,12224.84,507,28,AAE,FOLDERC,LTTRZ,2003-01-08 23:46:00,2003-06-21 18:59:00,NOT COLLATERAL
+165258,15643.89,CCI,EKID,A,12224.68,507,29,AAF,FOLDERD,LTTRS,2003-01-09 00:46:00,2003-06-21 20:59:00,COLLATERAL
+165269,15647.001,CCJ,VNCD,A,12224.52,507,30,BBA,FOLDERE,LTTRS,2003-01-09 01:46:00,2003-06-21 22:59:00,COLLATERAL
+165280,15650.112,DDD,DKD,A,12224.36,507,31,BBC,FOLDERF,LTTRS,2003-01-09 02:46:00,2003-06-22 00:59:00,COLLATERAL
+165291,15653.223,DDA,FKF,A,12224.2,507,32,BBE,FOLDERG,LTTRS,2003-01-09 03:46:00,2003-06-22 02:59:00,NOT COLLATERAL
+165302,15656.334,DAA,LES,A,12224.04,507,33,BBF,FOLDERH,LTTRS,2003-01-09 04:46:00,2003-06-22 04:59:00,NOT COLLATERAL
+165313,15659.445,DBB,KLD,A,12223.88,507,34,BBG,FOLDERI,LTTRS,2003-01-09 05:46:00,2003-06-22 06:59:00,NOT COLLATERAL
+165324,15662.556,DCC,SKL,A,12223.72,507,35,BBH,FOLDERJ,LTTRS,2003-01-09 06:46:00,2003-06-22 08:59:00,NOT COLLATERAL
+165335,15665.667,DEE,SIW,A,12223.56,507,36,CCA,FOLDERK,LTTRS,2003-01-09 07:46:00,2003-06-22 10:59:00,NOT COLLATERAL
+165346,15668.778,DFF,CKA,A,12223.4,507,37,CCB,FOLDERL,LTTRS,2003-01-09 08:46:00,2003-06-22 12:59:00,NOT COLLATERAL
+165357,15671.889,DGG,LDE,A,12223.24,507,38,CCD,FOLDERM,LTTRS,2003-01-09 09:46:00,2003-06-22 14:59:00,NOT COLLATERAL
+165368,15675,DHH,KFF,A,12223.08,507,39,CCE,FOLDERN,LTTRS,2003-01-09 10:46:00,2003-06-22 16:59:00,NOT COLLATERAL
+165379,15678.111,AAA,EFH,A,12222.92,507,40,CCF,FOLDERO,LTTRS,2003-01-09 11:46:00,2003-06-22 18:59:00,NOT COLLATERAL
+165390,15681.222,BBB,NGC,A,12222.76,507,41,CCG,FOLDERP,LTTRS,2003-01-09 12:46:00,2003-06-22 20:59:00,COLLATERAL
+165401,15684.333,CCC,DER,A,12222.6,507,42,CCH,FOLDERQ,LTTRS,2003-01-09 13:46:00,2003-06-22 22:59:00,COLLATERAL
+165412,15687.444,DDD,FVG,A,12222.44,507,43,CCI,FOLDERR,LTTRZ,2003-01-09 14:46:00,2003-06-23 00:59:00,COLLATERAL
+165423,15690.555,AAB,KWE,A,12222.28,507,44,CCJ,FOLDERS,LTTRA,2003-01-09 15:46:00,2003-06-23 02:59:00,NOT COLLATERAL
+165434,15693.666,AAC,WER,A,12222.12,507,45,DDD,FOLDERT,LTTRB,2003-01-09 16:46:00,2003-06-23 04:59:00,NOT COLLATERAL
+165445,15696.777,AAD,GFH,A,12221.96,507,46,DDA,FOLDERU,LTTRB,2003-01-09 17:46:00,2003-06-23 06:59:00,NOT COLLATERAL
+165456,15699.888,AAE,BGF,A,12221.8,507,47,DAA,FOLDERV,LTTRA,2003-01-09 18:46:00,2003-06-23 08:59:00,NOT COLLATERAL
+165467,15702.999,AAF,XCS,A,12221.64,507,48,FKF,FOLDERW,LTTRA,2003-01-09 19:46:00,2003-06-23 10:59:00,NOT COLLATERAL
+165478,15706.11,BBA,JHK,A,12221.48,507,49,LES,FOLDERX,LTTRS,2003-01-09 20:46:00,2003-06-23 12:59:00,NOT COLLATERAL
+165489,15709.221,BBC,SFD,A,12221.32,507,48,KLD,FOLDERY,LTTRZ,2003-01-09 21:46:00,2003-06-23 14:59:00,NOT COLLATERAL
+165500,15712.332,BBE,WRE,A,12221.16,507,47,SKL,FOLDERZ,LTTRS,2003-01-09 22:46:00,2003-06-23 16:59:00,NOT COLLATERAL
+165511,15715.443,BBF,HGV,A,12221,507,46,SIW,FOLDERA,LTTRS,2003-01-09 23:46:00,2003-06-23 18:59:00,NOT COLLATERAL
+165522,15718.554,BBG,KLS,A,12220.84,507,45,CKA,FOLDERB,LTTRS,2003-01-10 00:46:00,2003-06-23 20:58:00,COLLATERAL
+165533,15721.665,BBH,SDK,A,12220.68,507,44,LDE,FOLDERC,LTTRS,2003-01-10 01:46:00,2003-06-23 22:58:00,COLLATERAL
+165544,15724.776,CCA,MNV,A,12220.52,507,43,KFF,FOLDERD,LTTRS,2003-01-10 02:46:00,2003-06-24 00:58:00,COLLATERAL
+165555,15727.887,CCB,OKW,A,12220.36,507,42,EFH,FOLDERE,LTTRS,2003-01-10 03:46:00,2003-06-24 02:58:00,NOT COLLATERAL
+165566,15730.998,CCD,ASS,A,12220.2,507,41,NGC,FOLDERF,LTTRS,2003-01-10 04:46:00,2003-06-24 04:58:00,NOT COLLATERAL
+165577,15734.109,CCE,CKA,A,12220.04,507,40,DER,FOLDERG,LTTRS,2003-01-10 05:46:00,2003-06-24 06:58:00,NOT COLLATERAL
+165588,15737.22,CCF,SWQ,A,12219.88,507,39,FVG,FOLDERH,LTTRS,2003-01-10 06:46:00,2003-06-24 08:58:00,NOT COLLATERAL
+165599,15740.331,CCG,KUH,A,12219.72,507,38,KWE,FOLDERI,LTTRS,2003-01-10 07:46:00,2003-06-24 10:58:00,NOT COLLATERAL
+165610,15743.442,CCH,XCV,A,12219.56,507,37,WER,FOLDERJ,LTTRS,2003-01-10 08:46:00,2003-06-24 12:58:00,NOT COLLATERAL
+165621,15746.553,CCI,ZAQ,A,12219.4,507,36,GFH,FOLDERK,LTTRS,2003-01-10 09:46:00,2003-06-24 14:58:00,NOT COLLATERAL
+165632,15749.664,CCJ,MKO,A,12219.24,507,35,BGF,FOLDERL,LTTRS,2003-01-10 10:46:00,2003-06-24 16:58:00,NOT COLLATERAL
+165643,15752.775,DDD,VFR,A,12219.08,507,34,XCS,FOLDERM,LTTRS,2003-01-10 11:46:00,2003-06-24 18:58:00,NOT COLLATERAL
+165654,15755.886,DDA,YUJ,A,12218.92,507,33,JHK,FOLDERN,LTTRZ,2003-01-10 12:46:00,2003-06-24 20:58:00,COLLATERAL
+165665,15758.997,DAA,MED,A,12218.76,507,32,SFD,FOLDERO,LTTRA,2003-01-10 13:46:00,2003-06-24 22:58:00,COLLATERAL
+165676,15762.108,DBB,SWE,A,12218.6,507,31,WRE,FOLDERP,LTTRB,2003-01-10 14:46:00,2003-06-25 00:58:00,COLLATERAL
+165687,15765.219,DCC,CVF,A,12218.44,507,30,HGV,FOLDERQ,LTTRB,2003-01-10 15:46:00,2003-06-25 02:58:00,NOT COLLATERAL
+165698,15768.33,DEE,DSFG,A,12218.28,507,29,KLS,FOLDERR,LTTRA,2003-01-10 16:46:00,2003-06-25 04:58:00,NOT COLLATERAL
+165709,15771.441,DFF,ASDRE,A,12218.12,507,28,SDK,FOLDERS,LTTRA,2003-01-10 17:46:00,2003-06-25 06:58:00,NOT COLLATERAL
+165720,15774.552,DGG,HJKSS,A,12217.96,507,27,MNV,FOLDERT,LTTRS,2003-01-10 18:46:00,2003-06-25 08:58:00,NOT COLLATERAL
+165731,15777.663,DHH,KHAA,A,12217.8,507,26,OKW,FOLDERU,LTTRZ,2003-01-10 19:46:00,2003-06-25 10:58:00,NULL
+165742,15780.774,AAA,KSLD,A,12217.64,507,25,ASS,FOLDERV,LTTRS,2003-01-10 20:46:00,2003-06-25 12:58:00,NULL
+165753,15783.885,BBB,EKID,A,12217.48,507,24,CKA,FOLDERW,LTTRS,2003-01-10 21:46:00,2003-06-25 14:58:00,NULL
+165764,15786.996,CCC,VNCD,A,12217.32,507,23,SWQ,FOLDERX,LTTRS,2003-01-10 22:46:00,2003-06-25 16:58:00,NULL
+165775,15790.107,DDD,DKD,A,12217.16,507,22,KUH,FOLDERY,LTTRS,2003-01-10 23:46:00,2003-06-25 18:58:00,NULL
+165786,15793.218,AAB,FKF,A,12217,507,21,XCV,FOLDERZ,LTTRS,2003-01-11 00:46:00,2003-06-25 20:58:00,COLLATERAL
+165797,15796.329,AAC,LES,A,12216.84,507,20,ZAQ,FOLDERZ,LTTRS,2003-01-11 01:46:00,2003-06-25 22:58:00,COLLATERAL
+165808,15799.44,AAD,KLD,A,12216.68,507,19,MKO,FOLDERZ,LTTRS,2003-01-11 02:46:00,2003-06-26 00:58:00,COLLATERAL
+165819,15802.551,AAE,SKL,A,12216.52,507,18,VFR,FOLDERZ,LTTRS,2003-01-11 03:46:00,2003-06-26 02:58:00,NOT COLLATERAL
+165830,15805.662,AAF,SIW,A,12216.36,507,17,YUJ,FOLDERZ,LTTRS,2003-01-11 04:46:00,2003-06-26 04:58:00,NULL
+165841,15808.773,BBA,CKA,A,12216.2,507,16,AAA,FOLDERZ,LTTRS,2003-01-11 05:46:00,2003-06-26 06:58:00,NULL
+165852,15811.884,BBC,LDE,A,12216.04,507,15,BBB,FOLDERZ,LTTRS,2003-01-11 06:46:00,2003-06-26 08:58:00,NULL
+165863,15814.995,BBE,KFF,A,12215.88,507,14,CCC,FOLDERZ,LTTRS,2003-01-11 07:46:00,2003-06-26 10:58:00,NULL
+165874,15818.106,BBF,EFH,A,12215.72,507,13,DDD,FOLDERZ,LTTRS,2003-01-11 08:46:00,2003-06-26 12:58:00,NULL
+165885,15821.217,BBG,NGC,A,12215.56,507,12,AAB,FOLDERZ,LTTRS,2003-01-11 09:46:00,2003-06-26 14:58:00,NULL
+165896,15824.328,BBH,DER,A,12215.4,507,11,AAC,FOLDERZ,LTTRZ,2003-01-11 10:46:00,2003-06-26 16:58:00,NULL
+165907,15827.439,CCA,FVG,A,12215.24,507,10,AAD,FOLDERZ,LTTRA,2003-01-11 11:46:00,2003-06-26 18:58:00,NULL
+165918,15830.55,CCB,KWE,A,12215.08,507,9,AAE,FOLDERZ,LTTRB,2003-01-11 12:46:00,2003-06-26 20:58:00,COLLATERAL
+165929,15833.661,CCD,WER,A,12214.92,507,8,AAF,FOLDERZ,LTTRB,2003-01-11 13:46:00,2003-06-26 22:58:00,COLLATERAL
+165940,15836.772,CCE,GFH,A,12214.76,507,7,BBA,FOLDERX,LTTRA,2003-01-11 14:46:00,2003-06-27 00:58:00,COLLATERAL
+165951,15839.883,CCF,BGF,A,12214.6,507,6,BBC,FOLDERX,LTTRA,2003-01-11 15:46:00,2003-06-27 02:58:00,NOT COLLATERAL
+165962,15842.994,CCG,XCS,A,12214.44,507,5,BBE,FOLDERX,LTTRS,2003-01-11 16:46:00,2003-06-27 04:58:00,NOT COLLATERAL
+165973,15846.105,CCH,JHK,A,12214.28,507,4,BBF,FOLDERX,LTTRZ,2003-01-11 17:46:00,2003-06-27 06:58:00,NULL
+165984,15849.216,CCI,SFD,A,12214.12,507,3,BBG,FOLDERX,LTTRS,2003-01-11 18:46:00,2003-06-27 08:58:00,NULL
+165995,15852.327,CCJ,WRE,A,12213.96,507,1,BBH,FOLDERX,LTTRS,2003-01-11 19:46:00,2003-06-27 10:58:00,NULL
+166006,15855.438,DDD,HGV,A,12213.8,507,2,CCA,FOLDERX,LTTRS,2003-01-11 20:46:00,2003-06-27 12:58:00,NULL
+166017,15858.549,DDA,KLS,A,12213.64,507,3,CCB,FOLDERX,LTTRS,2003-01-11 21:46:00,2003-06-27 14:58:00,NULL
+166028,15861.66,DAA,SDK,A,12213.48,507,4,CCD,FOLDERX,LTTRS,2003-01-11 22:46:00,2003-06-27 16:58:00,NOT COLLATERAL
+166039,15864.771,DBB,MNV,A,12213.32,507,5,CCE,FOLDERX,LTTRS,2003-01-11 23:46:00,2003-06-27 18:58:00,NOT COLLATERAL
+166050,15867.882,DCC,OKW,A,12213.16,507,6,CCF,FOLDERX,LTTRS,2003-01-12 00:46:00,2003-06-27 20:58:00,COLLATERAL
+166061,15870.993,DEE,ASS,A,12213,507,7,CCG,FOLDERX,LTTRS,2003-01-12 01:46:00,2003-06-27 22:58:00,COLLATERAL
+166072,15874.104,DFF,CKA,A,12212.84,507,8,CCH,FOLDERR,LTTRS,2003-01-12 02:46:00,2003-06-28 00:58:00,COLLATERAL
+166083,15877.215,DGG,SWQ,A,12212.68,507,9,CCI,FOLDERS,LTTRS,2003-01-12 03:46:00,2003-06-28 02:58:00,NOT COLLATERAL
+166094,15880.326,DHH,KUH,A,12212.52,507,10,CCJ,FOLDERX,LTTRS,2003-01-12 04:46:00,2003-06-28 04:58:00,NOT COLLATERAL
+166105,15883.437,AAA,XCV,A,12212.36,507,11,DDD,FOLDERR,LTTRS,2003-01-12 05:46:00,2003-06-28 06:58:00,NOT COLLATERAL
+166116,15886.548,BBB,ZAQ,A,12212.2,507,12,DDA,FOLDERS,LTTRS,2003-01-12 06:46:00,2003-06-28 08:58:00,NOT COLLATERAL
+166127,15889.659,CCC,MKO,A,12212.04,507,13,DAA,FOLDERX,LTTRS,2003-01-12 07:46:00,2003-06-28 10:58:00,NOT COLLATERAL
+166138,15892.77,DDD,VFR,A,12211.88,507,14,FKF,FOLDERR,LTTRZ,2003-01-12 08:46:00,2003-06-28 12:58:00,NOT COLLATERAL
+166149,15895.881,AAB,YUJ,A,12211.72,507,15,LES,FOLDERS,LTTRA,2003-01-12 09:46:00,2003-06-28 14:58:00,NOT COLLATERAL
+166160,15898.992,AAC,MED,A,12211.56,507,16,KLD,FOLDERX,LTTRB,2003-01-12 10:46:00,2003-06-28 16:58:00,NOT COLLATERAL
+166171,15902.103,AAD,SWE,A,12211.4,507,17,SKL,FOLDERR,LTTRB,2003-01-12 11:46:00,2003-06-28 18:58:00,NOT COLLATERAL
+166182,15905.214,AAE,CVF,A,12211.24,507,18,SIW,FOLDERS,LTTRA,2003-01-12 12:46:00,2003-06-28 20:58:00,COLLATERAL
+166193,15908.325,AAF,DSFG,A,12211.08,507,19,CKA,FOLDERX,LTTRA,2003-01-12 13:46:00,2003-06-28 22:58:00,COLLATERAL
+166204,15911.436,BBA,ASDRE,A,12210.92,507,20,LDE,FOLDERR,LTTRS,2003-01-12 14:46:00,2003-06-29 00:58:00,COLLATERAL
+166215,15914.547,BBC,HJKSS,A,12210.76,507,21,KFF,FOLDERS,LTTRZ,2003-01-12 15:46:00,2003-06-29 02:58:00,NOT COLLATERAL
+166226,15917.658,BBE,KHAA,A,12210.6,507,22,EFH,FOLDERX,LTTRS,2003-01-12 16:46:00,2003-06-29 04:58:00,NOT COLLATERAL
+166237,15920.769,BBF,KSLD,A,12210.44,507,23,NGC,FOLDERD,LTTRS,2003-01-12 17:46:00,2003-06-29 06:58:00,NOT COLLATERAL
+166248,15923.88,BBG,EKID,A,12210.28,507,24,DER,FOLDERE,LTTRS,2003-01-12 18:46:00,2003-06-29 08:58:00,NOT COLLATERAL
+166259,15926.991,BBH,VNCD,A,12210.12,507,25,FVG,FOLDERF,LTTRS,2003-01-12 19:46:00,2003-06-29 10:58:00,NOT COLLATERAL
+166270,15930.102,CCA,DKD,A,12209.96,507,26,KWE,FOLDERG,LTTRS,2003-01-12 20:46:00,2003-06-29 12:58:00,NOT COLLATERAL
+166281,15933.213,CCB,FKF,A,12209.8,507,27,WER,FOLDERH,LTTRS,2003-01-12 21:46:00,2003-06-29 14:58:00,NOT COLLATERAL
+166292,15936.324,CCD,LES,A,12209.64,507,28,GFH,FOLDERI,LTTRS,2003-01-12 22:46:00,2003-06-29 16:58:00,NOT COLLATERAL
+166303,15939.435,CCE,KLD,A,12209.48,507,29,BGF,FOLDERJ,LTTRS,2003-01-12 23:46:00,2003-06-29 18:58:00,NOT COLLATERAL
+166314,15942.546,CCF,SKL,A,12209.32,507,30,XCS,FOLDERK,LTTRS,2003-01-13 00:46:00,2003-06-29 20:58:00,COLLATERAL
+166325,15945.657,CCG,SIW,A,12209.16,507,31,JHK,FOLDERL,LTTRS,2003-01-13 01:46:00,2003-06-29 22:58:00,COLLATERAL
+166336,15948.768,CCH,CKA,A,12209,507,32,SFD,FOLDERM,LTTRS,2003-01-13 02:46:00,2003-06-30 00:58:00,COLLATERAL
+166347,15951.879,CCI,LDE,A,12208.84,507,33,WRE,FOLDERN,LTTRS,2003-01-13 03:46:00,2003-06-30 02:58:00,NOT COLLATERAL
+166358,15954.99,CCJ,KFF,A,12208.68,507,34,HGV,FOLDERN,LTTRS,2003-01-13 04:46:00,2003-06-30 04:58:00,NOT COLLATERAL
+166369,15958.101,DDD,EFH,A,12208.52,507,35,KLS,FOLDERN,LTTRS,2003-01-13 05:46:00,2003-06-30 06:58:00,NOT COLLATERAL
+166380,15961.212,DDA,NGC,A,12208.36,507,36,SDK,FOLDERN,LTTRZ,2003-01-13 06:46:00,2003-06-30 08:58:00,NOT COLLATERAL
+166391,15964.323,DAA,DER,A,12208.2,507,37,MNV,FOLDERL,LTTRA,2003-01-13 07:46:00,2003-06-30 10:58:00,NOT COLLATERAL
+166402,15967.434,DBB,FVG,A,12208.04,507,38,OKW,FOLDERL,LTTRB,2003-01-13 08:46:00,2003-06-30 12:58:00,NOT COLLATERAL
+166413,15970.545,DCC,KWE,A,12207.88,507,39,ASS,FOLDERL,LTTRB,2003-01-13 09:46:00,2003-06-30 14:58:00,NOT COLLATERAL
+166424,15973.656,DEE,WER,A,12207.72,507,40,CKA,FOLDERL,LTTRA,2003-01-13 10:46:00,2003-06-30 16:58:00,NOT COLLATERAL
+166435,15976.767,DFF,GFH,A,12207.56,507,41,SWQ,FOLDERL,LTTRA,2003-01-13 11:46:00,2003-06-30 18:58:00,NOT COLLATERAL
+166446,15979.878,DGG,BGF,A,12207.4,507,42,KUH,FOLDERA,LTTRS,2003-01-13 12:46:00,2003-06-30 20:58:00,COLLATERAL
+166457,15982.989,DHH,XCS,A,12207.24,507,43,XCV,FOLDERB,LTTRZ,2003-01-13 13:46:00,2003-06-30 22:58:00,COLLATERAL
+166468,15986.1,AAA,JHK,A,12207.08,507,44,ZAQ,FOLDERC,LTTRS,2003-01-13 14:46:00,2003-07-01 00:58:00,COLLATERAL
+166479,15989.211,BBB,SFD,A,12206.92,507,45,MKO,FOLDERD,LTTRS,2003-01-13 15:46:00,2003-07-01 02:58:00,NOT COLLATERAL
+166490,15992.322,CCC,WRE,A,12206.76,507,46,VFR,FOLDERE,LTTRS,2003-01-13 16:46:00,2003-07-01 04:58:00,NOT COLLATERAL
+166501,15995.433,DDD,HGV,A,12206.6,507,47,YUJ,FOLDERF,LTTRS,2003-01-13 17:46:00,2003-07-01 06:58:00,NOT COLLATERAL
+166512,15998.544,AAB,KLS,A,12206.44,507,48,AAA,FOLDERG,LTTRS,2003-01-13 18:46:00,2003-07-01 08:58:00,NOT COLLATERAL
+166523,16001.655,AAC,SDK,A,12206.28,507,49,BBB,FOLDERH,LTTRS,2003-01-13 19:46:00,2003-07-01 10:58:00,NOT COLLATERAL
+166534,16004.766,AAD,MNV,A,12206.12,507,48,CCC,FOLDERI,LTTRS,2003-01-13 20:46:00,2003-07-01 12:58:00,NOT COLLATERAL
+166545,16007.877,AAE,OKW,A,12205.96,507,47,DDD,FOLDERJ,LTTRS,2003-01-13 21:46:00,2003-07-01 14:58:00,NOT COLLATERAL
+166556,16010.988,AAF,ASS,A,12205.8,507,46,AAB,FOLDERK,LTTRS,2003-01-13 22:46:00,2003-07-01 16:58:00,NOT COLLATERAL
+166567,16014.099,BBA,CKA,A,12205.64,507,45,AAC,FOLDERL,LTTRS,2003-01-13 23:46:00,2003-07-01 18:58:00,NOT COLLATERAL
+166578,16017.21,BBC,SWQ,A,12205.48,507,44,AAD,FOLDERM,LTTRS,2003-01-14 00:46:00,2003-07-01 20:58:00,COLLATERAL
+166589,16020.321,BBE,KUH,A,12205.32,507,43,AAE,FOLDERN,LTTRS,2003-01-14 01:46:00,2003-07-01 22:58:00,COLLATERAL
+166600,16023.432,BBF,XCV,A,12205.16,507,42,AAF,FOLDERO,LTTRS,2003-01-14 02:46:00,2003-07-02 00:58:00,COLLATERAL
+166611,16026.543,BBG,ZAQ,A,12205,507,41,BBA,FOLDERP,LTTRS,2003-01-14 03:46:00,2003-07-02 02:58:00,NOT COLLATERAL
+166622,16029.654,BBH,MKO,A,12204.84,507,40,BBC,FOLDERQ,LTTRZ,2003-01-14 04:46:00,2003-07-02 04:58:00,NOT COLLATERAL
+166633,16032.765,CCA,VFR,A,12204.68,507,39,BBE,FOLDERR,LTTRA,2003-01-14 05:46:00,2003-07-02 06:58:00,NOT COLLATERAL
+166644,16035.876,CCB,YUJ,A,12204.52,507,38,BBF,FOLDERS,LTTRB,2003-01-14 06:46:00,2003-07-02 08:58:00,NOT COLLATERAL
+166655,16038.987,CCD,MED,A,12204.36,507,37,BBG,FOLDERT,LTTRB,2003-01-14 07:46:00,2003-07-02 10:58:00,NOT COLLATERAL
+166666,16042.098,CCE,SWE,A,12204.2,507,36,BBH,FOLDERU,LTTRA,2003-01-14 08:46:00,2003-07-02 12:58:00,NOT COLLATERAL
+166677,16045.209,CCF,CVF,A,12204.04,507,35,CCA,FOLDERV,LTTRA,2003-01-14 09:45:00,2003-07-02 14:58:00,NOT COLLATERAL
+166688,16048.32,CCG,DSFG,A,12203.88,507,34,CCB,FOLDERW,LTTRS,2003-01-14 10:45:00,2003-07-02 16:58:00,NOT COLLATERAL
+166699,16051.431,CCH,ASDRE,A,12203.72,507,33,CCD,FOLDERX,LTTRZ,2003-01-14 11:45:00,2003-07-02 18:58:00,NOT COLLATERAL
+166710,16054.542,CCI,HJKSS,A,12203.56,507,32,CCE,FOLDERY,LTTRS,2003-01-14 12:45:00,2003-07-02 20:58:00,COLLATERAL
+166721,16057.653,CCJ,KHAA,A,12203.4,507,31,CCF,FOLDERZ,LTTRS,2003-01-14 13:45:00,2003-07-02 22:58:00,COLLATERAL
+166732,16060.764,DDD,KSLD,A,12203.24,507,30,CCG,FOLDERA,LTTRS,2003-01-14 14:45:00,2003-07-03 00:58:00,COLLATERAL
+166743,16063.875,DDA,EKID,A,12203.08,507,29,CCH,FOLDERB,LTTRS,2003-01-14 15:45:00,2003-07-03 02:58:00,NOT COLLATERAL
+166754,16066.986,DAA,VNCD,A,12202.92,507,28,CCI,FOLDERC,LTTRS,2003-01-14 16:45:00,2003-07-03 04:58:00,NOT COLLATERAL
+166765,16070.097,DBB,DKD,A,12202.76,507,27,CCJ,FOLDERD,LTTRS,2003-01-14 17:45:00,2003-07-03 06:58:00,NOT COLLATERAL
+166776,16073.208,DCC,FKF,A,12202.6,507,26,DDD,FOLDERE,LTTRS,2003-01-14 18:45:00,2003-07-03 08:58:00,NOT COLLATERAL
+166787,16076.319,DEE,LES,A,12202.44,507,25,DDA,FOLDERF,LTTRS,2003-01-14 19:45:00,2003-07-03 10:58:00,NOT COLLATERAL
+166798,16079.43,DFF,KLD,A,12202.28,507,24,DAA,FOLDERG,LTTRS,2003-01-14 20:45:00,2003-07-03 12:58:00,NOT COLLATERAL
+166809,16082.541,DGG,SKL,A,12202.12,507,23,FKF,FOLDERH,LTTRS,2003-01-14 21:45:00,2003-07-03 14:58:00,NOT COLLATERAL
+166820,16085.652,DHH,SIW,A,12201.96,507,22,LES,FOLDERI,LTTRS,2003-01-14 22:45:00,2003-07-03 16:58:00,NOT COLLATERAL
+166831,16088.763,AAA,CKA,A,12201.8,507,21,KLD,FOLDERJ,LTTRS,2003-01-14 23:45:00,2003-07-03 18:58:00,NOT COLLATERAL
+166842,16091.874,BBB,LDE,A,12201.64,507,20,SKL,FOLDERK,LTTRS,2003-01-15 00:45:00,2003-07-03 20:58:00,COLLATERAL
+166853,16094.985,CCC,KFF,A,12201.48,507,19,SIW,FOLDERL,LTTRS,2003-01-15 01:45:00,2003-07-03 22:58:00,COLLATERAL
+166864,16098.096,DDD,EFH,A,12201.32,507,18,CKA,FOLDERM,LTTRZ,2003-01-15 02:45:00,2003-07-04 00:58:00,COLLATERAL
+166875,16101.207,AAB,NGC,A,12201.16,507,17,LDE,FOLDERN,LTTRA,2003-01-15 03:45:00,2003-07-04 02:58:00,NOT COLLATERAL
+166886,16104.318,AAC,DER,A,12201,507,16,KFF,FOLDERO,LTTRB,2003-01-15 04:45:00,2003-07-04 04:58:00,NULL
+166897,16107.429,AAD,FVG,A,12200.84,507,15,EFH,FOLDERP,LTTRB,2003-01-15 05:45:00,2003-07-04 06:58:00,NULL
+166908,16110.54,AAE,KWE,A,12200.68,507,14,NGC,FOLDERQ,LTTRA,2003-01-15 06:45:00,2003-07-04 08:58:00,NULL
+166919,16113.651,AAF,WER,A,12200.52,507,13,DER,FOLDERR,LTTRA,2003-01-15 07:45:00,2003-07-04 10:58:00,NULL
+166930,16116.762,BBA,GFH,A,12200.36,507,12,FVG,FOLDERS,LTTRS,2003-01-15 08:45:00,2003-07-04 12:58:00,NULL
+166941,16119.873,BBC,BGF,A,12200.2,507,11,KWE,FOLDERT,LTTRZ,2003-01-15 09:45:00,2003-07-04 14:58:00,NULL
+166952,16122.984,BBE,XCS,A,12200.04,507,10,WER,FOLDERU,LTTRS,2003-01-15 10:45:00,2003-07-04 16:58:00,NULL
+166963,16126.095,BBF,JHK,A,12199.88,507,9,GFH,FOLDERV,LTTRS,2003-01-15 11:45:00,2003-07-04 18:58:00,NOT COLLATERAL
+166974,16129.206,BBG,SFD,A,12199.72,507,8,BGF,FOLDERW,LTTRS,2003-01-15 12:45:00,2003-07-04 20:58:00,COLLATERAL
+166985,16132.317,BBH,WRE,A,12199.56,507,7,XCS,FOLDERX,LTTRS,2003-01-15 13:45:00,2003-07-04 22:58:00,COLLATERAL
+166996,16135.428,CCA,HGV,A,12199.4,507,6,JHK,FOLDERY,LTTRS,2003-01-15 14:45:00,2003-07-05 00:58:00,COLLATERAL
+167007,16138.539,CCB,KLS,A,12199.24,507,5,SFD,FOLDERZ,LTTRS,2003-01-15 15:45:00,2003-07-05 02:58:00,NULL
+167018,16141.65,CCD,SDK,A,12199.08,507,4,WRE,FOLDERZ,LTTRS,2003-01-15 16:45:00,2003-07-05 04:58:00,NULL
+167029,16144.761,CCE,MNV,A,12198.92,507,3,HGV,FOLDERZ,LTTRS,2003-01-15 17:45:00,2003-07-05 06:58:00,NULL
+167040,16147.872,CCF,OKW,A,12198.76,507,1,KLS,FOLDERZ,LTTRS,2003-01-15 18:45:00,2003-07-05 08:58:00,NULL
+167051,16150.983,CCG,ASS,A,12198.6,507,2,SDK,FOLDERZ,LTTRS,2003-01-15 19:45:00,2003-07-05 10:58:00,NULL
+167062,16154.094,CCH,CKA,A,12198.44,507,3,MNV,FOLDERZ,LTTRS,2003-01-15 20:45:00,2003-07-05 12:58:00,NULL
+167073,16157.205,CCI,SWQ,A,12198.28,507,4,OKW,FOLDERZ,LTTRS,2003-01-15 21:45:00,2003-07-05 14:58:00,NULL
+167084,16160.316,CCJ,KUH,A,12198.12,507,5,ASS,FOLDERZ,LTTRS,2003-01-15 22:45:00,2003-07-05 16:58:00,NULL
+167095,16163.427,DDD,XCV,A,12197.96,507,6,CKA,FOLDERZ,LTTRS,2003-01-15 23:45:00,2003-07-05 18:58:00,NULL
+167106,16166.538,DDA,ZAQ,A,12197.8,507,7,SWQ,FOLDERZ,LTTRZ,2003-01-16 00:45:00,2003-07-05 20:58:00,NULL
+167117,16169.649,DAA,MKO,A,12197.64,507,8,KUH,FOLDERZ,LTTRA,2003-01-16 01:45:00,2003-07-05 22:58:00,COLLATERAL
+167128,16172.76,DBB,VFR,A,12197.48,507,9,XCV,FOLDERZ,LTTRB,2003-01-16 02:45:00,2003-07-06 00:58:00,COLLATERAL
+167139,16175.871,DCC,YUJ,A,12197.32,507,10,ZAQ,FOLDERZ,LTTRB,2003-01-16 03:45:00,2003-07-06 02:58:00,NULL
+167150,16178.982,DEE,MED,A,12197.16,507,11,MKO,FOLDERZ,LTTRA,2003-01-16 04:45:00,2003-07-06 04:58:00,NULL
+167161,16182.093,DFF,SWE,A,12197,507,12,VFR,FOLDERX,LTTRA,2003-01-16 05:45:00,2003-07-06 06:58:00,NULL
+167172,16185.204,DGG,CVF,A,12196.84,507,13,YUJ,FOLDERX,LTTRS,2003-01-16 06:45:00,2003-07-06 08:58:00,NULL
+167183,16188.315,DHH,DSFG,A,12196.68,507,14,AAA,FOLDERX,LTTRZ,2003-01-16 07:45:00,2003-07-06 10:58:00,NULL
+167194,16191.426,AAA,ASDRE,A,12196.52,507,15,BBB,FOLDERX,LTTRS,2003-01-16 08:45:00,2003-07-06 12:58:00,NOT COLLATERAL
+167205,16194.537,BBB,HJKSS,A,12196.36,507,16,CCC,FOLDERX,LTTRS,2003-01-16 09:45:00,2003-07-06 14:58:00,NOT COLLATERAL
+167216,16197.648,CCC,KHAA,A,12196.2,507,17,DDD,FOLDERX,LTTRS,2003-01-16 10:45:00,2003-07-06 16:58:00,NOT COLLATERAL
+167227,16200.759,DDD,KSLD,A,12196.04,507,18,AAB,FOLDERX,LTTRS,2003-01-16 11:45:00,2003-07-06 18:58:00,NOT COLLATERAL
+167238,16203.87,AAB,EKID,A,12195.88,507,19,AAC,FOLDERX,LTTRS,2003-01-16 12:45:00,2003-07-06 20:58:00,COLLATERAL
+167249,16206.981,AAC,VNCD,A,12195.72,507,20,AAD,FOLDERX,LTTRS,2003-01-16 13:45:00,2003-07-06 22:58:00,COLLATERAL
+167260,16210.092,AAD,DKD,A,12195.56,507,21,AAE,FOLDERX,LTTRS,2003-01-16 14:45:00,2003-07-07 00:58:00,COLLATERAL
+167271,16213.203,AAE,FKF,A,12195.4,507,22,AAF,FOLDERX,LTTRS,2003-01-16 15:45:00,2003-07-07 02:58:00,NOT COLLATERAL
+167282,16216.314,AAF,LES,A,12195.24,507,23,BBA,FOLDERX,LTTRS,2003-01-16 16:45:00,2003-07-07 04:58:00,NOT COLLATERAL
+167293,16219.425,BBA,KLD,A,12195.08,507,24,BBC,FOLDERR,LTTRS,2003-01-16 17:45:00,2003-07-07 06:58:00,NOT COLLATERAL
+167304,16222.536,BBC,SKL,A,12194.92,507,25,BBE,FOLDERS,LTTRS,2003-01-16 18:45:00,2003-07-07 08:58:00,NOT COLLATERAL
+167315,16225.647,BBE,SIW,A,12194.76,507,26,BBF,FOLDERX,LTTRS,2003-01-16 19:45:00,2003-07-07 10:58:00,NOT COLLATERAL
+167326,16228.758,BBF,CKA,A,12194.6,507,27,BBG,FOLDERR,LTTRS,2003-01-16 20:45:00,2003-07-07 12:58:00,NOT COLLATERAL
+167337,16231.869,BBG,LDE,A,12194.44,507,28,BBH,FOLDERS,LTTRS,2003-01-16 21:45:00,2003-07-07 14:58:00,NOT COLLATERAL
+167348,16234.98,BBH,KFF,A,12194.28,507,29,CCA,FOLDERX,LTTRZ,2003-01-16 22:45:00,2003-07-07 16:58:00,NOT COLLATERAL
+167359,16238.091,CCA,EFH,A,12194.12,507,30,CCB,FOLDERR,LTTRA,2003-01-16 23:45:00,2003-07-07 18:58:00,NOT COLLATERAL
+167370,16241.202,CCB,NGC,A,12193.96,502,31,CCD,FOLDERS,LTTRB,2003-01-17 00:45:00,2003-07-07 20:58:00,COLLATERAL
+167381,16244.313,CCD,DER,A,12193.8,497,32,CCE,FOLDERX,LTTRB,2003-01-17 01:45:00,2003-07-07 22:58:00,COLLATERAL
+167392,16247.424,CCE,FVG,A,12193.64,492,33,CCF,FOLDERR,LTTRA,2003-01-17 02:45:00,2003-07-08 00:58:00,COLLATERAL
+167403,16250.535,CCF,KWE,A,12193.48,487,34,CCG,FOLDERS,LTTRA,2003-01-17 03:45:00,2003-07-08 02:58:00,NOT COLLATERAL
+167414,16253.646,CCG,WER,A,12193.32,482,35,CCH,FOLDERX,LTTRS,2003-01-17 04:45:00,2003-07-08 04:58:00,NOT COLLATERAL
+167425,16256.757,CCH,GFH,A,12193.16,477,36,CCI,FOLDERR,LTTRZ,2003-01-17 05:45:00,2003-07-08 06:58:00,NOT COLLATERAL
+167436,16259.868,CCI,BGF,A,12193,472,37,CCJ,FOLDERS,LTTRS,2003-01-17 06:45:00,2003-07-08 08:58:00,NOT COLLATERAL
+167447,16262.979,CCJ,XCS,A,12192.84,467,38,DDD,FOLDERX,LTTRS,2003-01-17 07:45:00,2003-07-08 10:58:00,NOT COLLATERAL
+167458,16266.09,DDD,JHK,A,12192.68,462,39,DDA,FOLDERD,LTTRS,2003-01-17 08:45:00,2003-07-08 12:58:00,NOT COLLATERAL
+167469,16269.201,DDA,SFD,A,12192.52,457,40,DAA,FOLDERE,LTTRS,2003-01-17 09:45:00,2003-07-08 14:58:00,NOT COLLATERAL
+167480,16272.312,DAA,WRE,A,12192.36,452,41,FKF,FOLDERF,LTTRS,2003-01-17 10:45:00,2003-07-08 16:58:00,NOT COLLATERAL
+167491,16275.423,DBB,HGV,A,12192.2,447,42,LES,FOLDERG,LTTRS,2003-01-17 11:45:00,2003-07-08 18:58:00,NOT COLLATERAL
+167502,16278.534,DCC,KLS,A,12192.04,442,43,KLD,FOLDERH,LTTRS,2003-01-17 12:45:00,2003-07-08 20:58:00,COLLATERAL
+167513,16281.645,DEE,SDK,A,12191.88,437,44,SKL,FOLDERI,LTTRS,2003-01-17 13:45:00,2003-07-08 22:58:00,COLLATERAL
+167524,16284.756,DFF,MNV,A,12191.72,432,45,SIW,FOLDERJ,LTTRS,2003-01-17 14:45:00,2003-07-09 00:58:00,COLLATERAL
+167535,16287.867,DGG,OKW,A,12191.56,427,46,CKA,FOLDERK,LTTRS,2003-01-17 15:45:00,2003-07-09 02:58:00,NOT COLLATERAL
+167546,16290.978,DHH,ASS,A,12191.4,422,47,LDE,FOLDERL,LTTRS,2003-01-17 16:45:00,2003-07-09 04:58:00,NOT COLLATERAL
+167557,16294.089,AAA,CKA,A,12191.24,417,48,KFF,FOLDERM,LTTRS,2003-01-17 17:45:00,2003-07-09 06:58:00,NOT COLLATERAL
+167568,16297.2,BBB,SWQ,A,12191.08,412,49,EFH,FOLDERN,LTTRS,2003-01-17 18:45:00,2003-07-09 08:58:00,NOT COLLATERAL
+167579,16300.311,CCC,KUH,A,12190.92,407,48,NGC,FOLDERN,LTTRS,2003-01-17 19:45:00,2003-07-09 10:58:00,NOT COLLATERAL
+167590,16303.422,DDD,XCV,A,12190.76,402,47,DER,FOLDERN,LTTRZ,2003-01-17 20:45:00,2003-07-09 12:58:00,NOT COLLATERAL
+167601,16306.533,AAB,ZAQ,A,12190.6,397,46,FVG,FOLDERN,LTTRA,2003-01-17 21:45:00,2003-07-09 14:58:00,NOT COLLATERAL
+167612,16309.644,AAC,MKO,A,12190.44,392,45,KWE,FOLDERL,LTTRB,2003-01-17 22:45:00,2003-07-09 16:58:00,NOT COLLATERAL
+167623,16312.755,AAD,VFR,A,12190.28,387,44,WER,FOLDERL,LTTRB,2003-01-17 23:45:00,2003-07-09 18:58:00,NOT COLLATERAL
+167634,16315.866,AAE,YUJ,A,12190.12,382,43,GFH,FOLDERL,LTTRA,2003-01-18 00:45:00,2003-07-09 20:58:00,COLLATERAL
+167645,16318.977,AAF,MED,A,12189.96,377,42,BGF,FOLDERL,LTTRA,2003-01-18 01:45:00,2003-07-09 22:58:00,COLLATERAL
+167656,16322.088,BBA,SWE,A,12189.8,372,41,XCS,FOLDERL,LTTRS,2003-01-18 02:45:00,2003-07-10 00:58:00,COLLATERAL
+167667,16325.199,BBC,CVF,A,12189.64,367,40,JHK,FOLDERR,LTTRZ,2003-01-18 03:45:00,2003-07-10 02:58:00,NOT COLLATERAL
+167678,16328.31,BBE,DSFG,A,12189.48,362,39,SFD,FOLDERS,LTTRS,2003-01-18 04:45:00,2003-07-10 04:58:00,NOT COLLATERAL
+167689,16331.421,BBF,ASDRE,A,12189.32,357,38,WRE,FOLDERX,LTTRS,2003-01-18 05:45:00,2003-07-10 06:58:00,NOT COLLATERAL
+167700,16334.532,BBG,HJKSS,A,12189.16,352,37,HGV,FOLDERR,LTTRS,2003-01-18 06:45:00,2003-07-10 08:58:00,NOT COLLATERAL
+167711,16337.643,BBH,KHAA,A,12189,347,36,KLS,FOLDERS,LTTRS,2003-01-18 07:45:00,2003-07-10 10:58:00,NOT COLLATERAL
+167722,16340.754,CCA,KSLD,A,12188.84,342,35,SDK,FOLDERX,LTTRS,2003-01-18 08:45:00,2003-07-10 12:58:00,NOT COLLATERAL
+167733,16343.865,CCB,EKID,A,12188.68,337,34,MNV,FOLDERD,LTTRS,2003-01-18 09:45:00,2003-07-10 14:58:00,NOT COLLATERAL
+167744,16346.976,CCD,VNCD,A,12188.52,332,33,OKW,FOLDERE,LTTRS,2003-01-18 10:45:00,2003-07-10 16:58:00,NOT COLLATERAL
+167755,16350.087,CCE,DKD,A,12188.36,327,32,ASS,FOLDERF,LTTRS,2003-01-18 11:45:00,2003-07-10 18:58:00,NOT COLLATERAL
+167766,16353.198,CCF,FKF,A,12188.2,322,31,CKA,FOLDERG,LTTRS,2003-01-18 12:45:00,2003-07-10 20:58:00,COLLATERAL
+167777,16356.309,CCG,LES,A,12188.04,317,30,SWQ,FOLDERH,LTTRS,2003-01-18 13:45:00,2003-07-10 22:58:00,COLLATERAL
+167788,16359.42,CCH,KLD,A,12187.88,312,29,KUH,FOLDERI,LTTRS,2003-01-18 14:45:00,2003-07-11 00:58:00,COLLATERAL
+167799,16362.531,CCI,SKL,A,12187.72,307,28,XCV,FOLDERJ,LTTRS,2003-01-18 15:45:00,2003-07-11 02:58:00,NOT COLLATERAL
+167810,16365.642,CCJ,SIW,A,12187.56,302,27,ZAQ,FOLDERK,LTTRS,2003-01-18 16:45:00,2003-07-11 04:58:00,NOT COLLATERAL
+167821,16368.753,DDD,CKA,A,12187.4,297,26,MKO,FOLDERL,LTTRS,2003-01-18 17:45:00,2003-07-11 06:58:00,NOT COLLATERAL
+167832,16371.864,DDA,LDE,A,12187.24,292,25,VFR,FOLDERM,LTTRZ,2003-01-18 18:45:00,2003-07-11 08:58:00,NOT COLLATERAL
+167843,16374.975,DAA,KFF,A,12187.08,287,24,YUJ,FOLDERN,LTTRA,2003-01-18 19:45:00,2003-07-11 10:58:00,NOT COLLATERAL
+167854,16378.086,DBB,EFH,A,12186.92,282,23,AAA,FOLDERN,LTTRB,2003-01-18 20:45:00,2003-07-11 12:58:00,NOT COLLATERAL
+167865,16381.197,DCC,NGC,A,12186.76,277,22,BBB,FOLDERN,LTTRB,2003-01-18 21:45:00,2003-07-11 14:58:00,NOT COLLATERAL
+167876,16384.308,DEE,DER,A,12186.6,272,21,CCC,FOLDERN,LTTRA,2003-01-18 22:45:00,2003-07-11 16:58:00,NOT COLLATERAL
+167887,16387.419,DFF,FVG,A,12186.44,267,20,DDD,FOLDERL,LTTRA,2003-01-18 23:45:00,2003-07-11 18:58:00,NOT COLLATERAL
+167898,16390.53,DGG,KWE,A,12186.28,262,19,AAB,FOLDERL,LTTRS,2003-01-19 00:45:00,2003-07-11 20:58:00,COLLATERAL
+167909,16393.641,DHH,WER,A,12186.12,257,18,AAC,FOLDERL,LTTRZ,2003-01-19 01:45:00,2003-07-11 22:58:00,COLLATERAL
+167920,16396.752,AAA,GFH,A,12185.96,252,17,AAD,FOLDERL,LTTRS,2003-01-19 02:45:00,2003-07-12 00:58:00,COLLATERAL
+167931,16399.863,BBB,BGF,A,12185.8,247,16,AAE,FOLDERL,LTTRS,2003-01-19 03:45:00,2003-07-12 02:58:00,NOT COLLATERAL
+167942,16402.974,CCC,XCS,A,12185.64,242,15,AAF,FOLDERA,LTTRS,2003-01-19 04:45:00,2003-07-12 04:58:00,NOT COLLATERAL
+167953,16406.085,DDD,JHK,A,12185.48,237,14,BBA,FOLDERB,LTTRS,2003-01-19 05:45:00,2003-07-12 06:58:00,NOT COLLATERAL
+167964,16409.196,AAB,SFD,A,12185.32,232,13,BBC,FOLDERC,LTTRS,2003-01-19 06:45:00,2003-07-12 08:58:00,NOT COLLATERAL
+167975,16412.307,AAC,WRE,A,12185.16,227,12,BBE,FOLDERD,LTTRS,2003-01-19 07:45:00,2003-07-12 10:58:00,NOT COLLATERAL
+167986,16415.418,AAD,HGV,A,12185,222,11,BBF,FOLDERE,LTTRS,2003-01-19 08:45:00,2003-07-12 12:58:00,NOT COLLATERAL
+167997,16418.529,AAE,KLS,A,12184.84,217,10,BBG,FOLDERF,LTTRS,2003-01-19 09:45:00,2003-07-12 14:58:00,NOT COLLATERAL
+168008,16421.64,AAF,SDK,A,12184.68,212,9,BBH,FOLDERG,LTTRS,2003-01-19 10:45:00,2003-07-12 16:58:00,NOT COLLATERAL
+168019,16424.751,BBA,MNV,A,12184.52,207,8,CCA,FOLDERH,LTTRS,2003-01-19 11:45:00,2003-07-12 18:58:00,NOT COLLATERAL
+168030,16427.862,BBC,OKW,A,12184.36,202,7,CCB,FOLDERI,LTTRS,2003-01-19 12:45:00,2003-07-12 20:58:00,COLLATERAL
+168041,16430.973,BBE,ASS,A,12184.2,197,6,CCD,FOLDERJ,LTTRS,2003-01-19 13:45:00,2003-07-12 22:58:00,COLLATERAL
+168052,16434.084,BBF,CKA,A,12184.04,192,5,CCE,FOLDERK,LTTRS,2003-01-19 14:45:00,2003-07-13 00:58:00,COLLATERAL
+168063,16437.195,BBG,SWQ,A,12183.88,187,4,CCF,FOLDERL,LTTRS,2003-01-19 15:45:00,2003-07-13 02:58:00,NOT COLLATERAL
+168074,16440.306,BBH,KUH,A,12183.72,182,3,CCG,FOLDERM,LTTRZ,2003-01-19 16:45:00,2003-07-13 04:58:00,NOT COLLATERAL
+168085,16443.417,CCA,XCV,A,12183.56,177,1,CCH,FOLDERN,LTTRA,2003-01-19 17:45:00,2003-07-13 06:58:00,NOT COLLATERAL
+168096,16446.528,CCB,ZAQ,A,12183.4,172,2,CCI,FOLDERO,LTTRB,2003-01-19 18:45:00,2003-07-13 08:58:00,NOT COLLATERAL
+168107,16449.639,CCD,MKO,A,12183.24,167,3,CCJ,FOLDERP,LTTRB,2003-01-19 19:45:00,2003-07-13 10:58:00,NOT COLLATERAL
+168118,16452.75,CCE,VFR,A,12183.08,162,4,DDD,FOLDERQ,LTTRA,2003-01-19 20:45:00,2003-07-13 12:58:00,NOT COLLATERAL
+168129,16455.861,CCF,YUJ,A,12182.92,157,5,DDA,FOLDERR,LTTRA,2003-01-19 21:45:00,2003-07-13 14:58:00,NOT COLLATERAL
+168140,16458.972,CCG,MED,A,12182.76,152,6,DAA,FOLDERS,LTTRS,2003-01-19 22:45:00,2003-07-13 16:58:00,NOT COLLATERAL
+168151,16462.083,CCH,SWE,A,12182.6,147,7,FKF,FOLDERT,LTTRZ,2003-01-19 23:45:00,2003-07-13 18:58:00,NOT COLLATERAL
+168162,16465.194,CCI,CVF,A,12182.44,142,8,LES,FOLDERU,LTTRS,2003-01-20 00:45:00,2003-07-13 20:58:00,COLLATERAL
+168173,16468.305,CCJ,DSFG,A,12182.28,137,9,KLD,FOLDERV,LTTRS,2003-01-20 01:45:00,2003-07-13 22:58:00,COLLATERAL
+168184,16471.416,DDD,ASDRE,A,12182.12,132,10,SKL,FOLDERW,LTTRS,2003-01-20 02:45:00,2003-07-14 00:58:00,COLLATERAL
+168195,16474.527,DDA,HJKSS,A,12181.96,127,11,SIW,FOLDERX,LTTRS,2003-01-20 03:45:00,2003-07-14 02:58:00,NOT COLLATERAL
+168206,16477.638,DAA,KHAA,A,12181.8,122,12,CKA,FOLDERY,LTTRS,2003-01-20 04:45:00,2003-07-14 04:58:00,NOT COLLATERAL
+168217,16480.749,DBB,KSLD,A,12181.64,117,13,LDE,FOLDERZ,LTTRS,2003-01-20 05:45:00,2003-07-14 06:58:00,NOT COLLATERAL
+168228,16483.86,DCC,EKID,A,12181.48,112,14,KFF,FOLDERA,LTTRS,2003-01-20 06:45:00,2003-07-14 08:58:00,NOT COLLATERAL
+168239,16486.971,DEE,VNCD,A,12181.32,107,15,EFH,FOLDERB,LTTRS,2003-01-20 07:45:00,2003-07-14 10:58:00,NOT COLLATERAL
+168250,16490.082,DFF,DKD,A,12181.16,102,16,NGC,FOLDERC,LTTRS,2003-01-20 08:45:00,2003-07-14 12:58:00,NOT COLLATERAL
+168261,16493.193,DGG,FKF,A,12181,97,17,DER,FOLDERD,LTTRS,2003-01-20 09:45:00,2003-07-14 14:58:00,NOT COLLATERAL
+168272,16496.304,DHH,LES,A,12180.84,92,18,FVG,FOLDERE,LTTRS,2003-01-20 10:45:00,2003-07-14 16:58:00,NOT COLLATERAL
+168283,16499.415,AAA,KLD,A,12180.68,87,19,KWE,FOLDERF,LTTRS,2003-01-20 11:45:00,2003-07-14 18:58:00,NOT COLLATERAL
+168294,16502.526,BBB,SKL,A,12180.52,82,20,WER,FOLDERG,LTTRS,2003-01-20 12:45:00,2003-07-14 20:58:00,COLLATERAL
+168305,16505.637,CCC,SIW,A,12180.36,77,21,GFH,FOLDERH,LTTRS,2003-01-20 13:45:00,2003-07-14 22:58:00,COLLATERAL
+168316,16508.748,DDD,CKA,A,12180.2,72,22,BGF,FOLDERI,LTTRZ,2003-01-20 14:45:00,2003-07-15 00:58:00,COLLATERAL
+168327,16511.859,AAB,LDE,A,12180.04,67,23,XCS,FOLDERJ,LTTRA,2003-01-20 15:45:00,2003-07-15 02:58:00,NOT COLLATERAL
+168338,16514.97,AAC,KFF,A,12179.88,62,24,JHK,FOLDERK,LTTRB,2003-01-20 16:45:00,2003-07-15 04:58:00,NOT COLLATERAL
+168349,16518.081,AAD,EFH,A,12179.72,57,25,SFD,FOLDERL,LTTRB,2003-01-20 17:45:00,2003-07-15 06:58:00,NOT COLLATERAL
+168360,16521.192,AAE,NGC,A,12179.56,52,26,WRE,FOLDERM,LTTRA,2003-01-20 18:45:00,2003-07-15 08:58:00,NOT COLLATERAL
+168371,16524.303,AAF,DER,A,12179.4,47,27,HGV,FOLDERN,LTTRA,2003-01-20 19:45:00,2003-07-15 10:58:00,NOT COLLATERAL
+168382,16527.414,BBA,FVG,A,12179.24,42,28,KLS,FOLDERO,LTTRS,2003-01-20 20:45:00,2003-07-15 12:58:00,NOT COLLATERAL
+168393,16530.525,BBC,KWE,A,12179.08,43,29,SDK,FOLDERP,LTTRZ,2003-01-20 21:45:00,2003-07-15 14:58:00,NOT COLLATERAL
+168404,16533.636,BBE,WER,A,12178.92,44,30,MNV,FOLDERQ,LTTRS,2003-01-20 22:45:00,2003-07-15 16:58:00,NOT COLLATERAL
+168415,16536.747,BBF,GFH,A,12178.76,45,31,OKW,FOLDERR,LTTRS,2003-01-20 23:45:00,2003-07-15 18:58:00,NOT COLLATERAL
+168426,16539.858,BBG,BGF,A,12178.6,46,32,ASS,FOLDERS,LTTRS,2003-01-21 00:45:00,2003-07-15 20:58:00,COLLATERAL
+168437,16542.969,BBH,XCS,A,12178.44,47,33,CKA,FOLDERT,LTTRS,2003-01-21 01:45:00,2003-07-15 22:58:00,COLLATERAL
+168448,16546.08,CCA,JHK,A,12178.28,48,34,SWQ,FOLDERU,LTTRS,2003-01-21 02:45:00,2003-07-16 00:58:00,COLLATERAL
+168459,16549.191,CCB,SFD,A,12178.12,49,35,KUH,FOLDERV,LTTRS,2003-01-21 03:45:00,2003-07-16 02:58:00,NOT COLLATERAL
+168470,16552.302,CCD,WRE,A,12177.96,50,36,XCV,FOLDERW,LTTRS,2003-01-21 04:45:00,2003-07-16 04:58:00,NOT COLLATERAL
+168481,16555.413,CCE,HGV,A,12177.8,51,37,ZAQ,FOLDERX,LTTRS,2003-01-21 05:45:00,2003-07-16 06:58:00,NOT COLLATERAL
+168492,16558.524,CCF,KLS,A,12177.64,52,38,MKO,FOLDERY,LTTRS,2003-01-21 06:45:00,2003-07-16 08:58:00,NOT COLLATERAL
+168503,16561.635,CCG,SDK,A,12177.48,53,39,VFR,FOLDERZ,LTTRS,2003-01-21 07:45:00,2003-07-16 10:58:00,NOT COLLATERAL
+168514,16564.746,CCH,MNV,A,12177.32,54,40,YUJ,FOLDERZ,LTTRS,2003-01-21 08:45:00,2003-07-16 12:58:00,NOT COLLATERAL
+168525,16567.857,CCI,OKW,A,12177.16,55,41,AAA,FOLDERZ,LTTRS,2003-01-21 09:45:00,2003-07-16 14:58:00,NOT COLLATERAL
+168536,16570.968,CCJ,ASS,A,12177,56,42,BBB,FOLDERZ,LTTRS,2003-01-21 10:45:00,2003-07-16 16:58:00,NOT COLLATERAL
+168547,16574.079,DDD,CKA,A,12176.84,57,43,CCC,FOLDERZ,LTTRS,2003-01-21 11:45:00,2003-07-16 18:58:00,NOT COLLATERAL
+168558,16577.19,DDA,SWQ,A,12176.68,58,44,DDD,FOLDERZ,LTTRZ,2003-01-21 12:45:00,2003-07-16 20:58:00,COLLATERAL
+168569,16580.301,DAA,KUH,A,12176.52,59,45,AAB,FOLDERZ,LTTRA,2003-01-21 13:45:00,2003-07-16 22:58:00,COLLATERAL
+168580,16583.412,DBB,XCV,A,12176.36,60,46,AAC,FOLDERZ,LTTRB,2003-01-21 14:45:00,2003-07-17 00:58:00,COLLATERAL
+168591,16586.523,DCC,ZAQ,A,12176.2,61,47,AAD,FOLDERZ,LTTRB,2003-01-21 15:45:00,2003-07-17 02:58:00,NOT COLLATERAL
+168602,16589.634,DEE,MKO,A,12176.04,62,48,AAE,FOLDERZ,LTTRA,2003-01-21 16:45:00,2003-07-17 04:58:00,NOT COLLATERAL
+168613,16592.745,DFF,VFR,A,12175.88,63,49,AAF,FOLDERZ,LTTRA,2003-01-21 17:45:00,2003-07-17 06:58:00,NOT COLLATERAL
+168624,16595.856,DGG,YUJ,A,12175.72,64,48,BBA,FOLDERZ,LTTRS,2003-01-21 18:45:00,2003-07-17 08:58:00,NOT COLLATERAL
+168635,16598.967,DHH,MED,A,12175.56,65,47,BBC,FOLDERZ,LTTRZ,2003-01-21 19:45:00,2003-07-17 10:58:00,NOT COLLATERAL
+168646,16602.078,AAA,SWE,A,12175.4,66,46,BBE,FOLDERZ,LTTRS,2003-01-21 20:45:00,2003-07-17 12:58:00,NOT COLLATERAL
+168657,16605.189,BBB,CVF,A,12175.24,67,45,BBF,FOLDERX,LTTRS,2003-01-21 21:45:00,2003-07-17 14:58:00,NOT COLLATERAL
+168668,16608.3,CCC,DSFG,A,12175.08,68,44,BBG,FOLDERX,LTTRS,2003-01-21 22:45:00,2003-07-17 16:58:00,NOT COLLATERAL
+168679,16611.411,DDD,ASDRE,A,12174.92,69,43,BBH,FOLDERX,LTTRS,2003-01-21 23:45:00,2003-07-17 18:58:00,NOT COLLATERAL
+168690,16614.522,AAB,HJKSS,A,12174.76,70,42,CCA,FOLDERX,LTTRS,2003-01-22 00:45:00,2003-07-17 20:58:00,COLLATERAL
+168701,16617.633,AAC,KHAA,A,12174.6,71,41,CCB,FOLDERX,LTTRS,2003-01-22 01:45:00,2003-07-17 22:58:00,COLLATERAL
+168712,16620.744,AAD,KSLD,A,12174.44,72,40,CCD,FOLDERX,LTTRS,2003-01-22 02:45:00,2003-07-18 00:58:00,COLLATERAL
+168723,16623.855,AAE,EKID,A,12174.28,73,39,CCE,FOLDERX,LTTRS,2003-01-22 03:45:00,2003-07-18 02:58:00,NOT COLLATERAL
+168734,16626.966,AAF,VNCD,A,12174.12,74,38,CCF,FOLDERX,LTTRS,2003-01-22 04:45:00,2003-07-18 04:58:00,NOT COLLATERAL
+168745,16630.077,BBA,DKD,A,12173.96,75,37,CCG,FOLDERX,LTTRS,2003-01-22 05:45:00,2003-07-18 06:58:00,NOT COLLATERAL
+168756,16633.188,BBC,FKF,A,12173.8,76,36,CCH,FOLDERX,LTTRS,2003-01-22 06:45:00,2003-07-18 08:58:00,NOT COLLATERAL
+168767,16636.299,BBE,LES,A,12173.64,77,35,CCI,FOLDERX,LTTRS,2003-01-22 07:45:00,2003-07-18 10:58:00,NOT COLLATERAL
+168778,16639.41,BBF,KLD,A,12173.48,78,34,CCJ,FOLDERX,LTTRS,2003-01-22 08:45:00,2003-07-18 12:58:00,NOT COLLATERAL
+168789,16642.521,BBG,SKL,A,12173.32,79,33,DDD,FOLDERR,LTTRS,2003-01-22 09:45:00,2003-07-18 14:58:00,NOT COLLATERAL
+168800,16645.632,BBH,SIW,A,12173.16,80,32,DDA,FOLDERS,LTTRZ,2003-01-22 10:45:00,2003-07-18 16:58:00,NOT COLLATERAL
+168811,16648.743,CCA,CKA,A,12173,81,31,DAA,FOLDERX,LTTRA,2003-01-22 11:45:00,2003-07-18 18:58:00,NOT COLLATERAL
+168822,16651.854,CCB,LDE,A,12172.84,82,30,FKF,FOLDERR,LTTRB,2003-01-22 12:45:00,2003-07-18 20:58:00,COLLATERAL
+168833,16654.965,CCD,KFF,A,12172.68,83,29,LES,FOLDERS,LTTRB,2003-01-22 13:45:00,2003-07-18 22:58:00,COLLATERAL
+168844,16658.076,CCE,EFH,A,12172.52,84,28,KLD,FOLDERX,LTTRA,2003-01-22 14:45:00,2003-07-19 00:58:00,COLLATERAL
+168855,16661.187,CCF,NGC,A,12172.36,85,27,SKL,FOLDERR,LTTRA,2003-01-22 15:45:00,2003-07-19 02:58:00,NOT COLLATERAL
+168866,16664.298,CCG,DER,A,12172.2,86,26,SIW,FOLDERS,LTTRS,2003-01-22 16:45:00,2003-07-19 04:58:00,NOT COLLATERAL
+168877,16667.409,CCH,FVG,A,12172.04,87,25,CKA,FOLDERX,LTTRZ,2003-01-22 17:45:00,2003-07-19 06:58:00,NOT COLLATERAL
+168888,16670.52,CCI,KWE,A,12171.88,88,24,LDE,FOLDERR,LTTRS,2003-01-22 18:45:00,2003-07-19 08:58:00,NOT COLLATERAL
+168899,16673.631,CCJ,WER,A,12171.72,89,23,KFF,FOLDERS,LTTRS,2003-01-22 19:45:00,2003-07-19 10:58:00,NOT COLLATERAL
+168910,16676.742,DDD,GFH,A,12171.56,90,22,EFH,FOLDERX,LTTRS,2003-01-22 20:45:00,2003-07-19 12:58:00,NOT COLLATERAL
+168921,16679.853,DDA,BGF,A,12171.4,91,21,NGC,FOLDERR,LTTRS,2003-01-22 21:44:00,2003-07-19 14:58:00,NOT COLLATERAL
+168932,16682.964,DAA,XCS,A,12171.24,92,20,DER,FOLDERS,LTTRS,2003-01-22 22:44:00,2003-07-19 16:58:00,NOT COLLATERAL
+168943,16686.075,DBB,JHK,A,12171.08,93,19,FVG,FOLDERX,LTTRS,2003-01-22 23:44:00,2003-07-19 18:58:00,NOT COLLATERAL
+168954,16689.186,DCC,SFD,A,12170.92,94,18,KWE,FOLDERD,LTTRS,2003-01-23 00:44:00,2003-07-19 20:58:00,COLLATERAL
+168965,16692.297,DEE,WRE,A,12170.76,95,17,WER,FOLDERE,LTTRS,2003-01-23 01:44:00,2003-07-19 22:58:00,COLLATERAL
+168976,16695.408,DFF,HGV,A,12170.6,96,16,GFH,FOLDERF,LTTRS,2003-01-23 02:44:00,2003-07-20 00:58:00,COLLATERAL
+168987,16698.519,DGG,KLS,A,12170.44,97,15,BGF,FOLDERG,LTTRS,2003-01-23 03:44:00,2003-07-20 02:58:00,NOT COLLATERAL
+168998,16701.63,DHH,SDK,A,12170.28,98,14,XCS,FOLDERH,LTTRS,2003-01-23 04:44:00,2003-07-20 04:58:00,NOT COLLATERAL
+169009,16704.741,AAA,MNV,A,12170.12,99,13,JHK,FOLDERI,LTTRS,2003-01-23 05:44:00,2003-07-20 06:58:00,NOT COLLATERAL
+169020,16707.852,BBB,OKW,A,12169.96,100,12,SFD,FOLDERJ,LTTRS,2003-01-23 06:44:00,2003-07-20 08:58:00,NOT COLLATERAL
+169031,16710.963,CCC,ASS,A,12169.8,101,11,WRE,FOLDERK,LTTRS,2003-01-23 07:44:00,2003-07-20 10:58:00,NOT COLLATERAL
+169042,16714.074,DDD,CKA,A,12169.64,102,10,HGV,FOLDERL,LTTRZ,2003-01-23 08:44:00,2003-07-20 12:58:00,NOT COLLATERAL
+169053,16717.185,AAB,SWQ,A,12169.48,103,9,KLS,FOLDERM,LTTRA,2003-01-23 09:44:00,2003-07-20 14:58:00,NOT COLLATERAL
+169064,16720.296,AAC,KUH,A,12169.32,104,8,SDK,FOLDERN,LTTRB,2003-01-23 10:44:00,2003-07-20 16:58:00,NOT COLLATERAL
+169075,16723.407,AAD,XCV,A,12169.16,105,7,MNV,FOLDERN,LTTRB,2003-01-23 11:44:00,2003-07-20 18:58:00,NOT COLLATERAL
+169086,16726.518,AAE,ZAQ,A,12169,106,6,OKW,FOLDERN,LTTRA,2003-01-23 12:44:00,2003-07-20 20:58:00,COLLATERAL
+169097,16729.629,AAF,MKO,A,12168.84,107,5,ASS,FOLDERN,LTTRA,2003-01-23 13:44:00,2003-07-20 22:58:00,COLLATERAL
+169108,16732.74,BBA,VFR,A,12168.68,108,4,CKA,FOLDERL,LTTRS,2003-01-23 14:44:00,2003-07-21 00:58:00,COLLATERAL
+169119,16735.851,BBC,YUJ,A,12168.52,109,3,SWQ,FOLDERL,LTTRZ,2003-01-23 15:44:00,2003-07-21 02:58:00,NOT COLLATERAL
+169130,16738.962,BBE,MED,A,12168.36,110,1,KUH,FOLDERL,LTTRS,2003-01-23 16:44:00,2003-07-21 04:58:00,NOT COLLATERAL
+169141,16742.073,BBF,SWE,A,12168.2,111,2,XCV,FOLDERL,LTTRS,2003-01-23 17:44:00,2003-07-21 06:58:00,NOT COLLATERAL
+169152,16745.184,BBG,CVF,A,12168.04,112,3,ZAQ,FOLDERL,LTTRS,2003-01-23 18:44:00,2003-07-21 08:58:00,NOT COLLATERAL
+169163,16748.295,BBH,DSFG,A,12167.88,113,4,MKO,FOLDERA,LTTRS,2003-01-23 19:44:00,2003-07-21 10:58:00,NOT COLLATERAL
+169174,16751.406,CCA,ASDRE,A,12167.72,114,5,VFR,FOLDERB,LTTRS,2003-01-23 20:44:00,2003-07-21 12:58:00,NOT COLLATERAL
+169185,16754.517,CCB,HJKSS,A,12167.56,115,6,YUJ,FOLDERC,LTTRS,2003-01-23 21:44:00,2003-07-21 14:58:00,NOT COLLATERAL
+169196,16757.628,CCD,KHAA,A,12167.4,116,7,AAA,FOLDERD,LTTRS,2003-01-23 22:44:00,2003-07-21 16:58:00,NOT COLLATERAL
+169207,16760.739,CCE,KSLD,A,12167.24,117,8,BBB,FOLDERE,LTTRS,2003-01-23 23:44:00,2003-07-21 18:58:00,NOT COLLATERAL
+169218,16763.85,CCF,EKID,A,12167.08,118,9,CCC,FOLDERF,LTTRS,2003-01-24 00:44:00,2003-07-21 20:58:00,COLLATERAL
+169229,16766.961,CCG,VNCD,A,12166.92,119,10,DDD,FOLDERG,LTTRS,2003-01-24 01:44:00,2003-07-21 22:58:00,COLLATERAL
+169240,16770.072,CCH,DKD,A,12166.76,120,11,AAB,FOLDERH,LTTRS,2003-01-24 02:44:00,2003-07-22 00:58:00,COLLATERAL
+169251,16773.183,CCI,FKF,A,12166.6,121,12,AAC,FOLDERI,LTTRS,2003-01-24 03:44:00,2003-07-22 02:58:00,NOT COLLATERAL
+169262,16776.294,CCJ,LES,A,12166.44,122,13,AAD,FOLDERJ,LTTRS,2003-01-24 04:44:00,2003-07-22 04:58:00,NULL
+169273,16779.405,DDD,KLD,A,12166.28,123,14,AAE,FOLDERK,LTTRS,2003-01-24 05:44:00,2003-07-22 06:58:00,NULL
+169284,16782.516,DDA,SKL,A,12166.12,124,15,AAF,FOLDERL,LTTRZ,2003-01-24 06:44:00,2003-07-22 08:58:00,NULL
+169295,16785.627,DAA,SIW,A,12165.96,125,16,BBA,FOLDERM,LTTRA,2003-01-24 07:44:00,2003-07-22 10:58:00,NULL
+169306,16788.738,DBB,CKA,A,12165.8,126,17,BBC,FOLDERN,LTTRB,2003-01-24 08:44:00,2003-07-22 12:58:00,NULL
+169317,16791.849,DCC,LDE,A,12165.64,127,18,BBE,FOLDERO,LTTRB,2003-01-24 09:44:00,2003-07-22 14:58:00,NULL
+169328,16794.96,DEE,KFF,A,12165.48,128,19,BBF,FOLDERP,LTTRA,2003-01-24 10:44:00,2003-07-22 16:58:00,NOT COLLATERAL
+169339,16798.071,DFF,EFH,A,12165.32,129,20,BBG,FOLDERQ,LTTRA,2003-01-24 11:44:00,2003-07-22 18:58:00,NOT COLLATERAL
+169350,16801.182,DGG,NGC,A,12165.16,130,21,BBH,FOLDERR,LTTRS,2003-01-24 12:44:00,2003-07-22 20:58:00,COLLATERAL
+169361,16804.293,DHH,DER,A,12165,131,22,CCA,FOLDERS,LTTRZ,2003-01-24 13:44:00,2003-07-22 22:58:00,COLLATERAL
+169372,16807.404,AAA,FVG,A,12164.84,132,23,CCB,FOLDERT,LTTRS,2003-01-24 14:44:00,2003-07-23 00:58:00,COLLATERAL
+169383,16810.515,BBB,KWE,A,12164.68,133,24,CCD,FOLDERU,LTTRS,2003-01-24 15:44:00,2003-07-23 02:58:00,NULL
+169394,16813.626,CCC,WER,A,12164.52,134,25,CCE,FOLDERV,LTTRS,2003-01-24 16:44:00,2003-07-23 04:58:00,NULL
+169405,16816.737,DDD,GFH,A,12164.36,135,26,CCF,FOLDERW,LTTRS,2003-01-24 17:44:00,2003-07-23 06:58:00,NULL
+169416,16819.848,AAB,BGF,A,12164.2,136,27,CCG,FOLDERX,LTTRS,2003-01-24 18:44:00,2003-07-23 08:58:00,NULL
+169427,16822.959,AAC,XCS,A,12164.04,137,28,CCH,FOLDERY,LTTRS,2003-01-24 19:44:00,2003-07-23 10:58:00,NULL
+169438,16826.07,AAD,JHK,A,12163.88,138,29,CCI,FOLDERZ,LTTRS,2003-01-24 20:44:00,2003-07-23 12:58:00,NULL
+169449,16829.181,AAE,SFD,A,12163.72,139,30,CCJ,FOLDERA,LTTRS,2003-01-24 21:44:00,2003-07-23 14:58:00,NOT COLLATERAL
+169460,16832.292,AAF,WRE,A,12163.56,140,31,DDD,FOLDERB,LTTRS,2003-01-24 22:44:00,2003-07-23 16:58:00,NOT COLLATERAL
+169471,16835.403,BBA,HGV,A,12163.4,141,32,DDA,FOLDERC,LTTRS,2003-01-24 23:44:00,2003-07-23 18:58:00,NOT COLLATERAL
+169482,16838.514,BBC,KLS,A,12163.24,142,33,DAA,FOLDERD,LTTRS,2003-01-25 00:44:00,2003-07-23 20:58:00,COLLATERAL
+169493,16841.625,BBE,SDK,A,12163.08,143,34,FKF,FOLDERE,LTTRS,2003-01-25 01:44:00,2003-07-23 22:58:00,COLLATERAL
+169504,16844.736,BBF,MNV,A,12162.92,144,35,LES,FOLDERF,LTTRS,2003-01-25 02:44:00,2003-07-24 00:58:00,COLLATERAL
+169515,16847.847,BBG,OKW,A,12162.76,145,36,KLD,FOLDERG,LTTRS,2003-01-25 03:44:00,2003-07-24 02:58:00,NULL
+169526,16850.958,BBH,ASS,A,12162.6,146,37,SKL,FOLDERH,LTTRZ,2003-01-25 04:44:00,2003-07-24 04:58:00,NULL
+169537,16854.069,CCA,CKA,A,12162.44,147,38,SIW,FOLDERI,LTTRA,2003-01-25 05:44:00,2003-07-24 06:58:00,NULL
+169548,16857.18,CCB,SWQ,A,12162.28,148,39,CKA,FOLDERJ,LTTRB,2003-01-25 06:44:00,2003-07-24 08:58:00,NULL
+169559,16860.291,CCD,KUH,A,12162.12,149,40,LDE,FOLDERK,LTTRB,2003-01-25 07:44:00,2003-07-24 10:58:00,NULL
+169570,16863.402,CCE,XCV,A,12161.96,150,41,KFF,FOLDERL,LTTRA,2003-01-25 08:44:00,2003-07-24 12:58:00,NULL
+169581,16866.513,CCF,ZAQ,A,12161.8,151,42,EFH,FOLDERM,LTTRA,2003-01-25 09:44:00,2003-07-24 14:58:00,NULL
+169592,16869.624,CCG,MKO,A,12161.64,152,43,NGC,FOLDERN,LTTRS,2003-01-25 10:44:00,2003-07-24 16:58:00,NULL
+169603,16872.735,CCH,VFR,A,12161.48,153,44,DER,FOLDERO,LTTRZ,2003-01-25 11:44:00,2003-07-24 18:58:00,NULL
+169614,16875.846,CCI,YUJ,A,12161.32,154,45,FVG,FOLDERP,LTTRS,2003-01-25 12:44:00,2003-07-24 20:58:00,COLLATERAL
+169625,16878.957,CCJ,MED,A,12161.16,155,46,KWE,FOLDERQ,LTTRS,2003-01-25 13:44:00,2003-07-24 22:58:00,COLLATERAL
+169636,16882.068,DDD,SWE,A,12161,156,47,WER,FOLDERR,LTTRS,2003-01-25 14:44:00,2003-07-25 00:58:00,COLLATERAL
+169647,16885.179,DDA,CVF,A,12160.84,157,48,GFH,FOLDERS,LTTRS,2003-01-25 15:44:00,2003-07-25 02:58:00,NOT COLLATERAL
+169658,16888.29,DAA,DSFG,A,12160.68,158,49,BGF,FOLDERT,LTTRS,2003-01-25 16:44:00,2003-07-25 04:58:00,NOT COLLATERAL
+169669,16891.401,DBB,ASDRE,A,12160.52,159,48,XCS,FOLDERU,LTTRS,2003-01-25 17:44:00,2003-07-25 06:58:00,NOT COLLATERAL
+169680,16894.512,DCC,HJKSS,A,12160.36,160,47,JHK,FOLDERV,LTTRS,2003-01-25 18:44:00,2003-07-25 08:58:00,NOT COLLATERAL
+169691,16897.623,DEE,KHAA,A,12160.2,161,46,SFD,FOLDERW,LTTRS,2003-01-25 19:44:00,2003-07-25 10:58:00,NOT COLLATERAL
+169702,16900.734,DFF,KSLD,A,12160.04,162,45,WRE,FOLDERX,LTTRS,2003-01-25 20:44:00,2003-07-25 12:58:00,NOT COLLATERAL
+169713,16903.845,DGG,EKID,A,12159.88,163,44,HGV,FOLDERY,LTTRS,2003-01-25 21:44:00,2003-07-25 14:58:00,NOT COLLATERAL
+169724,16906.956,DHH,VNCD,A,12159.72,164,43,KLS,FOLDERZ,LTTRS,2003-01-25 22:44:00,2003-07-25 16:58:00,NOT COLLATERAL
+169735,16910.067,AAA,DKD,A,12159.56,165,42,SDK,FOLDERZ,LTTRS,2003-01-25 23:44:00,2003-07-25 18:58:00,NOT COLLATERAL
+169746,16913.178,BBB,FKF,A,12159.4,166,41,MNV,FOLDERZ,LTTRS,2003-01-26 00:44:00,2003-07-25 20:58:00,COLLATERAL
+169757,16916.289,CCC,LES,A,12159.24,167,40,OKW,FOLDERZ,LTTRS,2003-01-26 01:44:00,2003-07-25 22:58:00,COLLATERAL
+169768,16919.4,DDD,KLD,A,12159.08,168,39,ASS,FOLDERZ,LTTRZ,2003-01-26 02:44:00,2003-07-26 00:58:00,COLLATERAL
+169779,16922.511,AAB,SKL,A,12158.92,169,38,CKA,FOLDERZ,LTTRA,2003-01-26 03:44:00,2003-07-26 02:58:00,NOT COLLATERAL
+169790,16925.622,AAC,SIW,A,12158.76,170,37,SWQ,FOLDERZ,LTTRB,2003-01-26 04:44:00,2003-07-26 04:58:00,NOT COLLATERAL
+169801,16928.733,AAD,CKA,A,12158.6,171,36,KUH,FOLDERZ,LTTRB,2003-01-26 05:44:00,2003-07-26 06:58:00,NOT COLLATERAL
+169812,16931.844,AAE,LDE,A,12158.44,172,35,XCV,FOLDERZ,LTTRA,2003-01-26 06:44:00,2003-07-26 08:58:00,NOT COLLATERAL
+169823,16934.955,AAF,KFF,A,12158.28,173,34,ZAQ,FOLDERZ,LTTRA,2003-01-26 07:44:00,2003-07-26 10:58:00,NOT COLLATERAL
+169834,16938.066,BBA,EFH,A,12158.12,174,33,MKO,FOLDERZ,LTTRS,2003-01-26 08:44:00,2003-07-26 12:58:00,NOT COLLATERAL
+169845,16941.177,BBC,NGC,A,12157.96,175,32,VFR,FOLDERZ,LTTRZ,2003-01-26 09:44:00,2003-07-26 14:58:00,NOT COLLATERAL
+169856,16944.288,BBE,DER,A,12157.8,176,31,YUJ,FOLDERZ,LTTRS,2003-01-26 10:44:00,2003-07-26 16:58:00,NOT COLLATERAL
+169867,16947.399,BBF,FVG,A,12157.64,177,30,AAA,FOLDERZ,LTTRS,2003-01-26 11:44:00,2003-07-26 18:58:00,NOT COLLATERAL
+169878,16950.51,BBG,KWE,A,12157.48,178,29,BBB,FOLDERX,LTTRS,2003-01-26 12:44:00,2003-07-26 20:58:00,COLLATERAL
+169889,16953.621,BBH,WER,A,12157.32,179,28,CCC,FOLDERX,LTTRS,2003-01-26 13:44:00,2003-07-26 22:58:00,COLLATERAL
+169900,16956.732,CCA,GFH,A,12157.16,180,27,DDD,FOLDERX,LTTRS,2003-01-26 14:44:00,2003-07-27 00:58:00,COLLATERAL
+169911,16959.843,CCB,BGF,A,12157,181,26,AAB,FOLDERX,LTTRS,2003-01-26 15:44:00,2003-07-27 02:58:00,NOT COLLATERAL
+169922,16962.954,CCD,XCS,A,12156.84,182,25,AAC,FOLDERX,LTTRS,2003-01-26 16:44:00,2003-07-27 04:58:00,NOT COLLATERAL
+169933,16966.065,CCE,JHK,A,12156.68,183,24,AAD,FOLDERX,LTTRS,2003-01-26 17:44:00,2003-07-27 06:58:00,NOT COLLATERAL
+169944,16969.176,CCF,SFD,A,12156.52,184,23,AAE,FOLDERX,LTTRS,2003-01-26 18:44:00,2003-07-27 08:58:00,NOT COLLATERAL
+169955,16972.287,CCG,WRE,A,12156.36,185,22,AAF,FOLDERX,LTTRS,2003-01-26 19:44:00,2003-07-27 10:58:00,NOT COLLATERAL
+169966,16975.398,CCH,HGV,A,12156.2,186,21,BBA,FOLDERX,LTTRS,2003-01-26 20:44:00,2003-07-27 12:58:00,NOT COLLATERAL
+169977,16978.509,CCI,KLS,A,12156.04,187,20,BBC,FOLDERX,LTTRS,2003-01-26 21:44:00,2003-07-27 14:58:00,NOT COLLATERAL
+169988,16981.62,CCJ,SDK,A,12155.88,188,19,BBE,FOLDERX,LTTRS,2003-01-26 22:44:00,2003-07-27 16:58:00,NOT COLLATERAL
+169999,16984.731,DDD,MNV,A,12155.72,189,18,BBF,FOLDERX,LTTRS,2003-01-26 23:44:00,2003-07-27 18:58:00,NOT COLLATERAL
+170010,16987.842,DDA,OKW,A,12155.56,190,17,BBG,FOLDERR,LTTRZ,2003-01-27 00:44:00,2003-07-27 20:58:00,COLLATERAL
+170021,16990.953,DAA,ASS,A,12155.4,191,16,BBH,FOLDERS,LTTRA,2003-01-27 01:44:00,2003-07-27 22:58:00,COLLATERAL
+170032,16994.064,DBB,CKA,A,12155.24,192,15,CCA,FOLDERX,LTTRB,2003-01-27 02:44:00,2003-07-28 00:58:00,COLLATERAL
+170043,16997.175,DCC,SWQ,A,12155.08,193,14,CCB,FOLDERR,LTTRB,2003-01-27 03:44:00,2003-07-28 02:58:00,NOT COLLATERAL
+170054,17000.286,DEE,KUH,A,12154.92,194,13,CCD,FOLDERS,LTTRA,2003-01-27 04:44:00,2003-07-28 04:58:00,NOT COLLATERAL
+170065,17003.397,DFF,XCV,A,12154.76,195,12,CCE,FOLDERX,LTTRA,2003-01-27 05:44:00,2003-07-28 06:58:00,NOT COLLATERAL
+170076,17006.508,DGG,ZAQ,A,12154.6,196,11,CCF,FOLDERR,LTTRS,2003-01-27 06:44:00,2003-07-28 08:58:00,NOT COLLATERAL
+170087,17009.619,DHH,MKO,A,12154.44,197,10,CCG,FOLDERS,LTTRZ,2003-01-27 07:44:00,2003-07-28 10:58:00,NOT COLLATERAL
+170098,17012.73,AAA,VFR,A,12154.28,198,9,CCH,FOLDERX,LTTRS,2003-01-27 08:44:00,2003-07-28 12:58:00,NOT COLLATERAL
+170109,17015.841,BBB,YUJ,A,12154.12,199,8,CCI,FOLDERR,LTTRS,2003-01-27 09:44:00,2003-07-28 14:58:00,NOT COLLATERAL
+170120,17018.952,CCC,MED,A,12153.96,200,7,CCJ,FOLDERS,LTTRS,2003-01-27 10:44:00,2003-07-28 16:58:00,NOT COLLATERAL
+170131,17022.063,DDD,SWE,A,12153.8,201,6,DDD,FOLDERX,LTTRS,2003-01-27 11:44:00,2003-07-28 18:58:00,NOT COLLATERAL
+170142,17025.174,AAB,CVF,A,12153.64,202,5,DDA,FOLDERR,LTTRS,2003-01-27 12:44:00,2003-07-28 20:58:00,COLLATERAL
+170153,17028.285,AAC,DSFG,A,12153.48,203,4,DAA,FOLDERS,LTTRS,2003-01-27 13:44:00,2003-07-28 22:58:00,COLLATERAL
+170164,17031.396,AAD,ASDRE,A,12153.32,204,3,FKF,FOLDERX,LTTRS,2003-01-27 14:44:00,2003-07-29 00:58:00,COLLATERAL
+170175,17034.507,AAE,HJKSS,A,12153.16,205,1,LES,FOLDERD,LTTRS,2003-01-27 15:44:00,2003-07-29 02:58:00,NOT COLLATERAL
+170186,17037.618,AAF,KHAA,A,12153,206,2,KLD,FOLDERE,LTTRS,2003-01-27 16:44:00,2003-07-29 04:58:00,NOT COLLATERAL
+170197,17040.729,BBA,KSLD,A,12152.84,207,3,SKL,FOLDERF,LTTRS,2003-01-27 17:44:00,2003-07-29 06:58:00,NOT COLLATERAL
+170208,17043.84,BBC,EKID,A,12152.68,208,4,SIW,FOLDERG,LTTRS,2003-01-27 18:44:00,2003-07-29 08:58:00,NOT COLLATERAL
+170219,17046.951,BBE,VNCD,A,12152.52,209,5,CKA,FOLDERH,LTTRS,2003-01-27 19:44:00,2003-07-29 10:58:00,NOT COLLATERAL
+170230,17050.062,BBF,DKD,A,12152.36,210,6,LDE,FOLDERI,LTTRS,2003-01-27 20:44:00,2003-07-29 12:58:00,NOT COLLATERAL
+170241,17053.173,BBG,FKF,A,12152.2,211,7,KFF,FOLDERJ,LTTRS,2003-01-27 21:44:00,2003-07-29 14:58:00,NOT COLLATERAL
+170252,17056.284,BBH,LES,A,12152.04,212,8,EFH,FOLDERK,LTTRZ,2003-01-27 22:44:00,2003-07-29 16:58:00,NOT COLLATERAL
+170263,17059.395,CCA,KLD,A,12151.88,213,9,NGC,FOLDERL,LTTRA,2003-01-27 23:44:00,2003-07-29 18:58:00,NOT COLLATERAL
+170274,17062.506,CCB,SKL,A,12151.72,214,10,DER,FOLDERM,LTTRB,2003-01-28 00:44:00,2003-07-29 20:58:00,COLLATERAL
+170285,17065.617,CCD,SIW,A,12151.56,215,11,FVG,FOLDERN,LTTRB,2003-01-28 01:44:00,2003-07-29 22:58:00,COLLATERAL
+170296,17068.728,CCE,CKA,A,12151.4,216,12,KWE,FOLDERN,LTTRA,2003-01-28 02:44:00,2003-07-30 00:58:00,COLLATERAL
+170307,17071.839,CCF,LDE,A,12151.24,217,13,WER,FOLDERN,LTTRA,2003-01-28 03:44:00,2003-07-30 02:58:00,NOT COLLATERAL
+170318,17074.95,CCG,KFF,A,12151.08,218,14,GFH,FOLDERN,LTTRS,2003-01-28 04:44:00,2003-07-30 04:58:00,NOT COLLATERAL
+170329,17078.061,CCH,EFH,A,12150.92,219,15,BGF,FOLDERL,LTTRZ,2003-01-28 05:44:00,2003-07-30 06:58:00,NOT COLLATERAL
+170340,17081.172,CCI,NGC,A,12150.76,220,16,XCS,FOLDERL,LTTRS,2003-01-28 06:44:00,2003-07-30 08:58:00,NOT COLLATERAL
+170351,17084.283,CCJ,DER,A,12150.6,221,17,JHK,FOLDERL,LTTRS,2003-01-28 07:44:00,2003-07-30 10:58:00,NOT COLLATERAL
+170362,17087.394,DDD,FVG,A,12150.44,222,18,SFD,FOLDERL,LTTRS,2003-01-28 08:44:00,2003-07-30 12:58:00,NOT COLLATERAL
+170373,17090.505,DDA,KWE,A,12150.28,223,19,WRE,FOLDERL,LTTRS,2003-01-28 09:44:00,2003-07-30 14:58:00,NOT COLLATERAL
+170384,17093.616,DAA,WER,A,12150.12,224,20,HGV,FOLDERA,LTTRS,2003-01-28 10:44:00,2003-07-30 16:58:00,NOT COLLATERAL
+170395,17096.727,DBB,GFH,A,12149.96,225,21,KLS,FOLDERB,LTTRS,2003-01-28 11:44:00,2003-07-30 18:58:00,NOT COLLATERAL
+170406,17099.838,DCC,BGF,A,12149.8,226,22,SDK,FOLDERC,LTTRS,2003-01-28 12:44:00,2003-07-30 20:58:00,COLLATERAL
+170417,17102.949,DEE,XCS,A,12149.64,227,23,MNV,FOLDERD,LTTRS,2003-01-28 13:44:00,2003-07-30 22:58:00,COLLATERAL
+170428,17106.06,DFF,JHK,A,12149.48,228,24,OKW,FOLDERE,LTTRS,2003-01-28 14:44:00,2003-07-31 00:58:00,COLLATERAL
+170439,17109.171,DGG,SFD,A,12135.66,229,25,ASS,FOLDERF,LTTRS,2003-01-28 15:44:00,2003-07-31 02:58:00,NOT COLLATERAL
+170450,17112.282,DHH,WRE,A,12121.84,230,26,CKA,FOLDERG,LTTRS,2003-01-28 16:44:00,2003-07-31 04:58:00,NOT COLLATERAL
+170461,17115.393,AAA,HGV,A,12108.02,231,27,SWQ,FOLDERH,LTTRS,2003-01-28 17:44:00,2003-07-31 06:58:00,NOT COLLATERAL
+170472,17118.504,BBB,KLS,A,12094.2,232,28,KUH,FOLDERI,LTTRS,2003-01-28 18:44:00,2003-07-31 08:58:00,NOT COLLATERAL
+170483,17121.615,CCC,SDK,A,12080.38,233,29,XCV,FOLDERJ,LTTRS,2003-01-28 19:44:00,2003-07-31 10:58:00,NOT COLLATERAL
+170494,17124.726,DDD,MNV,A,12066.56,234,30,ZAQ,FOLDERK,LTTRZ,2003-01-28 20:44:00,2003-07-31 12:58:00,NOT COLLATERAL
+170505,17127.837,AAB,OKW,A,12052.74,235,31,MKO,FOLDERL,LTTRA,2003-01-28 21:44:00,2003-07-31 14:58:00,NOT COLLATERAL
+170516,17130.948,AAC,ASS,A,12038.92,236,32,VFR,FOLDERM,LTTRB,2003-01-28 22:44:00,2003-07-31 16:58:00,NOT COLLATERAL
+170527,17134.059,AAD,CKA,A,12025.1,237,33,YUJ,FOLDERN,LTTRB,2003-01-28 23:44:00,2003-07-31 18:58:00,NOT COLLATERAL
+170538,17137.17,AAE,SWQ,A,12011.28,238,34,AAA,FOLDERO,LTTRA,2003-01-29 00:44:00,2003-07-31 20:58:00,COLLATERAL
+170549,17140.281,AAF,KUH,A,11997.46,239,35,BBB,FOLDERP,LTTRA,2003-01-29 01:44:00,2003-07-31 22:58:00,COLLATERAL
+170560,17143.392,BBA,XCV,A,11983.64,240,36,CCC,FOLDERQ,LTTRS,2003-01-29 02:44:00,2003-08-01 00:58:00,COLLATERAL
+170571,17146.503,BBC,ZAQ,A,11969.82,241,37,DDD,FOLDERR,LTTRZ,2003-01-29 03:44:00,2003-08-01 02:58:00,NOT COLLATERAL
+170582,17149.614,BBE,MKO,A,11956,242,38,AAB,FOLDERS,LTTRS,2003-01-29 04:44:00,2003-08-01 04:58:00,NOT COLLATERAL
+170593,17152.725,BBF,VFR,A,11942.18,243,39,AAC,FOLDERT,LTTRS,2003-01-29 05:44:00,2003-08-01 06:58:00,NOT COLLATERAL
+170604,17155.836,BBG,YUJ,A,11928.36,244,40,AAD,FOLDERU,LTTRS,2003-01-29 06:44:00,2003-08-01 08:58:00,NOT COLLATERAL
+170615,17158.947,BBH,MED,A,11914.54,245,41,AAE,FOLDERV,LTTRS,2003-01-29 07:44:00,2003-08-01 10:58:00,NOT COLLATERAL
+170626,17162.058,CCA,SWE,A,11900.72,246,42,AAF,FOLDERW,LTTRS,2003-01-29 08:44:00,2003-08-01 12:58:00,NOT COLLATERAL
+170637,17165.169,CCB,CVF,A,11886.9,247,43,BBA,FOLDERX,LTTRS,2003-01-29 09:44:00,2003-08-01 14:58:00,NOT COLLATERAL
+170648,17168.28,CCD,DSFG,A,11873.08,248,44,BBC,FOLDERY,LTTRS,2003-01-29 10:44:00,2003-08-01 16:58:00,NOT COLLATERAL
+170659,17171.391,CCE,ASDRE,A,11859.26,249,45,BBE,FOLDERZ,LTTRS,2003-01-29 11:44:00,2003-08-01 18:58:00,NOT COLLATERAL
+170670,17174.502,CCF,HJKSS,A,11845.44,250,46,BBF,FOLDERA,LTTRS,2003-01-29 12:44:00,2003-08-01 20:58:00,COLLATERAL
+170681,17177.613,CCG,KHAA,A,11831.62,251,47,BBG,FOLDERB,LTTRS,2003-01-29 13:44:00,2003-08-01 22:58:00,COLLATERAL
+170692,17180.724,CCH,KSLD,A,11817.8,252,48,BBH,FOLDERC,LTTRS,2003-01-29 14:44:00,2003-08-02 00:58:00,COLLATERAL
+170703,17183.835,CCI,EKID,A,11803.98,253,49,CCA,FOLDERD,LTTRS,2003-01-29 15:44:00,2003-08-02 02:58:00,NOT COLLATERAL
+170714,17186.946,CCJ,VNCD,A,11790.16,254,48,CCB,FOLDERE,LTTRS,2003-01-29 16:44:00,2003-08-02 04:58:00,NOT COLLATERAL
+170725,17190.057,DDD,DKD,A,11776.34,255,47,CCD,FOLDERF,LTTRS,2003-01-29 17:44:00,2003-08-02 06:58:00,NOT COLLATERAL
+170736,17193.168,DDA,FKF,A,11762.52,256,46,CCE,FOLDERG,LTTRZ,2003-01-29 18:44:00,2003-08-02 08:58:00,NOT COLLATERAL
+170747,17196.279,DAA,LES,A,11748.7,257,45,CCF,FOLDERH,LTTRA,2003-01-29 19:44:00,2003-08-02 10:58:00,NOT COLLATERAL
+170758,17199.39,DBB,KLD,A,11734.88,258,44,CCG,FOLDERI,LTTRB,2003-01-29 20:44:00,2003-08-02 12:58:00,NOT COLLATERAL
+170769,17202.501,DCC,SKL,A,11721.06,259,43,CCH,FOLDERJ,LTTRB,2003-01-29 21:44:00,2003-08-02 14:58:00,NOT COLLATERAL
+170780,17205.612,DEE,SIW,A,11707.24,260,42,CCI,FOLDERK,LTTRA,2003-01-29 22:44:00,2003-08-02 16:58:00,NOT COLLATERAL
+170791,17208.723,DFF,CKA,A,11693.42,261,41,CCJ,FOLDERL,LTTRA,2003-01-29 23:44:00,2003-08-02 18:58:00,NOT COLLATERAL
+170802,17211.834,DGG,LDE,A,11679.6,262,40,DDD,FOLDERM,LTTRS,2003-01-30 00:44:00,2003-08-02 20:58:00,COLLATERAL
+170813,17214.945,DHH,KFF,A,11665.78,263,39,DDA,FOLDERN,LTTRZ,2003-01-30 01:44:00,2003-08-02 22:58:00,COLLATERAL
+170824,17218.056,AAA,EFH,A,11651.96,264,38,DAA,FOLDERO,LTTRS,2003-01-30 02:44:00,2003-08-03 00:58:00,COLLATERAL
+170835,17221.167,BBB,NGC,A,11638.14,265,37,FKF,FOLDERP,LTTRS,2003-01-30 03:44:00,2003-08-03 02:58:00,NOT COLLATERAL
+170846,17224.278,CCC,DER,A,11624.32,266,36,LES,FOLDERQ,LTTRS,2003-01-30 04:44:00,2003-08-03 04:58:00,NOT COLLATERAL
+170857,17227.389,DDD,FVG,A,11610.5,267,35,KLD,FOLDERR,LTTRS,2003-01-30 05:44:00,2003-08-03 06:58:00,NOT COLLATERAL
+170868,17230.5,AAB,KWE,A,11596.68,268,34,SKL,FOLDERS,LTTRS,2003-01-30 06:44:00,2003-08-03 08:58:00,NOT COLLATERAL
+170879,17233.611,AAC,WER,A,11582.86,269,33,SIW,FOLDERT,LTTRS,2003-01-30 07:44:00,2003-08-03 10:58:00,NOT COLLATERAL
+170890,17236.722,AAD,GFH,A,11569.04,270,32,CKA,FOLDERU,LTTRS,2003-01-30 08:44:00,2003-08-03 12:58:00,NOT COLLATERAL
+170901,17239.833,AAE,BGF,A,11555.22,271,31,LDE,FOLDERV,LTTRS,2003-01-30 09:44:00,2003-08-03 14:58:00,NOT COLLATERAL
+170912,17242.944,AAF,XCS,A,11541.4,272,30,KFF,FOLDERW,LTTRS,2003-01-30 10:44:00,2003-08-03 16:58:00,NOT COLLATERAL
+170923,17246.055,BBA,JHK,A,11527.58,273,29,EFH,FOLDERX,LTTRS,2003-01-30 11:44:00,2003-08-03 18:58:00,NOT COLLATERAL
+170934,17249.166,BBC,SFD,A,11513.76,274,28,NGC,FOLDERY,LTTRS,2003-01-30 12:44:00,2003-08-03 20:58:00,COLLATERAL
+170945,17252.277,BBE,WRE,A,11499.94,275,27,DER,FOLDERZ,LTTRS,2003-01-30 13:44:00,2003-08-03 22:58:00,COLLATERAL
+170956,17255.388,BBF,HGV,A,11486.12,276,26,FVG,FOLDERZ,LTTRS,2003-01-30 14:44:00,2003-08-04 00:58:00,COLLATERAL
+170967,17258.499,BBG,KLS,A,11472.3,277,25,KWE,FOLDERZ,LTTRS,2003-01-30 15:44:00,2003-08-04 02:58:00,NOT COLLATERAL
+170978,17261.61,BBH,SDK,A,11458.48,278,24,WER,FOLDERZ,LTTRZ,2003-01-30 16:44:00,2003-08-04 04:58:00,NOT COLLATERAL
+170989,17264.721,CCA,MNV,A,11444.66,279,23,GFH,FOLDERZ,LTTRA,2003-01-30 17:44:00,2003-08-04 06:58:00,NOT COLLATERAL
+171000,17267.832,CCB,OKW,A,11430.84,280,22,BGF,FOLDERZ,LTTRB,2003-01-30 18:44:00,2003-08-04 08:58:00,NOT COLLATERAL
+171011,17270.943,CCD,ASS,A,11417.02,281,21,XCS,FOLDERZ,LTTRB,2003-01-30 19:44:00,2003-08-04 10:58:00,NOT COLLATERAL
+171022,17274.054,CCE,CKA,A,11403.2,282,20,JHK,FOLDERZ,LTTRA,2003-01-30 20:44:00,2003-08-04 12:58:00,NOT COLLATERAL
+171033,17277.165,CCF,SWQ,A,11389.38,283,19,SFD,FOLDERZ,LTTRA,2003-01-30 21:44:00,2003-08-04 14:58:00,NOT COLLATERAL
+171044,17280.276,CCG,KUH,A,11375.56,284,18,WRE,FOLDERZ,LTTRS,2003-01-30 22:44:00,2003-08-04 16:58:00,NOT COLLATERAL
+171055,17283.387,CCH,XCV,A,11361.74,285,17,HGV,FOLDERZ,LTTRZ,2003-01-30 23:44:00,2003-08-04 18:58:00,NOT COLLATERAL
+171066,17286.498,CCI,ZAQ,A,11347.92,286,16,KLS,FOLDERZ,LTTRS,2003-01-31 00:44:00,2003-08-04 20:58:00,COLLATERAL
+171077,17289.609,CCJ,MKO,A,11334.1,287,15,SDK,FOLDERZ,LTTRS,2003-01-31 01:44:00,2003-08-04 22:58:00,COLLATERAL
+171088,17292.72,DDD,VFR,A,11320.28,288,14,MNV,FOLDERZ,LTTRS,2003-01-31 02:44:00,2003-08-05 00:58:00,COLLATERAL
+171099,17295.831,DDA,YUJ,A,11306.46,289,13,OKW,FOLDERX,LTTRS,2003-01-31 03:44:00,2003-08-05 02:58:00,NOT COLLATERAL
+171110,17298.942,DAA,MED,A,11292.64,290,12,ASS,FOLDERX,LTTRS,2003-01-31 04:44:00,2003-08-05 04:58:00,NOT COLLATERAL
+171121,17302.053,DBB,SWE,A,11278.82,291,11,CKA,FOLDERX,LTTRS,2003-01-31 05:44:00,2003-08-05 06:58:00,NOT COLLATERAL
+171132,17305.164,DCC,CVF,A,11265,292,10,SWQ,FOLDERX,LTTRS,2003-01-31 06:44:00,2003-08-05 08:58:00,NOT COLLATERAL
+171143,17308.275,DEE,DSFG,A,11251.18,293,9,KUH,FOLDERX,LTTRS,2003-01-31 07:44:00,2003-08-05 10:58:00,NOT COLLATERAL
+171154,17311.386,DFF,ASDRE,A,11237.36,294,8,XCV,FOLDERX,LTTRS,2003-01-31 08:43:00,2003-08-05 12:58:00,NOT COLLATERAL
+171165,17314.497,DGG,HJKSS,A,11223.54,295,7,ZAQ,FOLDERX,LTTRS,2003-01-31 09:43:00,2003-08-05 14:58:00,NOT COLLATERAL
+171176,17317.608,DHH,KHAA,A,11209.72,296,6,MKO,FOLDERX,LTTRS,2003-01-31 10:43:00,2003-08-05 16:58:00,NOT COLLATERAL
+171187,17320.719,AAA,KSLD,A,11195.9,297,5,VFR,FOLDERX,LTTRS,2003-01-31 11:43:00,2003-08-05 18:58:00,NOT COLLATERAL
+171198,17323.83,BBB,EKID,A,11182.08,298,4,YUJ,FOLDERX,LTTRS,2003-01-31 12:43:00,2003-08-05 20:58:00,COLLATERAL
+171209,17326.941,CCC,VNCD,A,11168.26,299,3,AAA,FOLDERX,LTTRS,2003-01-31 13:43:00,2003-08-05 22:58:00,COLLATERAL
+171220,17330.052,DDD,DKD,A,11154.44,300,1,BBB,FOLDERX,LTTRZ,2003-01-31 14:43:00,2003-08-06 00:58:00,COLLATERAL
+171231,17333.163,AAB,FKF,A,11140.62,301,2,CCC,FOLDERR,LTTRA,2003-01-31 15:43:00,2003-08-06 02:58:00,NOT COLLATERAL
+171242,17336.274,AAC,LES,A,11126.8,302,3,DDD,FOLDERS,LTTRB,2003-01-31 16:43:00,2003-08-06 04:58:00,NOT COLLATERAL
+171253,17339.385,AAD,KLD,A,11112.98,303,4,AAB,FOLDERX,LTTRB,2003-01-31 17:43:00,2003-08-06 06:58:00,NOT COLLATERAL
+171264,17342.496,AAE,SKL,A,11099.16,304,5,AAC,FOLDERR,LTTRA,2003-01-31 18:43:00,2003-08-06 08:58:00,NOT COLLATERAL
+171275,17345.607,AAF,SIW,A,11085.34,305,6,AAD,FOLDERS,LTTRA,2003-01-31 19:43:00,2003-08-06 10:58:00,NOT COLLATERAL
+171286,17348.718,BBA,CKA,A,11071.52,306,7,AAE,FOLDERX,LTTRS,2003-01-31 20:43:00,2003-08-06 12:58:00,NOT COLLATERAL
+171297,17351.829,BBC,LDE,A,11057.7,307,8,AAF,FOLDERR,LTTRZ,2003-01-31 21:43:00,2003-08-06 14:58:00,NOT COLLATERAL
+171308,17354.94,BBE,KFF,A,11043.88,308,9,BBA,FOLDERS,LTTRS,2003-01-31 22:43:00,2003-08-06 16:58:00,NOT COLLATERAL
+171319,17358.051,BBF,EFH,A,11030.06,309,10,BBC,FOLDERX,LTTRS,2003-01-31 23:43:00,2003-08-06 18:58:00,NOT COLLATERAL
+171330,17361.162,BBG,NGC,A,11016.24,310,11,BBE,FOLDERR,LTTRS,2003-02-01 00:43:00,2003-08-06 20:58:00,COLLATERAL
+171341,17364.273,BBH,DER,A,11002.42,311,12,BBF,FOLDERS,LTTRS,2003-02-01 01:43:00,2003-08-06 22:58:00,COLLATERAL
+171352,17367.384,CCA,FVG,A,10988.6,312,13,BBG,FOLDERX,LTTRS,2003-02-01 02:43:00,2003-08-07 00:58:00,COLLATERAL
+171363,17370.495,CCB,KWE,A,10974.78,313,14,BBH,FOLDERR,LTTRS,2003-02-01 03:43:00,2003-08-07 02:58:00,NOT COLLATERAL
+171374,17373.606,CCD,WER,A,10960.96,314,15,CCA,FOLDERS,LTTRS,2003-02-01 04:43:00,2003-08-07 04:58:00,NOT COLLATERAL
+171385,17376.717,CCE,GFH,A,10947.14,315,16,CCB,FOLDERX,LTTRS,2003-02-01 05:43:00,2003-08-07 06:58:00,NOT COLLATERAL
+171396,17379.828,CCF,BGF,A,10933.32,316,17,CCD,FOLDERD,LTTRS,2003-02-01 06:43:00,2003-08-07 08:58:00,NOT COLLATERAL
+171407,17382.939,CCG,XCS,A,10919.5,317,18,CCE,FOLDERE,LTTRS,2003-02-01 07:43:00,2003-08-07 10:58:00,NOT COLLATERAL
+171418,17386.05,CCH,JHK,A,10905.68,318,19,CCF,FOLDERF,LTTRS,2003-02-01 08:43:00,2003-08-07 12:58:00,NOT COLLATERAL
+171429,17389.161,CCI,SFD,A,10891.86,319,20,CCG,FOLDERG,LTTRS,2003-02-01 09:43:00,2003-08-07 14:58:00,NOT COLLATERAL
+171440,17392.272,CCJ,WRE,A,10878.04,320,21,CCH,FOLDERH,LTTRS,2003-02-01 10:43:00,2003-08-07 16:58:00,NOT COLLATERAL
+171451,17395.383,DDD,HGV,A,10864.22,321,22,CCI,FOLDERI,LTTRS,2003-02-01 11:43:00,2003-08-07 18:58:00,NOT COLLATERAL
+171462,17398.494,DDA,KLS,A,10850.4,322,23,CCJ,FOLDERJ,LTTRZ,2003-02-01 12:43:00,2003-08-07 20:58:00,COLLATERAL
+171473,17401.605,DAA,SDK,A,10836.58,323,24,DDD,FOLDERK,LTTRA,2003-02-01 13:43:00,2003-08-07 22:58:00,COLLATERAL
+171484,17404.716,DBB,MNV,A,10822.76,324,25,DDA,FOLDERL,LTTRB,2003-02-01 14:43:00,2003-08-08 00:58:00,COLLATERAL
+171495,17407.827,DCC,OKW,A,10808.94,325,26,DAA,FOLDERM,LTTRB,2003-02-01 15:43:00,2003-08-08 02:58:00,NOT COLLATERAL
+171506,17410.938,DEE,ASS,A,10795.12,326,27,FKF,FOLDERN,LTTRA,2003-02-01 16:43:00,2003-08-08 04:58:00,NOT COLLATERAL
+171517,17414.049,DFF,CKA,A,10781.3,327,28,LES,FOLDERN,LTTRA,2003-02-01 17:43:00,2003-08-08 06:58:00,NOT COLLATERAL
+171528,17417.16,DGG,SWQ,A,10767.48,328,29,KLD,FOLDERN,LTTRS,2003-02-01 18:43:00,2003-08-08 08:58:00,NOT COLLATERAL
+171539,17420.271,DHH,KUH,A,10753.66,329,30,SKL,FOLDERN,LTTRZ,2003-02-01 19:43:00,2003-08-08 10:58:00,NOT COLLATERAL
+171550,17423.382,AAA,XCV,A,10739.84,330,31,SIW,FOLDERL,LTTRS,2003-02-01 20:43:00,2003-08-08 12:58:00,NOT COLLATERAL
+171561,17426.493,BBB,ZAQ,A,10726.02,331,32,CKA,FOLDERL,LTTRS,2003-02-01 21:43:00,2003-08-08 14:58:00,NOT COLLATERAL
+171572,17429.604,CCC,MKO,A,10712.2,332,33,LDE,FOLDERL,LTTRS,2003-02-01 22:43:00,2003-08-08 16:58:00,NOT COLLATERAL
+171583,17432.715,DDD,VFR,A,10698.38,333,34,KFF,FOLDERL,LTTRS,2003-02-01 23:43:00,2003-08-08 18:58:00,NOT COLLATERAL
+171594,17435.826,AAB,YUJ,A,10684.56,334,35,EFH,FOLDERL,LTTRS,2003-02-02 00:43:00,2003-08-08 20:58:00,COLLATERAL
+171605,17438.937,AAC,MED,A,10670.74,335,36,NGC,FOLDERA,LTTRS,2003-02-02 01:43:00,2003-08-08 22:58:00,COLLATERAL
+171616,17442.048,AAD,SWE,A,10656.92,336,37,DER,FOLDERB,LTTRS,2003-02-02 02:43:00,2003-08-09 00:58:00,COLLATERAL
+171627,17445.159,AAE,CVF,A,10643.1,337,38,FVG,FOLDERC,LTTRS,2003-02-02 03:43:00,2003-08-09 02:58:00,NOT COLLATERAL
+171638,17448.27,AAF,DSFG,A,10629.28,338,39,KWE,FOLDERD,LTTRS,2003-02-02 04:43:00,2003-08-09 04:58:00,NOT COLLATERAL
+171649,17451.381,BBA,ASDRE,A,10615.46,339,40,WER,FOLDERE,LTTRS,2003-02-02 05:43:00,2003-08-09 06:58:00,NOT COLLATERAL
+171660,17454.492,BBC,HJKSS,A,10601.64,340,41,GFH,FOLDERF,LTTRS,2003-02-02 06:43:00,2003-08-09 08:58:00,NOT COLLATERAL
+171671,17457.603,BBE,KHAA,A,10587.82,341,42,BGF,FOLDERG,LTTRS,2003-02-02 07:43:00,2003-08-09 10:58:00,NOT COLLATERAL
+171682,17460.714,BBF,KSLD,A,10574,342,43,XCS,FOLDERH,LTTRS,2003-02-02 08:43:00,2003-08-09 12:58:00,NOT COLLATERAL
+171693,17463.825,BBG,EKID,A,10560.18,343,44,JHK,FOLDERI,LTTRS,2003-02-02 09:43:00,2003-08-09 14:58:00,NOT COLLATERAL
+171704,17466.936,BBH,VNCD,A,10546.36,344,45,SFD,FOLDERJ,LTTRZ,2003-02-02 10:43:00,2003-08-09 16:58:00,NOT COLLATERAL
+171715,17470.047,CCA,DKD,A,10532.54,345,46,WRE,FOLDERK,LTTRA,2003-02-02 11:43:00,2003-08-09 18:58:00,NOT COLLATERAL
+171726,17473.158,CCB,FKF,A,10518.72,346,47,HGV,FOLDERL,LTTRB,2003-02-02 12:43:00,2003-08-09 20:58:00,COLLATERAL
+171737,17476.269,CCD,LES,A,10504.9,347,48,KLS,FOLDERM,LTTRB,2003-02-02 13:43:00,2003-08-09 22:58:00,COLLATERAL
+171748,17479.38,CCE,KLD,A,10491.08,348,49,SDK,FOLDERN,LTTRA,2003-02-02 14:43:00,2003-08-10 00:58:00,COLLATERAL
+171759,17482.491,CCF,SKL,A,10477.26,349,48,MNV,FOLDERO,LTTRA,2003-02-02 15:43:00,2003-08-10 02:58:00,NOT COLLATERAL
+171770,17485.602,CCG,SIW,A,10463.44,350,47,OKW,FOLDERP,LTTRS,2003-02-02 16:43:00,2003-08-10 04:58:00,NOT COLLATERAL
+171781,17488.713,CCH,CKA,A,10449.62,351,46,ASS,FOLDERQ,LTTRZ,2003-02-02 17:43:00,2003-08-10 06:58:00,NOT COLLATERAL
+171792,17491.824,CCI,LDE,A,10435.8,352,45,CKA,FOLDERR,LTTRS,2003-02-02 18:43:00,2003-08-10 08:58:00,NOT COLLATERAL
+171803,17494.935,CCJ,KFF,A,10421.98,353,44,SWQ,FOLDERS,LTTRS,2003-02-02 19:43:00,2003-08-10 10:58:00,NOT COLLATERAL
+171814,17498.046,DDD,EFH,A,10408.16,354,43,KUH,FOLDERT,LTTRS,2003-02-02 20:43:00,2003-08-10 12:58:00,NOT COLLATERAL
+171825,17501.157,DDA,NGC,A,10394.34,355,42,XCV,FOLDERU,LTTRS,2003-02-02 21:43:00,2003-08-10 14:58:00,NOT COLLATERAL
+171836,17504.268,DAA,DER,A,10380.52,356,41,ZAQ,FOLDERV,LTTRS,2003-02-02 22:43:00,2003-08-10 16:58:00,NOT COLLATERAL
+171847,17507.379,DBB,FVG,A,10366.7,357,40,MKO,FOLDERW,LTTRS,2003-02-02 23:43:00,2003-08-10 18:58:00,NOT COLLATERAL
+171858,17510.49,DCC,KWE,A,10352.88,358,39,VFR,FOLDERX,LTTRS,2003-02-03 00:43:00,2003-08-10 20:58:00,COLLATERAL
+171869,17513.601,DEE,WER,A,10339.06,359,38,YUJ,FOLDERY,LTTRS,2003-02-03 01:43:00,2003-08-10 22:58:00,COLLATERAL
+171880,17516.712,DFF,GFH,A,10325.24,360,37,AAA,FOLDERZ,LTTRS,2003-02-03 02:43:00,2003-08-11 00:58:00,COLLATERAL
+171891,17519.823,DGG,BGF,A,10311.42,361,36,BBB,FOLDERA,LTTRS,2003-02-03 03:43:00,2003-08-11 02:58:00,NOT COLLATERAL
+171902,17522.934,DHH,XCS,A,10297.6,362,35,CCC,FOLDERB,LTTRS,2003-02-03 04:43:00,2003-08-11 04:58:00,NOT COLLATERAL
+171913,17526.045,AAA,JHK,A,10283.78,363,34,DDD,FOLDERC,LTTRS,2003-02-03 05:43:00,2003-08-11 06:58:00,NOT COLLATERAL
+171924,17529.156,BBB,SFD,A,10269.96,364,33,AAB,FOLDERD,LTTRS,2003-02-03 06:43:00,2003-08-11 08:58:00,NOT COLLATERAL
+171935,17532.267,CCC,WRE,A,10256.14,365,32,AAC,FOLDERE,LTTRS,2003-02-03 07:43:00,2003-08-11 10:58:00,NOT COLLATERAL
+171946,17535.378,DDD,HGV,A,10242.32,366,31,AAD,FOLDERF,LTTRZ,2003-02-03 08:43:00,2003-08-11 12:58:00,NOT COLLATERAL
+171957,17538.489,AAB,KLS,A,10228.5,367,30,AAE,FOLDERG,LTTRA,2003-02-03 09:43:00,2003-08-11 14:58:00,NOT COLLATERAL
+171968,17541.6,AAC,SDK,A,10214.68,368,29,AAF,FOLDERH,LTTRB,2003-02-03 10:43:00,2003-08-11 16:58:00,NOT COLLATERAL
+171979,17544.711,AAD,MNV,A,10200.86,369,28,BBA,FOLDERI,LTTRB,2003-02-03 11:43:00,2003-08-11 18:58:00,NOT COLLATERAL
+171990,17547.822,AAE,OKW,A,10187.04,370,27,BBC,FOLDERJ,LTTRA,2003-02-03 12:43:00,2003-08-11 20:58:00,COLLATERAL
+172001,17550.933,AAF,ASS,A,10173.22,371,26,BBE,FOLDERK,LTTRA,2003-02-03 13:43:00,2003-08-11 22:58:00,COLLATERAL
+172012,17554.044,BBA,CKA,A,10159.4,372,25,BBF,FOLDERL,LTTRS,2003-02-03 14:43:00,2003-08-12 00:58:00,COLLATERAL
+172023,17557.155,BBC,SWQ,A,10145.58,373,24,BBG,FOLDERM,LTTRZ,2003-02-03 15:43:00,2003-08-12 02:58:00,NOT COLLATERAL
+172034,17560.266,BBE,KUH,A,10131.76,374,23,BBH,FOLDERN,LTTRS,2003-02-03 16:43:00,2003-08-12 04:58:00,NOT COLLATERAL
+172045,17563.377,BBF,XCV,A,10117.94,375,22,CCA,FOLDERO,LTTRS,2003-02-03 17:43:00,2003-08-12 06:58:00,NOT COLLATERAL
+172056,17566.488,BBG,ZAQ,A,10104.12,376,21,CCB,FOLDERP,LTTRS,2003-02-03 18:43:00,2003-08-12 08:58:00,NOT COLLATERAL
+172067,17569.599,BBH,MKO,A,10090.3,377,20,CCD,FOLDERQ,LTTRS,2003-02-03 19:43:00,2003-08-12 10:58:00,NOT COLLATERAL
+172078,17572.71,CCA,VFR,A,10076.48,378,19,CCE,FOLDERR,LTTRS,2003-02-03 20:43:00,2003-08-12 12:58:00,NOT COLLATERAL
+172089,17575.821,CCB,YUJ,A,10062.66,379,18,CCF,FOLDERS,LTTRS,2003-02-03 21:43:00,2003-08-12 14:58:00,NOT COLLATERAL
+172100,17578.932,CCD,MED,A,10048.84,380,17,CCG,FOLDERT,LTTRS,2003-02-03 22:43:00,2003-08-12 16:58:00,NOT COLLATERAL
+172111,17582.043,CCE,SWE,A,10035.02,381,16,CCH,FOLDERU,LTTRS,2003-02-03 23:43:00,2003-08-12 18:58:00,NOT COLLATERAL
+172122,17585.154,CCF,CVF,A,10021.2,382,15,CCI,FOLDERV,LTTRS,2003-02-04 00:43:00,2003-08-12 20:58:00,COLLATERAL
+172133,17588.265,CCG,DSFG,A,10007.38,383,14,CCJ,FOLDERW,LTTRS,2003-02-04 01:43:00,2003-08-12 22:58:00,COLLATERAL
+172144,17591.376,CCH,ASDRE,A,9993.56,384,13,DDD,FOLDERX,LTTRS,2003-02-04 02:43:00,2003-08-13 00:58:00,COLLATERAL
+172155,17594.487,CCI,HJKSS,A,9979.74,385,12,DDA,FOLDERY,LTTRS,2003-02-04 03:43:00,2003-08-13 02:58:00,NOT COLLATERAL
+172166,17597.598,CCJ,KHAA,A,9965.92,386,11,DAA,FOLDERZ,LTTRS,2003-02-04 04:43:00,2003-08-13 04:58:00,NOT COLLATERAL
+172177,17600.709,DDD,KSLD,A,9952.1,387,10,FKF,FOLDERZ,LTTRS,2003-02-04 05:43:00,2003-08-13 06:58:00,NOT COLLATERAL
+172188,17603.82,DDA,EKID,A,9938.28,388,9,LES,FOLDERZ,LTTRZ,2003-02-04 06:43:00,2003-08-13 08:58:00,NOT COLLATERAL
+172199,17606.931,DAA,VNCD,A,9924.46,389,8,KLD,FOLDERZ,LTTRA,2003-02-04 07:43:00,2003-08-13 10:58:00,NOT COLLATERAL
+172210,17610.042,DBB,DKD,A,9910.64,390,7,SKL,FOLDERZ,LTTRB,2003-02-04 08:43:00,2003-08-13 12:58:00,NOT COLLATERAL
+172221,17613.153,DCC,FKF,A,9896.82,391,6,SIW,FOLDERZ,LTTRB,2003-02-04 09:43:00,2003-08-13 14:58:00,NOT COLLATERAL
+172232,17616.264,DEE,LES,A,9883,392,5,CKA,FOLDERZ,LTTRA,2003-02-04 10:43:00,2003-08-13 16:58:00,NOT COLLATERAL
+172243,17619.375,DFF,KLD,A,9869.18,393,4,LDE,FOLDERZ,LTTRA,2003-02-04 11:43:00,2003-08-13 18:58:00,NOT COLLATERAL
+172254,17622.486,DGG,SKL,A,9855.36,394,3,KFF,FOLDERZ,LTTRS,2003-02-04 12:43:00,2003-08-13 20:58:00,COLLATERAL
+172265,17625.597,DHH,SIW,A,9841.54,395,1,EFH,FOLDERZ,LTTRZ,2003-02-04 13:43:00,2003-08-13 22:58:00,COLLATERAL
+172276,17628.708,AAA,CKA,A,9827.72,396,2,NGC,FOLDERZ,LTTRS,2003-02-04 14:43:00,2003-08-14 00:58:00,COLLATERAL
+172287,17631.819,BBB,LDE,A,9813.9,397,3,DER,FOLDERZ,LTTRS,2003-02-04 15:43:00,2003-08-14 02:58:00,NOT COLLATERAL
+172298,17634.93,CCC,KFF,A,9800.08,398,4,FVG,FOLDERZ,LTTRS,2003-02-04 16:43:00,2003-08-14 04:58:00,NOT COLLATERAL
+172309,17638.041,DDD,EFH,A,9786.26,399,5,KWE,FOLDERZ,LTTRS,2003-02-04 17:43:00,2003-08-14 06:58:00,NOT COLLATERAL
+172320,17641.152,AAB,NGC,A,9772.44,400,6,WER,FOLDERX,LTTRS,2003-02-04 18:43:00,2003-08-14 08:58:00,NOT COLLATERAL
+172331,17644.263,AAC,DER,A,9758.62,401,7,GFH,FOLDERX,LTTRS,2003-02-04 19:43:00,2003-08-14 10:58:00,NOT COLLATERAL
+172342,17647.374,AAD,FVG,A,9744.8,402,8,BGF,FOLDERX,LTTRS,2003-02-04 20:43:00,2003-08-14 12:58:00,NOT COLLATERAL
+172353,17650.485,AAE,KWE,A,9730.98,403,9,XCS,FOLDERX,LTTRS,2003-02-04 21:43:00,2003-08-14 14:58:00,NOT COLLATERAL
+172364,17653.596,AAF,WER,A,9717.16,404,10,JHK,FOLDERX,LTTRS,2003-02-04 22:43:00,2003-08-14 16:58:00,NOT COLLATERAL
+172375,17656.707,BBA,GFH,A,9703.34,405,11,SFD,FOLDERX,LTTRS,2003-02-04 23:43:00,2003-08-14 18:58:00,NOT COLLATERAL
+172386,17659.818,BBC,BGF,A,9689.52,406,12,WRE,FOLDERX,LTTRS,2003-02-05 00:43:00,2003-08-14 20:58:00,COLLATERAL
+172397,17662.929,BBE,XCS,A,9675.7,407,13,HGV,FOLDERX,LTTRS,2003-02-05 01:43:00,2003-08-14 22:58:00,COLLATERAL
+172408,17666.04,BBF,JHK,A,9661.88,408,14,KLS,FOLDERX,LTTRS,2003-02-05 02:43:00,2003-08-15 00:58:00,COLLATERAL
+172419,17669.151,BBG,SFD,A,9648.06,409,15,SDK,FOLDERX,LTTRS,2003-02-05 03:43:00,2003-08-15 02:58:00,NOT COLLATERAL
+172430,17672.262,BBH,WRE,A,9634.24,410,16,MNV,FOLDERX,LTTRZ,2003-02-05 04:43:00,2003-08-15 04:58:00,NOT COLLATERAL
+172441,17675.373,CCA,HGV,A,9620.42,411,17,OKW,FOLDERX,LTTRA,2003-02-05 05:43:00,2003-08-15 06:58:00,NOT COLLATERAL
+172452,17678.484,CCB,KLS,A,9606.6,412,18,ASS,FOLDERR,LTTRB,2003-02-05 06:43:00,2003-08-15 08:58:00,NOT COLLATERAL
+172463,17681.595,CCD,SDK,A,9592.78,413,19,CKA,FOLDERS,LTTRB,2003-02-05 07:43:00,2003-08-15 10:58:00,NOT COLLATERAL
+172474,17684.706,CCE,MNV,A,9578.96,414,20,SWQ,FOLDERX,LTTRA,2003-02-05 08:43:00,2003-08-15 12:58:00,NOT COLLATERAL
+172485,17687.817,CCF,OKW,A,9565.14,415,21,KUH,FOLDERR,LTTRA,2003-02-05 09:43:00,2003-08-15 14:58:00,NOT COLLATERAL
+172496,17690.928,CCG,ASS,A,9551.32,416,22,XCV,FOLDERS,LTTRS,2003-02-05 10:43:00,2003-08-15 16:58:00,NOT COLLATERAL
+172507,17694.039,CCH,CKA,A,9537.5,417,23,ZAQ,FOLDERX,LTTRZ,2003-02-05 11:43:00,2003-08-15 18:58:00,NOT COLLATERAL
+172518,17697.15,CCI,SWQ,A,9523.68,418,24,MKO,FOLDERR,LTTRS,2003-02-05 00:43:00,2003-08-15 20:58:00,COLLATERAL
+172529,17700.261,CCJ,KUH,A,9509.86,419,25,VFR,FOLDERS,LTTRS,2003-02-04 13:43:00,2003-08-15 22:58:00,COLLATERAL
+172540,17703.372,DDD,XCV,A,9496.04,420,26,YUJ,FOLDERX,LTTRS,2003-02-04 02:43:00,2003-08-16 00:58:00,COLLATERAL
+172551,17706.483,DDA,ZAQ,A,9482.22,421,27,AAA,FOLDERR,LTTRS,2003-02-03 15:43:00,2003-08-16 02:58:00,NOT COLLATERAL
+172562,17709.594,DAA,MKO,A,9468.4,422,28,BBB,FOLDERS,LTTRS,2003-02-03 04:43:00,2003-08-16 04:58:00,NOT COLLATERAL
+172573,17712.705,DBB,VFR,A,9454.58,423,29,CCC,FOLDERX,LTTRS,2003-02-02 17:43:00,2003-08-16 06:58:00,NOT COLLATERAL
+172584,17715.816,DCC,YUJ,A,9440.76,424,30,DDD,FOLDERR,LTTRS,2003-02-02 06:43:00,2003-08-16 08:58:00,NOT COLLATERAL
+172595,17718.927,DEE,MED,A,9426.94,425,31,AAB,FOLDERS,LTTRS,2003-02-01 19:43:00,2003-08-16 10:58:00,NOT COLLATERAL
+172606,17722.038,DFF,SWE,A,9413.12,426,32,AAC,FOLDERX,LTTRS,2003-02-01 08:43:00,2003-08-16 12:58:00,NOT COLLATERAL
+172617,17725.149,DGG,CVF,A,9399.3,427,33,AAD,FOLDERD,LTTRS,2003-01-31 21:43:00,2003-08-16 14:58:00,NOT COLLATERAL
+172628,17728.26,DHH,DSFG,A,9385.48,428,34,AAE,FOLDERE,LTTRS,2003-01-31 10:43:00,2003-08-16 16:58:00,NOT COLLATERAL
+172639,17731.371,AAA,ASDRE,A,9371.66,429,35,AAF,FOLDERF,LTTRS,2003-01-30 23:43:00,2003-08-16 18:58:00,NOT COLLATERAL
+172650,17734.482,BBB,HJKSS,A,9357.84,430,36,BBA,FOLDERG,LTTRS,2003-01-30 12:43:00,2003-08-16 20:58:00,COLLATERAL
+172661,17737.593,CCC,KHAA,A,9344.02,431,37,BBC,FOLDERH,LTTRS,2003-01-30 01:43:00,2003-08-16 22:58:00,COLLATERAL
+172672,17740.704,DDD,KSLD,A,9330.2,432,38,BBE,FOLDERI,LTTRZ,2003-01-29 14:43:00,2003-08-17 00:58:00,COLLATERAL
+172683,17743.815,AAB,EKID,A,9316.38,433,39,BBF,FOLDERJ,LTTRA,2003-01-29 03:43:00,2003-08-17 02:58:00,NOT COLLATERAL
+172694,17746.926,AAC,VNCD,A,9302.56,434,40,BBG,FOLDERK,LTTRB,2003-01-28 16:43:00,2003-08-17 04:58:00,NOT COLLATERAL
+172705,17750.037,AAD,DKD,A,9288.74,435,41,BBH,FOLDERL,LTTRB,2003-01-28 05:43:00,2003-08-17 06:58:00,NOT COLLATERAL
+172716,17753.148,AAE,FKF,A,9274.92,436,42,CCA,FOLDERM,LTTRA,2003-01-27 18:43:00,2003-08-17 08:58:00,NOT COLLATERAL
+172727,17756.259,AAF,LES,A,9261.1,437,43,CCB,FOLDERN,LTTRA,2003-01-27 07:43:00,2003-08-17 10:58:00,NOT COLLATERAL
+172738,17759.37,BBA,KLD,A,9247.28,438,44,CCD,FOLDERN,LTTRS,2003-01-26 20:43:00,2003-08-17 12:58:00,NOT COLLATERAL
+172749,17762.481,BBC,SKL,A,9233.46,439,45,CCE,FOLDERN,LTTRZ,2003-01-26 09:43:00,2003-08-17 14:58:00,NOT COLLATERAL
+172760,17765.592,BBE,SIW,A,9219.64,440,46,CCF,FOLDERN,LTTRS,2003-01-25 22:43:00,2003-08-17 16:58:00,NOT COLLATERAL
+172771,17768.703,BBF,CKA,A,9205.82,441,47,CCG,FOLDERL,LTTRS,2003-01-25 11:43:00,2003-08-17 18:58:00,NOT COLLATERAL
+172782,17771.814,BBG,LDE,A,9192,442,48,CCH,FOLDERL,LTTRS,2003-01-25 00:43:00,2003-08-17 20:58:00,COLLATERAL
+172793,17774.925,BBH,KFF,A,9178.18,443,49,CCI,FOLDERL,LTTRS,2003-01-24 13:43:00,2003-08-17 22:58:00,COLLATERAL
+172804,17778.036,CCA,EFH,A,9164.36,444,48,CCJ,FOLDERL,LTTRS,2003-01-24 02:43:00,2003-08-18 00:58:00,COLLATERAL
+172815,17781.147,CCB,NGC,A,9150.54,445,47,DDD,FOLDERL,LTTRS,2003-01-23 15:43:00,2003-08-18 02:58:00,NOT COLLATERAL
+172826,17784.258,CCD,DER,A,9136.72,446,46,DDA,FOLDERD,LTTRS,2003-01-23 04:43:00,2003-08-18 04:58:00,NOT COLLATERAL
+172837,17787.369,CCE,FVG,A,9122.9,447,45,DAA,FOLDERE,LTTRS,2003-01-22 17:43:00,2003-08-18 06:58:00,NOT COLLATERAL
+172848,17790.48,CCF,KWE,A,9109.08,448,44,FKF,FOLDERF,LTTRS,2003-01-22 06:43:00,2003-08-18 08:58:00,NOT COLLATERAL
+172859,17793.591,CCG,WER,A,9095.26,449,43,LES,FOLDERG,LTTRS,2003-01-21 19:43:00,2003-08-18 10:58:00,NOT COLLATERAL
+172870,17796.702,CCH,GFH,A,9081.44,450,42,KLD,FOLDERH,LTTRS,2003-01-21 08:43:00,2003-08-18 12:58:00,NOT COLLATERAL
+172881,17799.813,CCI,BGF,A,9067.62,451,41,SKL,FOLDERI,LTTRS,2003-01-20 21:43:00,2003-08-18 14:58:00,NOT COLLATERAL
+172892,17802.924,CCJ,XCS,A,9053.8,452,40,SIW,FOLDERJ,LTTRS,2003-01-20 10:43:00,2003-08-18 16:58:00,NOT COLLATERAL
+172903,17806.035,DDD,JHK,A,9039.98,103,39,CKA,FOLDERK,LTTRS,2003-01-19 23:43:00,2003-08-18 18:58:00,NOT COLLATERAL
+172914,17809.146,DDA,SFD,A,9026.16,102,38,LDE,FOLDERL,LTTRZ,2003-01-19 12:43:00,2003-08-18 20:58:00,COLLATERAL
+172925,17812.257,DAA,WRE,A,9012.34,101,37,KFF,FOLDERM,LTTRA,2003-01-19 01:43:00,2003-08-18 22:58:00,COLLATERAL
+172936,17815.368,DBB,HGV,A,8998.52,100,36,EFH,FOLDERN,LTTRB,2003-01-18 14:43:00,2003-08-19 00:58:00,COLLATERAL
+172947,17818.479,DCC,KLS,A,8984.7,99,35,NGC,FOLDERO,LTTRB,2003-01-18 03:43:00,2003-08-19 02:58:00,NOT COLLATERAL
+172958,17821.59,DEE,SDK,A,8970.88,98,34,DER,FOLDERP,LTTRA,2003-01-17 16:43:00,2003-08-19 04:58:00,NOT COLLATERAL
+172969,17824.701,DFF,MNV,A,8957.06,97,33,FVG,FOLDERQ,LTTRA,2003-01-17 05:43:00,2003-08-19 06:58:00,NOT COLLATERAL
+172980,17827.812,DGG,OKW,A,8943.24,96,32,KWE,FOLDERR,LTTRS,2003-01-16 18:43:00,2003-08-19 08:58:00,NOT COLLATERAL
+172991,17830.923,DHH,ASS,A,8929.42,95,31,WER,FOLDERS,LTTRZ,2003-01-16 07:43:00,2003-08-19 10:58:00,NOT COLLATERAL
+173002,17834.034,AAA,CKA,A,8915.6,94,30,GFH,FOLDERT,LTTRS,2003-01-15 20:43:00,2003-08-19 12:58:00,NOT COLLATERAL
+173013,17837.145,BBB,SWQ,A,8901.78,93,29,BGF,FOLDERU,LTTRS,2003-01-15 09:43:00,2003-08-19 14:58:00,NOT COLLATERAL
+173024,17840.256,CCC,KUH,A,8887.96,92,28,XCS,FOLDERV,LTTRS,2003-01-14 22:43:00,2003-08-19 16:58:00,NOT COLLATERAL
+173035,17843.367,DDD,XCV,A,8874.14,91,27,JHK,FOLDERW,LTTRS,2003-01-14 11:43:00,2003-08-19 18:58:00,NOT COLLATERAL
+173046,17846.478,AAB,ZAQ,A,8860.32,90,26,SFD,FOLDERX,LTTRS,2003-01-14 00:43:00,2003-08-19 20:58:00,COLLATERAL
+173057,17849.589,AAC,MKO,A,8846.5,89,25,WRE,FOLDERY,LTTRS,2003-01-13 13:43:00,2003-08-19 22:58:00,COLLATERAL
+173068,17852.7,AAD,VFR,A,8832.68,88,24,HGV,FOLDERZ,LTTRS,2003-01-13 02:43:00,2003-08-20 00:58:00,COLLATERAL
+173079,17855.811,AAE,YUJ,A,8818.86,87,23,KLS,FOLDERA,LTTRS,2003-01-12 15:43:00,2003-08-20 02:58:00,NOT COLLATERAL
+173090,17858.922,AAF,MED,A,8805.04,86,22,SDK,FOLDERB,LTTRS,2003-01-12 04:43:00,2003-08-20 04:58:00,NOT COLLATERAL
+173101,17862.033,BBA,SWE,A,8791.22,85,21,MNV,FOLDERC,LTTRS,2003-01-11 17:43:00,2003-08-20 06:58:00,NOT COLLATERAL
+173112,17865.144,BBC,CVF,A,8777.4,84,20,OKW,FOLDERD,LTTRS,2003-01-11 06:43:00,2003-08-20 08:58:00,NOT COLLATERAL
+173123,17868.255,BBE,DSFG,A,8763.58,83,19,ASS,FOLDERE,LTTRS,2003-01-10 19:43:00,2003-08-20 10:58:00,NOT COLLATERAL
+173134,17871.366,BBF,ASDRE,A,8749.76,82,18,CKA,FOLDERF,LTTRS,2003-01-10 08:43:00,2003-08-20 12:58:00,NOT COLLATERAL
+173145,17874.477,BBG,HJKSS,A,8735.94,81,17,SWQ,FOLDERG,LTTRS,2003-01-09 21:43:00,2003-08-20 14:58:00,NOT COLLATERAL
+173156,17877.588,BBH,KHAA,A,8722.12,80,16,KUH,FOLDERH,LTTRZ,2003-01-09 10:43:00,2003-08-20 16:58:00,NOT COLLATERAL
+173167,17880.699,CCA,KSLD,A,8708.3,79,15,XCV,FOLDERI,LTTRA,2003-01-08 23:43:00,2003-08-20 18:58:00,NOT COLLATERAL
+173178,17883.81,CCB,EKID,A,8694.48,78,14,ZAQ,FOLDERJ,LTTRB,2003-01-08 12:43:00,2003-08-20 20:58:00,COLLATERAL
+173189,17886.921,CCD,VNCD,A,8680.66,77,13,MKO,FOLDERK,LTTRB,2003-01-08 01:43:00,2003-08-20 22:58:00,COLLATERAL
+173200,17890.032,CCE,DKD,A,8666.84,76,12,VFR,FOLDERL,LTTRA,2003-01-07 14:43:00,2003-08-21 00:58:00,COLLATERAL
+173211,17893.143,CCF,FKF,A,8653.02,75,11,YUJ,FOLDERM,LTTRA,2003-01-07 03:43:00,2003-08-21 02:58:00,NOT COLLATERAL
+173222,17896.254,CCG,LES,A,8639.2,74,10,AAA,FOLDERN,LTTRS,2003-01-06 16:43:00,2003-08-21 04:58:00,NOT COLLATERAL
+173233,17899.365,CCH,KLD,A,8625.38,73,9,BBB,FOLDERO,LTTRZ,2003-01-06 05:43:00,2003-08-21 06:58:00,NOT COLLATERAL
+173244,17902.476,CCI,SKL,A,8611.56,72,8,CCC,FOLDERP,LTTRS,2003-01-05 18:43:00,2003-08-21 08:58:00,NOT COLLATERAL
+173255,17905.587,CCJ,SIW,A,8597.74,71,7,DDD,FOLDERQ,LTTRS,2003-01-05 07:43:00,2003-08-21 10:58:00,NOT COLLATERAL
+173266,17908.698,DDD,CKA,A,8583.92,70,6,AAB,FOLDERR,LTTRS,2003-01-04 20:43:00,2003-08-21 12:58:00,NOT COLLATERAL
+173277,17911.809,DDA,LDE,A,8570.1,69,5,AAC,FOLDERS,LTTRS,2003-01-04 09:43:00,2003-08-21 14:58:00,NOT COLLATERAL
+173288,17914.92,DAA,KFF,A,8556.28,68,4,AAD,FOLDERT,LTTRS,2003-01-03 22:43:00,2003-08-21 16:58:00,NOT COLLATERAL
+173299,17918.031,DBB,EFH,A,8542.46,67,3,AAE,FOLDERU,LTTRS,2003-01-03 11:43:00,2003-08-21 18:58:00,NOT COLLATERAL
+173310,17921.142,DCC,NGC,A,8528.64,66,1,AAF,FOLDERV,LTTRS,2003-01-03 00:43:00,2003-08-21 20:58:00,COLLATERAL
+173321,17924.253,DEE,DER,A,8514.82,65,2,BBA,FOLDERW,LTTRS,2003-01-02 13:43:00,2003-08-21 22:58:00,COLLATERAL
+173332,17927.364,DFF,FVG,A,8501,64,3,BBC,FOLDERX,LTTRS,2003-01-02 02:43:00,2003-08-22 00:58:00,COLLATERAL
+173343,17930.475,DGG,KWE,A,8487.18,63,4,BBE,FOLDERY,LTTRS,2003-01-01 15:43:00,2003-08-22 02:58:00,NOT COLLATERAL
+173354,17933.586,DHH,WER,A,8473.36,62,5,BBF,FOLDERZ,LTTRS,2003-01-01 04:43:00,2003-08-22 04:58:00,NOT COLLATERAL
+173365,17936.697,AAA,GFH,A,8459.54,61,6,BBG,FOLDERZ,LTTRS,2002-12-31 17:43:00,2003-08-22 06:58:00,NOT COLLATERAL
+173376,17939.808,BBB,BGF,A,8445.72,60,7,BBH,FOLDERZ,LTTRS,2002-12-31 06:43:00,2003-08-22 08:58:00,NOT COLLATERAL
+173387,17942.919,CCC,XCS,A,8431.9,59,8,CCA,FOLDERZ,LTTRS,2002-12-30 19:43:00,2003-08-22 10:58:00,NOT COLLATERAL
+173398,17946.03,DDD,JHK,A,8418.08,58,9,CCB,FOLDERZ,LTTRZ,2002-12-30 08:43:00,2003-08-22 12:58:00,NOT COLLATERAL
+173409,17949.141,AAB,SFD,A,8404.26,57,10,CCD,FOLDERZ,LTTRA,2002-12-29 21:43:00,2003-08-22 14:58:00,NOT COLLATERAL
+173420,17952.252,AAC,WRE,A,8390.44,56,11,CCE,FOLDERZ,LTTRB,2002-12-29 10:43:00,2003-08-22 16:58:00,NOT COLLATERAL
+173431,17955.363,AAD,HGV,A,8376.62,55,12,CCF,FOLDERZ,LTTRB,2002-12-28 23:43:00,2003-08-22 18:58:00,NOT COLLATERAL
+173442,17958.474,AAE,KLS,A,8362.8,54,13,CCG,FOLDERZ,LTTRA,2002-12-28 12:43:00,2003-08-22 20:58:00,COLLATERAL
+173453,17961.585,AAF,SDK,A,8348.98,53,14,CCH,FOLDERZ,LTTRA,2002-12-28 01:43:00,2003-08-22 22:58:00,COLLATERAL
+173464,17964.696,BBA,MNV,A,8335.16,52,15,CCI,FOLDERZ,LTTRS,2002-12-27 14:43:00,2003-08-23 00:58:00,COLLATERAL
+173475,17967.807,BBC,OKW,A,8321.34,51,16,CCJ,FOLDERZ,LTTRZ,2002-12-27 03:43:00,2003-08-23 02:58:00,NOT COLLATERAL
+173486,17970.918,BBE,ASS,A,8307.52,50,17,DDD,FOLDERZ,LTTRS,2002-12-26 16:43:00,2003-08-23 04:58:00,NOT COLLATERAL
+173497,17974.029,BBF,CKA,A,8293.7,49,18,DDA,FOLDERZ,LTTRS,2002-12-26 05:43:00,2003-08-23 06:58:00,NOT COLLATERAL
+173508,17977.14,BBG,SWQ,A,8279.88,48,19,DAA,FOLDERX,LTTRS,2002-12-25 18:43:00,2003-08-23 08:58:00,NOT COLLATERAL
+173519,17980.251,BBH,KUH,A,8266.06,47,20,FKF,FOLDERX,LTTRS,2002-12-25 07:43:00,2003-08-23 10:58:00,NOT COLLATERAL
+173530,17983.362,CCA,XCV,A,8252.24,46,21,LES,FOLDERX,LTTRS,2002-12-24 20:43:00,2003-08-23 12:58:00,NOT COLLATERAL
+173541,17986.473,CCB,ZAQ,A,8238.42,45,22,KLD,FOLDERX,LTTRS,2002-12-24 09:43:00,2003-08-23 14:58:00,NOT COLLATERAL
+173552,17989.584,CCD,MKO,A,8224.6,44,23,SKL,FOLDERX,LTTRS,2002-12-23 22:43:00,2003-08-23 16:58:00,NOT COLLATERAL
+173563,17992.695,CCE,VFR,A,8210.78,43,24,SIW,FOLDERX,LTTRS,2002-12-23 11:43:00,2003-08-23 18:58:00,NOT COLLATERAL
+173574,17995.806,CCF,YUJ,A,8196.96,42,25,CKA,FOLDERX,LTTRS,2002-12-23 00:43:00,2003-08-23 20:58:00,COLLATERAL
+173585,17998.917,CCG,MED,A,8183.14,41,26,LDE,FOLDERX,LTTRS,2002-12-22 13:43:00,2003-08-23 22:58:00,COLLATERAL
+173596,18002.028,CCH,SWE,A,8169.32,40,27,KFF,FOLDERX,LTTRS,2002-12-22 02:43:00,2003-08-24 00:58:00,COLLATERAL
+173607,18005.139,CCI,CVF,A,8155.5,39,28,EFH,FOLDERX,LTTRS,2002-12-21 15:43:00,2003-08-24 02:58:00,NOT COLLATERAL
+173618,18008.25,CCJ,DSFG,A,8141.68,38,29,NGC,FOLDERX,LTTRS,2002-12-21 04:43:00,2003-08-24 04:58:00,NOT COLLATERAL
+173629,18011.361,DDD,ASDRE,A,8127.86,37,30,DER,FOLDERX,LTTRS,2002-12-20 17:43:00,2003-08-24 06:58:00,NOT COLLATERAL
+173640,18014.472,DDA,HJKSS,A,8114.04,36,31,FVG,FOLDERR,LTTRZ,2002-12-20 06:43:00,2003-08-24 08:58:00,NOT COLLATERAL
+173651,18017.583,DAA,KHAA,A,8100.22,35,32,KWE,FOLDERS,LTTRA,2002-12-19 19:43:00,2003-08-24 10:58:00,NOT COLLATERAL
+173662,18020.694,DBB,KSLD,A,8086.4,34,33,WER,FOLDERX,LTTRB,2002-12-19 08:43:00,2003-08-24 12:58:00,NOT COLLATERAL
+173673,18023.805,DCC,EKID,A,8072.58,33,34,GFH,FOLDERR,LTTRB,2002-12-18 21:43:00,2003-08-24 14:58:00,NOT COLLATERAL
+173684,18026.916,DEE,VNCD,A,8058.76,32,35,BGF,FOLDERS,LTTRA,2002-12-18 10:43:00,2003-08-24 16:58:00,NOT COLLATERAL
+173695,18030.027,DFF,DKD,A,8044.94,31,36,XCS,FOLDERX,LTTRA,2002-12-17 23:43:00,2003-08-24 18:58:00,NOT COLLATERAL
+173706,18033.138,DGG,FKF,A,8031.12,30,37,JHK,FOLDERR,LTTRS,2002-12-17 12:43:00,2003-08-24 20:58:00,COLLATERAL
+173717,18036.249,DHH,LES,A,8017.3,29,38,SFD,FOLDERS,LTTRZ,2002-12-17 01:43:00,2003-08-24 22:58:00,COLLATERAL
+173728,18039.36,AAA,KLD,A,8003.48,28,39,WRE,FOLDERX,LTTRS,2002-12-16 14:43:00,2003-08-25 00:58:00,COLLATERAL
+173739,18042.471,BBB,SKL,A,7989.66,27,40,HGV,FOLDERR,LTTRS,2002-12-16 03:43:00,2003-08-25 02:58:00,NOT COLLATERAL
+173750,18045.582,CCC,SIW,A,7975.84,26,41,KLS,FOLDERS,LTTRS,2002-12-15 16:43:00,2003-08-25 04:58:00,NOT COLLATERAL
+173761,18048.693,DDD,CKA,A,7962.02,25,42,SDK,FOLDERX,LTTRS,2002-12-15 05:43:00,2003-08-25 06:58:00,NOT COLLATERAL
+173772,18051.804,AAB,LDE,A,7948.2,24,43,MNV,FOLDERR,LTTRS,2002-12-14 18:43:00,2003-08-25 08:58:00,NOT COLLATERAL
+173783,18054.915,AAC,KFF,A,7934.38,23,44,OKW,FOLDERS,LTTRS,2002-12-14 07:43:00,2003-08-25 10:58:00,NOT COLLATERAL
+173794,18058.026,AAD,EFH,A,7920.56,22,45,ASS,FOLDERX,LTTRS,2002-12-13 20:43:00,2003-08-25 12:58:00,NOT COLLATERAL
+173805,18061.137,AAE,NGC,A,7906.74,21,46,CKA,FOLDERD,LTTRS,2002-12-13 09:43:00,2003-08-25 14:58:00,NOT COLLATERAL
+173816,18064.248,AAF,DER,A,7892.92,24,47,SWQ,FOLDERE,LTTRS,2002-12-12 22:43:00,2003-08-25 16:58:00,NOT COLLATERAL
+173827,18067.359,BBA,FVG,A,7879.1,27,48,KUH,FOLDERF,LTTRS,2002-12-12 11:43:00,2003-08-25 18:58:00,NOT COLLATERAL
+173838,18070.47,BBC,KWE,A,7865.28,30,49,XCV,FOLDERG,LTTRS,2002-12-12 00:43:00,2003-08-25 20:58:00,COLLATERAL
+173849,18073.581,BBE,WER,A,7851.46,33,48,ZAQ,FOLDERH,LTTRS,2002-12-11 13:43:00,2003-08-25 22:58:00,COLLATERAL
+173860,18076.692,BBF,GFH,A,7837.64,36,47,MKO,FOLDERI,LTTRS,2002-12-11 02:43:00,2003-08-26 00:58:00,COLLATERAL
+173871,18079.803,BBG,BGF,A,7823.82,39,46,VFR,FOLDERJ,LTTRS,2002-12-10 15:43:00,2003-08-26 02:58:00,NOT COLLATERAL
+173882,18082.914,BBH,XCS,A,7810,42,45,YUJ,FOLDERK,LTTRZ,2002-12-10 04:43:00,2003-08-26 04:58:00,NOT COLLATERAL
+173893,18086.025,CCA,JHK,A,7796.18,45,44,AAA,FOLDERL,LTTRA,2002-12-09 17:43:00,2003-08-26 06:58:00,NOT COLLATERAL
+173904,18089.136,CCB,SFD,A,7782.36,48,43,BBB,FOLDERM,LTTRB,2002-12-09 06:43:00,2003-08-26 08:58:00,NOT COLLATERAL
+173915,18092.247,CCD,WRE,A,7768.54,51,42,CCC,FOLDERN,LTTRB,2002-12-08 19:43:00,2003-08-26 10:58:00,NOT COLLATERAL
+173926,18095.358,CCE,HGV,A,7754.72,54,41,DDD,FOLDERN,LTTRA,2002-12-08 08:43:00,2003-08-26 12:58:00,NOT COLLATERAL
+173937,18098.469,CCF,KLS,A,7740.9,57,40,AAB,FOLDERN,LTTRA,2002-12-07 21:43:00,2003-08-26 14:58:00,NOT COLLATERAL
+173948,18101.58,CCG,SDK,A,7727.08,60,39,AAC,FOLDERN,LTTRS,2002-12-07 10:43:00,2003-08-26 16:58:00,NOT COLLATERAL
+173959,18104.691,CCH,MNV,A,7713.26,63,38,AAD,FOLDERL,LTTRZ,2002-12-06 23:43:00,2003-08-26 18:58:00,NOT COLLATERAL
+173970,18107.802,CCI,OKW,A,7699.44,66,37,AAE,FOLDERL,LTTRS,2002-12-06 12:43:00,2003-08-26 20:58:00,COLLATERAL
+173981,18110.913,CCJ,ASS,A,7685.62,69,36,AAF,FOLDERL,LTTRS,2002-12-06 01:43:00,2003-08-26 22:58:00,COLLATERAL
+173992,18114.024,DDD,CKA,A,7671.8,72,35,BBA,FOLDERL,LTTRS,2002-12-05 14:43:00,2003-08-27 00:58:00,COLLATERAL
+174003,18117.135,DDA,SWQ,A,7657.98,75,34,BBC,FOLDERL,LTTRS,2002-12-05 03:43:00,2003-08-27 02:58:00,NOT COLLATERAL
+174014,18120.246,DAA,KUH,A,7644.16,78,33,BBE,FOLDERR,LTTRS,2002-12-04 16:43:00,2003-08-27 04:58:00,NOT COLLATERAL
+174025,18123.357,DBB,XCV,A,7630.34,81,32,BBF,FOLDERS,LTTRS,2002-12-04 05:43:00,2003-08-27 06:58:00,NOT COLLATERAL
+174036,18126.468,DCC,ZAQ,A,7616.52,84,31,BBG,FOLDERX,LTTRS,2002-12-03 18:43:00,2003-08-27 08:58:00,NOT COLLATERAL
+174047,18129.579,DEE,MKO,A,7602.7,87,30,BBH,FOLDERR,LTTRS,2002-12-03 07:43:00,2003-08-27 10:58:00,NOT COLLATERAL
+174058,18132.69,DFF,VFR,A,7588.88,90,29,CCA,FOLDERS,LTTRS,2002-12-02 20:43:00,2003-08-27 12:58:00,NOT COLLATERAL
+174069,18135.801,DGG,YUJ,A,7575.06,93,28,CCB,FOLDERX,LTTRS,2002-12-02 09:43:00,2003-08-27 14:58:00,NOT COLLATERAL
+174080,18138.912,DHH,MED,A,7561.24,96,27,CCD,FOLDERD,LTTRS,2002-12-01 22:43:00,2003-08-27 16:58:00,NOT COLLATERAL
+174091,18142.023,AAA,SWE,A,7547.42,99,26,CCE,FOLDERE,LTTRS,2002-12-01 11:43:00,2003-08-27 18:58:00,NOT COLLATERAL
+174102,18145.134,BBB,CVF,A,7533.6,102,25,CCF,FOLDERF,LTTRS,2002-12-01 00:43:00,2003-08-27 20:58:00,COLLATERAL
+174113,18148.245,CCC,DSFG,A,7519.78,105,24,CCG,FOLDERG,LTTRS,2002-11-30 13:43:00,2003-08-27 22:58:00,COLLATERAL
+174124,18151.356,DDD,ASDRE,A,7505.96,108,23,CCH,FOLDERH,LTTRZ,2002-11-30 02:43:00,2003-08-28 00:58:00,COLLATERAL
+174135,18154.467,AAB,HJKSS,A,7492.14,111,22,CCI,FOLDERI,LTTRA,2002-11-29 15:43:00,2003-08-28 02:58:00,NOT COLLATERAL
+174146,18157.578,AAC,KHAA,A,7478.32,114,21,CCJ,FOLDERJ,LTTRB,2002-11-29 04:43:00,2003-08-28 04:58:00,NOT COLLATERAL
+174157,18160.689,AAD,KSLD,A,7464.5,117,20,DDD,FOLDERK,LTTRB,2002-11-28 17:43:00,2003-08-28 06:58:00,NOT COLLATERAL
+174168,18163.8,AAE,EKID,A,7450.68,120,19,DDA,FOLDERL,LTTRA,2002-11-28 06:43:00,2003-08-28 08:58:00,NOT COLLATERAL
+174179,18166.911,AAF,VNCD,A,7436.86,123,18,DAA,FOLDERM,LTTRA,2002-11-27 19:43:00,2003-08-28 10:58:00,NOT COLLATERAL
+174190,18170.022,BBA,DKD,A,7423.04,126,17,FKF,FOLDERN,LTTRS,2002-11-27 08:43:00,2003-08-28 12:58:00,NOT COLLATERAL
+174201,18173.133,BBC,FKF,A,7409.22,129,16,LES,FOLDERN,LTTRZ,2002-11-26 21:43:00,2003-08-28 14:58:00,NOT COLLATERAL
+174212,18176.244,BBE,LES,A,7395.4,132,15,KLD,FOLDERN,LTTRS,2002-11-26 10:43:00,2003-08-28 16:58:00,NOT COLLATERAL
+174223,18179.355,BBF,KLD,A,7381.58,135,14,SKL,FOLDERN,LTTRS,2002-11-25 23:43:00,2003-08-28 18:58:00,NOT COLLATERAL
+174234,18182.466,BBG,SKL,A,7367.76,138,13,SIW,FOLDERL,LTTRS,2002-11-25 12:43:00,2003-08-28 20:58:00,COLLATERAL
+174245,18185.577,BBH,SIW,A,7353.94,141,12,CKA,FOLDERL,LTTRS,2002-11-25 01:43:00,2003-08-28 22:58:00,COLLATERAL
+174256,18188.688,CCA,CKA,A,7340.12,144,11,LDE,FOLDERL,LTTRS,2002-11-24 14:43:00,2003-08-29 00:58:00,COLLATERAL
+174267,18191.799,CCB,LDE,A,7326.3,147,10,KFF,FOLDERL,LTTRS,2002-11-24 03:43:00,2003-08-29 02:58:00,NOT COLLATERAL
+174278,18194.91,CCD,KFF,A,7312.48,150,9,EFH,FOLDERL,LTTRS,2002-11-23 16:43:00,2003-08-29 04:58:00,NOT COLLATERAL
+174289,18198.021,CCE,EFH,A,7298.66,153,8,NGC,FOLDERA,LTTRS,2002-11-23 05:43:00,2003-08-29 06:58:00,NOT COLLATERAL
+174300,18201.132,CCF,NGC,A,7284.84,156,7,DER,FOLDERB,LTTRS,2002-11-22 18:43:00,2003-08-29 08:58:00,NOT COLLATERAL
+174311,18204.243,CCG,DER,A,7271.02,159,6,FVG,FOLDERC,LTTRS,2002-11-22 07:43:00,2003-08-29 10:58:00,NOT COLLATERAL
+174322,18207.354,CCH,FVG,A,7257.2,162,5,KWE,FOLDERD,LTTRS,2002-11-21 20:43:00,2003-08-29 12:58:00,NOT COLLATERAL
+174333,18210.465,CCI,KWE,A,7243.38,165,4,WER,FOLDERE,LTTRS,2002-11-21 09:43:00,2003-08-29 14:58:00,NOT COLLATERAL
+174344,18213.576,CCJ,WER,A,7229.56,168,3,GFH,FOLDERF,LTTRS,2002-11-20 22:43:00,2003-08-29 16:58:00,NOT COLLATERAL
+174355,18216.687,DDD,GFH,A,7215.74,171,1,BGF,FOLDERG,LTTRS,2002-11-20 11:43:00,2003-08-29 18:58:00,NOT COLLATERAL
+174366,18219.798,DDA,BGF,A,7201.92,174,2,XCS,FOLDERH,LTTRZ,2002-11-20 00:43:00,2003-08-29 20:58:00,COLLATERAL
+174377,18222.909,DAA,XCS,A,7188.1,177,3,JHK,FOLDERI,LTTRA,2002-11-19 13:43:00,2003-08-29 22:58:00,COLLATERAL
+174388,18226.02,DBB,JHK,A,7174.28,180,4,SFD,FOLDERJ,LTTRB,2002-11-19 02:43:00,2003-08-30 00:58:00,COLLATERAL
+174399,18229.131,DCC,SFD,A,7160.46,183,5,WRE,FOLDERK,LTTRB,2002-11-18 15:43:00,2003-08-30 02:58:00,NOT COLLATERAL
+174410,18232.242,DEE,WRE,A,7146.64,186,6,HGV,FOLDERL,LTTRA,2002-11-18 04:43:00,2003-08-30 04:58:00,NULL
+174421,18235.353,DFF,HGV,A,7132.82,189,7,KLS,FOLDERM,LTTRA,2002-11-17 17:43:00,2003-08-30 06:58:00,NULL
+174432,18238.464,DGG,KLS,A,7119,192,8,SDK,FOLDERN,LTTRS,2002-11-17 06:43:00,2003-08-30 08:58:00,NULL
+174443,18241.575,DHH,SDK,A,7105.18,195,9,MNV,FOLDERO,LTTRZ,2002-11-16 19:43:00,2003-08-30 10:58:00,NULL
+174454,18244.686,AAA,MNV,A,7091.36,198,10,OKW,FOLDERP,LTTRS,2002-11-16 08:43:00,2003-08-30 12:58:00,NULL
+174465,18247.797,BBB,OKW,A,7077.54,201,11,ASS,FOLDERQ,LTTRS,2002-11-15 21:43:00,2003-08-30 14:58:00,NULL
+174476,18250.908,CCC,ASS,A,7063.72,204,12,CKA,FOLDERR,LTTRS,2002-11-15 10:43:00,2003-08-30 16:58:00,NULL
+174487,18254.019,DDD,CKA,A,7049.9,207,13,SWQ,FOLDERS,LTTRS,2002-11-14 23:43:00,2003-08-30 18:58:00,NULL
+174498,18257.13,AAB,SWQ,A,7036.08,210,14,KUH,FOLDERT,LTTRS,2002-11-14 12:43:00,2003-08-30 20:58:00,COLLATERAL
+174509,18260.241,AAC,KUH,A,7022.26,213,15,XCV,FOLDERU,LTTRS,2002-11-14 01:43:00,2003-08-30 22:58:00,COLLATERAL
+174520,18263.352,AAD,XCV,A,7008.44,216,16,ZAQ,FOLDERV,LTTRS,2002-11-13 14:43:00,2003-08-31 00:58:00,COLLATERAL
+174531,18266.463,AAE,ZAQ,A,6994.62,219,17,MKO,FOLDERW,LTTRS,2002-11-13 03:43:00,2003-08-31 02:58:00,NOT COLLATERAL
+174542,18269.574,AAF,MKO,A,6980.8,222,18,VFR,FOLDERX,LTTRS,2002-11-12 16:43:00,2003-08-31 04:58:00,NOT COLLATERAL
+174553,18272.685,BBA,VFR,A,6966.98,225,19,YUJ,FOLDERY,LTTRS,2002-11-12 05:43:00,2003-08-31 06:58:00,NULL
+174564,18275.796,BBC,YUJ,A,6953.16,228,20,XCV,FOLDERZ,LTTRS,2002-11-11 18:43:00,2003-08-31 08:58:00,NULL
+174575,18278.907,BBE,MED,A,6939.34,231,21,ZAQ,FOLDERA,LTTRS,2002-11-11 07:43:00,2003-08-31 10:58:00,NULL
+174586,18282.018,BBF,SWE,A,6925.52,234,22,MKO,FOLDERB,LTTRS,2002-11-10 20:43:00,2003-08-31 12:58:00,NULL
+174597,18285.129,BBG,CVF,A,6911.7,237,23,VFR,FOLDERC,LTTRS,2002-11-10 09:43:00,2003-08-31 14:58:00,NULL
+174608,18288.24,BBH,DSFG,A,6897.88,240,24,YUJ,FOLDERD,LTTRZ,2002-11-09 22:43:00,2003-08-31 16:58:00,NULL
+174619,18291.351,CCA,ASDRE,A,6884.06,243,25,AAA,FOLDERE,LTTRA,2002-11-09 11:43:00,2003-08-31 18:58:00,NULL
+174630,18294.462,CCB,HJKSS,A,6870.24,246,26,BBB,FOLDERF,LTTRB,2002-11-09 00:43:00,2003-08-31 20:58:00,NULL
+174641,18297.573,CCD,KHAA,A,6856.42,249,27,CCC,FOLDERG,LTTRB,2002-11-08 13:43:00,2003-08-31 22:58:00,COLLATERAL
+174652,18300.684,CCE,KSLD,A,6842.6,252,28,DDD,FOLDERH,LTTRA,2002-11-08 02:43:00,2003-09-01 00:58:00,COLLATERAL
+174663,18303.795,CCF,EKID,A,6828.78,255,29,AAB,FOLDERI,LTTRA,2002-11-07 15:43:00,2003-09-01 02:58:00,NOT COLLATERAL
+174674,18306.906,CCG,VNCD,A,6814.96,258,30,AAC,FOLDERJ,LTTRS,2002-11-07 04:43:00,2003-09-01 04:58:00,NULL
+174685,18310.017,CCH,DKD,A,6801.14,261,31,AAD,FOLDERK,LTTRZ,2002-11-06 17:43:00,2003-09-01 06:58:00,NULL
+174696,18313.128,CCI,FKF,A,6787.32,264,32,AAE,FOLDERL,LTTRS,2002-11-06 06:43:00,2003-09-01 08:58:00,NULL
+174707,18316.239,CCJ,LES,A,6773.5,267,33,AAF,FOLDERM,LTTRS,2002-11-05 19:43:00,2003-09-01 10:58:00,NULL
+174718,18319.35,DDD,KLD,A,6759.68,270,34,BBA,FOLDERN,LTTRS,2002-11-05 08:43:00,2003-09-01 12:58:00,NULL
+174729,18322.461,DDA,SKL,A,6745.86,273,35,BBC,FOLDERO,LTTRS,2002-11-04 21:43:00,2003-09-01 14:58:00,NULL
+174740,18325.572,DAA,SIW,A,6732.04,276,36,BBE,FOLDERP,LTTRS,2002-11-04 10:43:00,2003-09-01 16:58:00,NOT COLLATERAL
+174751,18328.683,DBB,CKA,A,6718.22,279,37,BBF,FOLDERQ,LTTRS,2002-11-03 23:43:00,2003-09-01 18:58:00,NOT COLLATERAL
+174762,18331.794,DCC,LDE,A,6704.4,282,38,BBG,FOLDERR,LTTRS,2002-11-03 12:43:00,2003-09-01 20:58:00,COLLATERAL
+174773,18334.905,DEE,KFF,A,6690.58,285,39,BBH,FOLDERS,LTTRS,2002-11-03 01:43:00,2003-09-01 22:58:00,COLLATERAL
+174784,18338.016,DFF,EFH,A,6676.76,288,40,CCA,FOLDERT,LTTRS,2002-11-02 14:43:00,2003-09-02 00:58:00,COLLATERAL
+174795,18341.127,DGG,NGC,A,6662.94,291,41,CCB,FOLDERU,LTTRS,2002-11-02 03:43:00,2003-09-02 02:58:00,NOT COLLATERAL
+174806,18344.238,DHH,DER,A,6649.12,294,42,CCD,FOLDERV,LTTRS,2002-11-01 16:43:00,2003-09-02 04:58:00,NOT COLLATERAL
+174817,18347.349,AAA,FVG,A,6635.3,297,43,CCE,FOLDERW,LTTRS,2002-11-01 05:43:00,2003-09-02 06:58:00,NOT COLLATERAL
+174828,18350.46,BBB,KWE,A,6621.48,300,44,CCF,FOLDERX,LTTRS,2002-10-31 18:43:00,2003-09-02 08:58:00,NOT COLLATERAL
+174839,18353.571,CCC,WER,A,6607.66,303,45,CCG,FOLDERY,LTTRS,2002-10-31 07:43:00,2003-09-02 10:58:00,NOT COLLATERAL
+174850,18356.682,DDD,GFH,A,6593.84,306,46,CCH,FOLDERZ,LTTRZ,2002-10-30 20:43:00,2003-09-02 12:58:00,NOT COLLATERAL
+174861,18359.793,AAB,BGF,A,6580.02,309,47,CCI,FOLDERZ,LTTRA,2002-10-30 09:43:00,2003-09-02 14:58:00,NOT COLLATERAL
+174872,18362.904,AAC,XCS,A,6566.2,312,48,CCJ,FOLDERZ,LTTRB,2002-10-29 22:43:00,2003-09-02 16:58:00,NOT COLLATERAL
+174883,18366.015,AAD,JHK,A,6552.38,315,49,DDD,FOLDERZ,LTTRB,2002-10-29 11:43:00,2003-09-02 18:58:00,NOT COLLATERAL
+174894,18369.126,AAE,SFD,A,6538.56,318,48,DDA,FOLDERZ,LTTRA,2002-10-29 00:43:00,2003-09-02 20:58:00,COLLATERAL
+174905,18372.237,AAF,WRE,A,6524.74,321,47,DAA,FOLDERZ,LTTRA,2002-10-28 13:43:00,2003-09-02 22:58:00,COLLATERAL
+174916,18375.348,BBA,HGV,A,6510.92,324,46,FKF,FOLDERZ,LTTRS,2002-10-28 02:43:00,2003-09-03 00:58:00,COLLATERAL
+174927,18378.459,BBC,KLS,A,6497.1,327,45,LES,FOLDERZ,LTTRZ,2002-10-27 15:43:00,2003-09-03 02:58:00,NOT COLLATERAL
+174938,18381.57,BBE,SDK,A,6483.28,330,44,KLD,FOLDERZ,LTTRS,2002-10-27 04:43:00,2003-09-03 04:58:00,NOT COLLATERAL
+174949,18384.681,BBF,MNV,A,6469.46,333,43,SKL,FOLDERZ,LTTRS,2002-10-26 17:43:00,2003-09-03 06:58:00,NOT COLLATERAL
+174960,18387.792,BBG,OKW,A,6455.64,336,42,SIW,FOLDERZ,LTTRS,2002-10-26 06:43:00,2003-09-03 08:58:00,NOT COLLATERAL
+174971,18390.903,BBH,ASS,A,6441.82,339,41,CKA,FOLDERZ,LTTRS,2002-10-25 19:43:00,2003-09-03 10:58:00,NOT COLLATERAL
+174982,18394.014,CCA,CKA,A,6428,342,40,LDE,FOLDERZ,LTTRS,2002-10-25 08:43:00,2003-09-03 12:58:00,NOT COLLATERAL
+174993,18397.125,CCB,SWQ,A,6414.18,345,39,KFF,FOLDERZ,LTTRS,2002-10-24 21:43:00,2003-09-03 14:58:00,NOT COLLATERAL
+175004,18400.236,CCD,KUH,A,6400.36,348,38,EFH,FOLDERX,LTTRS,2002-10-24 10:43:00,2003-09-03 16:58:00,NOT COLLATERAL
+175015,18403.347,CCE,XCV,A,6386.54,351,37,NGC,FOLDERX,LTTRS,2002-10-23 23:43:00,2003-09-03 18:58:00,NOT COLLATERAL
+175026,18406.458,CCF,ZAQ,A,6372.72,354,36,DER,FOLDERX,LTTRS,2002-10-23 12:43:00,2003-09-03 20:58:00,COLLATERAL
+175037,18409.569,CCG,MKO,A,6358.9,357,35,FVG,FOLDERX,LTTRS,2002-10-23 01:43:00,2003-09-03 22:58:00,COLLATERAL
+175048,18412.68,CCH,VFR,A,6345.08,360,34,KWE,FOLDERX,LTTRS,2002-10-22 14:43:00,2003-09-04 00:58:00,COLLATERAL
+175059,18415.791,CCI,YUJ,A,6331.26,363,33,WER,FOLDERX,LTTRS,2002-10-22 03:43:00,2003-09-04 02:58:00,NOT COLLATERAL
+175070,18418.902,CCJ,MED,A,6317.44,366,32,GFH,FOLDERX,LTTRS,2002-10-21 16:43:00,2003-09-04 04:58:00,NOT COLLATERAL
+175081,18422.013,DDD,SWE,A,6303.62,369,31,BGF,FOLDERX,LTTRS,2002-10-21 05:43:00,2003-09-04 06:58:00,NOT COLLATERAL
+175092,18425.124,DDA,CVF,A,6289.8,372,30,XCS,FOLDERX,LTTRZ,2002-10-20 18:43:00,2003-09-04 08:58:00,NOT COLLATERAL
+175103,18428.235,DAA,DSFG,A,6275.98,375,29,JHK,FOLDERX,LTTRA,2002-10-20 07:42:00,2003-09-04 10:58:00,NOT COLLATERAL
+175114,18431.346,DBB,ASDRE,A,6262.16,378,28,SFD,FOLDERX,LTTRB,2002-10-19 20:42:00,2003-09-04 12:58:00,NOT COLLATERAL
+175125,18434.457,DCC,HJKSS,A,6248.34,381,27,WRE,FOLDERX,LTTRB,2002-10-19 09:42:00,2003-09-04 14:58:00,NOT COLLATERAL
+175136,18437.568,DEE,KHAA,A,6234.52,384,26,HGV,FOLDERR,LTTRA,2002-10-18 22:42:00,2003-09-04 16:58:00,NOT COLLATERAL
+175147,18440.679,DFF,KSLD,A,6220.7,387,25,KLS,FOLDERS,LTTRA,2002-10-18 11:42:00,2003-09-04 18:58:00,NOT COLLATERAL
+175158,18443.79,DGG,EKID,A,6206.88,390,24,SDK,FOLDERX,LTTRS,2002-10-18 00:42:00,2003-09-04 20:58:00,COLLATERAL
+175169,18446.901,DHH,VNCD,A,6193.06,393,23,MNV,FOLDERR,LTTRZ,2002-10-17 13:42:00,2003-09-04 22:58:00,COLLATERAL
+175180,18450.012,AAA,DKD,A,6179.24,396,22,OKW,FOLDERS,LTTRS,2002-10-17 02:42:00,2003-09-05 00:58:00,COLLATERAL
+175191,18453.123,BBB,FKF,A,6165.42,399,21,ASS,FOLDERX,LTTRS,2002-10-16 15:42:00,2003-09-05 02:58:00,NOT COLLATERAL
+175202,18456.234,CCC,LES,A,6151.6,402,20,CKA,FOLDERR,LTTRS,2002-10-16 04:42:00,2003-09-05 04:58:00,NOT COLLATERAL
+175213,18459.345,DDD,KLD,A,6137.78,405,19,SWQ,FOLDERS,LTTRS,2002-10-15 17:42:00,2003-09-05 06:58:00,NULL
+175224,18462.456,AAB,SKL,A,6123.96,408,18,KUH,FOLDERX,LTTRS,2002-10-15 06:42:00,2003-09-05 08:58:00,NULL
+175235,18465.567,AAC,SIW,A,6110.14,402,17,XCV,FOLDERR,LTTRS,2002-10-14 19:42:00,2003-09-05 10:58:00,NULL
+175246,18468.678,AAD,CKA,A,6096.32,396,16,ZAQ,FOLDERS,LTTRS,2002-10-14 08:42:00,2003-09-05 12:58:00,NULL
+175257,18471.789,AAE,LDE,A,6082.5,390,15,MKO,FOLDERX,LTTRS,2002-10-13 21:42:00,2003-09-05 14:58:00,NULL
+175268,18474.9,AAF,KFF,A,6068.68,384,14,VFR,FOLDERR,LTTRS,2002-10-13 10:42:00,2003-09-05 16:58:00,NULL
+175279,18478.011,BBA,EFH,A,6054.86,378,13,YUJ,FOLDERS,LTTRS,2002-10-12 23:42:00,2003-09-05 18:58:00,NULL
+175290,18481.122,BBC,NGC,A,6041.04,372,12,BBF,FOLDERX,LTTRS,2002-10-12 12:42:00,2003-09-05 20:58:00,NULL
+175301,18484.233,BBE,DER,A,6027.22,366,11,BBG,FOLDERD,LTTRS,2002-10-12 01:42:00,2003-09-05 22:58:00,COLLATERAL
+175312,18487.344,BBF,FVG,A,6013.4,360,10,BBH,FOLDERE,LTTRS,2002-10-11 14:42:00,2003-09-06 00:58:00,COLLATERAL
+175323,18490.455,BBG,KWE,A,5999.58,354,9,CCA,FOLDERF,LTTRS,2002-10-11 03:42:00,2003-09-06 02:58:00,NOT COLLATERAL
+175334,18493.566,BBH,WER,A,5985.76,348,8,CCB,FOLDERG,LTTRZ,2002-10-10 16:42:00,2003-09-06 04:58:00,NOT COLLATERAL
+175345,18496.677,CCA,GFH,A,5971.94,342,7,CCD,FOLDERH,LTTRA,2002-10-10 05:42:00,2003-09-06 06:58:00,NULL
+175356,18499.788,CCB,BGF,A,5958.12,336,6,CCE,FOLDERI,LTTRB,2002-10-09 18:42:00,2003-09-06 08:58:00,NULL
+175367,18502.899,CCD,XCS,A,5944.3,330,5,CCF,FOLDERJ,LTTRB,2002-10-09 07:42:00,2003-09-06 10:58:00,NULL
+175378,18506.01,CCE,JHK,A,5930.48,324,4,CCG,FOLDERK,LTTRA,2002-10-08 20:42:00,2003-09-06 12:58:00,NULL
+175389,18509.121,CCF,SFD,A,5916.66,318,3,CCH,FOLDERL,LTTRA,2002-10-08 09:42:00,2003-09-06 14:58:00,NULL
+175400,18512.232,CCG,WRE,A,5902.84,312,1,CCI,FOLDERM,LTTRS,2002-10-07 22:42:00,2003-09-06 16:58:00,NULL
+175411,18515.343,CCH,HGV,A,5889.02,306,2,CCJ,FOLDERN,LTTRZ,2002-10-07 11:42:00,2003-09-06 18:58:00,NOT COLLATERAL
+175422,18518.454,CCI,KLS,A,5875.2,300,3,DDD,FOLDERN,LTTRS,2002-10-07 00:42:00,2003-09-06 20:58:00,COLLATERAL
+175433,18521.565,CCJ,SDK,A,5861.38,294,4,DDA,FOLDERN,LTTRS,2002-10-06 13:42:00,2003-09-06 22:58:00,COLLATERAL
+175444,18524.676,DDD,MNV,A,5847.56,288,5,DAA,FOLDERN,LTTRS,2002-10-06 02:42:00,2003-09-07 00:58:00,COLLATERAL
+175455,18527.787,DDA,OKW,A,5833.74,282,6,FKF,FOLDERL,LTTRS,2002-10-05 15:42:00,2003-09-07 02:58:00,NOT COLLATERAL
+175466,18530.898,DAA,ASS,A,5819.92,276,7,LES,FOLDERL,LTTRS,2002-10-05 04:42:00,2003-09-07 04:58:00,NOT COLLATERAL
+175477,18534.009,DBB,CKA,A,5806.1,270,8,KLD,FOLDERL,LTTRS,2002-10-04 17:42:00,2003-09-07 06:58:00,NOT COLLATERAL
+175488,18537.12,DCC,SWQ,A,5792.28,264,9,SKL,FOLDERL,LTTRS,2002-10-04 06:42:00,2003-09-07 08:58:00,NULL
+175499,18540.231,DEE,KUH,A,5778.46,258,10,SIW,FOLDERL,LTTRS,2002-10-03 19:42:00,2003-09-07 10:58:00,NULL
+175510,18543.342,DFF,XCV,A,5764.64,252,11,CKA,FOLDERA,LTTRS,2002-10-03 08:42:00,2003-09-07 12:58:00,NULL
+175521,18546.453,DGG,ZAQ,A,5750.82,246,12,LDE,FOLDERB,LTTRS,2002-10-02 21:42:00,2003-09-07 14:58:00,NULL
+175532,18549.564,DHH,MKO,A,5737,240,13,KFF,FOLDERC,LTTRS,2002-10-02 10:42:00,2003-09-07 16:58:00,NULL
+175543,18552.675,AAA,VFR,A,5723.18,234,14,EFH,FOLDERD,LTTRS,2002-10-01 23:42:00,2003-09-07 18:58:00,NOT COLLATERAL
+175554,18555.786,BBB,YUJ,A,5709.36,228,15,NGC,FOLDERE,LTTRS,2002-10-01 12:42:00,2003-09-07 20:58:00,COLLATERAL
+175565,18558.897,CCC,MED,A,5695.54,222,16,DER,FOLDERF,LTTRS,2002-10-01 01:42:00,2003-09-07 22:58:00,COLLATERAL
+175576,18562.008,DDD,SWE,A,5681.72,216,17,FVG,FOLDERG,LTTRZ,2002-09-30 14:42:00,2003-09-08 00:58:00,COLLATERAL
+175587,18565.119,AAB,CVF,A,5667.9,210,18,KWE,FOLDERH,LTTRA,2002-09-30 03:42:00,2003-09-08 02:58:00,NOT COLLATERAL
+175598,18568.23,AAC,DSFG,A,5654.08,204,19,WER,FOLDERI,LTTRB,2002-09-29 16:42:00,2003-09-08 04:58:00,NOT COLLATERAL
+175609,18571.341,AAD,ASDRE,A,5640.26,198,20,GFH,FOLDERJ,LTTRB,2002-09-29 05:42:00,2003-09-08 06:58:00,NOT COLLATERAL
+175620,18574.452,AAE,HJKSS,A,5626.44,192,21,BGF,FOLDERK,LTTRA,2002-09-28 18:42:00,2003-09-08 08:58:00,NOT COLLATERAL
+175631,18577.563,AAF,KHAA,A,5612.62,186,22,XCS,FOLDERL,LTTRA,2002-09-28 07:42:00,2003-09-08 10:58:00,NOT COLLATERAL
+175642,18580.674,BBA,KSLD,A,5598.8,180,23,JHK,FOLDERM,LTTRS,2002-09-27 20:42:00,2003-09-08 12:58:00,NOT COLLATERAL
+175653,18583.785,BBC,EKID,A,5584.98,174,24,SFD,FOLDERN,LTTRZ,2002-09-27 09:42:00,2003-09-08 14:58:00,NOT COLLATERAL
+175664,18586.896,BBE,VNCD,A,5571.16,168,25,WRE,FOLDERO,LTTRS,2002-09-26 22:42:00,2003-09-08 16:58:00,NOT COLLATERAL
+175675,18590.007,BBF,DKD,A,5557.34,162,26,HGV,FOLDERP,LTTRS,2002-09-26 11:42:00,2003-09-08 18:58:00,NOT COLLATERAL
+175686,18593.118,BBG,FKF,A,5543.52,156,27,KLS,FOLDERQ,LTTRS,2002-09-26 00:42:00,2003-09-08 20:58:00,COLLATERAL
+175697,18596.229,BBH,LES,A,5529.7,150,28,SDK,FOLDERR,LTTRS,2002-09-25 13:42:00,2003-09-08 22:58:00,COLLATERAL
+175708,18599.34,CCA,KLD,A,5515.88,144,29,MNV,FOLDERS,LTTRS,2002-09-25 02:42:00,2003-09-09 00:58:00,COLLATERAL
+175719,18602.451,CCB,SKL,A,5502.06,138,30,OKW,FOLDERT,LTTRS,2002-09-24 15:42:00,2003-09-09 02:58:00,NOT COLLATERAL
+175730,18605.562,CCD,SIW,A,5488.24,132,31,ASS,FOLDERU,LTTRS,2002-09-24 04:42:00,2003-09-09 04:58:00,NOT COLLATERAL
+175741,18608.673,CCE,CKA,A,5474.42,126,32,CKA,FOLDERV,LTTRS,2002-09-23 17:42:00,2003-09-09 06:58:00,NOT COLLATERAL
+175752,18611.784,CCF,LDE,A,5460.6,120,33,SWQ,FOLDERW,LTTRS,2002-09-23 06:42:00,2003-09-09 08:58:00,NOT COLLATERAL
+175763,18614.895,CCG,KFF,A,5446.78,114,34,KUH,FOLDERX,LTTRS,2002-09-22 19:42:00,2003-09-09 10:58:00,NOT COLLATERAL
+175774,18618.006,CCH,EFH,A,5432.96,108,35,XCV,FOLDERY,LTTRS,2002-09-22 08:42:00,2003-09-09 12:58:00,NOT COLLATERAL
+175785,18621.117,CCI,NGC,A,5419.14,102,36,ZAQ,FOLDERZ,LTTRS,2002-09-21 21:42:00,2003-09-09 14:58:00,NOT COLLATERAL
+175796,18624.228,CCJ,DER,A,5405.32,96,37,MKO,FOLDERA,LTTRS,2002-09-21 10:42:00,2003-09-09 16:58:00,NOT COLLATERAL
+175807,18627.339,DDD,FVG,A,5391.5,90,38,VFR,FOLDERB,LTTRS,2002-09-20 23:42:00,2003-09-09 18:58:00,NOT COLLATERAL
+175818,18630.45,DDA,KWE,A,5377.68,91,39,YUJ,FOLDERC,LTTRZ,2002-09-20 12:42:00,2003-09-09 20:58:00,COLLATERAL
+175829,18633.561,DAA,WER,A,5363.86,91,40,XCV,FOLDERD,LTTRA,2002-09-20 01:42:00,2003-09-09 22:58:00,COLLATERAL
+175840,18636.672,DBB,GFH,A,5350.04,91,41,ZAQ,FOLDERE,LTTRB,2002-09-19 14:42:00,2003-09-10 00:58:00,COLLATERAL
+175851,18639.783,DCC,BGF,A,5336.22,91,42,MKO,FOLDERF,LTTRB,2002-09-19 03:42:00,2003-09-10 02:58:00,NOT COLLATERAL
+175862,18642.894,DEE,XCS,A,5322.4,91,43,VFR,FOLDERG,LTTRA,2002-09-18 16:42:00,2003-09-10 04:58:00,NOT COLLATERAL
+175873,18646.005,DFF,JHK,A,5308.58,91,44,YUJ,FOLDERH,LTTRA,2002-09-18 05:42:00,2003-09-10 06:58:00,NOT COLLATERAL
+175884,18649.116,DGG,SFD,A,5294.76,91,45,BBF,FOLDERI,LTTRS,2002-09-17 18:42:00,2003-09-10 08:58:00,NOT COLLATERAL
+175895,18652.227,DHH,WRE,A,5280.94,91,46,BBG,FOLDERJ,LTTRZ,2002-09-17 07:42:00,2003-09-10 10:58:00,NOT COLLATERAL
+175906,18655.338,AAA,HGV,A,5267.12,91,47,BBH,FOLDERK,LTTRS,2002-09-16 20:42:00,2003-09-10 12:58:00,NOT COLLATERAL
+175917,18658.449,BBB,KLS,A,5253.3,91,48,CCA,FOLDERL,LTTRS,2002-09-16 09:42:00,2003-09-10 14:58:00,NOT COLLATERAL
+175928,18661.56,CCC,SDK,A,5239.48,92,49,CCB,FOLDERM,LTTRS,2002-09-15 22:42:00,2003-09-10 16:58:00,NOT COLLATERAL
+175939,18664.671,DDD,MNV,A,5225.66,93,48,CCD,FOLDERN,LTTRS,2002-09-15 11:42:00,2003-09-10 18:58:00,NOT COLLATERAL
+175950,18667.782,AAB,OKW,A,5211.84,94,47,CCE,FOLDERO,LTTRS,2002-09-15 00:42:00,2003-09-10 20:58:00,COLLATERAL
+175961,18670.893,AAC,ASS,A,5198.02,95,46,CCF,FOLDERP,LTTRS,2002-09-14 13:42:00,2003-09-10 22:58:00,COLLATERAL
+175972,18674.004,AAD,CKA,A,5184.2,96,45,CCG,FOLDERQ,LTTRS,2002-09-14 02:42:00,2003-09-11 00:58:00,COLLATERAL
+175983,18677.115,AAE,SWQ,A,5170.38,97,44,CCH,FOLDERR,LTTRS,2002-09-13 15:42:00,2003-09-11 02:58:00,NOT COLLATERAL
+175994,18680.226,AAF,KUH,A,5156.56,98,43,CCI,FOLDERS,LTTRS,2002-09-13 04:42:00,2003-09-11 04:58:00,NOT COLLATERAL
+176005,18683.337,BBA,XCV,A,5142.74,99,42,CCJ,FOLDERT,LTTRS,2002-09-12 17:42:00,2003-09-11 06:58:00,NOT COLLATERAL
+176016,18686.448,BBC,ZAQ,A,5128.92,100,41,DDD,FOLDERU,LTTRS,2002-09-12 06:42:00,2003-09-11 08:58:00,NOT COLLATERAL
+176027,18689.559,BBE,MKO,A,5115.1,101,40,DDA,FOLDERV,LTTRS,2002-09-11 19:42:00,2003-09-11 10:58:00,NOT COLLATERAL
+176038,18692.67,BBF,VFR,A,5101.28,102,39,DAA,FOLDERW,LTTRS,2002-09-11 08:42:00,2003-09-11 12:58:00,NOT COLLATERAL
+176049,18695.781,BBG,YUJ,A,5087.46,103,38,FKF,FOLDERX,LTTRS,2002-09-10 21:42:00,2003-09-11 14:58:00,NOT COLLATERAL
+176060,18698.892,BBH,MED,A,5073.64,104,37,LES,FOLDERY,LTTRZ,2002-09-10 10:42:00,2003-09-11 16:58:00,NOT COLLATERAL
+176071,18702.003,CCA,SWE,A,5059.82,105,36,KLD,FOLDERZ,LTTRA,2002-09-09 23:42:00,2003-09-11 18:58:00,NOT COLLATERAL
+176082,18705.114,CCB,CVF,A,5046,106,35,SKL,FOLDERZ,LTTRB,2002-09-09 12:42:00,2003-09-11 20:58:00,COLLATERAL
+176093,18708.225,CCD,DSFG,A,5032.18,107,34,SIW,FOLDERZ,LTTRB,2002-09-09 01:42:00,2003-09-11 22:58:00,COLLATERAL
+176104,18711.336,CCE,ASDRE,A,5018.36,108,33,CKA,FOLDERZ,LTTRA,2002-09-08 14:42:00,2003-09-12 00:58:00,COLLATERAL
+176115,18714.447,CCF,HJKSS,A,5004.54,109,32,LDE,FOLDERZ,LTTRA,2002-09-08 03:42:00,2003-09-12 02:58:00,NOT COLLATERAL
+176126,18717.558,CCG,KHAA,A,4990.72,110,31,KFF,FOLDERZ,LTTRS,2002-09-07 16:42:00,2003-09-12 04:58:00,NOT COLLATERAL
+176137,18720.669,CCH,KSLD,A,4976.9,111,30,EFH,FOLDERZ,LTTRZ,2002-09-07 05:42:00,2003-09-12 06:58:00,NOT COLLATERAL
+176148,18723.78,CCI,EKID,A,4963.08,112,29,NGC,FOLDERZ,LTTRS,2002-09-06 18:42:00,2003-09-12 08:58:00,NOT COLLATERAL
+176159,18726.891,CCJ,VNCD,A,4949.26,113,28,DER,FOLDERZ,LTTRS,2002-09-06 07:42:00,2003-09-12 10:58:00,NOT COLLATERAL
+176170,18730.002,DDD,DKD,A,4935.44,114,27,FVG,FOLDERZ,LTTRS,2002-09-05 20:42:00,2003-09-12 12:58:00,NOT COLLATERAL
+176181,18733.113,DDA,FKF,A,4921.62,115,26,KWE,FOLDERZ,LTTRS,2002-09-05 09:42:00,2003-09-12 14:58:00,NOT COLLATERAL
+176192,18736.224,DAA,LES,A,4907.8,116,25,WER,FOLDERZ,LTTRS,2002-09-04 22:42:00,2003-09-12 16:58:00,NOT COLLATERAL
+176203,18739.335,DBB,KLD,A,4893.98,117,24,GFH,FOLDERZ,LTTRS,2002-09-04 11:42:00,2003-09-12 18:58:00,NOT COLLATERAL
+176214,18742.446,DCC,SKL,A,4880.16,118,23,BGF,FOLDERZ,LTTRS,2002-09-04 00:42:00,2003-09-12 20:58:00,COLLATERAL
+176225,18745.557,DEE,SIW,A,4866.34,119,22,XCS,FOLDERX,LTTRS,2002-09-03 13:42:00,2003-09-12 22:58:00,COLLATERAL
+176236,18748.668,DFF,CKA,A,4852.52,120,21,JHK,FOLDERX,LTTRS,2002-09-03 02:42:00,2003-09-13 00:58:00,COLLATERAL
+176247,18751.779,DGG,LDE,A,4838.7,121,20,SFD,FOLDERX,LTTRS,2002-09-02 15:42:00,2003-09-13 02:58:00,NOT COLLATERAL
+176258,18754.89,DHH,KFF,A,4824.88,122,19,WRE,FOLDERX,LTTRS,2002-09-02 04:42:00,2003-09-13 04:58:00,NOT COLLATERAL
+176269,18758.001,AAA,EFH,A,4811.06,123,18,HGV,FOLDERX,LTTRS,2002-09-01 17:42:00,2003-09-13 06:58:00,NOT COLLATERAL
+176280,18761.112,BBB,NGC,A,4797.24,124,17,KLS,FOLDERX,LTTRS,2002-09-01 06:42:00,2003-09-13 08:58:00,NOT COLLATERAL
+176291,18764.223,CCC,DER,A,4783.42,125,16,SDK,FOLDERX,LTTRS,2002-08-31 19:42:00,2003-09-13 10:58:00,NOT COLLATERAL
+176302,18767.334,DDD,FVG,A,4769.6,126,15,MNV,FOLDERX,LTTRZ,2002-08-31 08:42:00,2003-09-13 12:58:00,NOT COLLATERAL
+176313,18770.445,AAB,KWE,A,4755.78,127,14,OKW,FOLDERX,LTTRA,2002-08-30 21:42:00,2003-09-13 14:58:00,NOT COLLATERAL
+176324,18773.556,AAC,WER,A,4741.96,128,13,ASS,FOLDERX,LTTRB,2002-08-30 10:42:00,2003-09-13 16:58:00,NOT COLLATERAL
+176335,18776.667,AAD,GFH,A,4728.14,129,12,CKA,FOLDERX,LTTRB,2002-08-29 23:42:00,2003-09-13 18:58:00,NOT COLLATERAL
+176346,18779.778,AAE,BGF,A,4714.32,130,11,SWQ,FOLDERX,LTTRA,2002-08-29 12:42:00,2003-09-13 20:58:00,COLLATERAL
+176357,18782.889,AAF,XCS,A,4700.5,131,10,KUH,FOLDERR,LTTRA,2002-08-29 01:42:00,2003-09-13 22:58:00,COLLATERAL
+176368,18786,BBA,JHK,A,4686.68,132,9,XCV,FOLDERS,LTTRS,2002-08-28 14:42:00,2003-09-14 00:58:00,COLLATERAL
+176379,18789.111,BBC,SFD,A,4672.86,133,8,ZAQ,FOLDERX,LTTRZ,2002-08-28 03:42:00,2003-09-14 02:58:00,NOT COLLATERAL
+176390,18792.222,BBE,WRE,A,4659.04,134,7,MKO,FOLDERR,LTTRS,2002-08-27 16:42:00,2003-09-14 04:58:00,NOT COLLATERAL
+176401,18795.333,BBF,HGV,A,4645.22,135,6,VFR,FOLDERS,LTTRS,2002-08-27 05:42:00,2003-09-14 06:58:00,NOT COLLATERAL
+176412,18798.444,BBG,KLS,A,4631.4,136,5,YUJ,FOLDERX,LTTRS,2002-08-26 18:42:00,2003-09-14 08:58:00,NOT COLLATERAL
+176423,18801.555,BBH,SDK,A,4617.58,137,4,XCV,FOLDERR,LTTRS,2002-08-26 07:42:00,2003-09-14 10:58:00,NOT COLLATERAL
+176434,18804.666,CCA,MNV,A,4603.76,138,3,ZAQ,FOLDERS,LTTRS,2002-08-25 20:42:00,2003-09-14 12:58:00,NOT COLLATERAL
+176445,18807.777,CCB,OKW,A,4589.94,139,1,MKO,FOLDERX,LTTRS,2002-08-25 09:42:00,2003-09-14 14:58:00,NOT COLLATERAL
+176456,18810.888,CCD,ASS,A,4576.12,140,2,VFR,FOLDERR,LTTRS,2002-08-24 22:42:00,2003-09-14 16:58:00,NOT COLLATERAL
+176467,18813.999,CCE,CKA,A,4562.3,141,3,YUJ,FOLDERS,LTTRS,2002-08-24 11:42:00,2003-09-14 18:58:00,NOT COLLATERAL
+176478,18817.11,CCF,SWQ,A,4548.48,142,4,BBF,FOLDERX,LTTRS,2002-08-24 00:42:00,2003-09-14 20:58:00,COLLATERAL
+176489,18820.221,CCG,KUH,A,4534.66,143,5,BBG,FOLDERR,LTTRS,2002-08-23 13:42:00,2003-09-14 22:58:00,COLLATERAL
+176500,18823.332,CCH,XCV,A,4520.84,144,6,BBH,FOLDERS,LTTRS,2002-08-23 02:42:00,2003-09-15 00:58:00,COLLATERAL
+176511,18826.443,CCI,ZAQ,A,4507.02,145,7,CCA,FOLDERX,LTTRS,2002-08-22 15:42:00,2003-09-15 02:58:00,NOT COLLATERAL
+176522,18829.554,CCJ,MKO,A,4493.2,146,8,CCB,FOLDERD,LTTRS,2002-08-22 04:42:00,2003-09-15 04:58:00,NOT COLLATERAL
+176533,18832.665,DDD,VFR,A,4479.38,147,9,CCD,FOLDERE,LTTRS,2002-08-21 17:42:00,2003-09-15 06:58:00,NOT COLLATERAL
+176544,18835.776,DDA,YUJ,A,4465.56,148,10,CCE,FOLDERF,LTTRZ,2002-08-21 06:42:00,2003-09-15 08:58:00,NOT COLLATERAL
+176555,18838.887,DAA,MED,A,4451.74,149,11,CCF,FOLDERG,LTTRA,2002-08-20 19:42:00,2003-09-15 10:58:00,NOT COLLATERAL
+176566,18841.998,DBB,SWE,A,4437.92,150,12,CCG,FOLDERH,LTTRB,2002-08-20 08:42:00,2003-09-15 12:58:00,NOT COLLATERAL
+176577,18845.109,DCC,CVF,A,4424.1,151,13,CCH,FOLDERI,LTTRB,2002-08-19 21:42:00,2003-09-15 14:58:00,NOT COLLATERAL
+176588,18848.22,DEE,DSFG,A,4410.28,152,14,CCI,FOLDERJ,LTTRA,2002-08-19 10:42:00,2003-09-15 16:58:00,NOT COLLATERAL
+176599,18851.331,DFF,ASDRE,A,4396.46,153,15,CCJ,FOLDERK,LTTRA,2002-08-18 23:42:00,2003-09-15 18:58:00,NOT COLLATERAL
+176610,18854.442,DGG,HJKSS,A,4382.64,154,16,DDD,FOLDERL,LTTRS,2002-08-18 12:42:00,2003-09-15 20:58:00,COLLATERAL
+176621,18857.553,DHH,KHAA,A,4368.82,155,17,DDA,FOLDERM,LTTRZ,2002-08-18 01:42:00,2003-09-15 22:58:00,COLLATERAL
+176632,18860.664,AAA,KSLD,A,4355,156,18,DAA,FOLDERN,LTTRS,2002-08-17 14:42:00,2003-09-16 00:58:00,COLLATERAL
+176643,18863.775,BBB,EKID,A,4341.18,157,19,FKF,FOLDERN,LTTRS,2002-08-17 03:42:00,2003-09-16 02:58:00,NOT COLLATERAL
+176654,18866.886,CCC,VNCD,A,4327.36,158,20,LES,FOLDERN,LTTRS,2002-08-16 16:42:00,2003-09-16 04:58:00,NOT COLLATERAL
+176665,18869.997,DDD,DKD,A,4313.54,159,21,KLD,FOLDERN,LTTRS,2002-08-16 05:42:00,2003-09-16 06:58:00,NOT COLLATERAL
+176676,18873.108,AAB,FKF,A,4299.72,160,22,SKL,FOLDERL,LTTRS,2002-08-15 18:42:00,2003-09-16 08:58:00,NOT COLLATERAL
+176687,18876.219,AAC,LES,A,4285.9,161,23,SIW,FOLDERL,LTTRS,2002-08-15 07:42:00,2003-09-16 10:58:00,NOT COLLATERAL
+176698,18879.33,AAD,KLD,A,4272.08,162,24,CKA,FOLDERL,LTTRS,2002-08-14 20:42:00,2003-09-16 12:58:00,NOT COLLATERAL
+176709,18882.441,AAE,SKL,A,4258.26,163,25,LDE,FOLDERL,LTTRS,2002-08-14 09:42:00,2003-09-16 14:58:00,NOT COLLATERAL
+176720,18885.552,AAF,SIW,A,4244.44,164,26,KFF,FOLDERL,LTTRS,2002-08-13 22:42:00,2003-09-16 16:58:00,NOT COLLATERAL
+176731,18888.663,BBA,CKA,A,4230.62,165,27,EFH,FOLDERA,LTTRS,2002-08-13 11:42:00,2003-09-16 18:58:00,NOT COLLATERAL
+176742,18891.774,BBC,LDE,A,4216.8,166,28,NGC,FOLDERB,LTTRS,2002-08-13 00:42:00,2003-09-16 20:58:00,COLLATERAL
+176753,18894.885,BBE,KFF,A,4202.98,167,29,DER,FOLDERC,LTTRS,2002-08-12 13:42:00,2003-09-16 22:58:00,COLLATERAL
+176764,18897.996,BBF,EFH,A,4189.16,168,30,FVG,FOLDERD,LTTRS,2002-08-12 02:42:00,2003-09-17 00:58:00,COLLATERAL
+176775,18901.107,BBG,NGC,A,4175.34,169,31,KWE,FOLDERE,LTTRS,2002-08-11 15:42:00,2003-09-17 02:58:00,NOT COLLATERAL
+176786,18904.218,BBH,DER,A,4161.52,170,32,WER,FOLDERF,LTTRZ,2002-08-11 04:42:00,2003-09-17 04:58:00,NOT COLLATERAL
+176797,18907.329,CCA,FVG,A,4147.7,171,33,GFH,FOLDERG,LTTRA,2002-08-10 17:42:00,2003-09-17 06:58:00,NOT COLLATERAL
+176808,18910.44,CCB,KWE,A,4133.88,172,34,BGF,FOLDERH,LTTRB,2002-08-10 06:42:00,2003-09-17 08:58:00,NOT COLLATERAL
+176819,18913.551,CCD,WER,A,4120.06,173,35,XCS,FOLDERI,LTTRB,2002-08-09 19:42:00,2003-09-17 10:58:00,NOT COLLATERAL
+176830,18916.662,CCE,GFH,A,4106.24,174,36,JHK,FOLDERJ,LTTRA,2002-08-09 08:42:00,2003-09-17 12:58:00,NOT COLLATERAL
+176841,18919.773,CCF,BGF,A,4092.42,175,37,SFD,FOLDERK,LTTRA,2002-08-08 21:42:00,2003-09-17 14:58:00,NOT COLLATERAL
+176852,18922.884,CCG,XCS,A,4078.6,176,38,WRE,FOLDERL,LTTRS,2002-08-08 10:42:00,2003-09-17 16:58:00,NOT COLLATERAL
+176863,18925.995,CCH,JHK,A,4064.78,177,39,HGV,FOLDERM,LTTRZ,2002-08-07 23:42:00,2003-09-17 18:58:00,NOT COLLATERAL
+176874,18929.106,CCI,SFD,A,4050.96,178,40,KLS,FOLDERN,LTTRS,2002-08-07 12:42:00,2003-09-17 20:58:00,COLLATERAL
+176885,18932.217,CCJ,WRE,A,4037.14,179,41,SDK,FOLDERO,LTTRS,2002-08-07 01:42:00,2003-09-17 22:58:00,COLLATERAL
+176896,18935.328,DDD,HGV,A,4023.32,180,42,MNV,FOLDERP,LTTRS,2002-08-06 14:42:00,2003-09-18 00:58:00,COLLATERAL
+176907,18938.439,DDA,KLS,A,4009.5,181,43,OKW,FOLDERQ,LTTRS,2002-08-06 03:42:00,2003-09-18 02:58:00,NOT COLLATERAL
+176918,18941.55,DAA,SDK,A,3995.68,182,44,ASS,FOLDERR,LTTRS,2002-08-05 16:42:00,2003-09-18 04:58:00,NOT COLLATERAL
+176929,18944.661,DBB,MNV,A,3981.86,183,45,CKA,FOLDERS,LTTRS,2002-08-05 05:42:00,2003-09-18 06:58:00,NOT COLLATERAL
+176940,18947.772,DCC,OKW,A,3968.04,184,46,SWQ,FOLDERT,LTTRS,2002-08-04 18:42:00,2003-09-18 08:58:00,NOT COLLATERAL
+176951,18950.883,DEE,ASS,A,3954.22,185,47,KUH,FOLDERU,LTTRS,2002-08-04 07:42:00,2003-09-18 10:58:00,NOT COLLATERAL
+176962,18953.994,DFF,CKA,A,3940.4,186,48,XCV,FOLDERV,LTTRS,2002-08-03 20:42:00,2003-09-18 12:58:00,NOT COLLATERAL
+176973,18957.105,DGG,SWQ,A,3926.58,187,49,ZAQ,FOLDERW,LTTRS,2002-08-03 09:42:00,2003-09-18 14:58:00,NOT COLLATERAL
+176984,18960.216,DHH,KUH,A,3912.76,188,48,MKO,FOLDERX,LTTRS,2002-08-02 22:42:00,2003-09-18 16:58:00,NOT COLLATERAL
+176995,18963.327,AAA,XCV,A,3898.94,189,47,VFR,FOLDERY,LTTRS,2002-08-02 11:42:00,2003-09-18 18:58:00,NOT COLLATERAL
+177006,18966.438,BBB,ZAQ,A,3885.12,190,46,YUJ,FOLDERZ,LTTRS,2002-08-02 00:42:00,2003-09-18 20:58:00,COLLATERAL
+177017,18969.549,CCC,MKO,A,3871.3,191,45,MNV,FOLDERA,LTTRS,2002-08-01 13:42:00,2003-09-18 22:58:00,COLLATERAL
+177028,18972.66,DDD,VFR,A,3857.48,192,44,OKW,FOLDERB,LTTRZ,2002-08-01 02:42:00,2003-09-19 00:58:00,COLLATERAL
+177039,18975.771,AAB,YUJ,A,3843.66,193,43,ASS,FOLDERC,LTTRA,2002-07-31 15:42:00,2003-09-19 02:58:00,NOT COLLATERAL
+177050,18978.882,AAC,MED,A,3829.84,194,42,CKA,FOLDERD,LTTRB,2002-07-31 04:42:00,2003-09-19 04:58:00,NOT COLLATERAL
+177061,18981.993,AAD,SWE,A,3816.02,195,41,SWQ,FOLDERE,LTTRB,2002-07-30 17:42:00,2003-09-19 06:58:00,NOT COLLATERAL
+177072,18985.104,AAE,CVF,A,3802.2,196,40,KUH,FOLDERF,LTTRA,2002-07-30 06:42:00,2003-09-19 08:58:00,NOT COLLATERAL
+177083,18988.215,AAF,DSFG,A,3788.38,197,39,XCV,FOLDERG,LTTRA,2002-07-29 19:42:00,2003-09-19 10:58:00,NOT COLLATERAL
+177094,18991.326,BBA,ASDRE,A,3774.56,198,38,ZAQ,FOLDERH,LTTRS,2002-07-29 08:42:00,2003-09-19 12:58:00,NOT COLLATERAL
+177105,18994.437,BBC,HJKSS,A,3760.74,199,37,MKO,FOLDERI,LTTRZ,2002-07-28 21:42:00,2003-09-19 14:58:00,NOT COLLATERAL
+177116,18997.548,BBE,KHAA,A,3746.92,200,36,VFR,FOLDERJ,LTTRS,2002-07-28 10:42:00,2003-09-19 16:58:00,NOT COLLATERAL
+177127,19000.659,BBF,KSLD,A,3733.1,201,35,YUJ,FOLDERK,LTTRS,2002-07-27 23:42:00,2003-09-19 18:58:00,NOT COLLATERAL
+177138,19003.77,BBG,EKID,A,3719.28,202,34,YUJ,FOLDERL,LTTRS,2002-07-27 12:42:00,2003-09-19 20:58:00,COLLATERAL
Copied: trunk/connectors/translator-text/src/test/resources/SummitData_Descriptor.txt (from rev 2111, trunk/connectors/connector-text/src/test/resources/SummitData_Descriptor.txt)
===================================================================
--- trunk/connectors/translator-text/src/test/resources/SummitData_Descriptor.txt (rev 0)
+++ trunk/connectors/translator-text/src/test/resources/SummitData_Descriptor.txt 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,5 @@
+SummitData.SUMMITDATA.skipHeaderLines = 1
+SummitData.SUMMITDATA.location = src/test/resources/SUMMITDATA3.txt
+SummitData.SUMMITDATA.delimiter = ,
+SummitData.SUMMITDATA.columns = TRADEID,NOTIONAL,EVTTYPE,CCY,PORS,RATE,STRIKE,SPREAD,DMOWNERTAB,FOLDER,DESK,START,MATURITY,COMMENT
+SummitData.SUMMITDATA.types = integer,biginteger,string,string,string,biginteger,integer,integer,string,string,string,timestamp,timestamp,string
\ No newline at end of file
Copied: trunk/connectors/translator-text/src/test/resources/SummitExtractCDM_Descriptor.txt (from rev 2111, trunk/connectors/connector-text/src/test/resources/SummitExtractCDM_Descriptor.txt)
===================================================================
--- trunk/connectors/translator-text/src/test/resources/SummitExtractCDM_Descriptor.txt (rev 0)
+++ trunk/connectors/translator-text/src/test/resources/SummitExtractCDM_Descriptor.txt 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,3 @@
+SummitExtractCDM.SUMMITEXTRACTCDM.skipHeaderLines=0
+SummitExtractCDM.SUMMITEXTRACTCDM.location=src/test/resources/cdm_dos.txt
+SummitExtractCDM.SUMMITEXTRACTCDM.delimiter=
Copied: trunk/connectors/translator-text/src/test/resources/TextParts (from rev 2111, trunk/connectors/connector-text/src/test/resources/TextParts)
Copied: trunk/connectors/translator-text/src/test/resources/case4151 (from rev 2111, trunk/connectors/connector-text/src/test/resources/case4151)
Copied: trunk/connectors/translator-text/src/test/resources/cdm_dos.txt (from rev 2111, trunk/connectors/connector-text/src/test/resources/cdm_dos.txt)
===================================================================
--- trunk/connectors/translator-text/src/test/resources/cdm_dos.txt (rev 0)
+++ trunk/connectors/translator-text/src/test/resources/cdm_dos.txt 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,52 @@
+ 000183USD07/26/200107/26/2004 000183 USD 07/26/2001 07/26/2004 10000000.00 Summit 195205NY 0.005450 0.000000 MCREDCLN
+ 000184USD07/26/200107/26/2004 000184 USD 07/26/2001 07/26/2004 10000000.00 Summit 195219NY 0.005450 0.000000 NYBDUMMY
+ 000185USD07/26/200107/26/2004 000185 USD 07/26/2001 07/26/2004 10000000.00 Summit 195233NY 0.009700 0.000000 MCREDCLN
+ 000186USD07/26/200107/26/2004 000186 USD 07/26/2001 07/26/2004 10000000.00 Summit 195234NY 0.009700 0.000000 NYBDUMMY
+ 000258AUSD12/12/200209/15/2005 000258 USD 12/12/2002 09/15/2005 10000000.00 Summit 247299N 0.011500 0.000000 DCC2
+ 000259AUSD01/17/200303/20/2005 000259 USD 01/17/2003 03/20/2005 10000000.00 Summit 247300N 0.011000 0.000000 DCC2
+ 000273USD04/25/200307/07/2006 000273 USD 04/25/2003 07/07/2006 5000000.00 Summit 258123NY 0.008000 0.000000 LTINV
+ 000276AUSD05/10/200306/20/2008 000276 USD 05/10/2003 06/20/2008 10000000.00 Summit 260100N 0.033000 0.000000 DCC2
+ 000277AUSD05/10/200306/20/2008 000277 USD 05/10/2003 06/20/2008 5000000.00 Summit 260101N 0.006500 0.000000 DCC2
+ 000278AUSD05/13/200306/20/2008 000278 USD 05/13/2003 06/20/2008 5000000.00 Summit 260102N 0.033000 0.000000 DCC2
+ 000279AUSD05/14/200306/20/2008 000279 USD 05/14/2003 06/20/2008 5000000.00 Summit 260131N 0.033000 0.000000 DCC2
+ 000280USD06/11/200307/07/2006 000280 USD 06/11/2003 07/07/2006 5000000.00 Summit 264602NY 0.008900 0.000000 LTINV
+ 000289AUSD07/03/200309/20/2008 000289 USD 07/03/2003 09/20/2008 5000000.00 Summit 265496NY 0.004400 0.000000 LTINV
+ 000292USD07/19/200309/20/2008 000292 USD 07/19/2003 09/20/2008 5000000.00 Summit 271005NY 0.005000 0.000000 LTINV
+ 000350USD01/28/200403/20/2009 000350 USD 01/28/2004 03/20/2009 10000000.00 Summit 314996N 0.005200 0.000000 DCC2
+ 000354USD03/10/200403/10/2007 000354 USD 03/10/2004 03/10/2007 9324082.77 Summit 318622NY 0.037500 0.000000 LTTRSCDS
+ 000357USD03/16/200403/16/2007 000357 USD 03/16/2004 03/16/2007 9924050.62 Summit 318638NY 0.030000 0.000000 LTTRSCDS
+ 000359USD03/09/200403/09/2007 000359 USD 03/09/2004 03/09/2007 9329349.59 Summit 318641NY 0.027500 0.000000 LTTRSCDS
+ 000360USD03/18/200403/18/2007 000360 USD 03/18/2004 03/18/2007 232935.47 Summit 318642NY 0.032500 0.000000 LTTRSCDS
+ 000352USD04/08/200404/08/2007 000352 USD 04/08/2004 04/08/2007 9788013.59 Summit 318643NY 0.032500 0.000000 LTTRSCDS
+ 000353USD03/04/200403/04/2007 000353 USD 03/04/2004 03/04/2007 809831.58 Summit 318644NY 0.032500 0.000000 LTTRSCDS
+ 000353USD03/04/200403/04/2007 000353 USD 03/04/2004 03/04/2007 705882.35 Summit 325357NY 0.032500 0.000000 LTTRSCDS
+ 000353USD03/04/200403/04/2007 000353 USD 03/04/2004 03/04/2007 156623.38 Summit 325358NY 0.032500 0.000000 LTTRSCDS
+ 000353USD03/04/200403/04/2007 000353 USD 03/04/2004 03/04/2007 278643.02 Summit 325363NY 0.032500 0.000000 LTTRSCDS
+ 000353USD03/04/200403/04/2007 000353 USD 03/04/2004 03/04/2007 711809.48 Summit 325364NY 0.032500 0.000000 LTTRSCDS
+ 000359USD03/09/200403/09/2007 000359 USD 03/09/2004 03/09/2007 76890.25 Summit 325366NY 0.027500 0.000000 LTTRSCDS
+ 000360USD03/18/200403/18/2007 000360 USD 03/18/2004 03/18/2007 1049811.00 Summit 329001NY 0.032500 0.000000 LTTRSCDS
+ 000360USD03/18/200403/18/2007 000360 USD 03/18/2004 03/18/2007 414407.12 Summit 329002NY 0.032500 0.000000 LTTRSCDS
+ 000360USD03/18/200403/18/2007 000360 USD 03/18/2004 03/18/2007 1204408.30 Summit 329003NY 0.032500 0.000000 LTTRSCDS
+ 000360USD03/18/200403/18/2007 000360 USD 03/18/2004 03/18/2007 1058626.60 Summit 329004NY 0.032500 0.000000 LTTRSCDS
+ 000362USD04/12/200404/12/2007 000362 USD 04/12/2004 04/12/2007 194934.82 Summit 331567NY 0.040000 0.000000 LTTRSCDS
+ 000362USD04/12/200404/12/2007 000362 USD 04/12/2004 04/12/2007 131062.23 Summit 335678NY 0.040000 0.000000 LTTRSCDS
+ 000362USD04/12/200404/12/2007 000362 USD 04/12/2004 04/12/2007 1094136.66 Summit 335679NY 0.040000 0.000000 LTTRSCDS
+ 000362USD04/12/200404/12/2007 000362 USD 04/12/2004 04/12/2007 2785075.14 Summit 335680NY 0.040000 0.000000 LTTRSCDS
+ 000362USD04/12/200404/12/2007 000362 USD 04/12/2004 04/12/2007 2785075.14 Summit 335681NY 0.040000 0.000000 LTTRSCDS
+ 000362USD04/12/200404/12/2007 000362 USD 04/12/2004 04/12/2007 2984009.08 Summit 335682NY 0.040000 0.000000 LTTRSCDS
+ 000363USD05/03/200405/03/2007 000363 USD 05/03/2004 05/03/2007 10000000.00 Summit 338242NY 0.025000 0.000000 LTTRSCDS
+ 000364USD05/17/200405/17/2007 000364 USD 05/17/2004 05/17/2007 5000000.00 Summit 338820NY 0.032500 0.000000 LTTRSCDS
+ 000365USD05/07/200406/20/2009 000365 USD 05/07/2004 06/20/2009 5000000.00 Summit 340411N 0.004800 0.000000 DCC2
+ 000099USD12/06/199912/06/2004 000099 USD 12/06/1999 12/06/2004 200000000.00 Summit 340805NY 0.000000 0.000000 PCTRSCDS
+ 000129USD04/03/200010/01/2008 000129 USD 04/03/2000 10/01/2008 200000000.00 Summit 340834NY 0.000000 0.000000 PCTRSCDS
+ 000148USD09/12/200012/19/2005 000148 USD 09/12/2000 12/19/2005 573667.12 Summit 340844NY 0.000000 0.000000 PCTRSCDS
+ 000149USD09/12/200012/19/2005 000149 USD 09/12/2000 12/19/2005 2118155.52 Summit 340847NY 0.000000 0.000000 PCTRSCDS
+ 000150USD09/12/200012/19/2005 000150 USD 09/12/2000 12/19/2005 4986491.88 Summit 340848NY 0.000000 0.000000 PCTRSCDS
+ 000366USD05/06/200405/06/2007 000366 USD 05/06/2004 05/06/2007 3058823.53 Summit 341369NY 0.030000 0.000000 LTTRSCDS
+ 000367USD05/06/200405/06/2007 000367 USD 05/06/2004 05/06/2007 6941176.47 Summit 341377NY 0.030000 0.000000 LTTRSCDS
+ 000213USD02/11/200202/11/2007 000213 USD 02/11/2002 02/11/2007 8000000.00 Summit 343117NY 0.056500 0.000000 CNA2
+ 000272USD03/05/200301/31/2005 000272 USD 03/05/2003 01/31/2005 28000000.00 Summit 343123NY 0.006000 0.000000 CNA2
+ 000333USD11/13/200311/20/2004 000333 USD 11/13/2003 11/20/2004 25000000.00 Summit 343151NY 0.003800 0.000000 CNA2
+ 000368USD05/24/200405/24/2007 000368 USD 05/24/2004 05/24/2007 10000000.00 Summit 343169NY 0.025000 0.000000 LTTRSCDS
+ 000168USD12/18/200001/31/2006 000168 USD 12/18/2000 01/31/2006 672096851.46 Summit 344846NY 0.000000 0.000000 ASGCGD
+ 000369USD05/20/200405/20/2007 000369 USD 05/20/2004 05/20/2007 10000000.00 Summit 344851NY 0.032500 0.000000 LTTRSCDS
Copied: trunk/connectors/translator-text/src/test/resources/libraryDelimited.txt (from rev 2111, trunk/connectors/connector-text/src/test/resources/libraryDelimited.txt)
===================================================================
--- trunk/connectors/translator-text/src/test/resources/libraryDelimited.txt (rev 0)
+++ trunk/connectors/translator-text/src/test/resources/libraryDelimited.txt 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,2 @@
+"1", "2003-03-25", "Blind"
+"2","1998-04-29", "Antipop"
\ No newline at end of file
Copied: trunk/connectors/translator-text/src/test/resources/summitData (from rev 2111, trunk/connectors/connector-text/src/test/resources/summitData)
Copied: trunk/connectors/translator-text/src/test/resources/test-file.txt.csv (from rev 2111, trunk/connectors/connector-text/src/test/resources/test-file.txt.csv)
===================================================================
--- trunk/connectors/translator-text/src/test/resources/test-file.txt.csv (rev 0)
+++ trunk/connectors/translator-text/src/test/resources/test-file.txt.csv 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,7 @@
+Col1Header,"Col2
+Header on newline",Col3Head
+VAL1,,VAL2
+VAL3,,VAL4
+VAL5,Test,abc
+VAL6,"VAL7
+VAL8 on a newline",VAL9
Copied: trunk/connectors/translator-text/src/test/resources/testDescriptorDelimited.txt (from rev 2111, trunk/connectors/connector-text/src/test/resources/testDescriptorDelimited.txt)
===================================================================
--- trunk/connectors/translator-text/src/test/resources/testDescriptorDelimited.txt (rev 0)
+++ trunk/connectors/translator-text/src/test/resources/testDescriptorDelimited.txt 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,6 @@
+text.library.location = src/test/resources/libraryDelimited.txt
+text.library.qualifier = "
+text.library.delimiter = ,
+text.library2.location = src/test/resources/libraryDelimited2.txt
+text.library2.qualifier = "
+text.library2.delimiter = ,
Copied: trunk/connectors/translator-text/src/test/resources/testfile-descriptor.txt (from rev 2111, trunk/connectors/connector-text/src/test/resources/testfile-descriptor.txt)
===================================================================
--- trunk/connectors/translator-text/src/test/resources/testfile-descriptor.txt (rev 0)
+++ trunk/connectors/translator-text/src/test/resources/testfile-descriptor.txt 2010-05-11 16:40:58 UTC (rev 2113)
@@ -0,0 +1,3 @@
+ThreeColString_Text.testfile.location = src/test/resources/test-file.txt.csv
+ThreeColString_Text.testfile.qualifier = "
+ThreeColString_Text.testfile.delimiter = ,
Modified: trunk/engine/src/main/java/com/metamatrix/query/function/source/XMLSystemFunctions.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/function/source/XMLSystemFunctions.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/engine/src/main/java/com/metamatrix/query/function/source/XMLSystemFunctions.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -27,6 +27,7 @@
import java.io.Reader;
import java.io.StringReader;
import java.io.Writer;
+import java.nio.CharBuffer;
import java.sql.Clob;
import java.sql.SQLException;
import java.sql.SQLXML;
@@ -367,6 +368,14 @@
});
eventWriter.add(eventReader);
break;
+ case TEXT:
+ CharBuffer buffer = CharBuffer.allocate(1 << 13);
+ XMLEventFactory eventFactory = XMLEventFactory.newInstance();
+ while (r.read(buffer) != -1) {
+ eventWriter.add(eventFactory.createCharacters(new String(buffer.array(), 0, buffer.position())));
+ buffer.reset();
+ }
+ break;
}
}
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -30,6 +30,7 @@
import java.util.Map;
import java.util.Properties;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicInteger;
import javax.naming.InitialContext;
import javax.naming.NamingException;
@@ -69,8 +70,12 @@
public class ConnectorManager {
public static final int DEFAULT_MAX_THREADS = 20;
+
+ private static AtomicInteger ID_SEQUENCE = new AtomicInteger();
+
private String translatorName;
private String connectionName;
+ private String connectorId = String.valueOf(ID_SEQUENCE.getAndIncrement());
//services acquired in start
private BufferService bufferService;
@@ -85,7 +90,6 @@
private LinkedList<ConnectorWorkItem> queuedRequests = new LinkedList<ConnectorWorkItem>();
private volatile boolean stopped;
-
public ConnectorManager(String translatorName, String connectionName) {
this.translatorName = translatorName;
@@ -142,7 +146,7 @@
checkStatus();
ExecutionFactory connector = getExecutionFactory();
ConnectorCapabilities caps = connector.getCapabilities();
- BasicSourceCapabilities resultCaps = CapabilitiesConverter.convertCapabilities(caps, this.translatorName, connector.isXaCapable());
+ BasicSourceCapabilities resultCaps = CapabilitiesConverter.convertCapabilities(caps, this.connectorId, connector.isXaCapable());
resultCaps.setScope(Scope.SCOPE_GLOBAL);
cachedCapabilities = resultCaps;
return resultCaps;
@@ -193,6 +197,7 @@
/**
* initialize this <code>ConnectorManager</code>.
+ * @throws ConnectorException
*/
public void start() {
LogManager.logDetail(LogConstants.CTX_CONNECTOR, DQPPlugin.Util.getString("ConnectorManagerImpl.Initializing_connector", translatorName)); //$NON-NLS-1$
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorWorkItem.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorWorkItem.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorWorkItem.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -251,14 +251,14 @@
// Create the execution based on mode
final Execution exec = connector.createExecution(this.translatedCommand, this.securityContext, rmd, this.connection);
if (this.translatedCommand instanceof Call) {
- Assertion.isInstanceOf(this.execution, ProcedureExecution.class, "IProcedure Executions are expected to be ProcedureExecutions"); //$NON-NLS-1$
+ Assertion.isInstanceOf(this.execution, ProcedureExecution.class, "Call Executions are expected to be ProcedureExecutions"); //$NON-NLS-1$
this.execution = (ProcedureExecution)exec;
StoredProcedure proc = (StoredProcedure)command;
if (proc.returnParameters()) {
this.procedureBatchHandler = new ProcedureBatchHandler((Call)this.translatedCommand, (ProcedureExecution)this.execution);
}
} else if (this.translatedCommand instanceof QueryExpression){
- Assertion.isInstanceOf(this.execution, ResultSetExecution.class, "IQueryCommand Executions are expected to be ResultSetExecutions"); //$NON-NLS-1$
+ Assertion.isInstanceOf(this.execution, ResultSetExecution.class, "QueryExpression Executions are expected to be ResultSetExecutions"); //$NON-NLS-1$
this.execution = (ResultSetExecution)exec;
} else {
Assertion.isInstanceOf(this.execution, UpdateExecution.class, "Update Executions are expected to be UpdateExecutions"); //$NON-NLS-1$
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/impl/TestTypeFacilityImpl.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/impl/TestTypeFacilityImpl.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/impl/TestTypeFacilityImpl.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -24,14 +24,14 @@
import java.sql.Clob;
-import org.teiid.resource.cci.TypeFacilityImpl;
+import org.teiid.resource.cci.TypeFacility;
import junit.framework.TestCase;
public class TestTypeFacilityImpl extends TestCase {
public void testNullClob() {
- assertNull(new TypeFacilityImpl().convertToRuntimeType((Clob)null));
+ assertNull(new TypeFacility().convertToRuntimeType((Clob)null));
}
}
Modified: trunk/metadata/src/test/java/com/metamatrix/cdk/api/ConnectorHost.java
===================================================================
--- trunk/metadata/src/test/java/com/metamatrix/cdk/api/ConnectorHost.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/metadata/src/test/java/com/metamatrix/cdk/api/ConnectorHost.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -22,8 +22,6 @@
package com.metamatrix.cdk.api;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -50,18 +48,20 @@
private ExecutionFactory connector;
private TranslationUtility util;
private ExecutionContext executionContext;
+ private Object connectionFactory;
- public ConnectorHost(ExecutionFactory connector, String vdbFileName) throws ConnectorException {
- initialize(connector, new TranslationUtility(VDBMetadataFactory.getVDBMetadata(vdbFileName)));
+ public ConnectorHost(ExecutionFactory connector, Object connectionFactory, String vdbFileName) throws ConnectorException {
+ initialize(connector, connectionFactory, new TranslationUtility(VDBMetadataFactory.getVDBMetadata(vdbFileName)));
}
- public ConnectorHost(ExecutionFactory connector, TranslationUtility util) throws ConnectorException{
- initialize(connector, util);
+ public ConnectorHost(ExecutionFactory connector, Object connectionFactory, TranslationUtility util) throws ConnectorException{
+ initialize(connector, connectionFactory, util);
}
- private void initialize(ExecutionFactory connector, TranslationUtility util) throws ConnectorException {
+ private void initialize(ExecutionFactory connector, Object connectionFactory, TranslationUtility util) throws ConnectorException {
this.connector = connector;
this.util = util;
+ this.connectionFactory = connectionFactory;
this.connector.start();
}
@@ -69,49 +69,22 @@
this.executionContext = context;
}
- public List executeCommand(String query, Object connection) throws ConnectorException {
+ public List executeCommand(String query) throws ConnectorException {
+ Command command = getCommand(query);
+ RuntimeMetadata runtimeMetadata = getRuntimeMetadata();
- try {
- Command command = getCommand(query);
- RuntimeMetadata runtimeMetadata = getRuntimeMetadata();
-
- return executeCommand(connection, command, runtimeMetadata);
- } finally {
- if (connection != null) {
- close(connection);
- }
- }
+ return executeCommand(command, runtimeMetadata);
}
- public List executeCommand(Command command, Object connection) throws ConnectorException {
- try {
- RuntimeMetadata runtimeMetadata = getRuntimeMetadata();
- return executeCommand(connection, command, runtimeMetadata);
- } finally {
- if (connection != null) {
- close(connection);
- }
- }
+ public List executeCommand(Command command) throws ConnectorException {
+ RuntimeMetadata runtimeMetadata = getRuntimeMetadata();
+ return executeCommand(command, runtimeMetadata);
}
- private void close(Object connection) {
- try {
- Method m = connection.getClass().getMethod("close"); //$NON-NLS-1$
- if (m != null) {
- m.invoke(connection);
- }
- } catch (SecurityException e) {
- } catch (IllegalArgumentException e) {
- } catch (NoSuchMethodException e) {
- } catch (IllegalAccessException e) {
- } catch (InvocationTargetException e) {
- }
- }
-
- private List executeCommand(Object connection, Command command, RuntimeMetadata runtimeMetadata)
+ private List executeCommand(Command command, RuntimeMetadata runtimeMetadata)
throws ConnectorException {
- Execution exec = connector.createExecution(command, this.executionContext, runtimeMetadata, connection);
+ Execution exec = connector.createExecution(command, this.executionContext, runtimeMetadata, this.connectionFactory);
exec.execute();
List results = readResultsFromExecution(exec);
exec.close();
@@ -119,24 +92,18 @@
return results;
}
- public int[] executeBatchedUpdates(String[] updates, Object connection) throws ConnectorException {
- try {
- RuntimeMetadata runtimeMetadata = getRuntimeMetadata();
- Command[] commands = new Command[updates.length];
- for (int i = 0; i < updates.length; i++) {
- commands[i] = getCommand(updates[i]);
- }
-
- return executeBatchedUpdates(connection, commands, runtimeMetadata);
- } finally {
- if (connection != null) {
- close(connection);
- }
+ public int[] executeBatchedUpdates(String[] updates) throws ConnectorException {
+ RuntimeMetadata runtimeMetadata = getRuntimeMetadata();
+ Command[] commands = new Command[updates.length];
+ for (int i = 0; i < updates.length; i++) {
+ commands[i] = getCommand(updates[i]);
}
+
+ return executeBatchedUpdates(commands, runtimeMetadata);
}
- public int[] executeBatchedUpdates(Object connection, Command[] commands, RuntimeMetadata runtimeMetadata) throws ConnectorException {
- List<List> result = executeCommand(connection, new BatchedUpdates(Arrays.asList(commands)), runtimeMetadata);
+ public int[] executeBatchedUpdates(Command[] commands, RuntimeMetadata runtimeMetadata) throws ConnectorException {
+ List<List> result = executeCommand(new BatchedUpdates(Arrays.asList(commands)), runtimeMetadata);
int[] counts = new int[result.size()];
for (int i = 0; i < counts.length; i++) {
counts[i] = ((Integer)result.get(i).get(0)).intValue();
Modified: trunk/runtime/src/main/java/org/teiid/logging/Log4jListener.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/logging/Log4jListener.java 2010-05-11 03:40:11 UTC (rev 2112)
+++ trunk/runtime/src/main/java/org/teiid/logging/Log4jListener.java 2010-05-11 16:40:58 UTC (rev 2113)
@@ -29,7 +29,7 @@
/**
* Log4J Listener
*/
-public class Log4jListener implements LogListener{
+public class Log4jListener implements org.teiid.logging.Logger {
@Override
public boolean isEnabled(String context, int level) {
15 years, 11 months
teiid SVN: r2112 - in trunk: jboss-integration/src/main/java/org/teiid/adminapi/jboss and 2 other directories.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2010-05-10 23:40:11 -0400 (Mon, 10 May 2010)
New Revision: 2112
Modified:
trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml
trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/Admin.java
trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/AdminObjectBuilder.java
trunk/runtime/src/main/java/org/teiid/templates/TranslatorMetadataICF.java
trunk/test-integration/db/src/test/java/org/teiid/adminapi/jboss/TestConnectorBindings.java
Log:
TEIID-1075:Fixing the "translator-property" settings in the Translator
Modified: trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml
===================================================================
--- trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml 2010-05-10 18:50:00 UTC (rev 2111)
+++ trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml 2010-05-11 03:40:11 UTC (rev 2112)
@@ -80,6 +80,11 @@
<constructor><parameter><inject bean="PersistenceFactory" /></parameter></constructor>
</bean>
+ <bean name="TranslatorMetadataICF" class="org.teiid.templates.TranslatorMetadataICF">
+ <constructor>
+ <parameter><inject bean="ManagedObjectFactory"/></parameter>
+ </constructor>
+ </bean>
<!-- used for the translators -->
<bean name="TranslatorDeploymentTemplateInfoFactory" class="org.teiid.templates.TranslatorTemplateInfoFactory"/>
Modified: trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/Admin.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/Admin.java 2010-05-10 18:50:00 UTC (rev 2111)
+++ trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/Admin.java 2010-05-11 03:40:11 UTC (rev 2112)
@@ -83,11 +83,12 @@
private static ComponentType DQPTYPE = new ComponentType("teiid", "dqp");//$NON-NLS-1$ //$NON-NLS-2$
private static String DQPNAME = RuntimeEngineDeployer.class.getName();
private static ComponentType TRANSLATOR_TYPE = new ComponentType("teiid", "translator");//$NON-NLS-1$ //$NON-NLS-2$
+ private static AdminObjectBuilder AOB = new AdminObjectBuilder();
-
private ManagementView view;
private DeploymentManager deploymentMgr;
+
static {
VFS.init();
}
@@ -95,7 +96,7 @@
public Admin(ManagementView view, DeploymentManager deployMgr) {
this.view = view;
this.view.load();
-
+
this.deploymentMgr = deployMgr;
try {
this.deploymentMgr.loadProfile(DEFAULT_PROFILE_KEY);
@@ -147,7 +148,7 @@
try {
Set<ManagedComponent> mcSet = getView().getComponentsForType(TRANSLATOR_TYPE);
for (ManagedComponent mc:mcSet) {
- factories.add(AdminObjectBuilder.buildAO(mc, TranslatorMetaData.class));
+ factories.add(AOB.buildAdminObject(mc, TranslatorMetaData.class));
}
} catch (Exception e) {
throw new AdminComponentException(e);
@@ -160,7 +161,7 @@
try {
ManagedComponent mc = getView().getComponent(deployedName, TRANSLATOR_TYPE);
if (mc != null) {
- return AdminObjectBuilder.buildAO(mc, TranslatorMetaData.class);
+ return AOB.buildAdminObject(mc, TranslatorMetaData.class);
}
return null;
} catch(Exception e) {
Modified: trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/AdminObjectBuilder.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/AdminObjectBuilder.java 2010-05-10 18:50:00 UTC (rev 2111)
+++ trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/AdminObjectBuilder.java 2010-05-11 03:40:11 UTC (rev 2112)
@@ -28,12 +28,19 @@
import org.jboss.managed.api.ManagedCommon;
import org.jboss.managed.api.ManagedObject;
import org.jboss.managed.api.ManagedProperty;
+import org.jboss.managed.api.factory.ManagedObjectFactory;
+import org.jboss.managed.plugins.factory.AbstractManagedObjectFactory;
+import org.jboss.managed.plugins.factory.ManagedObjectFactoryBuilder;
+import org.jboss.metatype.api.types.CollectionMetaType;
import org.jboss.metatype.api.types.MetaType;
+import org.jboss.metatype.api.types.SimpleMetaType;
import org.jboss.metatype.api.values.MapCompositeValueSupport;
import org.jboss.metatype.api.values.MetaValue;
import org.jboss.metatype.api.values.MetaValueFactory;
import org.jboss.metatype.api.values.SimpleValue;
+import org.teiid.adminapi.impl.TranslatorMetaData;
import org.teiid.jboss.IntegrationPlugin;
+import org.teiid.templates.TranslatorMetadataICF;
import com.metamatrix.common.util.PropertiesUtils;
import com.metamatrix.core.MetaMatrixRuntimeException;
@@ -41,6 +48,12 @@
public class AdminObjectBuilder {
+ private ManagedObjectFactory mof = ManagedObjectFactoryBuilder.create();
+
+ public AdminObjectBuilder() {
+ this.mof.setInstanceClassFactory(TranslatorMetaData.class, new TranslatorMetadataICF(this.mof));
+ }
+
public static <T> T buildAO(ManagedCommon mc, Class<T> clazz) {
try {
@@ -59,16 +72,25 @@
}
else if (type.isComposite()) {
if (value instanceof MapCompositeValueSupport) {
- MapCompositeValueSupport map = (MapCompositeValueSupport)value;
+ Object myValue = MetaValueFactory.getInstance().unwrap(value);
+ PropertiesUtils.setBeanProperty(t, mp.getMappedName(), myValue);
}
}
else if (type.isCollection()) {
List list = new ArrayList();
- List<ManagedObject> managedObjects = (List<ManagedObject>)MetaValueFactory.getInstance().unwrap(value);
- for (ManagedObject mo:managedObjects) {
- list.add(buildAO(mo, mo.getAttachment().getClass()));
+
+ MetaType elementType = ((CollectionMetaType) type).getElementType();
+ if (elementType == AbstractManagedObjectFactory.MANAGED_OBJECT_META_TYPE) {
+ List<ManagedObject> managedObjects = (List<ManagedObject>) MetaValueFactory.getInstance().unwrap(value);
+ for (ManagedObject mo : managedObjects) {
+ list.add(buildAO(mo, mo.getAttachment().getClass()));
+ }
}
- PropertiesUtils.setBeanProperty(t, mp.getName(), list);
+ else if (elementType == SimpleMetaType.STRING) {
+ list.addAll((List<String>) MetaValueFactory.getInstance().unwrap(value));
+ }
+
+ PropertiesUtils.setBeanProperty(t, mp.getMappedName(), list);
}
}
}
@@ -79,4 +101,24 @@
throw new MetaMatrixRuntimeException(e, IntegrationPlugin.Util.getString("class_not_found", clazz.getName())); //$NON-NLS-1$
}
}
+
+ public <T> T buildAdminObject(ManagedCommon mc, Class<T> clazz) {
+ try {
+ Object t = clazz.newInstance();
+ ManagedObject mo = mof.initManagedObject(t, "teiid", "translator"); //$NON-NLS-1$ //$NON-NLS-2$
+ for (ManagedProperty mp : mc.getProperties().values()) {
+ ManagedProperty dsProp = mo.getProperty(mp.getName());
+ if (dsProp != null) {
+ if (mp.getValue() != null) {
+ dsProp.setValue(mp.getValue());
+ }
+ }
+ }
+ return clazz.cast(t);
+ } catch (InstantiationException e) {
+ throw new MetaMatrixRuntimeException(e, IntegrationPlugin.Util.getString("class_not_found", clazz.getName())); //$NON-NLS-1$
+ } catch (IllegalAccessException e) {
+ throw new MetaMatrixRuntimeException(e, IntegrationPlugin.Util.getString("class_not_found", clazz.getName())); //$NON-NLS-1$
+ }
+ }
}
Modified: trunk/runtime/src/main/java/org/teiid/templates/TranslatorMetadataICF.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/templates/TranslatorMetadataICF.java 2010-05-10 18:50:00 UTC (rev 2111)
+++ trunk/runtime/src/main/java/org/teiid/templates/TranslatorMetadataICF.java 2010-05-11 03:40:11 UTC (rev 2112)
@@ -38,11 +38,13 @@
import org.teiid.adminapi.impl.PropertyMetadata;
import org.teiid.adminapi.impl.TranslatorMetaData;
+/**
+ * This class is defined as bean in the deployer's -jboss-beans.xml file. This used to construct the
+ * TranslatorMetadata object with "translator-property"
+ */
public class TranslatorMetadataICF extends AbstractInstanceClassFactory<TranslatorMetaData> {
- public TranslatorMetadataICF() {
- super();
- }
+ private static final String TRANSLATOR_PROPERTY = "translator-property"; //$NON-NLS-1$
public TranslatorMetadataICF(ManagedObjectFactory mof) {
super(mof);
@@ -65,7 +67,7 @@
return null;
MetaValue value = null;
- if ("translator-property".equals(property.getName())) { //$NON-NLS-1$
+ if (TRANSLATOR_PROPERTY.equals(property.getName())) {
MapCompositeValueSupport mapValue = new MapCompositeValueSupport(SimpleMetaType.STRING);
List<PropertyMetadata> list = attachment.getJAXBProperties();
if (list != null) {
@@ -73,8 +75,6 @@
String name = prop.getName();
MetaValue svalue = SimpleValueSupport.wrap(prop.getValue());
mapValue.put(name, svalue);
-// MetaValue stype = SimpleValueSupport.wrap(prop.getType());
-// mapValue.put(name + ".type", stype);
}
}
value = mapValue;
@@ -87,7 +87,7 @@
@Override
protected Object unwrapValue(BeanInfo beanInfo, ManagedProperty property, MetaValue value) {
Object unwrapValue = null;
- if ("translator-property".equals(property.getName())) { //$NON-NLS-1$
+ if (TRANSLATOR_PROPERTY.equals(property.getName())) {
if ((value instanceof MapCompositeValueSupport) == false) {
return super.unwrapValue(beanInfo, property, value);
@@ -97,22 +97,7 @@
List<PropertyMetadata> list = new ArrayList<PropertyMetadata>();
for (String name : mapValue.getMetaType().keySet()) {
-// // Ignore the type we've added before
-// if (name.endsWith(".type"))
-// continue;
-
- PropertyMetadata prop = new PropertyMetadata();
- prop.setName(name);
- String svalue = (String) getMetaValueFactory().unwrap(mapValue.get(name));
- prop.setValue(svalue);
-
-// String nameType = name + ".type";
-// MetaValue typeValue = mapValue.get(nameType);
-// if (typeValue != null) {
-// String type = (String) getMetaValueFactory().unwrap(typeValue);
-// prop.setType(type);
-// }
- list.add(prop);
+ list.add(new PropertyMetadata(name, (String) getMetaValueFactory().unwrap(mapValue.get(name))));
}
unwrapValue = list;
} else {
Modified: trunk/test-integration/db/src/test/java/org/teiid/adminapi/jboss/TestConnectorBindings.java
===================================================================
--- trunk/test-integration/db/src/test/java/org/teiid/adminapi/jboss/TestConnectorBindings.java 2010-05-10 18:50:00 UTC (rev 2111)
+++ trunk/test-integration/db/src/test/java/org/teiid/adminapi/jboss/TestConnectorBindings.java 2010-05-11 03:40:11 UTC (rev 2112)
@@ -15,7 +15,6 @@
import java.io.InputStream;
import java.sql.Connection;
import java.util.Collection;
-import java.util.HashSet;
import java.util.List;
import java.util.Properties;
import java.util.Set;
@@ -89,10 +88,70 @@
assertNull(admin.getVDB("TransactionsRevisited", 1)); //$NON-NLS-1$
}
+
+ @Test public void testGetVDB() throws Exception {
+ VDB vdb = admin.getVDB("TransactionsRevisited", 1);
+ assertNotNull(vdb); //$NON-NLS-1$
+
+ assertEquals("TransactionsRevisited", vdb.getName());
+ assertEquals(1, vdb.getVersion());
+ assertEquals("A VDB to test transactions", vdb.getDescription());
+ //assertEquals("sample-value", vdb.getPropertyValue("sample"));
+ assertEquals(VDB.Status.INACTIVE, vdb.getStatus());
+
+ // test model
+ List<Model> models = vdb.getModels();
+ assertEquals(4, models.size());
+ Model model = null;
+ for (Model m:models) {
+ if (m.getName().equals("pm1")) {
+ model = m;
+ break;
+ }
+ }
+ assertNotNull(model);
+ assertEquals(Model.Type.PHYSICAL, model.getModelType());
+ assertEquals("sample-value", model.getPropertyValue("sample"));
+ List<String> sourceNames = model.getSourceNames();
+ assertEquals(1, sourceNames.size());
+ assertEquals("mysql", model.getSourceTranslatorName(sourceNames.get(0)));
+ assertEquals("java:mysql-connector-binding", model.getSourceConnectionJndiName(sourceNames.get(0)));
+ assertTrue(model.isSource());
+ //assertTrue(model.isSupportsMultiSourceBindings());
+ assertTrue(model.isVisible());
+
+ // test data policies
+ List<DataPolicy> policies = vdb.getDataPolicies();
+ assertEquals(1, policies.size());
+ assertEquals("policy1", policies.get(0).getName());
+ assertEquals("roleOne described", policies.get(0).getDescription());
+
+ List<DataPolicy.DataPermission> permissions = policies.get(0).getPermissions();
+ assertEquals(2, permissions.size());
+
+ for(DataPolicy.DataPermission permission: permissions) {
+ if (permission.getResourceName().equals("myTable.T1")) {
+ assertTrue(permission.isAllowRead());
+ assertFalse(permission.isAllowCreate());
+ assertFalse(permission.isAllowDelete());
+ assertFalse(permission.isAllowUpdate());
+ }
+ else if (permission.getResourceName().equals("myTable.T2")) {
+ assertFalse(permission.isAllowRead());
+ assertFalse(permission.isAllowCreate());
+ assertTrue(permission.isAllowDelete());
+ assertFalse(permission.isAllowUpdate());
+ }
+ else {
+ fail("there are only two types of permissions");
+ }
+ }
+
+ }
@Test public void testSessions() throws Exception{
- Connection c = ds.getConnection("TransactionsRevisited");
+ Connection c = ds.getConnection("TransactionsRevisited"); // to create the session
Collection<Session> sessions = admin.getSessions();
int size = sessions.size();
@@ -112,6 +171,7 @@
sessions = admin.getSessions();
assertTrue(sessions.size() == (size-1));
+ c.close();
}
@@ -158,7 +218,7 @@
@Test
public void testCache() throws Exception {
Collection<String> caches = admin.getCacheTypes();
- assertEquals(4, caches.size());
+ assertEquals(3, caches.size());
admin.clearCache("CODE_TABLE_CACHE"); //$NON-NLS-1$
}
@@ -225,6 +285,9 @@
@Test
public void testGetTemplate() throws Exception {
Translator translator = admin.getTranslator("oracle");
+ for (String key:translator.getProperties().stringPropertyNames()) {
+ System.out.println(key+"="+translator.getPropertyValue(key));
+ }
assertEquals("org.teiid.translator.jdbc.oracle.OracleSQLTranslator", translator.getPropertyValue("ExtensionTranslationClassName")); //$NON-NLS-1$
assertEquals(true, translator.isXaCapable());
}
@@ -317,7 +380,7 @@
try {
admin.addTranslator("foo", "translator-jdbc"+VERSION, props);
fail("must have failed because no exeuction factory set");
- }catch(Throwable e) {
+ }catch(AdminException e) {
}
@@ -332,12 +395,7 @@
assertEquals("org.teiid.resource.adapter.jdbc.JDBCExecutionFactory", t.getExecutionFactoryClass());
assertEquals("org.teiid.resource.adapter.jdbc.JDBCExecutionFactory", t.getExecutionFactoryClass());
- try {
- admin.setTranslatorProperty("foo", "any-thing", "every-thing");
- fail("can not set arbitary properties on translator");
- }catch(Throwable e) {
-
- }
+ admin.setTranslatorProperty("foo", "any-thing", "every-thing");
admin.deleteTranslator("foo");
15 years, 11 months
teiid SVN: r2111 - trunk/test-integration/db/src/test/resources.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2010-05-10 14:50:00 -0400 (Mon, 10 May 2010)
New Revision: 2111
Modified:
trunk/test-integration/db/src/test/resources/TransactionsRevisited.vdb
Log:
TEIID-1075:Fixing the vdb.xml file
Modified: trunk/test-integration/db/src/test/resources/TransactionsRevisited.vdb
===================================================================
(Binary files differ)
15 years, 11 months
teiid SVN: r2110 - in trunk: connector-api/src/main/java/org/teiid/resource/cci and 6 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-05-10 13:50:13 -0400 (Mon, 10 May 2010)
New Revision: 2110
Removed:
trunk/connector-api/src/main/java/org/teiid/connector/api/
trunk/connector-api/src/main/java/org/teiid/connector/basic/
Modified:
trunk/connector-api/src/main/java/org/teiid/resource/cci/SourceSystemFunctions.java
trunk/engine/src/main/java/com/metamatrix/query/function/source/SystemSource.java
trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java
trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/SQLStringVisitor.java
trunk/engine/src/main/java/com/metamatrix/query/validator/ValidationVisitor.java
trunk/engine/src/test/java/com/metamatrix/query/function/TestFunctionLibrary.java
trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestOptimizer.java
Log:
consolidating sourcesystemfunctions
Modified: trunk/connector-api/src/main/java/org/teiid/resource/cci/SourceSystemFunctions.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/resource/cci/SourceSystemFunctions.java 2010-05-10 17:42:42 UTC (rev 2109)
+++ trunk/connector-api/src/main/java/org/teiid/resource/cci/SourceSystemFunctions.java 2010-05-10 17:50:13 UTC (rev 2110)
@@ -136,9 +136,10 @@
//xml
public static final String XPATHVALUE = "xpathvalue"; //$NON-NLS-1$
+ public static final String XPATHQUERY = "xpathquery"; //$NON-NLS-1$
public static final String XSLTRANSFORM = "xsltransform"; //$NON-NLS-1$
- public static final String XMLELEMENT = "xmlelement"; //$NON-NLS-1$
public static final String XMLCONCAT = "xmlconcat"; //$NON-NLS-1$
public static final String XMLCOMMENT = "xmlcomment"; //$NON-NLS-1$
public static final String XMLPI = "xmlpi"; //$NON-NLS-1$
+
}
Modified: trunk/engine/src/main/java/com/metamatrix/query/function/source/SystemSource.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/function/source/SystemSource.java 2010-05-10 17:42:42 UTC (rev 2109)
+++ trunk/engine/src/main/java/com/metamatrix/query/function/source/SystemSource.java 2010-05-10 17:50:13 UTC (rev 2110)
@@ -26,7 +26,7 @@
import java.util.Collection;
import java.util.List;
-import org.teiid.connector.api.SourceSystemFunctions;
+import org.teiid.resource.cci.SourceSystemFunctions;
import com.metamatrix.common.types.DataTypeManager;
import com.metamatrix.query.QueryPlugin;
Modified: trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java 2010-05-10 17:42:42 UTC (rev 2109)
+++ trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java 2010-05-10 17:50:13 UTC (rev 2110)
@@ -41,8 +41,8 @@
import java.util.Set;
import java.util.StringTokenizer;
-import org.teiid.connector.api.SourceSystemFunctions;
import org.teiid.connector.language.SQLReservedWords;
+import org.teiid.resource.cci.SourceSystemFunctions;
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.api.exception.MetaMatrixException;
Modified: trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/SQLStringVisitor.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/SQLStringVisitor.java 2010-05-10 17:42:42 UTC (rev 2109)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/SQLStringVisitor.java 2010-05-10 17:50:13 UTC (rev 2110)
@@ -29,9 +29,9 @@
import java.util.LinkedList;
import java.util.List;
-import org.teiid.connector.api.SourceSystemFunctions;
import org.teiid.connector.language.SQLReservedWords;
import org.teiid.connector.language.SQLReservedWords.Tokens;
+import org.teiid.resource.cci.SourceSystemFunctions;
import com.metamatrix.common.types.DataTypeManager;
import com.metamatrix.core.util.StringUtil;
Modified: trunk/engine/src/main/java/com/metamatrix/query/validator/ValidationVisitor.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/validator/ValidationVisitor.java 2010-05-10 17:42:42 UTC (rev 2109)
+++ trunk/engine/src/main/java/com/metamatrix/query/validator/ValidationVisitor.java 2010-05-10 17:50:13 UTC (rev 2110)
@@ -33,7 +33,7 @@
import javax.xml.xpath.XPathExpressionException;
-import org.teiid.connector.api.SourceSystemFunctions;
+import org.teiid.resource.cci.SourceSystemFunctions;
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.api.exception.MetaMatrixProcessingException;
Modified: trunk/engine/src/test/java/com/metamatrix/query/function/TestFunctionLibrary.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/function/TestFunctionLibrary.java 2010-05-10 17:42:42 UTC (rev 2109)
+++ trunk/engine/src/test/java/com/metamatrix/query/function/TestFunctionLibrary.java 2010-05-10 17:50:13 UTC (rev 2110)
@@ -39,8 +39,8 @@
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.teiid.connector.api.SourceSystemFunctions;
import org.teiid.connector.language.SQLReservedWords;
+import org.teiid.resource.cci.SourceSystemFunctions;
import com.metamatrix.api.exception.query.FunctionExecutionException;
import com.metamatrix.common.buffer.BufferManagerFactory;
Modified: trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestOptimizer.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestOptimizer.java 2010-05-10 17:42:42 UTC (rev 2109)
+++ trunk/engine/src/test/java/com/metamatrix/query/optimizer/TestOptimizer.java 2010-05-10 17:50:13 UTC (rev 2110)
@@ -32,7 +32,7 @@
import java.util.Set;
import org.junit.Test;
-import org.teiid.connector.api.SourceSystemFunctions;
+import org.teiid.resource.cci.SourceSystemFunctions;
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.api.exception.MetaMatrixException;
15 years, 11 months
teiid SVN: r2109 - in trunk: engine/src/main/java/com/metamatrix/common and 16 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-05-10 13:42:42 -0400 (Mon, 10 May 2010)
New Revision: 2109
Added:
trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLAttributes.java
trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLElement.java
trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLForest.java
trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLNamespaces.java
trunk/engine/src/test/java/com/metamatrix/query/processor/TestSQLXMLProcessing.java
Removed:
trunk/engine/src/main/java/com/metamatrix/common/log/
trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/SQLXMLFunction.java
Modified:
trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml
trunk/engine/src/main/java/com/metamatrix/query/eval/Evaluator.java
trunk/engine/src/main/java/com/metamatrix/query/function/FunctionLibrary.java
trunk/engine/src/main/java/com/metamatrix/query/function/source/SystemSource.java
trunk/engine/src/main/java/com/metamatrix/query/function/source/XMLSystemFunctions.java
trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/CriteriaCapabilityValidatorVisitor.java
trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java
trunk/engine/src/main/java/com/metamatrix/query/sql/LanguageVisitor.java
trunk/engine/src/main/java/com/metamatrix/query/sql/navigator/PreOrPostOrderNavigator.java
trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/EvaluatableVisitor.java
trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/ExpressionMappingVisitor.java
trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/SQLStringVisitor.java
trunk/engine/src/main/java/com/metamatrix/query/validator/ValidationVisitor.java
trunk/engine/src/main/javacc/com/metamatrix/query/parser/SQLParser.jj
trunk/engine/src/test/java/com/metamatrix/query/function/TestFunctionLibrary.java
trunk/engine/src/test/java/com/metamatrix/query/function/source/TestXMLSystemFunctions.java
trunk/engine/src/test/java/com/metamatrix/query/parser/TestParser.java
trunk/engine/src/test/java/com/metamatrix/query/processor/TestProcessor.java
trunk/engine/src/test/java/com/metamatrix/query/validator/TestValidator.java
Log:
TEIID-171 adding support for xmlnamespaces and refining languageobjects for the other functions
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml 2010-05-10 17:42:42 UTC (rev 2109)
@@ -1972,8 +1972,9 @@
</row>
<row>
<entry>
- <para><code>XMLELEMENT([NAME] name [, <ATTR>][, exp]*)</code>
- ATTR:=<code>XMLATTRIBUTES(exp [AS name] [, exp [AS name]]*)</code></para>
+ <para><code>XMLELEMENT([NAME] name [, <NSP>] [, <ATTR>][, exp]*)</code></para>
+ <para>ATTR:=<code>XMLATTRIBUTES(exp [AS name] [, exp [AS name]]*)</code></para>
+ <para>NSP:=<code>XMLNAMESPACES((uri AS prefix | DEFAULT uri | NO DEFAULTS))+</code></para>
</entry>
<entry>
<para>Returns an XML element with the given name and content. If the content value is of a type other than xml,
@@ -1985,7 +1986,7 @@
</para>
</entry>
<entry>
- <para>Name is an identifier. exp can be any type. Return value is xml.
+ <para>Name, prefix are identifiers. uri is a string literal. exp can be any type. Return value is xml.
</para>
</entry>
</row>
@@ -2004,11 +2005,12 @@
</row>
<row>
<entry>
- <para><code>XMLFOREST(exp [AS name], [exp [AS name]]*)</code></para>
+ <para><code>XMLFOREST(exp [AS name] [, <NSP>] [, exp [AS name]]*)</code></para>
</entry>
<entry>
<para>Returns an concatination of an XML element for each non-null expression exp. If a name is not supplied, the expression must be a column reference, in which case the element name will be the column name.
</para>
+ <para>See XMLELEMENT for the definition of NSP - XMLNAMESPACES.</para>
</entry>
<entry>
<para>Name is an identifier. Exp can be any type. Return value is xml.
Modified: trunk/engine/src/main/java/com/metamatrix/query/eval/Evaluator.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/eval/Evaluator.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/main/java/com/metamatrix/query/eval/Evaluator.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -23,6 +23,7 @@
package com.metamatrix.query.eval;
import java.sql.SQLException;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -73,10 +74,13 @@
import com.metamatrix.query.sql.symbol.ExpressionSymbol;
import com.metamatrix.query.sql.symbol.Function;
import com.metamatrix.query.sql.symbol.Reference;
-import com.metamatrix.query.sql.symbol.SQLXMLFunction;
import com.metamatrix.query.sql.symbol.ScalarSubquery;
import com.metamatrix.query.sql.symbol.SearchedCaseExpression;
import com.metamatrix.query.sql.symbol.SingleElementSymbol;
+import com.metamatrix.query.sql.symbol.XMLElement;
+import com.metamatrix.query.sql.symbol.XMLForest;
+import com.metamatrix.query.sql.symbol.XMLNamespaces;
+import com.metamatrix.query.sql.symbol.XMLNamespaces.NamespaceItem;
import com.metamatrix.query.sql.util.ValueIterator;
import com.metamatrix.query.sql.util.ValueIteratorSource;
import com.metamatrix.query.util.CommandContext;
@@ -233,7 +237,7 @@
if (leftValue == rightValue) {
return 0;
}
- return ((Comparable)leftValue).compareTo(rightValue);
+ return ((Comparable<Object>)leftValue).compareTo(rightValue);
}
public Boolean evaluate(MatchCriteria criteria, List tuple)
@@ -561,32 +565,65 @@
return internalEvaluate(ref.getExpression(), tuple);
} else if(expression instanceof ScalarSubquery) {
return evaluate((ScalarSubquery) expression, tuple);
- } else if (expression instanceof SQLXMLFunction){
- SQLXMLFunction function = (SQLXMLFunction)expression;
+ } else if (expression instanceof XMLElement){
+ XMLElement function = (XMLElement)expression;
+ List<Expression> content = function.getContent();
+ List<Object> values = new ArrayList<Object>(content.size());
+ for (Expression exp : content) {
+ values.add(internalEvaluate(exp, tuple));
+ }
+ try {
+ NameValuePair<Object>[] attributes = null;
+ if (function.getAttributes() != null) {
+ attributes = getNameValuePairs(tuple, function.getAttributes().getArgs());
+ }
+ return XMLSystemFunctions.xmlElement(context, function.getName(), namespaces(function.getNamespaces()), attributes, values);
+ } catch (MetaMatrixProcessingException e) {
+ throw new FunctionExecutionException(e, e.getMessage());
+ }
+ } else if (expression instanceof XMLForest){
+ XMLForest function = (XMLForest)expression;
List<SingleElementSymbol> args = function.getArgs();
- NameValuePair[] nameValuePairs = new NameValuePair[args.size()];
- for(int i=0; i < args.size(); i++) {
- SingleElementSymbol symbol = args.get(i);
- String name = symbol.getShortName();
- Expression ex = symbol;
- if (symbol instanceof AliasSymbol) {
- ex = ((AliasSymbol)symbol).getSymbol();
- }
- nameValuePairs[i] = new NameValuePair(name, internalEvaluate(ex, tuple));
- }
- if (FunctionLibrary.XMLFOREST.equalsIgnoreCase(function.getName())) {
- try {
- return XMLSystemFunctions.xmlForest(context, nameValuePairs);
- } catch (MetaMatrixProcessingException e) {
- throw new FunctionExecutionException(e, e.getMessage());
- }
- }
- return nameValuePairs;
+ NameValuePair<Object>[] nameValuePairs = getNameValuePairs(tuple, args);
+
+ try {
+ return XMLSystemFunctions.xmlForest(context, namespaces(function.getNamespaces()), nameValuePairs);
+ } catch (MetaMatrixProcessingException e) {
+ throw new FunctionExecutionException(e, e.getMessage());
+ }
} else {
throw new MetaMatrixComponentException(ErrorMessageKeys.PROCESSOR_0016, QueryPlugin.Util.getString(ErrorMessageKeys.PROCESSOR_0016, expression.getClass().getName()));
}
}
+
+ private NameValuePair<Object>[] getNameValuePairs(List tuple, List<SingleElementSymbol> args)
+ throws ExpressionEvaluationException, BlockedException, MetaMatrixComponentException {
+ NameValuePair<Object>[] nameValuePairs = new NameValuePair[args.size()];
+ for (int i = 0; i < args.size(); i++) {
+ SingleElementSymbol symbol = args.get(i);
+ String name = symbol.getShortName();
+ Expression ex = symbol;
+ if (symbol instanceof AliasSymbol) {
+ ex = ((AliasSymbol) symbol).getSymbol();
+ }
+ nameValuePairs[i] = new NameValuePair<Object>(name, internalEvaluate(ex, tuple));
+ }
+ return nameValuePairs;
+ }
+ private NameValuePair<String>[] namespaces(XMLNamespaces namespaces) {
+ if (namespaces == null) {
+ return null;
+ }
+ List<NamespaceItem> args = namespaces.getNamespaceItems();
+ NameValuePair<String>[] nameValuePairs = new NameValuePair[args.size()];
+ for(int i=0; i < args.size(); i++) {
+ NamespaceItem item = args.get(i);
+ nameValuePairs[i] = new NameValuePair<String>(item.getPrefix(), item.getUri());
+ }
+ return nameValuePairs;
+ }
+
private Object evaluate(CaseExpression expr, List tuple)
throws ExpressionEvaluationException, BlockedException, MetaMatrixComponentException {
Object exprVal = internalEvaluate(expr.getExpression(), tuple);
Modified: trunk/engine/src/main/java/com/metamatrix/query/function/FunctionLibrary.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/function/FunctionLibrary.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/main/java/com/metamatrix/query/function/FunctionLibrary.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -87,9 +87,11 @@
public static final String SPACE = "space"; //$NON-NLS-1$
- public static final String XMLFOREST = "xmlforest"; //$NON-NLS-1$
- public static final String XMLATTRIBUTES = "xmlattributes"; //$NON-NLS-1$
-
+ public static final String XMLFOREST = "XMLFOREST"; //$NON-NLS-1$
+ public static final String XMLATTRIBUTES = "XMLATTRIBUTES"; //$NON-NLS-1$
+ public static final String XMLNAMESPACES = "XMLNAMESPACES"; //$NON-NLS-1$
+ public static final String XMLELEMENT = "XMLELEMENT"; //$NON-NLS-1$
+
// Function tree for system functions (never reloaded)
private FunctionTree systemFunctions;
Modified: trunk/engine/src/main/java/com/metamatrix/query/function/source/SystemSource.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/function/source/SystemSource.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/main/java/com/metamatrix/query/function/source/SystemSource.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -169,7 +169,6 @@
addXpathQueryFunction();
addXpathValueFunction();
addXslTransformFunction();
- addXmlElement();
addXmlConcat();
addXmlComment();
addXmlPi();
@@ -965,14 +964,6 @@
new FunctionParameter("result", DataTypeManager.DefaultDataTypes.CLOB, QueryPlugin.Util.getString("SystemSource.xsltransform_result")) ) ); //$NON-NLS-1$ //$NON-NLS-2$
}
- private void addXmlElement() {
- functions.add(new FunctionMethod(SourceSystemFunctions.XMLELEMENT, QueryPlugin.Util.getString("SystemSource.xmlelement_description"), XML, FunctionMethod.CAN_PUSHDOWN, XML_FUNCTION_CLASS, "xmlElement", //$NON-NLS-1$ //$NON-NLS-2$
- new FunctionParameter[] {
- new FunctionParameter("name", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xmlelement_param1")), //$NON-NLS-1$ //$NON-NLS-2$
- new FunctionParameter("value", DataTypeManager.DefaultDataTypes.OBJECT, QueryPlugin.Util.getString("SystemSource.xmlelement_param2"), true)}, //$NON-NLS-1$ //$NON-NLS-2$
- new FunctionParameter("result", DataTypeManager.DefaultDataTypes.XML, QueryPlugin.Util.getString("SystemSource.xmlement_result")), true, FunctionMethod.DETERMINISTIC ) ); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
private void addXmlComment() {
functions.add(new FunctionMethod(SourceSystemFunctions.XMLCOMMENT, QueryPlugin.Util.getString("SystemSource.xmlcomment_description"), XML, XML_FUNCTION_CLASS, "xmlComment", //$NON-NLS-1$ //$NON-NLS-2$
new FunctionParameter[] {
Modified: trunk/engine/src/main/java/com/metamatrix/query/function/source/XMLSystemFunctions.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/function/source/XMLSystemFunctions.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/main/java/com/metamatrix/query/function/source/XMLSystemFunctions.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -32,7 +32,10 @@
import java.sql.SQLXML;
import java.sql.Timestamp;
import java.util.Calendar;
+import java.util.Collections;
+import java.util.List;
+import javax.xml.XMLConstants;
import javax.xml.namespace.NamespaceContext;
import javax.xml.namespace.QName;
import javax.xml.stream.EventFilter;
@@ -85,11 +88,11 @@
*/
public class XMLSystemFunctions {
- public static class NameValuePair {
+ public static class NameValuePair<T> {
String name;
- Object value;
+ T value;
- public NameValuePair(String name, Object value) {
+ public NameValuePair(String name, T value) {
this.name = name;
this.value = value;
}
@@ -153,7 +156,7 @@
}
}
- public static XMLType xmlForest(final CommandContext context, final NameValuePair[] values) throws MetaMatrixComponentException, MetaMatrixProcessingException {
+ public static XMLType xmlForest(final CommandContext context, final NameValuePair[] namespaces, final NameValuePair[] values) throws MetaMatrixComponentException, MetaMatrixProcessingException {
boolean valueExists = false;
for (NameValuePair nameValuePair : values) {
if (nameValuePair.value != null) {
@@ -178,7 +181,7 @@
if (nameValuePair.value == null) {
continue;
}
- addElement(nameValuePair.name, writer, eventWriter, eventFactory, nameValuePair.value);
+ addElement(nameValuePair.name, writer, eventWriter, eventFactory, namespaces, null, Collections.singletonList(nameValuePair.value));
}
} catch (XMLStreamException e) {
throw new TransformerException(e);
@@ -199,7 +202,7 @@
* @throws MetaMatrixProcessingException
*/
public static XMLType xmlElement(CommandContext context, final String name,
- final Object... contents) throws MetaMatrixComponentException, MetaMatrixProcessingException {
+ final NameValuePair<String>[] namespaces, final NameValuePair<?>[] attributes, final List<?> contents) throws MetaMatrixComponentException, MetaMatrixProcessingException {
XMLType result = new XMLType(XMLUtil.saveToBufferManager(context.getBufferManager(), new XMLTranslator() {
@Override
@@ -209,7 +212,7 @@
XMLOutputFactory factory = XMLOutputFactory.newInstance();
XMLEventWriter eventWriter = factory.createXMLEventWriter(writer);
XMLEventFactory eventFactory = XMLEventFactory.newInstance();
- addElement(name, writer, eventWriter, eventFactory, contents);
+ addElement(name, writer, eventWriter, eventFactory, namespaces, attributes, contents);
} catch (XMLStreamException e) {
throw new TransformerException(e);
}
@@ -221,21 +224,32 @@
}
private static void addElement(final String name, Writer writer, XMLEventWriter eventWriter, XMLEventFactory eventFactory,
- Object... contents) throws XMLStreamException, IOException, TransformerException {
+ NameValuePair<String> namespaces[], NameValuePair<?> attributes[], List<?> contents) throws XMLStreamException, IOException, TransformerException {
eventWriter.add(eventFactory.createStartElement("", null, name)); //$NON-NLS-1$
- int start = 0;
- if (contents.length > 0 && contents[0] instanceof NameValuePair[]) {
- for (NameValuePair nameValuePair : (NameValuePair[])contents[0]) {
+ if (namespaces != null) {
+ for (NameValuePair<String> nameValuePair : namespaces) {
+ if (nameValuePair.name == null) {
+ if (nameValuePair.value == null) {
+ eventWriter.add(eventFactory.createNamespace(XMLConstants.NULL_NS_URI));
+ } else {
+ eventWriter.add(eventFactory.createNamespace(nameValuePair.value));
+ }
+ } else {
+ eventWriter.add(eventFactory.createNamespace(nameValuePair.name, nameValuePair.value));
+ }
+ }
+ }
+ if (attributes != null) {
+ for (NameValuePair<?> nameValuePair : attributes) {
if (nameValuePair.value != null) {
eventWriter.add(eventFactory.createAttribute(new QName(nameValuePair.name), getStringValue(nameValuePair.value)));
}
}
- start = 1;
}
//add empty chars to close the start tag
eventWriter.add(eventFactory.createCharacters("")); //$NON-NLS-1$
- for (int i = start; i < contents.length; i++) {
- convertValue(writer, eventWriter, eventFactory, contents[i]);
+ for (Object object : contents) {
+ convertValue(writer, eventWriter, eventFactory, object);
}
eventWriter.add(eventFactory.createEndElement("", null, name)); //$NON-NLS-1$
}
Modified: trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/CriteriaCapabilityValidatorVisitor.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/CriteriaCapabilityValidatorVisitor.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/main/java/com/metamatrix/query/optimizer/relational/rules/CriteriaCapabilityValidatorVisitor.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -60,9 +60,12 @@
import com.metamatrix.query.sql.symbol.CaseExpression;
import com.metamatrix.query.sql.symbol.Function;
import com.metamatrix.query.sql.symbol.GroupSymbol;
-import com.metamatrix.query.sql.symbol.SQLXMLFunction;
import com.metamatrix.query.sql.symbol.ScalarSubquery;
import com.metamatrix.query.sql.symbol.SearchedCaseExpression;
+import com.metamatrix.query.sql.symbol.XMLAttributes;
+import com.metamatrix.query.sql.symbol.XMLElement;
+import com.metamatrix.query.sql.symbol.XMLForest;
+import com.metamatrix.query.sql.symbol.XMLNamespaces;
import com.metamatrix.query.sql.util.SymbolMap;
import com.metamatrix.query.sql.visitor.EvaluatableVisitor;
import com.metamatrix.query.sql.visitor.GroupCollectorVisitor;
@@ -96,10 +99,25 @@
}
@Override
- public void visit(SQLXMLFunction obj) {
+ public void visit(XMLAttributes obj) {
markInvalid();
}
+ @Override
+ public void visit(XMLNamespaces obj) {
+ markInvalid();
+ }
+
+ @Override
+ public void visit(XMLForest obj) {
+ markInvalid();
+ }
+
+ @Override
+ public void visit(XMLElement obj) {
+ markInvalid();
+ }
+
public void visit(AggregateSymbol obj) {
try {
if(! CapabilitiesUtil.supportsAggregateFunction(modelID, obj, metadata, capFinder)) {
Modified: trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/main/java/com/metamatrix/query/rewriter/QueryRewriter.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -135,7 +135,6 @@
import com.metamatrix.query.sql.symbol.Function;
import com.metamatrix.query.sql.symbol.GroupSymbol;
import com.metamatrix.query.sql.symbol.Reference;
-import com.metamatrix.query.sql.symbol.SQLXMLFunction;
import com.metamatrix.query.sql.symbol.ScalarSubquery;
import com.metamatrix.query.sql.symbol.SearchedCaseExpression;
import com.metamatrix.query.sql.symbol.SingleElementSymbol;
Modified: trunk/engine/src/main/java/com/metamatrix/query/sql/LanguageVisitor.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/LanguageVisitor.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/LanguageVisitor.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -126,5 +126,8 @@
public void visit(SetClauseList obj) {}
public void visit(SetClause obj) {}
public void visit(OrderByItem obj) {}
- public void visit(SQLXMLFunction obj) {}
+ public void visit(XMLElement obj) {}
+ public void visit(XMLAttributes obj) {}
+ public void visit(XMLForest obj) {}
+ public void visit(XMLNamespaces obj) {}
}
Modified: trunk/engine/src/main/java/com/metamatrix/query/sql/navigator/PreOrPostOrderNavigator.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/navigator/PreOrPostOrderNavigator.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/navigator/PreOrPostOrderNavigator.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -92,8 +92,11 @@
import com.metamatrix.query.sql.symbol.Reference;
import com.metamatrix.query.sql.symbol.ScalarSubquery;
import com.metamatrix.query.sql.symbol.SearchedCaseExpression;
-import com.metamatrix.query.sql.symbol.SQLXMLFunction;
import com.metamatrix.query.sql.symbol.SingleElementSymbol;
+import com.metamatrix.query.sql.symbol.XMLAttributes;
+import com.metamatrix.query.sql.symbol.XMLElement;
+import com.metamatrix.query.sql.symbol.XMLForest;
+import com.metamatrix.query.sql.symbol.XMLNamespaces;
import com.metamatrix.query.sql.util.SymbolMap;
@@ -511,8 +514,9 @@
}
@Override
- public void visit(SQLXMLFunction obj) {
+ public void visit(XMLForest obj) {
preVisitVisitor(obj);
+ visitNode(obj.getNamespaces());
//we just want the underlying expressions, not the wrapping alias/expression symbols
for (SingleElementSymbol symbol : obj.getArgs()) {
visitNode(SymbolMap.getExpression(symbol));
@@ -520,6 +524,31 @@
postVisitVisitor(obj);
}
+ @Override
+ public void visit(XMLAttributes obj) {
+ preVisitVisitor(obj);
+ //we just want the underlying expressions, not the wrapping alias/expression symbols
+ for (SingleElementSymbol symbol : obj.getArgs()) {
+ visitNode(SymbolMap.getExpression(symbol));
+ }
+ postVisitVisitor(obj);
+ }
+
+ @Override
+ public void visit(XMLElement obj) {
+ preVisitVisitor(obj);
+ visitNode(obj.getNamespaces());
+ visitNode(obj.getAttributes());
+ visitNodes(obj.getContent());
+ postVisitVisitor(obj);
+ }
+
+ @Override
+ public void visit(XMLNamespaces obj) {
+ preVisitVisitor(obj);
+ postVisitVisitor(obj);
+ }
+
public static void doVisit(LanguageObject object, LanguageVisitor visitor, boolean order) {
PreOrPostOrderNavigator nav = new PreOrPostOrderNavigator(visitor, order);
object.acceptVisitor(nav);
Deleted: trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/SQLXMLFunction.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/SQLXMLFunction.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/SQLXMLFunction.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -1,98 +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.query.sql.symbol;
-
-import java.util.List;
-
-import com.metamatrix.common.types.DataTypeManager;
-import com.metamatrix.core.util.HashCodeUtil;
-import com.metamatrix.query.sql.LanguageObject;
-import com.metamatrix.query.sql.LanguageVisitor;
-import com.metamatrix.query.sql.visitor.SQLStringVisitor;
-
-/**
- * Represents XMLATTRIBUTES or XMLFOREST name value pairs
- */
-public class SQLXMLFunction implements Expression {
-
- private static final long serialVersionUID = -3348922701950966494L;
- private List<SingleElementSymbol> args;
- private String name;
-
- public SQLXMLFunction(String name, List<SingleElementSymbol> args) {
- this.name = name;
- this.args = args;
- }
-
- public List<SingleElementSymbol> getArgs() {
- return args;
- }
-
- public String getName() {
- return name;
- }
-
- @Override
- public Class<?> getType() {
- return DataTypeManager.DefaultDataClasses.XML;
- }
-
- @Override
- public boolean isResolved() {
- for (SingleElementSymbol arg : args) {
- if (!arg.isResolved()) {
- return false;
- }
- }
- return true;
- }
-
- @Override
- public void acceptVisitor(LanguageVisitor visitor) {
- visitor.visit(this);
- }
-
- @Override
- public SQLXMLFunction clone() {
- return new SQLXMLFunction(name, LanguageObject.Util.deepClone(args, SingleElementSymbol.class));
- }
-
- @Override
- public int hashCode() {
- return HashCodeUtil.hashCode(name.toUpperCase().hashCode(), args.hashCode());
- }
-
- public boolean equals(Object obj) {
- if (!(obj instanceof SQLXMLFunction)) {
- return false;
- }
- SQLXMLFunction other = (SQLXMLFunction)obj;
- return name.equalsIgnoreCase(other.name) && args.equals(other.args);
- }
-
- @Override
- public String toString() {
- return SQLStringVisitor.getSQLString(this);
- }
-
-}
Added: trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLAttributes.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLAttributes.java (rev 0)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLAttributes.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -0,0 +1,80 @@
+/*
+ * 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.query.sql.symbol;
+
+import java.util.List;
+
+import com.metamatrix.core.util.HashCodeUtil;
+import com.metamatrix.query.sql.LanguageObject;
+import com.metamatrix.query.sql.LanguageVisitor;
+import com.metamatrix.query.sql.visitor.SQLStringVisitor;
+
+/**
+ * Represents XMLATTRIBUTES name value pairs
+ */
+public class XMLAttributes implements LanguageObject {
+
+ private static final long serialVersionUID = -3348922701950966494L;
+ private List<SingleElementSymbol> args;
+
+ public XMLAttributes(List<SingleElementSymbol> args) {
+ this.args = args;
+ }
+
+ public List<SingleElementSymbol> getArgs() {
+ return args;
+ }
+
+ @Override
+ public XMLAttributes clone() {
+ XMLAttributes clone = new XMLAttributes(LanguageObject.Util.deepClone(args, SingleElementSymbol.class));
+ return clone;
+ }
+
+ @Override
+ public int hashCode() {
+ return HashCodeUtil.hashCode(args.hashCode());
+ }
+
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof XMLAttributes)) {
+ return false;
+ }
+ XMLAttributes other = (XMLAttributes)obj;
+ return args.equals(other.args);
+ }
+
+ @Override
+ public void acceptVisitor(LanguageVisitor visitor) {
+ visitor.visit(this);
+ }
+
+ @Override
+ public String toString() {
+ return SQLStringVisitor.getSQLString(this);
+ }
+
+}
Property changes on: trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLAttributes.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLElement.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLElement.java (rev 0)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLElement.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -0,0 +1,135 @@
+/*
+ * 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.query.sql.symbol;
+
+import java.util.List;
+
+import com.metamatrix.common.types.DataTypeManager;
+import com.metamatrix.core.util.EquivalenceUtil;
+import com.metamatrix.core.util.HashCodeUtil;
+import com.metamatrix.query.sql.LanguageObject;
+import com.metamatrix.query.sql.LanguageVisitor;
+import com.metamatrix.query.sql.visitor.SQLStringVisitor;
+
+/**
+ * Represents XMLATTRIBUTES/XMLFOREST name value pairs
+ */
+public class XMLElement implements Expression {
+
+ private static final long serialVersionUID = -3348922701950966494L;
+ private String name;
+ private XMLNamespaces namespaces;
+ private XMLAttributes attributes;
+ private List<Expression> content;
+
+ public XMLElement(String name, List<Expression> content) {
+ this.name = name;
+ this.content = content;
+ }
+
+ public XMLAttributes getAttributes() {
+ return attributes;
+ }
+
+ public XMLNamespaces getNamespaces() {
+ return namespaces;
+ }
+
+ public void setAttributes(XMLAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public void setNamespaces(XMLNamespaces namespaces) {
+ this.namespaces = namespaces;
+ }
+
+ public List<Expression> getContent() {
+ return content;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setContent(List<Expression> args) {
+ this.content = args;
+ }
+
+ @Override
+ public Class<?> getType() {
+ return DataTypeManager.DefaultDataClasses.XML;
+ }
+
+ @Override
+ public boolean isResolved() {
+ for (Expression arg : content) {
+ if (!arg.isResolved()) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public void acceptVisitor(LanguageVisitor visitor) {
+ visitor.visit(this);
+ }
+
+ @Override
+ public XMLElement clone() {
+ XMLElement clone = new XMLElement(name, LanguageObject.Util.deepClone(content, Expression.class));
+ if (namespaces != null) {
+ clone.setNamespaces(namespaces.clone());
+ }
+ if (attributes != null) {
+ clone.setAttributes(attributes.clone());
+ }
+ return clone;
+ }
+
+ @Override
+ public int hashCode() {
+ return HashCodeUtil.hashCode(name.toUpperCase().hashCode(), content.hashCode());
+ }
+
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof XMLElement)) {
+ return false;
+ }
+ XMLElement other = (XMLElement)obj;
+ return name.equalsIgnoreCase(other.name) && content.equals(other.content) && EquivalenceUtil.areEqual(this.namespaces, other.namespaces);
+ }
+
+ @Override
+ public String toString() {
+ return SQLStringVisitor.getSQLString(this);
+ }
+
+}
Property changes on: trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLElement.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLForest.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLForest.java (rev 0)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLForest.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -0,0 +1,103 @@
+/*
+ * 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.query.sql.symbol;
+
+import java.util.List;
+
+import com.metamatrix.common.types.DataTypeManager;
+import com.metamatrix.core.util.EquivalenceUtil;
+import com.metamatrix.core.util.HashCodeUtil;
+import com.metamatrix.query.sql.LanguageObject;
+import com.metamatrix.query.sql.LanguageVisitor;
+import com.metamatrix.query.sql.visitor.SQLStringVisitor;
+
+public class XMLForest implements Expression {
+
+ private static final long serialVersionUID = -3348922701950966494L;
+ private List<SingleElementSymbol> args;
+ private XMLNamespaces namespaces;
+
+ public XMLForest(List<SingleElementSymbol> args) {
+ this.args = args;
+ }
+
+ public XMLNamespaces getNamespaces() {
+ return namespaces;
+ }
+
+ public void setNamespaces(XMLNamespaces namespaces) {
+ this.namespaces = namespaces;
+ }
+
+ public List<SingleElementSymbol> getArgs() {
+ return args;
+ }
+
+ @Override
+ public Class<?> getType() {
+ return DataTypeManager.DefaultDataClasses.XML;
+ }
+
+ @Override
+ public boolean isResolved() {
+ for (SingleElementSymbol arg : args) {
+ if (!arg.isResolved()) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public void acceptVisitor(LanguageVisitor visitor) {
+ visitor.visit(this);
+ }
+
+ @Override
+ public XMLForest clone() {
+ XMLForest clone = new XMLForest(LanguageObject.Util.deepClone(args, SingleElementSymbol.class));
+ return clone;
+ }
+
+ @Override
+ public int hashCode() {
+ return HashCodeUtil.hashCode(args.hashCode());
+ }
+
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof XMLForest)) {
+ return false;
+ }
+ XMLForest other = (XMLForest)obj;
+ return args.equals(other.args);
+ }
+
+ @Override
+ public String toString() {
+ return SQLStringVisitor.getSQLString(this);
+ }
+
+}
Property changes on: trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLForest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLNamespaces.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLNamespaces.java (rev 0)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLNamespaces.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -0,0 +1,124 @@
+/*
+ * 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.query.sql.symbol;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.metamatrix.core.util.EquivalenceUtil;
+import com.metamatrix.core.util.HashCodeUtil;
+import com.metamatrix.query.sql.LanguageObject;
+import com.metamatrix.query.sql.LanguageVisitor;
+import com.metamatrix.query.sql.visitor.SQLStringVisitor;
+
+public class XMLNamespaces implements LanguageObject {
+
+ private static final long serialVersionUID = 681076404921001047L;
+
+ public static class NamespaceItem {
+ private String uri;
+ private String prefix;
+
+ public NamespaceItem(String uri, String prefix) {
+ this.uri = uri;
+ this.prefix = prefix;
+ }
+
+ public NamespaceItem(String defaultNamepace) {
+ this.uri = defaultNamepace;
+ }
+
+ public NamespaceItem() {
+ }
+
+ public String getUri() {
+ return uri;
+ }
+
+ public String getPrefix() {
+ return prefix;
+ }
+
+ @Override
+ public int hashCode() {
+ return HashCodeUtil.hashCode(0, this.uri, this.prefix);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof NamespaceItem)) {
+ return false;
+ }
+ NamespaceItem other = (NamespaceItem)obj;
+ return EquivalenceUtil.areEqual(this.uri, other.uri) &&
+ EquivalenceUtil.areEqual(this.prefix, other.prefix);
+ }
+ }
+
+ private List<NamespaceItem> namespaceItems;
+
+
+ public XMLNamespaces(List<NamespaceItem> namespaceItems) {
+ this.namespaceItems = namespaceItems;
+ }
+
+ public List<NamespaceItem> getNamespaceItems() {
+ return namespaceItems;
+ }
+
+ @Override
+ public XMLNamespaces clone() {
+ XMLNamespaces clone = new XMLNamespaces(new ArrayList<NamespaceItem>(namespaceItems));
+ return clone;
+ }
+
+ @Override
+ public int hashCode() {
+ return HashCodeUtil.hashCode(namespaceItems.hashCode());
+ }
+
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof XMLNamespaces)) {
+ return false;
+ }
+ XMLNamespaces other = (XMLNamespaces)obj;
+ return namespaceItems.equals(other.namespaceItems);
+ }
+
+ @Override
+ public void acceptVisitor(LanguageVisitor visitor) {
+ visitor.visit(this);
+ }
+
+ @Override
+ public String toString() {
+ return SQLStringVisitor.getSQLString(this);
+ }
+
+}
Property changes on: trunk/engine/src/main/java/com/metamatrix/query/sql/symbol/XMLNamespaces.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/EvaluatableVisitor.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/EvaluatableVisitor.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/EvaluatableVisitor.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -45,7 +45,6 @@
import com.metamatrix.query.sql.symbol.ExpressionSymbol;
import com.metamatrix.query.sql.symbol.Function;
import com.metamatrix.query.sql.symbol.Reference;
-import com.metamatrix.query.sql.symbol.SQLXMLFunction;
import com.metamatrix.query.sql.symbol.ScalarSubquery;
/**
@@ -172,9 +171,6 @@
}
public static final boolean isEvaluatable(LanguageObject obj, EvaluationLevel target) {
- if (obj instanceof SQLXMLFunction && (FunctionLibrary.XMLATTRIBUTES.equalsIgnoreCase(((SQLXMLFunction)obj).getName()))) {
- return false; //we want to preserve xmlattributes unless the parent xmlelement can be evaluated
- }
EvaluatableVisitor visitor = new EvaluatableVisitor();
visitor.targetLevel = target;
PreOrderNavigator.doVisit(obj, visitor);
Modified: trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/ExpressionMappingVisitor.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/ExpressionMappingVisitor.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/ExpressionMappingVisitor.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -57,9 +57,10 @@
import com.metamatrix.query.sql.symbol.Expression;
import com.metamatrix.query.sql.symbol.ExpressionSymbol;
import com.metamatrix.query.sql.symbol.Function;
-import com.metamatrix.query.sql.symbol.SQLXMLFunction;
import com.metamatrix.query.sql.symbol.SearchedCaseExpression;
import com.metamatrix.query.sql.symbol.SingleElementSymbol;
+import com.metamatrix.query.sql.symbol.XMLAttributes;
+import com.metamatrix.query.sql.symbol.XMLForest;
/**
* It is important to use a Post Navigator with this class,
@@ -86,9 +87,14 @@
}
@Override
- public void visit(SQLXMLFunction obj) {
+ public void visit(XMLForest obj) {
replaceSymbols(obj.getArgs(), true);
}
+
+ @Override
+ public void visit(XMLAttributes obj) {
+ replaceSymbols(obj.getArgs(), true);
+ }
private void replaceSymbols(List symbols, boolean alias) {
for (int i = 0; i < symbols.size(); i++) {
Modified: trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/SQLStringVisitor.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/SQLStringVisitor.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/SQLStringVisitor.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -35,6 +35,7 @@
import com.metamatrix.common.types.DataTypeManager;
import com.metamatrix.core.util.StringUtil;
+import com.metamatrix.query.function.FunctionLibrary;
import com.metamatrix.query.sql.LanguageObject;
import com.metamatrix.query.sql.LanguageVisitor;
import com.metamatrix.query.sql.lang.BetweenCriteria;
@@ -109,7 +110,11 @@
import com.metamatrix.query.sql.symbol.SearchedCaseExpression;
import com.metamatrix.query.sql.symbol.SelectSymbol;
import com.metamatrix.query.sql.symbol.SingleElementSymbol;
-import com.metamatrix.query.sql.symbol.SQLXMLFunction;
+import com.metamatrix.query.sql.symbol.XMLAttributes;
+import com.metamatrix.query.sql.symbol.XMLElement;
+import com.metamatrix.query.sql.symbol.XMLForest;
+import com.metamatrix.query.sql.symbol.XMLNamespaces;
+import com.metamatrix.query.sql.symbol.XMLNamespaces.NamespaceItem;
/**
* <p>The SQLStringVisitor will visit a set of language objects and return the
@@ -1243,7 +1248,7 @@
}
parts.add(")"); //$NON-NLS-1$
- } else if (name.equalsIgnoreCase(SourceSystemFunctions.XMLELEMENT) || name.equalsIgnoreCase(SourceSystemFunctions.XMLPI)){
+ } else if (name.equalsIgnoreCase(SourceSystemFunctions.XMLPI)){
parts.add(name);
parts.add("(NAME "); //$NON-NLS-1$
outputDisplayName((String)((Constant)args[0]).getValue());
@@ -1538,15 +1543,74 @@
parts.add(registerNode(obj.getCommand()));
parts.add(")"); //$NON-NLS-1$
}
-
+
@Override
- public void visit(SQLXMLFunction obj) {
- parts.add(obj.getName());
+ public void visit(XMLAttributes obj) {
+ parts.add(FunctionLibrary.XMLATTRIBUTES);
parts.add("("); //$NON-NLS-1$
registerNodes(obj.getArgs().toArray(new LanguageObject[obj.getArgs().size()]), 0);
parts.add(")"); //$NON-NLS-1$
}
+ @Override
+ public void visit(XMLElement obj) {
+ parts.add(FunctionLibrary.XMLELEMENT);
+ parts.add("(NAME "); //$NON-NLS-1$
+ outputDisplayName(obj.getName());
+ if (obj.getNamespaces() != null) {
+ parts.add(", "); //$NON-NLS-1$
+ parts.add(registerNode(obj.getNamespaces()));
+ }
+ if (obj.getAttributes() != null) {
+ parts.add(", "); //$NON-NLS-1$
+ parts.add(registerNode(obj.getAttributes()));
+ }
+ if (!obj.getContent().isEmpty()) {
+ parts.add(", "); //$NON-NLS-1$
+ }
+ registerNodes(obj.getContent().toArray(new LanguageObject[obj.getContent().size()]), 0);
+ parts.add(")"); //$NON-NLS-1$
+ }
+
+ @Override
+ public void visit(XMLForest obj) {
+ parts.add(FunctionLibrary.XMLFOREST);
+ parts.add("("); //$NON-NLS-1$
+ if (obj.getNamespaces() != null) {
+ parts.add(registerNode(obj.getNamespaces()));
+ parts.add(", "); //$NON-NLS-1$
+ }
+ registerNodes(obj.getArgs().toArray(new LanguageObject[obj.getArgs().size()]), 0);
+ parts.add(")"); //$NON-NLS-1$
+ }
+
+ @Override
+ public void visit(XMLNamespaces obj) {
+ parts.add(FunctionLibrary.XMLNAMESPACES);
+ parts.add("("); //$NON-NLS-1$
+ for (Iterator<NamespaceItem> items = obj.getNamespaceItems().iterator(); items.hasNext();) {
+ NamespaceItem item = items.next();
+ if (item.getPrefix() == null) {
+ if (item.getUri() == null) {
+ parts.add("NO DEFAULT"); //$NON-NLS-1$
+ } else {
+ parts.add("DEFAULT '"); //$NON-NLS-1$
+ parts.add(escapeStringValue(item.getUri(), "'")); //$NON-NLS-1$
+ parts.add("'"); //$NON-NLS-1$
+ }
+ } else {
+ parts.add("'"); //$NON-NLS-1$
+ parts.add(escapeStringValue(item.getUri(), "'")); //$NON-NLS-1$
+ parts.add("' AS "); //$NON-NLS-1$
+ outputDisplayName(item.getPrefix());
+ }
+ if (items.hasNext()) {
+ parts.add(", "); //$NON-NLS-1$
+ }
+ }
+ parts.add(")"); //$NON-NLS-1$
+ }
+
public void visit(Limit obj) {
parts.add(SQLReservedWords.LIMIT);
if (obj.getOffset() != null) {
Modified: trunk/engine/src/main/java/com/metamatrix/query/validator/ValidationVisitor.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/validator/ValidationVisitor.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/main/java/com/metamatrix/query/validator/ValidationVisitor.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -100,8 +100,9 @@
import com.metamatrix.query.sql.symbol.Function;
import com.metamatrix.query.sql.symbol.GroupSymbol;
import com.metamatrix.query.sql.symbol.Reference;
-import com.metamatrix.query.sql.symbol.SQLXMLFunction;
import com.metamatrix.query.sql.symbol.SingleElementSymbol;
+import com.metamatrix.query.sql.symbol.XMLAttributes;
+import com.metamatrix.query.sql.symbol.XMLForest;
import com.metamatrix.query.sql.util.SymbolMap;
import com.metamatrix.query.sql.visitor.AggregateSymbolCollectorVisitor;
import com.metamatrix.query.sql.visitor.CommandCollectorVisitor;
@@ -1140,12 +1141,21 @@
}
@Override
- public void visit(SQLXMLFunction obj) {
+ public void visit(XMLAttributes obj) {
for (SingleElementSymbol arg : obj.getArgs()) {
if (arg instanceof ExpressionSymbol) {
handleValidationError("ValidationVisitor.expression_requires_name", arg); //$NON-NLS-1$
}
}
}
+
+ @Override
+ public void visit(XMLForest obj) {
+ for (SingleElementSymbol arg : obj.getArgs()) {
+ if (arg instanceof ExpressionSymbol) {
+ handleValidationError("ValidationVisitor.expression_requires_name", arg); //$NON-NLS-1$
+ }
+ }
+ }
}
Modified: trunk/engine/src/main/javacc/com/metamatrix/query/parser/SQLParser.jj
===================================================================
--- trunk/engine/src/main/javacc/com/metamatrix/query/parser/SQLParser.jj 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/main/javacc/com/metamatrix/query/parser/SQLParser.jj 2010-05-10 17:42:42 UTC (rev 2109)
@@ -2977,32 +2977,10 @@
]
<RPAREN>
)
- | ( funcToken = <XMLELEMENT>
- <LPAREN>
- (
- LOOKAHEAD(<ID>, { "name".equalsIgnoreCase(getToken(1).image) }) <ID> expression = idExpression()
- |
- expression = idExpression()
- )
- {
- args.add(expression);
- expression = null;
- }
- [
- LOOKAHEAD(2) <COMMA> expression = sqlXmlFunction(info)
- {
- args.add(expression);
- expression = null;
- }
- ]
- (<COMMA> expression=expression(info)
- {
- args.add(expression);
- expression = null;
- }
- )*
- <RPAREN>
- )
+ | expression = xmlElement(info)
+ {
+ return expression;
+ }
| ( funcToken = <XMLPI>
<LPAREN>
(
@@ -3023,13 +3001,10 @@
]
<RPAREN>
)
- |
- LOOKAHEAD(<XMLFOREST>) (
- expression = sqlXmlFunction(info)
+ | expression = xmlForest(info)
{
return expression;
}
- )
|
( funcName = id()
{
@@ -3059,17 +3034,51 @@
return new Function(funcName, (Expression[])args.toArray(new Expression[args.size()]));
}
+}
+
+XMLElement xmlElement(ParseInfo info) :
+{
+ String name = null;
+ ArrayList content = new ArrayList();
+ XMLNamespaces xmlNamespaces = null;
+ XMLAttributes xmlAttributes = null;
+ Expression expression = null;
+}
+{
+ <XMLELEMENT> <LPAREN>
+ (
+ LOOKAHEAD(<ID>, { "name".equalsIgnoreCase(getToken(1).image) }) <ID> name = id()
+ |
+ name = id()
+ )
+ [
+ LOOKAHEAD(2) <COMMA> xmlNamespaces = xmlNamespaces(info)
+ ]
+ [
+ LOOKAHEAD(2) <COMMA> xmlAttributes = xmlAttributes(info)
+ ]
+ (<COMMA> expression=expression(info)
+ {
+ content.add(expression);
+ expression = null;
+ }
+ )*
+ <RPAREN>
+ {
+ XMLElement result = new XMLElement(name, content);
+ result.setNamespaces(xmlNamespaces);
+ result.setAttributes(xmlAttributes);
+ return result;
+ }
}
-SQLXMLFunction sqlXmlFunction(ParseInfo info) :
+XMLAttributes xmlAttributes(ParseInfo info) :
{
Expression expression = null;
ArrayList args = new ArrayList();
- Token funcToken = null;
}
{
- (funcToken = <XMLFOREST> | funcToken = <XMLATTRIBUTES>)
- <LPAREN>
+ <XMLATTRIBUTES> <LPAREN>
expression = selectExpression(info)
{
args.add(expression);
@@ -3083,10 +3092,86 @@
)*
<RPAREN>
{
- return new SQLXMLFunction(funcToken.image, args);
+ return new XMLAttributes(args);
}
}
+XMLForest xmlForest(ParseInfo info) :
+{
+ Expression expression = null;
+ XMLNamespaces xmlNamespaces = null;
+ ArrayList args = new ArrayList();
+}
+{
+ <XMLFOREST> <LPAREN>
+ [
+ xmlNamespaces = xmlNamespaces(info) <COMMA>
+ ]
+ expression = selectExpression(info)
+ {
+ args.add(expression);
+ expression = null;
+ }
+ (<COMMA> expression=selectExpression(info)
+ {
+ args.add(expression);
+ expression = null;
+ }
+ )*
+ <RPAREN>
+ {
+ XMLForest result = new XMLForest(args);
+ result.setNamespaces(xmlNamespaces);
+ return result;
+ }
+}
+
+XMLNamespaces xmlNamespaces(ParseInfo info) :
+{
+ ArrayList namespaces = new ArrayList();
+ XMLNamespaces.NamespaceItem item = null;
+}
+{
+ <XMLNAMESPACES> <LPAREN>
+ item = namespaceItem(info)
+ {
+ namespaces.add(item);
+ }
+ (<COMMA> item = namespaceItem(info)
+ {
+ namespaces.add(item);
+ }
+ )*
+ <RPAREN>
+ {
+ return new XMLNamespaces(namespaces);
+ }
+}
+
+XMLNamespaces.NamespaceItem namespaceItem(ParseInfo info) :
+{
+ String uri = null;
+ String prefix = null;
+}
+{
+ (
+ uri = stringVal() <AS> prefix = id()
+ {
+ return new XMLNamespaces.NamespaceItem(uri, prefix);
+ }
+ ) | (
+ <NO> <DEFAULT_KEYWORD>
+ {
+ return new XMLNamespaces.NamespaceItem();
+ }
+ ) | (
+ <DEFAULT_KEYWORD> uri = stringVal()
+ {
+ return new XMLNamespaces.NamespaceItem(uri);
+ }
+ )
+}
+
Constant idExpression() :
{
String id = null;
Modified: trunk/engine/src/test/java/com/metamatrix/query/function/TestFunctionLibrary.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/function/TestFunctionLibrary.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/test/java/com/metamatrix/query/function/TestFunctionLibrary.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -1341,36 +1341,6 @@
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Catalogs xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><Catalog><Items><Item ItemID=\"001\"><Name>Lamp</Name></Item></Items></Catalog></Catalogs>", xml);
}
- @Test public void testInvokeXmlElement() throws Exception {
- CommandContext c = new CommandContext();
- c.setBufferManager(BufferManagerFactory.getStandaloneBufferManager());
- XMLType result = (XMLType)helpInvokeMethod("xmlelement", new Class[] {DataTypeManager.DefaultDataClasses.STRING, DataTypeManager.DefaultDataClasses.OBJECT, DataTypeManager.DefaultDataClasses.OBJECT},
- new Object[] {"foo", "<bar>", DataTypeManager.transformValue("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Catalogs xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><Catalog><Items><Item ItemID=\"001\"><Name>Lamp</Name><Quantity>5</Quantity></Item></Items></Catalog></Catalogs>", DataTypeManager.DefaultDataClasses.XML)}, c);
-
- String xml = ObjectConverterUtil.convertToString(result.getCharacterStream());
- assertEquals("<foo><bar><Catalogs xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><Catalog><Items><Item ItemID=\"001\"><Name>Lamp</Name><Quantity>5</Quantity></Item></Items></Catalog></Catalogs></foo>", xml);
- }
-
- @Test public void testInvokeXmlElementWithFragment() throws Exception {
- CommandContext c = new CommandContext();
- c.setBufferManager(BufferManagerFactory.getStandaloneBufferManager());
- XMLType result = (XMLType)helpInvokeMethod("xmlelement", new Class[] {DataTypeManager.DefaultDataClasses.STRING, DataTypeManager.DefaultDataClasses.OBJECT, DataTypeManager.DefaultDataClasses.OBJECT},
- new Object[] {"foo", "<bar>", DataTypeManager.transformValue("<Catalogs xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><Catalog><Items><Item ItemID=\"001\"><Name>Lamp</Name><Quantity>5</Quantity></Item></Items></Catalog></Catalogs>", DataTypeManager.DefaultDataClasses.XML)}, c);
-
- String xml = ObjectConverterUtil.convertToString(result.getCharacterStream());
- assertEquals("<foo><bar><Catalogs xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><Catalog><Items><Item ItemID=\"001\"><Name>Lamp</Name><Quantity>5</Quantity></Item></Items></Catalog></Catalogs></foo>", xml);
- }
-
- @Test public void testInvokeXmlElement2() throws Exception {
- CommandContext c = new CommandContext();
- c.setBufferManager(BufferManagerFactory.getStandaloneBufferManager());
- XMLType result = (XMLType)helpInvokeMethod("xmlelement", new Class[] {DataTypeManager.DefaultDataClasses.STRING, DataTypeManager.DefaultDataClasses.OBJECT},
- new Object[] {"foo", new Timestamp(0)}, c);
-
- String xml = ObjectConverterUtil.convertToString(result.getCharacterStream());
- assertEquals("<foo>1969-12-31T18:00:00</foo>", xml);
- }
-
@Test public void testInvokeXmlConcat() throws Exception {
CommandContext c = new CommandContext();
c.setBufferManager(BufferManagerFactory.getStandaloneBufferManager());
Modified: trunk/engine/src/test/java/com/metamatrix/query/function/source/TestXMLSystemFunctions.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/function/source/TestXMLSystemFunctions.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/test/java/com/metamatrix/query/function/source/TestXMLSystemFunctions.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -28,11 +28,15 @@
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
+import java.sql.Timestamp;
+import java.util.TimeZone;
import javax.xml.xpath.XPathExpressionException;
import org.jdom.Attribute;
import org.jdom.Element;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
import org.junit.Test;
import com.metamatrix.api.exception.query.FunctionExecutionException;
@@ -205,5 +209,17 @@
final String xpath = "//*:ReadOnly"; //$NON-NLS-1$
helpTestXpathValue(xmlFilePath,xpath,null, "false"); //$NON-NLS-1$
}
+
+ @Test public void testInvokeXmlElement2() throws Exception {
+ assertEquals("1969-12-31T18:00:00", XMLSystemFunctions.getStringValue(new Timestamp(0)));
+ }
+
+ @BeforeClass static public void setUpOnce() {
+ TimeZone.setDefault(TimeZone.getTimeZone("GMT-6:00"));
+ }
+
+ @AfterClass static public void tearDownOnce() {
+ TimeZone.setDefault(null);
+ }
}
Modified: trunk/engine/src/test/java/com/metamatrix/query/parser/TestParser.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/parser/TestParser.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/test/java/com/metamatrix/query/parser/TestParser.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -106,7 +106,10 @@
import com.metamatrix.query.sql.symbol.SingleElementSymbol;
import com.metamatrix.query.sql.symbol.TestCaseExpression;
import com.metamatrix.query.sql.symbol.TestSearchedCaseExpression;
-import com.metamatrix.query.sql.symbol.SQLXMLFunction;
+import com.metamatrix.query.sql.symbol.XMLAttributes;
+import com.metamatrix.query.sql.symbol.XMLElement;
+import com.metamatrix.query.sql.symbol.XMLForest;
+import com.metamatrix.query.sql.symbol.XMLNamespaces;
@SuppressWarnings("nls")
public class TestParser {
@@ -2947,25 +2950,6 @@
query);
}
- /** SELECT neato."cheese brain" FROM neato */
- public void XXX_testSpacesInIdentifiers() {
- GroupSymbol g = new GroupSymbol("neato"); //$NON-NLS-1$
- From from = new From();
- from.addGroup(g);
-
- Select select = new Select();
- ElementSymbol symbol = new ElementSymbol("cheese brain"); //$NON-NLS-1$
- symbol.setGroupSymbol(g);
- select.addSymbol(symbol);
-
- Query query = new Query();
- query.setSelect(select);
- query.setFrom(from);
- helpTest("SELECT neato.\"cheese brain\" FROM neato", //$NON-NLS-1$
- "SELECT neato.\"cheese brain\" FROM neato", //$NON-NLS-1$
- query);
- }
-
/** SELECT a, b FROM (SELECT c FROM m.g) AS y */
@Test public void testSubquery1() {
GroupSymbol g = new GroupSymbol("m.g"); //$NON-NLS-1$
@@ -6719,28 +6703,35 @@
}
@Test public void testXmlElement() throws Exception {
- Function f = new Function("xmlelement", new Expression[] {new Constant("table"), new Constant("x")});
- helpTestExpression("xmlelement(name \"table\", 'x')", "xmlelement(NAME \"table\", 'x')", f);
+ XMLElement f = new XMLElement("table", Arrays.asList((Expression)new Constant("x")));
+ helpTestExpression("xmlelement(name \"table\", 'x')", "XMLELEMENT(NAME \"table\", 'x')", f);
}
@Test public void testXmlElement1() throws Exception {
- Function f = new Function("xmlelement", new Expression[] {new Constant("table"), new Constant("x")});
- helpTestExpression("xmlelement(\"table\", 'x')", "xmlelement(NAME \"table\", 'x')", f);
+ XMLElement f = new XMLElement("table", Arrays.asList((Expression)new Constant("x")));
+ helpTestExpression("xmlelement(\"table\", 'x')", "XMLELEMENT(NAME \"table\", 'x')", f);
}
@Test public void testXmlElementWithAttributes() throws Exception {
- Function f = new Function("xmlelement", new Expression[] {new Constant("y"), new SQLXMLFunction("xmlattributes", Arrays.asList((SingleElementSymbol)new AliasSymbol("val", new ExpressionSymbol("", new Constant("a")))))});
- helpTestExpression("xmlelement(y, xmlattributes('a' as val))", "xmlelement(NAME y, xmlattributes('a' AS val))", f);
+ XMLElement f = new XMLElement("y", new ArrayList<Expression>());
+ f.setAttributes(new XMLAttributes(Arrays.asList((SingleElementSymbol)new AliasSymbol("val", new ExpressionSymbol("", new Constant("a"))))));
+ helpTestExpression("xmlelement(y, xmlattributes('a' as val))", "XMLELEMENT(NAME y, XMLATTRIBUTES('a' AS val))", f);
}
@Test public void testXmlForest() throws Exception {
- SQLXMLFunction f = new SQLXMLFunction("xmlforest", Arrays.asList((SingleElementSymbol)new AliasSymbol("table", new ElementSymbol("a"))));
- helpTestExpression("xmlforest(a as \"table\")", "xmlforest(a AS \"table\")", f);
+ XMLForest f = new XMLForest(Arrays.asList((SingleElementSymbol)new AliasSymbol("table", new ElementSymbol("a"))));
+ helpTestExpression("xmlforest(a as \"table\")", "XMLFOREST(a AS \"table\")", f);
}
@Test public void testXmlPi() throws Exception {
Function f = new Function("xmlpi", new Expression[] {new Constant("a"), new ElementSymbol("val")});
helpTestExpression("xmlpi(NAME a, val)", "xmlpi(NAME a, val)", f);
}
+
+ @Test public void testXmlNamespaces() throws Exception {
+ XMLForest f = new XMLForest(Arrays.asList((SingleElementSymbol)new AliasSymbol("table", new ElementSymbol("a"))));
+ f.setNamespaces(new XMLNamespaces(Arrays.asList(new XMLNamespaces.NamespaceItem(), new XMLNamespaces.NamespaceItem("x", "http://foo"))));
+ helpTestExpression("xmlforest(xmlnamespaces(no default, 'http://foo' as x), a as \"table\")", "XMLFOREST(XMLNAMESPACES(NO DEFAULT, 'http://foo' AS x), a AS \"table\")", f);
+ }
}
Modified: trunk/engine/src/test/java/com/metamatrix/query/processor/TestProcessor.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/processor/TestProcessor.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/test/java/com/metamatrix/query/processor/TestProcessor.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -7482,93 +7482,6 @@
helpProcess(plan, dataManager, expected);
}
-
- @Test public void testXmlElement() {
- String sql = "SELECT xmlelement(e1, e2) from pm1.g1 order by e1, e2"; //$NON-NLS-1$
- List[] expected = new List[] {
- Arrays.asList("<e1>1</e1>"),
- Arrays.asList("<e1>0</e1>"),
- Arrays.asList("<e1>0</e1>"),
- Arrays.asList("<e1>3</e1>"),
- Arrays.asList("<e1>2</e1>"),
- Arrays.asList("<e1>1</e1>"),
- };
-
- FakeDataManager dataManager = new FakeDataManager();
- sampleData1(dataManager);
-
- ProcessorPlan plan = helpGetPlan(helpParse(sql), FakeMetadataFactory.example1Cached());
-
- helpProcess(plan, dataManager, expected);
- }
-
- @Test public void testXmlElementWithConcat() {
- String sql = "SELECT xmlelement(e1, e2, xmlconcat(xmlelement(x), xmlelement(y, e3))) from pm1.g1 order by e1, e2"; //$NON-NLS-1$
-
- List[] expected = new List[] {
- Arrays.asList("<e1>1<x></x><y>false</y></e1>"),
- Arrays.asList("<e1>0<x></x><y>false</y></e1>"),
- Arrays.asList("<e1>0<x></x><y>false</y></e1>"),
- Arrays.asList("<e1>3<x></x><y>true</y></e1>"),
- Arrays.asList("<e1>2<x></x><y>false</y></e1>"),
- Arrays.asList("<e1>1<x></x><y>true</y></e1>"),
- };
-
- FakeDataManager dataManager = new FakeDataManager();
- sampleData1(dataManager);
-
- ProcessorPlan plan = helpGetPlan(helpParse(sql), FakeMetadataFactory.example1Cached());
-
- helpProcess(plan, dataManager, expected);
- }
-
- @Test public void testXmlElementWithForest() {
- String sql = "SELECT xmlelement(x, xmlforest(e1, e2, '1' as val)) from pm1.g1 order by e1, e2 limit 2"; //$NON-NLS-1$
-
- List[] expected = new List[] {
- Arrays.asList("<x><e2>1</e2><val>1</val></x>"), //note e1 is not present, because it's null
- Arrays.asList("<x><e1>a</e1><e2>0</e2><val>1</val></x>"),
- };
-
- FakeDataManager dataManager = new FakeDataManager();
- sampleData1(dataManager);
-
- ProcessorPlan plan = helpGetPlan(helpParse(sql), FakeMetadataFactory.example1Cached());
-
- helpProcess(plan, dataManager, expected);
- }
-
- @Test public void testXmlElementWithAttributes() {
- String sql = "SELECT xmlelement(x, xmlattributes(e1, e2, '1' as val)) from pm1.g1 order by e1, e2 limit 2"; //$NON-NLS-1$
-
- List[] expected = new List[] {
- Arrays.asList("<x e2=\"1\" val=\"1\"></x>"), //note e1 is not present, because it's null
- Arrays.asList("<x e1=\"a\" e2=\"0\" val=\"1\"></x>"),
- };
-
- FakeDataManager dataManager = new FakeDataManager();
- sampleData1(dataManager);
-
- ProcessorPlan plan = helpGetPlan(helpParse(sql), FakeMetadataFactory.example1Cached());
-
- helpProcess(plan, dataManager, expected);
- }
-
- @Test public void testXmlElementWithPi() {
- String sql = "SELECT xmlelement(x, xmlpi(name e1, ' 1'))"; //$NON-NLS-1$
-
- List[] expected = new List[] {
- Arrays.asList("<x><?e1 1?></x>"),
- };
-
- FakeDataManager dataManager = new FakeDataManager();
- sampleData1(dataManager);
-
- ProcessorPlan plan = helpGetPlan(helpParse(sql), FakeMetadataFactory.example1Cached());
-
- helpProcess(plan, dataManager, expected);
- }
-
private static final boolean DEBUG = false;
}
Added: trunk/engine/src/test/java/com/metamatrix/query/processor/TestSQLXMLProcessing.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/processor/TestSQLXMLProcessing.java (rev 0)
+++ trunk/engine/src/test/java/com/metamatrix/query/processor/TestSQLXMLProcessing.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -0,0 +1,174 @@
+/*
+ * 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.query.processor;
+
+import static com.metamatrix.query.processor.TestProcessor.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.junit.Test;
+
+import com.metamatrix.query.unittest.FakeMetadataFactory;
+
+@SuppressWarnings("nls")
+public class TestSQLXMLProcessing {
+
+ @Test public void testXmlElementTextContent() throws Exception {
+ String sql = "SELECT xmlelement(foo, '<bar>', convert('<bar1/>', xml))"; //$NON-NLS-1$
+
+ List[] expected = new List[] {
+ Arrays.asList("<foo><bar><bar1/></foo>"),
+ };
+
+ FakeDataManager dataManager = new FakeDataManager();
+ sampleData1(dataManager);
+
+ ProcessorPlan plan = helpGetPlan(helpParse(sql), FakeMetadataFactory.example1Cached());
+
+ helpProcess(plan, dataManager, expected);
+ }
+
+ /**
+ * Repeat of the above test, but with a document declaration. Because of the way we do event filtering, we end
+ * up with a slightly different, but equivalent answer.
+ */
+ @Test public void testXmlElementTextContent1() throws Exception {
+ String sql = "SELECT xmlelement(foo, '<bar>', convert('<?xml version=\"1.0\" encoding=\"UTF-8\"?><bar1/>', xml))"; //$NON-NLS-1$
+
+ List[] expected = new List[] {
+ Arrays.asList("<foo><bar><bar1></bar1></foo>"),
+ };
+
+ FakeDataManager dataManager = new FakeDataManager();
+ sampleData1(dataManager);
+
+ ProcessorPlan plan = helpGetPlan(helpParse(sql), FakeMetadataFactory.example1Cached());
+
+ helpProcess(plan, dataManager, expected);
+ }
+
+ @Test public void testXmlElement() {
+ String sql = "SELECT xmlelement(e1, e2) from pm1.g1 order by e1, e2"; //$NON-NLS-1$
+
+ List[] expected = new List[] {
+ Arrays.asList("<e1>1</e1>"),
+ Arrays.asList("<e1>0</e1>"),
+ Arrays.asList("<e1>0</e1>"),
+ Arrays.asList("<e1>3</e1>"),
+ Arrays.asList("<e1>2</e1>"),
+ Arrays.asList("<e1>1</e1>"),
+ };
+
+ FakeDataManager dataManager = new FakeDataManager();
+ sampleData1(dataManager);
+
+ ProcessorPlan plan = helpGetPlan(helpParse(sql), FakeMetadataFactory.example1Cached());
+
+ helpProcess(plan, dataManager, expected);
+ }
+
+ @Test public void testXmlElementWithConcat() {
+ String sql = "SELECT xmlelement(e1, e2, xmlconcat(xmlelement(x), xmlelement(y, e3))) from pm1.g1 order by e1, e2"; //$NON-NLS-1$
+
+ List[] expected = new List[] {
+ Arrays.asList("<e1>1<x></x><y>false</y></e1>"),
+ Arrays.asList("<e1>0<x></x><y>false</y></e1>"),
+ Arrays.asList("<e1>0<x></x><y>false</y></e1>"),
+ Arrays.asList("<e1>3<x></x><y>true</y></e1>"),
+ Arrays.asList("<e1>2<x></x><y>false</y></e1>"),
+ Arrays.asList("<e1>1<x></x><y>true</y></e1>"),
+ };
+
+ FakeDataManager dataManager = new FakeDataManager();
+ sampleData1(dataManager);
+
+ ProcessorPlan plan = helpGetPlan(helpParse(sql), FakeMetadataFactory.example1Cached());
+
+ helpProcess(plan, dataManager, expected);
+ }
+
+ @Test public void testXmlElementWithForest() {
+ String sql = "SELECT xmlelement(x, xmlforest(e1, e2, '1' as val)) from pm1.g1 order by e1, e2 limit 2"; //$NON-NLS-1$
+
+ List[] expected = new List[] {
+ Arrays.asList("<x><e2>1</e2><val>1</val></x>"), //note e1 is not present, because it's null
+ Arrays.asList("<x><e1>a</e1><e2>0</e2><val>1</val></x>"),
+ };
+
+ FakeDataManager dataManager = new FakeDataManager();
+ sampleData1(dataManager);
+
+ ProcessorPlan plan = helpGetPlan(helpParse(sql), FakeMetadataFactory.example1Cached());
+
+ helpProcess(plan, dataManager, expected);
+ }
+
+ @Test public void testXmlElementWithAttributes() {
+ String sql = "SELECT xmlelement(x, xmlattributes(e1, e2, '1' as val)) from pm1.g1 order by e1, e2 limit 2"; //$NON-NLS-1$
+
+ List[] expected = new List[] {
+ Arrays.asList("<x e2=\"1\" val=\"1\"></x>"), //note e1 is not present, because it's null
+ Arrays.asList("<x e1=\"a\" e2=\"0\" val=\"1\"></x>"),
+ };
+
+ FakeDataManager dataManager = new FakeDataManager();
+ sampleData1(dataManager);
+
+ ProcessorPlan plan = helpGetPlan(helpParse(sql), FakeMetadataFactory.example1Cached());
+
+ helpProcess(plan, dataManager, expected);
+ }
+
+ @Test public void testXmlElementWithPi() {
+ String sql = "SELECT xmlelement(x, xmlpi(name e1, ' 1'))"; //$NON-NLS-1$
+
+ List[] expected = new List[] {
+ Arrays.asList("<x><?e1 1?></x>"),
+ };
+
+ FakeDataManager dataManager = new FakeDataManager();
+ sampleData1(dataManager);
+
+ ProcessorPlan plan = helpGetPlan(helpParse(sql), FakeMetadataFactory.example1Cached());
+
+ helpProcess(plan, dataManager, expected);
+ }
+
+ @Test public void testXmlElementWithNamespaces() {
+ String sql = "SELECT xmlelement(x, xmlnamespaces(no default, 'http://foo' as x, 'http://foo1' as y), xmlattributes(e1), e2) from pm1.g1 order by e1, e2 limit 2"; //$NON-NLS-1$
+
+ List[] expected = new List[] {
+ Arrays.asList("<x xmlns=\"\" xmlns:x=\"http://foo\" xmlns:y=\"http://foo1\">1</x>"), //note e1 is not present, because it's null
+ Arrays.asList("<x xmlns=\"\" xmlns:x=\"http://foo\" xmlns:y=\"http://foo1\" e1=\"a\">0</x>"),
+ };
+
+ FakeDataManager dataManager = new FakeDataManager();
+ sampleData1(dataManager);
+
+ ProcessorPlan plan = helpGetPlan(helpParse(sql), FakeMetadataFactory.example1Cached());
+
+ helpProcess(plan, dataManager, expected);
+ }
+
+}
Property changes on: trunk/engine/src/test/java/com/metamatrix/query/processor/TestSQLXMLProcessing.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/engine/src/test/java/com/metamatrix/query/validator/TestValidator.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/validator/TestValidator.java 2010-05-10 01:46:37 UTC (rev 2108)
+++ trunk/engine/src/test/java/com/metamatrix/query/validator/TestValidator.java 2010-05-10 17:42:42 UTC (rev 2109)
@@ -1963,6 +1963,10 @@
helpValidate("SELECT xmlelement(name a, xmlattributes('1'))", new String[] {"'1'"}, exampleMetadata2()); //$NON-NLS-1$ //$NON-NLS-2$
}
+ @Test public void testValidateNoExpressionName1() {
+ helpValidate("SELECT xmlforest('1')", new String[] {"'1'"}, exampleMetadata2()); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
@Test public void testXpathValueValid_defect15088() {
String userSql = "SELECT xpathValue('<?xml version=\"1.0\" encoding=\"utf-8\" ?><a><b><c>test</c></b></a>', 'a/b/c')"; //$NON-NLS-1$
helpValidate(userSql, new String[] {}, FakeMetadataFactory.exampleBQTCached());
15 years, 11 months
teiid SVN: r2108 - in trunk: build/kits/jboss-container/deployers/teiid.deployer and 16 other directories.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2010-05-09 21:46:37 -0400 (Sun, 09 May 2010)
New Revision: 2108
Added:
trunk/build/kits/jboss-container/deploy/teiid/connectors/jdbc-translator.xml
trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connection-ds.xml
trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorPropertyFactory.java
trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/TranslatorMetadataGroupComponentMapper.java
trunk/runtime/src/main/java/org/teiid/deployers/TranslatorMetaDataGroup.java
trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorMetadata.java
Removed:
trunk/build/kits/jboss-container/deploy/teiid/connectors/access-translator.xml
trunk/build/kits/jboss-container/deploy/teiid/connectors/db2-translator.xml
trunk/build/kits/jboss-container/deploy/teiid/connectors/derby-translator.xml
trunk/build/kits/jboss-container/deploy/teiid/connectors/h2-translator.xml
trunk/build/kits/jboss-container/deploy/teiid/connectors/hsql-translator.xml
trunk/build/kits/jboss-container/deploy/teiid/connectors/mysql-translator.xml
trunk/build/kits/jboss-container/deploy/teiid/connectors/oracle-translator.xml
trunk/build/kits/jboss-container/deploy/teiid/connectors/postgresql-translator.xml
trunk/build/kits/jboss-container/deploy/teiid/connectors/sqlserver-translator.xml
trunk/build/kits/jboss-container/deploy/teiid/connectors/sybase-translator.xml
trunk/build/kits/jboss-container/teiid-examples/portfolio/derby-connector-ds.xml
trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connector-ds.xml
trunk/build/kits/jboss-container/teiid-examples/sample-connector-bindings/
trunk/client/src/test/java/org/teiid/adminapi/impl/TestTranslatorMetadata.java
Modified:
trunk/build/kits/jboss-container/deploy/teiid/connectors/ldap-translator.xml
trunk/build/kits/jboss-container/deploy/teiid/connectors/loopback-translator.xml
trunk/build/kits/jboss-container/deploy/teiid/connectors/salesforce-translator.xml
trunk/build/kits/jboss-container/deploy/teiid/connectors/text-translator.xml
trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml
trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/README.txt
trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/portfolio-dynamic-vdb.xml
trunk/build/kits/jboss-container/teiid-examples/portfolio/PortfolioModel/Portfolio.vdb
trunk/build/kits/jboss-container/teiid-examples/portfolio/README.txt
trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorMetaData.java
trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPExecutionFactory.java
trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java
trunk/console/src/main/java/org/teiid/rhq/plugin/VDBDiscoveryComponent.java
trunk/console/src/main/resources/META-INF/rhq-plugin.xml
trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/Admin.java
trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/AdminObjectBuilder.java
trunk/runtime/src/main/java/org/teiid/deployers/ManagedPropertyUtil.java
trunk/runtime/src/main/java/org/teiid/deployers/TranslatorDeployer.java
trunk/runtime/src/main/java/org/teiid/deployers/TranslatorParserDeployer.java
trunk/runtime/src/main/java/org/teiid/templates/TranslatorDeploymentTemplate.java
trunk/runtime/src/main/java/org/teiid/templates/TranslatorTemplateInfo.java
trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties
trunk/test-integration/db/src/test/java/org/teiid/adminapi/jboss/TestConnectorBindings.java
Log:
TEIID-1075, TEIID-1077, TEIID-1078, TEIID-1079, TEIID-1080, TEIID-1081: Multiple translators can be defined in single translator xml file. Fixed the "jopr" plugin for the translator changes. Fixed some bugs with update of the Translator and fixed the examples for changes.
Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/access-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/access-translator.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/access-translator.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
- <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
- <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.access.AccessSQLTranslator" />
- <xa-capable>true</xa-capable>
-</translator>
Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/db2-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/db2-translator.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/db2-translator.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
- <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
- <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.db2.DB2SQLTranslator" />
- <xa-capable>true</xa-capable>
-</translator>
Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/derby-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/derby-translator.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/derby-translator.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
- <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
- <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.derby.DerbySQLTranslator" />
- <xa-capable>true</xa-capable>
-</translator>
Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/h2-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/h2-translator.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/h2-translator.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
- <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
- <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.h2.H2Translator" />
- <xa-capable>true</xa-capable>
-</translator>
Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/hsql-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/hsql-translator.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/hsql-translator.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
- <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
- <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.hsql.HsqlTranslator" />
- <xa-capable>true</xa-capable>
-</translator>
Copied: trunk/build/kits/jboss-container/deploy/teiid/connectors/jdbc-translator.xml (from rev 2103, trunk/build/kits/jboss-container/deploy/teiid/connectors/access-translator.xml)
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/jdbc-translator.xml (rev 0)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/jdbc-translator.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<translator-factory>
+ <translator>
+ <name>access</name>
+ <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+ <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.access.AccessSQLTranslator" />
+ <xa-capable>true</xa-capable>
+ </translator>
+
+ <translator>
+ <name>db2</name>
+ <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+ <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.db2.DB2SQLTranslator" />
+ <xa-capable>true</xa-capable>
+ </translator>
+
+ <translator>
+ <name>derby</name>
+ <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+ <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.derby.DerbySQLTranslator" />
+ <xa-capable>true</xa-capable>
+ </translator>
+
+ <translator>
+ <name>h2</name>
+ <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+ <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.h2.H2Translator" />
+ <xa-capable>true</xa-capable>
+ </translator>
+
+ <translator>
+ <name>hsql</name>
+ <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+ <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.hsql.HsqlTranslator" />
+ <xa-capable>true</xa-capable>
+ </translator>
+
+
+ <translator>
+ <name>mysql</name>
+ <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+ <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.mysql.MySQLTranslator" />
+ <xa-capable>true</xa-capable>
+ </translator>
+
+ <translator>
+ <name>oracle</name>
+ <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+ <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.oracle.OracleSQLTranslator" />
+ <xa-capable>true</xa-capable>
+ </translator>
+
+ <translator>
+ <name>postgresql</name>
+ <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+ <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.postgresql.PostgreSQLTranslator" />
+ <xa-capable>true</xa-capable>
+ </translator>
+
+ <translator>
+ <name>sqlserver</name>
+ <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+ <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.sqlserver.SQLServerSQLTranslator" />
+ <xa-capable>true</xa-capable>
+ </translator>
+
+ <translator>
+ <name>sybase</name>
+ <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
+ <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.sybase.SybaseSQLTranslator" />
+ <xa-capable>true</xa-capable>
+ </translator>
+</translator-factory>
\ No newline at end of file
Property changes on: trunk/build/kits/jboss-container/deploy/teiid/connectors/jdbc-translator.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/build/kits/jboss-container/deploy/teiid/connectors/ldap-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/ldap-translator.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/ldap-translator.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,7 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
- <execution-factory-class>org.teiid.resource.adapter.ldap.LDAPExecutionFactory</execution-factory-class>
- <translator-property name="SearchDefaultBaseDN" value="" />
- <translator-property name="SearchDefaultScope" value="SUBTREE_SCOPE"/>
- <translator-property name="RestrictToObjectClass" value="false"/>
-</translator>
+<translator-factory>
+ <translator>
+ <name>ldap</name>
+ <execution-factory-class>org.teiid.resource.adapter.ldap.LDAPExecutionFactory</execution-factory-class>
+ <translator-property name="SearchDefaultBaseDN" value="" />
+ <translator-property name="SearchDefaultScope" value="SUBTREE_SCOPE" />
+ <translator-property name="RestrictToObjectClass" value="false" />
+ </translator>
+</translator-factory>
\ No newline at end of file
Modified: trunk/build/kits/jboss-container/deploy/teiid/connectors/loopback-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/loopback-translator.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/loopback-translator.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,4 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
- <execution-factory-class>org.teiid.resource.adapter.loopback.LoopbackExecutionFactory</execution-factory-class>
-</translator>
+<translator-factory>
+ <translator>
+ <name>loopback</name>
+ <execution-factory-class>org.teiid.resource.adapter.loopback.LoopbackExecutionFactory</execution-factory-class>
+ </translator>
+</translator-factory>
\ No newline at end of file
Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/mysql-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/mysql-translator.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/mysql-translator.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
- <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
- <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.mysql.MySQLTranslator" />
- <xa-capable>true</xa-capable>
-</translator>
Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/oracle-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/oracle-translator.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/oracle-translator.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
- <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
- <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.oracle.OracleSQLTranslator"/>
- <xa-capable>true</xa-capable>
-</translator>
Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/postgresql-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/postgresql-translator.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/postgresql-translator.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
- <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
- <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.postgresql.PostgreSQLTranslator" />
- <xa-capable>true</xa-capable>
-</translator>
Modified: trunk/build/kits/jboss-container/deploy/teiid/connectors/salesforce-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/salesforce-translator.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/salesforce-translator.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,4 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
- <execution-factory-class>org.teiid.resource.adapter.salesforce.SalesForceExecutionFactory</execution-factory-class>
-</translator>
+<translator-factory>
+ <translator>
+ <name>salesforce</name>
+ <execution-factory-class>org.teiid.resource.adapter.salesforce.SalesForceExecutionFactory</execution-factory-class>
+ </translator>
+</translator-factory>
\ No newline at end of file
Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/sqlserver-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/sqlserver-translator.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/sqlserver-translator.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
- <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
- <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.sqlserver.SQLServerSQLTranslator" />
- <xa-capable>true</xa-capable>
-</translator>
Deleted: trunk/build/kits/jboss-container/deploy/teiid/connectors/sybase-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/sybase-translator.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/sybase-translator.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
- <execution-factory-class>org.teiid.resource.adapter.jdbc.JDBCExecutionFactory</execution-factory-class>
- <translator-property name="ExtensionTranslationClassName" value="org.teiid.translator.jdbc.sybase.SybaseSQLTranslator" />
- <xa-capable>true</xa-capable>
-</translator>
Modified: trunk/build/kits/jboss-container/deploy/teiid/connectors/text-translator.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/connectors/text-translator.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deploy/teiid/connectors/text-translator.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,4 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<translator>
- <execution-factory-class>org.teiid.resource.adapter.text.TextExecutionFactory</execution-factory-class>
-</translator>
+<translator-factory>
+ <translator>
+ <name>text</name>
+ <execution-factory-class>org.teiid.resource.adapter.text.TextExecutionFactory</execution-factory-class>
+ </translator>
+</translator-factory>
\ No newline at end of file
Modified: trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml
===================================================================
--- trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -75,6 +75,11 @@
<bean name="VDBMetadataComponentMapper" class="org.teiid.jboss.deployers.VDBMetadataComponentMapper">
<constructor><parameter><inject bean="PersistenceFactory" /></parameter></constructor>
</bean>
+ <!-- Persistence class for the Translator deployment file -->
+ <bean name="TranslatorMetadataGroupComponentMapper" class="org.teiid.jboss.deployers.TranslatorMetadataGroupComponentMapper">
+ <constructor><parameter><inject bean="PersistenceFactory" /></parameter></constructor>
+ </bean>
+
<!-- used for the translators -->
<bean name="TranslatorDeploymentTemplateInfoFactory" class="org.teiid.templates.TranslatorTemplateInfoFactory"/>
Modified: trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/README.txt
===================================================================
--- trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/README.txt 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/README.txt 2010-05-10 01:46:37 UTC (rev 2108)
@@ -2,8 +2,7 @@
Copy the followng files to the <jboss.home>/server/default/deploy directory.
- portfolio-dynamic-vdb.xml
- - ../portfolio/derby-connector-ds.xml
- - ../portfolio/text-connector-ds.xml
+ - ../portfolio/text-connection-ds.xml
- ../portfolio/portfolio-ds.xml
Start the JBoss Container
Modified: trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/portfolio-dynamic-vdb.xml
===================================================================
--- trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/portfolio-dynamic-vdb.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/teiid-examples/dynamicvdb-portfolio/portfolio-dynamic-vdb.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -23,12 +23,11 @@
-->
<model name="MarketData">
<!--
- Each of source represents data source that are defined for reading and writing data.
- Connectors in Teiid are defined using "xxx-ds.xml" files. The below jndi name refers
- to one such connector. Connectors are defined using "connection factory" templates in
- JBoss. (ex: look at text-connector-ds.xml file)
+ Each of source represents translator and data source reading and writing data. There are pre-defined translators or
+ you can create one. They are defined using "-translator.xml" file. Connections define connections
+ to physical sources. In JBoss AS they are typically defined using "xxx-ds.xml" files.
-->
- <source name="text-connector" jndi-name="java:text-connector"/>
+ <source name="text-connector" translator-name="text" connection-jndi-name="java:marketdata-text-connection"/>
</model>
<model name="Accounts">
@@ -44,7 +43,7 @@
<!--
This connector is defined in the "derby-connector-ds.xml"
-->
- <source name="derby-connector" jndi-name="java:derby-connector"/>
+ <source name="derby-connector" translator-name="derby" connection-jndi-name="java:PortfolioDS"/>
</model>
</vdb>
\ No newline at end of file
Modified: trunk/build/kits/jboss-container/teiid-examples/portfolio/PortfolioModel/Portfolio.vdb
===================================================================
--- trunk/build/kits/jboss-container/teiid-examples/portfolio/PortfolioModel/Portfolio.vdb 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/teiid-examples/portfolio/PortfolioModel/Portfolio.vdb 2010-05-10 01:46:37 UTC (rev 2108)
@@ -151,9 +151,10 @@
��p��|���Ȃ��6E=@�W�<����S,���/&gs����9��'��Qӽ���i��V
�0��.�nԋ/f=����������v�n�r��}j��K���i�!;�oz���lQ��Jl�Z��|�e�y�v8�=��#ٿ�?�VM@w��\O��ڳ�m��t&�q�L�x���J�~3���I��������v�65��9d5�j���@x�(�C�}ߑ.k�Z</�t��)G/첦�O��<)�|�¡�Չ���bN����Y�I�_�)�d�.��8��yt��kM��^~X�y�o7i���e�����k�E
-�{��6��R�����;�Z�9Ұ��y��k���t�����.�c�L5���@!Yv��5l���TC�&�a��y��*2]��q����̋B��;�j�;ʓ�c5�N�G�"x��2Z��@Η��`�x�W�;����r.��$�jt��/�5�o�����y�]�������o{dE��4�N��t�?��'PK
+��E����͛�,���O��6�C�vdz]t�2�0r`&�wשS����'iDi�G��$���1�_�I,"�&��:L�ղ(V�TOV���q
+���{m&��D���f��0/)�/��I����cL�����kPH����6���Tʆ� LXÀ �B��QdZ�<q�;��d̊BI���|4�
+��d#m5�N�E���K�Dh3GP9J�Ȼ�@M�h�{r~��Mo��QĉHy�LP��Tu5�:�pa-w�ӟ��f�hp$.:�>������?Dmx��v���,�ÿ���!��x���ܐ���$PK
-
\ No newline at end of file
+
\ No newline at end of file
Modified: trunk/build/kits/jboss-container/teiid-examples/portfolio/README.txt
===================================================================
--- trunk/build/kits/jboss-container/teiid-examples/portfolio/README.txt 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/teiid-examples/portfolio/README.txt 2010-05-10 01:46:37 UTC (rev 2108)
@@ -7,8 +7,7 @@
Copy the PortfolioModel/Portolio.vdb file to the "<jboss home>/server/default/deploy" directory.
Copy the Connectors for the example
- - derby-connector-ds.xml
- - text-connector-ds.xml
+ - text-connection-ds.xml
- portfolio-ds.xml
Start the JBoss Container
Deleted: trunk/build/kits/jboss-container/teiid-examples/portfolio/derby-connector-ds.xml
===================================================================
--- trunk/build/kits/jboss-container/teiid-examples/portfolio/derby-connector-ds.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/teiid-examples/portfolio/derby-connector-ds.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<connection-factories>
- <no-tx-connection-factory>
- <jndi-name>derby-connector</jndi-name>
- <rar-name>connector-jdbc-${project.version}.rar</rar-name>
- <connection-definition>org.teiid.connector.api.Connector</connection-definition>
-
- <!--
- All the available properties for this connector are defined inside the "ra.xml" defined inside the rar
- file mentioned above.
- -->
- <config-property name="CapabilitiesClass" type="java.lang.String">org.teiid.connector.jdbc.derby.DerbyCapabilities</config-property>
- <config-property name="XaCapable" type="java.lang.Boolean">true</config-property>
- <config-property name="ExtensionTranslationClassName" type="java.lang.String">org.teiid.connector.jdbc.derby.DerbySQLTranslator</config-property>
-
- <!--
- This xml file is defining a connector for Teiid. Still this is not the source, this is just a
- Teiid connector wrapping layer. This layer needs access to physical JDBC source, that is defined
- in the below property. This is a data source in JBoss. This can be any RDBMS. Look at
- "{jboss.home}/docs/examples/jca" folder. Also look at "portfolio-ds.xml" file for below data source
- -->
- <config-property name="SourceJNDIName" type="java.lang.String">java:PortfolioDS</config-property>
-
- <max-pool-size>20</max-pool-size>
- </no-tx-connection-factory>
-
-</connection-factories>
\ No newline at end of file
Copied: trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connection-ds.xml (from rev 2101, trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connector-ds.xml)
===================================================================
--- trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connection-ds.xml (rev 0)
+++ trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connection-ds.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<connection-factories>
+
+ <no-tx-connection-factory>
+ <jndi-name>marketdata-text-connection</jndi-name>
+ <rar-name>connector-text-${project.version}.rar</rar-name>
+ <connection-definition>javax.resource.cci.ConnectionFactory</connection-definition>
+ <!--
+ All the available properties for this connector are defined inside the "ra.xml" defined inside the rar
+ file mentioned above.
+ -->
+
+ <config-property name="XaCapable" type="java.lang.Boolean">false</config-property>
+
+ <config-property name="DescriptorFile" type="java.lang.String">${jboss.server.home.dir}/teiid-examples/portfolio/marketdata-def.txt</config-property>
+
+ <max-pool-size>20</max-pool-size>
+
+ </no-tx-connection-factory>
+
+</connection-factories>
\ No newline at end of file
Property changes on: trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connection-ds.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted: trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connector-ds.xml
===================================================================
--- trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connector-ds.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/build/kits/jboss-container/teiid-examples/portfolio/text-connector-ds.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<connection-factories>
-
- <no-tx-connection-factory>
- <jndi-name>text-connector</jndi-name>
- <rar-name>connector-text-${project.version}.rar</rar-name>
- <connection-definition>org.teiid.connector.api.Connector</connection-definition>
-
- <!--
- All the available properties for this connector are defined inside the "ra.xml" defined inside the rar
- file mentioned above.
- -->
-
- <config-property name="XaCapable" type="java.lang.Boolean">false</config-property>
-
- <config-property name="DescriptorFile" type="java.lang.String">${jboss.server.home.dir}/teiid-examples/portfolio/marketdata-def.txt</config-property>
-
- <max-pool-size>20</max-pool-size>
-
- </no-tx-connection-factory>
-
-</connection-factories>
\ No newline at end of file
Modified: trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorMetaData.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorMetaData.java 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorMetaData.java 2010-05-10 01:46:37 UTC (rev 2108)
@@ -27,18 +27,17 @@
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
import org.jboss.managed.api.annotation.ManagementComponent;
import org.jboss.managed.api.annotation.ManagementObject;
import org.jboss.managed.api.annotation.ManagementObjectID;
import org.jboss.managed.api.annotation.ManagementProperties;
import org.jboss.managed.api.annotation.ManagementProperty;
+import org.jboss.managed.api.annotation.ManagementPropertyFactory;
import org.teiid.adminapi.Translator;
@ManagementObject(componentType=@ManagementComponent(type="teiid",subtype="translator"), properties=ManagementProperties.EXPLICIT)
@XmlAccessorType(XmlAccessType.NONE)
-@XmlRootElement(name = "translator")
public class TranslatorMetaData extends AdminObjectImpl implements Translator, Serializable {
private static final long serialVersionUID = 1680003620274793056L;
@@ -49,6 +48,7 @@
public static final String MAX_RESULT_ROWS = "max-result-rows"; //$NON-NLS-1$
public static final String XA_CAPABLE = "xa-capable"; //$NON-NLS-1$
public static final String OVERRIDE_CAPABILITIES_FILE = "override-capabilities-file"; //$NON-NLS-1$
+ public static final String NAME = "name"; //$NON-NLS-1$
// objects are used to keep the jaxb putting verbose xml elements when they are not defined.
private String executionFactoryClass;
@@ -66,6 +66,11 @@
return super.getName();
}
+ @XmlElement(name = NAME)
+ public void setName(String name) {
+ super.setName(name);
+ }
+
@Override
@ManagementProperty(name=EXECUTION_FACTORY_CLASS, description="Connector Class", mandatory = true)
public String getExecutionFactoryClass() {
@@ -145,7 +150,8 @@
@Override
@XmlElement(name = "translator-property", type = PropertyMetadata.class)
- @ManagementProperty(description = "Translator Properties", managed=true)
+ @ManagementProperty(name="translator-property", description = "Translator Properties", managed=true)
+ @ManagementPropertyFactory(TranslatorPropertyFactory.class)
public List<PropertyMetadata> getJAXBProperties(){
return super.getJAXBProperties();
}
Added: trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorPropertyFactory.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorPropertyFactory.java (rev 0)
+++ trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorPropertyFactory.java 2010-05-10 01:46:37 UTC (rev 2108)
@@ -0,0 +1,109 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This 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 software 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.teiid.adminapi.impl;
+
+import java.io.ObjectStreamException;
+import java.io.Serializable;
+
+import org.jboss.beans.info.spi.BeanInfo;
+import org.jboss.beans.info.spi.PropertyInfo;
+import org.jboss.managed.api.Fields;
+import org.jboss.managed.api.ManagedObject;
+import org.jboss.managed.api.factory.ManagedObjectFactory;
+import org.jboss.managed.plugins.ManagedPropertyImpl;
+import org.jboss.managed.spi.factory.InstanceClassFactory;
+import org.jboss.metatype.api.types.MapCompositeMetaType;
+import org.jboss.metatype.api.types.MetaType;
+import org.jboss.metatype.api.types.SimpleMetaType;
+import org.jboss.metatype.api.values.MetaValue;
+
+
+public class TranslatorPropertyFactory extends ManagedPropertyImpl {
+ private ManagedObjectFactory moFactory;
+ private MapCompositeMetaType type;
+
+ public TranslatorPropertyFactory(String s) {
+ super(s);
+ }
+
+ public TranslatorPropertyFactory(Fields fields) {
+ super(fields);
+ type = new MapCompositeMetaType(SimpleMetaType.STRING);
+ setField(Fields.META_TYPE, null);
+ }
+
+ public TranslatorPropertyFactory(ManagedObject managedObject, Fields fields) {
+ super(managedObject, fields);
+ type = new MapCompositeMetaType(SimpleMetaType.STRING);
+ setField(Fields.META_TYPE, null);
+ }
+
+ public MetaType getMetaType() {
+ return type;
+ }
+
+ public void setField(String fieldName, Serializable value) {
+ if (Fields.META_TYPE.equals(fieldName))
+ value = type;
+ super.setField(fieldName, value);
+ }
+
+ /**
+ * Write the value back to the attachment if there is a PropertyInfo in the
+ * Fields.PROPERTY_INFO field.
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public void setValue(MetaValue value) {
+ super.setValue(value);
+
+ PropertyInfo propertyInfo = getField(Fields.PROPERTY_INFO,PropertyInfo.class);
+ if (propertyInfo != null) {
+ Object attachment = getManagedObject().getAttachment();
+ if (attachment != null) {
+ MetaValue metaValue = value;
+ InstanceClassFactory icf = getMOFactory().getInstanceClassFactory(attachment.getClass());
+ BeanInfo beanInfo = propertyInfo.getBeanInfo();
+ icf.setValue(beanInfo, this, attachment, metaValue);
+ }
+ }
+ }
+
+ private ManagedObjectFactory getMOFactory() {
+ if (moFactory == null)
+ moFactory = ManagedObjectFactory.getInstance();
+ return moFactory;
+ }
+
+ /**
+ * Expose only plain ManangedPropertyImpl.
+ *
+ * @return simpler ManagedPropertyImpl
+ * @throws java.io.ObjectStreamException
+ * for any error
+ */
+ private Object writeReplace() throws ObjectStreamException {
+ ManagedPropertyImpl managedProperty = new ManagedPropertyImpl(getManagedObject(), getFields());
+ managedProperty.setTargetManagedObject(getTargetManagedObject());
+ return managedProperty;
+ }
+}
Property changes on: trunk/client/src/main/java/org/teiid/adminapi/impl/TranslatorPropertyFactory.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted: trunk/client/src/test/java/org/teiid/adminapi/impl/TestTranslatorMetadata.java
===================================================================
--- trunk/client/src/test/java/org/teiid/adminapi/impl/TestTranslatorMetadata.java 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/client/src/test/java/org/teiid/adminapi/impl/TestTranslatorMetadata.java 2010-05-10 01:46:37 UTC (rev 2108)
@@ -1,52 +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 org.teiid.adminapi.impl;
-
-import java.io.StringWriter;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public class TestTranslatorMetadata {
-
- @Test
- public void testFormat() throws Exception {
- TranslatorMetaData tm = new TranslatorMetaData();
-
- tm.setExecutionFactoryClass("org.teiid.resource.adapter.jdbc.JDBCExecutionFactory");
- tm.setXaCapable(true);
- tm.setName("Oracle");
- tm.addProperty("ExtensionTranslationClassName", "org.teiid.translator.jdbc.oracle.OracleSQLTranslator");
-
- JAXBContext jc = JAXBContext.newInstance(new Class<?>[] {TranslatorMetaData.class});
- Marshaller marshell = jc.createMarshaller();
- marshell.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,new Boolean(true));
-
- StringWriter sw = new StringWriter();
- marshell.marshal(tm, sw);
-
- System.out.println(sw.toString());
- }
-}
Modified: trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPExecutionFactory.java
===================================================================
--- trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPExecutionFactory.java 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/connectors/translator-ldap/src/main/java/org/teiid/resource/adapter/ldap/LDAPExecutionFactory.java 2010-05-10 01:46:37 UTC (rev 2108)
@@ -65,8 +65,8 @@
return restrictToObjectClass;
}
- public void setRestrictToObjectClass(Boolean restrictToObjectClass) {
- this.restrictToObjectClass = restrictToObjectClass.booleanValue();
+ public void setRestrictToObjectClass(boolean restrictToObjectClass) {
+ this.restrictToObjectClass = restrictToObjectClass;
}
@TranslatorProperty(name="SearchDefaultScope", display="Default Search Scope", description="Default Scope for LDAP Searches", allowed={"OBJECT_SCOPE","ONELEVEL_SCOPE","SUBTREE_SCOPE"},required=true, defaultValue="SUBTREE_SCOPE")
Modified: trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java 2010-05-10 01:46:37 UTC (rev 2108)
@@ -279,50 +279,44 @@
for (MetaValue value : metaValues) {
GenericValueSupport genValueSupport = (GenericValueSupport) value;
- ManagedObjectImpl managedObject = (ManagedObjectImpl) genValueSupport
- .getValue();
+ ManagedObjectImpl managedObject = (ManagedObjectImpl) genValueSupport.getValue();
Boolean isSource = Boolean.TRUE;
try {
- isSource = ProfileServiceUtil.booleanValue(managedObject
- .getProperty("source").getValue());
+ isSource = ProfileServiceUtil.booleanValue(managedObject.getProperty("source").getValue());
} catch (Exception e) {
LOG.error(e.getMessage());
}
Boolean supportMultiSource = Boolean.TRUE;
try {
- supportMultiSource = ProfileServiceUtil
- .booleanValue(managedObject.getProperty(
- "supportsMultiSourceBindings").getValue());
+ supportMultiSource = ProfileServiceUtil.booleanValue(managedObject.getProperty("supportsMultiSourceBindings").getValue());
} catch (Exception e) {
LOG.error(e.getMessage());
}
String modelName = managedObject.getName();
- ManagedProperty connectorBinding = managedObject
- .getProperty("sourceMappings");
+ ManagedProperty connectorBinding = managedObject.getProperty("sourceMappings");
Collection<Map<String, String>> sourceList = new ArrayList<Map<String, String>>();
+
getSourceMappingValue(connectorBinding.getValue(), sourceList);
- String visibility = ((SimpleValueSupport) managedObject
- .getProperty("visible").getValue()).getValue().toString();
- String type = ((EnumValueSupport) managedObject.getProperty(
- "modelType").getValue()).getValue().toString();
+
+ String visibility = ((SimpleValueSupport) managedObject.getProperty("visible").getValue()).getValue().toString();
+ String type = ((EnumValueSupport) managedObject.getProperty("modelType").getValue()).getValue().toString();
// Get any model errors/warnings
MetaValue errors = managedObject.getProperty("errors").getValue();
if (errors != null) {
CollectionValueSupport errorValueSupport = (CollectionValueSupport) errors;
MetaValue[] errorArray = errorValueSupport.getElements();
+
for (MetaValue error : errorArray) {
GenericValueSupport errorGenValueSupport = (GenericValueSupport) error;
- ManagedObject errorMo = (ManagedObject) errorGenValueSupport
- .getValue();
- String severity = ((SimpleValue) errorMo.getProperty(
- "severity").getValue()).getValue().toString();
- String message = ((SimpleValue) errorMo
- .getProperty("value").getValue()).getValue()
- .toString();
+
+ ManagedObject errorMo = (ManagedObject) errorGenValueSupport.getValue();
+ String severity = ((SimpleValue) errorMo.getProperty("severity").getValue()).getValue().toString();
+ String message = ((SimpleValue) errorMo.getProperty("value").getValue()).getValue().toString();
+
PropertyMap errorMap = new PropertyMap("errorMap",
new PropertySimple("severity", severity),
new PropertySimple("message", message));
@@ -335,21 +329,26 @@
if (isSource) {
String sourceName = (String) sourceMap.get("name");
String jndiName = (String) sourceMap.get("jndiName");
+ String translatorName = (String) sourceMap.get("translatorName");
PropertyMap multiSourceModel = null;
PropertyMap multiSourceModel2 = null;
PropertyMap model = null;
if (supportMultiSource){
//TODO need to loop through multisource models
- multiSourceModel = new PropertyMap("model",
+ multiSourceModel = new PropertyMap("model",
new PropertySimple("name", modelName),
new PropertySimple("sourceName", sourceName),
- new PropertySimple("jndiName", jndiName));
- multiSourceModelsList.add(multiSourceModel);
+ new PropertySimple("jndiName", jndiName),
+ new PropertySimple("translatorName", translatorName));
+
+ multiSourceModelsList.add(multiSourceModel);
+
model = new PropertyMap("model",
new PropertySimple("name", modelName),
new PropertySimple("sourceName", "See below"),
new PropertySimple("jndiName", "See below"),
+ new PropertySimple("translatorName", "See below"),
new PropertySimple("visibility", visibility),
new PropertySimple("supportsMultiSource",
true));
@@ -357,13 +356,15 @@
multiSourceModel = new PropertyMap("model",
new PropertySimple("name", modelName),
new PropertySimple("sourceName", sourceName),
- new PropertySimple("jndiName", jndiName));
+ new PropertySimple("jndiName", jndiName),
+ new PropertySimple("translatorName", translatorName));
multiSourceModelsList.add(multiSourceModel);
}else{
model = new PropertyMap("model",
new PropertySimple("name", modelName),
new PropertySimple("sourceName", sourceName),
new PropertySimple("jndiName", jndiName),
+ new PropertySimple("translatorName", translatorName),
new PropertySimple("visibility", visibility),
new PropertySimple("supportsMultiSource",
supportMultiSource));
@@ -397,14 +398,14 @@
GenericValueSupport genValue = ((GenericValueSupport) value);
ManagedObject mo = (ManagedObject) genValue.getValue();
String sourceName = mo.getName();
- String jndi = ((SimpleValue) mo.getProperty("jndiName")
- .getValue()).getValue().toString();
+ String jndi = ((SimpleValue) mo.getProperty("connectionJndiName").getValue()).getValue().toString();
+ String translatorName = ((SimpleValue) mo.getProperty("translatorName").getValue()).getValue().toString();
map.put("name", sourceName);
map.put("jndiName", jndi);
+ map.put("translatorName", translatorName);
}
} else {
- throw new IllegalStateException(pValue
- + " is not a Collection type");
+ throw new IllegalStateException(pValue+ " is not a Collection type");
}
}
Modified: trunk/console/src/main/java/org/teiid/rhq/plugin/VDBDiscoveryComponent.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/VDBDiscoveryComponent.java 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/VDBDiscoveryComponent.java 2010-05-10 01:46:37 UTC (rev 2108)
@@ -170,22 +170,17 @@
Boolean supportMultiSource = Boolean.TRUE;
try {
- supportMultiSource = ProfileServiceUtil
- .booleanValue(managedObject.getProperty(
- "supportsMultiSourceBindings").getValue());
+ supportMultiSource = ProfileServiceUtil.booleanValue(managedObject.getProperty("supportsMultiSourceBindings").getValue());
} catch (Exception e) {
throw e;
}
String modelName = managedObject.getName();
- ManagedProperty connectorBinding = managedObject
- .getProperty("sourceMappings");
+ ManagedProperty connectorBinding = managedObject.getProperty("sourceMappings");
Collection<Map<String, String>> sourceList = new ArrayList<Map<String, String>>();
getSourceMappingValue(connectorBinding.getValue(), sourceList);
- String visibility = ((SimpleValueSupport) managedObject
- .getProperty("visible").getValue()).getValue().toString();
- String type = ((EnumValueSupport) managedObject.getProperty(
- "modelType").getValue()).getValue().toString();
+ String visibility = ((SimpleValueSupport) managedObject.getProperty("visible").getValue()).getValue().toString();
+ String type = ((EnumValueSupport) managedObject.getProperty("modelType").getValue()).getValue().toString();
// Get any model errors/warnings
MetaValue errors = managedObject.getProperty("errors").getValue();
@@ -194,13 +189,9 @@
MetaValue[] errorArray = errorValueSupport.getElements();
for (MetaValue error : errorArray) {
GenericValueSupport errorGenValueSupport = (GenericValueSupport) error;
- ManagedObject errorMo = (ManagedObject) errorGenValueSupport
- .getValue();
- String severity = ((SimpleValue) errorMo.getProperty(
- "severity").getValue()).getValue().toString();
- String message = ((SimpleValue) errorMo
- .getProperty("value").getValue()).getValue()
- .toString();
+ ManagedObject errorMo = (ManagedObject) errorGenValueSupport.getValue();
+ String severity = ((SimpleValue) errorMo.getProperty("severity").getValue()).getValue().toString();
+ String message = ((SimpleValue) errorMo.getProperty("value").getValue()).getValue().toString();
PropertyMap errorMap = new PropertyMap("errorMap",
new PropertySimple("severity", severity),
new PropertySimple("message", message));
@@ -211,16 +202,17 @@
for (Map<String, String> sourceMap : sourceList) {
if (isSource) {
- String sourceName = (String) sourceMap.get("name");
- String jndiName = (String) sourceMap.get("jndiName");
+ String sourceName = sourceMap.get("name");
+ String jndiName = sourceMap.get("jndiName");
+ String translatorName = sourceMap.get("translatorName");
PropertyMap model = new PropertyMap("model",
new PropertySimple("name", modelName),
new PropertySimple("sourceName", sourceName),
new PropertySimple("jndiName", jndiName),
+ new PropertySimple("translatorName", translatorName),
new PropertySimple("visibility", visibility),
- new PropertySimple("supportsMultiSource",
- supportMultiSource));
+ new PropertySimple("supportsMultiSource",supportMultiSource));
model.getSimple("jndiName").setOverride(false);
sourceModelsList.add(model);
@@ -252,14 +244,14 @@
GenericValueSupport genValue = ((GenericValueSupport) value);
ManagedObject mo = (ManagedObject) genValue.getValue();
String sourceName = mo.getName();
- String jndi = ((SimpleValue) mo.getProperty("jndiName")
- .getValue()).getValue().toString();
+ String jndi = ((SimpleValue) mo.getProperty("connectionJndiName").getValue()).getValue().toString();
+ String translatorName = ((SimpleValue) mo.getProperty("translatorName").getValue()).getValue().toString();
map.put("name", sourceName);
map.put("jndiName", jndi);
+ map.put("translatorName", translatorName);
}
} else {
- throw new IllegalStateException(pValue
- + " is not a Collection type");
+ throw new IllegalStateException(pValue+ " is not a Collection type");
}
}
Modified: trunk/console/src/main/resources/META-INF/rhq-plugin.xml
===================================================================
--- trunk/console/src/main/resources/META-INF/rhq-plugin.xml 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/console/src/main/resources/META-INF/rhq-plugin.xml 2010-05-10 01:46:37 UTC (rev 2108)
@@ -449,8 +449,11 @@
<c:simple-property name="sourceName"
displayName="Source Name" description="Source name for this model"
required="false" readOnly="true" />
+ <c:simple-property name="translatorName"
+ displayName="Translator Name" description="Name of the translator"
+ required="true" />
<c:simple-property name="jndiName"
- displayName="Connector Binding JNDI Name" description="JNDI name for this connector binding"
+ displayName="Connection JNDI Name" description="JNDI name for this connection"
required="false" />
<c:simple-property name="visibility"
displayName="Visible" description="Visibility of the model"
Modified: trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/Admin.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/Admin.java 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/Admin.java 2010-05-10 01:46:37 UTC (rev 2108)
@@ -192,6 +192,8 @@
throw new AdminProcessingException(IntegrationPlugin.Util.getString("translator_template_not_found", typeName)); //$NON-NLS-1$
}
+ properties.setProperty("name", deploymentName); //$NON-NLS-1$
+
// template properties specific to the template
Map<String, ManagedProperty> propertyMap = info.getProperties();
Modified: trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/AdminObjectBuilder.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/AdminObjectBuilder.java 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/jboss-integration/src/main/java/org/teiid/adminapi/jboss/AdminObjectBuilder.java 2010-05-10 01:46:37 UTC (rev 2108)
@@ -52,7 +52,7 @@
if (value != null) {
MetaType type = value.getMetaType();
if (type.isSimple()) {
- PropertiesUtils.setBeanProperty(t, mp.getName(), ((SimpleValue)value).getValue());
+ PropertiesUtils.setBeanProperty(t, mp.getMappedName(), ((SimpleValue)value).getValue());
}
else if (type.isProperties()) {
Added: trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/TranslatorMetadataGroupComponentMapper.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/TranslatorMetadataGroupComponentMapper.java (rev 0)
+++ trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/TranslatorMetadataGroupComponentMapper.java 2010-05-10 01:46:37 UTC (rev 2108)
@@ -0,0 +1,85 @@
+/*
+ * 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 org.teiid.jboss.deployers;
+
+import org.jboss.managed.api.ManagedObject;
+import org.jboss.system.server.profileservice.persistence.PersistenceFactory;
+import org.jboss.system.server.profileservice.persistence.component.AbstractComponentMapper;
+import org.jboss.system.server.profileservice.persistence.xml.PersistedComponent;
+import org.teiid.adminapi.impl.TranslatorMetaData;
+import org.teiid.deployers.TranslatorMetaDataGroup;
+
+/**
+ * This class used in the Teiid deployer -jboss-beans.xml file. This used to write the persisted file for
+ * a translator
+ */
+public class TranslatorMetadataGroupComponentMapper extends AbstractComponentMapper {
+
+ public TranslatorMetadataGroupComponentMapper(PersistenceFactory persistenceFactory) {
+ super(persistenceFactory);
+ }
+
+ @Override
+ protected ManagedObject getComponent(Object attachment, PersistedComponent component, boolean create) {
+ TranslatorMetaDataGroup deployment = (TranslatorMetaDataGroup) attachment;
+ TranslatorMetaData data = null;
+ if (deployment.getTranslators() != null && !deployment.getTranslators().isEmpty()) {
+ for (TranslatorMetaData md : deployment.getTranslators()) {
+ if (md.getName().equals(component.getOriginalName())) {
+ data = md;
+ break;
+ }
+ }
+ }
+ if (data == null && create) {
+ // TODO create new attachment
+ }
+ if (data == null) {
+ throw new IllegalStateException("could not find deployment "+ component.getOriginalName()); //$NON-NLS-1$
+ }
+ return getMOF().initManagedObject(data, null);
+ }
+
+ @Override
+ protected void removeComponent(Object attachment,PersistedComponent component) {
+ TranslatorMetaDataGroup deployment = (TranslatorMetaDataGroup) attachment;
+ if (deployment.getTranslators() != null && !deployment.getTranslators().isEmpty()) {
+ for (TranslatorMetaData data : deployment.getTranslators()) {
+ if (!data.getName().equals(component.getOriginalName())) {
+ deployment.addTranslator(data);
+ }
+ }
+ }
+ }
+
+ @Override
+ protected void setComponentName(PersistedComponent component, ManagedObject mo) {
+ TranslatorMetaData metadata = (TranslatorMetaData)mo.getAttachment();
+ component.setName(metadata.getName());
+ }
+
+ @Override
+ public String getType() {
+ return TranslatorMetaDataGroup.class.getName();
+ }
+
+}
Property changes on: trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/TranslatorMetadataGroupComponentMapper.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/runtime/src/main/java/org/teiid/deployers/ManagedPropertyUtil.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/ManagedPropertyUtil.java 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/runtime/src/main/java/org/teiid/deployers/ManagedPropertyUtil.java 2010-05-10 01:46:37 UTC (rev 2108)
@@ -27,6 +27,7 @@
import org.jboss.managed.api.ManagedProperty;
import org.jboss.managed.plugins.DefaultFieldsImpl;
import org.jboss.managed.plugins.ManagedPropertyImpl;
+import org.jboss.metatype.api.types.MetaType;
import org.jboss.metatype.api.types.SimpleMetaType;
import org.jboss.metatype.api.values.MetaValue;
import org.jboss.metatype.api.values.SimpleValueSupport;
@@ -48,7 +49,7 @@
}
public static ManagedProperty createProperty(String name,
- SimpleMetaType type, String displayName, String description,
+ MetaType type, String displayName, String description,
boolean mandatory, boolean readOnly, String defaultValue) {
DefaultFieldsImpl fields = new DefaultFieldsImpl(name);
Modified: trunk/runtime/src/main/java/org/teiid/deployers/TranslatorDeployer.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/TranslatorDeployer.java 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/runtime/src/main/java/org/teiid/deployers/TranslatorDeployer.java 2010-05-10 01:46:37 UTC (rev 2108)
@@ -45,39 +45,49 @@
/**
* Deployer for the Translator
*/
-public class TranslatorDeployer extends AbstractSimpleRealDeployer<TranslatorMetaData> {
+public class TranslatorDeployer extends AbstractSimpleRealDeployer<TranslatorMetaDataGroup> {
private TranslatorRepository translatorRepository;
private VDBStatusChecker vdbChecker;
public TranslatorDeployer() {
- super(TranslatorMetaData.class);
+ super(TranslatorMetaDataGroup.class);
}
@Override
- public void deploy(DeploymentUnit unit, TranslatorMetaData data) throws DeploymentException {
+ public void deploy(DeploymentUnit unit, TranslatorMetaDataGroup group) throws DeploymentException {
- String translatorName = data.getName();
-
- String executionFactoryClass = data.getExecutionFactoryClass();
- if (executionFactoryClass != null) {
- ExecutionFactory connector = buildTranslator(executionFactoryClass, data);
- this.translatorRepository.addTranslator(translatorName, connector);
- LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("translator_started", translatorName)); //$NON-NLS-1$
- this.vdbChecker.translatorAdded(translatorName);
- }
+ for (TranslatorMetaData data:group.getTranslators()) {
+ String translatorName = data.getName();
+ if (translatorName == null) {
+ throw new DeploymentException(RuntimePlugin.Util.getString("name_not_found", unit.getName())); //$NON-NLS-1$
+ }
+
+ String executionFactoryClass = data.getExecutionFactoryClass();
+ if (executionFactoryClass != null) {
+ ExecutionFactory connector = buildTranslator(executionFactoryClass, data);
+ this.translatorRepository.addTranslator(translatorName, connector);
+ LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("translator_started", translatorName)); //$NON-NLS-1$
+ this.vdbChecker.translatorAdded(translatorName);
+ }
+ else {
+ throw new DeploymentException(RuntimePlugin.Util.getString("executionfactory_not_found", unit.getName())); //$NON-NLS-1$
+ }
+ }
}
@Override
- public void undeploy(DeploymentUnit unit, TranslatorMetaData data) {
- super.undeploy(unit, data);
+ public void undeploy(DeploymentUnit unit, TranslatorMetaDataGroup group) {
+ super.undeploy(unit, group);
+
+ for (TranslatorMetaData data:group.getTranslators()) {
- String translatorName = data.getName();
-
- if (this.translatorRepository != null) {
- this.translatorRepository.removeTranslator(translatorName);
- LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("translator_stopped", translatorName)); //$NON-NLS-1$
- this.vdbChecker.translatorRemoved(translatorName);
+ String translatorName = data.getName();
+ if (this.translatorRepository != null) {
+ this.translatorRepository.removeTranslator(translatorName);
+ LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("translator_stopped", translatorName)); //$NON-NLS-1$
+ this.vdbChecker.translatorRemoved(translatorName);
+ }
}
}
@@ -136,7 +146,7 @@
if (setterMethod == null) {
throw new DeploymentException(RuntimePlugin.Util.getString("no_set_method", setter, tp.name())); //$NON-NLS-1$
}
- setterMethod.invoke(ef, value);
+ setterMethod.invoke(ef, convert(value, method.getReturnType()));
}
}
}
@@ -148,4 +158,33 @@
public void setVDBStatusChecker(VDBStatusChecker checker) {
this.vdbChecker = checker;
}
+
+ Object convert(Object value, Class type) {
+ if(value.getClass() == type) {
+ return value;
+ }
+
+ if (value instanceof String) {
+ String str = (String)value;
+ if (type == int.class || type == Integer.class) {
+ return Integer.parseInt(str);
+ }
+ else if (type == boolean.class || type == Boolean.class) {
+ return Boolean.parseBoolean(str);
+ }
+ else if (type == long.class || type == Long.class) {
+ return Long.parseLong(str);
+ }
+ else if (type == byte.class || type == Byte.class) {
+ return Byte.parseByte(str);
+ }
+ else if (type == short.class || type == Short.class) {
+ return Short.parseShort(str);
+ }
+ else if (type == float.class || type == Float.class) {
+ return Float.parseFloat(str);
+ }
+ }
+ return value;
+ }
}
Added: trunk/runtime/src/main/java/org/teiid/deployers/TranslatorMetaDataGroup.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/TranslatorMetaDataGroup.java (rev 0)
+++ trunk/runtime/src/main/java/org/teiid/deployers/TranslatorMetaDataGroup.java 2010-05-10 01:46:37 UTC (rev 2108)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This 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 software 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.teiid.deployers;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.jboss.managed.api.annotation.ManagementObject;
+import org.jboss.managed.api.annotation.ManagementProperty;
+import org.teiid.adminapi.impl.TranslatorMetaData;
+
+@ManagementObject
+@XmlRootElement(name = "translator-factory")
+public class TranslatorMetaDataGroup {
+
+ @XmlElement(name = "translator", type = TranslatorMetaData.class)
+ protected List<TranslatorMetaData> translators = new ArrayList<TranslatorMetaData>();
+
+ @ManagementProperty(description="translators", managed=true)
+ public List<TranslatorMetaData> getTranslators(){
+ return this.translators;
+ }
+
+ public void addTranslator(TranslatorMetaData data) {
+ this.translators.add(data);
+ }
+}
Property changes on: trunk/runtime/src/main/java/org/teiid/deployers/TranslatorMetaDataGroup.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/runtime/src/main/java/org/teiid/deployers/TranslatorParserDeployer.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/TranslatorParserDeployer.java 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/runtime/src/main/java/org/teiid/deployers/TranslatorParserDeployer.java 2010-05-10 01:46:37 UTC (rev 2108)
@@ -22,34 +22,45 @@
package org.teiid.deployers;
import java.io.InputStream;
+import java.util.Map;
+import java.util.Set;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.Unmarshaller;
import javax.xml.transform.sax.SAXSource;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.managed.ManagedObjectCreator;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer;
import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.managed.api.ManagedObject;
+import org.jboss.managed.api.ManagedProperty;
+import org.jboss.metatype.api.types.MetaType;
+import org.jboss.metatype.api.values.CollectionValue;
+import org.jboss.metatype.api.values.GenericValue;
+import org.jboss.metatype.api.values.MetaValue;
import org.jboss.util.xml.JBossEntityResolver;
import org.jboss.virtual.VirtualFile;
-import org.teiid.adminapi.impl.TranslatorMetaData;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
-public class TranslatorParserDeployer extends AbstractVFSParsingDeployer<TranslatorMetaData> {
+public class TranslatorParserDeployer extends AbstractVFSParsingDeployer<TranslatorMetaDataGroup> implements ManagedObjectCreator {
public static final String TRANSLATOR_SUFFIX = "-translator.xml"; //$NON-NLS-1$
public TranslatorParserDeployer() {
- super(TranslatorMetaData.class);
+ super(TranslatorMetaDataGroup.class);
setIncludeDeploymentFile(true);
setSuffix(TRANSLATOR_SUFFIX);
+ setBuildManagedObject(true);
}
@Override
- protected TranslatorMetaData parse(VFSDeploymentUnit unit, VirtualFile file, TranslatorMetaData root) throws Exception {
- JAXBContext context = JAXBContext.newInstance(new Class[] {TranslatorMetaData.class});
+ protected TranslatorMetaDataGroup parse(VFSDeploymentUnit unit, VirtualFile file, TranslatorMetaDataGroup root) throws Exception {
+ JAXBContext context = JAXBContext.newInstance(new Class[] {TranslatorMetaDataGroup.class});
Unmarshaller um = context.createUnmarshaller();
InputStream is = file.openStream();
@@ -59,9 +70,8 @@
XMLReader reader = XMLReaderFactory.createXMLReader();
reader.setEntityResolver(new JBossEntityResolver());
SAXSource source = new SAXSource(reader, input);
- JAXBElement<TranslatorMetaData> elem = um.unmarshal(source, TranslatorMetaData.class);
- TranslatorMetaData deployment = elem.getValue();
- deployment.setName(file.getName().substring(0, (file.getName().length()-TRANSLATOR_SUFFIX.length())));
+ JAXBElement<TranslatorMetaDataGroup> elem = um.unmarshal(source, TranslatorMetaDataGroup.class);
+ TranslatorMetaDataGroup deployment = elem.getValue();
return deployment;
}
finally {
@@ -69,4 +79,23 @@
is.close();
}
}
+
+ public void build(DeploymentUnit unit, Set<String> outputs, Map<String, ManagedObject> managedObjects) throws DeploymentException {
+ if (isBuildManagedObject()) {
+ ManagedObject mo = managedObjects.get(TranslatorMetaDataGroup.class.getName());
+ if (mo != null) {
+ ManagedProperty translators = mo.getProperty("translators"); //$NON-NLS-1$
+ MetaType propType = translators.getMetaType();
+ if (propType.isCollection()) {
+ CollectionValue value = (CollectionValue) translators.getValue();
+ if (value != null) {
+ for (MetaValue element:value.getElements()) {
+ ManagedObject translator = (ManagedObject)((GenericValue)element).getValue();
+ managedObjects.put(translator.getName(), translator);
+ }
+ }
+ }
+ }
+ }
+ }
}
Modified: trunk/runtime/src/main/java/org/teiid/templates/TranslatorDeploymentTemplate.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/templates/TranslatorDeploymentTemplate.java 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/runtime/src/main/java/org/teiid/templates/TranslatorDeploymentTemplate.java 2010-05-10 01:46:37 UTC (rev 2108)
@@ -27,6 +27,7 @@
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
+import org.jboss.deployers.spi.DeploymentException;
import org.jboss.deployers.spi.management.DeploymentTemplate;
import org.jboss.managed.api.DeploymentTemplateInfo;
import org.jboss.managed.api.ManagedObject;
@@ -35,7 +36,9 @@
import org.jboss.virtual.VFS;
import org.jboss.virtual.VirtualFile;
import org.teiid.adminapi.impl.TranslatorMetaData;
+import org.teiid.deployers.TranslatorMetaDataGroup;
import org.teiid.deployers.TranslatorParserDeployer;
+import org.teiid.runtime.RuntimePlugin;
/**
* Translator template writer and deployer
@@ -63,6 +66,8 @@
private void writeTemplate(File dsXml, DeploymentTemplateInfo values) throws Exception {
+ TranslatorMetaDataGroup group = new TranslatorMetaDataGroup();
+
// The management framework, will update the attachment the managed property value changes.
// that way the translator is configured.
TranslatorMetaData translator = new TranslatorMetaData();
@@ -75,11 +80,17 @@
if (mp.getValue() != null) {
dsProp.setValue(mp.getValue());
}
+
+ if(mp.isMandatory() && mp.getValue() == null && mp.getDefaultValue() == null) {
+ throw new DeploymentException(RuntimePlugin.Util.getString("required_property_not_exists", mp.getName())); //$NON-NLS-1$
+ }
}
- }
+ }
+
+ group.addTranslator(translator);
// Now use JAXB and write the file.
- Class[] classes = { TranslatorMetaData.class };
+ Class[] classes = { TranslatorMetaDataGroup.class };
JAXBContext context = JAXBContext.newInstance(classes);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,new Boolean(true));
@@ -87,7 +98,7 @@
FileWriter fw = null;
try {
fw = new FileWriter(dsXml);
- marshaller.marshal(translator, fw);
+ marshaller.marshal(group, fw);
} finally {
if (fw != null) {
fw.close();
Modified: trunk/runtime/src/main/java/org/teiid/templates/TranslatorTemplateInfo.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/templates/TranslatorTemplateInfo.java 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/runtime/src/main/java/org/teiid/templates/TranslatorTemplateInfo.java 2010-05-10 01:46:37 UTC (rev 2108)
@@ -25,6 +25,7 @@
import org.jboss.managed.api.ManagedProperty;
import org.jboss.managed.plugins.BasicDeploymentTemplateInfo;
+import org.jboss.metatype.api.types.MapCompositeMetaType;
import org.jboss.metatype.api.types.SimpleMetaType;
import org.teiid.deployers.ManagedPropertyUtil;
import org.teiid.resource.cci.TranslatorProperty;
@@ -38,6 +39,9 @@
private static final long serialVersionUID = 9066758787789280783L;
static final String TEMPLATE_NAME = "template-name"; //$NON-NLS-1$
+ static final String EXECUTION_FACTORY_NAME = "execution-factory-class"; //$NON-NLS-1$
+ static final String NAME = "name"; //$NON-NLS-1$
+ static final String TRANSLATOR_PROPERTY = "translator-property"; //$NON-NLS-1$
public TranslatorTemplateInfo(String name, String description, Map<String, ManagedProperty> properties) {
@@ -59,6 +63,10 @@
private void populate() {
addProperty(buildTemplateProperty(getName()));
+
+ addProperty(ManagedPropertyUtil.createProperty(EXECUTION_FACTORY_NAME,SimpleMetaType.STRING, "Execution Factory Class name", "The translator's execution factory name", true, false, null));//$NON-NLS-1$ //$NON-NLS-2$
+ addProperty(ManagedPropertyUtil.createProperty(NAME,SimpleMetaType.STRING, "name", "Name of the Translator", true, false, null));//$NON-NLS-1$ //$NON-NLS-2$
+ addProperty(ManagedPropertyUtil.createProperty(TRANSLATOR_PROPERTY, new MapCompositeMetaType(SimpleMetaType.STRING), TRANSLATOR_PROPERTY, "Additional Translator properties", false, false, null)); //$NON-NLS-1$
}
static ManagedProperty buildTemplateProperty(String name) {
Modified: trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties
===================================================================
--- trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties 2010-05-10 01:46:37 UTC (rev 2108)
@@ -302,4 +302,7 @@
invalid_class={0} invalid type of class specified. Must be of type org.teiid.connector.api.Connector
class_not_found=Class {0} not found.
translator_stopped=Teiid translator "{0}" stopped
-no_set_method=No {0} method found for translator property {1}
\ No newline at end of file
+no_set_method=No {0} method found for translator property {1}
+required_property_not_exists=Required property "{0}" and its value not specified. Deployment is incomplete.
+name_not_found=Translator property "name" not defined for the deployment "{0}"
+executionfactory_not_found=Translator "execution-factory-class" property not defined for deployment "{0}"
\ No newline at end of file
Copied: trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorMetadata.java (from rev 2103, trunk/client/src/test/java/org/teiid/adminapi/impl/TestTranslatorMetadata.java)
===================================================================
--- trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorMetadata.java (rev 0)
+++ trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorMetadata.java 2010-05-10 01:46:37 UTC (rev 2108)
@@ -0,0 +1,72 @@
+/*
+ * 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 org.teiid.deployers;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.StringReader;
+import java.io.StringWriter;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.Unmarshaller;
+
+import org.junit.Test;
+import org.teiid.adminapi.impl.TranslatorMetaData;
+
+
+@SuppressWarnings("nls")
+public class TestTranslatorMetadata {
+
+ @Test
+ public void testFormat() throws Exception {
+
+ TranslatorMetaDataGroup group = new TranslatorMetaDataGroup();
+ TranslatorMetaData tm = new TranslatorMetaData();
+ group.translators.add(tm);
+
+
+ tm.setExecutionFactoryClass("org.teiid.resource.adapter.jdbc.JDBCExecutionFactory");
+ tm.setXaCapable(true);
+ tm.setName("Oracle");
+ tm.addProperty("ExtensionTranslationClassName", "org.teiid.translator.jdbc.oracle.OracleSQLTranslator");
+
+ JAXBContext jc = JAXBContext.newInstance(new Class<?>[] {TranslatorMetaDataGroup.class});
+ Marshaller marshell = jc.createMarshaller();
+ marshell.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,new Boolean(true));
+
+ StringWriter sw = new StringWriter();
+ marshell.marshal(group, sw);
+
+ System.out.println(sw.toString());
+
+ Unmarshaller un = jc.createUnmarshaller();
+ group = (TranslatorMetaDataGroup)un.unmarshal(new StringReader(sw.toString()));
+
+ tm = group.getTranslators().get(0);
+
+ assertEquals("Oracle", tm.getName());
+ assertEquals("org.teiid.resource.adapter.jdbc.JDBCExecutionFactory", tm.getExecutionFactoryClass());
+ assertEquals("org.teiid.translator.jdbc.oracle.OracleSQLTranslator", tm.getPropertyValue("ExtensionTranslationClassName"));
+
+ }
+}
Property changes on: trunk/runtime/src/test/java/org/teiid/deployers/TestTranslatorMetadata.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/test-integration/db/src/test/java/org/teiid/adminapi/jboss/TestConnectorBindings.java
===================================================================
--- trunk/test-integration/db/src/test/java/org/teiid/adminapi/jboss/TestConnectorBindings.java 2010-05-07 21:35:44 UTC (rev 2107)
+++ trunk/test-integration/db/src/test/java/org/teiid/adminapi/jboss/TestConnectorBindings.java 2010-05-10 01:46:37 UTC (rev 2108)
@@ -6,6 +6,7 @@
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertNull;
import static junit.framework.Assert.assertTrue;
+import static junit.framework.Assert.fail;
import java.io.File;
import java.io.FileInputStream;
@@ -16,6 +17,7 @@
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
+import java.util.Properties;
import java.util.Set;
import org.junit.After;
@@ -31,6 +33,7 @@
import org.teiid.adminapi.Request;
import org.teiid.adminapi.Session;
import org.teiid.adminapi.Transaction;
+import org.teiid.adminapi.Translator;
import org.teiid.adminapi.VDB;
import com.metamatrix.core.util.ObjectConverterUtil;
@@ -40,6 +43,7 @@
public class TestConnectorBindings extends BaseConnection {
static ServerDatasourceConnection ds;
static Admin admin;
+ private static final String VERSION = "-7.0.0-SNAPSHOT";
@Before
public void setUp() throws Exception {
@@ -201,10 +205,10 @@
}
@Test
- public void testConnectorTypeProperties() throws Exception {
- Collection<PropertyDefinition> defs = admin.getTranslatorTemplatePropertyDefinitions("connector-jdbc-xa-7.0.0-SNAPSHOT"); //$NON-NLS-1$
+ public void testTranslatorTemplateProperties() throws Exception {
+ Collection<PropertyDefinition> defs = admin.getTranslatorTemplatePropertyDefinitions("translator-jdbc"+VERSION); //$NON-NLS-1$
for (PropertyDefinition pd:defs) {
- System.out.println(pd.getName()+":"+pd.getPropertyTypeClassName());
+ System.out.println(pd.getName()+":"+pd.getPropertyTypeClassName()+":"+pd.getDefaultValue());
if (pd.getName().equals("ExtensionTranslationClassName")) { //$NON-NLS-1$
assertEquals("Extension SQL Translation Class", pd.getDisplayName()); //$NON-NLS-1$
assertEquals(false, pd.isAdvanced());
@@ -212,30 +216,27 @@
assertEquals(false, pd.isMasked());
assertEquals(true, pd.isModifiable());
- HashSet<String> values = new HashSet<String>();
- values.add("org.teiid.connector.jdbc.h2.H2Translator"); //$NON-NLS-1$
- values.add("org.teiid.connector.jdbc.sqlserver.SqlServerSQLTranslator"); //$NON-NLS-1$
- values.add("org.teiid.connector.jdbc.mysql.MySQL5Translator"); //$NON-NLS-1$
- values.add("org.teiid.connector.jdbc.derby.DerbySQLTranslator"); //$NON-NLS-1$
- values.add("org.teiid.connector.jdbc.postgresql.PostgreSQLTranslator"); //$NON-NLS-1$
- values.add("org.teiid.connector.jdbc.db2.DB2SQLTranslator"); //$NON-NLS-1$
- values.add("org.teiid.connector.jdbc.access.AccessSQLTranslator"); //$NON-NLS-1$
- values.add("org.teiid.connector.jdbc.mysql.MySQLTranslator"); //$NON-NLS-1$
- values.add("org.teiid.connector.jdbc.translator.Translator"); //$NON-NLS-1$
- values.add("org.teiid.connector.jdbc.oracle.OracleSQLTranslator"); //$NON-NLS-1$
- assertEquals(values, pd.getAllowedValues());
+ assertEquals(12, pd.getAllowedValues().size());
+ System.out.println(pd.getAllowedValues());
}
}
}
@Test
- public void testConnectorTypes() throws Exception {
+ public void testGetTemplate() throws Exception {
+ Translator translator = admin.getTranslator("oracle");
+ assertEquals("org.teiid.translator.jdbc.oracle.OracleSQLTranslator", translator.getPropertyValue("ExtensionTranslationClassName")); //$NON-NLS-1$
+ assertEquals(true, translator.isXaCapable());
+ }
+
+ @Test
+ public void testTranslatorTypes() throws Exception {
Set<String> defs = admin.getTranslatorTemplateNames();
-// assertTrue(defs.contains("connector-salesforce-7.0.0-SNAPSHOT")); //$NON-NLS-1$
-// assertTrue(defs.contains("connector-jdbc-7.0.0-SNAPSHOT")); //$NON-NLS-1$
-// assertTrue(defs.contains("connector-text-7.0.0-SNAPSHOT")); //$NON-NLS-1$
-// assertTrue(defs.contains("connector-loopback-7.0.0-SNAPSHOT")); //$NON-NLS-1$
-// assertTrue(defs.contains("connector-ldap-7.0.0-SNAPSHOT")); //$NON-NLS-1$
+ assertTrue(defs.contains("translator-salesforce"+VERSION)); //$NON-NLS-1$
+ assertTrue(defs.contains("translator-jdbc"+VERSION)); //$NON-NLS-1$
+ assertTrue(defs.contains("translator-text"+VERSION)); //$NON-NLS-1$
+ assertTrue(defs.contains("translator-loopback"+VERSION)); //$NON-NLS-1$
+ assertTrue(defs.contains("translator-ldap"+VERSION)); //$NON-NLS-1$
System.out.println(defs);
}
@@ -308,4 +309,41 @@
admin.removeRoleFromDataPolicy("TransactionsRevisited", 1, "policy1", "FOO");
}
+ @Test
+ public void testTranslator() throws Exception {
+ Properties props = new Properties();
+
+ // test blank add
+ try {
+ admin.addTranslator("foo", "translator-jdbc"+VERSION, props);
+ fail("must have failed because no exeuction factory set");
+ }catch(Throwable e) {
+
+ }
+
+ // test minimal correct add
+ props.setProperty("execution-factory-class", "org.teiid.resource.adapter.jdbc.JDBCExecutionFactory");
+ admin.addTranslator("foo", "translator-jdbc"+VERSION, props);
+
+ // test set property
+ admin.setTranslatorProperty("foo", "TrimStrings", "true");
+
+ Translator t = admin.getTranslator("foo");
+ assertEquals("org.teiid.resource.adapter.jdbc.JDBCExecutionFactory", t.getExecutionFactoryClass());
+ assertEquals("org.teiid.resource.adapter.jdbc.JDBCExecutionFactory", t.getExecutionFactoryClass());
+
+ try {
+ admin.setTranslatorProperty("foo", "any-thing", "every-thing");
+ fail("can not set arbitary properties on translator");
+ }catch(Throwable e) {
+
+ }
+
+ admin.deleteTranslator("foo");
+
+ t = admin.getTranslator("foo");
+ assertNull(t);
+
+ }
+
}
15 years, 11 months
teiid SVN: r2107 - in trunk: connector-api/src/main/java/org/teiid/connector/api and 13 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-05-07 17:35:44 -0400 (Fri, 07 May 2010)
New Revision: 2107
Removed:
trunk/engine/src/main/java/com/metamatrix/internal/core/xml/XPathHelper.java
trunk/engine/src/test/java/com/metamatrix/internal/core/xml/TestXPathHelper.java
Modified:
trunk/common-core/src/main/java/com/metamatrix/common/types/XMLType.java
trunk/connector-api/src/main/java/org/teiid/connector/api/SourceSystemFunctions.java
trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml
trunk/engine/src/main/java/com/metamatrix/query/function/source/SystemSource.java
trunk/engine/src/main/java/com/metamatrix/query/function/source/XMLSystemFunctions.java
trunk/engine/src/main/java/com/metamatrix/query/resolver/util/ResolverVisitor.java
trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/SQLStringVisitor.java
trunk/engine/src/main/java/com/metamatrix/query/validator/ValidationVisitor.java
trunk/engine/src/main/resources/com/metamatrix/query/i18n.properties
trunk/engine/src/test/java/com/metamatrix/query/function/TestFunctionLibrary.java
trunk/engine/src/test/java/com/metamatrix/query/function/source/TestXMLSystemFunctions.java
trunk/engine/src/test/java/com/metamatrix/query/parser/TestParser.java
trunk/engine/src/test/java/com/metamatrix/query/resolver/TestResolver.java
trunk/engine/src/test/java/com/metamatrix/query/validator/TestValidator.java
Log:
TEIID-1087: added support xpathquery that returns a full result (as opposed to xpathvalue) and allowed both functions to be namespace aware.
Modified: trunk/common-core/src/main/java/com/metamatrix/common/types/XMLType.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/common/types/XMLType.java 2010-05-07 20:25:05 UTC (rev 2106)
+++ trunk/common-core/src/main/java/com/metamatrix/common/types/XMLType.java 2010-05-07 21:35:44 UTC (rev 2107)
@@ -46,7 +46,7 @@
public final class XMLType extends Streamable<SQLXML> implements SQLXML {
public enum Type {
- UNKNOWN, DOCUMENT, FRAGMENT, SIBLINGS, COMMENT, PI
+ UNKNOWN, DOCUMENT, FRAGMENT, SIBLINGS, COMMENT, PI, TEXT
}
private static final long serialVersionUID = -7922647237095135723L;
Modified: trunk/connector-api/src/main/java/org/teiid/connector/api/SourceSystemFunctions.java
===================================================================
--- trunk/connector-api/src/main/java/org/teiid/connector/api/SourceSystemFunctions.java 2010-05-07 20:25:05 UTC (rev 2106)
+++ trunk/connector-api/src/main/java/org/teiid/connector/api/SourceSystemFunctions.java 2010-05-07 21:35:44 UTC (rev 2107)
@@ -136,6 +136,7 @@
//xml
public static final String XPATHVALUE = "xpathvalue"; //$NON-NLS-1$
+ public static final String XPATHQUERY = "xpathquery"; //$NON-NLS-1$
public static final String XSLTRANSFORM = "xsltransform"; //$NON-NLS-1$
public static final String XMLELEMENT = "xmlelement"; //$NON-NLS-1$
public static final String XMLCONCAT = "xmlconcat"; //$NON-NLS-1$
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml 2010-05-07 20:25:05 UTC (rev 2106)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml 2010-05-07 21:35:44 UTC (rev 2107)
@@ -1932,25 +1932,38 @@
<tbody>
<row>
<entry>
- <para><code>XPATHVALUE(doc, xpath)</code></para>
+ <para><code>XPATHVALUE(doc, xpath [, namepaces])</code></para>
</entry>
<entry>
- <para>Takes a document and an XPATH query and returns a
- string value for the result. An attempt is made to provide a
+ <para>Applies the XPATH query to the document and returns a
+ string value for the first matching result. An attempt is made to provide a
meaningful result for non-text nodes.</para>
+ <para>The optional namespaces string is used to provide default and prefix to uri mappings for the given xpath. The format is the same as namespace declarations in an xml element: xmlns:foo="uri"</para>
</entry>
<entry>
- <para>Doc in {string, xml} and xpath in {string}. Return value is a string.
+ <para>Doc in {string, xml} and xpath, namespaces in {string}. Return value is a string.
</para>
</entry>
</row>
<row>
<entry>
+ <para><code>XPATHQUERY(doc, xpath [, namepaces])</code></para>
+ </entry>
+ <entry>
+ <para>Takes a document and an XPATH query and returns a SQL/XML of the result.</para>
+ <para>The optional namespaces string is used to provide default and prefix to uri mappings for the given xpath. The format is the same as namespace declarations in an xml element: xmlns:foo="uri"</para>
+ </entry>
+ <entry>
+ <para>Doc in {string, xml} and xpath, namespaces in {string}. Return value is a string.
+ </para>
+ </entry>
+ </row>
+ <row>
+ <entry>
<para><code>XSLTRANSFORM(doc, xsl)</code></para>
</entry>
<entry>
- <para>Takes a document and an xsl stylesheet and returns a
- clob of the result. If either argument is null, the result is null.</para>
+ <para>Applies an xsl stylesheet to the given document. If either argument is null, the result is null.</para>
</entry>
<entry>
<para>Doc, xsl in {string, xml}. Return value is a clob.
Deleted: trunk/engine/src/main/java/com/metamatrix/internal/core/xml/XPathHelper.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/internal/core/xml/XPathHelper.java 2010-05-07 20:25:05 UTC (rev 2106)
+++ trunk/engine/src/main/java/com/metamatrix/internal/core/xml/XPathHelper.java 2010-05-07 21:35:44 UTC (rev 2107)
@@ -1,117 +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.internal.core.xml;
-
-import java.io.IOException;
-import java.io.Reader;
-
-import javax.xml.transform.Source;
-import javax.xml.transform.stream.StreamSource;
-
-import net.sf.saxon.om.Item;
-import net.sf.saxon.sxpath.XPathEvaluator;
-import net.sf.saxon.sxpath.XPathExpression;
-import net.sf.saxon.trans.XPathException;
-
-import com.metamatrix.core.util.ArgCheck;
-
-
-/**
- * A collection of methods to help with evaluating an XPath against a document. These
- * utilities currently use Jaxen for XPath implementation.
- * @since 4.2
- */
-public class XPathHelper {
-
- /**
- * Get the first XPath match when evaluating an XPath on a document. If nothing is
- * matched, null is returned.
- * @param documentReader A reader for the XML document. The reader will always be closed by this method.
- * @param xpath An xpath expression, for example: a/b/c/getText()
- * @return String representation of the first matching item or null if none
- * @throws IllegalArgumentException If <code>documentReader</code> or <code>xpath</code> is null
- * @throws XPathException If an error occurs evaluating the XPath
- * @throws IOException If an error occurs closing the reader
- * @since 4.2
- */
- public static String getSingleMatchAsString(Reader documentReader, String xpath) throws XPathException, IOException {
- Object o = getSingleMatch(documentReader, xpath);
-
- if(o == null) {
- return null;
- }
-
- // Return string value of node type
- if(o instanceof Item) {
- return ((Item)o).getStringValue();
- }
-
- // Return string representation of non-node value
- return o.toString();
- }
-
- /**
- * Get the first XPath match when evaluating an XPath on a document. If nothing is
- * matched, null is returned.
- * @param documentReader A reader for the XML document. The reader will always be closed by this method.
- * @param xpath An xpath expression, for example: a/b/c/getText()
- * @return String representation of the first matching item or null if none
- * @throws IllegalArgumentException If <code>documentReader</code> or <code>xpath</code> is null
- * @throws XPathException If an error occurs evaluating the XPath
- * @throws IOException If an error occurs closing the reader
- * @since 4.2
- */
- public static Object getSingleMatch(Reader documentReader, String xpath) throws XPathException, IOException {
- ArgCheck.isNotNull(documentReader);
- ArgCheck.isNotNull(xpath);
-
- try {
- Source s = new StreamSource(documentReader);
- XPathEvaluator eval = new XPathEvaluator();
-
- // Wrap the string() function to force a string return
- XPathExpression expr = eval.createExpression(xpath);
- return expr.evaluateSingle(s);
-
- } finally {
- // Always close the reader
- documentReader.close();
- }
- }
-
- /**
- * Validate whether the XPath is a valid XPath. If not valid, an XPathException will be thrown.
- * @param xpath An xpath expression, for example: a/b/c/getText()
- * @throws XPathException If an error occurs parsing the xpath
- * @since 4.2
- */
- public static void validateXpath(String xpath) throws XPathException {
- if(xpath == null) {
- return;
- }
-
- XPathEvaluator eval = new XPathEvaluator();
- eval.createExpression(xpath); // throws XPathException
- }
-
-}
Modified: trunk/engine/src/main/java/com/metamatrix/query/function/source/SystemSource.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/function/source/SystemSource.java 2010-05-07 20:25:05 UTC (rev 2106)
+++ trunk/engine/src/main/java/com/metamatrix/query/function/source/SystemSource.java 2010-05-07 21:35:44 UTC (rev 2107)
@@ -166,7 +166,8 @@
addParseNumberFunctions();
// xml functions
- addXpathFunction();
+ addXpathQueryFunction();
+ addXpathValueFunction();
addXslTransformFunction();
addXmlElement();
addXmlConcat();
@@ -881,25 +882,64 @@
);
}
- /**
- *
- * @since 4.2
- */
- private void addXpathFunction() {
- functions.add(new FunctionMethod(SourceSystemFunctions.XPATHVALUE, QueryPlugin.Util.getString("SystemSource.xpath_description"), XML, XML_FUNCTION_CLASS, "xpathValue", //$NON-NLS-1$ //$NON-NLS-2$
+ private void addXpathValueFunction() {
+ functions.add(new FunctionMethod(SourceSystemFunctions.XPATHVALUE, QueryPlugin.Util.getString("SystemSource.xpathvalue_description"), XML, XML_FUNCTION_CLASS, "xpathValue", //$NON-NLS-1$ //$NON-NLS-2$
new FunctionParameter[] {
new FunctionParameter("document", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpath_param1")), //$NON-NLS-1$ //$NON-NLS-2$
new FunctionParameter("xpath", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpath_param2"))}, //$NON-NLS-1$ //$NON-NLS-2$
- new FunctionParameter("result", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpath_result")) ) ); //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter("result", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpathvalue_result")) ) ); //$NON-NLS-1$ //$NON-NLS-2$
- functions.add(new FunctionMethod(SourceSystemFunctions.XPATHVALUE, QueryPlugin.Util.getString("SystemSource.xpath_description"), XML, XML_FUNCTION_CLASS, "xpathValue", //$NON-NLS-1$ //$NON-NLS-2$
+ functions.add(new FunctionMethod(SourceSystemFunctions.XPATHVALUE, QueryPlugin.Util.getString("SystemSource.xpathvalue_description"), XML, XML_FUNCTION_CLASS, "xpathValue", //$NON-NLS-1$ //$NON-NLS-2$
new FunctionParameter[] {
new FunctionParameter("document", DataTypeManager.DefaultDataTypes.XML, QueryPlugin.Util.getString("SystemSource.xpath_param1")), //$NON-NLS-1$ //$NON-NLS-2$
new FunctionParameter("xpath", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpath_param2"))}, //$NON-NLS-1$ //$NON-NLS-2$
- new FunctionParameter("result", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpath_result")) ) ); //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter("result", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpathvalue_result")) ) ); //$NON-NLS-1$ //$NON-NLS-2$
+
+ functions.add(new FunctionMethod(SourceSystemFunctions.XPATHVALUE, QueryPlugin.Util.getString("SystemSource.xpathvalue_description"), XML, XML_FUNCTION_CLASS, "xpathValue", //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter[] {
+ new FunctionParameter("document", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpath_param1")), //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter("xpath", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpath_param2")), //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter("namespace", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpath_param3"))}, //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter("result", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpathvalue_result")) ) ); //$NON-NLS-1$ //$NON-NLS-2$
+ functions.add(new FunctionMethod(SourceSystemFunctions.XPATHVALUE, QueryPlugin.Util.getString("SystemSource.xpathvalue_description"), XML, XML_FUNCTION_CLASS, "xpathValue", //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter[] {
+ new FunctionParameter("document", DataTypeManager.DefaultDataTypes.XML, QueryPlugin.Util.getString("SystemSource.xpath_param1")), //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter("xpath", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpath_param2")), //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter("namespace", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpath_param3"))}, //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter("result", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpathvalue_result")) ) ); //$NON-NLS-1$ //$NON-NLS-2$
+
}
+ private void addXpathQueryFunction() {
+ functions.add(new FunctionMethod(SourceSystemFunctions.XPATHQUERY, QueryPlugin.Util.getString("SystemSource.xpath_description"), XML, XML_FUNCTION_CLASS, "xpathQuery", //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter[] {
+ new FunctionParameter("document", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpath_param1")), //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter("xpath", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpath_param2"))}, //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter("result", DataTypeManager.DefaultDataTypes.XML, QueryPlugin.Util.getString("SystemSource.xpath_result")) ) ); //$NON-NLS-1$ //$NON-NLS-2$
+
+ functions.add(new FunctionMethod(SourceSystemFunctions.XPATHQUERY, QueryPlugin.Util.getString("SystemSource.xpath_description"), XML, XML_FUNCTION_CLASS, "xpathQuery", //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter[] {
+ new FunctionParameter("document", DataTypeManager.DefaultDataTypes.XML, QueryPlugin.Util.getString("SystemSource.xpath_param1")), //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter("xpath", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpath_param2"))}, //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter("result", DataTypeManager.DefaultDataTypes.XML, QueryPlugin.Util.getString("SystemSource.xpath_result")) ) ); //$NON-NLS-1$ //$NON-NLS-2$
+
+ functions.add(new FunctionMethod(SourceSystemFunctions.XPATHQUERY, QueryPlugin.Util.getString("SystemSource.xpath_description"), XML, XML_FUNCTION_CLASS, "xpathQuery", //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter[] {
+ new FunctionParameter("document", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpath_param1")), //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter("xpath", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpath_param2")), //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter("namespaces", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpath_param3"))}, //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter("result", DataTypeManager.DefaultDataTypes.XML, QueryPlugin.Util.getString("SystemSource.xpath_result")) ) ); //$NON-NLS-1$ //$NON-NLS-2$
+
+ functions.add(new FunctionMethod(SourceSystemFunctions.XPATHQUERY, QueryPlugin.Util.getString("SystemSource.xpath_description"), XML, XML_FUNCTION_CLASS, "xpathQuery", //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter[] {
+ new FunctionParameter("document", DataTypeManager.DefaultDataTypes.XML, QueryPlugin.Util.getString("SystemSource.xpath_param1")), //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter("xpath", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpath_param2")), //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter("namespaces", DataTypeManager.DefaultDataTypes.STRING, QueryPlugin.Util.getString("SystemSource.xpath_param3"))}, //$NON-NLS-1$ //$NON-NLS-2$
+ new FunctionParameter("result", DataTypeManager.DefaultDataTypes.XML, QueryPlugin.Util.getString("SystemSource.xpath_result")) ) ); //$NON-NLS-1$ //$NON-NLS-2$
+
+ }
+
private void addXslTransformFunction() {
functions.add(new FunctionMethod(SourceSystemFunctions.XSLTRANSFORM, QueryPlugin.Util.getString("SystemSource.xsltransform_description"), XML, XML_FUNCTION_CLASS, "xslTransform", //$NON-NLS-1$ //$NON-NLS-2$
new FunctionParameter[] {
@@ -1008,7 +1048,7 @@
* Get all function signatures for this metadata source.
* @return Unordered collection of {@link FunctionMethod}s
*/
- public Collection getFunctionMethods() {
+ public Collection<FunctionMethod> getFunctionMethods() {
return this.functions;
}
Modified: trunk/engine/src/main/java/com/metamatrix/query/function/source/XMLSystemFunctions.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/function/source/XMLSystemFunctions.java 2010-05-07 20:25:05 UTC (rev 2106)
+++ trunk/engine/src/main/java/com/metamatrix/query/function/source/XMLSystemFunctions.java 2010-05-07 21:35:44 UTC (rev 2107)
@@ -27,11 +27,13 @@
import java.io.Reader;
import java.io.StringReader;
import java.io.Writer;
+import java.sql.Clob;
import java.sql.SQLException;
import java.sql.SQLXML;
import java.sql.Timestamp;
import java.util.Calendar;
+import javax.xml.namespace.NamespaceContext;
import javax.xml.namespace.QName;
import javax.xml.stream.EventFilter;
import javax.xml.stream.FactoryConfigurationError;
@@ -41,15 +43,24 @@
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.events.XMLEvent;
+import javax.xml.transform.OutputKeys;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathExpressionException;
+import javax.xml.xpath.XPathFactory;
-import net.sf.saxon.trans.XPathException;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.api.exception.MetaMatrixProcessingException;
@@ -62,7 +73,6 @@
import com.metamatrix.common.types.XMLTranslator;
import com.metamatrix.common.types.XMLType;
import com.metamatrix.common.types.XMLType.Type;
-import com.metamatrix.internal.core.xml.XPathHelper;
import com.metamatrix.query.QueryPlugin;
import com.metamatrix.query.function.FunctionMethods;
import com.metamatrix.query.processor.xml.XMLUtil;
@@ -99,31 +109,7 @@
}
YEAR_ZERO = cal.getTimeInMillis();
}
-
- public static Object xpathValue(Object document, Object xpathStr) throws FunctionExecutionException {
- Reader stream = null;
-
- if (document instanceof SQLXML) {
- try {
- stream = ((SQLXML)document).getCharacterStream();
- } catch (SQLException e) {
- throw new FunctionExecutionException(QueryPlugin.Util.getString("XMLSystemFunctions.xpathvalue_takes_only_string", document.getClass().getName())); //$NON-NLS-1$
- }
- } else if(document instanceof String) {
- stream = new StringReader((String)document);
- } else {
- throw new FunctionExecutionException(QueryPlugin.Util.getString("XMLSystemFunctions.xpathvalue_takes_only_string", document.getClass().getName())); //$NON-NLS-1$
- }
-
- try {
- return XPathHelper.getSingleMatchAsString(stream, (String) xpathStr);
- } catch(IOException e) {
- throw new FunctionExecutionException(QueryPlugin.Util.getString("XMLSystemFunctions.wrap_exception", xpathStr, e.getMessage())); //$NON-NLS-1$
- } catch(XPathException e) {
- throw new FunctionExecutionException(QueryPlugin.Util.getString("XMLSystemFunctions.wrap_exception", xpathStr, e.getMessage())); //$NON-NLS-1$
- }
- }
-
+
public static ClobType xslTransform(CommandContext context, String xmlResults, String styleSheet) throws Exception {
return xslTransform(context, DataTypeManager.transformValue(xmlResults, DataTypeManager.DefaultDataClasses.XML), DataTypeManager.transformValue(styleSheet, DataTypeManager.DefaultDataClasses.XML));
}
@@ -313,52 +299,62 @@
if (object == null) {
return;
}
- if (object instanceof XMLType) {
- XMLType xml = (XMLType)object;
- Reader r = null;
- try {
+ Reader r = null;
+ try {
+ if (object instanceof XMLType) {
+ XMLType xml = (XMLType)object;
r = xml.getCharacterStream();
- if (!(r instanceof BufferedReader)) {
- r = new BufferedReader(r);
- }
- switch(xml.getType()) {
- case FRAGMENT:
- case SIBLINGS:
- case PI:
- case COMMENT: //write the value directly to the writer
- eventWriter.flush();
- int chr = -1;
- while ((chr = r.read()) != -1) {
- writer.write(chr);
- }
- break;
- case UNKNOWN: //assume a document
- case DOCUMENT: //filter the doc declaration
- XMLInputFactory inputFactory = XMLInputFactory.newInstance();
- XMLEventReader eventReader = inputFactory.createXMLEventReader(r);
- eventReader = inputFactory.createFilteredReader(eventReader, new EventFilter() {
- @Override
- public boolean accept(XMLEvent event) {
- return !event.isStartDocument() && !event.isEndDocument();
- }
- });
- eventWriter.add(eventReader);
- break;
- }
- } catch (SQLException e) {
- throw new IOException(e);
- } finally {
- if (r != null) {
- r.close();
- }
+ Type type = xml.getType();
+ convertReader(writer, eventWriter, r, type);
+ } else if (object instanceof Clob) {
+ Clob clob = (Clob)object;
+ r = clob.getCharacterStream();
+ convertReader(writer, eventWriter, r, Type.TEXT);
+ } else {
+ String val = getStringValue(object);
+ eventWriter.add(eventFactory.createCharacters(val));
}
- } else {
- String val = getStringValue(object);
- eventWriter.add(eventFactory.createCharacters(val));
+ } catch (SQLException e) {
+ throw new IOException(e);
+ } finally {
+ if (r != null) {
+ r.close();
+ }
}
//TODO: blob - with base64 encoding
- //TODO: full clob?
}
+
+ private static void convertReader(Writer writer,
+ XMLEventWriter eventWriter, Reader r, Type type)
+ throws XMLStreamException, IOException, FactoryConfigurationError {
+ if (!(r instanceof BufferedReader)) {
+ r = new BufferedReader(r);
+ }
+ switch(type) {
+ case FRAGMENT:
+ case SIBLINGS:
+ case PI:
+ case COMMENT: //write the value directly to the writer
+ eventWriter.flush();
+ int chr = -1;
+ while ((chr = r.read()) != -1) {
+ writer.write(chr);
+ }
+ break;
+ case UNKNOWN: //assume a document
+ case DOCUMENT: //filter the doc declaration
+ XMLInputFactory inputFactory = XMLInputFactory.newInstance();
+ XMLEventReader eventReader = inputFactory.createXMLEventReader(r);
+ eventReader = inputFactory.createFilteredReader(eventReader, new EventFilter() {
+ @Override
+ public boolean accept(XMLEvent event) {
+ return !event.isStartDocument() && !event.isEndDocument();
+ }
+ });
+ eventWriter.add(eventReader);
+ break;
+ }
+ }
public static XMLType xmlComment(String comment) {
return new XMLType(new SQLXMLImpl("<!--" + comment + "-->")); //$NON-NLS-1$ //$NON-NLS-2$
@@ -401,5 +397,131 @@
return resultBuffer.toString();
}
+
+ public static String xpathValue(XMLType document, String xpathStr, String namespaces) throws IOException, XPathExpressionException, SQLException, FunctionExecutionException {
+ Reader stream = document.getCharacterStream();
+ return xpathValue(stream, xpathStr, namespaces);
+ }
+ public static String xpathValue(String document, String xpathStr, String namespaces) throws IOException, XPathExpressionException, FunctionExecutionException {
+ return xpathValue(new StringReader(document), xpathStr, namespaces);
+ }
+
+ public static String xpathValue(String document, String xpathStr) throws IOException, XPathExpressionException, FunctionExecutionException {
+ return xpathValue(document, xpathStr, null);
+ }
+
+ public static String xpathValue(XMLType document, String xpathStr) throws IOException, SQLException, XPathExpressionException, FunctionExecutionException {
+ return xpathValue(document, xpathStr, null);
+ }
+
+ public static XMLType xpathQuery(CommandContext context, String document, String xpathStr) throws IOException, MetaMatrixComponentException, MetaMatrixProcessingException, XPathExpressionException {
+ return xpathQuery(context, document, xpathStr, null);
+ }
+
+ public static XMLType xpathQuery(CommandContext context, XMLType document, String xpathStr) throws IOException, SQLException, XPathExpressionException, MetaMatrixComponentException, MetaMatrixProcessingException {
+ return xpathQuery(context, document, xpathStr, null);
+ }
+
+ public static XMLType xpathQuery(CommandContext context, String document, String xpathStr, String namespaces) throws IOException, MetaMatrixComponentException, MetaMatrixProcessingException, XPathExpressionException {
+ Reader stream = new StringReader(document);
+ return xpathQuery(context, xpathStr, stream, namespaces);
+ }
+
+ public static XMLType xpathQuery(CommandContext context, XMLType document, String xpathStr, String namespaces) throws IOException, SQLException, XPathExpressionException, MetaMatrixComponentException, MetaMatrixProcessingException {
+ Reader stream = ((SQLXML)document).getCharacterStream();
+ return xpathQuery(context, xpathStr, stream, namespaces);
+ }
+
+ private static XMLType xpathQuery(CommandContext context, String xpathStr,
+ Reader stream, String namespaces) throws XPathExpressionException,
+ MetaMatrixComponentException, MetaMatrixProcessingException,
+ IOException {
+ try {
+ XPathFactory xpathFactory = XPathFactory.newInstance();
+ XPath xp = xpathFactory.newXPath();
+ NamespaceContext nc = getNamespaces(namespaces);
+ if (nc != null) {
+ xp.setNamespaceContext(nc);
+ }
+ final NodeList nodes = (NodeList)xp.evaluate(xpathStr, new InputSource(stream), XPathConstants.NODESET);
+ if (nodes.getLength() == 0) {
+ return null;
+ }
+ Type type = nodes.getLength() > 1 ? Type.SIBLINGS : Type.FRAGMENT;
+ for (int i = 0; i < nodes.getLength(); i++) {
+ Node node = nodes.item(i);
+ if (node.getNodeType() == Node.TEXT_NODE) {
+ type = Type.TEXT;
+ }
+ }
+ SQLXML sqlXml = XMLUtil.saveToBufferManager(context.getBufferManager(), new XMLTranslator() {
+
+ @Override
+ public void translate(Writer writer) throws TransformerException {
+ TransformerFactory factory = TransformerFactory.newInstance();
+ Transformer transformer = factory.newTransformer();
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); //$NON-NLS-1$
+ for (int i = 0; i < nodes.getLength(); i++) {
+ Node node = nodes.item(i);
+ transformer.transform(new DOMSource(node), new StreamResult(writer));
+ }
+ }
+ }, Streamable.STREAMING_BATCH_SIZE_IN_BYTES);
+ XMLType result = new XMLType(sqlXml);
+ result.setType(type);
+ return result;
+ } finally {
+ stream.close();
+ }
+ }
+
+ public static String xpathValue(Reader documentReader, String xpath, String namespaces) throws IOException, XPathExpressionException, FunctionExecutionException {
+ try {
+ XPathFactory xpathFactory = XPathFactory.newInstance();
+ XPath xp = xpathFactory.newXPath();
+ NamespaceContext nc = getNamespaces(namespaces);
+ if (nc != null) {
+ xp.setNamespaceContext(nc);
+ }
+ Node node = (Node)xp.evaluate(xpath, new InputSource(documentReader), XPathConstants.NODE);
+ if (node == null) {
+ return null;
+ }
+ return node.getTextContent();
+ } finally {
+ // Always close the reader
+ documentReader.close();
+ }
+ }
+
+ public static NamespaceContext getNamespaces(String namespaces) throws FunctionExecutionException {
+ if (namespaces == null) {
+ return null;
+ }
+ XMLInputFactory inputFactory = XMLInputFactory.newInstance();
+ try {
+ XMLStreamReader eventReader = inputFactory.createXMLStreamReader(new StringReader("<x " + namespaces + " />")); //$NON-NLS-1$ //$NON-NLS-2$
+ eventReader.next();
+ return eventReader.getNamespaceContext();
+ } catch (XMLStreamException e) {
+ throw new FunctionExecutionException(e, QueryPlugin.Util.getString("XMLSystemFunctions.invalid_namespaces", namespaces)); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * Validate whether the XPath is a valid XPath. If not valid, an XPathExpressionException will be thrown.
+ * @param xpath An xpath expression, for example: a/b/c/getText()
+ * @throws XPathExpressionException
+ */
+ public static void validateXpath(String xpath) throws XPathExpressionException {
+ if(xpath == null) {
+ return;
+ }
+
+ XPathFactory factory = XPathFactory.newInstance();
+ XPath xp = factory.newXPath();
+ xp.compile(xpath);
+ }
+
}
Modified: trunk/engine/src/main/java/com/metamatrix/query/resolver/util/ResolverVisitor.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/resolver/util/ResolverVisitor.java 2010-05-07 20:25:05 UTC (rev 2106)
+++ trunk/engine/src/main/java/com/metamatrix/query/resolver/util/ResolverVisitor.java 2010-05-07 21:35:44 UTC (rev 2107)
@@ -31,17 +31,12 @@
import java.util.List;
import java.util.Map;
-import org.teiid.connector.api.SourceSystemFunctions;
-
-import net.sf.saxon.trans.XPathException;
-
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.api.exception.query.QueryMetadataException;
import com.metamatrix.api.exception.query.QueryResolverException;
import com.metamatrix.api.exception.query.UnresolvedSymbolDescription;
import com.metamatrix.common.types.DataTypeManager;
import com.metamatrix.common.types.DataTypeManager.DefaultDataClasses;
-import com.metamatrix.internal.core.xml.XPathHelper;
import com.metamatrix.query.QueryPlugin;
import com.metamatrix.query.function.FunctionDescriptor;
import com.metamatrix.query.function.FunctionForm;
@@ -442,25 +437,8 @@
} else if(fd.getName().equalsIgnoreCase(FunctionLibrary.LOOKUP)) {
ResolverUtil.ResolvedLookup lookup = ResolverUtil.resolveLookup(function, metadata);
fd = library.copyFunctionChangeReturnType(fd, lookup.getReturnElement().getType());
- } else if(fd.getName().equalsIgnoreCase(SourceSystemFunctions.XPATHVALUE)) {
- // Validate the xpath value is valid
- if(args[1] != null && args[1] instanceof Constant) {
- Constant xpathConst = (Constant) args[1];
- if(xpathConst.getType().equals(DataTypeManager.DefaultDataClasses.STRING)) {
- String value = (String) xpathConst.getValue();
- if(value == null) {
- throw new QueryResolverException(QueryPlugin.Util.getString("QueryResolver.invalid_xpath", QueryPlugin.Util.getString("ResolveFunctionsVisitor.xpath_cant_be_null"))); //$NON-NLS-1$ //$NON-NLS-2$
- }
+ }
- try {
- XPathHelper.validateXpath(value);
- } catch(XPathException e) {
- throw new QueryResolverException(QueryPlugin.Util.getString("QueryResolver.invalid_xpath", e.getMessage())); //$NON-NLS-1$
- }
- }
- }
- }
-
// Resolve the function
function.setFunctionDescriptor(fd);
function.setType(fd.getReturnType());
Modified: trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/SQLStringVisitor.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/SQLStringVisitor.java 2010-05-07 20:25:05 UTC (rev 2106)
+++ trunk/engine/src/main/java/com/metamatrix/query/sql/visitor/SQLStringVisitor.java 2010-05-07 21:35:44 UTC (rev 2107)
@@ -1243,7 +1243,7 @@
}
parts.add(")"); //$NON-NLS-1$
- } else if (name.equalsIgnoreCase(SourceSystemFunctions.XMLELEMENT)){
+ } else if (name.equalsIgnoreCase(SourceSystemFunctions.XMLELEMENT) || name.equalsIgnoreCase(SourceSystemFunctions.XMLPI)){
parts.add(name);
parts.add("(NAME "); //$NON-NLS-1$
outputDisplayName((String)((Constant)args[0]).getValue());
Modified: trunk/engine/src/main/java/com/metamatrix/query/validator/ValidationVisitor.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/query/validator/ValidationVisitor.java 2010-05-07 20:25:05 UTC (rev 2106)
+++ trunk/engine/src/main/java/com/metamatrix/query/validator/ValidationVisitor.java 2010-05-07 21:35:44 UTC (rev 2107)
@@ -31,15 +31,21 @@
import java.util.Map;
import java.util.Set;
+import javax.xml.xpath.XPathExpressionException;
+
+import org.teiid.connector.api.SourceSystemFunctions;
+
import com.metamatrix.api.exception.MetaMatrixComponentException;
import com.metamatrix.api.exception.MetaMatrixProcessingException;
import com.metamatrix.api.exception.query.ExpressionEvaluationException;
+import com.metamatrix.api.exception.query.FunctionExecutionException;
import com.metamatrix.api.exception.query.QueryMetadataException;
import com.metamatrix.api.exception.query.QueryValidatorException;
import com.metamatrix.common.types.DataTypeManager;
import com.metamatrix.query.QueryPlugin;
import com.metamatrix.query.eval.Evaluator;
import com.metamatrix.query.function.FunctionLibrary;
+import com.metamatrix.query.function.source.XMLSystemFunctions;
import com.metamatrix.query.metadata.SupportConstants;
import com.metamatrix.query.resolver.util.ResolverUtil;
import com.metamatrix.query.sql.LanguageObject;
@@ -319,7 +325,25 @@
// can't use this pseudo-function in non-XML queries
handleValidationError(QueryPlugin.Util.getString("ValidationVisitor.The_rowlimit_function_cannot_be_used_in_a_non-XML_command"), obj); //$NON-NLS-1$
}
- }
+ } else if(obj.getFunctionDescriptor().getName().equalsIgnoreCase(SourceSystemFunctions.XPATHVALUE) || obj.getFunctionDescriptor().getName().equalsIgnoreCase(SourceSystemFunctions.XPATHQUERY)) {
+ // Validate the xpath value is valid
+ if(obj.getArgs()[1] instanceof Constant) {
+ Constant xpathConst = (Constant) obj.getArgs()[1];
+ try {
+ XMLSystemFunctions.validateXpath((String)xpathConst.getValue());
+ } catch(XPathExpressionException e) {
+ handleValidationError(QueryPlugin.Util.getString("QueryResolver.invalid_xpath", e.getMessage()), obj); //$NON-NLS-1$
+ }
+ }
+ if (obj.getArgs().length > 2 && obj.getArgs()[2] instanceof Constant) {
+ Constant xpathConst = (Constant) obj.getArgs()[2];
+ try {
+ XMLSystemFunctions.getNamespaces((String)xpathConst.getValue());
+ } catch(FunctionExecutionException e) {
+ handleValidationError(e.getMessage(), obj);
+ }
+ }
+ }
}
// ############### Visitor methods for stored procedure lang objects ##################
Modified: trunk/engine/src/main/resources/com/metamatrix/query/i18n.properties
===================================================================
--- trunk/engine/src/main/resources/com/metamatrix/query/i18n.properties 2010-05-07 20:25:05 UTC (rev 2106)
+++ trunk/engine/src/main/resources/com/metamatrix/query/i18n.properties 2010-05-07 21:35:44 UTC (rev 2107)
@@ -764,9 +764,12 @@
SystemSource.Bitfunc2_arg1=First integer
SystemSource.Bitfunc2_arg2=Second integer
SystemSource.Convert_desc=Convert from {0} to target type
-SystemSource.xpath_description=Retrieve the first match content for an XPath statement
+SystemSource.xpathvalue_description=Retrieve the first match content for an XPath statement
+SystemSource.xpath_description=Evaluate the XPath expression against a document
SystemSource.xpath_param1=Source document
SystemSource.xpath_param2=XPath expression
+SystemSource.xpath_param2=Namespaces
+SystemSource.xpathvalue_result=Single result
SystemSource.xpath_result=XPath result
SystemSource.xsltransform_description=Transform the document with the given stylesheet.
SystemSource.xsltransform_param1=Source document
@@ -778,10 +781,10 @@
SystemSource.xmlelement_result=XML result
SystemSource.xmlconcat_description=Concat XML types.
SystemSource.xmlconcat_param1=First element
-SystemSource.xmlcomment_description=Creates an XML comment.
+SystemSource.xmlcomment_description=Create an XML comment.
SystemSource.xmlconcat_param1=String comment
SystemSource.xmlconcat_result=XML result
-SystemSource.xmlpi_description=Creates an XML processing instruction.
+SystemSource.xmlpi_description=Create an XML processing instruction.
SystemSource.xmlpi_param1=Target
SystemSource.xmlpi_param2=Content
SystemSource.xmlpi_result=XML result
@@ -900,4 +903,5 @@
SetClause.resolvingError=Cannot set symbol ''{1}'' with expected type {2} to expression ''{0}''
NewCalculateCostUtil.badCost=Unexpected format encountered for max or min value
-WorkerPool.Max_thread=Reached maximum thread count "{0}" for worker pool "{1}" with a queue size of "{2}".
\ No newline at end of file
+WorkerPool.Max_thread=Reached maximum thread count "{0}" for worker pool "{1}" with a queue size of "{2}".
+XMLSystemFunctions.invalid_namespaces=Invalid namespaces supplied for XPath expression - ''{0}''
\ No newline at end of file
Deleted: trunk/engine/src/test/java/com/metamatrix/internal/core/xml/TestXPathHelper.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/internal/core/xml/TestXPathHelper.java 2010-05-07 20:25:05 UTC (rev 2106)
+++ trunk/engine/src/test/java/com/metamatrix/internal/core/xml/TestXPathHelper.java 2010-05-07 21:35:44 UTC (rev 2107)
@@ -1,185 +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.internal.core.xml;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.Reader;
-import java.io.StringReader;
-
-import junit.framework.TestCase;
-
-import net.sf.saxon.trans.XPathException;
-
-import org.jdom.Attribute;
-import org.jdom.Element;
-
-import com.metamatrix.core.util.FileUtil;
-import com.metamatrix.core.util.UnitTestUtil;
-
-
-/**
- * @since 4.2
- */
-public class TestXPathHelper extends TestCase {
-
- /**
- * Constructor for TestXPathHelper.
- * @param name
- */
- public TestXPathHelper(String name) {
- super(name);
- }
-
- // =========================================================================
- // H E L P E R M E T H O D S
- // =========================================================================
-
- public String getContentOfTestFile( final String testFilePath ) {
- final File file = UnitTestUtil.getTestDataFile(testFilePath);
- assertNotNull(file);
- assertEquals(true,file.exists());
- final FileUtil util = new FileUtil(file.getAbsolutePath());
- assertNotNull(util);
- return util.read();
- }
-
- public String helpTestXpathValue(final String xmlFilePath, final String xpath,
- final String expected) throws XPathException, IOException {
- final String actual = helpGetNode(xmlFilePath,xpath);
- assertEquals(expected,actual);
- return actual;
- }
-
- public String helpGetNode(final String xmlFilePath, final String xpath ) throws XPathException, IOException {
- final String xmlContent = getContentOfTestFile(xmlFilePath);
- final Reader docReader = new StringReader(xmlContent);
- return XPathHelper.getSingleMatchAsString(docReader,xpath);
- }
-
- public void helpCheckElement(final Object jdomNode, final String name, final String prefix, final String namespaceUri,
- final String textContent) {
- assertTrue("Supplied JDOM node is not an Element", jdomNode instanceof Element); //$NON-NLS-1$
- final Element element = (Element)jdomNode;
- assertEquals(name, element.getName());
- assertEquals(prefix, element.getNamespacePrefix());
- assertEquals(namespaceUri, element.getNamespaceURI());
-
- final String actualTextContent = element.getText();
- if (textContent == null) {
- assertEquals(0, actualTextContent.length());
- } else {
- assertEquals(textContent, actualTextContent);
- }
- }
-
- public void helpCheckElement(final Object jdomNode, final String name, final String prefix, final String namespaceUri) {
- assertTrue("Supplied JDOM node is not an Element", jdomNode instanceof Element); //$NON-NLS-1$
- final Element element = (Element)jdomNode;
- assertEquals(name, element.getName());
- assertEquals(prefix, element.getNamespacePrefix());
- assertEquals(namespaceUri, element.getNamespaceURI());
- }
-
- public void helpCheckAttribute(final Object jdomNode, final String name,
- final String prefix, final String namespaceUri,
- final String value ) {
- assertTrue("Supplied JDOM node is not an Attribute",jdomNode instanceof Attribute); //$NON-NLS-1$
- final Attribute attribute = (Attribute)jdomNode;
- assertEquals(name,attribute.getName());
- assertEquals(prefix,attribute.getNamespacePrefix());
- assertEquals(namespaceUri,attribute.getNamespaceURI());
-
- final String actualTextContent = attribute.getValue();
- assertEquals(value,actualTextContent);
- }
-
- // =========================================================================
- // T E S T C A S E S
- // =========================================================================
-
- public void testValidateXpath_Defect15088() {
- // Mismatched tick and quote
- final String xpath = "//*[local-name()='bookName\"]"; //$NON-NLS-1$
- try {
- XPathHelper.validateXpath(xpath);
- fail("Expected validation error but got none"); //$NON-NLS-1$
- } catch(XPathException e) {
- }
- }
-
- public void testValidateXpath_null() throws Exception {
- XPathHelper.validateXpath(null);
- }
-
- public void testValidateXpath_valid() throws Exception {
- XPathHelper.validateXpath("//shipTo/@country"); //$NON-NLS-1$
- }
-
- public void testGetSingleMatch_01_001() throws Exception {
- final String xmlFilePath = "testdoc.xml"; //$NON-NLS-1$
- final String xpath = "//shipTo/@country"; //$NON-NLS-1$
- final String expectedValue = "US"; //$NON-NLS-1$
- helpTestXpathValue(xmlFilePath,xpath,expectedValue);
- }
-
- public void testGetSingleMatch_01_002() throws Exception {
- final String xmlFilePath = "testdoc.xml"; //$NON-NLS-1$
- final String xpath = "//@partNum"; //$NON-NLS-1$
- final String expectedValue = "872-AA"; //$NON-NLS-1$
- helpTestXpathValue(xmlFilePath,xpath,expectedValue);
- }
-
- public void testGetSingleMatch_01_003() throws Exception {
- final String xmlFilePath = "testdoc.xml"; //$NON-NLS-1$
- final String xpath = "//productName"; //$NON-NLS-1$
- final String expectedValue = "Lawnmower"; //$NON-NLS-1$
- helpTestXpathValue(xmlFilePath,xpath,expectedValue);
- }
-
- public void testGetSingleMatch_01_004() throws Exception {
- final String xmlFilePath = "testdoc.xml"; //$NON-NLS-1$
- final String xpath = "/*:Envelope/billTo/zip"; //$NON-NLS-1$
- final String expectedValue = "95819"; //$NON-NLS-1$
- helpTestXpathValue(xmlFilePath,xpath,expectedValue);
- }
-
- public void testGetSingleMatch_02_001() throws Exception {
- final String xmlFilePath = "testdoc.xml"; //$NON-NLS-1$
- final String xpath = "/*:Envelope/*:HEADER/*:RequestID"; //$NON-NLS-1$
- helpTestXpathValue(xmlFilePath,xpath,null);
- }
-
- public void testGetSingleMatch_03() throws Exception {
- final String xmlFilePath = "testdoc.xml"; //$NON-NLS-1$
- final String xpath = "//*[local-name()=\"ReadOnly\"]"; //$NON-NLS-1$
- helpTestXpathValue(xmlFilePath,xpath,"false"); //$NON-NLS-1$
- }
-
- public void testGetSingleMatch_04() throws Exception {
- final String xmlFilePath = "testdoc.xml"; //$NON-NLS-1$
- final String xpath = "//*:ReadOnly"; //$NON-NLS-1$
- helpTestXpathValue(xmlFilePath,xpath,"false"); //$NON-NLS-1$
- }
-
-}
Modified: trunk/engine/src/test/java/com/metamatrix/query/function/TestFunctionLibrary.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/function/TestFunctionLibrary.java 2010-05-07 20:25:05 UTC (rev 2106)
+++ trunk/engine/src/test/java/com/metamatrix/query/function/TestFunctionLibrary.java 2010-05-07 21:35:44 UTC (rev 2107)
@@ -1390,4 +1390,15 @@
String xml = ObjectConverterUtil.convertToString(result.getCharacterStream());
assertEquals("<!--comment-->", xml);
}
+
+ @Test public void testInvokeXpathQuery() throws Exception {
+ CommandContext c = new CommandContext();
+ c.setBufferManager(BufferManagerFactory.getStandaloneBufferManager());
+ XMLType result = (XMLType)helpInvokeMethod("xpathquery", new Class[] {DataTypeManager.DefaultDataClasses.STRING, DataTypeManager.DefaultDataClasses.STRING},
+ new Object[] {"<foo><bar>1</bar><bar>2</bar></foo>", "/foo/bar"}, c);
+
+ String xml = ObjectConverterUtil.convertToString(result.getCharacterStream());
+ assertEquals("<bar>1</bar><bar>2</bar>", xml);
+ }
+
}
Modified: trunk/engine/src/test/java/com/metamatrix/query/function/source/TestXMLSystemFunctions.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/function/source/TestXMLSystemFunctions.java 2010-05-07 20:25:05 UTC (rev 2106)
+++ trunk/engine/src/test/java/com/metamatrix/query/function/source/TestXMLSystemFunctions.java 2010-05-07 21:35:44 UTC (rev 2107)
@@ -22,86 +22,188 @@
package com.metamatrix.query.function.source;
-import junit.framework.TestCase;
+import static org.junit.Assert.*;
+import java.io.File;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.StringReader;
+
+import javax.xml.xpath.XPathExpressionException;
+
+import org.jdom.Attribute;
+import org.jdom.Element;
+import org.junit.Test;
+
import com.metamatrix.api.exception.query.FunctionExecutionException;
import com.metamatrix.common.types.SQLXMLImpl;
import com.metamatrix.common.types.XMLType;
+import com.metamatrix.core.util.FileUtil;
+import com.metamatrix.core.util.UnitTestUtil;
+@SuppressWarnings("nls")
+public class TestXMLSystemFunctions {
+
+ public String getContentOfTestFile( final String testFilePath ) {
+ final File file = UnitTestUtil.getTestDataFile(testFilePath);
+ final FileUtil util = new FileUtil(file.getAbsolutePath());
+ return util.read();
+ }
+
+ public String helpTestXpathValue(final String xmlFilePath, final String xpath,
+ String namespaces, final String expected) throws IOException, XPathExpressionException, FunctionExecutionException {
+ final String actual = helpGetNode(xmlFilePath,xpath, namespaces);
+ assertEquals(expected,actual);
+ return actual;
+ }
-/**
- * @since 4.2
- */
-public class TestXMLSystemFunctions extends TestCase {
+ public String helpGetNode(final String xmlFilePath, final String xpath, String namespaces ) throws IOException, XPathExpressionException, FunctionExecutionException {
+ final String xmlContent = getContentOfTestFile(xmlFilePath);
+ final Reader docReader = new StringReader(xmlContent);
+ return XMLSystemFunctions.xpathValue(docReader,xpath, namespaces);
+ }
- public void testElement() throws Exception {
+ public void helpCheckElement(final Object jdomNode, final String name, final String prefix, final String namespaceUri,
+ final String textContent) {
+ assertTrue("Supplied JDOM node is not an Element", jdomNode instanceof Element); //$NON-NLS-1$
+ final Element element = (Element)jdomNode;
+ assertEquals(name, element.getName());
+ assertEquals(prefix, element.getNamespacePrefix());
+ assertEquals(namespaceUri, element.getNamespaceURI());
+
+ final String actualTextContent = element.getText();
+ if (textContent == null) {
+ assertEquals(0, actualTextContent.length());
+ } else {
+ assertEquals(textContent, actualTextContent);
+ }
+ }
+
+ public void helpCheckElement(final Object jdomNode, final String name, final String prefix, final String namespaceUri) {
+ assertTrue("Supplied JDOM node is not an Element", jdomNode instanceof Element); //$NON-NLS-1$
+ final Element element = (Element)jdomNode;
+ assertEquals(name, element.getName());
+ assertEquals(prefix, element.getNamespacePrefix());
+ assertEquals(namespaceUri, element.getNamespaceURI());
+ }
+
+ public void helpCheckAttribute(final Object jdomNode, final String name,
+ final String prefix, final String namespaceUri,
+ final String value ) {
+ assertTrue("Supplied JDOM node is not an Attribute",jdomNode instanceof Attribute); //$NON-NLS-1$
+ final Attribute attribute = (Attribute)jdomNode;
+ assertEquals(name,attribute.getName());
+ assertEquals(prefix,attribute.getNamespacePrefix());
+ assertEquals(namespaceUri,attribute.getNamespaceURI());
+
+ final String actualTextContent = attribute.getValue();
+ assertEquals(value,actualTextContent);
+ }
+
+ @Test public void testElement() throws Exception {
String doc = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><a><b><c>test</c></b></a>"; //$NON-NLS-1$
String xpath = "a/b/c"; //$NON-NLS-1$
- String value = (String) XMLSystemFunctions.xpathValue(doc, xpath);
+ String value = XMLSystemFunctions.xpathValue(doc, xpath);
assertEquals("test", value); //$NON-NLS-1$
}
- public void testAttribute() throws Exception {
+ @Test public void testAttribute() throws Exception {
String doc = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><a><b c=\"test\"></b></a>"; //$NON-NLS-1$
String xpath = "a/b/@c"; //$NON-NLS-1$
- String value = (String) XMLSystemFunctions.xpathValue(doc, xpath);
+ String value = XMLSystemFunctions.xpathValue(doc, xpath);
assertEquals("test", value); //$NON-NLS-1$
}
- public void testText() throws Exception {
+ @Test public void testText() throws Exception {
String doc = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><a><b><c>test</c></b></a>"; //$NON-NLS-1$
String xpath = "a/b/c/text()"; //$NON-NLS-1$
- String value = (String) XMLSystemFunctions.xpathValue(doc, xpath);
+ String value = XMLSystemFunctions.xpathValue(doc, xpath);
assertEquals("test", value); //$NON-NLS-1$
}
- public void testNoMatch() throws Exception {
+ @Test public void testNoMatch() throws Exception {
String doc = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><a><b><c>test</c></b></a>"; //$NON-NLS-1$
String xpath = "x"; //$NON-NLS-1$
- String value = (String) XMLSystemFunctions.xpathValue(doc, xpath);
+ String value = XMLSystemFunctions.xpathValue(doc, xpath);
assertEquals(null, value);
}
- public void testNoXMLHeader() throws Exception {
+ @Test public void testNoXMLHeader() throws Exception {
String doc = "<a><b><c>test</c></b></a>"; //$NON-NLS-1$
String xpath = "a/b/c/text()"; //$NON-NLS-1$
- String value = (String) XMLSystemFunctions.xpathValue(doc, xpath);
+ String value = XMLSystemFunctions.xpathValue(doc, xpath);
assertEquals("test", value); //$NON-NLS-1$
}
// simulate what would happen if someone passed the output of an XML query to the xpathvalue function
- public void testXMLInput() throws Exception {
+ @Test public void testXMLInput() throws Exception {
XMLType doc = new XMLType(new SQLXMLImpl("<foo/>"));//$NON-NLS-1$
String xpath = "a/b/c"; //$NON-NLS-1$
- try {
- XMLSystemFunctions.xpathValue(doc, xpath);
- } catch(FunctionExecutionException e) {
- // expected
- //System.out.println(e.getMessage());
- }
+ String value = XMLSystemFunctions.xpathValue(doc, xpath);
+ assertNull(value);
}
- public void testBadTypeInput() throws Exception {
- Integer doc = new Integer(1);
- String xpath = "a/b/c"; //$NON-NLS-1$
- try {
- XMLSystemFunctions.xpathValue(doc, xpath);
- fail("Expected exception passing xml stream to xpathvalue()"); //$NON-NLS-1$
- } catch(FunctionExecutionException e) {
- // expected
- //System.out.println(e.getMessage());
- }
- }
-
- public void testBadXPath() throws Exception {
+ @Test(expected=XPathExpressionException.class) public void testBadXPath() throws Exception {
String doc = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><a><b><c>test</c></b></a>"; //$NON-NLS-1$
String xpath = ":BOGUS:"; //$NON-NLS-1$
- try {
- XMLSystemFunctions.xpathValue(doc, xpath);
- fail("Expected exception passing bad xpath"); //$NON-NLS-1$
- } catch(FunctionExecutionException e) {
- // expected
- }
+ XMLSystemFunctions.xpathValue(doc, xpath);
}
+
+ @Test(expected=XPathExpressionException.class) public void testValidateXpath_Defect15088() throws Exception {
+ // Mismatched tick and quote
+ final String xpath = "//*[local-name()='bookName\"]"; //$NON-NLS-1$
+ XMLSystemFunctions.validateXpath(xpath);
+ }
+ @Test public void testValidateXpath_null() throws Exception {
+ XMLSystemFunctions.validateXpath(null);
+ }
+
+ @Test public void testValidateXpath_valid() throws Exception {
+ XMLSystemFunctions.validateXpath("//shipTo/@country"); //$NON-NLS-1$
+ }
+
+ @Test public void testGetSingleMatch_01_001() throws Exception {
+ final String xmlFilePath = "testdoc.xml"; //$NON-NLS-1$
+ final String xpath = "//shipTo/@country"; //$NON-NLS-1$
+ final String expectedValue = "US"; //$NON-NLS-1$
+ helpTestXpathValue(xmlFilePath,xpath,null, expectedValue);
+ }
+
+ @Test public void testGetSingleMatch_01_002() throws Exception {
+ final String xmlFilePath = "testdoc.xml"; //$NON-NLS-1$
+ final String xpath = "//@partNum"; //$NON-NLS-1$
+ final String expectedValue = "872-AA"; //$NON-NLS-1$
+ helpTestXpathValue(xmlFilePath,xpath,null, expectedValue);
+ }
+
+ @Test public void testGetSingleMatch_01_003() throws Exception {
+ final String xmlFilePath = "testdoc.xml"; //$NON-NLS-1$
+ final String xpath = "//productName"; //$NON-NLS-1$
+ final String expectedValue = "Lawnmower"; //$NON-NLS-1$
+ helpTestXpathValue(xmlFilePath,xpath,null, expectedValue);
+ }
+
+ @Test public void testGetSingleMatch_01_004() throws Exception {
+ final String xmlFilePath = "testdoc.xml"; //$NON-NLS-1$
+ final String xpath = "/SOAP-ENV:Envelope/billTo/zip"; //$NON-NLS-1$
+ final String expectedValue = "95819"; //$NON-NLS-1$
+ helpTestXpathValue(xmlFilePath,xpath,"xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"", expectedValue);
+ }
+
+ @Test public void testGetSingleMatch_03() throws Exception {
+ final String xmlFilePath = "testdoc.xml"; //$NON-NLS-1$
+ final String xpath = "//*[local-name()=\"ReadOnly\"]"; //$NON-NLS-1$
+ helpTestXpathValue(xmlFilePath,xpath,null, "false"); //$NON-NLS-1$
+ }
+
+ /**
+ * * is no longer valid to match the namespace
+ */
+ @Test(expected=XPathExpressionException.class) public void testGetSingleMatch_04() throws Exception {
+ final String xmlFilePath = "testdoc.xml"; //$NON-NLS-1$
+ final String xpath = "//*:ReadOnly"; //$NON-NLS-1$
+ helpTestXpathValue(xmlFilePath,xpath,null, "false"); //$NON-NLS-1$
+ }
+
}
Modified: trunk/engine/src/test/java/com/metamatrix/query/parser/TestParser.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/parser/TestParser.java 2010-05-07 20:25:05 UTC (rev 2106)
+++ trunk/engine/src/test/java/com/metamatrix/query/parser/TestParser.java 2010-05-07 21:35:44 UTC (rev 2107)
@@ -6737,5 +6737,10 @@
SQLXMLFunction f = new SQLXMLFunction("xmlforest", Arrays.asList((SingleElementSymbol)new AliasSymbol("table", new ElementSymbol("a"))));
helpTestExpression("xmlforest(a as \"table\")", "xmlforest(a AS \"table\")", f);
}
+
+ @Test public void testXmlPi() throws Exception {
+ Function f = new Function("xmlpi", new Expression[] {new Constant("a"), new ElementSymbol("val")});
+ helpTestExpression("xmlpi(NAME a, val)", "xmlpi(NAME a, val)", f);
+ }
}
Modified: trunk/engine/src/test/java/com/metamatrix/query/resolver/TestResolver.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/resolver/TestResolver.java 2010-05-07 20:25:05 UTC (rev 2106)
+++ trunk/engine/src/test/java/com/metamatrix/query/resolver/TestResolver.java 2010-05-07 21:35:44 UTC (rev 2107)
@@ -2171,23 +2171,6 @@
assertTrue("Params should be not equal", ! params[0].equals(params[1])); //$NON-NLS-1$
}
- @Test public void testXpathValueValid_defect15088() {
- String userSql = "SELECT xpathValue('<?xml version=\"1.0\" encoding=\"utf-8\" ?><a><b><c>test</c></b></a>', 'a/b/c')"; //$NON-NLS-1$
- helpResolve(userSql, FakeMetadataFactory.exampleBQTCached(), AnalysisRecord.createNonRecordingRecord());
- }
-
- @Test public void testXpathValueInvalid_defect15088() throws Exception {
- String userSql = "SELECT xpathValue('<?xml version=\"1.0\" encoding=\"utf-8\" ?><a><b><c>test</c></b></a>', '//*[local-name()=''bookName\"]')"; //$NON-NLS-1$
- Command command = helpParse(userSql);
-
- try {
- QueryResolver.resolveCommand(command, FakeMetadataFactory.exampleBQTCached(), AnalysisRecord.createNonRecordingRecord());
- fail("Expected resolver exception on invalid xpath value"); //$NON-NLS-1$
- } catch(QueryResolverException e) {
- //System.out.println(e.getMessage());
- }
- }
-
@Test public void testNullConstantInSelect() throws Exception {
String userSql = "SELECT null as x"; //$NON-NLS-1$
Query query = (Query)helpParse(userSql);
Modified: trunk/engine/src/test/java/com/metamatrix/query/validator/TestValidator.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/query/validator/TestValidator.java 2010-05-07 20:25:05 UTC (rev 2106)
+++ trunk/engine/src/test/java/com/metamatrix/query/validator/TestValidator.java 2010-05-07 21:35:44 UTC (rev 2107)
@@ -65,6 +65,7 @@
import com.metamatrix.query.unittest.FakeMetadataObject;
import com.metamatrix.query.unittest.FakeMetadataStore;
+@SuppressWarnings("nls")
public class TestValidator {
public static Map getStoredProcedureExternalMetadata(GroupSymbol virtualProc, QueryMetadataInterface metadata)
@@ -1961,5 +1962,21 @@
@Test public void testValidateNoExpressionName() {
helpValidate("SELECT xmlelement(name a, xmlattributes('1'))", new String[] {"'1'"}, exampleMetadata2()); //$NON-NLS-1$ //$NON-NLS-2$
}
+
+ @Test public void testXpathValueValid_defect15088() {
+ String userSql = "SELECT xpathValue('<?xml version=\"1.0\" encoding=\"utf-8\" ?><a><b><c>test</c></b></a>', 'a/b/c')"; //$NON-NLS-1$
+ helpValidate(userSql, new String[] {}, FakeMetadataFactory.exampleBQTCached());
+ }
+ @Test public void testXpathValueInvalid_defect15088() throws Exception {
+ String userSql = "SELECT xpathValue('<?xml version=\"1.0\" encoding=\"utf-8\" ?><a><b><c>test</c></b></a>', '//*[local-name()=''bookName\"]')"; //$NON-NLS-1$
+ helpValidate(userSql, new String[] {"xpathValue('<?xml version=\"1.0\" encoding=\"utf-8\" ?><a><b><c>test</c></b></a>', '//*[local-name()=''bookName\"]')"}, FakeMetadataFactory.exampleBQTCached());
+ }
+
+ @Test public void testXpathValueInvalidNamespaces() throws Exception {
+ String userSql = "SELECT xpathValue('<?xml version=\"1.0\" encoding=\"utf-8\" ?><a><b><c>test</c></b></a>', '//*[local-name()=\"bookName\"]', 'xmlns==')"; //$NON-NLS-1$
+ helpValidate(userSql, new String[] {"xpathValue('<?xml version=\"1.0\" encoding=\"utf-8\" ?><a><b><c>test</c></b></a>', '//*[local-name()=\"bookName\"]', 'xmlns==')"}, FakeMetadataFactory.exampleBQTCached());
+ }
+
+
}
15 years, 11 months