<< 20-July-2008 : hausbot on #castor at codehaus [download] [back] >>
 
 
time nick message

10:39

<ralf>

hi udai

10:39

<Udai>

Hi ralf

10:40

<Udai>

I saw your patch

10:40

<Udai>

I merged the changes in my workspace and created new patch for the implementation

10:41

<Udai>

you can see that on issue-2442

10:41

<ralf>

have you understood the changes

10:41

<Udai>

yes

10:42

<Udai>

using those only I was able to create the implementation for conditions

10:43

<Udai>

I didn't thought about implementing field in AbstractField

10:43

<Udai>

which solved the problem

10:45

<Udai>

before checking the patch you can go through the comment and we can discuss

10:45

<ralf>

checking my mailbox at the moment

10:51

<ralf>

while a like your idea to maipulate conditions this will not work in all cases

10:52

<ralf>

not (o.name is null) -> (o.name is not null): very good

10:52

<ralf>

but how about

10:53

<ralf>

not ((o.name is null) or (o.name="foo"))

10:55

<Udai>

so I think we can keep both

10:55

<ralf>

this can be transformed to (o.name is not null) and (o.name<>"foo")

10:55

<ralf>

but this transformations can get quite tricky

10:55

<Udai>

the Not object and boolean _not in Like,Between,In,Null

10:56

<ralf>

therefore i think we need Not but modify simple conditions as you suggested

10:57

<Udai>

yes thats why I haven't implemented not() yet in AbstractCondition

10:57

<ralf>

we have to implement it in the concrete condition

10:58

<Udai>

you mean CompoundCondition

10:59

<Udai>

oh no no ...sorry ..it was by mistake

10:59

<Udai>

nothing about CompoundCondition

11:00

<Udai>

I think you can check the Junit test

11:01

<Udai>

Junit test is not for everything yet...but I am working on that

11:02

<Udai>

also I am thinking that why you have created this InCondition interface

11:05

<Udai>

why didn't you interfaced IN and IS NULL as LIKE and BETWEEN

11:06

<ralf>

problem with IN is that you have to be able to add multiple items

11:06

<ralf>

but for the items not all expressions are allowed

11:07

<Udai>

path | parameter | literals

11:07

<ralf>

yes

11:08

<Udai>

and NULL

11:08

<Udai>

?

11:09

<ralf>

so instead of a factory method with List <Expression> i decided to use a special InCondition class that only has add methods for the types allowed

11:09

<ralf>

null is not allowed

11:11

<Udai>

@IN: okay ..got it

11:14

<ralf>

did you recognize that i defined Field as immutable and did not provide setters

11:14

<Udai>

why InCondition in() is in Field interface and not in Expression Interface

11:15

<ralf>

because EJB QL allows in only on fields but not on all expressions

11:15

<Udai>

@Field : ya but didn't know the reason

11:15

<Udai>

k

11:15

<Udai>

@IN: K

11:16

<Udai>

@ Field: why not setter

11:17

<ralf>

immutable means you can not change the object after construction

11:17

<Udai>

okay

11:18

<Udai>

because we don't need to change it when it ones created

11:18

<ralf>

for Field this isn't important yet but will get important later

11:18

<Udai>

k

11:18

<ralf>

when we implement validation of QO we will need to resolve type of the field

11:19

<ralf>

if one modifies name thereafter the resolved type doesn't match any more

11:19

<ralf>

so it's better to define it immutable

11:19

<Udai>

k

11:20

<ralf>

i think i'll do the same for literals and parameters

11:20

<ralf>

this will easy things later on

11:20

<Udai>

k

11:22

<ralf>

whyt's current state? you are working to finish conditions atm?

11:22

<Udai>

yes

11:23

<Udai>

I had few doubts which I wanted to clear before finalizing the things

11:23

<ralf>

what do you think how long this will take?

11:23

<Udai>

compair, Like and between are ready

11:24

<Udai>

in, null and not are remaining only

11:24

<Udai>

and the junit test to verify them

11:24

<ralf>

how about "and" and "or"?

11:25

<Udai>

they are also done

11:25

<ralf>

good

11:26

<Udai>

as I wasn't sure about not,in and null so I wanted to discuss before finalizing them

11:27

<Udai>

have you read my comment about TemporalType

11:28

<ralf>

yes

11:28

<ralf>

