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

📄 selectitemexpression.java

📁 JoSQL 1.5的源代码。JoSQL(SQL for Java Objects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java
💻 JAVA
字号:
/* * Copyright 2004-2005 Gary Bentley  *  * Licensed under the Apache License, Version 2.0 (the "License"); you may  * not use this file except in compliance with the License.  * You may obtain a copy of the License at  *    http://www.apache.org/licenses/LICENSE-2.0  * * Unless required by applicable law or agreed to in writing, software  * distributed under the License is distributed on an "AS IS" BASIS,  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  * See the License for the specific language governing permissions and  * limitations under the License. */package org.josql.expressions;import java.util.Map;import java.util.Collection;import org.josql.Query;import org.josql.QueryExecutionException;import org.josql.QueryParseException;import org.josql.internal.Utilities;public class SelectItemExpression extends Expression{    public static final String KEY = "key";    public static final String VALUE = "value";    private Expression exp = null;    private boolean fixedResult = false;    private Class addItemsType = null;    private String addItemsMapType = null;    private String alias = null;    public String getAlias ()    {	return this.alias;    }    public void setAlias (String a)    {	this.alias = Utilities.stripQuotes (a);    }    public boolean hasFixedResult (Query q)    {	return this.fixedResult;    }    public Class getExpectedReturnType (Query  q)	                                throws QueryParseException    {	return this.exp.getExpectedReturnType (q);    }    public void init (Query  q)	              throws QueryParseException    {	this.exp.init (q);	this.fixedResult = this.exp.hasFixedResult (q);	/*	if (this.isAddItemsFromCollectionOrMap ())	{	    // Get the expected return type.	    Class expC = this.getExpectedReturnType (q);	    if (expC.getName ().equals (Object.class.getName ()))	    {		// Defer until later.		return;	    }	    if (!this.addItemsType.isAssignableFrom (expC))	    {		throw new QueryParseException ("Expected return type from select clause column will be: " +					       expC.getName () +					       ", however expecting to add items to results from type: " +					       this.addItemsType.getName ());	    }	}	*/    }    public void setAddMapType (String t)    {	this.addItemsMapType = t;    }    public Collection getAddItems (Object v)    {	if (Map.class.isAssignableFrom (this.addItemsType))	{	    boolean k = this.addItemsMapType.equals (SelectItemExpression.KEY);	    Map m = (Map) v;	    if (k)	    {		return m.keySet ();	    }	    return m.values ();	}	if (v instanceof Collection)	{	    return (Collection) v;	}	// This is a nasty hack but is "ok" for now, fix in a later version...	java.util.List l = new java.util.ArrayList ();	l.add (v);	return l;    }    public boolean isAddItemsFromCollectionOrMap ()    {	return this.addItemsType != null;    }    public void setAddItemsType (Class c)    {	this.addItemsType = c;    }    public Expression getExpression ()    {	return this.exp;    }    public void setExpression (Expression exp)    {	this.exp = exp;    }    public boolean isTrue (Object o,			   Query  q)	                   throws QueryExecutionException    {	return this.exp.isTrue (o,				q);    }    public Object getValue (Object o,			    Query  q)	                    throws QueryExecutionException    {	return this.exp.getValue (o,				  q);    }    public String toString ()    {	StringBuffer b = new StringBuffer ();	if (this.isAddItemsFromCollectionOrMap ())	{	    b.append ("[*");	    if (this.addItemsMapType != null)	    {		b.append (", ");		b.append (this.addItemsMapType);	    }	    b.append ("] ");	}	b.append (this.exp);	if (this.alias != null)	{	    b.append (" ");	    b.append (this.alias);	}	return b.toString ();    }}

⌨️ 快捷键说明

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