/*
* 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.query.processor;
import java.util.Arrays;
import java.util.List;
import org.teiid.core.TeiidException;
import org.teiid.query.metadata.QueryMetadataInterface;
import org.teiid.query.metadata.StoredProcedureInfo;
import org.teiid.query.metadata.TransformationMetadata;
import org.teiid.query.unittest.RealMetadataFactory;
/**
* This is sample data go along with FakeMetaDataFactory and FakeDataManager
*/
@SuppressWarnings("nls")
public class FakeDataStore {
public static void sampleData1(FakeDataManager dataMgr, QueryMetadataInterface metadata) throws TeiidException {
addTable("pm1.g1", dataMgr, metadata);
addTable("pm1.g2", dataMgr, metadata);
addTable("pm1.g3", dataMgr, metadata);
addTable("pm2.g1", dataMgr, metadata);
addTable("pm2.g2", dataMgr, metadata);
addTable("pm2.g3", dataMgr, metadata);
//addTable("tm1.g1", dataMgr, metadata);
//stored procedure pm1.sp1
StoredProcedureInfo procInfo = metadata.getStoredProcedureInfoForProcedure("pm1.sp1"); //$NON-NLS-1$
dataMgr.registerProcTuples(
procInfo.getProcedureCallableName().toUpperCase(),
new List[] {
Arrays.asList(new Object[] { "a", new Integer(0) }), //$NON-NLS-1$
Arrays.asList(new Object[] { null, new Integer(1)}),
Arrays.asList(new Object[] { "a", new Integer(3) }), //$NON-NLS-1$
Arrays.asList(new Object[] { "c", new Integer(1)}), //$NON-NLS-1$
Arrays.asList(new Object[] { "b", new Integer(2)}), //$NON-NLS-1$
Arrays.asList(new Object[] { "a", new Integer(0) }) //$NON-NLS-1$
} );
}
public static void addTable(String name, FakeDataManager dataMgr,
QueryMetadataInterface metadata) throws TeiidException {
List[] tuples = new List[] {
Arrays.asList(new Object[] { "a", new Integer(0), Boolean.FALSE, new Double(2.0) }), //$NON-NLS-1$
Arrays.asList(new Object[] { null, new Integer(1), Boolean.FALSE, new Double(1.0) }),
Arrays.asList(new Object[] { "a", new Integer(3), Boolean.TRUE, new Double(7.0) }), //$NON-NLS-1$
Arrays.asList(new Object[] { "c", new Integer(1), Boolean.TRUE, null }), //$NON-NLS-1$
Arrays.asList(new Object[] { "b", new Integer(2), Boolean.FALSE, new Double(0.0) }), //$NON-NLS-1$
Arrays.asList(new Object[] { "a", new Integer(0), Boolean.FALSE, new Double(2.0) }) //$NON-NLS-1$
};
dataMgr.registerTuples(metadata, name, tuples);
}
public static void sampleData2(FakeDataManager dataMgr) throws TeiidException {
TransformationMetadata metadata = RealMetadataFactory.example1Cached();
dataMgr.registerTuples(metadata, "pm1.g1", new List[] {
Arrays.asList(new Object[] {
"a", new Integer(0), Boolean.FALSE, new Double(2.0) }), //$NON-NLS-1$
Arrays.asList(new Object[] {
"b", new Integer(1), Boolean.TRUE, null }), //$NON-NLS-1$
Arrays.asList(new Object[] {
"c", new Integer(2), Boolean.FALSE, new Double(0.0) }), //$NON-NLS-1$
});
// Group pm1.g2
dataMgr.registerTuples(metadata, "pm1.g2", new List[] {
Arrays.asList(new Object[] {
"a", new Integer(1), Boolean.TRUE, new Double(2.0) }), //$NON-NLS-1$
Arrays.asList(new Object[] {
"b", new Integer(0), Boolean.FALSE, new Double(0.0) }), //$NON-NLS-1$
Arrays.asList(new Object[] {
"b", new Integer(5), Boolean.TRUE, new Double(2.0) }), //$NON-NLS-1$
Arrays.asList(new Object[] {
"b", new Integer(2), Boolean.FALSE, null }), //$NON-NLS-1$
Arrays.asList(new Object[] {
"d", new Integer(2), Boolean.FALSE, new Double(1.0) }), //$NON-NLS-1$
});
// Group pm2.g1
dataMgr.registerTuples(metadata, "pm2.g1", new List[] {
Arrays.asList(new Object[] {
"b", new Integer(0), Boolean.FALSE, new Double(2.0) }), //$NON-NLS-1$
Arrays.asList(new Object[] {
"d", new Integer(3), Boolean.TRUE, new Double(7.0) }), //$NON-NLS-1$
Arrays.asList(new Object[] {
"e", new Integer(1), Boolean.TRUE, null }), //$NON-NLS-1$
});
// Group pm2.g2
dataMgr.registerTuples(metadata, "pm2.g2", new List[] {
Arrays.asList(new Object[] {
"a", new Integer(1), Boolean.TRUE, new Double(2.0) }), //$NON-NLS-1$
Arrays.asList(new Object[] {
"b", new Integer(0), Boolean.FALSE, new Double(0.0) }), //$NON-NLS-1$
Arrays.asList(new Object[] {
"b", new Integer(5), Boolean.TRUE, new Double(2.0) }), //$NON-NLS-1$
Arrays.asList(new Object[] {
"b", new Integer(2), Boolean.FALSE, null }), //$NON-NLS-1$
Arrays.asList(new Object[] {
"d", new Integer(2), Boolean.FALSE, new Double(1.0) }), //$NON-NLS-1$
});
// Group pm1.table1
dataMgr.registerTuples(metadata, "pm1.table1", new List[] {
Arrays.asList(new Object[] {
"a", new Integer(0), Boolean.FALSE, new Double(2.0) }), //$NON-NLS-1$
Arrays.asList(new Object[] {
"b", new Integer(1), Boolean.TRUE, null }), //$NON-NLS-1$
Arrays.asList(new Object[] {
"c", new Integer(2), Boolean.FALSE, new Double(0.0) }), //$NON-NLS-1$
});
}
}