⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qbfbuilder.java

📁 是一个专门设计用于触摸屏的POS(point of sales)应用软件
💻 JAVA
字号:
//    Tina POS is a point of sales application designed for touch screens.//    Copyright (C) 2005 Adrian Romero Corchado.//    http://sourceforge.net/projects/tinapos////    This program is free software; you can redistribute it and/or modify//    it under the terms of the GNU General Public License as published by//    the Free Software Foundation; either version 2 of the License, or//    (at your option) any later version.////    This program is distributed in the hope that it will be useful,//    but WITHOUT ANY WARRANTY; without even the implied warranty of//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the//    GNU General Public License for more details.////    You should have received a copy of the GNU General Public License//    along with this program; if not, write to the Free Software//    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA/* * QBFBuilder.java * * Created on 18 de diciembre de 2003, 15:40 */package net.adrianromero.data.loader;

import net.adrianromero.basic.BasicException;/** * * @author  adrian */public class QBFBuilder implements ISQLBuilderStatic {       private String m_sSentNullFilter;   // la sentencia que se devuelve cuando el filtro es vacio    private String m_sSentBeginPart;  // La sentencia que se devuelve es m_sSentBeginPart + ( filtro ) + m_sSentEndPart    private String m_sSentEndPart;        private String[] m_asFindFields;            /** Creates a new instance of QBFBuilder */    public QBFBuilder(TableDefinition tb, String[] asFindFields) {                StringBuffer sent = new StringBuffer();        sent.append("select ");        for (int i = 0; i < tb.getFields().length; i ++) {            if (i > 0) {                sent.append(", ");            }            sent.append(tb.getFields()[i]);        }                        sent.append(" from ");                sent.append(tb.getTableName());                m_sSentNullFilter = sent.toString();        sent.append(" where ");        m_sSentBeginPart = sent.toString();        m_sSentEndPart = "";        m_asFindFields = asFindFields;    }    public QBFBuilder(String sSentence, String[] asFindFields) {        int iPos = sSentence.indexOf("?(QBF_FILTER)");        if (iPos < 0) {            m_sSentBeginPart = sSentence;            m_sSentEndPart = "";            m_sSentNullFilter = sSentence;        } else {            m_sSentBeginPart = sSentence.substring(0, iPos);            m_sSentEndPart = sSentence.substring(iPos + 13);            m_sSentNullFilter = m_sSentBeginPart + "(1=1)" + m_sSentEndPart;        }        m_asFindFields = asFindFields;    }    public String getSQL(SerializerWrite sw, Object params) throws BasicException {                QBFParameter mydw = new QBFParameter(m_asFindFields);        if (params == null) {            return m_sSentNullFilter;        } else {            sw.writeValues(mydw, params);            String sFilter = mydw.getFilter();            if (sFilter.length() == 0) {                 return m_sSentNullFilter; // no hay filtro            } else {                return m_sSentBeginPart + "(" + sFilter + ")" + m_sSentEndPart; // incluimos el filtro            }        }              }          private static class QBFParameter implements DataWrite {            private String[] m_asFindFields;        private QBFCompareEnum[] m_aiCondFields;        private String[] m_aParams;                public QBFParameter(String[] asFindFields) {            m_asFindFields = asFindFields;            m_aiCondFields = new QBFCompareEnum[asFindFields.length];            m_aParams = new String[asFindFields.length];                        for( int i = 0; i < m_aParams.length; i++) {                m_aParams[i] = DataWriteUtils.getSQLValue((Object) null);            }        }                public void setDouble(int paramIndex, Double dValue) throws BasicException {            if ((paramIndex - 1) % 2 == 0) {                throw new BasicException(LocalRes.getIntString("exception.nocompare"));            } else {                m_aParams[(paramIndex - 1) / 2] = DataWriteUtils.getSQLValue(dValue);            }        }                public void setBoolean(int paramIndex, Boolean bValue) throws BasicException {            if ((paramIndex - 1) % 2 == 0) {                throw new BasicException(LocalRes.getIntString("exception.nocompare"));            } else {                m_aParams[(paramIndex - 1) / 2] = DataWriteUtils.getSQLValue(bValue);            }        }                public void setInt(int paramIndex, Integer iValue) throws BasicException {            if ((paramIndex - 1) % 2 == 0) {                throw new BasicException(LocalRes.getIntString("exception.nocompare"));            } else {                m_aParams[(paramIndex - 1) / 2] = DataWriteUtils.getSQLValue(iValue);            }        }               public void setString(int paramIndex, String sValue) throws BasicException {            if ((paramIndex - 1) % 2 == 0) {                throw new BasicException(LocalRes.getIntString("exception.nocompare"));            } else {                m_aParams[(paramIndex - 1) / 2] = DataWriteUtils.getSQLValue(sValue);            }        }                public void setTimestamp(int paramIndex, java.util.Date dValue) throws BasicException {            if ((paramIndex - 1) % 2 == 0) {                throw new BasicException(LocalRes.getIntString("exception.nocompare"));            } else {                m_aParams[(paramIndex - 1) / 2] = DataWriteUtils.getSQLValue(dValue);            }        }//        public void setBinaryStream(int paramIndex, java.io.InputStream in, int length) throws DataException{//            if ((paramIndex - 1) % 2 == 0) {//                throw new DataException("Expected comparator for QBF");//            } else {//                throw new DataException("Param type not allowed");//            }            //        }        public void setBytes(int paramIndex, byte[] value) throws BasicException {            if ((paramIndex - 1) % 2 == 0) {                throw new BasicException(LocalRes.getIntString("exception.nocompare"));            } else {                throw new BasicException("Param type not allowed");            }        }        public void setObject(int paramIndex, Object value) throws BasicException {            if ((paramIndex - 1) % 2 == 0) {                if (value instanceof QBFCompareEnum) {                    m_aiCondFields[(paramIndex - 1) / 2] = (QBFCompareEnum) value;                } else {                    throw new BasicException(LocalRes.getIntString("exception.nocompare"));                }            } else {                m_aParams[(paramIndex - 1) / 2] = DataWriteUtils.getSQLValue(value);            }        }                public String getFilter() {            // El retorno debe ser siempre una expresion valida puesto que no se donde sera insertada.                        StringBuffer sFilter = new StringBuffer();                        String sItem;                            for (int i = 0; i < m_asFindFields.length; i ++) {                sItem = m_aiCondFields[i].getExpression(m_asFindFields[i], m_aParams[i]);                           if (sItem != null) {                    if (sFilter.length() > 0) {                        sFilter.append(" AND ");                    }                    sFilter.append(sItem);                }                            }            return sFilter.toString();        }                    }   }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -