KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > expression > booleanvalueexpression > predicates > NotNullPredicate


1 package com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.predicates;
2
3 import com.daffodilwoods.daffodildb.server.sql99.dcl.sqlcontrolstatement.*;
4 import com.daffodilwoods.daffodildb.server.serversystem.*;
5 import com.daffodilwoods.daffodildb.server.sql99.expression.rowvalueexpression.*;
6 import com.daffodilwoods.daffodildb.server.sql99.dml.*;
7 import com.daffodilwoods.daffodildb.server.sql99.expression.*;
8 import java.util.*;
9 import com.daffodilwoods.daffodildb.server.sql99.utils.*;
10 import com.daffodilwoods.daffodildb.server.sql99.common.*;
11 import com.daffodilwoods.database.resource.DException;
12 import com.daffodilwoods.daffodildb.utils.field.FieldBase;
13 import com.daffodilwoods.database.utility.IntegerPool;
14 import com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.CostFactorConstants;
15
16 /**
17  * <p>Title: </p>
18  * <p>Description: </p>
19  * <p>Copyright: Copyright (c) 2003</p>
20  * <p>Company: </p>
21  * @author unascribed
22  * @version 1.0
23  */

24
25 public class NotNullPredicate extends PredicateAbstract implements predicate, OperatorConstants {
26
27    private ColumnDetails column;
28    public NotNullPredicate(ColumnDetails column0) throws DException{
29       column = column0.getExistingColumnDetails()[0];
30    }
31
32    public AbstractRowValueExpression[] getChilds() {
33        AbstractRowValueExpression[] childs = new AbstractRowValueExpression[] {};
34        return childs;
35    }
36
37    public ColumnDetails[] getColumnDetails() throws DException {
38       column.setAsBelongToAllowedPredicateColumn();
39       return new ColumnDetails[]{column};
40    }
41
42
43    public double getCost(long rowCount, boolean index) throws DException {
44       return rowCount * CostFactorConstants.NONINDEXPREDICATE / 100;
45    }
46
47    public int getPredicateType() throws DException {
48       return OperatorConstants.NOTNULL;
49    }
50
51    public Object JavaDoc run(Object JavaDoc object) throws com.daffodilwoods.database.resource.DException {
52           Object JavaDoc result = column.run(object);
53           boolean nullValue = true;
54           try {
55             nullValue = ((FieldBase)result).isNull();
56           }
57           catch (ClassCastException JavaDoc ex) {
58             Object JavaDoc[] values = (Object JavaDoc[])result;
59             FieldBase[] fieldBases = GeneralPurposeStaticClass.changeIntoFieldBase(values);
60             for (int i = 0 , length = fieldBases.length ; i < length; i++) {
61               nullValue &= fieldBases[i].isNull();
62             }
63           }
64           return nullValue ? IntegerPool.Integer1 : IntegerPool.Integer0 ;
65    }
66
67    public String JavaDoc toString() {
68        return column.getColumn() + " is not NULL ";
69    }
70
71 }
72
Popular Tags