i thought of moving Field, Schema, Projection and some other from query.object.select to query objects package

11:28

<ralf>

what do you think?

11:28

<Udai>

I tested here every one of java.util and java.sql type that we talked

11:29

<Udai>

well I have no problem

11:29

<ralf>

@date: fine by me

11:29

<Udai>

@moving : no problem

11:29

<ralf>

@move: okay

11:30

<Udai>

@date: you know the interesting thing I found was they all store same data

11:31

<ralf>

all java.sql types extend java.util.Date

11:31

<Udai>

in milisec which is the standard they were all same ....like java.sql.Time() also has Date into it

11:32

<ralf>

yes

11:32

<Udai>

but I thought that Time will only have time

11:33

<Udai>

ya I learn that later that all these extends util.Date

11:35

<Udai>

I think for avoiding type conversion I can use util.Date only and drop the Idea of sql. types

11:35

<Udai>

then the only thing I need to care about is Calendar and Date conversion

11:37

<ralf>

i also think using java.util.Date would be a good idea

11:37

<ralf>

at review of your previous work i sometimes recognized varying idention

11:38

<Udai>

like?

11:38

<ralf>

and i also had to improve javadoc in some cases

11:39

<Udai>

I will take care of those

11:40

<ralf>

i'll use minus instead of withespace to highlight

11:40

<ralf>

if (condition) {

11:40

<ralf>

----// do something

11:40

<ralf>

-}

11:40

<ralf>

or something like that

11:41

<Udai>

k

11:43

<ralf>

as you said everything is included in latest patch

11:43

<ralf>

and you do only changes to condition package atm

11:44

<Udai>

few things in function

11:45

<Udai>

and implementation in AbstractExpression of expression package

11:46

<Udai>

small change in OrderDirection

11:47

<ralf>

okay i then leave function, expression and condition unchanged

11:48

<ralf>

having said that i will be away from time to time to watch what happens in F1 race

11:48

<Udai>

k

11:49

<Udai>

I will try to finish things ASAP

11:50

<ralf>

okay

11:50

<Udai>

I will go to market for like at most one hour

11:50

<Udai>

so I will be out till then

11:50

<ralf>

okay. see you later

11:50

<Udai>

see you

20:14

<Udai>

Hi ralf

20:14

<Udai>

I am sorry there was some power problem here

22:28

<ralf>

hi udai

22:28

<ralf>

@power: that may happen

22:28

<ralf>

sorry, had been away of pc for a while

22:29

<Udai>

I have complited In, Not and Null

22:29

<Udai>

now just creating Junit tests for all

22:29

<ralf>

very good

22:30

<ralf>

i had some problems to merge your latest patch

22:30

<Udai>

like??

22:32

<ralf>

the patch included only parts of the whole project and some did not include my last patch from select package

22:34

<Udai>

but I think I have included the select package in patch

22:34

<ralf>

i suggest you to change only one package and include all classes of this package in patch

22:35

<ralf>

this makes it much easier to merge our changes

22:36

<ralf>

i do not change anything at condition, expression and function package

22:36

<Udai>

pardon, I didn't got you......what was missing in last patch

22:36

<ralf>

so you can do changes at this packages

22:36

<ralf>

my changes to class in select package

22:37

<ralf>

but don't care about the past

22:38

<Udai>

oh sorry for that

22:38

<Udai>

it includes the previous select package

22:38

<ralf>

yes

22:39

<Udai>

although I am working on your implementation changes

22:39

<ralf>

as i told you earlier today i do changes to the other packages

22:40

<ralf>

so i will only merge your changes to conditon, expression and function

22:40

<ralf>

i will throw away every other change when merging

22:41

<ralf>

when i talk about condition, expression and function i mean main and test parts

22:42

<Udai>

okay

22:54

<Udai>

ralf, how function are supposed to be used via Expression interface

22:55

<Udai>

I mean could you give me an example

22:55

<ralf>

schema.field(name).length()

22:56

<ralf>

schema.field(name).length().greaterThan(10)

22:56

<Udai>

I mean this will return Function

23:19

<ralf>

udai: i'm out now. I plan to continue work at QO tomorrow evening

23:19

<ralf>

bye

23:21

<Udai>

k

23:21

<Udai>

see you tomorrow

Drone v1.4 © 2002-2005 Uwyn RIFE powered