/******************************************************************************* * Copyright © 2011, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation * *******************************************************************************/ package org.eclipse.edt.ide.ui.internal.quickfix.proposals.sql; import java.util.List; import org.eclipse.edt.ide.sql.SQLConstants; import org.eclipse.edt.mof.egl.Member; public class EGLSQLGetByKeyStatementFactory extends EGLSQLDeclareStatementFactory { String orderByClause = null; public EGLSQLGetByKeyStatementFactory( Member recordBinding, String ioObjectName, List userDefinedIntoItemNames, String[][] keyItemAndColumnNames, boolean isDynamicArrayRecord) { super(recordBinding, ioObjectName, userDefinedIntoItemNames, keyItemAndColumnNames, isDynamicArrayRecord); } public EGLSQLGetByKeyStatementFactory(Member recordBinding, String ioObjectName) { super(recordBinding, ioObjectName, null, null, false); } public String getIOType() { return SQLConstants.GET_IO_TYPE.toUpperCase(); } public String getOrderByClause() { return orderByClause; } public String buildDefaultSQLStatement() { // Call super to build the default select, into, from and where clauses. super.buildDefaultSQLStatement(); if (isDynamicArrayRecord && sqlStatement != null) { // The order by clause is an optional clause that is only built if there are key columns. orderByClause = EGLSQLClauseFactory.createDefaultOrderByClause(keyItemAndColumnNames); if (orderByClause != null) { sqlStatement = sqlStatement + orderByClause; } } return sqlStatement; } }